OLD | NEW |
| (Empty) |
1 /** | |
2 * @fileoverview | |
3 * Registers a language handler for VHDL '93. | |
4 * | |
5 * Based on the lexical grammar and keywords at | |
6 * http://www.iis.ee.ethz.ch/~zimmi/download/vhdl93_syntax.html | |
7 * | |
8 * @author benoit@ryder.fr | |
9 */ | |
10 | |
11 PR['registerLangHandler']( | |
12 PR['createSimpleLexer']( | |
13 [ | |
14 // Whitespace | |
15 [PR['PR_PLAIN'], /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'] | |
16 ], | |
17 [ | |
18 // String, character or bit string | |
19 [PR['PR_STRING'], /^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i], | |
20 // Comment, from two dashes until end of line. | |
21 [PR['PR_COMMENT'], /^--[^\r\n]*/], | |
22 [PR['PR_KEYWORD'], /^(?:abs|access|after|alias|all|and|architecture|arr
ay|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|con
stant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|ge
neric|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal
|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|p
ostponed|procedure|process|pure|range|record|register|reject|rem|report|return|r
ol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|t
ype|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|
$)/i, null], | |
23 // Type, predefined or standard | |
24 [PR['PR_TYPE'], /^(?:bit|bit_vector|character|boolean|integer|real|time
|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:
_vector)?)(?=[^\w-]|$)/i, null], | |
25 // Predefined attributes | |
26 [PR['PR_TYPE'], /^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VA
LUE|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_NA
ME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i, null], | |
27 // Number, decimal or based literal | |
28 [PR['PR_LITERAL'], /^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(
?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i], | |
29 // Identifier, basic or extended | |
30 [PR['PR_PLAIN'], /^(?:[a-z]\w*|\\[^\\]*\\)/i], | |
31 // Punctuation | |
32 [PR['PR_PUNCTUATION'], /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/] | |
33 ]), | |
34 ['vhdl', 'vhd']); | |
OLD | NEW |