SHOW:
|
|
- or go back to the newest paste.
1 | lexer grammar SpokolLexer; | |
2 | ||
3 | WS : (' '|'\r'|'\t'|'\n') {channel=HIDDEN;} | |
4 | ; | |
5 | ||
6 | COMMENT : '{' (~'}')* '}' {channel=HIDDEN;} | |
7 | ; | |
8 | ||
9 | STRING_LITERAL | |
10 | : '\'' ( EscapeSequence | ~('\\'|'\'') )* '\'' | |
11 | ; | |
12 | ||
13 | EscapeSequence | |
14 | : '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | |
15 | ; | |
16 | ||
17 | COMMA: ',' ; | |
18 | PARENTHESIS_OPEN: '(' ; | |
19 | PARENTHESIS_CLOSE: ')' ; | |
20 | SEMICOLON: ';' ; | |
21 | PLUS: '+' ; | |
22 | MINUS: '-' ; | |
23 | EQUAL: '=' ; | |
24 | MULTIPLY: '*' ; | |
25 | DIVIDE: '/' ; | |
26 | NOT_EQUAL: '!=' ; | |
27 | LESS_EQUAL: '<=' ; | |
28 | LESS: '<' ; | |
29 | GREATER_EQUAL: '>=' ; | |
30 | GREATER: '>' ; | |
31 | ASSIGN: ':=' ; | |
32 | COLON: ':'; | |
33 | CONST_INT: ('0'..'9')+ ; | |
34 | FLOATING_POINT_LITERAL: | |
35 | ('0'..'9')+ '.' ('0'..'9')+ ('e'|'E') ('+'|'-')? ('0'..'9')+ | |
36 | | ('0'..'9')+ ('e'|'E') ('+'|'-')? ('0'..'9')+ | |
37 | | ('0'..'9')+ '.' ('0'..'9')+ | |
38 | ; | |
39 | AND: 'AND' ; | |
40 | OR: 'OR' ; | |
41 | NOT: 'not' ; | |
42 | STRING: 'string' ; | |
43 | INT: 'int' ; | |
44 | BOOL: 'bool' ; | |
45 | REAL: 'real' ; | |
46 | PROGRAM: 'program' ; | |
47 | PROCEDURE: 'procedure' ; | |
48 | BEGIN: 'begin' ; | |
49 | END: 'end' ; | |
50 | DO: 'do' ; | |
51 | ENDWHILE: 'endwhile' ; | |
52 | BREAK: 'break' ; | |
53 | IF: 'if' ; | |
54 | ELSE: 'else' ; | |
55 | ENDIF: 'endif' ; | |
56 | PRINT: 'print' ; | |
57 | READ: 'read' ; | |
58 | THEN: 'then' ; | |
59 | VAR: 'var' ; | |
60 | WHILE: 'while' ; | |
61 | - | IDENT: ('A'..'Z'|'a'..'z'|'-')('A'..'Z'|'a'..'z'|'-'|'0'..'9')* ; |
61 | + | IDENT: ('A'..'Z'|'a'..'z'|'_')('A'..'Z'|'a'..'z'|'_'|'0'..'9')* ; |