verilog function

Mode verilog(
  1. Highlight hljs
)

Highlight.js language definition for verilog.

Implementation

Mode verilog(Highlight hljs) {
  final Mode mode0 = Mode();
  mode0.begin = r'\\[\s\S]';
  mode0.relevance = 0;
  return Mode(
    name: r'Verilog',
    aliases: [r'v', r'sv', r'svh'],
    caseInsensitive: false,
    keywords: {
      r'$pattern': r'\$?[\w]+(\$[\w]+)*',
      r'keyword': [
        r'accept_on',
        r'alias',
        r'always',
        r'always_comb',
        r'always_ff',
        r'always_latch',
        r'and',
        r'assert',
        r'assign',
        r'assume',
        r'automatic',
        r'before',
        r'begin',
        r'bind',
        r'bins',
        r'binsof',
        r'bit',
        r'break',
        r'buf|0',
        r'bufif0',
        r'bufif1',
        r'byte',
        r'case',
        r'casex',
        r'casez',
        r'cell',
        r'chandle',
        r'checker',
        r'class',
        r'clocking',
        r'cmos',
        r'config',
        r'const',
        r'constraint',
        r'context',
        r'continue',
        r'cover',
        r'covergroup',
        r'coverpoint',
        r'cross',
        r'deassign',
        r'default',
        r'defparam',
        r'design',
        r'disable',
        r'dist',
        r'do',
        r'edge',
        r'else',
        r'end',
        r'endcase',
        r'endchecker',
        r'endclass',
        r'endclocking',
        r'endconfig',
        r'endfunction',
        r'endgenerate',
        r'endgroup',
        r'endinterface',
        r'endmodule',
        r'endpackage',
        r'endprimitive',
        r'endprogram',
        r'endproperty',
        r'endspecify',
        r'endsequence',
        r'endtable',
        r'endtask',
        r'enum',
        r'event',
        r'eventually',
        r'expect',
        r'export',
        r'extends',
        r'extern',
        r'final',
        r'first_match',
        r'for',
        r'force',
        r'foreach',
        r'forever',
        r'fork',
        r'forkjoin',
        r'function',
        r'generate|5',
        r'genvar',
        r'global',
        r'highz0',
        r'highz1',
        r'if',
        r'iff',
        r'ifnone',
        r'ignore_bins',
        r'illegal_bins',
        r'implements',
        r'implies',
        r'import',
        r'incdir',
        r'include',
        r'initial',
        r'inout',
        r'input',
        r'inside',
        r'instance',
        r'int',
        r'integer',
        r'interconnect',
        r'interface',
        r'intersect',
        r'join',
        r'join_any',
        r'join_none',
        r'large',
        r'let',
        r'liblist',
        r'library',
        r'local',
        r'localparam',
        r'logic',
        r'longint',
        r'macromodule',
        r'matches',
        r'medium',
        r'modport',
        r'module',
        r'nand',
        r'negedge',
        r'nettype',
        r'new',
        r'nexttime',
        r'nmos',
        r'nor',
        r'noshowcancelled',
        r'not',
        r'notif0',
        r'notif1',
        r'or',
        r'output',
        r'package',
        r'packed',
        r'parameter',
        r'pmos',
        r'posedge',
        r'primitive',
        r'priority',
        r'program',
        r'property',
        r'protected',
        r'pull0',
        r'pull1',
        r'pulldown',
        r'pullup',
        r'pulsestyle_ondetect',
        r'pulsestyle_onevent',
        r'pure',
        r'rand',
        r'randc',
        r'randcase',
        r'randsequence',
        r'rcmos',
        r'real',
        r'realtime',
        r'ref',
        r'reg',
        r'reject_on',
        r'release',
        r'repeat',
        r'restrict',
        r'return',
        r'rnmos',
        r'rpmos',
        r'rtran',
        r'rtranif0',
        r'rtranif1',
        r's_always',
        r's_eventually',
        r's_nexttime',
        r's_until',
        r's_until_with',
        r'scalared',
        r'sequence',
        r'shortint',
        r'shortreal',
        r'showcancelled',
        r'signed',
        r'small',
        r'soft',
        r'solve',
        r'specify',
        r'specparam',
        r'static',
        r'string',
        r'strong',
        r'strong0',
        r'strong1',
        r'struct',
        r'super',
        r'supply0',
        r'supply1',
        r'sync_accept_on',
        r'sync_reject_on',
        r'table',
        r'tagged',
        r'task',
        r'this',
        r'throughout',
        r'time',
        r'timeprecision',
        r'timeunit',
        r'tran',
        r'tranif0',
        r'tranif1',
        r'tri',
        r'tri0',
        r'tri1',
        r'triand',
        r'trior',
        r'trireg',
        r'type',
        r'typedef',
        r'union',
        r'unique',
        r'unique0',
        r'unsigned',
        r'until',
        r'until_with',
        r'untyped',
        r'use',
        r'uwire',
        r'var',
        r'vectored',
        r'virtual',
        r'void',
        r'wait',
        r'wait_order',
        r'wand',
        r'weak',
        r'weak0',
        r'weak1',
        r'while',
        r'wildcard',
        r'wire',
        r'with',
        r'within',
        r'wor',
        r'xnor',
        r'xor',
      ],
      r'literal': [r'null'],
      r'built_in': [
        r'$finish',
        r'$stop',
        r'$exit',
        r'$fatal',
        r'$error',
        r'$warning',
        r'$info',
        r'$realtime',
        r'$time',
        r'$printtimescale',
        r'$bitstoreal',
        r'$bitstoshortreal',
        r'$itor',
        r'$signed',
        r'$cast',
        r'$bits',
        r'$stime',
        r'$timeformat',
        r'$realtobits',
        r'$shortrealtobits',
        r'$rtoi',
        r'$unsigned',
        r'$asserton',
        r'$assertkill',
        r'$assertpasson',
        r'$assertfailon',
        r'$assertnonvacuouson',
        r'$assertoff',
        r'$assertcontrol',
        r'$assertpassoff',
        r'$assertfailoff',
        r'$assertvacuousoff',
        r'$isunbounded',
        r'$sampled',
        r'$fell',
        r'$changed',
        r'$past_gclk',
        r'$fell_gclk',
        r'$changed_gclk',
        r'$rising_gclk',
        r'$steady_gclk',
        r'$coverage_control',
        r'$coverage_get',
        r'$coverage_save',
        r'$set_coverage_db_name',
        r'$rose',
        r'$stable',
        r'$past',
        r'$rose_gclk',
        r'$stable_gclk',
        r'$future_gclk',
        r'$falling_gclk',
        r'$changing_gclk',
        r'$display',
        r'$coverage_get_max',
        r'$coverage_merge',
        r'$get_coverage',
        r'$load_coverage_db',
        r'$typename',
        r'$unpacked_dimensions',
        r'$left',
        r'$low',
        r'$increment',
        r'$clog2',
        r'$ln',
        r'$log10',
        r'$exp',
        r'$sqrt',
        r'$pow',
        r'$floor',
        r'$ceil',
        r'$sin',
        r'$cos',
        r'$tan',
        r'$countbits',
        r'$onehot',
        r'$isunknown',
        r'$fatal',
        r'$warning',
        r'$dimensions',
        r'$right',
        r'$high',
        r'$size',
        r'$asin',
        r'$acos',
        r'$atan',
        r'$atan2',
        r'$hypot',
        r'$sinh',
        r'$cosh',
        r'$tanh',
        r'$asinh',
        r'$acosh',
        r'$atanh',
        r'$countones',
        r'$onehot0',
        r'$error',
        r'$info',
        r'$random',
        r'$dist_chi_square',
        r'$dist_erlang',
        r'$dist_exponential',
        r'$dist_normal',
        r'$dist_poisson',
        r'$dist_t',
        r'$dist_uniform',
        r'$q_initialize',
        r'$q_remove',
        r'$q_exam',
        r'$async$and$array',
        r'$async$nand$array',
        r'$async$or$array',
        r'$async$nor$array',
        r'$sync$and$array',
        r'$sync$nand$array',
        r'$sync$or$array',
        r'$sync$nor$array',
        r'$q_add',
        r'$q_full',
        r'$psprintf',
        r'$async$and$plane',
        r'$async$nand$plane',
        r'$async$or$plane',
        r'$async$nor$plane',
        r'$sync$and$plane',
        r'$sync$nand$plane',
        r'$sync$or$plane',
        r'$sync$nor$plane',
        r'$system',
        r'$display',
        r'$displayb',
        r'$displayh',
        r'$displayo',
        r'$strobe',
        r'$strobeb',
        r'$strobeh',
        r'$strobeo',
        r'$write',
        r'$readmemb',
        r'$readmemh',
        r'$writememh',
        r'$value$plusargs',
        r'$dumpvars',
        r'$dumpon',
        r'$dumplimit',
        r'$dumpports',
        r'$dumpportson',
        r'$dumpportslimit',
        r'$writeb',
        r'$writeh',
        r'$writeo',
        r'$monitor',
        r'$monitorb',
        r'$monitorh',
        r'$monitoro',
        r'$writememb',
        r'$dumpfile',
        r'$dumpoff',
        r'$dumpall',
        r'$dumpflush',
        r'$dumpportsoff',
        r'$dumpportsall',
        r'$dumpportsflush',
        r'$fclose',
        r'$fdisplay',
        r'$fdisplayb',
        r'$fdisplayh',
        r'$fdisplayo',
        r'$fstrobe',
        r'$fstrobeb',
        r'$fstrobeh',
        r'$fstrobeo',
        r'$swrite',
        r'$swriteb',
        r'$swriteh',
        r'$swriteo',
        r'$fscanf',
        r'$fread',
        r'$fseek',
        r'$fflush',
        r'$feof',
        r'$fopen',
        r'$fwrite',
        r'$fwriteb',
        r'$fwriteh',
        r'$fwriteo',
        r'$fmonitor',
        r'$fmonitorb',
        r'$fmonitorh',
        r'$fmonitoro',
        r'$sformat',
        r'$sformatf',
        r'$fgetc',
        r'$ungetc',
        r'$fgets',
        r'$sscanf',
        r'$rewind',
        r'$ftell',
        r'$ferror',
      ],
    },
    contains: [
      Mode(
        scope: r'comment',
        begin: r'/\*',
        end: r'\*/',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      Mode(
        scope: r'comment',
        begin: r'//',
        end: r'$',
        contains: [
          Mode(
            scope: r'doctag',
            begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
            end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
            excludeBegin: true,
            relevance: 0,
          ),
          Mode(
            begin:
                r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
          ),
        ],
      ),
      Mode(
        scope: r'string',
        begin: r'"',
        end: r'"',
        illegal: r'\n',
        contains: [mode0],
      ),
      Mode(
        scope: r'number',
        contains: [mode0],
        variants: [
          Mode(begin: r"\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)"),
          Mode(begin: r"\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)"),
          Mode(begin: r'\b[0-9][0-9_]*', relevance: 0),
        ],
      ),
      Mode(
        scope: r'variable',
        variants: [
          Mode(begin: r'#\((?!parameter).+\)'),
          Mode(begin: r'\.\w+', relevance: 0),
        ],
      ),
      Mode(scope: r'variable.constant', match: r'`(?:__FILE__|__LINE__)'),
      Mode(
        scope: r'meta',
        begin:
            r'`(?:begin_keywords|celldefine|default_nettype|default_decay_time|default_trireg_strength|define|delay_mode_distributed|delay_mode_path|delay_mode_unit|delay_mode_zero|else|elsif|end_keywords|endcelldefine|endif|ifdef|ifndef|include|line|nounconnected_drive|pragma|resetall|timescale|unconnected_drive|undef|undefineall)',
        end: r'$|\/\/|\/\*',
        returnEnd: true,
        keywords: [
          r'begin_keywords',
          r'celldefine',
          r'default_nettype',
          r'default_decay_time',
          r'default_trireg_strength',
          r'define',
          r'delay_mode_distributed',
          r'delay_mode_path',
          r'delay_mode_unit',
          r'delay_mode_zero',
          r'else',
          r'elsif',
          r'end_keywords',
          r'endcelldefine',
          r'endif',
          r'ifdef',
          r'ifndef',
          r'include',
          r'line',
          r'nounconnected_drive',
          r'pragma',
          r'resetall',
          r'timescale',
          r'unconnected_drive',
          r'undef',
          r'undefineall',
        ],
      ),
    ],
  );
}