vhdl function

Mode vhdl(
  1. Highlight hljs
)

Highlight.js language definition for vhdl.

Implementation

Mode vhdl(Highlight hljs) {
  final Mode mode0 = Mode();
  mode0.begin = r'\\[\s\S]';
  mode0.relevance = 0;
  return Mode(
    name: r'VHDL',
    caseInsensitive: true,
    keywords: {
      r'keyword': [
        r'abs',
        r'access',
        r'after',
        r'alias',
        r'all',
        r'and',
        r'architecture',
        r'array',
        r'assert',
        r'assume',
        r'assume_guarantee',
        r'attribute',
        r'begin',
        r'block',
        r'body',
        r'buffer',
        r'bus',
        r'case',
        r'component',
        r'configuration',
        r'constant',
        r'context',
        r'cover',
        r'disconnect',
        r'downto',
        r'default',
        r'else',
        r'elsif',
        r'end',
        r'entity',
        r'exit',
        r'fairness',
        r'file',
        r'for',
        r'force',
        r'function',
        r'generate',
        r'generic',
        r'group',
        r'guarded',
        r'if',
        r'impure',
        r'in',
        r'inertial',
        r'inout',
        r'is',
        r'label',
        r'library',
        r'linkage',
        r'literal',
        r'loop',
        r'map',
        r'mod',
        r'nand',
        r'new',
        r'next',
        r'nor',
        r'not',
        r'null',
        r'of',
        r'on',
        r'open',
        r'or',
        r'others',
        r'out',
        r'package',
        r'parameter',
        r'port',
        r'postponed',
        r'procedure',
        r'process',
        r'property',
        r'protected',
        r'pure',
        r'range',
        r'record',
        r'register',
        r'reject',
        r'release',
        r'rem',
        r'report',
        r'restrict',
        r'restrict_guarantee',
        r'return',
        r'rol',
        r'ror',
        r'select',
        r'sequence',
        r'severity',
        r'shared',
        r'signal',
        r'sla',
        r'sll',
        r'sra',
        r'srl',
        r'strong',
        r'subtype',
        r'then',
        r'to',
        r'transport',
        r'type',
        r'unaffected',
        r'units',
        r'until',
        r'use',
        r'variable',
        r'view',
        r'vmode',
        r'vprop',
        r'vunit',
        r'wait',
        r'when',
        r'while',
        r'with',
        r'xnor',
        r'xor',
      ],
      r'built_in': [
        r'boolean',
        r'bit',
        r'character',
        r'integer',
        r'time',
        r'delay_length',
        r'natural',
        r'positive',
        r'string',
        r'bit_vector',
        r'file_open_kind',
        r'file_open_status',
        r'std_logic',
        r'std_logic_vector',
        r'unsigned',
        r'signed',
        r'boolean_vector',
        r'integer_vector',
        r'std_ulogic',
        r'std_ulogic_vector',
        r'unresolved_unsigned',
        r'u_unsigned',
        r'unresolved_signed',
        r'u_signed',
        r'real_vector',
        r'time_vector',
      ],
      r'literal': [
        r'false',
        r'true',
        r'note',
        r'warning',
        r'error',
        r'failure',
        r'line',
        r'text',
        r'side',
        r'width',
      ],
    },
    illegal: r'\{',
    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',
        begin:
            r'\b(\d(_|\d)*#\w+(\.\w+)?#([eE][-+]?\d(_|\d)*)?|\d(_|\d)*(\.\d(_|\d)*)?([eE][-+]?\d(_|\d)*)?)',
        relevance: 0,
      ),
      Mode(
        scope: r'string',
        begin: r"'(U|X|0|1|Z|W|L|H|-)'",
        contains: [mode0],
      ),
      Mode(
        scope: r'symbol',
        begin: r"'[A-Za-z](_?[A-Za-z0-9])*",
        contains: [mode0],
      ),
    ],
  );
}