-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAbuLexer.g4
76 lines (62 loc) · 1.81 KB
/
AbuLexer.g4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright 2022 Massimo Comuzzo, Michele Pasqua and Marino Miculan
// SPDX-License-Identifier: Apache-2.0
lexer grammar AbuLexer;
AND : 'and' ;
OR : 'or' ;
NOT : 'not' ;
ABSINT : 'absint' ;
ABSDEC : 'absdec' ;
DOT : '.' ;
PLUS : '+' ;
MINUS : '-' ;
DIV : '/' ;
MUL : '*' ;
MOD : '%' ;
EQUALS : '==';
GT : '>' ;
LT : '<' ;
GTE : '>=';
LTE : '<=';
NOTEQUALS : '!=';
DOUBLECOLON : '::';
COLON : ':' ;
COLONEQUAL : ':=';
EQUALSIGN : '=' ;
COMMA : ',' ;
RL_BRACKET : '(' ;
RR_BRACKET : ')' ;
SL_BRACKET : '[' ;
SR_BRACKET : ']' ;
CL_BRACKET : '{' ;
CR_BRACKET : '}' ;
HAS : 'has' ;
WHERE : 'where' ;
PHYSICAL : 'physical' ;
LOGICAL : 'logical' ;
INPUT : 'input' ;
OUTPUT : 'output' ;
RULE : 'rule' ;
THIS : 'this' DOT ;
EXT : 'ext' DOT ;
ON : 'on' ;
FOR : 'for' ;
ALL : 'all' ;
DO : 'do' ;
DEFINE : 'define' ;
AS : 'as' ;
BOOLEAN : 'boolean' ;
INTEGER : 'integer' ;
DECIMAL : 'decimal' ;
STRING : 'string' ;
TRUE : 'true' ;
FALSE : 'false' ;
ID : [a-zA-Z][a-zA-Z0-9]* ;
QUOTED_STRING : '"' ~('"')* '"' ;
DEC_LITERAL : INT_LITERAL DOT [0-9]* ;
INT_LITERAL : '0'
| [1-9][0-9]*
;
// IGNORED TOKENS
WS : [ \t\r\n]+ -> channel(HIDDEN) ;
COMMENT : '\\@' .*? '@\\' -> skip ;
LINE_COMMENT : '#' ~[\r\n]* -> skip ;