OLD | NEW |
1 Prism.languages.vhdl = { | 1 Prism.languages.vhdl = { |
2 'comment': /--.+/, | 2 'comment': /--.+/, |
3 // support for all logic vectors | 3 // support for all logic vectors |
4 'vhdl-vectors': { | 4 'vhdl-vectors': { |
5 'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i, | 5 'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i, |
6 'alias': 'number' | 6 'alias': 'number' |
7 }, | 7 }, |
8 » 'string': /"(\\\n|\\?.)*?"/, | 8 » // support for operator overloading included |
9 » 'constant': /\b(use|library)\b/i, | 9 » 'quoted-function': { |
| 10 » » pattern: /"\S+?"(?=\()/, |
| 11 » » alias: 'function' |
| 12 » }, |
| 13 » 'string': /"(?:[^\\\r\n]|\\?(?:\r\n|[\s\S]))*?"/, |
| 14 » 'constant': /\b(?:use|library)\b/i, |
10 // support for predefined attributes included | 15 // support for predefined attributes included |
11 » 'keyword': /\b('active|'ascending|'base|'delayed|'driving|'driving_value
|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'
leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'r
ightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|al
l|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component
|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|fu
nction|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|libra
ry|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|pos
tponed|procedure|process|pure|range|record|register|reject|report|return|select|
severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use
|variable|wait|when|while|with)\b/i, | 16 » 'keyword': /\b(?:'active|'ascending|'base|'delayed|'driving|'driving_val
ue|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left
|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|
'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|
all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|compone
nt|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|
function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|lib
rary|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|p
ostponed|procedure|process|pure|range|record|register|reject|report|return|selec
t|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|u
se|variable|wait|when|while|with)\b/i, |
12 » 'boolean': /\b(true|false)\b/i, | 17 » 'boolean': /\b(?:true|false)\b/i, |
13 » 'function': { | 18 » 'function': /[a-z0-9_]+(?=\()/i, |
14 » » // support for operator overloading included | |
15 » » pattern: /([a-z0-9_]+|"\S+")\(/i, | |
16 » » inside: { | |
17 » » » punctuation: /\(/ | |
18 » » } | |
19 » }, | |
20 // decimal, based, physical, and exponential numbers supported | 19 // decimal, based, physical, and exponential numbers supported |
21 » 'number': /'[01uxzwlh-]'|\b\d+[_.]*(#[\da-f_.]+#)?(e[-+]?\d+)?/i, | 20 » 'number': /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i
, |
22 » 'operator': /<=?|>=?|:=|[-+*/&=]|\b(abs|not|mod|rem|sll|srl|sla|sra|rol|
ror|and|or|nand|xnor|xor|nor)\b/i, | 21 » 'operator': /[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol
|ror|and|or|nand|xnor|xor|nor)\b/i, |
23 'punctuation': /[{}[\];(),.:]/ | 22 'punctuation': /[{}[\];(),.:]/ |
24 }; | 23 }; |
OLD | NEW |