-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaddin2
109 lines (105 loc) · 4.03 KB
/
addin2
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Defs from "addin2".
WS : [\n\r\t ]+ -> channel(HIDDEN);
//Newline: [\n\r];
COMMENT : '//' ~[\n\r]* -> channel(HIDDEN);
ML_COMMENT : '/*' ({ this.NotEnd() }? . )* '*/' -> channel(HIDDEN);
MultiLineMacro: '#' (~[\n]*? '\\' '\r'? '\n')+ ~ [\n]+ -> channel (HIDDEN);
Prep : '#' ~[\n\r]* -> channel(HIDDEN);
mode PP;
PPCOMMENT : '//' ~[\n\r]* -> channel(HIDDEN);
PPML_COMMENT : '/*' .*? '*/' -> channel(HIDDEN);
PPKWAnd: 'and' -> type(KWAnd);
PPKWAndEq: 'and_eq' -> type(KWAndEq);
PPKWBitAnd: 'bitand' -> type(KWBitAnd);
PPKWBitOr: 'bitor' -> type(KWBitOr);
PPKWCompl: 'compl' -> type(KWCompl);
PPKWDefine: 'define' -> type(KWDefine);
PPKWDefined: 'defined' -> type(KWDefined);
PPKWDelete: 'delete' -> type(KWDelete);
PPKWElif: 'elif' -> type(KWElif);
PPKWElse: 'else' -> type(KWElse);
PPKWEndif: 'endif' -> type(KWEndif);
PPKWError: 'error' -> type(KWError);
PPKWWarning: 'warning' -> type(KWWarning);
PPKWFalse: 'false' -> type(KWFalse_);
PPKWTrue: 'true' -> type(KWTrue_);
PPKWIf: 'if' -> type(KWIf);
PPKWIfdef: 'ifdef' -> type(KWIfdef);
PPKWIfndef: 'ifndef' -> type(KWIfndef);
PPKWInclude: 'include' -> type(KWInclude);
PPKWLine: 'line' -> type(KWLine);
PPKWNew: 'new' -> type(KWNew);
PPKWNot: 'not' -> type(KWNot);
PPKWNotEq: 'not_eq' -> type(KWNotEq);
PPKWOr: 'or' -> type(KWOr);
PPKWOrEq: 'or_eq' -> type(KWOrEq);
PPKWPragma: 'pragma' -> type(KWPragma);
PPKWUndef: 'undef' -> type(KWUndef);
PPKWXor: 'xor' -> type(KWXor);
PPKWXorEq: 'xor_eq' -> type(KWXorEq);
Pp_number : ( FDigit | '.' FDigit ) ( FDigit | FIdentifier_nondigit | '\'' FDigit | '\'' FNondigit | 'e' FSign | 'E' FSign | '.' ) * -> type(Floating_literal) ;
Header_name : FHeader_name -> type(String_literal);
PPEOL: [\r\n]+ -> type(Newline);
PPWS : [\t ]+ -> channel(HIDDEN);
PPIdentifier : ( FIdentifier_nondigit ) ( FIdentifier_nondigit | FDigit ) * -> type(Identifier);
PPLeftBrace: '{' -> type(LeftBrace);
PPRightBrace: '}' -> type(RightBrace);
PPLeftBracket: '[' -> type(LeftBracket);
PPRightBracket: ']' -> type(RightBracket);
PPPoundPound: '##' -> type(PoundPound);
PPLeftParen: '(' -> type(LeftParen);
PPRightParen: ')' -> type(RightParen);
PPLtColon: '<:' -> type(LtColon);
PPColonGt: ':>' -> type(ColonGt);
PPLtPer: '<%' -> type(LtPer);
PPPerGt: '%>' -> type(PerGt);
PPPerColon: '%:' -> type(PerColon);
PPPerColonPerColon: '%:%:' -> type(PerColonPerColon);
PPSemi: ';' -> type(Semi);
PPColon: ':' -> type(Colon);
PPEllipsis: '...' -> type(Ellipsis);
PPPound: '#' -> type(Pound);
PPQuestion: '?' -> type(Question);
PPDoublecolon: '::' -> type(Doublecolon);
PPDot: '.' -> type(Dot);
PPDotStar: '.*' -> type(DotStar);
PPPlus: '+' -> type(Plus);
PPMinus: '-' -> type(Minus);
PPAssign: '=' -> type(Assign);
PPStar: '*' -> type(Star);
PPLess: '<' -> type(Less);
PPDiv: '/' -> type(Div);
PPGreater: '>' -> type(Greater);
PPMod: '%' -> type(Mod);
PPPlusAssign: '+=' -> type(PlusAssign);
PPTilde: '~' -> type(Tilde);
PPNot: '!' -> type(Not);
PPCaret: '^' -> type(Caret);
PPMinusAssign: '-=' -> type(MinusAssign);
PPAnd: '&' -> type(And);
PPStarAssign: '*=' -> type(StarAssign);
PPOr: '|' -> type(Or);
PPDivAssign: '/=' -> type(DivAssign);
PPModAssign: '%=' -> type(ModAssign);
PPXorAssign: '^=' -> type(XorAssign);
PPAndAssign: '&=' -> type(AndAssign);
PPOrAssign: '|=' -> type(OrAssign);
PPLeftShift: '<<' -> type(LeftShift);
//PPRightShift: '>>' -> type(RightShift);
PPRightShiftAssign: '>>=' -> type(RightShiftAssign);
PPLeftShiftAssign: '<<=' -> type(LeftShiftAssign);
PPEqual: '==' -> type(Equal);
PPLessEqual: '<=' -> type(LessEqual);
PPGreaterEqual: '>=' -> type(GreaterEqual);
PPAndAnd: '&&' -> type(AndAnd);
PPOrOr: '||' -> type(OrOr);
PPPlusPlus: '++' -> type(PlusPlus);
PPMinusMinus: '--' -> type(MinusMinus);
PPComma: ',' -> type(Comma);
PPArrow: '->' -> type(Arrow);
PPArrowStar: '->*' -> type(ArrowStar);
PPNotEqual: '!=' -> type(NotEqual);
PPContinue : [\\][\r\n]+ -> channel(HIDDEN);
PPString_literal : ( FEncoding_prefix ? '"' FS_char_sequence ? '"' | FEncoding_prefix ? 'R' FRaw_string ) -> type(String_literal) ;
PPCharacter_literal : ( FEncoding_prefix ? '\'' FC_char_sequence '\'' ) -> type(Character_literal) ;
PPAny : .;