-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathUVLLexer.g4
More file actions
83 lines (68 loc) · 1.53 KB
/
UVLLexer.g4
File metadata and controls
83 lines (68 loc) · 1.53 KB
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
77
78
79
80
81
82
83
lexer grammar UVLLexer;
INDENT: '<INDENT>';
DEDENT: '<DEDENT>';
INCLUDE_KEY: 'include';
FEATURES_KEY: 'features';
IMPORTS_KEY: 'imports';
NAMESPACE_KEY: 'namespace';
AS_KEY: 'as';
CONSTRAINT_KEY: 'constraint';
CONSTRAINTS_KEY: 'constraints';
CARDINALITY_KEY: 'cardinality';
STRING_KEY: 'String';
BOOLEAN_KEY: 'Boolean';
INTEGER_KEY: 'Integer';
REAL_KEY: 'Real';
LEN_KEY: 'len';
SUM_KEY: 'sum';
AVG_KEY: 'avg';
FLOOR_KEY: 'floor';
CEIL_KEY: 'ceil';
TYPE_KEY: 'Type';
ARITHMETIC_KEY: 'Arithmetic';
GROUP_CARDINALITY_KEY: 'group-cardinality';
FEATURE_CARDINALITY_KEY: 'feature-cardinality';
AGGREGATE_KEY: 'aggregate-function';
STRING_CONSTRAINTS_KEY: 'string-constraints';
ORGROUP: 'or';
ALTERNATIVE: 'alternative';
OPTIONAL: 'optional';
MANDATORY: 'mandatory';
CARDINALITY: '[' INTEGER ('..' (INTEGER | '*'))? ']';
NOT: '!';
AND: '&';
OR: '|';
EQUIVALENCE: '<=>';
IMPLICATION: '=>';
EQUAL: '==';
LOWER: '<';
LOWER_EQUALS: '<=';
GREATER: '>';
GREATER_EQUALS: '>=';
NOT_EQUALS: '!=';
DIV: '/';
MUL: '*';
ADD: '+';
SUB: '-';
OPEN_PAREN: '(';
CLOSE_PAREN: ')';
OPEN_BRACK: '[';
CLOSE_BRACK: ']';
OPEN_BRACE: '{';
CLOSE_BRACE: '}';
OPEN_COMMENT: '/*';
CLOSE_COMMENT: '*/';
FLOAT: '-'?[0-9]*[.][0-9]+;
INTEGER: '0' | '-'?[1-9][0-9]*;
BOOLEAN: 'true' | 'false';
COMMA: ',';
DOT: '.';
ID_NOT_STRICT: '"'~[\r\n".]+'"';
ID_STRICT: [a-zA-Z]([a-zA-Z0-9_#§%?\\'äüöß;])*;
STRING: '\''~[\r\n']+'\'';
SKIP_: ( SPACES | COMMENT) -> skip;
fragment COMMENT:
'//' ~[\r\n\f]*
| OPEN_COMMENT .* CLOSE_COMMENT;
fragment SPACES: [ \t]+;
NEWLINE: ('\r'? '\n' | '\r');