vhdl function
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],
),
],
);
}