1 // $ANTLR !Unknown version! Grammar/CTFParser.g 2012-03-09 14:59:18
3 package org
.eclipse
.linuxtools
.ctf
.parser
;
4 import java
.util
.HashSet
;
6 import java
.util
.Stack
;
8 import org
.antlr
.runtime
.BaseRecognizer
;
9 import org
.antlr
.runtime
.BitSet
;
10 import org
.antlr
.runtime
.DFA
;
11 import org
.antlr
.runtime
.EarlyExitException
;
12 import org
.antlr
.runtime
.FailedPredicateException
;
13 import org
.antlr
.runtime
.IntStream
;
14 import org
.antlr
.runtime
.MismatchedSetException
;
15 import org
.antlr
.runtime
.MismatchedTokenException
;
16 import org
.antlr
.runtime
.NoViableAltException
;
17 import org
.antlr
.runtime
.Parser
;
18 import org
.antlr
.runtime
.ParserRuleReturnScope
;
19 import org
.antlr
.runtime
.RecognitionException
;
20 import org
.antlr
.runtime
.RecognizerSharedState
;
21 import org
.antlr
.runtime
.Token
;
22 import org
.antlr
.runtime
.TokenStream
;
23 import org
.antlr
.runtime
.tree
.CommonTree
;
24 import org
.antlr
.runtime
.tree
.CommonTreeAdaptor
;
25 import org
.antlr
.runtime
.tree
.RewriteEarlyExitException
;
26 import org
.antlr
.runtime
.tree
.RewriteRuleSubtreeStream
;
27 import org
.antlr
.runtime
.tree
.RewriteRuleTokenStream
;
28 import org
.antlr
.runtime
.tree
.TreeAdaptor
;
30 @SuppressWarnings({ "nls", "unused", "unchecked", "rawtypes" })
31 public class CTFParser
extends Parser
{
32 public static final String
[] tokenNames
= new String
[] {
33 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ALIGNTOK", "CONSTTOK", "CHARTOK", "DOUBLETOK", "ENUMTOK", "EVENTTOK", "FLOATINGPOINTTOK", "FLOATTOK", "INTEGERTOK", "INTTOK", "LONGTOK", "SHORTTOK", "SIGNEDTOK", "STREAMTOK", "STRINGTOK", "STRUCTTOK", "TRACETOK", "TYPEALIASTOK", "TYPEDEFTOK", "UNSIGNEDTOK", "VARIANTTOK", "VOIDTOK", "BOOLTOK", "COMPLEXTOK", "IMAGINARYTOK", "ENVTOK", "CLOCKTOK", "NANNUMBERTOK", "INFINITYTOK", "NINFINITYTOK", "SEPARATOR", "COLON", "ELIPSES", "ASSIGNMENT", "TYPE_ASSIGNMENT", "LT", "GT", "OPENBRAC", "CLOSEBRAC", "LPAREN", "RPAREN", "LCURL", "RCURL", "TERM", "POINTER", "SIGN", "ARROW", "DOT", "BACKSLASH", "INTEGER_TYPES_SUFFIX", "OCTAL_LITERAL", "DIGIT", "DECIMAL_LITERAL", "HEX_PREFIX", "HEX_DIGIT", "HEX_LITERAL", "NONZERO_DIGIT", "OCTAL_ESCAPE", "UNICODE_ESCAPE", "HEXADECIMAL_ESCAPE", "ESCAPE_SEQUENCE", "STRINGPREFIX", "SINGLEQUOTE", "CHAR_CONTENT", "CHARACTER_LITERAL", "DOUBLEQUOTE", "STRING_CONTENT", "STRING_LITERAL", "WS", "COMMENT_OPEN", "COMMENT_CLOSE", "COMMENT", "LINE_COMMENT", "NONDIGIT", "IDENTIFIER", "ROOT", "EVENT", "STREAM", "TRACE", "ENV", "CLOCK", "DECLARATION", "SV_DECLARATION", "TYPE_SPECIFIER_LIST", "TYPE_DECLARATOR_LIST", "TYPE_DECLARATOR", "STRUCT", "STRUCT_NAME", "STRUCT_BODY", "ALIGN", "CTF_EXPRESSION_TYPE", "CTF_EXPRESSION_VAL", "CTF_LEFT", "CTF_RIGHT", "UNARY_EXPRESSION_STRING", "UNARY_EXPRESSION_STRING_QUOTES", "UNARY_EXPRESSION_DEC", "UNARY_EXPRESSION_HEX", "UNARY_EXPRESSION_OCT", "LENGTH", "TYPEDEF", "TYPEALIAS", "TYPEALIAS_TARGET", "TYPEALIAS_ALIAS", "INTEGER", "STRING", "FLOATING_POINT", "ENUM", "ENUM_CONTAINER_TYPE", "ENUM_ENUMERATOR", "ENUM_NAME", "ENUM_VALUE", "ENUM_VALUE_RANGE", "ENUM_BODY", "VARIANT", "VARIANT_NAME", "VARIANT_TAG", "VARIANT_BODY", "DECLARATOR"
35 public static final int SIGN
=49;
36 public static final int LT
=39;
37 public static final int TYPEDEFTOK
=22;
38 public static final int VARIANT_NAME
=119;
39 public static final int ENV
=83;
40 public static final int INTEGER_TYPES_SUFFIX
=53;
41 public static final int POINTER
=48;
42 public static final int TRACE
=82;
43 public static final int HEX_PREFIX
=57;
44 public static final int INTTOK
=13;
45 public static final int SEPARATOR
=34;
46 public static final int ENUMTOK
=8;
47 public static final int COMPLEXTOK
=27;
48 public static final int IMAGINARYTOK
=28;
49 public static final int STREAMTOK
=17;
50 public static final int EOF
=-1;
51 public static final int UNARY_EXPRESSION_OCT
=102;
52 public static final int ENUM_VALUE
=115;
53 public static final int UNSIGNEDTOK
=23;
54 public static final int ENUM_NAME
=114;
55 public static final int RPAREN
=44;
56 public static final int CHAR_CONTENT
=67;
57 public static final int STRING_LITERAL
=71;
58 public static final int UNARY_EXPRESSION_STRING_QUOTES
=99;
59 public static final int ALIGNTOK
=4;
60 public static final int FLOATTOK
=11;
61 public static final int STRUCT_BODY
=92;
62 public static final int ENUM_BODY
=117;
63 public static final int COMMENT_CLOSE
=74;
64 public static final int STRINGTOK
=18;
65 public static final int COMMENT
=75;
66 public static final int STREAM
=81;
67 public static final int UNARY_EXPRESSION_HEX
=101;
68 public static final int UNARY_EXPRESSION_DEC
=100;
69 public static final int FLOATINGPOINTTOK
=10;
70 public static final int LINE_COMMENT
=76;
71 public static final int CTF_EXPRESSION_TYPE
=94;
72 public static final int DOUBLETOK
=7;
73 public static final int TYPE_DECLARATOR
=89;
74 public static final int CHARACTER_LITERAL
=68;
75 public static final int OCTAL_ESCAPE
=61;
76 public static final int STRUCT_NAME
=91;
77 public static final int VARIANT
=118;
78 public static final int NANNUMBERTOK
=31;
79 public static final int ENUM_ENUMERATOR
=113;
80 public static final int FLOATING_POINT
=110;
81 public static final int DECLARATOR
=122;
82 public static final int SIGNEDTOK
=16;
83 public static final int CHARTOK
=6;
84 public static final int WS
=72;
85 public static final int INTEGERTOK
=12;
86 public static final int VARIANT_BODY
=121;
87 public static final int NONDIGIT
=77;
88 public static final int GT
=40;
89 public static final int TYPEALIAS_TARGET
=106;
90 public static final int DECIMAL_LITERAL
=56;
91 public static final int BACKSLASH
=52;
92 public static final int CLOSEBRAC
=42;
93 public static final int TERM
=47;
94 public static final int BOOLTOK
=26;
95 public static final int CTF_RIGHT
=97;
96 public static final int TYPE_DECLARATOR_LIST
=88;
97 public static final int STRING_CONTENT
=70;
98 public static final int TYPE_ASSIGNMENT
=38;
99 public static final int ENUM_CONTAINER_TYPE
=112;
100 public static final int DOUBLEQUOTE
=69;
101 public static final int ENUM_VALUE_RANGE
=116;
102 public static final int DECLARATION
=85;
103 public static final int LENGTH
=103;
104 public static final int LPAREN
=43;
105 public static final int INFINITYTOK
=32;
106 public static final int STRINGPREFIX
=65;
107 public static final int CTF_EXPRESSION_VAL
=95;
108 public static final int ESCAPE_SEQUENCE
=64;
109 public static final int UNICODE_ESCAPE
=62;
110 public static final int SINGLEQUOTE
=66;
111 public static final int IDENTIFIER
=78;
112 public static final int HEX_LITERAL
=59;
113 public static final int ALIGN
=93;
114 public static final int DIGIT
=55;
115 public static final int DOT
=51;
116 public static final int ENVTOK
=29;
117 public static final int STRUCTTOK
=19;
118 public static final int OPENBRAC
=41;
119 public static final int TYPEALIASTOK
=21;
120 public static final int CLOCK
=84;
121 public static final int INTEGER
=108;
122 public static final int TYPEALIAS
=105;
123 public static final int EVENTTOK
=9;
124 public static final int NINFINITYTOK
=33;
125 public static final int TYPEDEF
=104;
126 public static final int VOIDTOK
=25;
127 public static final int TYPE_SPECIFIER_LIST
=87;
128 public static final int OCTAL_LITERAL
=54;
129 public static final int COMMENT_OPEN
=73;
130 public static final int HEX_DIGIT
=58;
131 public static final int STRUCT
=90;
132 public static final int EVENT
=80;
133 public static final int LONGTOK
=14;
134 public static final int ROOT
=79;
135 public static final int CTF_LEFT
=96;
136 public static final int CLOCKTOK
=30;
137 public static final int TRACETOK
=20;
138 public static final int COLON
=35;
139 public static final int HEXADECIMAL_ESCAPE
=63;
140 public static final int LCURL
=45;
141 public static final int VARIANTTOK
=24;
142 public static final int VARIANT_TAG
=120;
143 public static final int ENUM
=111;
144 public static final int ELIPSES
=36;
145 public static final int RCURL
=46;
146 public static final int TYPEALIAS_ALIAS
=107;
147 public static final int UNARY_EXPRESSION_STRING
=98;
148 public static final int ARROW
=50;
149 public static final int ASSIGNMENT
=37;
150 public static final int SHORTTOK
=15;
151 public static final int SV_DECLARATION
=86;
152 public static final int NONZERO_DIGIT
=60;
153 public static final int CONSTTOK
=5;
154 public static final int STRING
=109;
159 protected static class Symbols_scope
{
162 protected Stack Symbols_stack
= new Stack();
165 public CTFParser(TokenStream input
) {
166 this(input
, new RecognizerSharedState());
168 public CTFParser(TokenStream input
, RecognizerSharedState state
) {
173 protected TreeAdaptor adaptor
= new CommonTreeAdaptor();
175 public void setTreeAdaptor(TreeAdaptor adaptor
) {
176 this.adaptor
= adaptor
;
178 public TreeAdaptor
getTreeAdaptor() {
183 public String
[] getTokenNames() { return CTFParser
.tokenNames
; }
185 public String
getGrammarFileName() { return "Grammar/CTFParser.g"; }
188 public CTFParser(TokenStream input
, boolean verbose
) {
190 this.verbose
= verbose
;
193 /* To disable automatic error recovery. When we have a mismatched token, simply throw an exception. */
195 protected Object
recoverFromMismatchedToken(IntStream input
, int ttype
, BitSet follow
) throws RecognitionException
197 throw new MismatchedTokenException(ttype
, input
);
201 * Checks if a given name has been defined has a type.
202 * From: http://www.antlr.org/grammar/1153358328744/C.g
204 * @param name The name to check.
205 * @return True if is is a type, false otherwise.
207 boolean isTypeName(String name
) {
208 for (int i
= Symbols_stack
.size() - 1; i
>= 0; i
--) {
209 Symbols_scope scope
= (Symbols_scope
)Symbols_stack
.get(i
);
210 if (scope
.types
.contains(name
)) {
217 void addTypeName(String name
) {
218 ((Symbols_scope
)Symbols_stack
.peek()).types
.add(name
);
220 debug_print("New type: " + name
);
224 boolean _inTypedef
= false;
227 debug_print("typedefOn");
232 debug_print("typedefOff");
236 boolean inTypedef() {
240 boolean _inTypealiasAlias
= false;
242 void typealiasAliasOn() {
243 debug_print("typealiasAliasOn");
244 _inTypealiasAlias
= true;
247 void typealiasAliasOff() {
248 debug_print("typealiasAliasOff");
249 _inTypealiasAlias
= false;
252 boolean inTypealiasAlias() {
253 return _inTypealiasAlias
;
256 void print_tabs(int n
) {
257 for (int i
= 0; i
< n
; i
++) {
258 System
.out
.print(" ");
262 void enter(String name
) {
264 if (state
.backtracking
== 0) {
266 debug_print("+ " + name
);
272 void exit(String name
) {
276 debug_print("- " + name
);
280 void debug_print(String str
) {
282 System
.out
.println(str
);
288 /* Prints rule entry and exit while parsing */
289 boolean verbose
= false;
292 public static class parse_return
extends ParserRuleReturnScope
{
295 public Object
getTree() { return tree
; }
298 // $ANTLR start "parse"
299 // Grammar/CTFParser.g:198:1: parse : ( declaration )+ EOF -> ^( ROOT ( declaration )+ ) ;
300 public final CTFParser
.parse_return
parse() throws RecognitionException
{
301 Symbols_stack
.push(new Symbols_scope());
303 CTFParser
.parse_return retval
= new CTFParser
.parse_return();
304 retval
.start
= input
.LT(1);
306 CommonTree root_0
= null;
309 CTFParser
.declaration_return declaration1
= null;
312 CommonTree EOF2_tree
=null;
313 RewriteRuleTokenStream stream_EOF
=new RewriteRuleTokenStream(adaptor
,"token EOF");
314 RewriteRuleSubtreeStream stream_declaration
=new RewriteRuleSubtreeStream(adaptor
,"rule declaration");
317 debug_print("Scope push " + Symbols_stack
.size());
318 ((Symbols_scope
)Symbols_stack
.peek()).types
= new HashSet
<String
>();
321 // Grammar/CTFParser.g:211:1: ( ( declaration )+ EOF -> ^( ROOT ( declaration )+ ) )
322 // Grammar/CTFParser.g:212:3: ( declaration )+ EOF
324 // Grammar/CTFParser.g:212:3: ( declaration )+
329 int LA1_0
= input
.LA(1);
331 if ( ((LA1_0
>=CONSTTOK
&& LA1_0
<=ENUMTOK
)||(LA1_0
>=FLOATINGPOINTTOK
&& LA1_0
<=SIGNEDTOK
)||(LA1_0
>=STRINGTOK
&& LA1_0
<=STRUCTTOK
)||(LA1_0
>=TYPEDEFTOK
&& LA1_0
<=IMAGINARYTOK
)) ) {
334 else if ( (LA1_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
337 else if ( (LA1_0
==EVENTTOK
||LA1_0
==STREAMTOK
||(LA1_0
>=TRACETOK
&& LA1_0
<=TYPEALIASTOK
)||(LA1_0
>=ENVTOK
&& LA1_0
<=CLOCKTOK
)) ) {
344 // Grammar/CTFParser.g:212:3: declaration
346 pushFollow(FOLLOW_declaration_in_parse321
);
347 declaration1
=declaration();
350 if (state
.failed
) return retval
;
351 if ( state
.backtracking
==0 ) stream_declaration
.add(declaration1
.getTree());
357 if ( cnt1
>= 1 ) break loop1
;
358 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
359 EarlyExitException eee
=
360 new EarlyExitException(1, input
);
366 EOF2
=(Token
)match(input
,EOF
,FOLLOW_EOF_in_parse324
); if (state
.failed
) return retval
;
367 if ( state
.backtracking
==0 ) stream_EOF
.add(EOF2
);
372 // elements: declaration
374 // rule labels: retval
375 // token list labels:
378 if ( state
.backtracking
==0 ) {
379 retval
.tree
= root_0
;
380 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
382 root_0
= (CommonTree
)adaptor
.nil();
383 // 212:20: -> ^( ROOT ( declaration )+ )
385 // Grammar/CTFParser.g:212:23: ^( ROOT ( declaration )+ )
387 CommonTree root_1
= (CommonTree
)adaptor
.nil();
388 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ROOT
, "ROOT"), root_1
);
390 if ( !(stream_declaration
.hasNext()) ) {
391 throw new RewriteEarlyExitException();
393 while ( stream_declaration
.hasNext() ) {
394 adaptor
.addChild(root_1
, stream_declaration
.nextTree());
397 stream_declaration
.reset();
399 adaptor
.addChild(root_0
, root_1
);
404 retval
.tree
= root_0
;}
407 retval
.stop
= input
.LT(-1);
409 if ( state
.backtracking
==0 ) {
411 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
412 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
414 if ( state
.backtracking
==0 ) {
416 debug_print("Scope pop " + Symbols_stack
.size());
419 debug_print("Final depth, should be 0: " + depth
);
424 catch (RecognitionException e
)
434 // $ANTLR end "parse"
436 public static class numberLiteral_return
extends ParserRuleReturnScope
{
439 public Object
getTree() { return tree
; }
442 // $ANTLR start "numberLiteral"
443 // Grammar/CTFParser.g:215:1: numberLiteral : ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) ;
444 public final CTFParser
.numberLiteral_return
numberLiteral() throws RecognitionException
{
445 CTFParser
.numberLiteral_return retval
= new CTFParser
.numberLiteral_return();
446 retval
.start
= input
.LT(1);
448 CommonTree root_0
= null;
451 Token HEX_LITERAL4
=null;
452 Token DECIMAL_LITERAL5
=null;
453 Token OCTAL_LITERAL6
=null;
455 CommonTree SIGN3_tree
=null;
456 CommonTree HEX_LITERAL4_tree
=null;
457 CommonTree DECIMAL_LITERAL5_tree
=null;
458 CommonTree OCTAL_LITERAL6_tree
=null;
459 RewriteRuleTokenStream stream_SIGN
=new RewriteRuleTokenStream(adaptor
,"token SIGN");
460 RewriteRuleTokenStream stream_OCTAL_LITERAL
=new RewriteRuleTokenStream(adaptor
,"token OCTAL_LITERAL");
461 RewriteRuleTokenStream stream_HEX_LITERAL
=new RewriteRuleTokenStream(adaptor
,"token HEX_LITERAL");
462 RewriteRuleTokenStream stream_DECIMAL_LITERAL
=new RewriteRuleTokenStream(adaptor
,"token DECIMAL_LITERAL");
465 enter("numberLiteral");
468 // Grammar/CTFParser.g:223:1: ( ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) )
469 // Grammar/CTFParser.g:224:3: ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) )
471 // Grammar/CTFParser.g:224:3: ( SIGN )*
475 int LA2_0
= input
.LA(1);
477 if ( (LA2_0
==SIGN
) ) {
484 // Grammar/CTFParser.g:224:3: SIGN
486 SIGN3
=(Token
)match(input
,SIGN
,FOLLOW_SIGN_in_numberLiteral357
); if (state
.failed
) return retval
;
487 if ( state
.backtracking
==0 ) stream_SIGN
.add(SIGN3
);
498 // Grammar/CTFParser.g:224:10: ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) )
500 switch ( input
.LA(1) ) {
506 case DECIMAL_LITERAL
:
517 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
518 NoViableAltException nvae
=
519 new NoViableAltException("", 3, 0, input
);
526 // Grammar/CTFParser.g:224:11: HEX_LITERAL
528 HEX_LITERAL4
=(Token
)match(input
,HEX_LITERAL
,FOLLOW_HEX_LITERAL_in_numberLiteral362
); if (state
.failed
) return retval
;
529 if ( state
.backtracking
==0 ) stream_HEX_LITERAL
.add(HEX_LITERAL4
);
534 // elements: SIGN, HEX_LITERAL
536 // rule labels: retval
537 // token list labels:
540 if ( state
.backtracking
==0 ) {
541 retval
.tree
= root_0
;
542 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
544 root_0
= (CommonTree
)adaptor
.nil();
545 // 224:23: -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* )
547 // Grammar/CTFParser.g:224:26: ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* )
549 CommonTree root_1
= (CommonTree
)adaptor
.nil();
550 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_HEX
, "UNARY_EXPRESSION_HEX"), root_1
);
552 adaptor
.addChild(root_1
, stream_HEX_LITERAL
.nextNode());
553 // Grammar/CTFParser.g:224:61: ( SIGN )*
554 while ( stream_SIGN
.hasNext() ) {
555 adaptor
.addChild(root_1
, stream_SIGN
.nextNode());
560 adaptor
.addChild(root_0
, root_1
);
565 retval
.tree
= root_0
;}
569 // Grammar/CTFParser.g:225:5: DECIMAL_LITERAL
571 DECIMAL_LITERAL5
=(Token
)match(input
,DECIMAL_LITERAL
,FOLLOW_DECIMAL_LITERAL_in_numberLiteral379
); if (state
.failed
) return retval
;
572 if ( state
.backtracking
==0 ) stream_DECIMAL_LITERAL
.add(DECIMAL_LITERAL5
);
577 // elements: DECIMAL_LITERAL, SIGN
579 // rule labels: retval
580 // token list labels:
583 if ( state
.backtracking
==0 ) {
584 retval
.tree
= root_0
;
585 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
587 root_0
= (CommonTree
)adaptor
.nil();
588 // 225:21: -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* )
590 // Grammar/CTFParser.g:225:24: ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* )
592 CommonTree root_1
= (CommonTree
)adaptor
.nil();
593 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_DEC
, "UNARY_EXPRESSION_DEC"), root_1
);
595 adaptor
.addChild(root_1
, stream_DECIMAL_LITERAL
.nextNode());
596 // Grammar/CTFParser.g:225:63: ( SIGN )*
597 while ( stream_SIGN
.hasNext() ) {
598 adaptor
.addChild(root_1
, stream_SIGN
.nextNode());
603 adaptor
.addChild(root_0
, root_1
);
608 retval
.tree
= root_0
;}
612 // Grammar/CTFParser.g:226:5: OCTAL_LITERAL
614 OCTAL_LITERAL6
=(Token
)match(input
,OCTAL_LITERAL
,FOLLOW_OCTAL_LITERAL_in_numberLiteral396
); if (state
.failed
) return retval
;
615 if ( state
.backtracking
==0 ) stream_OCTAL_LITERAL
.add(OCTAL_LITERAL6
);
620 // elements: SIGN, OCTAL_LITERAL
622 // rule labels: retval
623 // token list labels:
626 if ( state
.backtracking
==0 ) {
627 retval
.tree
= root_0
;
628 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
630 root_0
= (CommonTree
)adaptor
.nil();
631 // 226:19: -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* )
633 // Grammar/CTFParser.g:226:22: ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* )
635 CommonTree root_1
= (CommonTree
)adaptor
.nil();
636 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_OCT
, "UNARY_EXPRESSION_OCT"), root_1
);
638 adaptor
.addChild(root_1
, stream_OCTAL_LITERAL
.nextNode());
639 // Grammar/CTFParser.g:226:59: ( SIGN )*
640 while ( stream_SIGN
.hasNext() ) {
641 adaptor
.addChild(root_1
, stream_SIGN
.nextNode());
646 adaptor
.addChild(root_0
, root_1
);
651 retval
.tree
= root_0
;}
660 retval
.stop
= input
.LT(-1);
662 if ( state
.backtracking
==0 ) {
664 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
665 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
667 if ( state
.backtracking
==0 ) {
669 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
670 exit("numberLiteral");
675 catch (RecognitionException e
)
683 // $ANTLR end "numberLiteral"
685 public static class constant_return
extends ParserRuleReturnScope
{
688 public Object
getTree() { return tree
; }
691 // $ANTLR start "constant"
692 // Grammar/CTFParser.g:229:1: constant : ( numberLiteral | enumConstant | CHARACTER_LITERAL );
693 public final CTFParser
.constant_return
constant() throws RecognitionException
{
694 CTFParser
.constant_return retval
= new CTFParser
.constant_return();
695 retval
.start
= input
.LT(1);
697 CommonTree root_0
= null;
699 Token CHARACTER_LITERAL9
=null;
700 CTFParser
.numberLiteral_return numberLiteral7
= null;
702 CTFParser
.enumConstant_return enumConstant8
= null;
705 CommonTree CHARACTER_LITERAL9_tree
=null;
711 // Grammar/CTFParser.g:236:1: ( numberLiteral | enumConstant | CHARACTER_LITERAL )
713 switch ( input
.LA(1) ) {
716 case DECIMAL_LITERAL
:
732 case CHARACTER_LITERAL
:
738 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
739 NoViableAltException nvae
=
740 new NoViableAltException("", 4, 0, input
);
747 // Grammar/CTFParser.g:237:4: numberLiteral
749 root_0
= (CommonTree
)adaptor
.nil();
751 pushFollow(FOLLOW_numberLiteral_in_constant432
);
752 numberLiteral7
=numberLiteral();
755 if (state
.failed
) return retval
;
756 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, numberLiteral7
.getTree());
761 // Grammar/CTFParser.g:238:5: enumConstant
763 root_0
= (CommonTree
)adaptor
.nil();
765 pushFollow(FOLLOW_enumConstant_in_constant438
);
766 enumConstant8
=enumConstant();
769 if (state
.failed
) return retval
;
770 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, enumConstant8
.getTree());
775 // Grammar/CTFParser.g:239:5: CHARACTER_LITERAL
777 root_0
= (CommonTree
)adaptor
.nil();
779 CHARACTER_LITERAL9
=(Token
)match(input
,CHARACTER_LITERAL
,FOLLOW_CHARACTER_LITERAL_in_constant444
); if (state
.failed
) return retval
;
780 if ( state
.backtracking
==0 ) {
781 CHARACTER_LITERAL9_tree
= (CommonTree
)adaptor
.create(CHARACTER_LITERAL9
);
782 adaptor
.addChild(root_0
, CHARACTER_LITERAL9_tree
);
789 retval
.stop
= input
.LT(-1);
791 if ( state
.backtracking
==0 ) {
793 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
794 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
796 if ( state
.backtracking
==0 ) {
803 catch (RecognitionException e
)
811 // $ANTLR end "constant"
813 public static class primaryExpression_return
extends ParserRuleReturnScope
{
816 public Object
getTree() { return tree
; }
819 // $ANTLR start "primaryExpression"
820 // Grammar/CTFParser.g:242:1: primaryExpression : ( ( IDENTIFIER )=> IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=> ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | ( STRING_LITERAL )=> STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | constant );
821 public final CTFParser
.primaryExpression_return
primaryExpression() throws RecognitionException
{
822 CTFParser
.primaryExpression_return retval
= new CTFParser
.primaryExpression_return();
823 retval
.start
= input
.LT(1);
825 CommonTree root_0
= null;
827 Token IDENTIFIER10
=null;
828 Token STRING_LITERAL12
=null;
829 CTFParser
.ctfKeyword_return ctfKeyword11
= null;
831 CTFParser
.constant_return constant13
= null;
834 CommonTree IDENTIFIER10_tree
=null;
835 CommonTree STRING_LITERAL12_tree
=null;
836 RewriteRuleTokenStream stream_STRING_LITERAL
=new RewriteRuleTokenStream(adaptor
,"token STRING_LITERAL");
837 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
838 RewriteRuleSubtreeStream stream_ctfKeyword
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfKeyword");
840 enter("primaryExpression");
843 // Grammar/CTFParser.g:249:1: ( ( IDENTIFIER )=> IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=> ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | ( STRING_LITERAL )=> STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | constant )
845 switch ( input
.LA(1) ) {
848 int LA5_1
= input
.LA(2);
850 if ( (synpred1_CTFParser()) ) {
857 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
858 NoViableAltException nvae
=
859 new NoViableAltException("", 5, 1, input
);
870 int LA5_2
= input
.LA(2);
872 if ( (synpred2_CTFParser()) ) {
879 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
880 NoViableAltException nvae
=
881 new NoViableAltException("", 5, 2, input
);
889 int LA5_3
= input
.LA(2);
891 if ( (synpred3_CTFParser()) ) {
898 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
899 NoViableAltException nvae
=
900 new NoViableAltException("", 5, 3, input
);
908 case DECIMAL_LITERAL
:
910 case CHARACTER_LITERAL
:
916 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
917 NoViableAltException nvae
=
918 new NoViableAltException("", 5, 0, input
);
925 // Grammar/CTFParser.g:250:5: ( IDENTIFIER )=> IDENTIFIER
927 IDENTIFIER10
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_primaryExpression475
); if (state
.failed
) return retval
;
928 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER10
);
930 if ( state
.backtracking
==0 ) {
931 debug_print("IDENTIFIER: " + (IDENTIFIER10
!=null?IDENTIFIER10
.getText():null));
936 // elements: IDENTIFIER
938 // rule labels: retval
939 // token list labels:
942 if ( state
.backtracking
==0 ) {
943 retval
.tree
= root_0
;
944 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
946 root_0
= (CommonTree
)adaptor
.nil();
947 // 250:83: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER )
949 // Grammar/CTFParser.g:250:86: ^( UNARY_EXPRESSION_STRING IDENTIFIER )
951 CommonTree root_1
= (CommonTree
)adaptor
.nil();
952 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING
, "UNARY_EXPRESSION_STRING"), root_1
);
954 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
956 adaptor
.addChild(root_0
, root_1
);
961 retval
.tree
= root_0
;}
965 // Grammar/CTFParser.g:251:5: ( ctfKeyword )=> ctfKeyword
967 pushFollow(FOLLOW_ctfKeyword_in_primaryExpression497
);
968 ctfKeyword11
=ctfKeyword();
971 if (state
.failed
) return retval
;
972 if ( state
.backtracking
==0 ) stream_ctfKeyword
.add(ctfKeyword11
.getTree());
976 // elements: ctfKeyword
978 // rule labels: retval
979 // token list labels:
982 if ( state
.backtracking
==0 ) {
983 retval
.tree
= root_0
;
984 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
986 root_0
= (CommonTree
)adaptor
.nil();
987 // 251:32: -> ^( UNARY_EXPRESSION_STRING ctfKeyword )
989 // Grammar/CTFParser.g:251:35: ^( UNARY_EXPRESSION_STRING ctfKeyword )
991 CommonTree root_1
= (CommonTree
)adaptor
.nil();
992 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING
, "UNARY_EXPRESSION_STRING"), root_1
);
994 adaptor
.addChild(root_1
, stream_ctfKeyword
.nextTree());
996 adaptor
.addChild(root_0
, root_1
);
1001 retval
.tree
= root_0
;}
1005 // Grammar/CTFParser.g:252:5: ( STRING_LITERAL )=> STRING_LITERAL
1007 STRING_LITERAL12
=(Token
)match(input
,STRING_LITERAL
,FOLLOW_STRING_LITERAL_in_primaryExpression517
); if (state
.failed
) return retval
;
1008 if ( state
.backtracking
==0 ) stream_STRING_LITERAL
.add(STRING_LITERAL12
);
1010 if ( state
.backtracking
==0 ) {
1011 debug_print("STRING_LITERAL: " + (STRING_LITERAL12
!=null?STRING_LITERAL12
.getText():null));
1016 // elements: STRING_LITERAL
1018 // rule labels: retval
1019 // token list labels:
1020 // rule list labels:
1022 if ( state
.backtracking
==0 ) {
1023 retval
.tree
= root_0
;
1024 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1026 root_0
= (CommonTree
)adaptor
.nil();
1027 // 252:99: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1029 // Grammar/CTFParser.g:252:102: ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1031 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1032 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING_QUOTES
, "UNARY_EXPRESSION_STRING_QUOTES"), root_1
);
1034 adaptor
.addChild(root_1
, stream_STRING_LITERAL
.nextNode());
1036 adaptor
.addChild(root_0
, root_1
);
1041 retval
.tree
= root_0
;}
1045 // Grammar/CTFParser.g:254:5: constant
1047 root_0
= (CommonTree
)adaptor
.nil();
1049 pushFollow(FOLLOW_constant_in_primaryExpression538
);
1050 constant13
=constant();
1053 if (state
.failed
) return retval
;
1054 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, constant13
.getTree());
1060 retval
.stop
= input
.LT(-1);
1062 if ( state
.backtracking
==0 ) {
1064 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1065 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1067 if ( state
.backtracking
==0 ) {
1069 exit("primaryExpression");
1074 catch (RecognitionException e
)
1082 // $ANTLR end "primaryExpression"
1084 public static class reference_return
extends ParserRuleReturnScope
{
1087 public Object
getTree() { return tree
; }
1090 // $ANTLR start "reference"
1091 // Grammar/CTFParser.g:257:1: reference : (ref= DOT | ref= ARROW ) IDENTIFIER -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) ;
1092 public final CTFParser
.reference_return
reference() throws RecognitionException
{
1093 CTFParser
.reference_return retval
= new CTFParser
.reference_return();
1094 retval
.start
= input
.LT(1);
1096 CommonTree root_0
= null;
1099 Token IDENTIFIER14
=null;
1101 CommonTree ref_tree
=null;
1102 CommonTree IDENTIFIER14_tree
=null;
1103 RewriteRuleTokenStream stream_ARROW
=new RewriteRuleTokenStream(adaptor
,"token ARROW");
1104 RewriteRuleTokenStream stream_DOT
=new RewriteRuleTokenStream(adaptor
,"token DOT");
1105 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
1111 // Grammar/CTFParser.g:265:1: ( (ref= DOT | ref= ARROW ) IDENTIFIER -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) )
1112 // Grammar/CTFParser.g:266:3: (ref= DOT | ref= ARROW ) IDENTIFIER
1114 // Grammar/CTFParser.g:266:3: (ref= DOT | ref= ARROW )
1116 int LA6_0
= input
.LA(1);
1118 if ( (LA6_0
==DOT
) ) {
1121 else if ( (LA6_0
==ARROW
) ) {
1125 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
1126 NoViableAltException nvae
=
1127 new NoViableAltException("", 6, 0, input
);
1133 // Grammar/CTFParser.g:266:4: ref= DOT
1135 ref
=(Token
)match(input
,DOT
,FOLLOW_DOT_in_reference564
); if (state
.failed
) return retval
;
1136 if ( state
.backtracking
==0 ) stream_DOT
.add(ref
);
1142 // Grammar/CTFParser.g:266:14: ref= ARROW
1144 ref
=(Token
)match(input
,ARROW
,FOLLOW_ARROW_in_reference570
); if (state
.failed
) return retval
;
1145 if ( state
.backtracking
==0 ) stream_ARROW
.add(ref
);
1153 IDENTIFIER14
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_reference573
); if (state
.failed
) return retval
;
1154 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER14
);
1159 // elements: IDENTIFIER, ref
1160 // token labels: ref
1161 // rule labels: retval
1162 // token list labels:
1163 // rule list labels:
1165 if ( state
.backtracking
==0 ) {
1166 retval
.tree
= root_0
;
1167 RewriteRuleTokenStream stream_ref
=new RewriteRuleTokenStream(adaptor
,"token ref",ref
);
1168 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1170 root_0
= (CommonTree
)adaptor
.nil();
1171 // 266:36: -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) )
1173 // Grammar/CTFParser.g:266:39: ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) )
1175 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1176 root_1
= (CommonTree
)adaptor
.becomeRoot(stream_ref
.nextNode(), root_1
);
1178 // Grammar/CTFParser.g:266:46: ^( UNARY_EXPRESSION_STRING IDENTIFIER )
1180 CommonTree root_2
= (CommonTree
)adaptor
.nil();
1181 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING
, "UNARY_EXPRESSION_STRING"), root_2
);
1183 adaptor
.addChild(root_2
, stream_IDENTIFIER
.nextNode());
1185 adaptor
.addChild(root_1
, root_2
);
1188 adaptor
.addChild(root_0
, root_1
);
1193 retval
.tree
= root_0
;}
1196 retval
.stop
= input
.LT(-1);
1198 if ( state
.backtracking
==0 ) {
1200 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1201 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1203 if ( state
.backtracking
==0 ) {
1205 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
1211 catch (RecognitionException e
)
1219 // $ANTLR end "reference"
1221 public static class postfixExpressionSuffix_return
extends ParserRuleReturnScope
{
1224 public Object
getTree() { return tree
; }
1227 // $ANTLR start "postfixExpressionSuffix"
1228 // Grammar/CTFParser.g:269:1: postfixExpressionSuffix : ( ( OPENBRAC unaryExpression CLOSEBRAC ) | reference );
1229 public final CTFParser
.postfixExpressionSuffix_return
postfixExpressionSuffix() throws RecognitionException
{
1230 CTFParser
.postfixExpressionSuffix_return retval
= new CTFParser
.postfixExpressionSuffix_return();
1231 retval
.start
= input
.LT(1);
1233 CommonTree root_0
= null;
1235 Token OPENBRAC15
=null;
1236 Token CLOSEBRAC17
=null;
1237 CTFParser
.unaryExpression_return unaryExpression16
= null;
1239 CTFParser
.reference_return reference18
= null;
1242 CommonTree OPENBRAC15_tree
=null;
1243 CommonTree CLOSEBRAC17_tree
=null;
1246 enter("postfixExpressionSuffix");
1249 // Grammar/CTFParser.g:276:1: ( ( OPENBRAC unaryExpression CLOSEBRAC ) | reference )
1251 int LA7_0
= input
.LA(1);
1253 if ( (LA7_0
==OPENBRAC
) ) {
1256 else if ( ((LA7_0
>=ARROW
&& LA7_0
<=DOT
)) ) {
1260 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
1261 NoViableAltException nvae
=
1262 new NoViableAltException("", 7, 0, input
);
1268 // Grammar/CTFParser.g:277:5: ( OPENBRAC unaryExpression CLOSEBRAC )
1270 root_0
= (CommonTree
)adaptor
.nil();
1272 // Grammar/CTFParser.g:277:5: ( OPENBRAC unaryExpression CLOSEBRAC )
1273 // Grammar/CTFParser.g:277:6: OPENBRAC unaryExpression CLOSEBRAC
1275 OPENBRAC15
=(Token
)match(input
,OPENBRAC
,FOLLOW_OPENBRAC_in_postfixExpressionSuffix612
); if (state
.failed
) return retval
;
1276 if ( state
.backtracking
==0 ) {
1277 OPENBRAC15_tree
= (CommonTree
)adaptor
.create(OPENBRAC15
);
1278 adaptor
.addChild(root_0
, OPENBRAC15_tree
);
1280 pushFollow(FOLLOW_unaryExpression_in_postfixExpressionSuffix614
);
1281 unaryExpression16
=unaryExpression();
1284 if (state
.failed
) return retval
;
1285 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, unaryExpression16
.getTree());
1286 CLOSEBRAC17
=(Token
)match(input
,CLOSEBRAC
,FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix616
); if (state
.failed
) return retval
;
1294 // Grammar/CTFParser.g:278:5: reference
1296 root_0
= (CommonTree
)adaptor
.nil();
1298 pushFollow(FOLLOW_reference_in_postfixExpressionSuffix624
);
1299 reference18
=reference();
1302 if (state
.failed
) return retval
;
1303 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, reference18
.getTree());
1309 retval
.stop
= input
.LT(-1);
1311 if ( state
.backtracking
==0 ) {
1313 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1314 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1316 if ( state
.backtracking
==0 ) {
1318 exit("postfixExpressionSuffix");
1323 catch (RecognitionException e
)
1331 // $ANTLR end "postfixExpressionSuffix"
1333 public static class postfixExpression_return
extends ParserRuleReturnScope
{
1336 public Object
getTree() { return tree
; }
1339 // $ANTLR start "postfixExpression"
1340 // Grammar/CTFParser.g:281:1: postfixExpression : ( ( primaryExpression ) ( postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ ) );
1341 public final CTFParser
.postfixExpression_return
postfixExpression() throws RecognitionException
{
1342 CTFParser
.postfixExpression_return retval
= new CTFParser
.postfixExpression_return();
1343 retval
.start
= input
.LT(1);
1345 CommonTree root_0
= null;
1347 CTFParser
.primaryExpression_return primaryExpression19
= null;
1349 CTFParser
.postfixExpressionSuffix_return postfixExpressionSuffix20
= null;
1351 CTFParser
.ctfSpecifierHead_return ctfSpecifierHead21
= null;
1353 CTFParser
.postfixExpressionSuffix_return postfixExpressionSuffix22
= null;
1358 enter("postfixExpression");
1361 // Grammar/CTFParser.g:288:1: ( ( primaryExpression ) ( postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ ) )
1363 alt10
= dfa10
.predict(input
);
1366 // Grammar/CTFParser.g:289:3: ( primaryExpression ) ( postfixExpressionSuffix )*
1368 root_0
= (CommonTree
)adaptor
.nil();
1370 // Grammar/CTFParser.g:289:3: ( primaryExpression )
1371 // Grammar/CTFParser.g:289:4: primaryExpression
1373 pushFollow(FOLLOW_primaryExpression_in_postfixExpression648
);
1374 primaryExpression19
=primaryExpression();
1377 if (state
.failed
) return retval
;
1378 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, primaryExpression19
.getTree());
1382 // Grammar/CTFParser.g:289:23: ( postfixExpressionSuffix )*
1386 int LA8_0
= input
.LA(1);
1388 if ( (LA8_0
==OPENBRAC
||(LA8_0
>=ARROW
&& LA8_0
<=DOT
)) ) {
1395 // Grammar/CTFParser.g:289:24: postfixExpressionSuffix
1397 pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression652
);
1398 postfixExpressionSuffix20
=postfixExpressionSuffix();
1401 if (state
.failed
) return retval
;
1402 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, postfixExpressionSuffix20
.getTree());
1416 // Grammar/CTFParser.g:290:3: ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ )
1418 root_0
= (CommonTree
)adaptor
.nil();
1420 // Grammar/CTFParser.g:290:3: ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ )
1421 // Grammar/CTFParser.g:290:4: ( ctfSpecifierHead ) ( postfixExpressionSuffix )+
1423 // Grammar/CTFParser.g:290:4: ( ctfSpecifierHead )
1424 // Grammar/CTFParser.g:290:5: ctfSpecifierHead
1426 pushFollow(FOLLOW_ctfSpecifierHead_in_postfixExpression661
);
1427 ctfSpecifierHead21
=ctfSpecifierHead();
1430 if (state
.failed
) return retval
;
1431 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, ctfSpecifierHead21
.getTree());
1435 // Grammar/CTFParser.g:290:24: ( postfixExpressionSuffix )+
1440 int LA9_0
= input
.LA(1);
1442 if ( (LA9_0
==OPENBRAC
||(LA9_0
>=ARROW
&& LA9_0
<=DOT
)) ) {
1449 // Grammar/CTFParser.g:290:25: postfixExpressionSuffix
1451 pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression666
);
1452 postfixExpressionSuffix22
=postfixExpressionSuffix();
1455 if (state
.failed
) return retval
;
1456 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, postfixExpressionSuffix22
.getTree());
1462 if ( cnt9
>= 1 ) break loop9
;
1463 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
1464 EarlyExitException eee
=
1465 new EarlyExitException(9, input
);
1479 retval
.stop
= input
.LT(-1);
1481 if ( state
.backtracking
==0 ) {
1483 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1484 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1486 if ( state
.backtracking
==0 ) {
1488 exit("postfixExpression");
1493 catch (RecognitionException e
)
1501 // $ANTLR end "postfixExpression"
1503 public static class unaryExpression_return
extends ParserRuleReturnScope
{
1506 public Object
getTree() { return tree
; }
1509 // $ANTLR start "unaryExpression"
1510 // Grammar/CTFParser.g:293:1: unaryExpression : postfixExpression ;
1511 public final CTFParser
.unaryExpression_return
unaryExpression() throws RecognitionException
{
1512 CTFParser
.unaryExpression_return retval
= new CTFParser
.unaryExpression_return();
1513 retval
.start
= input
.LT(1);
1515 CommonTree root_0
= null;
1517 CTFParser
.postfixExpression_return postfixExpression23
= null;
1522 enter("unaryExpression");
1525 // Grammar/CTFParser.g:300:1: ( postfixExpression )
1526 // Grammar/CTFParser.g:303:5: postfixExpression
1528 root_0
= (CommonTree
)adaptor
.nil();
1530 pushFollow(FOLLOW_postfixExpression_in_unaryExpression700
);
1531 postfixExpression23
=postfixExpression();
1534 if (state
.failed
) return retval
;
1535 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, postfixExpression23
.getTree());
1539 retval
.stop
= input
.LT(-1);
1541 if ( state
.backtracking
==0 ) {
1543 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1544 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1546 if ( state
.backtracking
==0 ) {
1548 exit("unaryExpression");
1553 catch (RecognitionException e
)
1561 // $ANTLR end "unaryExpression"
1563 public static class enumConstant_return
extends ParserRuleReturnScope
{
1566 public Object
getTree() { return tree
; }
1569 // $ANTLR start "enumConstant"
1570 // Grammar/CTFParser.g:306:1: enumConstant : ( STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) );
1571 public final CTFParser
.enumConstant_return
enumConstant() throws RecognitionException
{
1572 CTFParser
.enumConstant_return retval
= new CTFParser
.enumConstant_return();
1573 retval
.start
= input
.LT(1);
1575 CommonTree root_0
= null;
1577 Token STRING_LITERAL24
=null;
1578 Token IDENTIFIER25
=null;
1579 CTFParser
.ctfKeyword_return ctfKeyword26
= null;
1582 CommonTree STRING_LITERAL24_tree
=null;
1583 CommonTree IDENTIFIER25_tree
=null;
1584 RewriteRuleTokenStream stream_STRING_LITERAL
=new RewriteRuleTokenStream(adaptor
,"token STRING_LITERAL");
1585 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
1586 RewriteRuleSubtreeStream stream_ctfKeyword
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfKeyword");
1588 enter("enumConstant");
1591 // Grammar/CTFParser.g:314:1: ( STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) )
1593 switch ( input
.LA(1) ) {
1594 case STRING_LITERAL
:
1613 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
1614 NoViableAltException nvae
=
1615 new NoViableAltException("", 11, 0, input
);
1622 // Grammar/CTFParser.g:315:5: STRING_LITERAL
1624 STRING_LITERAL24
=(Token
)match(input
,STRING_LITERAL
,FOLLOW_STRING_LITERAL_in_enumConstant725
); if (state
.failed
) return retval
;
1625 if ( state
.backtracking
==0 ) stream_STRING_LITERAL
.add(STRING_LITERAL24
);
1630 // elements: STRING_LITERAL
1632 // rule labels: retval
1633 // token list labels:
1634 // rule list labels:
1636 if ( state
.backtracking
==0 ) {
1637 retval
.tree
= root_0
;
1638 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1640 root_0
= (CommonTree
)adaptor
.nil();
1641 // 315:20: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1643 // Grammar/CTFParser.g:315:23: ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1645 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1646 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING_QUOTES
, "UNARY_EXPRESSION_STRING_QUOTES"), root_1
);
1648 adaptor
.addChild(root_1
, stream_STRING_LITERAL
.nextNode());
1650 adaptor
.addChild(root_0
, root_1
);
1655 retval
.tree
= root_0
;}
1659 // Grammar/CTFParser.g:316:7: IDENTIFIER
1661 IDENTIFIER25
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_enumConstant741
); if (state
.failed
) return retval
;
1662 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER25
);
1667 // elements: IDENTIFIER
1669 // rule labels: retval
1670 // token list labels:
1671 // rule list labels:
1673 if ( state
.backtracking
==0 ) {
1674 retval
.tree
= root_0
;
1675 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1677 root_0
= (CommonTree
)adaptor
.nil();
1678 // 316:18: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER )
1680 // Grammar/CTFParser.g:316:21: ^( UNARY_EXPRESSION_STRING IDENTIFIER )
1682 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1683 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING
, "UNARY_EXPRESSION_STRING"), root_1
);
1685 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
1687 adaptor
.addChild(root_0
, root_1
);
1692 retval
.tree
= root_0
;}
1696 // Grammar/CTFParser.g:317:7: ctfKeyword
1698 pushFollow(FOLLOW_ctfKeyword_in_enumConstant757
);
1699 ctfKeyword26
=ctfKeyword();
1702 if (state
.failed
) return retval
;
1703 if ( state
.backtracking
==0 ) stream_ctfKeyword
.add(ctfKeyword26
.getTree());
1707 // elements: ctfKeyword
1709 // rule labels: retval
1710 // token list labels:
1711 // rule list labels:
1713 if ( state
.backtracking
==0 ) {
1714 retval
.tree
= root_0
;
1715 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1717 root_0
= (CommonTree
)adaptor
.nil();
1718 // 317:18: -> ^( UNARY_EXPRESSION_STRING ctfKeyword )
1720 // Grammar/CTFParser.g:317:21: ^( UNARY_EXPRESSION_STRING ctfKeyword )
1722 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1723 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(UNARY_EXPRESSION_STRING
, "UNARY_EXPRESSION_STRING"), root_1
);
1725 adaptor
.addChild(root_1
, stream_ctfKeyword
.nextTree());
1727 adaptor
.addChild(root_0
, root_1
);
1732 retval
.tree
= root_0
;}
1737 retval
.stop
= input
.LT(-1);
1739 if ( state
.backtracking
==0 ) {
1741 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1742 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1744 if ( state
.backtracking
==0 ) {
1746 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
1747 exit("enumConstant");
1752 catch (RecognitionException e
)
1760 // $ANTLR end "enumConstant"
1762 public static class declaration_return
extends ParserRuleReturnScope
{
1765 public Object
getTree() { return tree
; }
1768 // $ANTLR start "declaration"
1769 // Grammar/CTFParser.g:321:1: declaration : ( ( declarationSpecifiers ( declaratorList )? TERM ) -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ( ctfSpecifier TERM ) );
1770 public final CTFParser
.declaration_return
declaration() throws RecognitionException
{
1771 CTFParser
.declaration_return retval
= new CTFParser
.declaration_return();
1772 retval
.start
= input
.LT(1);
1774 CommonTree root_0
= null;
1778 CTFParser
.declarationSpecifiers_return declarationSpecifiers27
= null;
1780 CTFParser
.declaratorList_return declaratorList28
= null;
1782 CTFParser
.ctfSpecifier_return ctfSpecifier30
= null;
1785 CommonTree TERM29_tree
=null;
1786 CommonTree TERM31_tree
=null;
1787 RewriteRuleTokenStream stream_TERM
=new RewriteRuleTokenStream(adaptor
,"token TERM");
1788 RewriteRuleSubtreeStream stream_declaratorList
=new RewriteRuleSubtreeStream(adaptor
,"rule declaratorList");
1789 RewriteRuleSubtreeStream stream_declarationSpecifiers
=new RewriteRuleSubtreeStream(adaptor
,"rule declarationSpecifiers");
1791 enter("declaration");
1794 // Grammar/CTFParser.g:330:1: ( ( declarationSpecifiers ( declaratorList )? TERM ) -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ( ctfSpecifier TERM ) )
1796 int LA13_0
= input
.LA(1);
1798 if ( ((LA13_0
>=CONSTTOK
&& LA13_0
<=ENUMTOK
)||(LA13_0
>=FLOATINGPOINTTOK
&& LA13_0
<=SIGNEDTOK
)||(LA13_0
>=STRINGTOK
&& LA13_0
<=STRUCTTOK
)||(LA13_0
>=TYPEDEFTOK
&& LA13_0
<=IMAGINARYTOK
)) ) {
1801 else if ( (LA13_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
1804 else if ( (LA13_0
==EVENTTOK
||LA13_0
==STREAMTOK
||(LA13_0
>=TRACETOK
&& LA13_0
<=TYPEALIASTOK
)||(LA13_0
>=ENVTOK
&& LA13_0
<=CLOCKTOK
)) ) {
1808 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
1809 NoViableAltException nvae
=
1810 new NoViableAltException("", 13, 0, input
);
1816 // Grammar/CTFParser.g:331:3: ( declarationSpecifiers ( declaratorList )? TERM )
1818 // Grammar/CTFParser.g:331:3: ( declarationSpecifiers ( declaratorList )? TERM )
1819 // Grammar/CTFParser.g:331:4: declarationSpecifiers ( declaratorList )? TERM
1821 pushFollow(FOLLOW_declarationSpecifiers_in_declaration790
);
1822 declarationSpecifiers27
=declarationSpecifiers();
1825 if (state
.failed
) return retval
;
1826 if ( state
.backtracking
==0 ) stream_declarationSpecifiers
.add(declarationSpecifiers27
.getTree());
1827 // Grammar/CTFParser.g:331:26: ( declaratorList )?
1829 int LA12_0
= input
.LA(1);
1831 if ( (LA12_0
==POINTER
||LA12_0
==IDENTIFIER
) ) {
1836 // Grammar/CTFParser.g:331:26: declaratorList
1838 pushFollow(FOLLOW_declaratorList_in_declaration792
);
1839 declaratorList28
=declaratorList();
1842 if (state
.failed
) return retval
;
1843 if ( state
.backtracking
==0 ) stream_declaratorList
.add(declaratorList28
.getTree());
1850 TERM29
=(Token
)match(input
,TERM
,FOLLOW_TERM_in_declaration795
); if (state
.failed
) return retval
;
1851 if ( state
.backtracking
==0 ) stream_TERM
.add(TERM29
);
1859 // elements: declaratorList, declaratorList, declarationSpecifiers, declarationSpecifiers
1861 // rule labels: retval
1862 // token list labels:
1863 // rule list labels:
1865 if ( state
.backtracking
==0 ) {
1866 retval
.tree
= root_0
;
1867 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
1869 root_0
= (CommonTree
)adaptor
.nil();
1870 // 334:3: -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) )
1872 // Grammar/CTFParser.g:334:21: ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) )
1874 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1875 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(DECLARATION
, "DECLARATION"), root_1
);
1877 // Grammar/CTFParser.g:334:35: ^( TYPEDEF declaratorList declarationSpecifiers )
1879 CommonTree root_2
= (CommonTree
)adaptor
.nil();
1880 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEDEF
, "TYPEDEF"), root_2
);
1882 adaptor
.addChild(root_2
, stream_declaratorList
.nextTree());
1883 adaptor
.addChild(root_2
, stream_declarationSpecifiers
.nextTree());
1885 adaptor
.addChild(root_1
, root_2
);
1888 adaptor
.addChild(root_0
, root_1
);
1892 else // 335:3: -> ^( DECLARATION declarationSpecifiers ( declaratorList )? )
1894 // Grammar/CTFParser.g:335:6: ^( DECLARATION declarationSpecifiers ( declaratorList )? )
1896 CommonTree root_1
= (CommonTree
)adaptor
.nil();
1897 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(DECLARATION
, "DECLARATION"), root_1
);
1899 adaptor
.addChild(root_1
, stream_declarationSpecifiers
.nextTree());
1900 // Grammar/CTFParser.g:335:42: ( declaratorList )?
1901 if ( stream_declaratorList
.hasNext() ) {
1902 adaptor
.addChild(root_1
, stream_declaratorList
.nextTree());
1905 stream_declaratorList
.reset();
1907 adaptor
.addChild(root_0
, root_1
);
1912 retval
.tree
= root_0
;}
1916 // Grammar/CTFParser.g:337:5: ( ctfSpecifier TERM )
1918 root_0
= (CommonTree
)adaptor
.nil();
1920 // Grammar/CTFParser.g:337:5: ( ctfSpecifier TERM )
1921 // Grammar/CTFParser.g:337:6: ctfSpecifier TERM
1923 pushFollow(FOLLOW_ctfSpecifier_in_declaration844
);
1924 ctfSpecifier30
=ctfSpecifier();
1927 if (state
.failed
) return retval
;
1928 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, ctfSpecifier30
.getTree());
1929 TERM31
=(Token
)match(input
,TERM
,FOLLOW_TERM_in_declaration846
); if (state
.failed
) return retval
;
1938 retval
.stop
= input
.LT(-1);
1940 if ( state
.backtracking
==0 ) {
1942 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
1943 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
1945 if ( state
.backtracking
==0 ) {
1947 exit("declaration");
1954 catch (RecognitionException e
)
1962 // $ANTLR end "declaration"
1964 public static class declarationSpecifiers_return
extends ParserRuleReturnScope
{
1967 public Object
getTree() { return tree
; }
1970 // $ANTLR start "declarationSpecifiers"
1971 // Grammar/CTFParser.g:340:1: declarationSpecifiers : ( storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ;
1972 public final CTFParser
.declarationSpecifiers_return
declarationSpecifiers() throws RecognitionException
{
1973 CTFParser
.declarationSpecifiers_return retval
= new CTFParser
.declarationSpecifiers_return();
1974 retval
.start
= input
.LT(1);
1976 CommonTree root_0
= null;
1978 CTFParser
.storageClassSpecifier_return storageClassSpecifier32
= null;
1980 CTFParser
.typeQualifier_return typeQualifier33
= null;
1982 CTFParser
.typeSpecifier_return typeSpecifier34
= null;
1985 RewriteRuleSubtreeStream stream_typeSpecifier
=new RewriteRuleSubtreeStream(adaptor
,"rule typeSpecifier");
1986 RewriteRuleSubtreeStream stream_typeQualifier
=new RewriteRuleSubtreeStream(adaptor
,"rule typeQualifier");
1987 RewriteRuleSubtreeStream stream_storageClassSpecifier
=new RewriteRuleSubtreeStream(adaptor
,"rule storageClassSpecifier");
1989 enter("declarationSpecifiers");
1992 // Grammar/CTFParser.g:348:1: ( ( storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) )
1993 // Grammar/CTFParser.g:349:3: ( storageClassSpecifier | typeQualifier | typeSpecifier )+
1995 // Grammar/CTFParser.g:349:3: ( storageClassSpecifier | typeQualifier | typeSpecifier )+
2000 switch ( input
.LA(1) ) {
2003 int LA14_2
= input
.LA(2);
2005 if ( ((inTypealiasAlias() || isTypeName(input
.LT(1).getText()))) ) {
2025 case FLOATINGPOINTTOK
:
2049 // Grammar/CTFParser.g:352:6: storageClassSpecifier
2051 pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifiers891
);
2052 storageClassSpecifier32
=storageClassSpecifier();
2055 if (state
.failed
) return retval
;
2056 if ( state
.backtracking
==0 ) stream_storageClassSpecifier
.add(storageClassSpecifier32
.getTree());
2061 // Grammar/CTFParser.g:353:6: typeQualifier
2063 pushFollow(FOLLOW_typeQualifier_in_declarationSpecifiers898
);
2064 typeQualifier33
=typeQualifier();
2067 if (state
.failed
) return retval
;
2068 if ( state
.backtracking
==0 ) stream_typeQualifier
.add(typeQualifier33
.getTree());
2073 // Grammar/CTFParser.g:354:6: typeSpecifier
2075 pushFollow(FOLLOW_typeSpecifier_in_declarationSpecifiers905
);
2076 typeSpecifier34
=typeSpecifier();
2079 if (state
.failed
) return retval
;
2080 if ( state
.backtracking
==0 ) stream_typeSpecifier
.add(typeSpecifier34
.getTree());
2086 if ( cnt14
>= 1 ) break loop14
;
2087 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
2088 EarlyExitException eee
=
2089 new EarlyExitException(14, input
);
2098 // elements: typeQualifier, typeSpecifier
2100 // rule labels: retval
2101 // token list labels:
2102 // rule list labels:
2104 if ( state
.backtracking
==0 ) {
2105 retval
.tree
= root_0
;
2106 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
2108 root_0
= (CommonTree
)adaptor
.nil();
2109 // 355:6: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* )
2111 // Grammar/CTFParser.g:355:9: ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* )
2113 CommonTree root_1
= (CommonTree
)adaptor
.nil();
2114 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_SPECIFIER_LIST
, "TYPE_SPECIFIER_LIST"), root_1
);
2116 // Grammar/CTFParser.g:355:31: ( typeQualifier )*
2117 while ( stream_typeQualifier
.hasNext() ) {
2118 adaptor
.addChild(root_1
, stream_typeQualifier
.nextTree());
2121 stream_typeQualifier
.reset();
2122 // Grammar/CTFParser.g:355:46: ( typeSpecifier )*
2123 while ( stream_typeSpecifier
.hasNext() ) {
2124 adaptor
.addChild(root_1
, stream_typeSpecifier
.nextTree());
2127 stream_typeSpecifier
.reset();
2129 adaptor
.addChild(root_0
, root_1
);
2134 retval
.tree
= root_0
;}
2137 retval
.stop
= input
.LT(-1);
2139 if ( state
.backtracking
==0 ) {
2141 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2142 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2144 if ( state
.backtracking
==0 ) {
2146 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
2147 exit("declarationSpecifiers");
2152 catch (RecognitionException e
)
2160 // $ANTLR end "declarationSpecifiers"
2162 public static class declaratorList_return
extends ParserRuleReturnScope
{
2165 public Object
getTree() { return tree
; }
2168 // $ANTLR start "declaratorList"
2169 // Grammar/CTFParser.g:358:1: declaratorList : declarator ( SEPARATOR declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) ;
2170 public final CTFParser
.declaratorList_return
declaratorList() throws RecognitionException
{
2171 CTFParser
.declaratorList_return retval
= new CTFParser
.declaratorList_return();
2172 retval
.start
= input
.LT(1);
2174 CommonTree root_0
= null;
2176 Token SEPARATOR36
=null;
2177 CTFParser
.declarator_return declarator35
= null;
2179 CTFParser
.declarator_return declarator37
= null;
2182 CommonTree SEPARATOR36_tree
=null;
2183 RewriteRuleTokenStream stream_SEPARATOR
=new RewriteRuleTokenStream(adaptor
,"token SEPARATOR");
2184 RewriteRuleSubtreeStream stream_declarator
=new RewriteRuleSubtreeStream(adaptor
,"rule declarator");
2186 enter("declaratorList");
2189 // Grammar/CTFParser.g:365:1: ( declarator ( SEPARATOR declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) )
2190 // Grammar/CTFParser.g:366:3: declarator ( SEPARATOR declarator )*
2192 pushFollow(FOLLOW_declarator_in_declaratorList946
);
2193 declarator35
=declarator();
2196 if (state
.failed
) return retval
;
2197 if ( state
.backtracking
==0 ) stream_declarator
.add(declarator35
.getTree());
2198 // Grammar/CTFParser.g:366:14: ( SEPARATOR declarator )*
2202 int LA15_0
= input
.LA(1);
2204 if ( (LA15_0
==SEPARATOR
) ) {
2211 // Grammar/CTFParser.g:366:15: SEPARATOR declarator
2213 SEPARATOR36
=(Token
)match(input
,SEPARATOR
,FOLLOW_SEPARATOR_in_declaratorList949
); if (state
.failed
) return retval
;
2214 if ( state
.backtracking
==0 ) stream_SEPARATOR
.add(SEPARATOR36
);
2216 pushFollow(FOLLOW_declarator_in_declaratorList951
);
2217 declarator37
=declarator();
2220 if (state
.failed
) return retval
;
2221 if ( state
.backtracking
==0 ) stream_declarator
.add(declarator37
.getTree());
2234 // elements: declarator
2236 // rule labels: retval
2237 // token list labels:
2238 // rule list labels:
2240 if ( state
.backtracking
==0 ) {
2241 retval
.tree
= root_0
;
2242 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
2244 root_0
= (CommonTree
)adaptor
.nil();
2245 // 366:38: -> ^( TYPE_DECLARATOR_LIST ( declarator )+ )
2247 // Grammar/CTFParser.g:366:41: ^( TYPE_DECLARATOR_LIST ( declarator )+ )
2249 CommonTree root_1
= (CommonTree
)adaptor
.nil();
2250 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR_LIST
, "TYPE_DECLARATOR_LIST"), root_1
);
2252 if ( !(stream_declarator
.hasNext()) ) {
2253 throw new RewriteEarlyExitException();
2255 while ( stream_declarator
.hasNext() ) {
2256 adaptor
.addChild(root_1
, stream_declarator
.nextTree());
2259 stream_declarator
.reset();
2261 adaptor
.addChild(root_0
, root_1
);
2266 retval
.tree
= root_0
;}
2269 retval
.stop
= input
.LT(-1);
2271 if ( state
.backtracking
==0 ) {
2273 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2274 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2276 if ( state
.backtracking
==0 ) {
2278 exit("declaratorList");
2283 catch (RecognitionException e
)
2291 // $ANTLR end "declaratorList"
2293 public static class abstractDeclaratorList_return
extends ParserRuleReturnScope
{
2296 public Object
getTree() { return tree
; }
2299 // $ANTLR start "abstractDeclaratorList"
2300 // Grammar/CTFParser.g:369:1: abstractDeclaratorList : abstractDeclarator ( SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) ;
2301 public final CTFParser
.abstractDeclaratorList_return
abstractDeclaratorList() throws RecognitionException
{
2302 CTFParser
.abstractDeclaratorList_return retval
= new CTFParser
.abstractDeclaratorList_return();
2303 retval
.start
= input
.LT(1);
2305 CommonTree root_0
= null;
2307 Token SEPARATOR39
=null;
2308 CTFParser
.abstractDeclarator_return abstractDeclarator38
= null;
2310 CTFParser
.abstractDeclarator_return abstractDeclarator40
= null;
2313 CommonTree SEPARATOR39_tree
=null;
2314 RewriteRuleTokenStream stream_SEPARATOR
=new RewriteRuleTokenStream(adaptor
,"token SEPARATOR");
2315 RewriteRuleSubtreeStream stream_abstractDeclarator
=new RewriteRuleSubtreeStream(adaptor
,"rule abstractDeclarator");
2317 enter("abstractDeclaratorList");
2320 // Grammar/CTFParser.g:376:1: ( abstractDeclarator ( SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) )
2321 // Grammar/CTFParser.g:377:3: abstractDeclarator ( SEPARATOR abstractDeclarator )*
2323 pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList985
);
2324 abstractDeclarator38
=abstractDeclarator();
2327 if (state
.failed
) return retval
;
2328 if ( state
.backtracking
==0 ) stream_abstractDeclarator
.add(abstractDeclarator38
.getTree());
2329 // Grammar/CTFParser.g:377:22: ( SEPARATOR abstractDeclarator )*
2333 int LA16_0
= input
.LA(1);
2335 if ( (LA16_0
==SEPARATOR
) ) {
2342 // Grammar/CTFParser.g:377:23: SEPARATOR abstractDeclarator
2344 SEPARATOR39
=(Token
)match(input
,SEPARATOR
,FOLLOW_SEPARATOR_in_abstractDeclaratorList988
); if (state
.failed
) return retval
;
2345 if ( state
.backtracking
==0 ) stream_SEPARATOR
.add(SEPARATOR39
);
2347 pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList990
);
2348 abstractDeclarator40
=abstractDeclarator();
2351 if (state
.failed
) return retval
;
2352 if ( state
.backtracking
==0 ) stream_abstractDeclarator
.add(abstractDeclarator40
.getTree());
2365 // elements: abstractDeclarator
2367 // rule labels: retval
2368 // token list labels:
2369 // rule list labels:
2371 if ( state
.backtracking
==0 ) {
2372 retval
.tree
= root_0
;
2373 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
2375 root_0
= (CommonTree
)adaptor
.nil();
2376 // 377:54: -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ )
2378 // Grammar/CTFParser.g:377:57: ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ )
2380 CommonTree root_1
= (CommonTree
)adaptor
.nil();
2381 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR_LIST
, "TYPE_DECLARATOR_LIST"), root_1
);
2383 if ( !(stream_abstractDeclarator
.hasNext()) ) {
2384 throw new RewriteEarlyExitException();
2386 while ( stream_abstractDeclarator
.hasNext() ) {
2387 adaptor
.addChild(root_1
, stream_abstractDeclarator
.nextTree());
2390 stream_abstractDeclarator
.reset();
2392 adaptor
.addChild(root_0
, root_1
);
2397 retval
.tree
= root_0
;}
2400 retval
.stop
= input
.LT(-1);
2402 if ( state
.backtracking
==0 ) {
2404 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2405 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2407 if ( state
.backtracking
==0 ) {
2409 exit("abstractDeclaratorList");
2414 catch (RecognitionException e
)
2422 // $ANTLR end "abstractDeclaratorList"
2424 public static class storageClassSpecifier_return
extends ParserRuleReturnScope
{
2427 public Object
getTree() { return tree
; }
2430 // $ANTLR start "storageClassSpecifier"
2431 // Grammar/CTFParser.g:380:1: storageClassSpecifier : TYPEDEFTOK ;
2432 public final CTFParser
.storageClassSpecifier_return
storageClassSpecifier() throws RecognitionException
{
2433 CTFParser
.storageClassSpecifier_return retval
= new CTFParser
.storageClassSpecifier_return();
2434 retval
.start
= input
.LT(1);
2436 CommonTree root_0
= null;
2438 Token TYPEDEFTOK41
=null;
2440 CommonTree TYPEDEFTOK41_tree
=null;
2443 // Grammar/CTFParser.g:380:23: ( TYPEDEFTOK )
2444 // Grammar/CTFParser.g:381:3: TYPEDEFTOK
2446 root_0
= (CommonTree
)adaptor
.nil();
2448 TYPEDEFTOK41
=(Token
)match(input
,TYPEDEFTOK
,FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1014
); if (state
.failed
) return retval
;
2449 if ( state
.backtracking
==0 ) {
2450 TYPEDEFTOK41_tree
= (CommonTree
)adaptor
.create(TYPEDEFTOK41
);
2451 adaptor
.addChild(root_0
, TYPEDEFTOK41_tree
);
2453 if ( state
.backtracking
==0 ) {
2459 retval
.stop
= input
.LT(-1);
2461 if ( state
.backtracking
==0 ) {
2463 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2464 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2468 catch (RecognitionException e
)
2476 // $ANTLR end "storageClassSpecifier"
2478 public static class typeSpecifier_return
extends ParserRuleReturnScope
{
2481 public Object
getTree() { return tree
; }
2484 // $ANTLR start "typeSpecifier"
2485 // Grammar/CTFParser.g:384:1: typeSpecifier : ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier | {...}? => typedefName );
2486 public final CTFParser
.typeSpecifier_return
typeSpecifier() throws RecognitionException
{
2487 CTFParser
.typeSpecifier_return retval
= new CTFParser
.typeSpecifier_return();
2488 retval
.start
= input
.LT(1);
2490 CommonTree root_0
= null;
2492 Token FLOATTOK42
=null;
2493 Token INTTOK43
=null;
2494 Token LONGTOK44
=null;
2495 Token SHORTTOK45
=null;
2496 Token SIGNEDTOK46
=null;
2497 Token UNSIGNEDTOK47
=null;
2498 Token CHARTOK48
=null;
2499 Token DOUBLETOK49
=null;
2500 Token VOIDTOK50
=null;
2501 Token BOOLTOK51
=null;
2502 Token COMPLEXTOK52
=null;
2503 Token IMAGINARYTOK53
=null;
2504 CTFParser
.structSpecifier_return structSpecifier54
= null;
2506 CTFParser
.variantSpecifier_return variantSpecifier55
= null;
2508 CTFParser
.enumSpecifier_return enumSpecifier56
= null;
2510 CTFParser
.ctfTypeSpecifier_return ctfTypeSpecifier57
= null;
2512 CTFParser
.typedefName_return typedefName58
= null;
2515 CommonTree FLOATTOK42_tree
=null;
2516 CommonTree INTTOK43_tree
=null;
2517 CommonTree LONGTOK44_tree
=null;
2518 CommonTree SHORTTOK45_tree
=null;
2519 CommonTree SIGNEDTOK46_tree
=null;
2520 CommonTree UNSIGNEDTOK47_tree
=null;
2521 CommonTree CHARTOK48_tree
=null;
2522 CommonTree DOUBLETOK49_tree
=null;
2523 CommonTree VOIDTOK50_tree
=null;
2524 CommonTree BOOLTOK51_tree
=null;
2525 CommonTree COMPLEXTOK52_tree
=null;
2526 CommonTree IMAGINARYTOK53_tree
=null;
2529 enter("typeSpecifier");
2532 // Grammar/CTFParser.g:392:1: ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier | {...}? => typedefName )
2534 alt17
= dfa17
.predict(input
);
2537 // Grammar/CTFParser.g:393:3: FLOATTOK
2539 root_0
= (CommonTree
)adaptor
.nil();
2541 FLOATTOK42
=(Token
)match(input
,FLOATTOK
,FOLLOW_FLOATTOK_in_typeSpecifier1040
); if (state
.failed
) return retval
;
2542 if ( state
.backtracking
==0 ) {
2543 FLOATTOK42_tree
= (CommonTree
)adaptor
.create(FLOATTOK42
);
2544 adaptor
.addChild(root_0
, FLOATTOK42_tree
);
2550 // Grammar/CTFParser.g:394:5: INTTOK
2552 root_0
= (CommonTree
)adaptor
.nil();
2554 INTTOK43
=(Token
)match(input
,INTTOK
,FOLLOW_INTTOK_in_typeSpecifier1046
); if (state
.failed
) return retval
;
2555 if ( state
.backtracking
==0 ) {
2556 INTTOK43_tree
= (CommonTree
)adaptor
.create(INTTOK43
);
2557 adaptor
.addChild(root_0
, INTTOK43_tree
);
2563 // Grammar/CTFParser.g:395:5: LONGTOK
2565 root_0
= (CommonTree
)adaptor
.nil();
2567 LONGTOK44
=(Token
)match(input
,LONGTOK
,FOLLOW_LONGTOK_in_typeSpecifier1052
); if (state
.failed
) return retval
;
2568 if ( state
.backtracking
==0 ) {
2569 LONGTOK44_tree
= (CommonTree
)adaptor
.create(LONGTOK44
);
2570 adaptor
.addChild(root_0
, LONGTOK44_tree
);
2576 // Grammar/CTFParser.g:396:5: SHORTTOK
2578 root_0
= (CommonTree
)adaptor
.nil();
2580 SHORTTOK45
=(Token
)match(input
,SHORTTOK
,FOLLOW_SHORTTOK_in_typeSpecifier1058
); if (state
.failed
) return retval
;
2581 if ( state
.backtracking
==0 ) {
2582 SHORTTOK45_tree
= (CommonTree
)adaptor
.create(SHORTTOK45
);
2583 adaptor
.addChild(root_0
, SHORTTOK45_tree
);
2589 // Grammar/CTFParser.g:397:5: SIGNEDTOK
2591 root_0
= (CommonTree
)adaptor
.nil();
2593 SIGNEDTOK46
=(Token
)match(input
,SIGNEDTOK
,FOLLOW_SIGNEDTOK_in_typeSpecifier1064
); if (state
.failed
) return retval
;
2594 if ( state
.backtracking
==0 ) {
2595 SIGNEDTOK46_tree
= (CommonTree
)adaptor
.create(SIGNEDTOK46
);
2596 adaptor
.addChild(root_0
, SIGNEDTOK46_tree
);
2602 // Grammar/CTFParser.g:398:5: UNSIGNEDTOK
2604 root_0
= (CommonTree
)adaptor
.nil();
2606 UNSIGNEDTOK47
=(Token
)match(input
,UNSIGNEDTOK
,FOLLOW_UNSIGNEDTOK_in_typeSpecifier1070
); if (state
.failed
) return retval
;
2607 if ( state
.backtracking
==0 ) {
2608 UNSIGNEDTOK47_tree
= (CommonTree
)adaptor
.create(UNSIGNEDTOK47
);
2609 adaptor
.addChild(root_0
, UNSIGNEDTOK47_tree
);
2615 // Grammar/CTFParser.g:399:5: CHARTOK
2617 root_0
= (CommonTree
)adaptor
.nil();
2619 CHARTOK48
=(Token
)match(input
,CHARTOK
,FOLLOW_CHARTOK_in_typeSpecifier1076
); if (state
.failed
) return retval
;
2620 if ( state
.backtracking
==0 ) {
2621 CHARTOK48_tree
= (CommonTree
)adaptor
.create(CHARTOK48
);
2622 adaptor
.addChild(root_0
, CHARTOK48_tree
);
2628 // Grammar/CTFParser.g:400:5: DOUBLETOK
2630 root_0
= (CommonTree
)adaptor
.nil();
2632 DOUBLETOK49
=(Token
)match(input
,DOUBLETOK
,FOLLOW_DOUBLETOK_in_typeSpecifier1082
); if (state
.failed
) return retval
;
2633 if ( state
.backtracking
==0 ) {
2634 DOUBLETOK49_tree
= (CommonTree
)adaptor
.create(DOUBLETOK49
);
2635 adaptor
.addChild(root_0
, DOUBLETOK49_tree
);
2641 // Grammar/CTFParser.g:401:5: VOIDTOK
2643 root_0
= (CommonTree
)adaptor
.nil();
2645 VOIDTOK50
=(Token
)match(input
,VOIDTOK
,FOLLOW_VOIDTOK_in_typeSpecifier1088
); if (state
.failed
) return retval
;
2646 if ( state
.backtracking
==0 ) {
2647 VOIDTOK50_tree
= (CommonTree
)adaptor
.create(VOIDTOK50
);
2648 adaptor
.addChild(root_0
, VOIDTOK50_tree
);
2654 // Grammar/CTFParser.g:402:5: BOOLTOK
2656 root_0
= (CommonTree
)adaptor
.nil();
2658 BOOLTOK51
=(Token
)match(input
,BOOLTOK
,FOLLOW_BOOLTOK_in_typeSpecifier1094
); if (state
.failed
) return retval
;
2659 if ( state
.backtracking
==0 ) {
2660 BOOLTOK51_tree
= (CommonTree
)adaptor
.create(BOOLTOK51
);
2661 adaptor
.addChild(root_0
, BOOLTOK51_tree
);
2667 // Grammar/CTFParser.g:403:5: COMPLEXTOK
2669 root_0
= (CommonTree
)adaptor
.nil();
2671 COMPLEXTOK52
=(Token
)match(input
,COMPLEXTOK
,FOLLOW_COMPLEXTOK_in_typeSpecifier1100
); if (state
.failed
) return retval
;
2672 if ( state
.backtracking
==0 ) {
2673 COMPLEXTOK52_tree
= (CommonTree
)adaptor
.create(COMPLEXTOK52
);
2674 adaptor
.addChild(root_0
, COMPLEXTOK52_tree
);
2680 // Grammar/CTFParser.g:404:5: IMAGINARYTOK
2682 root_0
= (CommonTree
)adaptor
.nil();
2684 IMAGINARYTOK53
=(Token
)match(input
,IMAGINARYTOK
,FOLLOW_IMAGINARYTOK_in_typeSpecifier1106
); if (state
.failed
) return retval
;
2685 if ( state
.backtracking
==0 ) {
2686 IMAGINARYTOK53_tree
= (CommonTree
)adaptor
.create(IMAGINARYTOK53
);
2687 adaptor
.addChild(root_0
, IMAGINARYTOK53_tree
);
2693 // Grammar/CTFParser.g:405:5: structSpecifier
2695 root_0
= (CommonTree
)adaptor
.nil();
2697 pushFollow(FOLLOW_structSpecifier_in_typeSpecifier1112
);
2698 structSpecifier54
=structSpecifier();
2701 if (state
.failed
) return retval
;
2702 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, structSpecifier54
.getTree());
2707 // Grammar/CTFParser.g:406:5: variantSpecifier
2709 root_0
= (CommonTree
)adaptor
.nil();
2711 pushFollow(FOLLOW_variantSpecifier_in_typeSpecifier1118
);
2712 variantSpecifier55
=variantSpecifier();
2715 if (state
.failed
) return retval
;
2716 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, variantSpecifier55
.getTree());
2721 // Grammar/CTFParser.g:407:5: enumSpecifier
2723 root_0
= (CommonTree
)adaptor
.nil();
2725 pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier1124
);
2726 enumSpecifier56
=enumSpecifier();
2729 if (state
.failed
) return retval
;
2730 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, enumSpecifier56
.getTree());
2735 // Grammar/CTFParser.g:408:5: ctfTypeSpecifier
2737 root_0
= (CommonTree
)adaptor
.nil();
2739 pushFollow(FOLLOW_ctfTypeSpecifier_in_typeSpecifier1130
);
2740 ctfTypeSpecifier57
=ctfTypeSpecifier();
2743 if (state
.failed
) return retval
;
2744 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, ctfTypeSpecifier57
.getTree());
2749 // Grammar/CTFParser.g:409:5: {...}? => typedefName
2751 root_0
= (CommonTree
)adaptor
.nil();
2753 if ( !((inTypealiasAlias() || isTypeName(input
.LT(1).getText()))) ) {
2754 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
2755 throw new FailedPredicateException(input
, "typeSpecifier", "inTypealiasAlias() || isTypeName(input.LT(1).getText())");
2757 pushFollow(FOLLOW_typedefName_in_typeSpecifier1140
);
2758 typedefName58
=typedefName();
2761 if (state
.failed
) return retval
;
2762 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, typedefName58
.getTree());
2768 retval
.stop
= input
.LT(-1);
2770 if ( state
.backtracking
==0 ) {
2772 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2773 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2775 if ( state
.backtracking
==0 ) {
2777 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
2778 exit("typeSpecifier");
2783 catch (RecognitionException e
)
2791 // $ANTLR end "typeSpecifier"
2793 public static class typeQualifier_return
extends ParserRuleReturnScope
{
2796 public Object
getTree() { return tree
; }
2799 // $ANTLR start "typeQualifier"
2800 // Grammar/CTFParser.g:412:1: typeQualifier : CONSTTOK ;
2801 public final CTFParser
.typeQualifier_return
typeQualifier() throws RecognitionException
{
2802 CTFParser
.typeQualifier_return retval
= new CTFParser
.typeQualifier_return();
2803 retval
.start
= input
.LT(1);
2805 CommonTree root_0
= null;
2807 Token CONSTTOK59
=null;
2809 CommonTree CONSTTOK59_tree
=null;
2812 enter("typeQualifier");
2815 // Grammar/CTFParser.g:420:1: ( CONSTTOK )
2816 // Grammar/CTFParser.g:421:3: CONSTTOK
2818 root_0
= (CommonTree
)adaptor
.nil();
2820 CONSTTOK59
=(Token
)match(input
,CONSTTOK
,FOLLOW_CONSTTOK_in_typeQualifier1163
); if (state
.failed
) return retval
;
2821 if ( state
.backtracking
==0 ) {
2822 CONSTTOK59_tree
= (CommonTree
)adaptor
.create(CONSTTOK59
);
2823 adaptor
.addChild(root_0
, CONSTTOK59_tree
);
2828 retval
.stop
= input
.LT(-1);
2830 if ( state
.backtracking
==0 ) {
2832 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2833 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2835 if ( state
.backtracking
==0 ) {
2837 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
2838 exit("typeQualifier");
2843 catch (RecognitionException e
)
2851 // $ANTLR end "typeQualifier"
2853 public static class alignAttribute_return
extends ParserRuleReturnScope
{
2856 public Object
getTree() { return tree
; }
2859 // $ANTLR start "alignAttribute"
2860 // Grammar/CTFParser.g:424:1: alignAttribute : ALIGNTOK LPAREN unaryExpression RPAREN -> ^( ALIGN unaryExpression ) ;
2861 public final CTFParser
.alignAttribute_return
alignAttribute() throws RecognitionException
{
2862 CTFParser
.alignAttribute_return retval
= new CTFParser
.alignAttribute_return();
2863 retval
.start
= input
.LT(1);
2865 CommonTree root_0
= null;
2867 Token ALIGNTOK60
=null;
2868 Token LPAREN61
=null;
2869 Token RPAREN63
=null;
2870 CTFParser
.unaryExpression_return unaryExpression62
= null;
2873 CommonTree ALIGNTOK60_tree
=null;
2874 CommonTree LPAREN61_tree
=null;
2875 CommonTree RPAREN63_tree
=null;
2876 RewriteRuleTokenStream stream_RPAREN
=new RewriteRuleTokenStream(adaptor
,"token RPAREN");
2877 RewriteRuleTokenStream stream_ALIGNTOK
=new RewriteRuleTokenStream(adaptor
,"token ALIGNTOK");
2878 RewriteRuleTokenStream stream_LPAREN
=new RewriteRuleTokenStream(adaptor
,"token LPAREN");
2879 RewriteRuleSubtreeStream stream_unaryExpression
=new RewriteRuleSubtreeStream(adaptor
,"rule unaryExpression");
2881 // Grammar/CTFParser.g:424:16: ( ALIGNTOK LPAREN unaryExpression RPAREN -> ^( ALIGN unaryExpression ) )
2882 // Grammar/CTFParser.g:425:3: ALIGNTOK LPAREN unaryExpression RPAREN
2884 ALIGNTOK60
=(Token
)match(input
,ALIGNTOK
,FOLLOW_ALIGNTOK_in_alignAttribute1176
); if (state
.failed
) return retval
;
2885 if ( state
.backtracking
==0 ) stream_ALIGNTOK
.add(ALIGNTOK60
);
2887 LPAREN61
=(Token
)match(input
,LPAREN
,FOLLOW_LPAREN_in_alignAttribute1178
); if (state
.failed
) return retval
;
2888 if ( state
.backtracking
==0 ) stream_LPAREN
.add(LPAREN61
);
2890 pushFollow(FOLLOW_unaryExpression_in_alignAttribute1180
);
2891 unaryExpression62
=unaryExpression();
2894 if (state
.failed
) return retval
;
2895 if ( state
.backtracking
==0 ) stream_unaryExpression
.add(unaryExpression62
.getTree());
2896 RPAREN63
=(Token
)match(input
,RPAREN
,FOLLOW_RPAREN_in_alignAttribute1182
); if (state
.failed
) return retval
;
2897 if ( state
.backtracking
==0 ) stream_RPAREN
.add(RPAREN63
);
2902 // elements: unaryExpression
2904 // rule labels: retval
2905 // token list labels:
2906 // rule list labels:
2908 if ( state
.backtracking
==0 ) {
2909 retval
.tree
= root_0
;
2910 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
2912 root_0
= (CommonTree
)adaptor
.nil();
2913 // 425:42: -> ^( ALIGN unaryExpression )
2915 // Grammar/CTFParser.g:425:45: ^( ALIGN unaryExpression )
2917 CommonTree root_1
= (CommonTree
)adaptor
.nil();
2918 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ALIGN
, "ALIGN"), root_1
);
2920 adaptor
.addChild(root_1
, stream_unaryExpression
.nextTree());
2922 adaptor
.addChild(root_0
, root_1
);
2927 retval
.tree
= root_0
;}
2930 retval
.stop
= input
.LT(-1);
2932 if ( state
.backtracking
==0 ) {
2934 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
2935 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
2939 catch (RecognitionException e
)
2947 // $ANTLR end "alignAttribute"
2949 public static class structBody_return
extends ParserRuleReturnScope
{
2952 public Object
getTree() { return tree
; }
2955 // $ANTLR start "structBody"
2956 // Grammar/CTFParser.g:429:1: structBody : LCURL ( structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) ;
2957 public final CTFParser
.structBody_return
structBody() throws RecognitionException
{
2958 Symbols_stack
.push(new Symbols_scope());
2960 CTFParser
.structBody_return retval
= new CTFParser
.structBody_return();
2961 retval
.start
= input
.LT(1);
2963 CommonTree root_0
= null;
2967 CTFParser
.structOrVariantDeclarationList_return structOrVariantDeclarationList65
= null;
2970 CommonTree LCURL64_tree
=null;
2971 CommonTree RCURL66_tree
=null;
2972 RewriteRuleTokenStream stream_LCURL
=new RewriteRuleTokenStream(adaptor
,"token LCURL");
2973 RewriteRuleTokenStream stream_RCURL
=new RewriteRuleTokenStream(adaptor
,"token RCURL");
2974 RewriteRuleSubtreeStream stream_structOrVariantDeclarationList
=new RewriteRuleSubtreeStream(adaptor
,"rule structOrVariantDeclarationList");
2976 enter("structBody");
2977 debug_print("Scope push " + Symbols_stack
.size());
2978 ((Symbols_scope
)Symbols_stack
.peek()).types
= new HashSet
<String
>();
2981 // Grammar/CTFParser.g:440:1: ( LCURL ( structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) )
2982 // Grammar/CTFParser.g:441:3: LCURL ( structOrVariantDeclarationList )? RCURL
2984 LCURL64
=(Token
)match(input
,LCURL
,FOLLOW_LCURL_in_structBody1223
); if (state
.failed
) return retval
;
2985 if ( state
.backtracking
==0 ) stream_LCURL
.add(LCURL64
);
2987 // Grammar/CTFParser.g:441:9: ( structOrVariantDeclarationList )?
2989 int LA18_0
= input
.LA(1);
2991 if ( ((LA18_0
>=CONSTTOK
&& LA18_0
<=ENUMTOK
)||(LA18_0
>=FLOATINGPOINTTOK
&& LA18_0
<=SIGNEDTOK
)||(LA18_0
>=STRINGTOK
&& LA18_0
<=STRUCTTOK
)||(LA18_0
>=TYPEDEFTOK
&& LA18_0
<=IMAGINARYTOK
)) ) {
2994 else if ( (LA18_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
2997 else if ( (LA18_0
==TYPEALIASTOK
) ) {
3002 // Grammar/CTFParser.g:441:9: structOrVariantDeclarationList
3004 pushFollow(FOLLOW_structOrVariantDeclarationList_in_structBody1225
);
3005 structOrVariantDeclarationList65
=structOrVariantDeclarationList();
3008 if (state
.failed
) return retval
;
3009 if ( state
.backtracking
==0 ) stream_structOrVariantDeclarationList
.add(structOrVariantDeclarationList65
.getTree());
3016 RCURL66
=(Token
)match(input
,RCURL
,FOLLOW_RCURL_in_structBody1228
); if (state
.failed
) return retval
;
3017 if ( state
.backtracking
==0 ) stream_RCURL
.add(RCURL66
);
3022 // elements: structOrVariantDeclarationList
3024 // rule labels: retval
3025 // token list labels:
3026 // rule list labels:
3028 if ( state
.backtracking
==0 ) {
3029 retval
.tree
= root_0
;
3030 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3032 root_0
= (CommonTree
)adaptor
.nil();
3033 // 441:47: -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? )
3035 // Grammar/CTFParser.g:441:50: ^( STRUCT_BODY ( structOrVariantDeclarationList )? )
3037 CommonTree root_1
= (CommonTree
)adaptor
.nil();
3038 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(STRUCT_BODY
, "STRUCT_BODY"), root_1
);
3040 // Grammar/CTFParser.g:441:64: ( structOrVariantDeclarationList )?
3041 if ( stream_structOrVariantDeclarationList
.hasNext() ) {
3042 adaptor
.addChild(root_1
, stream_structOrVariantDeclarationList
.nextTree());
3045 stream_structOrVariantDeclarationList
.reset();
3047 adaptor
.addChild(root_0
, root_1
);
3052 retval
.tree
= root_0
;}
3055 retval
.stop
= input
.LT(-1);
3057 if ( state
.backtracking
==0 ) {
3059 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
3060 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
3062 if ( state
.backtracking
==0 ) {
3064 debug_print("Scope pop " + Symbols_stack
.size());
3070 catch (RecognitionException e
)
3075 Symbols_stack
.pop();
3080 // $ANTLR end "structBody"
3082 public static class structSpecifier_return
extends ParserRuleReturnScope
{
3085 public Object
getTree() { return tree
; }
3088 // $ANTLR start "structSpecifier"
3089 // Grammar/CTFParser.g:446:1: structSpecifier : STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | ( structBody ( alignAttribute | ) ) ) -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) ;
3090 public final CTFParser
.structSpecifier_return
structSpecifier() throws RecognitionException
{
3091 CTFParser
.structSpecifier_return retval
= new CTFParser
.structSpecifier_return();
3092 retval
.start
= input
.LT(1);
3094 CommonTree root_0
= null;
3096 Token STRUCTTOK67
=null;
3097 CTFParser
.structName_return structName68
= null;
3099 CTFParser
.alignAttribute_return alignAttribute69
= null;
3101 CTFParser
.structBody_return structBody70
= null;
3103 CTFParser
.alignAttribute_return alignAttribute71
= null;
3105 CTFParser
.structBody_return structBody72
= null;
3107 CTFParser
.alignAttribute_return alignAttribute73
= null;
3110 CommonTree STRUCTTOK67_tree
=null;
3111 RewriteRuleTokenStream stream_STRUCTTOK
=new RewriteRuleTokenStream(adaptor
,"token STRUCTTOK");
3112 RewriteRuleSubtreeStream stream_structName
=new RewriteRuleSubtreeStream(adaptor
,"rule structName");
3113 RewriteRuleSubtreeStream stream_structBody
=new RewriteRuleSubtreeStream(adaptor
,"rule structBody");
3114 RewriteRuleSubtreeStream stream_alignAttribute
=new RewriteRuleSubtreeStream(adaptor
,"rule alignAttribute");
3116 enter("structSpecifier");
3119 // Grammar/CTFParser.g:453:1: ( STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | ( structBody ( alignAttribute | ) ) ) -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) )
3120 // Grammar/CTFParser.g:454:3: STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | ( structBody ( alignAttribute | ) ) )
3122 STRUCTTOK67
=(Token
)match(input
,STRUCTTOK
,FOLLOW_STRUCTTOK_in_structSpecifier1266
); if (state
.failed
) return retval
;
3123 if ( state
.backtracking
==0 ) stream_STRUCTTOK
.add(STRUCTTOK67
);
3125 // Grammar/CTFParser.g:455:3: ( ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | ( structBody ( alignAttribute | ) ) )
3127 int LA22_0
= input
.LA(1);
3129 if ( (LA22_0
==IDENTIFIER
) ) {
3132 else if ( (LA22_0
==LCURL
) ) {
3136 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3137 NoViableAltException nvae
=
3138 new NoViableAltException("", 22, 0, input
);
3144 // Grammar/CTFParser.g:457:5: ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) )
3146 // Grammar/CTFParser.g:457:5: ( structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | ) )
3147 // Grammar/CTFParser.g:458:6: structName ( alignAttribute | ( structBody ( alignAttribute | ) ) | )
3149 pushFollow(FOLLOW_structName_in_structSpecifier1288
);
3150 structName68
=structName();
3153 if (state
.failed
) return retval
;
3154 if ( state
.backtracking
==0 ) stream_structName
.add(structName68
.getTree());
3155 // Grammar/CTFParser.g:459:6: ( alignAttribute | ( structBody ( alignAttribute | ) ) | )
3157 switch ( input
.LA(1) ) {
3165 switch ( input
.LA(2) ) {
3170 case FLOATINGPOINTTOK
:
3192 int LA20_5
= input
.LA(3);
3194 if ( ((LA20_5
>=CONSTTOK
&& LA20_5
<=ENUMTOK
)||(LA20_5
>=FLOATINGPOINTTOK
&& LA20_5
<=SIGNEDTOK
)||(LA20_5
>=STRINGTOK
&& LA20_5
<=STRUCTTOK
)||(LA20_5
>=TYPEDEFTOK
&& LA20_5
<=IMAGINARYTOK
)||LA20_5
==POINTER
||LA20_5
==IDENTIFIER
) ) {
3197 else if ( (LA20_5
==SEPARATOR
||LA20_5
==ASSIGNMENT
||LA20_5
==RCURL
) ) {
3201 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3202 NoViableAltException nvae
=
3203 new NoViableAltException("", 20, 5, input
);
3211 int LA20_6
= input
.LA(3);
3213 if ( ((LA20_6
>=CONSTTOK
&& LA20_6
<=ENUMTOK
)||(LA20_6
>=FLOATINGPOINTTOK
&& LA20_6
<=SIGNEDTOK
)||(LA20_6
>=STRINGTOK
&& LA20_6
<=STRUCTTOK
)||(LA20_6
>=TYPEDEFTOK
&& LA20_6
<=IMAGINARYTOK
)||LA20_6
==LCURL
||LA20_6
==POINTER
||LA20_6
==IDENTIFIER
) ) {
3216 else if ( (LA20_6
==SEPARATOR
||LA20_6
==ASSIGNMENT
||LA20_6
==RCURL
) ) {
3220 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3221 NoViableAltException nvae
=
3222 new NoViableAltException("", 20, 6, input
);
3230 int LA20_7
= input
.LA(3);
3232 if ( (LA20_7
==SEPARATOR
||LA20_7
==ASSIGNMENT
||LA20_7
==RCURL
) ) {
3235 else if ( ((LA20_7
>=CONSTTOK
&& LA20_7
<=ENUMTOK
)||(LA20_7
>=FLOATINGPOINTTOK
&& LA20_7
<=SIGNEDTOK
)||(LA20_7
>=STRINGTOK
&& LA20_7
<=STRUCTTOK
)||(LA20_7
>=TYPEDEFTOK
&& LA20_7
<=IMAGINARYTOK
)||LA20_7
==POINTER
||LA20_7
==IDENTIFIER
) ) {
3239 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3240 NoViableAltException nvae
=
3241 new NoViableAltException("", 20, 7, input
);
3249 case STRING_LITERAL
:
3255 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3256 NoViableAltException nvae
=
3257 new NoViableAltException("", 20, 2, input
);
3269 case FLOATINGPOINTTOK
:
3285 case TYPE_ASSIGNMENT
:
3295 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3296 NoViableAltException nvae
=
3297 new NoViableAltException("", 20, 0, input
);
3304 // Grammar/CTFParser.g:460:8: alignAttribute
3306 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1304
);
3307 alignAttribute69
=alignAttribute();
3310 if (state
.failed
) return retval
;
3311 if ( state
.backtracking
==0 ) stream_alignAttribute
.add(alignAttribute69
.getTree());
3316 // Grammar/CTFParser.g:462:8: ( structBody ( alignAttribute | ) )
3318 // Grammar/CTFParser.g:462:8: ( structBody ( alignAttribute | ) )
3319 // Grammar/CTFParser.g:463:10: structBody ( alignAttribute | )
3321 pushFollow(FOLLOW_structBody_in_structSpecifier1333
);
3322 structBody70
=structBody();
3325 if (state
.failed
) return retval
;
3326 if ( state
.backtracking
==0 ) stream_structBody
.add(structBody70
.getTree());
3327 // Grammar/CTFParser.g:464:10: ( alignAttribute | )
3329 int LA19_0
= input
.LA(1);
3331 if ( (LA19_0
==ALIGNTOK
) ) {
3334 else if ( (LA19_0
==EOF
||(LA19_0
>=CONSTTOK
&& LA19_0
<=ENUMTOK
)||(LA19_0
>=FLOATINGPOINTTOK
&& LA19_0
<=SIGNEDTOK
)||(LA19_0
>=STRINGTOK
&& LA19_0
<=STRUCTTOK
)||(LA19_0
>=TYPEDEFTOK
&& LA19_0
<=IMAGINARYTOK
)||LA19_0
==TYPE_ASSIGNMENT
||LA19_0
==LPAREN
||LA19_0
==LCURL
||(LA19_0
>=TERM
&& LA19_0
<=POINTER
)||LA19_0
==IDENTIFIER
) ) {
3338 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3339 NoViableAltException nvae
=
3340 new NoViableAltException("", 19, 0, input
);
3346 // Grammar/CTFParser.g:465:11: alignAttribute
3348 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1358
);
3349 alignAttribute71
=alignAttribute();
3352 if (state
.failed
) return retval
;
3353 if ( state
.backtracking
==0 ) stream_alignAttribute
.add(alignAttribute71
.getTree());
3358 // Grammar/CTFParser.g:468:10:
3372 // Grammar/CTFParser.g:472:6:
3386 // Grammar/CTFParser.g:476:5: ( structBody ( alignAttribute | ) )
3388 // Grammar/CTFParser.g:476:5: ( structBody ( alignAttribute | ) )
3389 // Grammar/CTFParser.g:477:7: structBody ( alignAttribute | )
3391 pushFollow(FOLLOW_structBody_in_structSpecifier1456
);
3392 structBody72
=structBody();
3395 if (state
.failed
) return retval
;
3396 if ( state
.backtracking
==0 ) stream_structBody
.add(structBody72
.getTree());
3397 // Grammar/CTFParser.g:478:7: ( alignAttribute | )
3399 int LA21_0
= input
.LA(1);
3401 if ( (LA21_0
==ALIGNTOK
) ) {
3404 else if ( (LA21_0
==EOF
||(LA21_0
>=CONSTTOK
&& LA21_0
<=ENUMTOK
)||(LA21_0
>=FLOATINGPOINTTOK
&& LA21_0
<=SIGNEDTOK
)||(LA21_0
>=STRINGTOK
&& LA21_0
<=STRUCTTOK
)||(LA21_0
>=TYPEDEFTOK
&& LA21_0
<=IMAGINARYTOK
)||LA21_0
==TYPE_ASSIGNMENT
||LA21_0
==LPAREN
||LA21_0
==LCURL
||(LA21_0
>=TERM
&& LA21_0
<=POINTER
)||LA21_0
==IDENTIFIER
) ) {
3408 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3409 NoViableAltException nvae
=
3410 new NoViableAltException("", 21, 0, input
);
3416 // Grammar/CTFParser.g:479:9: alignAttribute
3418 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1474
);
3419 alignAttribute73
=alignAttribute();
3422 if (state
.failed
) return retval
;
3423 if ( state
.backtracking
==0 ) stream_alignAttribute
.add(alignAttribute73
.getTree());
3428 // Grammar/CTFParser.g:482:7:
3447 // elements: alignAttribute, structName, structBody
3449 // rule labels: retval
3450 // token list labels:
3451 // rule list labels:
3453 if ( state
.backtracking
==0 ) {
3454 retval
.tree
= root_0
;
3455 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3457 root_0
= (CommonTree
)adaptor
.nil();
3458 // 484:5: -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? )
3460 // Grammar/CTFParser.g:484:8: ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? )
3462 CommonTree root_1
= (CommonTree
)adaptor
.nil();
3463 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(STRUCT
, "STRUCT"), root_1
);
3465 // Grammar/CTFParser.g:484:17: ( structName )?
3466 if ( stream_structName
.hasNext() ) {
3467 adaptor
.addChild(root_1
, stream_structName
.nextTree());
3470 stream_structName
.reset();
3471 // Grammar/CTFParser.g:484:29: ( structBody )?
3472 if ( stream_structBody
.hasNext() ) {
3473 adaptor
.addChild(root_1
, stream_structBody
.nextTree());
3476 stream_structBody
.reset();
3477 // Grammar/CTFParser.g:484:41: ( alignAttribute )?
3478 if ( stream_alignAttribute
.hasNext() ) {
3479 adaptor
.addChild(root_1
, stream_alignAttribute
.nextTree());
3482 stream_alignAttribute
.reset();
3484 adaptor
.addChild(root_0
, root_1
);
3489 retval
.tree
= root_0
;}
3492 retval
.stop
= input
.LT(-1);
3494 if ( state
.backtracking
==0 ) {
3496 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
3497 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
3499 if ( state
.backtracking
==0 ) {
3501 exit("structSpecifier");
3506 catch (RecognitionException e
)
3514 // $ANTLR end "structSpecifier"
3516 public static class structName_return
extends ParserRuleReturnScope
{
3519 public Object
getTree() { return tree
; }
3522 // $ANTLR start "structName"
3523 // Grammar/CTFParser.g:487:1: structName : IDENTIFIER -> ^( STRUCT_NAME IDENTIFIER ) ;
3524 public final CTFParser
.structName_return
structName() throws RecognitionException
{
3525 CTFParser
.structName_return retval
= new CTFParser
.structName_return();
3526 retval
.start
= input
.LT(1);
3528 CommonTree root_0
= null;
3530 Token IDENTIFIER74
=null;
3532 CommonTree IDENTIFIER74_tree
=null;
3533 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
3536 enter("structName");
3539 // Grammar/CTFParser.g:495:1: ( IDENTIFIER -> ^( STRUCT_NAME IDENTIFIER ) )
3540 // Grammar/CTFParser.g:496:3: IDENTIFIER
3542 IDENTIFIER74
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_structName1550
); if (state
.failed
) return retval
;
3543 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER74
);
3548 // elements: IDENTIFIER
3550 // rule labels: retval
3551 // token list labels:
3552 // rule list labels:
3554 if ( state
.backtracking
==0 ) {
3555 retval
.tree
= root_0
;
3556 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3558 root_0
= (CommonTree
)adaptor
.nil();
3559 // 496:14: -> ^( STRUCT_NAME IDENTIFIER )
3561 // Grammar/CTFParser.g:496:17: ^( STRUCT_NAME IDENTIFIER )
3563 CommonTree root_1
= (CommonTree
)adaptor
.nil();
3564 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(STRUCT_NAME
, "STRUCT_NAME"), root_1
);
3566 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
3568 adaptor
.addChild(root_0
, root_1
);
3573 retval
.tree
= root_0
;}
3576 retval
.stop
= input
.LT(-1);
3578 if ( state
.backtracking
==0 ) {
3580 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
3581 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
3583 if ( state
.backtracking
==0 ) {
3585 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
3591 catch (RecognitionException e
)
3599 // $ANTLR end "structName"
3601 public static class structOrVariantDeclarationList_return
extends ParserRuleReturnScope
{
3604 public Object
getTree() { return tree
; }
3607 // $ANTLR start "structOrVariantDeclarationList"
3608 // Grammar/CTFParser.g:499:1: structOrVariantDeclarationList : ( structOrVariantDeclaration )+ ;
3609 public final CTFParser
.structOrVariantDeclarationList_return
structOrVariantDeclarationList() throws RecognitionException
{
3610 CTFParser
.structOrVariantDeclarationList_return retval
= new CTFParser
.structOrVariantDeclarationList_return();
3611 retval
.start
= input
.LT(1);
3613 CommonTree root_0
= null;
3615 CTFParser
.structOrVariantDeclaration_return structOrVariantDeclaration75
= null;
3620 enter("structOrVariantDeclarationList");
3623 // Grammar/CTFParser.g:506:1: ( ( structOrVariantDeclaration )+ )
3624 // Grammar/CTFParser.g:507:3: ( structOrVariantDeclaration )+
3626 root_0
= (CommonTree
)adaptor
.nil();
3628 // Grammar/CTFParser.g:507:3: ( structOrVariantDeclaration )+
3633 int LA23_0
= input
.LA(1);
3635 if ( ((LA23_0
>=CONSTTOK
&& LA23_0
<=ENUMTOK
)||(LA23_0
>=FLOATINGPOINTTOK
&& LA23_0
<=SIGNEDTOK
)||(LA23_0
>=STRINGTOK
&& LA23_0
<=STRUCTTOK
)||(LA23_0
>=TYPEDEFTOK
&& LA23_0
<=IMAGINARYTOK
)) ) {
3638 else if ( (LA23_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
3641 else if ( (LA23_0
==TYPEALIASTOK
) ) {
3648 // Grammar/CTFParser.g:507:3: structOrVariantDeclaration
3650 pushFollow(FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1581
);
3651 structOrVariantDeclaration75
=structOrVariantDeclaration();
3654 if (state
.failed
) return retval
;
3655 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, structOrVariantDeclaration75
.getTree());
3661 if ( cnt23
>= 1 ) break loop23
;
3662 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3663 EarlyExitException eee
=
3664 new EarlyExitException(23, input
);
3673 retval
.stop
= input
.LT(-1);
3675 if ( state
.backtracking
==0 ) {
3677 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
3678 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
3680 if ( state
.backtracking
==0 ) {
3682 exit("structOrVariantDeclarationList");
3687 catch (RecognitionException e
)
3695 // $ANTLR end "structOrVariantDeclarationList"
3697 public static class structOrVariantDeclaration_return
extends ParserRuleReturnScope
{
3700 public Object
getTree() { return tree
; }
3703 // $ANTLR start "structOrVariantDeclaration"
3704 // Grammar/CTFParser.g:510:1: structOrVariantDeclaration : ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM ;
3705 public final CTFParser
.structOrVariantDeclaration_return
structOrVariantDeclaration() throws RecognitionException
{
3706 CTFParser
.structOrVariantDeclaration_return retval
= new CTFParser
.structOrVariantDeclaration_return();
3707 retval
.start
= input
.LT(1);
3709 CommonTree root_0
= null;
3712 CTFParser
.declarationSpecifiers_return declarationSpecifiers76
= null;
3714 CTFParser
.declaratorList_return declaratorList77
= null;
3716 CTFParser
.structOrVariantDeclaratorList_return structOrVariantDeclaratorList78
= null;
3718 CTFParser
.typealiasDecl_return typealiasDecl79
= null;
3721 CommonTree TERM80_tree
=null;
3722 RewriteRuleTokenStream stream_TERM
=new RewriteRuleTokenStream(adaptor
,"token TERM");
3723 RewriteRuleSubtreeStream stream_declaratorList
=new RewriteRuleSubtreeStream(adaptor
,"rule declaratorList");
3724 RewriteRuleSubtreeStream stream_typealiasDecl
=new RewriteRuleSubtreeStream(adaptor
,"rule typealiasDecl");
3725 RewriteRuleSubtreeStream stream_declarationSpecifiers
=new RewriteRuleSubtreeStream(adaptor
,"rule declarationSpecifiers");
3726 RewriteRuleSubtreeStream stream_structOrVariantDeclaratorList
=new RewriteRuleSubtreeStream(adaptor
,"rule structOrVariantDeclaratorList");
3728 enter("structOrVariantDeclaration");
3731 // Grammar/CTFParser.g:517:1: ( ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM )
3732 // Grammar/CTFParser.g:518:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM
3734 // Grammar/CTFParser.g:518:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl )
3736 int LA25_0
= input
.LA(1);
3738 if ( ((LA25_0
>=CONSTTOK
&& LA25_0
<=ENUMTOK
)||(LA25_0
>=FLOATINGPOINTTOK
&& LA25_0
<=SIGNEDTOK
)||(LA25_0
>=STRINGTOK
&& LA25_0
<=STRUCTTOK
)||(LA25_0
>=TYPEDEFTOK
&& LA25_0
<=IMAGINARYTOK
)) ) {
3741 else if ( (LA25_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
3744 else if ( (LA25_0
==TYPEALIASTOK
) ) {
3748 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3749 NoViableAltException nvae
=
3750 new NoViableAltException("", 25, 0, input
);
3756 // Grammar/CTFParser.g:519:4: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) )
3758 // Grammar/CTFParser.g:519:4: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) )
3759 // Grammar/CTFParser.g:520:5: declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )
3761 pushFollow(FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1619
);
3762 declarationSpecifiers76
=declarationSpecifiers();
3765 if (state
.failed
) return retval
;
3766 if ( state
.backtracking
==0 ) stream_declarationSpecifiers
.add(declarationSpecifiers76
.getTree());
3767 // Grammar/CTFParser.g:521:7: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )
3769 alt24
= dfa24
.predict(input
);
3772 // Grammar/CTFParser.g:523:9: {...}? => declaratorList
3774 if ( !((inTypedef())) ) {
3775 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
3776 throw new FailedPredicateException(input
, "structOrVariantDeclaration", "inTypedef()");
3778 pushFollow(FOLLOW_declaratorList_in_structOrVariantDeclaration1651
);
3779 declaratorList77
=declaratorList();
3782 if (state
.failed
) return retval
;
3783 if ( state
.backtracking
==0 ) stream_declaratorList
.add(declaratorList77
.getTree());
3784 if ( state
.backtracking
==0 ) {
3790 // elements: declarationSpecifiers, declaratorList
3792 // rule labels: retval
3793 // token list labels:
3794 // rule list labels:
3796 if ( state
.backtracking
==0 ) {
3797 retval
.tree
= root_0
;
3798 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3800 root_0
= (CommonTree
)adaptor
.nil();
3801 // 524:11: -> ^( TYPEDEF declaratorList declarationSpecifiers )
3803 // Grammar/CTFParser.g:524:14: ^( TYPEDEF declaratorList declarationSpecifiers )
3805 CommonTree root_1
= (CommonTree
)adaptor
.nil();
3806 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEDEF
, "TYPEDEF"), root_1
);
3808 adaptor
.addChild(root_1
, stream_declaratorList
.nextTree());
3809 adaptor
.addChild(root_1
, stream_declarationSpecifiers
.nextTree());
3811 adaptor
.addChild(root_0
, root_1
);
3816 retval
.tree
= root_0
;}
3820 // Grammar/CTFParser.g:525:11: structOrVariantDeclaratorList
3822 pushFollow(FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1685
);
3823 structOrVariantDeclaratorList78
=structOrVariantDeclaratorList();
3826 if (state
.failed
) return retval
;
3827 if ( state
.backtracking
==0 ) stream_structOrVariantDeclaratorList
.add(structOrVariantDeclaratorList78
.getTree());
3831 // elements: structOrVariantDeclaratorList, declarationSpecifiers
3833 // rule labels: retval
3834 // token list labels:
3835 // rule list labels:
3837 if ( state
.backtracking
==0 ) {
3838 retval
.tree
= root_0
;
3839 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3841 root_0
= (CommonTree
)adaptor
.nil();
3842 // 526:11: -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList )
3844 // Grammar/CTFParser.g:526:14: ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList )
3846 CommonTree root_1
= (CommonTree
)adaptor
.nil();
3847 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(SV_DECLARATION
, "SV_DECLARATION"), root_1
);
3849 adaptor
.addChild(root_1
, stream_declarationSpecifiers
.nextTree());
3850 adaptor
.addChild(root_1
, stream_structOrVariantDeclaratorList
.nextTree());
3852 adaptor
.addChild(root_0
, root_1
);
3857 retval
.tree
= root_0
;}
3870 // Grammar/CTFParser.g:531:5: typealiasDecl
3872 pushFollow(FOLLOW_typealiasDecl_in_structOrVariantDeclaration1735
);
3873 typealiasDecl79
=typealiasDecl();
3876 if (state
.failed
) return retval
;
3877 if ( state
.backtracking
==0 ) stream_typealiasDecl
.add(typealiasDecl79
.getTree());
3881 // elements: typealiasDecl
3883 // rule labels: retval
3884 // token list labels:
3885 // rule list labels:
3887 if ( state
.backtracking
==0 ) {
3888 retval
.tree
= root_0
;
3889 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
3891 root_0
= (CommonTree
)adaptor
.nil();
3892 // 531:19: -> typealiasDecl
3894 adaptor
.addChild(root_0
, stream_typealiasDecl
.nextTree());
3898 retval
.tree
= root_0
;}
3904 TERM80
=(Token
)match(input
,TERM
,FOLLOW_TERM_in_structOrVariantDeclaration1747
); if (state
.failed
) return retval
;
3905 if ( state
.backtracking
==0 ) stream_TERM
.add(TERM80
);
3910 retval
.stop
= input
.LT(-1);
3912 if ( state
.backtracking
==0 ) {
3914 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
3915 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
3917 if ( state
.backtracking
==0 ) {
3919 exit("structOrVariantDeclaration");
3924 catch (RecognitionException e
)
3932 // $ANTLR end "structOrVariantDeclaration"
3934 public static class specifierQualifierList_return
extends ParserRuleReturnScope
{
3937 public Object
getTree() { return tree
; }
3940 // $ANTLR start "specifierQualifierList"
3941 // Grammar/CTFParser.g:536:1: specifierQualifierList : ( typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ;
3942 public final CTFParser
.specifierQualifierList_return
specifierQualifierList() throws RecognitionException
{
3943 CTFParser
.specifierQualifierList_return retval
= new CTFParser
.specifierQualifierList_return();
3944 retval
.start
= input
.LT(1);
3946 CommonTree root_0
= null;
3948 CTFParser
.typeQualifier_return typeQualifier81
= null;
3950 CTFParser
.typeSpecifier_return typeSpecifier82
= null;
3953 RewriteRuleSubtreeStream stream_typeSpecifier
=new RewriteRuleSubtreeStream(adaptor
,"rule typeSpecifier");
3954 RewriteRuleSubtreeStream stream_typeQualifier
=new RewriteRuleSubtreeStream(adaptor
,"rule typeQualifier");
3956 enter("specifierQualifierList");
3959 // Grammar/CTFParser.g:543:1: ( ( typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) )
3960 // Grammar/CTFParser.g:544:3: ( typeQualifier | typeSpecifier )+
3962 // Grammar/CTFParser.g:544:3: ( typeQualifier | typeSpecifier )+
3967 int LA26_0
= input
.LA(1);
3969 if ( (LA26_0
==CONSTTOK
) ) {
3972 else if ( ((LA26_0
>=CHARTOK
&& LA26_0
<=ENUMTOK
)||(LA26_0
>=FLOATINGPOINTTOK
&& LA26_0
<=SIGNEDTOK
)||(LA26_0
>=STRINGTOK
&& LA26_0
<=STRUCTTOK
)||(LA26_0
>=UNSIGNEDTOK
&& LA26_0
<=IMAGINARYTOK
)) ) {
3975 else if ( (LA26_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
3982 // Grammar/CTFParser.g:544:4: typeQualifier
3984 pushFollow(FOLLOW_typeQualifier_in_specifierQualifierList1771
);
3985 typeQualifier81
=typeQualifier();
3988 if (state
.failed
) return retval
;
3989 if ( state
.backtracking
==0 ) stream_typeQualifier
.add(typeQualifier81
.getTree());
3994 // Grammar/CTFParser.g:544:20: typeSpecifier
3996 pushFollow(FOLLOW_typeSpecifier_in_specifierQualifierList1775
);
3997 typeSpecifier82
=typeSpecifier();
4000 if (state
.failed
) return retval
;
4001 if ( state
.backtracking
==0 ) stream_typeSpecifier
.add(typeSpecifier82
.getTree());
4007 if ( cnt26
>= 1 ) break loop26
;
4008 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4009 EarlyExitException eee
=
4010 new EarlyExitException(26, input
);
4019 // elements: typeSpecifier, typeQualifier
4021 // rule labels: retval
4022 // token list labels:
4023 // rule list labels:
4025 if ( state
.backtracking
==0 ) {
4026 retval
.tree
= root_0
;
4027 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4029 root_0
= (CommonTree
)adaptor
.nil();
4030 // 544:36: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* )
4032 // Grammar/CTFParser.g:544:39: ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* )
4034 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4035 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_SPECIFIER_LIST
, "TYPE_SPECIFIER_LIST"), root_1
);
4037 // Grammar/CTFParser.g:544:61: ( typeQualifier )*
4038 while ( stream_typeQualifier
.hasNext() ) {
4039 adaptor
.addChild(root_1
, stream_typeQualifier
.nextTree());
4042 stream_typeQualifier
.reset();
4043 // Grammar/CTFParser.g:544:76: ( typeSpecifier )*
4044 while ( stream_typeSpecifier
.hasNext() ) {
4045 adaptor
.addChild(root_1
, stream_typeSpecifier
.nextTree());
4048 stream_typeSpecifier
.reset();
4050 adaptor
.addChild(root_0
, root_1
);
4055 retval
.tree
= root_0
;}
4058 retval
.stop
= input
.LT(-1);
4060 if ( state
.backtracking
==0 ) {
4062 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4063 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4065 if ( state
.backtracking
==0 ) {
4067 exit("specifierQualifierList");
4072 catch (RecognitionException e
)
4080 // $ANTLR end "specifierQualifierList"
4082 public static class structOrVariantDeclaratorList_return
extends ParserRuleReturnScope
{
4085 public Object
getTree() { return tree
; }
4088 // $ANTLR start "structOrVariantDeclaratorList"
4089 // Grammar/CTFParser.g:547:1: structOrVariantDeclaratorList : structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) ;
4090 public final CTFParser
.structOrVariantDeclaratorList_return
structOrVariantDeclaratorList() throws RecognitionException
{
4091 CTFParser
.structOrVariantDeclaratorList_return retval
= new CTFParser
.structOrVariantDeclaratorList_return();
4092 retval
.start
= input
.LT(1);
4094 CommonTree root_0
= null;
4096 Token SEPARATOR84
=null;
4097 CTFParser
.structOrVariantDeclarator_return structOrVariantDeclarator83
= null;
4099 CTFParser
.structOrVariantDeclarator_return structOrVariantDeclarator85
= null;
4102 CommonTree SEPARATOR84_tree
=null;
4103 RewriteRuleTokenStream stream_SEPARATOR
=new RewriteRuleTokenStream(adaptor
,"token SEPARATOR");
4104 RewriteRuleSubtreeStream stream_structOrVariantDeclarator
=new RewriteRuleSubtreeStream(adaptor
,"rule structOrVariantDeclarator");
4106 enter("structOrVariantDeclaratorList");
4109 // Grammar/CTFParser.g:554:1: ( structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) )
4110 // Grammar/CTFParser.g:555:3: structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )*
4112 pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1812
);
4113 structOrVariantDeclarator83
=structOrVariantDeclarator();
4116 if (state
.failed
) return retval
;
4117 if ( state
.backtracking
==0 ) stream_structOrVariantDeclarator
.add(structOrVariantDeclarator83
.getTree());
4118 // Grammar/CTFParser.g:555:29: ( SEPARATOR structOrVariantDeclarator )*
4122 int LA27_0
= input
.LA(1);
4124 if ( (LA27_0
==SEPARATOR
) ) {
4131 // Grammar/CTFParser.g:555:30: SEPARATOR structOrVariantDeclarator
4133 SEPARATOR84
=(Token
)match(input
,SEPARATOR
,FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1815
); if (state
.failed
) return retval
;
4134 if ( state
.backtracking
==0 ) stream_SEPARATOR
.add(SEPARATOR84
);
4136 pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1817
);
4137 structOrVariantDeclarator85
=structOrVariantDeclarator();
4140 if (state
.failed
) return retval
;
4141 if ( state
.backtracking
==0 ) stream_structOrVariantDeclarator
.add(structOrVariantDeclarator85
.getTree());
4154 // elements: structOrVariantDeclarator
4156 // rule labels: retval
4157 // token list labels:
4158 // rule list labels:
4160 if ( state
.backtracking
==0 ) {
4161 retval
.tree
= root_0
;
4162 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4164 root_0
= (CommonTree
)adaptor
.nil();
4165 // 555:68: -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ )
4167 // Grammar/CTFParser.g:555:71: ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ )
4169 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4170 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR_LIST
, "TYPE_DECLARATOR_LIST"), root_1
);
4172 if ( !(stream_structOrVariantDeclarator
.hasNext()) ) {
4173 throw new RewriteEarlyExitException();
4175 while ( stream_structOrVariantDeclarator
.hasNext() ) {
4176 adaptor
.addChild(root_1
, stream_structOrVariantDeclarator
.nextTree());
4179 stream_structOrVariantDeclarator
.reset();
4181 adaptor
.addChild(root_0
, root_1
);
4186 retval
.tree
= root_0
;}
4189 retval
.stop
= input
.LT(-1);
4191 if ( state
.backtracking
==0 ) {
4193 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4194 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4196 if ( state
.backtracking
==0 ) {
4198 exit("structOrVariantDeclaratorList");
4203 catch (RecognitionException e
)
4211 // $ANTLR end "structOrVariantDeclaratorList"
4213 public static class structOrVariantDeclarator_return
extends ParserRuleReturnScope
{
4216 public Object
getTree() { return tree
; }
4219 // $ANTLR start "structOrVariantDeclarator"
4220 // Grammar/CTFParser.g:558:1: structOrVariantDeclarator : ( declarator ( COLON numberLiteral )? ) -> declarator ;
4221 public final CTFParser
.structOrVariantDeclarator_return
structOrVariantDeclarator() throws RecognitionException
{
4222 CTFParser
.structOrVariantDeclarator_return retval
= new CTFParser
.structOrVariantDeclarator_return();
4223 retval
.start
= input
.LT(1);
4225 CommonTree root_0
= null;
4228 CTFParser
.declarator_return declarator86
= null;
4230 CTFParser
.numberLiteral_return numberLiteral88
= null;
4233 CommonTree COLON87_tree
=null;
4234 RewriteRuleTokenStream stream_COLON
=new RewriteRuleTokenStream(adaptor
,"token COLON");
4235 RewriteRuleSubtreeStream stream_declarator
=new RewriteRuleSubtreeStream(adaptor
,"rule declarator");
4236 RewriteRuleSubtreeStream stream_numberLiteral
=new RewriteRuleSubtreeStream(adaptor
,"rule numberLiteral");
4238 enter("structOrVariantDeclarator");
4241 // Grammar/CTFParser.g:565:1: ( ( declarator ( COLON numberLiteral )? ) -> declarator )
4242 // Grammar/CTFParser.g:567:5: ( declarator ( COLON numberLiteral )? )
4244 // Grammar/CTFParser.g:567:5: ( declarator ( COLON numberLiteral )? )
4245 // Grammar/CTFParser.g:567:6: declarator ( COLON numberLiteral )?
4247 pushFollow(FOLLOW_declarator_in_structOrVariantDeclarator1858
);
4248 declarator86
=declarator();
4251 if (state
.failed
) return retval
;
4252 if ( state
.backtracking
==0 ) stream_declarator
.add(declarator86
.getTree());
4253 // Grammar/CTFParser.g:567:17: ( COLON numberLiteral )?
4255 int LA28_0
= input
.LA(1);
4257 if ( (LA28_0
==COLON
) ) {
4262 // Grammar/CTFParser.g:567:18: COLON numberLiteral
4264 COLON87
=(Token
)match(input
,COLON
,FOLLOW_COLON_in_structOrVariantDeclarator1861
); if (state
.failed
) return retval
;
4265 if ( state
.backtracking
==0 ) stream_COLON
.add(COLON87
);
4267 pushFollow(FOLLOW_numberLiteral_in_structOrVariantDeclarator1863
);
4268 numberLiteral88
=numberLiteral();
4271 if (state
.failed
) return retval
;
4272 if ( state
.backtracking
==0 ) stream_numberLiteral
.add(numberLiteral88
.getTree());
4285 // elements: declarator
4287 // rule labels: retval
4288 // token list labels:
4289 // rule list labels:
4291 if ( state
.backtracking
==0 ) {
4292 retval
.tree
= root_0
;
4293 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4295 root_0
= (CommonTree
)adaptor
.nil();
4296 // 567:41: -> declarator
4298 adaptor
.addChild(root_0
, stream_declarator
.nextTree());
4302 retval
.tree
= root_0
;}
4305 retval
.stop
= input
.LT(-1);
4307 if ( state
.backtracking
==0 ) {
4309 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4310 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4312 if ( state
.backtracking
==0 ) {
4314 exit("structOrVariantDeclarator");
4319 catch (RecognitionException e
)
4327 // $ANTLR end "structOrVariantDeclarator"
4329 public static class variantSpecifier_return
extends ParserRuleReturnScope
{
4332 public Object
getTree() { return tree
; }
4335 // $ANTLR start "variantSpecifier"
4336 // Grammar/CTFParser.g:571:1: variantSpecifier : VARIANTTOK ( ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) ;
4337 public final CTFParser
.variantSpecifier_return
variantSpecifier() throws RecognitionException
{
4338 CTFParser
.variantSpecifier_return retval
= new CTFParser
.variantSpecifier_return();
4339 retval
.start
= input
.LT(1);
4341 CommonTree root_0
= null;
4343 Token VARIANTTOK89
=null;
4344 CTFParser
.variantName_return variantName90
= null;
4346 CTFParser
.variantTag_return variantTag91
= null;
4348 CTFParser
.variantBody_return variantBody92
= null;
4350 CTFParser
.variantBody_return variantBody93
= null;
4352 CTFParser
.variantTag_return variantTag94
= null;
4354 CTFParser
.variantBody_return variantBody95
= null;
4356 CTFParser
.variantBody_return variantBody96
= null;
4359 CommonTree VARIANTTOK89_tree
=null;
4360 RewriteRuleTokenStream stream_VARIANTTOK
=new RewriteRuleTokenStream(adaptor
,"token VARIANTTOK");
4361 RewriteRuleSubtreeStream stream_variantName
=new RewriteRuleSubtreeStream(adaptor
,"rule variantName");
4362 RewriteRuleSubtreeStream stream_variantTag
=new RewriteRuleSubtreeStream(adaptor
,"rule variantTag");
4363 RewriteRuleSubtreeStream stream_variantBody
=new RewriteRuleSubtreeStream(adaptor
,"rule variantBody");
4365 enter("variantSpecifier");
4368 // Grammar/CTFParser.g:578:1: ( VARIANTTOK ( ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) )
4369 // Grammar/CTFParser.g:579:3: VARIANTTOK ( ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody )
4371 VARIANTTOK89
=(Token
)match(input
,VARIANTTOK
,FOLLOW_VARIANTTOK_in_variantSpecifier1897
); if (state
.failed
) return retval
;
4372 if ( state
.backtracking
==0 ) stream_VARIANTTOK
.add(VARIANTTOK89
);
4374 // Grammar/CTFParser.g:580:3: ( ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody )
4376 switch ( input
.LA(1) ) {
4393 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4394 NoViableAltException nvae
=
4395 new NoViableAltException("", 31, 0, input
);
4402 // Grammar/CTFParser.g:581:5: ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) )
4404 // Grammar/CTFParser.g:581:5: ( variantName ( ( variantTag ( variantBody | ) ) | variantBody ) )
4405 // Grammar/CTFParser.g:582:7: variantName ( ( variantTag ( variantBody | ) ) | variantBody )
4407 pushFollow(FOLLOW_variantName_in_variantSpecifier1915
);
4408 variantName90
=variantName();
4411 if (state
.failed
) return retval
;
4412 if ( state
.backtracking
==0 ) stream_variantName
.add(variantName90
.getTree());
4413 // Grammar/CTFParser.g:583:7: ( ( variantTag ( variantBody | ) ) | variantBody )
4415 int LA30_0
= input
.LA(1);
4417 if ( (LA30_0
==LT
) ) {
4420 else if ( (LA30_0
==LCURL
) ) {
4424 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4425 NoViableAltException nvae
=
4426 new NoViableAltException("", 30, 0, input
);
4432 // Grammar/CTFParser.g:584:9: ( variantTag ( variantBody | ) )
4434 // Grammar/CTFParser.g:584:9: ( variantTag ( variantBody | ) )
4435 // Grammar/CTFParser.g:585:11: variantTag ( variantBody | )
4437 pushFollow(FOLLOW_variantTag_in_variantSpecifier1946
);
4438 variantTag91
=variantTag();
4441 if (state
.failed
) return retval
;
4442 if ( state
.backtracking
==0 ) stream_variantTag
.add(variantTag91
.getTree());
4443 // Grammar/CTFParser.g:586:11: ( variantBody | )
4445 int LA29_0
= input
.LA(1);
4447 if ( (LA29_0
==LCURL
) ) {
4448 switch ( input
.LA(2) ) {
4453 case FLOATINGPOINTTOK
:
4474 int LA29_4
= input
.LA(3);
4476 if ( ((LA29_4
>=CONSTTOK
&& LA29_4
<=ENUMTOK
)||(LA29_4
>=FLOATINGPOINTTOK
&& LA29_4
<=SIGNEDTOK
)||(LA29_4
>=STRINGTOK
&& LA29_4
<=STRUCTTOK
)||(LA29_4
>=TYPEDEFTOK
&& LA29_4
<=IMAGINARYTOK
)||LA29_4
==POINTER
||LA29_4
==IDENTIFIER
) ) {
4479 else if ( (LA29_4
==SEPARATOR
||LA29_4
==ASSIGNMENT
||LA29_4
==RCURL
) ) {
4483 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4484 NoViableAltException nvae
=
4485 new NoViableAltException("", 29, 4, input
);
4493 int LA29_5
= input
.LA(3);
4495 if ( (LA29_5
==SEPARATOR
||LA29_5
==ASSIGNMENT
||LA29_5
==RCURL
) ) {
4498 else if ( ((LA29_5
>=CONSTTOK
&& LA29_5
<=ENUMTOK
)||(LA29_5
>=FLOATINGPOINTTOK
&& LA29_5
<=SIGNEDTOK
)||(LA29_5
>=STRINGTOK
&& LA29_5
<=STRUCTTOK
)||(LA29_5
>=TYPEDEFTOK
&& LA29_5
<=IMAGINARYTOK
)||LA29_5
==LCURL
||LA29_5
==POINTER
||LA29_5
==IDENTIFIER
) ) {
4502 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4503 NoViableAltException nvae
=
4504 new NoViableAltException("", 29, 5, input
);
4512 int LA29_6
= input
.LA(3);
4514 if ( (LA29_6
==SEPARATOR
||LA29_6
==ASSIGNMENT
||LA29_6
==RCURL
) ) {
4517 else if ( ((LA29_6
>=CONSTTOK
&& LA29_6
<=ENUMTOK
)||(LA29_6
>=FLOATINGPOINTTOK
&& LA29_6
<=SIGNEDTOK
)||(LA29_6
>=STRINGTOK
&& LA29_6
<=STRUCTTOK
)||(LA29_6
>=TYPEDEFTOK
&& LA29_6
<=IMAGINARYTOK
)||LA29_6
==POINTER
||LA29_6
==IDENTIFIER
) ) {
4521 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4522 NoViableAltException nvae
=
4523 new NoViableAltException("", 29, 6, input
);
4531 case STRING_LITERAL
:
4537 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4538 NoViableAltException nvae
=
4539 new NoViableAltException("", 29, 1, input
);
4545 else if ( (LA29_0
==EOF
||(LA29_0
>=CONSTTOK
&& LA29_0
<=ENUMTOK
)||(LA29_0
>=FLOATINGPOINTTOK
&& LA29_0
<=SIGNEDTOK
)||(LA29_0
>=STRINGTOK
&& LA29_0
<=STRUCTTOK
)||(LA29_0
>=TYPEDEFTOK
&& LA29_0
<=IMAGINARYTOK
)||LA29_0
==TYPE_ASSIGNMENT
||LA29_0
==LPAREN
||(LA29_0
>=TERM
&& LA29_0
<=POINTER
)||LA29_0
==IDENTIFIER
) ) {
4549 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
4550 NoViableAltException nvae
=
4551 new NoViableAltException("", 29, 0, input
);
4557 // Grammar/CTFParser.g:587:13: variantBody
4559 pushFollow(FOLLOW_variantBody_in_variantSpecifier1972
);
4560 variantBody92
=variantBody();
4563 if (state
.failed
) return retval
;
4564 if ( state
.backtracking
==0 ) stream_variantBody
.add(variantBody92
.getTree());
4569 // Grammar/CTFParser.g:590:11:
4583 // Grammar/CTFParser.g:593:9: variantBody
4585 pushFollow(FOLLOW_variantBody_in_variantSpecifier2040
);
4586 variantBody93
=variantBody();
4589 if (state
.failed
) return retval
;
4590 if ( state
.backtracking
==0 ) stream_variantBody
.add(variantBody93
.getTree());
4604 // Grammar/CTFParser.g:597:5: ( variantTag variantBody )
4606 // Grammar/CTFParser.g:597:5: ( variantTag variantBody )
4607 // Grammar/CTFParser.g:597:6: variantTag variantBody
4609 pushFollow(FOLLOW_variantTag_in_variantSpecifier2065
);
4610 variantTag94
=variantTag();
4613 if (state
.failed
) return retval
;
4614 if ( state
.backtracking
==0 ) stream_variantTag
.add(variantTag94
.getTree());
4615 pushFollow(FOLLOW_variantBody_in_variantSpecifier2067
);
4616 variantBody95
=variantBody();
4619 if (state
.failed
) return retval
;
4620 if ( state
.backtracking
==0 ) stream_variantBody
.add(variantBody95
.getTree());
4628 // Grammar/CTFParser.g:599:5: variantBody
4630 pushFollow(FOLLOW_variantBody_in_variantSpecifier2078
);
4631 variantBody96
=variantBody();
4634 if (state
.failed
) return retval
;
4635 if ( state
.backtracking
==0 ) stream_variantBody
.add(variantBody96
.getTree());
4645 // elements: variantBody, variantTag, variantName
4647 // rule labels: retval
4648 // token list labels:
4649 // rule list labels:
4651 if ( state
.backtracking
==0 ) {
4652 retval
.tree
= root_0
;
4653 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4655 root_0
= (CommonTree
)adaptor
.nil();
4656 // 600:5: -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? )
4658 // Grammar/CTFParser.g:600:8: ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? )
4660 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4661 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(VARIANT
, "VARIANT"), root_1
);
4663 // Grammar/CTFParser.g:600:18: ( variantName )?
4664 if ( stream_variantName
.hasNext() ) {
4665 adaptor
.addChild(root_1
, stream_variantName
.nextTree());
4668 stream_variantName
.reset();
4669 // Grammar/CTFParser.g:600:31: ( variantTag )?
4670 if ( stream_variantTag
.hasNext() ) {
4671 adaptor
.addChild(root_1
, stream_variantTag
.nextTree());
4674 stream_variantTag
.reset();
4675 // Grammar/CTFParser.g:600:43: ( variantBody )?
4676 if ( stream_variantBody
.hasNext() ) {
4677 adaptor
.addChild(root_1
, stream_variantBody
.nextTree());
4680 stream_variantBody
.reset();
4682 adaptor
.addChild(root_0
, root_1
);
4687 retval
.tree
= root_0
;}
4690 retval
.stop
= input
.LT(-1);
4692 if ( state
.backtracking
==0 ) {
4694 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4695 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4697 if ( state
.backtracking
==0 ) {
4699 exit("variantSpecifier");
4704 catch (RecognitionException e
)
4712 // $ANTLR end "variantSpecifier"
4714 public static class variantName_return
extends ParserRuleReturnScope
{
4717 public Object
getTree() { return tree
; }
4720 // $ANTLR start "variantName"
4721 // Grammar/CTFParser.g:603:1: variantName : IDENTIFIER -> ^( VARIANT_NAME IDENTIFIER ) ;
4722 public final CTFParser
.variantName_return
variantName() throws RecognitionException
{
4723 CTFParser
.variantName_return retval
= new CTFParser
.variantName_return();
4724 retval
.start
= input
.LT(1);
4726 CommonTree root_0
= null;
4728 Token IDENTIFIER97
=null;
4730 CommonTree IDENTIFIER97_tree
=null;
4731 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
4734 enter("variantName");
4737 // Grammar/CTFParser.g:611:1: ( IDENTIFIER -> ^( VARIANT_NAME IDENTIFIER ) )
4738 // Grammar/CTFParser.g:612:3: IDENTIFIER
4740 IDENTIFIER97
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_variantName2120
); if (state
.failed
) return retval
;
4741 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER97
);
4746 // elements: IDENTIFIER
4748 // rule labels: retval
4749 // token list labels:
4750 // rule list labels:
4752 if ( state
.backtracking
==0 ) {
4753 retval
.tree
= root_0
;
4754 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4756 root_0
= (CommonTree
)adaptor
.nil();
4757 // 612:14: -> ^( VARIANT_NAME IDENTIFIER )
4759 // Grammar/CTFParser.g:612:17: ^( VARIANT_NAME IDENTIFIER )
4761 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4762 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(VARIANT_NAME
, "VARIANT_NAME"), root_1
);
4764 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
4766 adaptor
.addChild(root_0
, root_1
);
4771 retval
.tree
= root_0
;}
4774 retval
.stop
= input
.LT(-1);
4776 if ( state
.backtracking
==0 ) {
4778 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4779 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4781 if ( state
.backtracking
==0 ) {
4783 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
4784 exit("variantName");
4789 catch (RecognitionException e
)
4797 // $ANTLR end "variantName"
4799 public static class variantBody_return
extends ParserRuleReturnScope
{
4802 public Object
getTree() { return tree
; }
4805 // $ANTLR start "variantBody"
4806 // Grammar/CTFParser.g:615:1: variantBody : LCURL structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) ;
4807 public final CTFParser
.variantBody_return
variantBody() throws RecognitionException
{
4808 Symbols_stack
.push(new Symbols_scope());
4810 CTFParser
.variantBody_return retval
= new CTFParser
.variantBody_return();
4811 retval
.start
= input
.LT(1);
4813 CommonTree root_0
= null;
4816 Token RCURL100
=null;
4817 CTFParser
.structOrVariantDeclarationList_return structOrVariantDeclarationList99
= null;
4820 CommonTree LCURL98_tree
=null;
4821 CommonTree RCURL100_tree
=null;
4822 RewriteRuleTokenStream stream_LCURL
=new RewriteRuleTokenStream(adaptor
,"token LCURL");
4823 RewriteRuleTokenStream stream_RCURL
=new RewriteRuleTokenStream(adaptor
,"token RCURL");
4824 RewriteRuleSubtreeStream stream_structOrVariantDeclarationList
=new RewriteRuleSubtreeStream(adaptor
,"rule structOrVariantDeclarationList");
4826 enter("variantBody");
4827 debug_print("Scope push " + Symbols_stack
.size());
4828 ((Symbols_scope
)Symbols_stack
.peek()).types
= new HashSet
<String
>();
4831 // Grammar/CTFParser.g:626:1: ( LCURL structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) )
4832 // Grammar/CTFParser.g:627:3: LCURL structOrVariantDeclarationList RCURL
4834 LCURL98
=(Token
)match(input
,LCURL
,FOLLOW_LCURL_in_variantBody2156
); if (state
.failed
) return retval
;
4835 if ( state
.backtracking
==0 ) stream_LCURL
.add(LCURL98
);
4837 pushFollow(FOLLOW_structOrVariantDeclarationList_in_variantBody2158
);
4838 structOrVariantDeclarationList99
=structOrVariantDeclarationList();
4841 if (state
.failed
) return retval
;
4842 if ( state
.backtracking
==0 ) stream_structOrVariantDeclarationList
.add(structOrVariantDeclarationList99
.getTree());
4843 RCURL100
=(Token
)match(input
,RCURL
,FOLLOW_RCURL_in_variantBody2160
); if (state
.failed
) return retval
;
4844 if ( state
.backtracking
==0 ) stream_RCURL
.add(RCURL100
);
4849 // elements: structOrVariantDeclarationList
4851 // rule labels: retval
4852 // token list labels:
4853 // rule list labels:
4855 if ( state
.backtracking
==0 ) {
4856 retval
.tree
= root_0
;
4857 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4859 root_0
= (CommonTree
)adaptor
.nil();
4860 // 627:46: -> ^( VARIANT_BODY structOrVariantDeclarationList )
4862 // Grammar/CTFParser.g:627:49: ^( VARIANT_BODY structOrVariantDeclarationList )
4864 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4865 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(VARIANT_BODY
, "VARIANT_BODY"), root_1
);
4867 adaptor
.addChild(root_1
, stream_structOrVariantDeclarationList
.nextTree());
4869 adaptor
.addChild(root_0
, root_1
);
4874 retval
.tree
= root_0
;}
4877 retval
.stop
= input
.LT(-1);
4879 if ( state
.backtracking
==0 ) {
4881 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4882 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4884 if ( state
.backtracking
==0 ) {
4886 debug_print("Scope pop " + Symbols_stack
.size());
4887 exit("variantBody");
4892 catch (RecognitionException e
)
4897 Symbols_stack
.pop();
4902 // $ANTLR end "variantBody"
4904 public static class variantTag_return
extends ParserRuleReturnScope
{
4907 public Object
getTree() { return tree
; }
4910 // $ANTLR start "variantTag"
4911 // Grammar/CTFParser.g:630:1: variantTag : LT IDENTIFIER GT -> ^( VARIANT_TAG IDENTIFIER ) ;
4912 public final CTFParser
.variantTag_return
variantTag() throws RecognitionException
{
4913 CTFParser
.variantTag_return retval
= new CTFParser
.variantTag_return();
4914 retval
.start
= input
.LT(1);
4916 CommonTree root_0
= null;
4919 Token IDENTIFIER102
=null;
4922 CommonTree LT101_tree
=null;
4923 CommonTree IDENTIFIER102_tree
=null;
4924 CommonTree GT103_tree
=null;
4925 RewriteRuleTokenStream stream_GT
=new RewriteRuleTokenStream(adaptor
,"token GT");
4926 RewriteRuleTokenStream stream_LT
=new RewriteRuleTokenStream(adaptor
,"token LT");
4927 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
4930 enter("variantTag");
4933 // Grammar/CTFParser.g:638:1: ( LT IDENTIFIER GT -> ^( VARIANT_TAG IDENTIFIER ) )
4934 // Grammar/CTFParser.g:639:3: LT IDENTIFIER GT
4936 LT101
=(Token
)match(input
,LT
,FOLLOW_LT_in_variantTag2191
); if (state
.failed
) return retval
;
4937 if ( state
.backtracking
==0 ) stream_LT
.add(LT101
);
4939 IDENTIFIER102
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_variantTag2193
); if (state
.failed
) return retval
;
4940 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER102
);
4942 GT103
=(Token
)match(input
,GT
,FOLLOW_GT_in_variantTag2195
); if (state
.failed
) return retval
;
4943 if ( state
.backtracking
==0 ) stream_GT
.add(GT103
);
4948 // elements: IDENTIFIER
4950 // rule labels: retval
4951 // token list labels:
4952 // rule list labels:
4954 if ( state
.backtracking
==0 ) {
4955 retval
.tree
= root_0
;
4956 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
4958 root_0
= (CommonTree
)adaptor
.nil();
4959 // 639:20: -> ^( VARIANT_TAG IDENTIFIER )
4961 // Grammar/CTFParser.g:639:23: ^( VARIANT_TAG IDENTIFIER )
4963 CommonTree root_1
= (CommonTree
)adaptor
.nil();
4964 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(VARIANT_TAG
, "VARIANT_TAG"), root_1
);
4966 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
4968 adaptor
.addChild(root_0
, root_1
);
4973 retval
.tree
= root_0
;}
4976 retval
.stop
= input
.LT(-1);
4978 if ( state
.backtracking
==0 ) {
4980 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
4981 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
4983 if ( state
.backtracking
==0 ) {
4985 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
4991 catch (RecognitionException e
)
4999 // $ANTLR end "variantTag"
5001 public static class enumSpecifier_return
extends ParserRuleReturnScope
{
5004 public Object
getTree() { return tree
; }
5007 // $ANTLR start "enumSpecifier"
5008 // Grammar/CTFParser.g:642:1: enumSpecifier : ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody | ) ) | ( enumContainerType enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) ;
5009 public final CTFParser
.enumSpecifier_return
enumSpecifier() throws RecognitionException
{
5010 CTFParser
.enumSpecifier_return retval
= new CTFParser
.enumSpecifier_return();
5011 retval
.start
= input
.LT(1);
5013 CommonTree root_0
= null;
5015 Token ENUMTOK104
=null;
5016 CTFParser
.enumName_return enumName105
= null;
5018 CTFParser
.enumContainerType_return enumContainerType106
= null;
5020 CTFParser
.enumBody_return enumBody107
= null;
5022 CTFParser
.enumBody_return enumBody108
= null;
5024 CTFParser
.enumContainerType_return enumContainerType109
= null;
5026 CTFParser
.enumBody_return enumBody110
= null;
5028 CTFParser
.enumBody_return enumBody111
= null;
5031 CommonTree ENUMTOK104_tree
=null;
5032 RewriteRuleTokenStream stream_ENUMTOK
=new RewriteRuleTokenStream(adaptor
,"token ENUMTOK");
5033 RewriteRuleSubtreeStream stream_enumName
=new RewriteRuleSubtreeStream(adaptor
,"rule enumName");
5034 RewriteRuleSubtreeStream stream_enumContainerType
=new RewriteRuleSubtreeStream(adaptor
,"rule enumContainerType");
5035 RewriteRuleSubtreeStream stream_enumBody
=new RewriteRuleSubtreeStream(adaptor
,"rule enumBody");
5037 enter("enumSpecifier");
5040 // Grammar/CTFParser.g:649:1: ( ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody | ) ) | ( enumContainerType enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) )
5041 // Grammar/CTFParser.g:650:2: ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody | ) ) | ( enumContainerType enumBody | enumBody ) )
5043 ENUMTOK104
=(Token
)match(input
,ENUMTOK
,FOLLOW_ENUMTOK_in_enumSpecifier2225
); if (state
.failed
) return retval
;
5044 if ( state
.backtracking
==0 ) stream_ENUMTOK
.add(ENUMTOK104
);
5046 // Grammar/CTFParser.g:651:2: ( ( enumName ( enumContainerType enumBody | enumBody | ) ) | ( enumContainerType enumBody | enumBody ) )
5048 int LA34_0
= input
.LA(1);
5050 if ( (LA34_0
==IDENTIFIER
) ) {
5053 else if ( (LA34_0
==COLON
||LA34_0
==LCURL
) ) {
5057 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
5058 NoViableAltException nvae
=
5059 new NoViableAltException("", 34, 0, input
);
5065 // Grammar/CTFParser.g:653:3: ( enumName ( enumContainerType enumBody | enumBody | ) )
5067 // Grammar/CTFParser.g:653:3: ( enumName ( enumContainerType enumBody | enumBody | ) )
5068 // Grammar/CTFParser.g:654:4: enumName ( enumContainerType enumBody | enumBody | )
5070 pushFollow(FOLLOW_enumName_in_enumSpecifier2240
);
5071 enumName105
=enumName();
5074 if (state
.failed
) return retval
;
5075 if ( state
.backtracking
==0 ) stream_enumName
.add(enumName105
.getTree());
5076 // Grammar/CTFParser.g:655:4: ( enumContainerType enumBody | enumBody | )
5078 alt32
= dfa32
.predict(input
);
5081 // Grammar/CTFParser.g:656:5: enumContainerType enumBody
5083 pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2251
);
5084 enumContainerType106
=enumContainerType();
5087 if (state
.failed
) return retval
;
5088 if ( state
.backtracking
==0 ) stream_enumContainerType
.add(enumContainerType106
.getTree());
5089 pushFollow(FOLLOW_enumBody_in_enumSpecifier2253
);
5090 enumBody107
=enumBody();
5093 if (state
.failed
) return retval
;
5094 if ( state
.backtracking
==0 ) stream_enumBody
.add(enumBody107
.getTree());
5099 // Grammar/CTFParser.g:658:5: enumBody
5101 pushFollow(FOLLOW_enumBody_in_enumSpecifier2265
);
5102 enumBody108
=enumBody();
5105 if (state
.failed
) return retval
;
5106 if ( state
.backtracking
==0 ) stream_enumBody
.add(enumBody108
.getTree());
5111 // Grammar/CTFParser.g:661:4:
5125 // Grammar/CTFParser.g:665:3: ( enumContainerType enumBody | enumBody )
5127 // Grammar/CTFParser.g:665:3: ( enumContainerType enumBody | enumBody )
5129 int LA33_0
= input
.LA(1);
5131 if ( (LA33_0
==COLON
) ) {
5134 else if ( (LA33_0
==LCURL
) ) {
5138 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
5139 NoViableAltException nvae
=
5140 new NoViableAltException("", 33, 0, input
);
5146 // Grammar/CTFParser.g:666:4: enumContainerType enumBody
5148 pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2300
);
5149 enumContainerType109
=enumContainerType();
5152 if (state
.failed
) return retval
;
5153 if ( state
.backtracking
==0 ) stream_enumContainerType
.add(enumContainerType109
.getTree());
5154 pushFollow(FOLLOW_enumBody_in_enumSpecifier2302
);
5155 enumBody110
=enumBody();
5158 if (state
.failed
) return retval
;
5159 if ( state
.backtracking
==0 ) stream_enumBody
.add(enumBody110
.getTree());
5164 // Grammar/CTFParser.g:668:4: enumBody
5166 pushFollow(FOLLOW_enumBody_in_enumSpecifier2311
);
5167 enumBody111
=enumBody();
5170 if (state
.failed
) return retval
;
5171 if ( state
.backtracking
==0 ) stream_enumBody
.add(enumBody111
.getTree());
5187 // elements: enumContainerType, enumName, enumBody
5189 // rule labels: retval
5190 // token list labels:
5191 // rule list labels:
5193 if ( state
.backtracking
==0 ) {
5194 retval
.tree
= root_0
;
5195 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5197 root_0
= (CommonTree
)adaptor
.nil();
5198 // 670:4: -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? )
5200 // Grammar/CTFParser.g:670:7: ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? )
5202 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5203 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM
, "ENUM"), root_1
);
5205 // Grammar/CTFParser.g:670:14: ( enumName )?
5206 if ( stream_enumName
.hasNext() ) {
5207 adaptor
.addChild(root_1
, stream_enumName
.nextTree());
5210 stream_enumName
.reset();
5211 // Grammar/CTFParser.g:670:24: ( enumContainerType )?
5212 if ( stream_enumContainerType
.hasNext() ) {
5213 adaptor
.addChild(root_1
, stream_enumContainerType
.nextTree());
5216 stream_enumContainerType
.reset();
5217 // Grammar/CTFParser.g:670:43: ( enumBody )?
5218 if ( stream_enumBody
.hasNext() ) {
5219 adaptor
.addChild(root_1
, stream_enumBody
.nextTree());
5222 stream_enumBody
.reset();
5224 adaptor
.addChild(root_0
, root_1
);
5229 retval
.tree
= root_0
;}
5232 retval
.stop
= input
.LT(-1);
5234 if ( state
.backtracking
==0 ) {
5236 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5237 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5239 if ( state
.backtracking
==0 ) {
5241 exit("enumSpecifier");
5246 catch (RecognitionException e
)
5254 // $ANTLR end "enumSpecifier"
5256 public static class enumName_return
extends ParserRuleReturnScope
{
5259 public Object
getTree() { return tree
; }
5262 // $ANTLR start "enumName"
5263 // Grammar/CTFParser.g:673:1: enumName : IDENTIFIER -> ^( ENUM_NAME IDENTIFIER ) ;
5264 public final CTFParser
.enumName_return
enumName() throws RecognitionException
{
5265 CTFParser
.enumName_return retval
= new CTFParser
.enumName_return();
5266 retval
.start
= input
.LT(1);
5268 CommonTree root_0
= null;
5270 Token IDENTIFIER112
=null;
5272 CommonTree IDENTIFIER112_tree
=null;
5273 RewriteRuleTokenStream stream_IDENTIFIER
=new RewriteRuleTokenStream(adaptor
,"token IDENTIFIER");
5279 // Grammar/CTFParser.g:681:1: ( IDENTIFIER -> ^( ENUM_NAME IDENTIFIER ) )
5280 // Grammar/CTFParser.g:682:3: IDENTIFIER
5282 IDENTIFIER112
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_enumName2356
); if (state
.failed
) return retval
;
5283 if ( state
.backtracking
==0 ) stream_IDENTIFIER
.add(IDENTIFIER112
);
5288 // elements: IDENTIFIER
5290 // rule labels: retval
5291 // token list labels:
5292 // rule list labels:
5294 if ( state
.backtracking
==0 ) {
5295 retval
.tree
= root_0
;
5296 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5298 root_0
= (CommonTree
)adaptor
.nil();
5299 // 682:14: -> ^( ENUM_NAME IDENTIFIER )
5301 // Grammar/CTFParser.g:682:17: ^( ENUM_NAME IDENTIFIER )
5303 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5304 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_NAME
, "ENUM_NAME"), root_1
);
5306 adaptor
.addChild(root_1
, stream_IDENTIFIER
.nextNode());
5308 adaptor
.addChild(root_0
, root_1
);
5313 retval
.tree
= root_0
;}
5316 retval
.stop
= input
.LT(-1);
5318 if ( state
.backtracking
==0 ) {
5320 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5321 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5323 if ( state
.backtracking
==0 ) {
5325 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
5331 catch (RecognitionException e
)
5339 // $ANTLR end "enumName"
5341 public static class enumBody_return
extends ParserRuleReturnScope
{
5344 public Object
getTree() { return tree
; }
5347 // $ANTLR start "enumBody"
5348 // Grammar/CTFParser.g:685:1: enumBody : LCURL enumeratorList ( SEPARATOR RCURL | RCURL ) -> ^( ENUM_BODY enumeratorList ) ;
5349 public final CTFParser
.enumBody_return
enumBody() throws RecognitionException
{
5350 CTFParser
.enumBody_return retval
= new CTFParser
.enumBody_return();
5351 retval
.start
= input
.LT(1);
5353 CommonTree root_0
= null;
5355 Token LCURL113
=null;
5356 Token SEPARATOR115
=null;
5357 Token RCURL116
=null;
5358 Token RCURL117
=null;
5359 CTFParser
.enumeratorList_return enumeratorList114
= null;
5362 CommonTree LCURL113_tree
=null;
5363 CommonTree SEPARATOR115_tree
=null;
5364 CommonTree RCURL116_tree
=null;
5365 CommonTree RCURL117_tree
=null;
5366 RewriteRuleTokenStream stream_LCURL
=new RewriteRuleTokenStream(adaptor
,"token LCURL");
5367 RewriteRuleTokenStream stream_SEPARATOR
=new RewriteRuleTokenStream(adaptor
,"token SEPARATOR");
5368 RewriteRuleTokenStream stream_RCURL
=new RewriteRuleTokenStream(adaptor
,"token RCURL");
5369 RewriteRuleSubtreeStream stream_enumeratorList
=new RewriteRuleSubtreeStream(adaptor
,"rule enumeratorList");
5374 // Grammar/CTFParser.g:692:1: ( LCURL enumeratorList ( SEPARATOR RCURL | RCURL ) -> ^( ENUM_BODY enumeratorList ) )
5375 // Grammar/CTFParser.g:693:3: LCURL enumeratorList ( SEPARATOR RCURL | RCURL )
5377 LCURL113
=(Token
)match(input
,LCURL
,FOLLOW_LCURL_in_enumBody2389
); if (state
.failed
) return retval
;
5378 if ( state
.backtracking
==0 ) stream_LCURL
.add(LCURL113
);
5380 pushFollow(FOLLOW_enumeratorList_in_enumBody2391
);
5381 enumeratorList114
=enumeratorList();
5384 if (state
.failed
) return retval
;
5385 if ( state
.backtracking
==0 ) stream_enumeratorList
.add(enumeratorList114
.getTree());
5386 // Grammar/CTFParser.g:693:24: ( SEPARATOR RCURL | RCURL )
5388 int LA35_0
= input
.LA(1);
5390 if ( (LA35_0
==SEPARATOR
) ) {
5393 else if ( (LA35_0
==RCURL
) ) {
5397 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
5398 NoViableAltException nvae
=
5399 new NoViableAltException("", 35, 0, input
);
5405 // Grammar/CTFParser.g:693:25: SEPARATOR RCURL
5407 SEPARATOR115
=(Token
)match(input
,SEPARATOR
,FOLLOW_SEPARATOR_in_enumBody2394
); if (state
.failed
) return retval
;
5408 if ( state
.backtracking
==0 ) stream_SEPARATOR
.add(SEPARATOR115
);
5410 RCURL116
=(Token
)match(input
,RCURL
,FOLLOW_RCURL_in_enumBody2396
); if (state
.failed
) return retval
;
5411 if ( state
.backtracking
==0 ) stream_RCURL
.add(RCURL116
);
5417 // Grammar/CTFParser.g:693:43: RCURL
5419 RCURL117
=(Token
)match(input
,RCURL
,FOLLOW_RCURL_in_enumBody2400
); if (state
.failed
) return retval
;
5420 if ( state
.backtracking
==0 ) stream_RCURL
.add(RCURL117
);
5431 // elements: enumeratorList
5433 // rule labels: retval
5434 // token list labels:
5435 // rule list labels:
5437 if ( state
.backtracking
==0 ) {
5438 retval
.tree
= root_0
;
5439 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5441 root_0
= (CommonTree
)adaptor
.nil();
5442 // 693:50: -> ^( ENUM_BODY enumeratorList )
5444 // Grammar/CTFParser.g:693:53: ^( ENUM_BODY enumeratorList )
5446 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5447 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_BODY
, "ENUM_BODY"), root_1
);
5449 adaptor
.addChild(root_1
, stream_enumeratorList
.nextTree());
5451 adaptor
.addChild(root_0
, root_1
);
5456 retval
.tree
= root_0
;}
5459 retval
.stop
= input
.LT(-1);
5461 if ( state
.backtracking
==0 ) {
5463 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5464 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5466 if ( state
.backtracking
==0 ) {
5473 catch (RecognitionException e
)
5481 // $ANTLR end "enumBody"
5483 public static class enumContainerType_return
extends ParserRuleReturnScope
{
5486 public Object
getTree() { return tree
; }
5489 // $ANTLR start "enumContainerType"
5490 // Grammar/CTFParser.g:696:1: enumContainerType : COLON declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) ;
5491 public final CTFParser
.enumContainerType_return
enumContainerType() throws RecognitionException
{
5492 CTFParser
.enumContainerType_return retval
= new CTFParser
.enumContainerType_return();
5493 retval
.start
= input
.LT(1);
5495 CommonTree root_0
= null;
5497 Token COLON118
=null;
5498 CTFParser
.declarationSpecifiers_return declarationSpecifiers119
= null;
5501 CommonTree COLON118_tree
=null;
5502 RewriteRuleTokenStream stream_COLON
=new RewriteRuleTokenStream(adaptor
,"token COLON");
5503 RewriteRuleSubtreeStream stream_declarationSpecifiers
=new RewriteRuleSubtreeStream(adaptor
,"rule declarationSpecifiers");
5505 enter("enumContainerType");
5508 // Grammar/CTFParser.g:703:1: ( COLON declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) )
5509 // Grammar/CTFParser.g:704:3: COLON declarationSpecifiers
5511 COLON118
=(Token
)match(input
,COLON
,FOLLOW_COLON_in_enumContainerType2432
); if (state
.failed
) return retval
;
5512 if ( state
.backtracking
==0 ) stream_COLON
.add(COLON118
);
5514 pushFollow(FOLLOW_declarationSpecifiers_in_enumContainerType2434
);
5515 declarationSpecifiers119
=declarationSpecifiers();
5518 if (state
.failed
) return retval
;
5519 if ( state
.backtracking
==0 ) stream_declarationSpecifiers
.add(declarationSpecifiers119
.getTree());
5523 // elements: declarationSpecifiers
5525 // rule labels: retval
5526 // token list labels:
5527 // rule list labels:
5529 if ( state
.backtracking
==0 ) {
5530 retval
.tree
= root_0
;
5531 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5533 root_0
= (CommonTree
)adaptor
.nil();
5534 // 704:31: -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers )
5536 // Grammar/CTFParser.g:704:34: ^( ENUM_CONTAINER_TYPE declarationSpecifiers )
5538 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5539 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_CONTAINER_TYPE
, "ENUM_CONTAINER_TYPE"), root_1
);
5541 adaptor
.addChild(root_1
, stream_declarationSpecifiers
.nextTree());
5543 adaptor
.addChild(root_0
, root_1
);
5548 retval
.tree
= root_0
;}
5551 retval
.stop
= input
.LT(-1);
5553 if ( state
.backtracking
==0 ) {
5555 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5556 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5558 if ( state
.backtracking
==0 ) {
5560 exit("enumContainerType");
5565 catch (RecognitionException e
)
5573 // $ANTLR end "enumContainerType"
5575 public static class enumeratorList_return
extends ParserRuleReturnScope
{
5578 public Object
getTree() { return tree
; }
5581 // $ANTLR start "enumeratorList"
5582 // Grammar/CTFParser.g:707:1: enumeratorList : enumerator ( SEPARATOR enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ ;
5583 public final CTFParser
.enumeratorList_return
enumeratorList() throws RecognitionException
{
5584 CTFParser
.enumeratorList_return retval
= new CTFParser
.enumeratorList_return();
5585 retval
.start
= input
.LT(1);
5587 CommonTree root_0
= null;
5589 Token SEPARATOR121
=null;
5590 CTFParser
.enumerator_return enumerator120
= null;
5592 CTFParser
.enumerator_return enumerator122
= null;
5595 CommonTree SEPARATOR121_tree
=null;
5596 RewriteRuleTokenStream stream_SEPARATOR
=new RewriteRuleTokenStream(adaptor
,"token SEPARATOR");
5597 RewriteRuleSubtreeStream stream_enumerator
=new RewriteRuleSubtreeStream(adaptor
,"rule enumerator");
5599 enter("enumeratorList");
5602 // Grammar/CTFParser.g:714:1: ( enumerator ( SEPARATOR enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ )
5603 // Grammar/CTFParser.g:715:3: enumerator ( SEPARATOR enumerator )*
5605 pushFollow(FOLLOW_enumerator_in_enumeratorList2465
);
5606 enumerator120
=enumerator();
5609 if (state
.failed
) return retval
;
5610 if ( state
.backtracking
==0 ) stream_enumerator
.add(enumerator120
.getTree());
5611 // Grammar/CTFParser.g:715:14: ( SEPARATOR enumerator )*
5615 int LA36_0
= input
.LA(1);
5617 if ( (LA36_0
==SEPARATOR
) ) {
5618 int LA36_1
= input
.LA(2);
5620 if ( (LA36_1
==ALIGNTOK
||LA36_1
==EVENTTOK
||LA36_1
==SIGNEDTOK
||LA36_1
==STRINGTOK
||LA36_1
==STRING_LITERAL
||LA36_1
==IDENTIFIER
) ) {
5630 // Grammar/CTFParser.g:715:15: SEPARATOR enumerator
5632 SEPARATOR121
=(Token
)match(input
,SEPARATOR
,FOLLOW_SEPARATOR_in_enumeratorList2468
); if (state
.failed
) return retval
;
5633 if ( state
.backtracking
==0 ) stream_SEPARATOR
.add(SEPARATOR121
);
5635 pushFollow(FOLLOW_enumerator_in_enumeratorList2470
);
5636 enumerator122
=enumerator();
5639 if (state
.failed
) return retval
;
5640 if ( state
.backtracking
==0 ) stream_enumerator
.add(enumerator122
.getTree());
5653 // elements: enumerator
5655 // rule labels: retval
5656 // token list labels:
5657 // rule list labels:
5659 if ( state
.backtracking
==0 ) {
5660 retval
.tree
= root_0
;
5661 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5663 root_0
= (CommonTree
)adaptor
.nil();
5664 // 715:38: -> ( ^( ENUM_ENUMERATOR enumerator ) )+
5666 if ( !(stream_enumerator
.hasNext()) ) {
5667 throw new RewriteEarlyExitException();
5669 while ( stream_enumerator
.hasNext() ) {
5670 // Grammar/CTFParser.g:715:42: ^( ENUM_ENUMERATOR enumerator )
5672 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5673 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_ENUMERATOR
, "ENUM_ENUMERATOR"), root_1
);
5675 adaptor
.addChild(root_1
, stream_enumerator
.nextTree());
5677 adaptor
.addChild(root_0
, root_1
);
5681 stream_enumerator
.reset();
5685 retval
.tree
= root_0
;}
5688 retval
.stop
= input
.LT(-1);
5690 if ( state
.backtracking
==0 ) {
5692 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5693 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5695 if ( state
.backtracking
==0 ) {
5697 exit("enumeratorList");
5702 catch (RecognitionException e
)
5710 // $ANTLR end "enumeratorList"
5712 public static class enumerator_return
extends ParserRuleReturnScope
{
5715 public Object
getTree() { return tree
; }
5718 // $ANTLR start "enumerator"
5719 // Grammar/CTFParser.g:718:1: enumerator : enumConstant ( enumeratorValue )? ;
5720 public final CTFParser
.enumerator_return
enumerator() throws RecognitionException
{
5721 CTFParser
.enumerator_return retval
= new CTFParser
.enumerator_return();
5722 retval
.start
= input
.LT(1);
5724 CommonTree root_0
= null;
5726 CTFParser
.enumConstant_return enumConstant123
= null;
5728 CTFParser
.enumeratorValue_return enumeratorValue124
= null;
5733 enter("enumerator");
5736 // Grammar/CTFParser.g:725:1: ( enumConstant ( enumeratorValue )? )
5737 // Grammar/CTFParser.g:726:3: enumConstant ( enumeratorValue )?
5739 root_0
= (CommonTree
)adaptor
.nil();
5741 pushFollow(FOLLOW_enumConstant_in_enumerator2506
);
5742 enumConstant123
=enumConstant();
5745 if (state
.failed
) return retval
;
5746 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, enumConstant123
.getTree());
5747 // Grammar/CTFParser.g:726:16: ( enumeratorValue )?
5749 int LA37_0
= input
.LA(1);
5751 if ( (LA37_0
==ASSIGNMENT
) ) {
5756 // Grammar/CTFParser.g:726:16: enumeratorValue
5758 pushFollow(FOLLOW_enumeratorValue_in_enumerator2508
);
5759 enumeratorValue124
=enumeratorValue();
5762 if (state
.failed
) return retval
;
5763 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, enumeratorValue124
.getTree());
5773 retval
.stop
= input
.LT(-1);
5775 if ( state
.backtracking
==0 ) {
5777 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5778 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5780 if ( state
.backtracking
==0 ) {
5787 catch (RecognitionException e
)
5795 // $ANTLR end "enumerator"
5797 public static class enumeratorValue_return
extends ParserRuleReturnScope
{
5800 public Object
getTree() { return tree
; }
5803 // $ANTLR start "enumeratorValue"
5804 // Grammar/CTFParser.g:729:1: enumeratorValue : ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) ;
5805 public final CTFParser
.enumeratorValue_return
enumeratorValue() throws RecognitionException
{
5806 CTFParser
.enumeratorValue_return retval
= new CTFParser
.enumeratorValue_return();
5807 retval
.start
= input
.LT(1);
5809 CommonTree root_0
= null;
5811 Token ASSIGNMENT125
=null;
5812 Token ELIPSES126
=null;
5813 CTFParser
.unaryExpression_return e1
= null;
5815 CTFParser
.unaryExpression_return e2
= null;
5818 CommonTree ASSIGNMENT125_tree
=null;
5819 CommonTree ELIPSES126_tree
=null;
5820 RewriteRuleTokenStream stream_ASSIGNMENT
=new RewriteRuleTokenStream(adaptor
,"token ASSIGNMENT");
5821 RewriteRuleTokenStream stream_ELIPSES
=new RewriteRuleTokenStream(adaptor
,"token ELIPSES");
5822 RewriteRuleSubtreeStream stream_unaryExpression
=new RewriteRuleSubtreeStream(adaptor
,"rule unaryExpression");
5824 enter("enumeratorValue");
5827 // Grammar/CTFParser.g:736:1: ( ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) )
5828 // Grammar/CTFParser.g:737:3: ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) )
5830 ASSIGNMENT125
=(Token
)match(input
,ASSIGNMENT
,FOLLOW_ASSIGNMENT_in_enumeratorValue2532
); if (state
.failed
) return retval
;
5831 if ( state
.backtracking
==0 ) stream_ASSIGNMENT
.add(ASSIGNMENT125
);
5833 pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2536
);
5834 e1
=unaryExpression();
5837 if (state
.failed
) return retval
;
5838 if ( state
.backtracking
==0 ) stream_unaryExpression
.add(e1
.getTree());
5839 // Grammar/CTFParser.g:738:3: ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) )
5841 int LA38_0
= input
.LA(1);
5843 if ( (LA38_0
==SEPARATOR
||LA38_0
==RCURL
) ) {
5846 else if ( (LA38_0
==ELIPSES
) ) {
5850 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
5851 NoViableAltException nvae
=
5852 new NoViableAltException("", 38, 0, input
);
5858 // Grammar/CTFParser.g:739:5:
5864 // rule labels: retval, e1
5865 // token list labels:
5866 // rule list labels:
5868 if ( state
.backtracking
==0 ) {
5869 retval
.tree
= root_0
;
5870 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5871 RewriteRuleSubtreeStream stream_e1
=new RewriteRuleSubtreeStream(adaptor
,"rule e1",e1
!=null?e1
.tree
:null);
5873 root_0
= (CommonTree
)adaptor
.nil();
5874 // 739:5: -> ^( ENUM_VALUE $e1)
5876 // Grammar/CTFParser.g:739:8: ^( ENUM_VALUE $e1)
5878 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5879 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_VALUE
, "ENUM_VALUE"), root_1
);
5881 adaptor
.addChild(root_1
, stream_e1
.nextTree());
5883 adaptor
.addChild(root_0
, root_1
);
5888 retval
.tree
= root_0
;}
5892 // Grammar/CTFParser.g:740:7: ELIPSES e2= unaryExpression
5894 ELIPSES126
=(Token
)match(input
,ELIPSES
,FOLLOW_ELIPSES_in_enumeratorValue2562
); if (state
.failed
) return retval
;
5895 if ( state
.backtracking
==0 ) stream_ELIPSES
.add(ELIPSES126
);
5897 pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2566
);
5898 e2
=unaryExpression();
5901 if (state
.failed
) return retval
;
5902 if ( state
.backtracking
==0 ) stream_unaryExpression
.add(e2
.getTree());
5908 // rule labels: retval, e1, e2
5909 // token list labels:
5910 // rule list labels:
5912 if ( state
.backtracking
==0 ) {
5913 retval
.tree
= root_0
;
5914 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
5915 RewriteRuleSubtreeStream stream_e1
=new RewriteRuleSubtreeStream(adaptor
,"rule e1",e1
!=null?e1
.tree
:null);
5916 RewriteRuleSubtreeStream stream_e2
=new RewriteRuleSubtreeStream(adaptor
,"rule e2",e2
!=null?e2
.tree
:null);
5918 root_0
= (CommonTree
)adaptor
.nil();
5919 // 740:34: -> ^( ENUM_VALUE_RANGE $e1 $e2)
5921 // Grammar/CTFParser.g:740:37: ^( ENUM_VALUE_RANGE $e1 $e2)
5923 CommonTree root_1
= (CommonTree
)adaptor
.nil();
5924 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(ENUM_VALUE_RANGE
, "ENUM_VALUE_RANGE"), root_1
);
5926 adaptor
.addChild(root_1
, stream_e1
.nextTree());
5927 adaptor
.addChild(root_1
, stream_e2
.nextTree());
5929 adaptor
.addChild(root_0
, root_1
);
5934 retval
.tree
= root_0
;}
5943 retval
.stop
= input
.LT(-1);
5945 if ( state
.backtracking
==0 ) {
5947 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
5948 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
5950 if ( state
.backtracking
==0 ) {
5952 exit("enumeratorValue");
5957 catch (RecognitionException e
)
5965 // $ANTLR end "enumeratorValue"
5967 public static class declarator_return
extends ParserRuleReturnScope
{
5970 public Object
getTree() { return tree
; }
5973 // $ANTLR start "declarator"
5974 // Grammar/CTFParser.g:745:1: declarator : ( pointer )* directDeclarator -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) ;
5975 public final CTFParser
.declarator_return
declarator() throws RecognitionException
{
5976 CTFParser
.declarator_return retval
= new CTFParser
.declarator_return();
5977 retval
.start
= input
.LT(1);
5979 CommonTree root_0
= null;
5981 CTFParser
.pointer_return pointer127
= null;
5983 CTFParser
.directDeclarator_return directDeclarator128
= null;
5986 RewriteRuleSubtreeStream stream_directDeclarator
=new RewriteRuleSubtreeStream(adaptor
,"rule directDeclarator");
5987 RewriteRuleSubtreeStream stream_pointer
=new RewriteRuleSubtreeStream(adaptor
,"rule pointer");
5989 enter("declarator");
5992 // Grammar/CTFParser.g:752:1: ( ( pointer )* directDeclarator -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) )
5993 // Grammar/CTFParser.g:753:3: ( pointer )* directDeclarator
5995 // Grammar/CTFParser.g:753:3: ( pointer )*
5999 int LA39_0
= input
.LA(1);
6001 if ( (LA39_0
==POINTER
) ) {
6008 // Grammar/CTFParser.g:753:3: pointer
6010 pushFollow(FOLLOW_pointer_in_declarator2608
);
6011 pointer127
=pointer();
6014 if (state
.failed
) return retval
;
6015 if ( state
.backtracking
==0 ) stream_pointer
.add(pointer127
.getTree());
6025 pushFollow(FOLLOW_directDeclarator_in_declarator2611
);
6026 directDeclarator128
=directDeclarator();
6029 if (state
.failed
) return retval
;
6030 if ( state
.backtracking
==0 ) stream_directDeclarator
.add(directDeclarator128
.getTree());
6034 // elements: directDeclarator, pointer
6036 // rule labels: retval
6037 // token list labels:
6038 // rule list labels:
6040 if ( state
.backtracking
==0 ) {
6041 retval
.tree
= root_0
;
6042 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
6044 root_0
= (CommonTree
)adaptor
.nil();
6045 // 753:29: -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator )
6047 // Grammar/CTFParser.g:753:32: ^( TYPE_DECLARATOR ( pointer )* directDeclarator )
6049 CommonTree root_1
= (CommonTree
)adaptor
.nil();
6050 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR
, "TYPE_DECLARATOR"), root_1
);
6052 // Grammar/CTFParser.g:753:50: ( pointer )*
6053 while ( stream_pointer
.hasNext() ) {
6054 adaptor
.addChild(root_1
, stream_pointer
.nextTree());
6057 stream_pointer
.reset();
6058 adaptor
.addChild(root_1
, stream_directDeclarator
.nextTree());
6060 adaptor
.addChild(root_0
, root_1
);
6065 retval
.tree
= root_0
;}
6068 retval
.stop
= input
.LT(-1);
6070 if ( state
.backtracking
==0 ) {
6072 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6073 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6075 if ( state
.backtracking
==0 ) {
6082 catch (RecognitionException e
)
6090 // $ANTLR end "declarator"
6092 public static class directDeclarator_return
extends ParserRuleReturnScope
{
6095 public Object
getTree() { return tree
; }
6098 // $ANTLR start "directDeclarator"
6099 // Grammar/CTFParser.g:756:1: directDeclarator : ( IDENTIFIER ) ( directDeclaratorSuffix )* ;
6100 public final CTFParser
.directDeclarator_return
directDeclarator() throws RecognitionException
{
6101 CTFParser
.directDeclarator_return retval
= new CTFParser
.directDeclarator_return();
6102 retval
.start
= input
.LT(1);
6104 CommonTree root_0
= null;
6106 Token IDENTIFIER129
=null;
6107 CTFParser
.directDeclaratorSuffix_return directDeclaratorSuffix130
= null;
6110 CommonTree IDENTIFIER129_tree
=null;
6113 enter("directDeclarator");
6116 // Grammar/CTFParser.g:763:1: ( ( IDENTIFIER ) ( directDeclaratorSuffix )* )
6117 // Grammar/CTFParser.g:764:3: ( IDENTIFIER ) ( directDeclaratorSuffix )*
6119 root_0
= (CommonTree
)adaptor
.nil();
6121 // Grammar/CTFParser.g:764:3: ( IDENTIFIER )
6122 // Grammar/CTFParser.g:765:6: IDENTIFIER
6124 IDENTIFIER129
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_directDeclarator2655
); if (state
.failed
) return retval
;
6125 if ( state
.backtracking
==0 ) {
6126 IDENTIFIER129_tree
= (CommonTree
)adaptor
.create(IDENTIFIER129
);
6127 adaptor
.addChild(root_0
, IDENTIFIER129_tree
);
6129 if ( state
.backtracking
==0 ) {
6130 if (inTypedef()) addTypeName((IDENTIFIER129
!=null?IDENTIFIER129
.getText():null));
6132 if ( state
.backtracking
==0 ) {
6133 debug_print((IDENTIFIER129
!=null?IDENTIFIER129
.getText():null));
6138 // Grammar/CTFParser.g:768:2: ( directDeclaratorSuffix )*
6142 int LA40_0
= input
.LA(1);
6144 if ( (LA40_0
==OPENBRAC
) ) {
6151 // Grammar/CTFParser.g:768:2: directDeclaratorSuffix
6153 pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator2673
);
6154 directDeclaratorSuffix130
=directDeclaratorSuffix();
6157 if (state
.failed
) return retval
;
6158 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, directDeclaratorSuffix130
.getTree());
6171 retval
.stop
= input
.LT(-1);
6173 if ( state
.backtracking
==0 ) {
6175 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6176 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6178 if ( state
.backtracking
==0 ) {
6180 exit("directDeclarator");
6185 catch (RecognitionException e
)
6193 // $ANTLR end "directDeclarator"
6195 public static class directDeclaratorSuffix_return
extends ParserRuleReturnScope
{
6198 public Object
getTree() { return tree
; }
6201 // $ANTLR start "directDeclaratorSuffix"
6202 // Grammar/CTFParser.g:771:1: directDeclaratorSuffix : OPENBRAC directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) ;
6203 public final CTFParser
.directDeclaratorSuffix_return
directDeclaratorSuffix() throws RecognitionException
{
6204 CTFParser
.directDeclaratorSuffix_return retval
= new CTFParser
.directDeclaratorSuffix_return();
6205 retval
.start
= input
.LT(1);
6207 CommonTree root_0
= null;
6209 Token OPENBRAC131
=null;
6210 Token CLOSEBRAC133
=null;
6211 CTFParser
.directDeclaratorLength_return directDeclaratorLength132
= null;
6214 CommonTree OPENBRAC131_tree
=null;
6215 CommonTree CLOSEBRAC133_tree
=null;
6216 RewriteRuleTokenStream stream_OPENBRAC
=new RewriteRuleTokenStream(adaptor
,"token OPENBRAC");
6217 RewriteRuleTokenStream stream_CLOSEBRAC
=new RewriteRuleTokenStream(adaptor
,"token CLOSEBRAC");
6218 RewriteRuleSubtreeStream stream_directDeclaratorLength
=new RewriteRuleSubtreeStream(adaptor
,"rule directDeclaratorLength");
6220 // Grammar/CTFParser.g:771:23: ( OPENBRAC directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) )
6221 // Grammar/CTFParser.g:772:3: OPENBRAC directDeclaratorLength CLOSEBRAC
6223 OPENBRAC131
=(Token
)match(input
,OPENBRAC
,FOLLOW_OPENBRAC_in_directDeclaratorSuffix2686
); if (state
.failed
) return retval
;
6224 if ( state
.backtracking
==0 ) stream_OPENBRAC
.add(OPENBRAC131
);
6226 pushFollow(FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2688
);
6227 directDeclaratorLength132
=directDeclaratorLength();
6230 if (state
.failed
) return retval
;
6231 if ( state
.backtracking
==0 ) stream_directDeclaratorLength
.add(directDeclaratorLength132
.getTree());
6232 CLOSEBRAC133
=(Token
)match(input
,CLOSEBRAC
,FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2690
); if (state
.failed
) return retval
;
6233 if ( state
.backtracking
==0 ) stream_CLOSEBRAC
.add(CLOSEBRAC133
);
6238 // elements: directDeclaratorLength
6240 // rule labels: retval
6241 // token list labels:
6242 // rule list labels:
6244 if ( state
.backtracking
==0 ) {
6245 retval
.tree
= root_0
;
6246 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
6248 root_0
= (CommonTree
)adaptor
.nil();
6249 // 772:45: -> ^( LENGTH directDeclaratorLength )
6251 // Grammar/CTFParser.g:772:48: ^( LENGTH directDeclaratorLength )
6253 CommonTree root_1
= (CommonTree
)adaptor
.nil();
6254 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(LENGTH
, "LENGTH"), root_1
);
6256 adaptor
.addChild(root_1
, stream_directDeclaratorLength
.nextTree());
6258 adaptor
.addChild(root_0
, root_1
);
6263 retval
.tree
= root_0
;}
6266 retval
.stop
= input
.LT(-1);
6268 if ( state
.backtracking
==0 ) {
6270 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6271 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6275 catch (RecognitionException e
)
6283 // $ANTLR end "directDeclaratorSuffix"
6285 public static class directDeclaratorLength_return
extends ParserRuleReturnScope
{
6288 public Object
getTree() { return tree
; }
6291 // $ANTLR start "directDeclaratorLength"
6292 // Grammar/CTFParser.g:775:1: directDeclaratorLength : unaryExpression ;
6293 public final CTFParser
.directDeclaratorLength_return
directDeclaratorLength() throws RecognitionException
{
6294 CTFParser
.directDeclaratorLength_return retval
= new CTFParser
.directDeclaratorLength_return();
6295 retval
.start
= input
.LT(1);
6297 CommonTree root_0
= null;
6299 CTFParser
.unaryExpression_return unaryExpression134
= null;
6304 // Grammar/CTFParser.g:775:24: ( unaryExpression )
6305 // Grammar/CTFParser.g:776:3: unaryExpression
6307 root_0
= (CommonTree
)adaptor
.nil();
6309 pushFollow(FOLLOW_unaryExpression_in_directDeclaratorLength2711
);
6310 unaryExpression134
=unaryExpression();
6313 if (state
.failed
) return retval
;
6314 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, unaryExpression134
.getTree());
6318 retval
.stop
= input
.LT(-1);
6320 if ( state
.backtracking
==0 ) {
6322 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6323 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6327 catch (RecognitionException e
)
6335 // $ANTLR end "directDeclaratorLength"
6337 public static class abstractDeclarator_return
extends ParserRuleReturnScope
{
6340 public Object
getTree() { return tree
; }
6343 // $ANTLR start "abstractDeclarator"
6344 // Grammar/CTFParser.g:780:1: abstractDeclarator : ( ( ( pointer )+ ( directAbstractDeclarator )? ) -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^( TYPE_DECLARATOR directAbstractDeclarator ) );
6345 public final CTFParser
.abstractDeclarator_return
abstractDeclarator() throws RecognitionException
{
6346 CTFParser
.abstractDeclarator_return retval
= new CTFParser
.abstractDeclarator_return();
6347 retval
.start
= input
.LT(1);
6349 CommonTree root_0
= null;
6351 CTFParser
.pointer_return pointer135
= null;
6353 CTFParser
.directAbstractDeclarator_return directAbstractDeclarator136
= null;
6355 CTFParser
.directAbstractDeclarator_return directAbstractDeclarator137
= null;
6358 RewriteRuleSubtreeStream stream_pointer
=new RewriteRuleSubtreeStream(adaptor
,"rule pointer");
6359 RewriteRuleSubtreeStream stream_directAbstractDeclarator
=new RewriteRuleSubtreeStream(adaptor
,"rule directAbstractDeclarator");
6361 enter("abstractDeclarator");
6364 // Grammar/CTFParser.g:787:1: ( ( ( pointer )+ ( directAbstractDeclarator )? ) -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^( TYPE_DECLARATOR directAbstractDeclarator ) )
6366 int LA43_0
= input
.LA(1);
6368 if ( (LA43_0
==POINTER
) ) {
6371 else if ( (LA43_0
==LPAREN
||LA43_0
==IDENTIFIER
) ) {
6375 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
6376 NoViableAltException nvae
=
6377 new NoViableAltException("", 43, 0, input
);
6383 // Grammar/CTFParser.g:788:5: ( ( pointer )+ ( directAbstractDeclarator )? )
6385 // Grammar/CTFParser.g:788:5: ( ( pointer )+ ( directAbstractDeclarator )? )
6386 // Grammar/CTFParser.g:788:6: ( pointer )+ ( directAbstractDeclarator )?
6388 // Grammar/CTFParser.g:788:6: ( pointer )+
6393 int LA41_0
= input
.LA(1);
6395 if ( (LA41_0
==POINTER
) ) {
6402 // Grammar/CTFParser.g:788:6: pointer
6404 pushFollow(FOLLOW_pointer_in_abstractDeclarator2742
);
6405 pointer135
=pointer();
6408 if (state
.failed
) return retval
;
6409 if ( state
.backtracking
==0 ) stream_pointer
.add(pointer135
.getTree());
6415 if ( cnt41
>= 1 ) break loop41
;
6416 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
6417 EarlyExitException eee
=
6418 new EarlyExitException(41, input
);
6424 // Grammar/CTFParser.g:788:15: ( directAbstractDeclarator )?
6426 int LA42_0
= input
.LA(1);
6428 if ( (LA42_0
==LPAREN
||LA42_0
==IDENTIFIER
) ) {
6433 // Grammar/CTFParser.g:788:15: directAbstractDeclarator
6435 pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2745
);
6436 directAbstractDeclarator136
=directAbstractDeclarator();
6439 if (state
.failed
) return retval
;
6440 if ( state
.backtracking
==0 ) stream_directAbstractDeclarator
.add(directAbstractDeclarator136
.getTree());
6453 // elements: pointer, directAbstractDeclarator
6455 // rule labels: retval
6456 // token list labels:
6457 // rule list labels:
6459 if ( state
.backtracking
==0 ) {
6460 retval
.tree
= root_0
;
6461 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
6463 root_0
= (CommonTree
)adaptor
.nil();
6464 // 788:42: -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? )
6466 // Grammar/CTFParser.g:788:45: ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? )
6468 CommonTree root_1
= (CommonTree
)adaptor
.nil();
6469 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR
, "TYPE_DECLARATOR"), root_1
);
6471 if ( !(stream_pointer
.hasNext()) ) {
6472 throw new RewriteEarlyExitException();
6474 while ( stream_pointer
.hasNext() ) {
6475 adaptor
.addChild(root_1
, stream_pointer
.nextTree());
6478 stream_pointer
.reset();
6479 // Grammar/CTFParser.g:788:72: ( directAbstractDeclarator )?
6480 if ( stream_directAbstractDeclarator
.hasNext() ) {
6481 adaptor
.addChild(root_1
, stream_directAbstractDeclarator
.nextTree());
6484 stream_directAbstractDeclarator
.reset();
6486 adaptor
.addChild(root_0
, root_1
);
6491 retval
.tree
= root_0
;}
6495 // Grammar/CTFParser.g:789:5: directAbstractDeclarator
6497 pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2765
);
6498 directAbstractDeclarator137
=directAbstractDeclarator();
6501 if (state
.failed
) return retval
;
6502 if ( state
.backtracking
==0 ) stream_directAbstractDeclarator
.add(directAbstractDeclarator137
.getTree());
6506 // elements: directAbstractDeclarator
6508 // rule labels: retval
6509 // token list labels:
6510 // rule list labels:
6512 if ( state
.backtracking
==0 ) {
6513 retval
.tree
= root_0
;
6514 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
6516 root_0
= (CommonTree
)adaptor
.nil();
6517 // 789:30: -> ^( TYPE_DECLARATOR directAbstractDeclarator )
6519 // Grammar/CTFParser.g:789:33: ^( TYPE_DECLARATOR directAbstractDeclarator )
6521 CommonTree root_1
= (CommonTree
)adaptor
.nil();
6522 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_DECLARATOR
, "TYPE_DECLARATOR"), root_1
);
6524 adaptor
.addChild(root_1
, stream_directAbstractDeclarator
.nextTree());
6526 adaptor
.addChild(root_0
, root_1
);
6531 retval
.tree
= root_0
;}
6536 retval
.stop
= input
.LT(-1);
6538 if ( state
.backtracking
==0 ) {
6540 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6541 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6543 if ( state
.backtracking
==0 ) {
6545 exit("abstractDeclarator");
6550 catch (RecognitionException e
)
6558 // $ANTLR end "abstractDeclarator"
6560 public static class directAbstractDeclarator_return
extends ParserRuleReturnScope
{
6563 public Object
getTree() { return tree
; }
6566 // $ANTLR start "directAbstractDeclarator"
6567 // Grammar/CTFParser.g:796:1: directAbstractDeclarator : ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? ;
6568 public final CTFParser
.directAbstractDeclarator_return
directAbstractDeclarator() throws RecognitionException
{
6569 CTFParser
.directAbstractDeclarator_return retval
= new CTFParser
.directAbstractDeclarator_return();
6570 retval
.start
= input
.LT(1);
6572 CommonTree root_0
= null;
6574 Token IDENTIFIER138
=null;
6575 Token LPAREN139
=null;
6576 Token RPAREN141
=null;
6577 Token OPENBRAC142
=null;
6578 Token CLOSEBRAC144
=null;
6579 CTFParser
.abstractDeclarator_return abstractDeclarator140
= null;
6581 CTFParser
.unaryExpression_return unaryExpression143
= null;
6584 CommonTree IDENTIFIER138_tree
=null;
6585 CommonTree LPAREN139_tree
=null;
6586 CommonTree RPAREN141_tree
=null;
6587 CommonTree OPENBRAC142_tree
=null;
6588 CommonTree CLOSEBRAC144_tree
=null;
6591 enter("directAbstractDeclarator");
6594 // Grammar/CTFParser.g:804:1: ( ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? )
6595 // Grammar/CTFParser.g:805:3: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )?
6597 root_0
= (CommonTree
)adaptor
.nil();
6599 // Grammar/CTFParser.g:805:3: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) )
6601 int LA44_0
= input
.LA(1);
6603 if ( (LA44_0
==IDENTIFIER
) ) {
6606 else if ( (LA44_0
==LPAREN
) ) {
6610 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
6611 NoViableAltException nvae
=
6612 new NoViableAltException("", 44, 0, input
);
6618 // Grammar/CTFParser.g:806:6: IDENTIFIER
6620 IDENTIFIER138
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_directAbstractDeclarator2805
); if (state
.failed
) return retval
;
6621 if ( state
.backtracking
==0 ) {
6622 IDENTIFIER138_tree
= (CommonTree
)adaptor
.create(IDENTIFIER138
);
6623 adaptor
.addChild(root_0
, IDENTIFIER138_tree
);
6629 // Grammar/CTFParser.g:807:7: ( LPAREN abstractDeclarator RPAREN )
6631 // Grammar/CTFParser.g:807:7: ( LPAREN abstractDeclarator RPAREN )
6632 // Grammar/CTFParser.g:807:8: LPAREN abstractDeclarator RPAREN
6634 LPAREN139
=(Token
)match(input
,LPAREN
,FOLLOW_LPAREN_in_directAbstractDeclarator2814
); if (state
.failed
) return retval
;
6635 if ( state
.backtracking
==0 ) {
6636 LPAREN139_tree
= (CommonTree
)adaptor
.create(LPAREN139
);
6637 adaptor
.addChild(root_0
, LPAREN139_tree
);
6639 pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2816
);
6640 abstractDeclarator140
=abstractDeclarator();
6643 if (state
.failed
) return retval
;
6644 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, abstractDeclarator140
.getTree());
6645 RPAREN141
=(Token
)match(input
,RPAREN
,FOLLOW_RPAREN_in_directAbstractDeclarator2818
); if (state
.failed
) return retval
;
6646 if ( state
.backtracking
==0 ) {
6647 RPAREN141_tree
= (CommonTree
)adaptor
.create(RPAREN141
);
6648 adaptor
.addChild(root_0
, RPAREN141_tree
);
6659 // Grammar/CTFParser.g:809:3: ( OPENBRAC ( unaryExpression )? CLOSEBRAC )?
6661 int LA46_0
= input
.LA(1);
6663 if ( (LA46_0
==OPENBRAC
) ) {
6668 // Grammar/CTFParser.g:810:5: OPENBRAC ( unaryExpression )? CLOSEBRAC
6670 OPENBRAC142
=(Token
)match(input
,OPENBRAC
,FOLLOW_OPENBRAC_in_directAbstractDeclarator2833
); if (state
.failed
) return retval
;
6671 if ( state
.backtracking
==0 ) {
6672 OPENBRAC142_tree
= (CommonTree
)adaptor
.create(OPENBRAC142
);
6673 adaptor
.addChild(root_0
, OPENBRAC142_tree
);
6675 // Grammar/CTFParser.g:810:14: ( unaryExpression )?
6677 int LA45_0
= input
.LA(1);
6679 if ( (LA45_0
==ALIGNTOK
||LA45_0
==EVENTTOK
||(LA45_0
>=SIGNEDTOK
&& LA45_0
<=STRINGTOK
)||LA45_0
==TRACETOK
||(LA45_0
>=ENVTOK
&& LA45_0
<=CLOCKTOK
)||LA45_0
==SIGN
||LA45_0
==OCTAL_LITERAL
||LA45_0
==DECIMAL_LITERAL
||LA45_0
==HEX_LITERAL
||LA45_0
==CHARACTER_LITERAL
||LA45_0
==STRING_LITERAL
||LA45_0
==IDENTIFIER
) ) {
6684 // Grammar/CTFParser.g:810:14: unaryExpression
6686 pushFollow(FOLLOW_unaryExpression_in_directAbstractDeclarator2835
);
6687 unaryExpression143
=unaryExpression();
6690 if (state
.failed
) return retval
;
6691 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, unaryExpression143
.getTree());
6698 CLOSEBRAC144
=(Token
)match(input
,CLOSEBRAC
,FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2838
); if (state
.failed
) return retval
;
6699 if ( state
.backtracking
==0 ) {
6700 CLOSEBRAC144_tree
= (CommonTree
)adaptor
.create(CLOSEBRAC144
);
6701 adaptor
.addChild(root_0
, CLOSEBRAC144_tree
);
6712 retval
.stop
= input
.LT(-1);
6714 if ( state
.backtracking
==0 ) {
6716 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6717 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6719 if ( state
.backtracking
==0 ) {
6721 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
6722 exit("directAbstractDeclarator");
6727 catch (RecognitionException e
)
6735 // $ANTLR end "directAbstractDeclarator"
6737 public static class pointer_return
extends ParserRuleReturnScope
{
6740 public Object
getTree() { return tree
; }
6743 // $ANTLR start "pointer"
6744 // Grammar/CTFParser.g:814:1: pointer : POINTER ( typeQualifierList )? -> ^( POINTER ( typeQualifierList )? ) ;
6745 public final CTFParser
.pointer_return
pointer() throws RecognitionException
{
6746 CTFParser
.pointer_return retval
= new CTFParser
.pointer_return();
6747 retval
.start
= input
.LT(1);
6749 CommonTree root_0
= null;
6751 Token POINTER145
=null;
6752 CTFParser
.typeQualifierList_return typeQualifierList146
= null;
6755 CommonTree POINTER145_tree
=null;
6756 RewriteRuleTokenStream stream_POINTER
=new RewriteRuleTokenStream(adaptor
,"token POINTER");
6757 RewriteRuleSubtreeStream stream_typeQualifierList
=new RewriteRuleSubtreeStream(adaptor
,"rule typeQualifierList");
6762 // Grammar/CTFParser.g:822:1: ( POINTER ( typeQualifierList )? -> ^( POINTER ( typeQualifierList )? ) )
6763 // Grammar/CTFParser.g:823:3: POINTER ( typeQualifierList )?
6765 POINTER145
=(Token
)match(input
,POINTER
,FOLLOW_POINTER_in_pointer2866
); if (state
.failed
) return retval
;
6766 if ( state
.backtracking
==0 ) stream_POINTER
.add(POINTER145
);
6768 // Grammar/CTFParser.g:823:11: ( typeQualifierList )?
6770 int LA47_0
= input
.LA(1);
6772 if ( (LA47_0
==CONSTTOK
) ) {
6777 // Grammar/CTFParser.g:823:11: typeQualifierList
6779 pushFollow(FOLLOW_typeQualifierList_in_pointer2868
);
6780 typeQualifierList146
=typeQualifierList();
6783 if (state
.failed
) return retval
;
6784 if ( state
.backtracking
==0 ) stream_typeQualifierList
.add(typeQualifierList146
.getTree());
6794 // elements: typeQualifierList, POINTER
6796 // rule labels: retval
6797 // token list labels:
6798 // rule list labels:
6800 if ( state
.backtracking
==0 ) {
6801 retval
.tree
= root_0
;
6802 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
6804 root_0
= (CommonTree
)adaptor
.nil();
6805 // 823:30: -> ^( POINTER ( typeQualifierList )? )
6807 // Grammar/CTFParser.g:823:33: ^( POINTER ( typeQualifierList )? )
6809 CommonTree root_1
= (CommonTree
)adaptor
.nil();
6810 root_1
= (CommonTree
)adaptor
.becomeRoot(stream_POINTER
.nextNode(), root_1
);
6812 // Grammar/CTFParser.g:823:43: ( typeQualifierList )?
6813 if ( stream_typeQualifierList
.hasNext() ) {
6814 adaptor
.addChild(root_1
, stream_typeQualifierList
.nextTree());
6817 stream_typeQualifierList
.reset();
6819 adaptor
.addChild(root_0
, root_1
);
6824 retval
.tree
= root_0
;}
6827 retval
.stop
= input
.LT(-1);
6829 if ( state
.backtracking
==0 ) {
6831 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6832 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6834 if ( state
.backtracking
==0 ) {
6836 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
6842 catch (RecognitionException e
)
6850 // $ANTLR end "pointer"
6852 public static class typeQualifierList_return
extends ParserRuleReturnScope
{
6855 public Object
getTree() { return tree
; }
6858 // $ANTLR start "typeQualifierList"
6859 // Grammar/CTFParser.g:826:1: typeQualifierList : ( typeQualifier )+ ;
6860 public final CTFParser
.typeQualifierList_return
typeQualifierList() throws RecognitionException
{
6861 CTFParser
.typeQualifierList_return retval
= new CTFParser
.typeQualifierList_return();
6862 retval
.start
= input
.LT(1);
6864 CommonTree root_0
= null;
6866 CTFParser
.typeQualifier_return typeQualifier147
= null;
6871 // Grammar/CTFParser.g:826:19: ( ( typeQualifier )+ )
6872 // Grammar/CTFParser.g:827:3: ( typeQualifier )+
6874 root_0
= (CommonTree
)adaptor
.nil();
6876 // Grammar/CTFParser.g:827:3: ( typeQualifier )+
6881 int LA48_0
= input
.LA(1);
6883 if ( (LA48_0
==CONSTTOK
) ) {
6890 // Grammar/CTFParser.g:827:3: typeQualifier
6892 pushFollow(FOLLOW_typeQualifier_in_typeQualifierList2891
);
6893 typeQualifier147
=typeQualifier();
6896 if (state
.failed
) return retval
;
6897 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, typeQualifier147
.getTree());
6903 if ( cnt48
>= 1 ) break loop48
;
6904 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
6905 EarlyExitException eee
=
6906 new EarlyExitException(48, input
);
6915 retval
.stop
= input
.LT(-1);
6917 if ( state
.backtracking
==0 ) {
6919 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6920 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6924 catch (RecognitionException e
)
6932 // $ANTLR end "typeQualifierList"
6934 public static class typedefName_return
extends ParserRuleReturnScope
{
6937 public Object
getTree() { return tree
; }
6940 // $ANTLR start "typedefName"
6941 // Grammar/CTFParser.g:830:1: typedefName : {...}? IDENTIFIER ;
6942 public final CTFParser
.typedefName_return
typedefName() throws RecognitionException
{
6943 CTFParser
.typedefName_return retval
= new CTFParser
.typedefName_return();
6944 retval
.start
= input
.LT(1);
6946 CommonTree root_0
= null;
6948 Token IDENTIFIER148
=null;
6950 CommonTree IDENTIFIER148_tree
=null;
6953 enter("typedefName");
6956 // Grammar/CTFParser.g:838:1: ({...}? IDENTIFIER )
6957 // Grammar/CTFParser.g:839:3: {...}? IDENTIFIER
6959 root_0
= (CommonTree
)adaptor
.nil();
6961 if ( !((inTypealiasAlias() || isTypeName(input
.LT(1).getText()))) ) {
6962 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
6963 throw new FailedPredicateException(input
, "typedefName", "inTypealiasAlias() || isTypeName(input.LT(1).getText())");
6965 IDENTIFIER148
=(Token
)match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_typedefName2917
); if (state
.failed
) return retval
;
6966 if ( state
.backtracking
==0 ) {
6967 IDENTIFIER148_tree
= (CommonTree
)adaptor
.create(IDENTIFIER148
);
6968 adaptor
.addChild(root_0
, IDENTIFIER148_tree
);
6970 if ( state
.backtracking
==0 ) {
6971 if ((inTypedef() || inTypealiasAlias()) && !isTypeName((IDENTIFIER148
!=null?IDENTIFIER148
.getText():null))) { addTypeName((IDENTIFIER148
!=null?IDENTIFIER148
.getText():null)); }
6976 retval
.stop
= input
.LT(-1);
6978 if ( state
.backtracking
==0 ) {
6980 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
6981 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
6983 if ( state
.backtracking
==0 ) {
6985 debug_print("typedefName: " + input
.toString(retval
.start
,input
.LT(-1)));
6986 exit("typedefName");
6991 catch (RecognitionException e
)
6999 // $ANTLR end "typedefName"
7001 public static class typealiasTarget_return
extends ParserRuleReturnScope
{
7004 public Object
getTree() { return tree
; }
7007 // $ANTLR start "typealiasTarget"
7008 // Grammar/CTFParser.g:842:1: typealiasTarget : declarationSpecifiers ( abstractDeclaratorList )? ;
7009 public final CTFParser
.typealiasTarget_return
typealiasTarget() throws RecognitionException
{
7010 CTFParser
.typealiasTarget_return retval
= new CTFParser
.typealiasTarget_return();
7011 retval
.start
= input
.LT(1);
7013 CommonTree root_0
= null;
7015 CTFParser
.declarationSpecifiers_return declarationSpecifiers149
= null;
7017 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList150
= null;
7022 enter("typealiasTarget");
7025 // Grammar/CTFParser.g:855:1: ( declarationSpecifiers ( abstractDeclaratorList )? )
7026 // Grammar/CTFParser.g:856:3: declarationSpecifiers ( abstractDeclaratorList )?
7028 root_0
= (CommonTree
)adaptor
.nil();
7030 pushFollow(FOLLOW_declarationSpecifiers_in_typealiasTarget2945
);
7031 declarationSpecifiers149
=declarationSpecifiers();
7034 if (state
.failed
) return retval
;
7035 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, declarationSpecifiers149
.getTree());
7036 // Grammar/CTFParser.g:856:25: ( abstractDeclaratorList )?
7038 int LA49_0
= input
.LA(1);
7040 if ( (LA49_0
==LPAREN
||LA49_0
==POINTER
||LA49_0
==IDENTIFIER
) ) {
7045 // Grammar/CTFParser.g:856:25: abstractDeclaratorList
7047 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasTarget2947
);
7048 abstractDeclaratorList150
=abstractDeclaratorList();
7051 if (state
.failed
) return retval
;
7052 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, abstractDeclaratorList150
.getTree());
7062 retval
.stop
= input
.LT(-1);
7064 if ( state
.backtracking
==0 ) {
7066 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7067 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7069 if ( state
.backtracking
==0 ) {
7071 exit("typealiasTarget");
7076 catch (RecognitionException e
)
7084 // $ANTLR end "typealiasTarget"
7086 public static class typealiasAlias_return
extends ParserRuleReturnScope
{
7089 public Object
getTree() { return tree
; }
7092 // $ANTLR start "typealiasAlias"
7093 // Grammar/CTFParser.g:859:1: typealiasAlias : ( abstractDeclaratorList | ( declarationSpecifiers ( abstractDeclaratorList )? ) ) ;
7094 public final CTFParser
.typealiasAlias_return
typealiasAlias() throws RecognitionException
{
7095 CTFParser
.typealiasAlias_return retval
= new CTFParser
.typealiasAlias_return();
7096 retval
.start
= input
.LT(1);
7098 CommonTree root_0
= null;
7100 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList151
= null;
7102 CTFParser
.declarationSpecifiers_return declarationSpecifiers152
= null;
7104 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList153
= null;
7109 enter("typealiasAlias");
7113 // Grammar/CTFParser.g:874:1: ( ( abstractDeclaratorList | ( declarationSpecifiers ( abstractDeclaratorList )? ) ) )
7114 // Grammar/CTFParser.g:875:3: ( abstractDeclaratorList | ( declarationSpecifiers ( abstractDeclaratorList )? ) )
7116 root_0
= (CommonTree
)adaptor
.nil();
7118 // Grammar/CTFParser.g:875:3: ( abstractDeclaratorList | ( declarationSpecifiers ( abstractDeclaratorList )? ) )
7120 switch ( input
.LA(1) ) {
7129 int LA51_2
= input
.LA(2);
7131 if ( (!(((inTypealiasAlias() || isTypeName(input
.LT(1).getText()))))) ) {
7134 else if ( ((inTypealiasAlias() || isTypeName(input
.LT(1).getText()))) ) {
7138 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7139 NoViableAltException nvae
=
7140 new NoViableAltException("", 51, 2, input
);
7150 case FLOATINGPOINTTOK
:
7171 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7172 NoViableAltException nvae
=
7173 new NoViableAltException("", 51, 0, input
);
7180 // Grammar/CTFParser.g:876:3: abstractDeclaratorList
7182 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias2980
);
7183 abstractDeclaratorList151
=abstractDeclaratorList();
7186 if (state
.failed
) return retval
;
7187 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, abstractDeclaratorList151
.getTree());
7192 // Grammar/CTFParser.g:878:3: ( declarationSpecifiers ( abstractDeclaratorList )? )
7194 // Grammar/CTFParser.g:878:3: ( declarationSpecifiers ( abstractDeclaratorList )? )
7195 // Grammar/CTFParser.g:878:4: declarationSpecifiers ( abstractDeclaratorList )?
7197 pushFollow(FOLLOW_declarationSpecifiers_in_typealiasAlias2989
);
7198 declarationSpecifiers152
=declarationSpecifiers();
7201 if (state
.failed
) return retval
;
7202 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, declarationSpecifiers152
.getTree());
7203 // Grammar/CTFParser.g:878:26: ( abstractDeclaratorList )?
7205 int LA50_0
= input
.LA(1);
7207 if ( (LA50_0
==LPAREN
||LA50_0
==POINTER
||LA50_0
==IDENTIFIER
) ) {
7212 // Grammar/CTFParser.g:878:26: abstractDeclaratorList
7214 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias2991
);
7215 abstractDeclaratorList153
=abstractDeclaratorList();
7218 if (state
.failed
) return retval
;
7219 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, abstractDeclaratorList153
.getTree());
7238 retval
.stop
= input
.LT(-1);
7240 if ( state
.backtracking
==0 ) {
7242 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7243 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7245 if ( state
.backtracking
==0 ) {
7247 exit("typealiasAlias");
7248 typealiasAliasOff();
7253 catch (RecognitionException e
)
7261 // $ANTLR end "typealiasAlias"
7263 public static class typealiasDecl_return
extends ParserRuleReturnScope
{
7266 public Object
getTree() { return tree
; }
7269 // $ANTLR start "typealiasDecl"
7270 // Grammar/CTFParser.g:882:1: typealiasDecl : TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) ;
7271 public final CTFParser
.typealiasDecl_return
typealiasDecl() throws RecognitionException
{
7272 CTFParser
.typealiasDecl_return retval
= new CTFParser
.typealiasDecl_return();
7273 retval
.start
= input
.LT(1);
7275 CommonTree root_0
= null;
7277 Token TYPEALIASTOK154
=null;
7278 Token TYPE_ASSIGNMENT156
=null;
7279 CTFParser
.typealiasTarget_return typealiasTarget155
= null;
7281 CTFParser
.typealiasAlias_return typealiasAlias157
= null;
7284 CommonTree TYPEALIASTOK154_tree
=null;
7285 CommonTree TYPE_ASSIGNMENT156_tree
=null;
7286 RewriteRuleTokenStream stream_TYPE_ASSIGNMENT
=new RewriteRuleTokenStream(adaptor
,"token TYPE_ASSIGNMENT");
7287 RewriteRuleTokenStream stream_TYPEALIASTOK
=new RewriteRuleTokenStream(adaptor
,"token TYPEALIASTOK");
7288 RewriteRuleSubtreeStream stream_typealiasAlias
=new RewriteRuleSubtreeStream(adaptor
,"rule typealiasAlias");
7289 RewriteRuleSubtreeStream stream_typealiasTarget
=new RewriteRuleSubtreeStream(adaptor
,"rule typealiasTarget");
7291 enter("typealiasDecl");
7294 // Grammar/CTFParser.g:889:1: ( TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) )
7295 // Grammar/CTFParser.g:890:3: TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias
7297 TYPEALIASTOK154
=(Token
)match(input
,TYPEALIASTOK
,FOLLOW_TYPEALIASTOK_in_typealiasDecl3023
); if (state
.failed
) return retval
;
7298 if ( state
.backtracking
==0 ) stream_TYPEALIASTOK
.add(TYPEALIASTOK154
);
7300 pushFollow(FOLLOW_typealiasTarget_in_typealiasDecl3025
);
7301 typealiasTarget155
=typealiasTarget();
7304 if (state
.failed
) return retval
;
7305 if ( state
.backtracking
==0 ) stream_typealiasTarget
.add(typealiasTarget155
.getTree());
7306 TYPE_ASSIGNMENT156
=(Token
)match(input
,TYPE_ASSIGNMENT
,FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3027
); if (state
.failed
) return retval
;
7307 if ( state
.backtracking
==0 ) stream_TYPE_ASSIGNMENT
.add(TYPE_ASSIGNMENT156
);
7309 pushFollow(FOLLOW_typealiasAlias_in_typealiasDecl3029
);
7310 typealiasAlias157
=typealiasAlias();
7313 if (state
.failed
) return retval
;
7314 if ( state
.backtracking
==0 ) stream_typealiasAlias
.add(typealiasAlias157
.getTree());
7318 // elements: typealiasTarget, typealiasAlias
7320 // rule labels: retval
7321 // token list labels:
7322 // rule list labels:
7324 if ( state
.backtracking
==0 ) {
7325 retval
.tree
= root_0
;
7326 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7328 root_0
= (CommonTree
)adaptor
.nil();
7329 // 891:3: -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) )
7331 // Grammar/CTFParser.g:891:6: ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) )
7333 CommonTree root_1
= (CommonTree
)adaptor
.nil();
7334 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEALIAS
, "TYPEALIAS"), root_1
);
7336 // Grammar/CTFParser.g:891:18: ^( TYPEALIAS_TARGET typealiasTarget )
7338 CommonTree root_2
= (CommonTree
)adaptor
.nil();
7339 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEALIAS_TARGET
, "TYPEALIAS_TARGET"), root_2
);
7341 adaptor
.addChild(root_2
, stream_typealiasTarget
.nextTree());
7343 adaptor
.addChild(root_1
, root_2
);
7345 // Grammar/CTFParser.g:891:54: ^( TYPEALIAS_ALIAS typealiasAlias )
7347 CommonTree root_2
= (CommonTree
)adaptor
.nil();
7348 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEALIAS_ALIAS
, "TYPEALIAS_ALIAS"), root_2
);
7350 adaptor
.addChild(root_2
, stream_typealiasAlias
.nextTree());
7352 adaptor
.addChild(root_1
, root_2
);
7355 adaptor
.addChild(root_0
, root_1
);
7360 retval
.tree
= root_0
;}
7363 retval
.stop
= input
.LT(-1);
7365 if ( state
.backtracking
==0 ) {
7367 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7368 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7370 if ( state
.backtracking
==0 ) {
7372 exit("typealiasDecl");
7377 catch (RecognitionException e
)
7385 // $ANTLR end "typealiasDecl"
7387 public static class ctfKeyword_return
extends ParserRuleReturnScope
{
7390 public Object
getTree() { return tree
; }
7393 // $ANTLR start "ctfKeyword"
7394 // Grammar/CTFParser.g:897:1: ctfKeyword : ( ALIGNTOK | EVENTTOK | SIGNEDTOK | STRINGTOK );
7395 public final CTFParser
.ctfKeyword_return
ctfKeyword() throws RecognitionException
{
7396 CTFParser
.ctfKeyword_return retval
= new CTFParser
.ctfKeyword_return();
7397 retval
.start
= input
.LT(1);
7399 CommonTree root_0
= null;
7403 CommonTree set158_tree
=null;
7406 enter("ctfKeyword");
7409 // Grammar/CTFParser.g:905:1: ( ALIGNTOK | EVENTTOK | SIGNEDTOK | STRINGTOK )
7410 // Grammar/CTFParser.g:
7412 root_0
= (CommonTree
)adaptor
.nil();
7414 set158
=(Token
)input
.LT(1);
7415 if ( input
.LA(1)==ALIGNTOK
||input
.LA(1)==EVENTTOK
||input
.LA(1)==SIGNEDTOK
||input
.LA(1)==STRINGTOK
) {
7417 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(set158
));
7418 state
.errorRecovery
=false;state
.failed
=false;
7421 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7422 MismatchedSetException mse
= new MismatchedSetException(null,input
);
7429 retval
.stop
= input
.LT(-1);
7431 if ( state
.backtracking
==0 ) {
7433 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7434 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7436 if ( state
.backtracking
==0 ) {
7438 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
7444 catch (RecognitionException e
)
7452 // $ANTLR end "ctfKeyword"
7454 public static class ctfSpecifier_return
extends ParserRuleReturnScope
{
7457 public Object
getTree() { return tree
; }
7460 // $ANTLR start "ctfSpecifier"
7461 // Grammar/CTFParser.g:912:1: ctfSpecifier : ( ctfSpecifierHead ctfBody -> ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION typealiasDecl ) );
7462 public final CTFParser
.ctfSpecifier_return
ctfSpecifier() throws RecognitionException
{
7463 CTFParser
.ctfSpecifier_return retval
= new CTFParser
.ctfSpecifier_return();
7464 retval
.start
= input
.LT(1);
7466 CommonTree root_0
= null;
7468 CTFParser
.ctfSpecifierHead_return ctfSpecifierHead159
= null;
7470 CTFParser
.ctfBody_return ctfBody160
= null;
7472 CTFParser
.typealiasDecl_return typealiasDecl161
= null;
7475 RewriteRuleSubtreeStream stream_ctfSpecifierHead
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfSpecifierHead");
7476 RewriteRuleSubtreeStream stream_typealiasDecl
=new RewriteRuleSubtreeStream(adaptor
,"rule typealiasDecl");
7477 RewriteRuleSubtreeStream stream_ctfBody
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfBody");
7479 enter("ctfSpecifier");
7482 // Grammar/CTFParser.g:919:3: ( ctfSpecifierHead ctfBody -> ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION typealiasDecl ) )
7484 int LA52_0
= input
.LA(1);
7486 if ( (LA52_0
==EVENTTOK
||LA52_0
==STREAMTOK
||LA52_0
==TRACETOK
||(LA52_0
>=ENVTOK
&& LA52_0
<=CLOCKTOK
)) ) {
7489 else if ( (LA52_0
==TYPEALIASTOK
) ) {
7493 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7494 NoViableAltException nvae
=
7495 new NoViableAltException("", 52, 0, input
);
7501 // Grammar/CTFParser.g:921:3: ctfSpecifierHead ctfBody
7503 pushFollow(FOLLOW_ctfSpecifierHead_in_ctfSpecifier3123
);
7504 ctfSpecifierHead159
=ctfSpecifierHead();
7507 if (state
.failed
) return retval
;
7508 if ( state
.backtracking
==0 ) stream_ctfSpecifierHead
.add(ctfSpecifierHead159
.getTree());
7509 pushFollow(FOLLOW_ctfBody_in_ctfSpecifier3125
);
7510 ctfBody160
=ctfBody();
7513 if (state
.failed
) return retval
;
7514 if ( state
.backtracking
==0 ) stream_ctfBody
.add(ctfBody160
.getTree());
7518 // elements: ctfBody, ctfSpecifierHead
7520 // rule labels: retval
7521 // token list labels:
7522 // rule list labels:
7524 if ( state
.backtracking
==0 ) {
7525 retval
.tree
= root_0
;
7526 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7528 root_0
= (CommonTree
)adaptor
.nil();
7529 // 921:28: -> ^( ctfSpecifierHead ctfBody )
7531 // Grammar/CTFParser.g:921:31: ^( ctfSpecifierHead ctfBody )
7533 CommonTree root_1
= (CommonTree
)adaptor
.nil();
7534 root_1
= (CommonTree
)adaptor
.becomeRoot(stream_ctfSpecifierHead
.nextNode(), root_1
);
7536 adaptor
.addChild(root_1
, stream_ctfBody
.nextTree());
7538 adaptor
.addChild(root_0
, root_1
);
7543 retval
.tree
= root_0
;}
7547 // Grammar/CTFParser.g:924:3: typealiasDecl
7549 pushFollow(FOLLOW_typealiasDecl_in_ctfSpecifier3144
);
7550 typealiasDecl161
=typealiasDecl();
7553 if (state
.failed
) return retval
;
7554 if ( state
.backtracking
==0 ) stream_typealiasDecl
.add(typealiasDecl161
.getTree());
7558 // elements: typealiasDecl
7560 // rule labels: retval
7561 // token list labels:
7562 // rule list labels:
7564 if ( state
.backtracking
==0 ) {
7565 retval
.tree
= root_0
;
7566 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7568 root_0
= (CommonTree
)adaptor
.nil();
7569 // 924:17: -> ^( DECLARATION typealiasDecl )
7571 // Grammar/CTFParser.g:924:20: ^( DECLARATION typealiasDecl )
7573 CommonTree root_1
= (CommonTree
)adaptor
.nil();
7574 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(DECLARATION
, "DECLARATION"), root_1
);
7576 adaptor
.addChild(root_1
, stream_typealiasDecl
.nextTree());
7578 adaptor
.addChild(root_0
, root_1
);
7583 retval
.tree
= root_0
;}
7588 retval
.stop
= input
.LT(-1);
7590 if ( state
.backtracking
==0 ) {
7592 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7593 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7595 if ( state
.backtracking
==0 ) {
7597 exit("ctfSpecifier");
7602 catch (RecognitionException e
)
7610 // $ANTLR end "ctfSpecifier"
7612 public static class ctfSpecifierHead_return
extends ParserRuleReturnScope
{
7615 public Object
getTree() { return tree
; }
7618 // $ANTLR start "ctfSpecifierHead"
7619 // Grammar/CTFParser.g:927:1: ctfSpecifierHead : ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK );
7620 public final CTFParser
.ctfSpecifierHead_return
ctfSpecifierHead() throws RecognitionException
{
7621 CTFParser
.ctfSpecifierHead_return retval
= new CTFParser
.ctfSpecifierHead_return();
7622 retval
.start
= input
.LT(1);
7624 CommonTree root_0
= null;
7626 Token EVENTTOK162
=null;
7627 Token STREAMTOK163
=null;
7628 Token TRACETOK164
=null;
7629 Token ENVTOK165
=null;
7630 Token CLOCKTOK166
=null;
7632 CommonTree EVENTTOK162_tree
=null;
7633 CommonTree STREAMTOK163_tree
=null;
7634 CommonTree TRACETOK164_tree
=null;
7635 CommonTree ENVTOK165_tree
=null;
7636 CommonTree CLOCKTOK166_tree
=null;
7637 RewriteRuleTokenStream stream_EVENTTOK
=new RewriteRuleTokenStream(adaptor
,"token EVENTTOK");
7638 RewriteRuleTokenStream stream_STREAMTOK
=new RewriteRuleTokenStream(adaptor
,"token STREAMTOK");
7639 RewriteRuleTokenStream stream_ENVTOK
=new RewriteRuleTokenStream(adaptor
,"token ENVTOK");
7640 RewriteRuleTokenStream stream_CLOCKTOK
=new RewriteRuleTokenStream(adaptor
,"token CLOCKTOK");
7641 RewriteRuleTokenStream stream_TRACETOK
=new RewriteRuleTokenStream(adaptor
,"token TRACETOK");
7644 enter("ctfSpecifierHead");
7647 // Grammar/CTFParser.g:935:1: ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK )
7649 switch ( input
.LA(1) ) {
7676 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7677 NoViableAltException nvae
=
7678 new NoViableAltException("", 53, 0, input
);
7685 // Grammar/CTFParser.g:936:4: EVENTTOK
7687 EVENTTOK162
=(Token
)match(input
,EVENTTOK
,FOLLOW_EVENTTOK_in_ctfSpecifierHead3176
); if (state
.failed
) return retval
;
7688 if ( state
.backtracking
==0 ) stream_EVENTTOK
.add(EVENTTOK162
);
7695 // rule labels: retval
7696 // token list labels:
7697 // rule list labels:
7699 if ( state
.backtracking
==0 ) {
7700 retval
.tree
= root_0
;
7701 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7703 root_0
= (CommonTree
)adaptor
.nil();
7706 adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(EVENT
, "EVENT"));
7710 retval
.tree
= root_0
;}
7714 // Grammar/CTFParser.g:937:4: STREAMTOK
7716 STREAMTOK163
=(Token
)match(input
,STREAMTOK
,FOLLOW_STREAMTOK_in_ctfSpecifierHead3185
); if (state
.failed
) return retval
;
7717 if ( state
.backtracking
==0 ) stream_STREAMTOK
.add(STREAMTOK163
);
7724 // rule labels: retval
7725 // token list labels:
7726 // rule list labels:
7728 if ( state
.backtracking
==0 ) {
7729 retval
.tree
= root_0
;
7730 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7732 root_0
= (CommonTree
)adaptor
.nil();
7733 // 937:14: -> STREAM
7735 adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(STREAM
, "STREAM"));
7739 retval
.tree
= root_0
;}
7743 // Grammar/CTFParser.g:938:4: TRACETOK
7745 TRACETOK164
=(Token
)match(input
,TRACETOK
,FOLLOW_TRACETOK_in_ctfSpecifierHead3194
); if (state
.failed
) return retval
;
7746 if ( state
.backtracking
==0 ) stream_TRACETOK
.add(TRACETOK164
);
7753 // rule labels: retval
7754 // token list labels:
7755 // rule list labels:
7757 if ( state
.backtracking
==0 ) {
7758 retval
.tree
= root_0
;
7759 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7761 root_0
= (CommonTree
)adaptor
.nil();
7764 adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(TRACE
, "TRACE"));
7768 retval
.tree
= root_0
;}
7772 // Grammar/CTFParser.g:939:4: ENVTOK
7774 ENVTOK165
=(Token
)match(input
,ENVTOK
,FOLLOW_ENVTOK_in_ctfSpecifierHead3203
); if (state
.failed
) return retval
;
7775 if ( state
.backtracking
==0 ) stream_ENVTOK
.add(ENVTOK165
);
7782 // rule labels: retval
7783 // token list labels:
7784 // rule list labels:
7786 if ( state
.backtracking
==0 ) {
7787 retval
.tree
= root_0
;
7788 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7790 root_0
= (CommonTree
)adaptor
.nil();
7793 adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(ENV
, "ENV"));
7797 retval
.tree
= root_0
;}
7801 // Grammar/CTFParser.g:940:4: CLOCKTOK
7803 CLOCKTOK166
=(Token
)match(input
,CLOCKTOK
,FOLLOW_CLOCKTOK_in_ctfSpecifierHead3212
); if (state
.failed
) return retval
;
7804 if ( state
.backtracking
==0 ) stream_CLOCKTOK
.add(CLOCKTOK166
);
7811 // rule labels: retval
7812 // token list labels:
7813 // rule list labels:
7815 if ( state
.backtracking
==0 ) {
7816 retval
.tree
= root_0
;
7817 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7819 root_0
= (CommonTree
)adaptor
.nil();
7822 adaptor
.addChild(root_0
, (CommonTree
)adaptor
.create(CLOCK
, "CLOCK"));
7826 retval
.tree
= root_0
;}
7831 retval
.stop
= input
.LT(-1);
7833 if ( state
.backtracking
==0 ) {
7835 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
7836 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
7838 if ( state
.backtracking
==0 ) {
7840 debug_print(input
.toString(retval
.start
,input
.LT(-1)));
7841 exit("ctfSpecifierHead");
7846 catch (RecognitionException e
)
7854 // $ANTLR end "ctfSpecifierHead"
7856 public static class ctfTypeSpecifier_return
extends ParserRuleReturnScope
{
7859 public Object
getTree() { return tree
; }
7862 // $ANTLR start "ctfTypeSpecifier"
7863 // Grammar/CTFParser.g:943:1: ctfTypeSpecifier : ( FLOATINGPOINTTOK ctfBody -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) );
7864 public final CTFParser
.ctfTypeSpecifier_return
ctfTypeSpecifier() throws RecognitionException
{
7865 CTFParser
.ctfTypeSpecifier_return retval
= new CTFParser
.ctfTypeSpecifier_return();
7866 retval
.start
= input
.LT(1);
7868 CommonTree root_0
= null;
7870 Token FLOATINGPOINTTOK167
=null;
7871 Token INTEGERTOK169
=null;
7872 Token STRINGTOK171
=null;
7873 CTFParser
.ctfBody_return ctfBody168
= null;
7875 CTFParser
.ctfBody_return ctfBody170
= null;
7877 CTFParser
.ctfBody_return ctfBody172
= null;
7880 CommonTree FLOATINGPOINTTOK167_tree
=null;
7881 CommonTree INTEGERTOK169_tree
=null;
7882 CommonTree STRINGTOK171_tree
=null;
7883 RewriteRuleTokenStream stream_FLOATINGPOINTTOK
=new RewriteRuleTokenStream(adaptor
,"token FLOATINGPOINTTOK");
7884 RewriteRuleTokenStream stream_STRINGTOK
=new RewriteRuleTokenStream(adaptor
,"token STRINGTOK");
7885 RewriteRuleTokenStream stream_INTEGERTOK
=new RewriteRuleTokenStream(adaptor
,"token INTEGERTOK");
7886 RewriteRuleSubtreeStream stream_ctfBody
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfBody");
7888 enter("ctfTypeSpecifier");
7891 // Grammar/CTFParser.g:950:1: ( FLOATINGPOINTTOK ctfBody -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) )
7893 switch ( input
.LA(1) ) {
7894 case FLOATINGPOINTTOK
:
7910 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
7911 NoViableAltException nvae
=
7912 new NoViableAltException("", 55, 0, input
);
7919 // Grammar/CTFParser.g:952:5: FLOATINGPOINTTOK ctfBody
7921 FLOATINGPOINTTOK167
=(Token
)match(input
,FLOATINGPOINTTOK
,FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3246
); if (state
.failed
) return retval
;
7922 if ( state
.backtracking
==0 ) stream_FLOATINGPOINTTOK
.add(FLOATINGPOINTTOK167
);
7924 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3248
);
7925 ctfBody168
=ctfBody();
7928 if (state
.failed
) return retval
;
7929 if ( state
.backtracking
==0 ) stream_ctfBody
.add(ctfBody168
.getTree());
7933 // elements: ctfBody
7935 // rule labels: retval
7936 // token list labels:
7937 // rule list labels:
7939 if ( state
.backtracking
==0 ) {
7940 retval
.tree
= root_0
;
7941 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7943 root_0
= (CommonTree
)adaptor
.nil();
7944 // 952:30: -> ^( FLOATING_POINT ( ctfBody )? )
7946 // Grammar/CTFParser.g:952:33: ^( FLOATING_POINT ( ctfBody )? )
7948 CommonTree root_1
= (CommonTree
)adaptor
.nil();
7949 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(FLOATING_POINT
, "FLOATING_POINT"), root_1
);
7951 // Grammar/CTFParser.g:952:50: ( ctfBody )?
7952 if ( stream_ctfBody
.hasNext() ) {
7953 adaptor
.addChild(root_1
, stream_ctfBody
.nextTree());
7956 stream_ctfBody
.reset();
7958 adaptor
.addChild(root_0
, root_1
);
7963 retval
.tree
= root_0
;}
7967 // Grammar/CTFParser.g:953:5: INTEGERTOK ctfBody
7969 INTEGERTOK169
=(Token
)match(input
,INTEGERTOK
,FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3263
); if (state
.failed
) return retval
;
7970 if ( state
.backtracking
==0 ) stream_INTEGERTOK
.add(INTEGERTOK169
);
7972 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3265
);
7973 ctfBody170
=ctfBody();
7976 if (state
.failed
) return retval
;
7977 if ( state
.backtracking
==0 ) stream_ctfBody
.add(ctfBody170
.getTree());
7981 // elements: ctfBody
7983 // rule labels: retval
7984 // token list labels:
7985 // rule list labels:
7987 if ( state
.backtracking
==0 ) {
7988 retval
.tree
= root_0
;
7989 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
7991 root_0
= (CommonTree
)adaptor
.nil();
7992 // 953:24: -> ^( INTEGER ( ctfBody )? )
7994 // Grammar/CTFParser.g:953:27: ^( INTEGER ( ctfBody )? )
7996 CommonTree root_1
= (CommonTree
)adaptor
.nil();
7997 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(INTEGER
, "INTEGER"), root_1
);
7999 // Grammar/CTFParser.g:953:37: ( ctfBody )?
8000 if ( stream_ctfBody
.hasNext() ) {
8001 adaptor
.addChild(root_1
, stream_ctfBody
.nextTree());
8004 stream_ctfBody
.reset();
8006 adaptor
.addChild(root_0
, root_1
);
8011 retval
.tree
= root_0
;}
8015 // Grammar/CTFParser.g:954:5: STRINGTOK ( ctfBody )?
8017 STRINGTOK171
=(Token
)match(input
,STRINGTOK
,FOLLOW_STRINGTOK_in_ctfTypeSpecifier3280
); if (state
.failed
) return retval
;
8018 if ( state
.backtracking
==0 ) stream_STRINGTOK
.add(STRINGTOK171
);
8020 // Grammar/CTFParser.g:954:15: ( ctfBody )?
8022 alt54
= dfa54
.predict(input
);
8025 // Grammar/CTFParser.g:954:15: ctfBody
8027 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3282
);
8028 ctfBody172
=ctfBody();
8031 if (state
.failed
) return retval
;
8032 if ( state
.backtracking
==0 ) stream_ctfBody
.add(ctfBody172
.getTree());
8042 // elements: ctfBody
8044 // rule labels: retval
8045 // token list labels:
8046 // rule list labels:
8048 if ( state
.backtracking
==0 ) {
8049 retval
.tree
= root_0
;
8050 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
8052 root_0
= (CommonTree
)adaptor
.nil();
8053 // 954:24: -> ^( STRING ( ctfBody )? )
8055 // Grammar/CTFParser.g:954:27: ^( STRING ( ctfBody )? )
8057 CommonTree root_1
= (CommonTree
)adaptor
.nil();
8058 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(STRING
, "STRING"), root_1
);
8060 // Grammar/CTFParser.g:954:36: ( ctfBody )?
8061 if ( stream_ctfBody
.hasNext() ) {
8062 adaptor
.addChild(root_1
, stream_ctfBody
.nextTree());
8065 stream_ctfBody
.reset();
8067 adaptor
.addChild(root_0
, root_1
);
8072 retval
.tree
= root_0
;}
8077 retval
.stop
= input
.LT(-1);
8079 if ( state
.backtracking
==0 ) {
8081 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
8082 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
8084 if ( state
.backtracking
==0 ) {
8086 exit("ctfTypeSpecifier");
8091 catch (RecognitionException e
)
8099 // $ANTLR end "ctfTypeSpecifier"
8101 public static class ctfBody_return
extends ParserRuleReturnScope
{
8104 public Object
getTree() { return tree
; }
8107 // $ANTLR start "ctfBody"
8108 // Grammar/CTFParser.g:957:1: ctfBody : LCURL ( ctfAssignmentExpressionList )? RCURL -> ( ctfAssignmentExpressionList )? ;
8109 public final CTFParser
.ctfBody_return
ctfBody() throws RecognitionException
{
8110 Symbols_stack
.push(new Symbols_scope());
8112 CTFParser
.ctfBody_return retval
= new CTFParser
.ctfBody_return();
8113 retval
.start
= input
.LT(1);
8115 CommonTree root_0
= null;
8117 Token LCURL173
=null;
8118 Token RCURL175
=null;
8119 CTFParser
.ctfAssignmentExpressionList_return ctfAssignmentExpressionList174
= null;
8122 CommonTree LCURL173_tree
=null;
8123 CommonTree RCURL175_tree
=null;
8124 RewriteRuleTokenStream stream_LCURL
=new RewriteRuleTokenStream(adaptor
,"token LCURL");
8125 RewriteRuleTokenStream stream_RCURL
=new RewriteRuleTokenStream(adaptor
,"token RCURL");
8126 RewriteRuleSubtreeStream stream_ctfAssignmentExpressionList
=new RewriteRuleSubtreeStream(adaptor
,"rule ctfAssignmentExpressionList");
8129 debug_print("Scope push " + + Symbols_stack
.size());
8130 ((Symbols_scope
)Symbols_stack
.peek()).types
= new HashSet
<String
>();
8133 // Grammar/CTFParser.g:968:1: ( LCURL ( ctfAssignmentExpressionList )? RCURL -> ( ctfAssignmentExpressionList )? )
8134 // Grammar/CTFParser.g:969:3: LCURL ( ctfAssignmentExpressionList )? RCURL
8136 LCURL173
=(Token
)match(input
,LCURL
,FOLLOW_LCURL_in_ctfBody3320
); if (state
.failed
) return retval
;
8137 if ( state
.backtracking
==0 ) stream_LCURL
.add(LCURL173
);
8139 // Grammar/CTFParser.g:969:9: ( ctfAssignmentExpressionList )?
8141 int LA56_0
= input
.LA(1);
8143 if ( ((LA56_0
>=ALIGNTOK
&& LA56_0
<=CLOCKTOK
)||LA56_0
==SIGN
||LA56_0
==OCTAL_LITERAL
||LA56_0
==DECIMAL_LITERAL
||LA56_0
==HEX_LITERAL
||LA56_0
==CHARACTER_LITERAL
||LA56_0
==STRING_LITERAL
||LA56_0
==IDENTIFIER
) ) {
8148 // Grammar/CTFParser.g:969:9: ctfAssignmentExpressionList
8150 pushFollow(FOLLOW_ctfAssignmentExpressionList_in_ctfBody3322
);
8151 ctfAssignmentExpressionList174
=ctfAssignmentExpressionList();
8154 if (state
.failed
) return retval
;
8155 if ( state
.backtracking
==0 ) stream_ctfAssignmentExpressionList
.add(ctfAssignmentExpressionList174
.getTree());
8162 RCURL175
=(Token
)match(input
,RCURL
,FOLLOW_RCURL_in_ctfBody3325
); if (state
.failed
) return retval
;
8163 if ( state
.backtracking
==0 ) stream_RCURL
.add(RCURL175
);
8168 // elements: ctfAssignmentExpressionList
8170 // rule labels: retval
8171 // token list labels:
8172 // rule list labels:
8174 if ( state
.backtracking
==0 ) {
8175 retval
.tree
= root_0
;
8176 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
8178 root_0
= (CommonTree
)adaptor
.nil();
8179 // 969:44: -> ( ctfAssignmentExpressionList )?
8181 // Grammar/CTFParser.g:969:47: ( ctfAssignmentExpressionList )?
8182 if ( stream_ctfAssignmentExpressionList
.hasNext() ) {
8183 adaptor
.addChild(root_0
, stream_ctfAssignmentExpressionList
.nextTree());
8186 stream_ctfAssignmentExpressionList
.reset();
8190 retval
.tree
= root_0
;}
8193 retval
.stop
= input
.LT(-1);
8195 if ( state
.backtracking
==0 ) {
8197 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
8198 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
8200 if ( state
.backtracking
==0 ) {
8202 debug_print("Scope pop " + + Symbols_stack
.size());
8208 catch (RecognitionException e
)
8213 Symbols_stack
.pop();
8218 // $ANTLR end "ctfBody"
8220 public static class ctfAssignmentExpressionList_return
extends ParserRuleReturnScope
{
8223 public Object
getTree() { return tree
; }
8226 // $ANTLR start "ctfAssignmentExpressionList"
8227 // Grammar/CTFParser.g:972:1: ctfAssignmentExpressionList : ( ctfAssignmentExpression TERM )+ ;
8228 public final CTFParser
.ctfAssignmentExpressionList_return
ctfAssignmentExpressionList() throws RecognitionException
{
8229 CTFParser
.ctfAssignmentExpressionList_return retval
= new CTFParser
.ctfAssignmentExpressionList_return();
8230 retval
.start
= input
.LT(1);
8232 CommonTree root_0
= null;
8235 CTFParser
.ctfAssignmentExpression_return ctfAssignmentExpression176
= null;
8238 CommonTree TERM177_tree
=null;
8241 // Grammar/CTFParser.g:972:29: ( ( ctfAssignmentExpression TERM )+ )
8242 // Grammar/CTFParser.g:973:3: ( ctfAssignmentExpression TERM )+
8244 root_0
= (CommonTree
)adaptor
.nil();
8246 // Grammar/CTFParser.g:973:3: ( ctfAssignmentExpression TERM )+
8251 int LA57_0
= input
.LA(1);
8253 if ( ((LA57_0
>=ALIGNTOK
&& LA57_0
<=CLOCKTOK
)||LA57_0
==SIGN
||LA57_0
==OCTAL_LITERAL
||LA57_0
==DECIMAL_LITERAL
||LA57_0
==HEX_LITERAL
||LA57_0
==CHARACTER_LITERAL
||LA57_0
==STRING_LITERAL
||LA57_0
==IDENTIFIER
) ) {
8260 // Grammar/CTFParser.g:973:4: ctfAssignmentExpression TERM
8262 pushFollow(FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3344
);
8263 ctfAssignmentExpression176
=ctfAssignmentExpression();
8266 if (state
.failed
) return retval
;
8267 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, ctfAssignmentExpression176
.getTree());
8268 TERM177
=(Token
)match(input
,TERM
,FOLLOW_TERM_in_ctfAssignmentExpressionList3346
); if (state
.failed
) return retval
;
8274 if ( cnt57
>= 1 ) break loop57
;
8275 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8276 EarlyExitException eee
=
8277 new EarlyExitException(57, input
);
8286 retval
.stop
= input
.LT(-1);
8288 if ( state
.backtracking
==0 ) {
8290 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
8291 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
8295 catch (RecognitionException e
)
8303 // $ANTLR end "ctfAssignmentExpressionList"
8305 public static class ctfAssignmentExpression_return
extends ParserRuleReturnScope
{
8308 public Object
getTree() { return tree
; }
8311 // $ANTLR start "ctfAssignmentExpression"
8312 // Grammar/CTFParser.g:977:1: ctfAssignmentExpression : ( (left= unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) ) | ( declarationSpecifiers {...}? declaratorList ) -> ^( TYPEDEF declaratorList declarationSpecifiers ) | typealiasDecl );
8313 public final CTFParser
.ctfAssignmentExpression_return
ctfAssignmentExpression() throws RecognitionException
{
8314 CTFParser
.ctfAssignmentExpression_return retval
= new CTFParser
.ctfAssignmentExpression_return();
8315 retval
.start
= input
.LT(1);
8317 CommonTree root_0
= null;
8319 Token assignment
=null;
8320 Token type_assignment
=null;
8321 CTFParser
.unaryExpression_return left
= null;
8323 CTFParser
.unaryExpression_return right1
= null;
8325 CTFParser
.typeSpecifier_return right2
= null;
8327 CTFParser
.declarationSpecifiers_return declarationSpecifiers178
= null;
8329 CTFParser
.declaratorList_return declaratorList179
= null;
8331 CTFParser
.typealiasDecl_return typealiasDecl180
= null;
8334 CommonTree assignment_tree
=null;
8335 CommonTree type_assignment_tree
=null;
8336 RewriteRuleTokenStream stream_ASSIGNMENT
=new RewriteRuleTokenStream(adaptor
,"token ASSIGNMENT");
8337 RewriteRuleTokenStream stream_TYPE_ASSIGNMENT
=new RewriteRuleTokenStream(adaptor
,"token TYPE_ASSIGNMENT");
8338 RewriteRuleSubtreeStream stream_declaratorList
=new RewriteRuleSubtreeStream(adaptor
,"rule declaratorList");
8339 RewriteRuleSubtreeStream stream_unaryExpression
=new RewriteRuleSubtreeStream(adaptor
,"rule unaryExpression");
8340 RewriteRuleSubtreeStream stream_declarationSpecifiers
=new RewriteRuleSubtreeStream(adaptor
,"rule declarationSpecifiers");
8341 RewriteRuleSubtreeStream stream_typeSpecifier
=new RewriteRuleSubtreeStream(adaptor
,"rule typeSpecifier");
8343 enter("ctfAssignmentExpression");
8346 // Grammar/CTFParser.g:987:1: ( (left= unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) ) | ( declarationSpecifiers {...}? declaratorList ) -> ^( TYPEDEF declaratorList declarationSpecifiers ) | typealiasDecl )
8348 switch ( input
.LA(1) ) {
8351 int LA59_1
= input
.LA(2);
8353 if ( ((LA59_1
>=CONSTTOK
&& LA59_1
<=ENUMTOK
)||(LA59_1
>=FLOATINGPOINTTOK
&& LA59_1
<=SIGNEDTOK
)||(LA59_1
>=STRINGTOK
&& LA59_1
<=STRUCTTOK
)||(LA59_1
>=TYPEDEFTOK
&& LA59_1
<=IMAGINARYTOK
)||LA59_1
==POINTER
||LA59_1
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
8356 else if ( ((LA59_1
>=ASSIGNMENT
&& LA59_1
<=TYPE_ASSIGNMENT
)||LA59_1
==OPENBRAC
||(LA59_1
>=ARROW
&& LA59_1
<=DOT
)) ) {
8360 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8361 NoViableAltException nvae
=
8362 new NoViableAltException("", 59, 1, input
);
8376 case DECIMAL_LITERAL
:
8378 case CHARACTER_LITERAL
:
8379 case STRING_LITERAL
:
8386 switch ( input
.LA(2) ) {
8388 case TYPE_ASSIGNMENT
:
8400 case FLOATINGPOINTTOK
:
8427 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8428 NoViableAltException nvae
=
8429 new NoViableAltException("", 59, 3, input
);
8440 case FLOATINGPOINTTOK
:
8460 switch ( input
.LA(2) ) {
8462 case TYPE_ASSIGNMENT
:
8474 case FLOATINGPOINTTOK
:
8502 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8503 NoViableAltException nvae
=
8504 new NoViableAltException("", 59, 5, input
);
8517 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8518 NoViableAltException nvae
=
8519 new NoViableAltException("", 59, 0, input
);
8526 // Grammar/CTFParser.g:988:3: (left= unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) )
8528 // Grammar/CTFParser.g:988:3: (left= unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) )
8529 // Grammar/CTFParser.g:989:5: left= unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) )
8531 pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3381
);
8532 left
=unaryExpression();
8535 if (state
.failed
) return retval
;
8536 if ( state
.backtracking
==0 ) stream_unaryExpression
.add(left
.getTree());
8537 // Grammar/CTFParser.g:990:5: ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) )
8539 int LA58_0
= input
.LA(1);
8541 if ( (LA58_0
==ASSIGNMENT
) ) {
8544 else if ( (LA58_0
==TYPE_ASSIGNMENT
) ) {
8548 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8549 NoViableAltException nvae
=
8550 new NoViableAltException("", 58, 0, input
);
8556 // Grammar/CTFParser.g:991:9: (assignment= ASSIGNMENT right1= unaryExpression )
8558 // Grammar/CTFParser.g:991:9: (assignment= ASSIGNMENT right1= unaryExpression )
8559 // Grammar/CTFParser.g:991:10: assignment= ASSIGNMENT right1= unaryExpression
8561 assignment
=(Token
)match(input
,ASSIGNMENT
,FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3400
); if (state
.failed
) return retval
;
8562 if ( state
.backtracking
==0 ) stream_ASSIGNMENT
.add(assignment
);
8564 pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3404
);
8565 right1
=unaryExpression();
8568 if (state
.failed
) return retval
;
8569 if ( state
.backtracking
==0 ) stream_unaryExpression
.add(right1
.getTree());
8576 // elements: right1, left
8578 // rule labels: retval, left, right1
8579 // token list labels:
8580 // rule list labels:
8582 if ( state
.backtracking
==0 ) {
8583 retval
.tree
= root_0
;
8584 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
8585 RewriteRuleSubtreeStream stream_left
=new RewriteRuleSubtreeStream(adaptor
,"rule left",left
!=null?left
.tree
:null);
8586 RewriteRuleSubtreeStream stream_right1
=new RewriteRuleSubtreeStream(adaptor
,"rule right1",right1
!=null?right1
.tree
:null);
8588 root_0
= (CommonTree
)adaptor
.nil();
8589 // 991:56: -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) )
8591 // Grammar/CTFParser.g:991:59: ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) )
8593 CommonTree root_1
= (CommonTree
)adaptor
.nil();
8594 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_EXPRESSION_VAL
, "CTF_EXPRESSION_VAL"), root_1
);
8596 // Grammar/CTFParser.g:991:80: ^( CTF_LEFT $left)
8598 CommonTree root_2
= (CommonTree
)adaptor
.nil();
8599 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_LEFT
, "CTF_LEFT"), root_2
);
8601 adaptor
.addChild(root_2
, stream_left
.nextTree());
8603 adaptor
.addChild(root_1
, root_2
);
8605 // Grammar/CTFParser.g:991:98: ^( CTF_RIGHT $right1)
8607 CommonTree root_2
= (CommonTree
)adaptor
.nil();
8608 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_RIGHT
, "CTF_RIGHT"), root_2
);
8610 adaptor
.addChild(root_2
, stream_right1
.nextTree());
8612 adaptor
.addChild(root_1
, root_2
);
8615 adaptor
.addChild(root_0
, root_1
);
8620 retval
.tree
= root_0
;}
8624 // Grammar/CTFParser.g:992:9: (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier )
8626 // Grammar/CTFParser.g:992:9: (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier )
8627 // Grammar/CTFParser.g:992:10: type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier
8629 type_assignment
=(Token
)match(input
,TYPE_ASSIGNMENT
,FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3438
); if (state
.failed
) return retval
;
8630 if ( state
.backtracking
==0 ) stream_TYPE_ASSIGNMENT
.add(type_assignment
);
8632 pushFollow(FOLLOW_typeSpecifier_in_ctfAssignmentExpression3443
);
8633 right2
=typeSpecifier();
8636 if (state
.failed
) return retval
;
8637 if ( state
.backtracking
==0 ) stream_typeSpecifier
.add(right2
.getTree());
8644 // elements: left, right2
8646 // rule labels: retval, left, right2
8647 // token list labels:
8648 // rule list labels:
8650 if ( state
.backtracking
==0 ) {
8651 retval
.tree
= root_0
;
8652 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
8653 RewriteRuleSubtreeStream stream_left
=new RewriteRuleSubtreeStream(adaptor
,"rule left",left
!=null?left
.tree
:null);
8654 RewriteRuleSubtreeStream stream_right2
=new RewriteRuleSubtreeStream(adaptor
,"rule right2",right2
!=null?right2
.tree
:null);
8656 root_0
= (CommonTree
)adaptor
.nil();
8657 // 992:65: -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) )
8659 // Grammar/CTFParser.g:992:68: ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) )
8661 CommonTree root_1
= (CommonTree
)adaptor
.nil();
8662 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_EXPRESSION_TYPE
, "CTF_EXPRESSION_TYPE"), root_1
);
8664 // Grammar/CTFParser.g:992:90: ^( CTF_LEFT $left)
8666 CommonTree root_2
= (CommonTree
)adaptor
.nil();
8667 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_LEFT
, "CTF_LEFT"), root_2
);
8669 adaptor
.addChild(root_2
, stream_left
.nextTree());
8671 adaptor
.addChild(root_1
, root_2
);
8673 // Grammar/CTFParser.g:992:108: ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) )
8675 CommonTree root_2
= (CommonTree
)adaptor
.nil();
8676 root_2
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(CTF_RIGHT
, "CTF_RIGHT"), root_2
);
8678 // Grammar/CTFParser.g:992:120: ^( TYPE_SPECIFIER_LIST $right2)
8680 CommonTree root_3
= (CommonTree
)adaptor
.nil();
8681 root_3
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPE_SPECIFIER_LIST
, "TYPE_SPECIFIER_LIST"), root_3
);
8683 adaptor
.addChild(root_3
, stream_right2
.nextTree());
8685 adaptor
.addChild(root_2
, root_3
);
8688 adaptor
.addChild(root_1
, root_2
);
8691 adaptor
.addChild(root_0
, root_1
);
8696 retval
.tree
= root_0
;}
8709 // Grammar/CTFParser.g:998:5: ( declarationSpecifiers {...}? declaratorList )
8711 // Grammar/CTFParser.g:998:5: ( declarationSpecifiers {...}? declaratorList )
8712 // Grammar/CTFParser.g:998:6: declarationSpecifiers {...}? declaratorList
8714 pushFollow(FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3493
);
8715 declarationSpecifiers178
=declarationSpecifiers();
8718 if (state
.failed
) return retval
;
8719 if ( state
.backtracking
==0 ) stream_declarationSpecifiers
.add(declarationSpecifiers178
.getTree());
8720 if ( !((inTypedef())) ) {
8721 if (state
.backtracking
>0) {state
.failed
=true; return retval
;}
8722 throw new FailedPredicateException(input
, "ctfAssignmentExpression", "inTypedef()");
8724 pushFollow(FOLLOW_declaratorList_in_ctfAssignmentExpression3497
);
8725 declaratorList179
=declaratorList();
8728 if (state
.failed
) return retval
;
8729 if ( state
.backtracking
==0 ) stream_declaratorList
.add(declaratorList179
.getTree());
8736 // elements: declaratorList, declarationSpecifiers
8738 // rule labels: retval
8739 // token list labels:
8740 // rule list labels:
8742 if ( state
.backtracking
==0 ) {
8743 retval
.tree
= root_0
;
8744 RewriteRuleSubtreeStream stream_retval
=new RewriteRuleSubtreeStream(adaptor
,"rule retval",retval
!=null?retval
.tree
:null);
8746 root_0
= (CommonTree
)adaptor
.nil();
8747 // 999:5: -> ^( TYPEDEF declaratorList declarationSpecifiers )
8749 // Grammar/CTFParser.g:999:8: ^( TYPEDEF declaratorList declarationSpecifiers )
8751 CommonTree root_1
= (CommonTree
)adaptor
.nil();
8752 root_1
= (CommonTree
)adaptor
.becomeRoot((CommonTree
)adaptor
.create(TYPEDEF
, "TYPEDEF"), root_1
);
8754 adaptor
.addChild(root_1
, stream_declaratorList
.nextTree());
8755 adaptor
.addChild(root_1
, stream_declarationSpecifiers
.nextTree());
8757 adaptor
.addChild(root_0
, root_1
);
8762 retval
.tree
= root_0
;}
8766 // Grammar/CTFParser.g:1002:5: typealiasDecl
8768 root_0
= (CommonTree
)adaptor
.nil();
8770 pushFollow(FOLLOW_typealiasDecl_in_ctfAssignmentExpression3525
);
8771 typealiasDecl180
=typealiasDecl();
8774 if (state
.failed
) return retval
;
8775 if ( state
.backtracking
==0 ) adaptor
.addChild(root_0
, typealiasDecl180
.getTree());
8781 retval
.stop
= input
.LT(-1);
8783 if ( state
.backtracking
==0 ) {
8785 retval
.tree
= (CommonTree
)adaptor
.rulePostProcessing(root_0
);
8786 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
, retval
.stop
);
8788 if ( state
.backtracking
==0 ) {
8793 exit("ctfAssignmentExpression");
8798 catch (RecognitionException e
)
8806 // $ANTLR end "ctfAssignmentExpression"
8808 // $ANTLR start synpred1_CTFParser
8809 public final void synpred1_CTFParser_fragment() throws RecognitionException
{
8810 // Grammar/CTFParser.g:250:5: ( IDENTIFIER )
8811 // Grammar/CTFParser.g:250:6: IDENTIFIER
8813 match(input
,IDENTIFIER
,FOLLOW_IDENTIFIER_in_synpred1_CTFParser470
); if (state
.failed
) return ;
8817 // $ANTLR end synpred1_CTFParser
8819 // $ANTLR start synpred2_CTFParser
8820 public final void synpred2_CTFParser_fragment() throws RecognitionException
{
8821 // Grammar/CTFParser.g:251:5: ( ctfKeyword )
8822 // Grammar/CTFParser.g:251:6: ctfKeyword
8824 pushFollow(FOLLOW_ctfKeyword_in_synpred2_CTFParser492
);
8828 if (state
.failed
) return ;
8832 // $ANTLR end synpred2_CTFParser
8834 // $ANTLR start synpred3_CTFParser
8835 public final void synpred3_CTFParser_fragment() throws RecognitionException
{
8836 // Grammar/CTFParser.g:252:5: ( STRING_LITERAL )
8837 // Grammar/CTFParser.g:252:6: STRING_LITERAL
8839 match(input
,STRING_LITERAL
,FOLLOW_STRING_LITERAL_in_synpred3_CTFParser512
); if (state
.failed
) return ;
8843 // $ANTLR end synpred3_CTFParser
8847 public final boolean synpred2_CTFParser() {
8848 state
.backtracking
++;
8849 int start
= input
.mark();
8851 synpred2_CTFParser_fragment(); // can never throw exception
8852 } catch (RecognitionException re
) {
8853 System
.err
.println("impossible: "+re
);
8855 boolean success
= !state
.failed
;
8856 input
.rewind(start
);
8857 state
.backtracking
--;
8861 public final boolean synpred1_CTFParser() {
8862 state
.backtracking
++;
8863 int start
= input
.mark();
8865 synpred1_CTFParser_fragment(); // can never throw exception
8866 } catch (RecognitionException re
) {
8867 System
.err
.println("impossible: "+re
);
8869 boolean success
= !state
.failed
;
8870 input
.rewind(start
);
8871 state
.backtracking
--;
8875 public final boolean synpred3_CTFParser() {
8876 state
.backtracking
++;
8877 int start
= input
.mark();
8879 synpred3_CTFParser_fragment(); // can never throw exception
8880 } catch (RecognitionException re
) {
8881 System
.err
.println("impossible: "+re
);
8883 boolean success
= !state
.failed
;
8884 input
.rewind(start
);
8885 state
.backtracking
--;
8891 protected DFA10 dfa10
= new DFA10(this);
8892 protected DFA17 dfa17
= new DFA17(this);
8893 protected DFA24 dfa24
= new DFA24(this);
8894 protected DFA32 dfa32
= new DFA32(this);
8895 protected DFA54 dfa54
= new DFA54(this);
8896 static final String DFA10_eotS
=
8898 static final String DFA10_eofS
=
8900 static final String DFA10_minS
=
8902 static final String DFA10_maxS
=
8904 static final String DFA10_acceptS
=
8905 "\1\uffff\2\1\7\uffff\1\2\3\uffff";
8906 static final String DFA10_specialS
=
8908 static final String
[] DFA10_transitionS
= {
8909 "\1\1\4\uffff\1\2\6\uffff\1\1\1\12\1\1\1\uffff\1\12\10\uffff"+
8910 "\2\12\22\uffff\1\1\4\uffff\1\1\1\uffff\1\1\2\uffff\1\1\10\uffff"+
8911 "\1\1\2\uffff\1\1\6\uffff\1\1",
8927 static final short[] DFA10_eot
= DFA
.unpackEncodedString(DFA10_eotS
);
8928 static final short[] DFA10_eof
= DFA
.unpackEncodedString(DFA10_eofS
);
8929 static final char[] DFA10_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA10_minS
);
8930 static final char[] DFA10_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA10_maxS
);
8931 static final short[] DFA10_accept
= DFA
.unpackEncodedString(DFA10_acceptS
);
8932 static final short[] DFA10_special
= DFA
.unpackEncodedString(DFA10_specialS
);
8933 static final short[][] DFA10_transition
;
8936 int numStates
= DFA10_transitionS
.length
;
8937 DFA10_transition
= new short[numStates
][];
8938 for (int i
=0; i
<numStates
; i
++) {
8939 DFA10_transition
[i
] = DFA
.unpackEncodedString(DFA10_transitionS
[i
]);
8943 class DFA10
extends DFA
{
8945 public DFA10(BaseRecognizer recognizer
) {
8946 this.recognizer
= recognizer
;
8947 this.decisionNumber
= 10;
8948 this.eot
= DFA10_eot
;
8949 this.eof
= DFA10_eof
;
8950 this.min
= DFA10_min
;
8951 this.max
= DFA10_max
;
8952 this.accept
= DFA10_accept
;
8953 this.special
= DFA10_special
;
8954 this.transition
= DFA10_transition
;
8957 public String
getDescription() {
8958 return "281:1: postfixExpression : ( ( primaryExpression ) ( postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ ) );";
8961 static final String DFA17_eotS
=
8963 static final String DFA17_eofS
=
8965 static final String DFA17_minS
=
8967 static final String DFA17_maxS
=
8969 static final String DFA17_acceptS
=
8970 "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+
8971 "\15\1\16\1\17\1\20\1\21";
8972 static final String DFA17_specialS
=
8974 static final String
[] DFA17_transitionS
= {
8975 "\1\7\1\10\1\17\1\uffff\1\20\1\1\1\20\1\2\1\3\1\4\1\5\1\uffff"+
8976 "\1\20\1\15\3\uffff\1\6\1\16\1\11\1\12\1\13\1\14\61\uffff\1\21",
8996 static final short[] DFA17_eot
= DFA
.unpackEncodedString(DFA17_eotS
);
8997 static final short[] DFA17_eof
= DFA
.unpackEncodedString(DFA17_eofS
);
8998 static final char[] DFA17_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA17_minS
);
8999 static final char[] DFA17_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA17_maxS
);
9000 static final short[] DFA17_accept
= DFA
.unpackEncodedString(DFA17_acceptS
);
9001 static final short[] DFA17_special
= DFA
.unpackEncodedString(DFA17_specialS
);
9002 static final short[][] DFA17_transition
;
9005 int numStates
= DFA17_transitionS
.length
;
9006 DFA17_transition
= new short[numStates
][];
9007 for (int i
=0; i
<numStates
; i
++) {
9008 DFA17_transition
[i
] = DFA
.unpackEncodedString(DFA17_transitionS
[i
]);
9012 class DFA17
extends DFA
{
9014 public DFA17(BaseRecognizer recognizer
) {
9015 this.recognizer
= recognizer
;
9016 this.decisionNumber
= 17;
9017 this.eot
= DFA17_eot
;
9018 this.eof
= DFA17_eof
;
9019 this.min
= DFA17_min
;
9020 this.max
= DFA17_max
;
9021 this.accept
= DFA17_accept
;
9022 this.special
= DFA17_special
;
9023 this.transition
= DFA17_transition
;
9026 public String
getDescription() {
9027 return "384:1: typeSpecifier : ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier | {...}? => typedefName );";
9030 public int specialStateTransition(int s
, IntStream _input
) throws NoViableAltException
{
9031 TokenStream input
= (TokenStream
)_input
;
9035 int LA17_0
= input
.LA(1);
9038 int index17_0
= input
.index();
9041 if ( (LA17_0
==FLOATTOK
) ) {s
= 1;}
9043 else if ( (LA17_0
==INTTOK
) ) {s
= 2;}
9045 else if ( (LA17_0
==LONGTOK
) ) {s
= 3;}
9047 else if ( (LA17_0
==SHORTTOK
) ) {s
= 4;}
9049 else if ( (LA17_0
==SIGNEDTOK
) ) {s
= 5;}
9051 else if ( (LA17_0
==UNSIGNEDTOK
) ) {s
= 6;}
9053 else if ( (LA17_0
==CHARTOK
) ) {s
= 7;}
9055 else if ( (LA17_0
==DOUBLETOK
) ) {s
= 8;}
9057 else if ( (LA17_0
==VOIDTOK
) ) {s
= 9;}
9059 else if ( (LA17_0
==BOOLTOK
) ) {s
= 10;}
9061 else if ( (LA17_0
==COMPLEXTOK
) ) {s
= 11;}
9063 else if ( (LA17_0
==IMAGINARYTOK
) ) {s
= 12;}
9065 else if ( (LA17_0
==STRUCTTOK
) ) {s
= 13;}
9067 else if ( (LA17_0
==VARIANTTOK
) ) {s
= 14;}
9069 else if ( (LA17_0
==ENUMTOK
) ) {s
= 15;}
9071 else if ( (LA17_0
==FLOATINGPOINTTOK
||LA17_0
==INTEGERTOK
||LA17_0
==STRINGTOK
) ) {s
= 16;}
9073 else if ( (LA17_0
==IDENTIFIER
) && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {s
= 17;}
9076 input
.seek(index17_0
);
9077 if ( s
>=0 ) return s
;
9080 if (state
.backtracking
>0) {state
.failed
=true; return -1;}
9081 NoViableAltException nvae
=
9082 new NoViableAltException(getDescription(), 17, _s
, input
);
9087 static final String DFA24_eotS
=
9089 static final String DFA24_eofS
=
9091 static final String DFA24_minS
=
9092 "\1\60\1\5\1\0\1\5\2\uffff";
9093 static final String DFA24_maxS
=
9094 "\2\116\1\0\1\116\2\uffff";
9095 static final String DFA24_acceptS
=
9097 static final String DFA24_specialS
=
9098 "\2\uffff\1\0\3\uffff}>";
9099 static final String
[] DFA24_transitionS
= {
9100 "\1\1\35\uffff\1\2",
9101 "\1\3\52\uffff\1\1\35\uffff\1\2",
9103 "\1\3\52\uffff\1\1\35\uffff\1\2",
9108 static final short[] DFA24_eot
= DFA
.unpackEncodedString(DFA24_eotS
);
9109 static final short[] DFA24_eof
= DFA
.unpackEncodedString(DFA24_eofS
);
9110 static final char[] DFA24_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA24_minS
);
9111 static final char[] DFA24_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA24_maxS
);
9112 static final short[] DFA24_accept
= DFA
.unpackEncodedString(DFA24_acceptS
);
9113 static final short[] DFA24_special
= DFA
.unpackEncodedString(DFA24_specialS
);
9114 static final short[][] DFA24_transition
;
9117 int numStates
= DFA24_transitionS
.length
;
9118 DFA24_transition
= new short[numStates
][];
9119 for (int i
=0; i
<numStates
; i
++) {
9120 DFA24_transition
[i
] = DFA
.unpackEncodedString(DFA24_transitionS
[i
]);
9124 class DFA24
extends DFA
{
9126 public DFA24(BaseRecognizer recognizer
) {
9127 this.recognizer
= recognizer
;
9128 this.decisionNumber
= 24;
9129 this.eot
= DFA24_eot
;
9130 this.eof
= DFA24_eof
;
9131 this.min
= DFA24_min
;
9132 this.max
= DFA24_max
;
9133 this.accept
= DFA24_accept
;
9134 this.special
= DFA24_special
;
9135 this.transition
= DFA24_transition
;
9138 public String
getDescription() {
9139 return "521:7: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )";
9142 public int specialStateTransition(int s
, IntStream _input
) throws NoViableAltException
{
9143 TokenStream input
= (TokenStream
)_input
;
9147 int LA24_2
= input
.LA(1);
9150 int index24_2
= input
.index();
9153 if ( ((inTypedef())) ) {s
= 4;}
9155 else if ( (true) ) {s
= 5;}
9158 input
.seek(index24_2
);
9159 if ( s
>=0 ) return s
;
9162 if (state
.backtracking
>0) {state
.failed
=true; return -1;}
9163 NoViableAltException nvae
=
9164 new NoViableAltException(getDescription(), 24, _s
, input
);
9169 static final String DFA32_eotS
=
9171 static final String DFA32_eofS
=
9173 static final String DFA32_minS
=
9175 static final String DFA32_maxS
=
9177 static final String DFA32_acceptS
=
9178 "\1\uffff\1\1\1\2\1\3\31\uffff";
9179 static final String DFA32_specialS
=
9181 static final String
[] DFA32_transitionS
= {
9182 "\4\3\1\uffff\7\3\1\uffff\2\3\2\uffff\7\3\6\uffff\1\1\2\uffff"+
9183 "\1\3\4\uffff\1\3\1\uffff\1\2\1\uffff\2\3\35\uffff\1\3",
9214 static final short[] DFA32_eot
= DFA
.unpackEncodedString(DFA32_eotS
);
9215 static final short[] DFA32_eof
= DFA
.unpackEncodedString(DFA32_eofS
);
9216 static final char[] DFA32_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA32_minS
);
9217 static final char[] DFA32_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA32_maxS
);
9218 static final short[] DFA32_accept
= DFA
.unpackEncodedString(DFA32_acceptS
);
9219 static final short[] DFA32_special
= DFA
.unpackEncodedString(DFA32_specialS
);
9220 static final short[][] DFA32_transition
;
9223 int numStates
= DFA32_transitionS
.length
;
9224 DFA32_transition
= new short[numStates
][];
9225 for (int i
=0; i
<numStates
; i
++) {
9226 DFA32_transition
[i
] = DFA
.unpackEncodedString(DFA32_transitionS
[i
]);
9230 class DFA32
extends DFA
{
9232 public DFA32(BaseRecognizer recognizer
) {
9233 this.recognizer
= recognizer
;
9234 this.decisionNumber
= 32;
9235 this.eot
= DFA32_eot
;
9236 this.eof
= DFA32_eof
;
9237 this.min
= DFA32_min
;
9238 this.max
= DFA32_max
;
9239 this.accept
= DFA32_accept
;
9240 this.special
= DFA32_special
;
9241 this.transition
= DFA32_transition
;
9244 public String
getDescription() {
9245 return "655:4: ( enumContainerType enumBody | enumBody | )";
9248 static final String DFA54_eotS
=
9250 static final String DFA54_eofS
=
9252 static final String DFA54_minS
=
9254 static final String DFA54_maxS
=
9256 static final String DFA54_acceptS
=
9257 "\1\uffff\1\1\1\2\31\uffff";
9258 static final String DFA54_specialS
=
9260 static final String
[] DFA54_transitionS
= {
9261 "\4\2\1\uffff\7\2\1\uffff\2\2\2\uffff\7\2\11\uffff\1\2\4\uffff"+
9262 "\1\2\1\uffff\1\1\1\uffff\2\2\35\uffff\1\2",
9292 static final short[] DFA54_eot
= DFA
.unpackEncodedString(DFA54_eotS
);
9293 static final short[] DFA54_eof
= DFA
.unpackEncodedString(DFA54_eofS
);
9294 static final char[] DFA54_min
= DFA
.unpackEncodedStringToUnsignedChars(DFA54_minS
);
9295 static final char[] DFA54_max
= DFA
.unpackEncodedStringToUnsignedChars(DFA54_maxS
);
9296 static final short[] DFA54_accept
= DFA
.unpackEncodedString(DFA54_acceptS
);
9297 static final short[] DFA54_special
= DFA
.unpackEncodedString(DFA54_specialS
);
9298 static final short[][] DFA54_transition
;
9301 int numStates
= DFA54_transitionS
.length
;
9302 DFA54_transition
= new short[numStates
][];
9303 for (int i
=0; i
<numStates
; i
++) {
9304 DFA54_transition
[i
] = DFA
.unpackEncodedString(DFA54_transitionS
[i
]);
9308 class DFA54
extends DFA
{
9310 public DFA54(BaseRecognizer recognizer
) {
9311 this.recognizer
= recognizer
;
9312 this.decisionNumber
= 54;
9313 this.eot
= DFA54_eot
;
9314 this.eof
= DFA54_eof
;
9315 this.min
= DFA54_min
;
9316 this.max
= DFA54_max
;
9317 this.accept
= DFA54_accept
;
9318 this.special
= DFA54_special
;
9319 this.transition
= DFA54_transition
;
9322 public String
getDescription() {
9323 return "954:15: ( ctfBody )?";
9328 public static final BitSet FOLLOW_declaration_in_parse321
= new BitSet(new long[]{0x000000007FFFFFE0L
,0x0000000000004000L
});
9329 public static final BitSet FOLLOW_EOF_in_parse324
= new BitSet(new long[]{0x0000000000000002L
});
9330 public static final BitSet FOLLOW_SIGN_in_numberLiteral357
= new BitSet(new long[]{0x0942000000000000L
});
9331 public static final BitSet FOLLOW_HEX_LITERAL_in_numberLiteral362
= new BitSet(new long[]{0x0000000000000002L
});
9332 public static final BitSet FOLLOW_DECIMAL_LITERAL_in_numberLiteral379
= new BitSet(new long[]{0x0000000000000002L
});
9333 public static final BitSet FOLLOW_OCTAL_LITERAL_in_numberLiteral396
= new BitSet(new long[]{0x0000000000000002L
});
9334 public static final BitSet FOLLOW_numberLiteral_in_constant432
= new BitSet(new long[]{0x0000000000000002L
});
9335 public static final BitSet FOLLOW_enumConstant_in_constant438
= new BitSet(new long[]{0x0000000000000002L
});
9336 public static final BitSet FOLLOW_CHARACTER_LITERAL_in_constant444
= new BitSet(new long[]{0x0000000000000002L
});
9337 public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression475
= new BitSet(new long[]{0x0000000000000002L
});
9338 public static final BitSet FOLLOW_ctfKeyword_in_primaryExpression497
= new BitSet(new long[]{0x0000000000000002L
});
9339 public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression517
= new BitSet(new long[]{0x0000000000000002L
});
9340 public static final BitSet FOLLOW_constant_in_primaryExpression538
= new BitSet(new long[]{0x0000000000000002L
});
9341 public static final BitSet FOLLOW_DOT_in_reference564
= new BitSet(new long[]{0x0000000000000000L
,0x0000000000004000L
});
9342 public static final BitSet FOLLOW_ARROW_in_reference570
= new BitSet(new long[]{0x0000000000000000L
,0x0000000000004000L
});
9343 public static final BitSet FOLLOW_IDENTIFIER_in_reference573
= new BitSet(new long[]{0x0000000000000002L
});
9344 public static final BitSet FOLLOW_OPENBRAC_in_postfixExpressionSuffix612
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9345 public static final BitSet FOLLOW_unaryExpression_in_postfixExpressionSuffix614
= new BitSet(new long[]{0x0000040000000000L
});
9346 public static final BitSet FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix616
= new BitSet(new long[]{0x0000000000000002L
});
9347 public static final BitSet FOLLOW_reference_in_postfixExpressionSuffix624
= new BitSet(new long[]{0x0000000000000002L
});
9348 public static final BitSet FOLLOW_primaryExpression_in_postfixExpression648
= new BitSet(new long[]{0x000C020000000002L
});
9349 public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression652
= new BitSet(new long[]{0x000C020000000002L
});
9350 public static final BitSet FOLLOW_ctfSpecifierHead_in_postfixExpression661
= new BitSet(new long[]{0x000C020000000000L
});
9351 public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression666
= new BitSet(new long[]{0x000C020000000002L
});
9352 public static final BitSet FOLLOW_postfixExpression_in_unaryExpression700
= new BitSet(new long[]{0x0000000000000002L
});
9353 public static final BitSet FOLLOW_STRING_LITERAL_in_enumConstant725
= new BitSet(new long[]{0x0000000000000002L
});
9354 public static final BitSet FOLLOW_IDENTIFIER_in_enumConstant741
= new BitSet(new long[]{0x0000000000000002L
});
9355 public static final BitSet FOLLOW_ctfKeyword_in_enumConstant757
= new BitSet(new long[]{0x0000000000000002L
});
9356 public static final BitSet FOLLOW_declarationSpecifiers_in_declaration790
= new BitSet(new long[]{0x0001800000000000L
,0x0000000000004000L
});
9357 public static final BitSet FOLLOW_declaratorList_in_declaration792
= new BitSet(new long[]{0x0000800000000000L
});
9358 public static final BitSet FOLLOW_TERM_in_declaration795
= new BitSet(new long[]{0x0000000000000002L
});
9359 public static final BitSet FOLLOW_ctfSpecifier_in_declaration844
= new BitSet(new long[]{0x0000800000000000L
});
9360 public static final BitSet FOLLOW_TERM_in_declaration846
= new BitSet(new long[]{0x0000000000000002L
});
9361 public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifiers891
= new BitSet(new long[]{0x000000001FCDFDE2L
,0x0000000000004000L
});
9362 public static final BitSet FOLLOW_typeQualifier_in_declarationSpecifiers898
= new BitSet(new long[]{0x000000001FCDFDE2L
,0x0000000000004000L
});
9363 public static final BitSet FOLLOW_typeSpecifier_in_declarationSpecifiers905
= new BitSet(new long[]{0x000000001FCDFDE2L
,0x0000000000004000L
});
9364 public static final BitSet FOLLOW_declarator_in_declaratorList946
= new BitSet(new long[]{0x0000000400000002L
});
9365 public static final BitSet FOLLOW_SEPARATOR_in_declaratorList949
= new BitSet(new long[]{0x0001000000000000L
,0x0000000000004000L
});
9366 public static final BitSet FOLLOW_declarator_in_declaratorList951
= new BitSet(new long[]{0x0000000400000002L
});
9367 public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList985
= new BitSet(new long[]{0x0000000400000002L
});
9368 public static final BitSet FOLLOW_SEPARATOR_in_abstractDeclaratorList988
= new BitSet(new long[]{0x0001080000000000L
,0x0000000000004000L
});
9369 public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList990
= new BitSet(new long[]{0x0000000400000002L
});
9370 public static final BitSet FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1014
= new BitSet(new long[]{0x0000000000000002L
});
9371 public static final BitSet FOLLOW_FLOATTOK_in_typeSpecifier1040
= new BitSet(new long[]{0x0000000000000002L
});
9372 public static final BitSet FOLLOW_INTTOK_in_typeSpecifier1046
= new BitSet(new long[]{0x0000000000000002L
});
9373 public static final BitSet FOLLOW_LONGTOK_in_typeSpecifier1052
= new BitSet(new long[]{0x0000000000000002L
});
9374 public static final BitSet FOLLOW_SHORTTOK_in_typeSpecifier1058
= new BitSet(new long[]{0x0000000000000002L
});
9375 public static final BitSet FOLLOW_SIGNEDTOK_in_typeSpecifier1064
= new BitSet(new long[]{0x0000000000000002L
});
9376 public static final BitSet FOLLOW_UNSIGNEDTOK_in_typeSpecifier1070
= new BitSet(new long[]{0x0000000000000002L
});
9377 public static final BitSet FOLLOW_CHARTOK_in_typeSpecifier1076
= new BitSet(new long[]{0x0000000000000002L
});
9378 public static final BitSet FOLLOW_DOUBLETOK_in_typeSpecifier1082
= new BitSet(new long[]{0x0000000000000002L
});
9379 public static final BitSet FOLLOW_VOIDTOK_in_typeSpecifier1088
= new BitSet(new long[]{0x0000000000000002L
});
9380 public static final BitSet FOLLOW_BOOLTOK_in_typeSpecifier1094
= new BitSet(new long[]{0x0000000000000002L
});
9381 public static final BitSet FOLLOW_COMPLEXTOK_in_typeSpecifier1100
= new BitSet(new long[]{0x0000000000000002L
});
9382 public static final BitSet FOLLOW_IMAGINARYTOK_in_typeSpecifier1106
= new BitSet(new long[]{0x0000000000000002L
});
9383 public static final BitSet FOLLOW_structSpecifier_in_typeSpecifier1112
= new BitSet(new long[]{0x0000000000000002L
});
9384 public static final BitSet FOLLOW_variantSpecifier_in_typeSpecifier1118
= new BitSet(new long[]{0x0000000000000002L
});
9385 public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier1124
= new BitSet(new long[]{0x0000000000000002L
});
9386 public static final BitSet FOLLOW_ctfTypeSpecifier_in_typeSpecifier1130
= new BitSet(new long[]{0x0000000000000002L
});
9387 public static final BitSet FOLLOW_typedefName_in_typeSpecifier1140
= new BitSet(new long[]{0x0000000000000002L
});
9388 public static final BitSet FOLLOW_CONSTTOK_in_typeQualifier1163
= new BitSet(new long[]{0x0000000000000002L
});
9389 public static final BitSet FOLLOW_ALIGNTOK_in_alignAttribute1176
= new BitSet(new long[]{0x0000080000000000L
});
9390 public static final BitSet FOLLOW_LPAREN_in_alignAttribute1178
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9391 public static final BitSet FOLLOW_unaryExpression_in_alignAttribute1180
= new BitSet(new long[]{0x0000100000000000L
});
9392 public static final BitSet FOLLOW_RPAREN_in_alignAttribute1182
= new BitSet(new long[]{0x0000000000000002L
});
9393 public static final BitSet FOLLOW_LCURL_in_structBody1223
= new BitSet(new long[]{0x000040007FFFFFE0L
,0x0000000000004000L
});
9394 public static final BitSet FOLLOW_structOrVariantDeclarationList_in_structBody1225
= new BitSet(new long[]{0x0000400000000000L
});
9395 public static final BitSet FOLLOW_RCURL_in_structBody1228
= new BitSet(new long[]{0x0000000000000002L
});
9396 public static final BitSet FOLLOW_STRUCTTOK_in_structSpecifier1266
= new BitSet(new long[]{0x0000200000000000L
,0x0000000000004000L
});
9397 public static final BitSet FOLLOW_structName_in_structSpecifier1288
= new BitSet(new long[]{0x0000200000000012L
,0x0000000000004000L
});
9398 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1304
= new BitSet(new long[]{0x0000000000000002L
});
9399 public static final BitSet FOLLOW_structBody_in_structSpecifier1333
= new BitSet(new long[]{0x0000000000000012L
});
9400 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1358
= new BitSet(new long[]{0x0000000000000002L
});
9401 public static final BitSet FOLLOW_structBody_in_structSpecifier1456
= new BitSet(new long[]{0x0000000000000012L
});
9402 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1474
= new BitSet(new long[]{0x0000000000000002L
});
9403 public static final BitSet FOLLOW_IDENTIFIER_in_structName1550
= new BitSet(new long[]{0x0000000000000002L
});
9404 public static final BitSet FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1581
= new BitSet(new long[]{0x000000007FFFFFE2L
,0x0000000000004000L
});
9405 public static final BitSet FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1619
= new BitSet(new long[]{0x0001000000000000L
,0x0000000000004000L
});
9406 public static final BitSet FOLLOW_declaratorList_in_structOrVariantDeclaration1651
= new BitSet(new long[]{0x0000800000000000L
});
9407 public static final BitSet FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1685
= new BitSet(new long[]{0x0000800000000000L
});
9408 public static final BitSet FOLLOW_typealiasDecl_in_structOrVariantDeclaration1735
= new BitSet(new long[]{0x0000800000000000L
});
9409 public static final BitSet FOLLOW_TERM_in_structOrVariantDeclaration1747
= new BitSet(new long[]{0x0000000000000002L
});
9410 public static final BitSet FOLLOW_typeQualifier_in_specifierQualifierList1771
= new BitSet(new long[]{0x000000001FCDFDE2L
,0x0000000000004000L
});
9411 public static final BitSet FOLLOW_typeSpecifier_in_specifierQualifierList1775
= new BitSet(new long[]{0x000000001FCDFDE2L
,0x0000000000004000L
});
9412 public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1812
= new BitSet(new long[]{0x0000000400000002L
});
9413 public static final BitSet FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1815
= new BitSet(new long[]{0x0001000000000000L
,0x0000000000004000L
});
9414 public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1817
= new BitSet(new long[]{0x0000000400000002L
});
9415 public static final BitSet FOLLOW_declarator_in_structOrVariantDeclarator1858
= new BitSet(new long[]{0x0000000800000002L
});
9416 public static final BitSet FOLLOW_COLON_in_structOrVariantDeclarator1861
= new BitSet(new long[]{0x0942000000000000L
});
9417 public static final BitSet FOLLOW_numberLiteral_in_structOrVariantDeclarator1863
= new BitSet(new long[]{0x0000000000000002L
});
9418 public static final BitSet FOLLOW_VARIANTTOK_in_variantSpecifier1897
= new BitSet(new long[]{0x0000208000000000L
,0x0000000000004000L
});
9419 public static final BitSet FOLLOW_variantName_in_variantSpecifier1915
= new BitSet(new long[]{0x0000208000000000L
,0x0000000000004000L
});
9420 public static final BitSet FOLLOW_variantTag_in_variantSpecifier1946
= new BitSet(new long[]{0x0000208000000002L
,0x0000000000004000L
});
9421 public static final BitSet FOLLOW_variantBody_in_variantSpecifier1972
= new BitSet(new long[]{0x0000000000000002L
});
9422 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2040
= new BitSet(new long[]{0x0000000000000002L
});
9423 public static final BitSet FOLLOW_variantTag_in_variantSpecifier2065
= new BitSet(new long[]{0x0000208000000000L
,0x0000000000004000L
});
9424 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2067
= new BitSet(new long[]{0x0000000000000002L
});
9425 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2078
= new BitSet(new long[]{0x0000000000000002L
});
9426 public static final BitSet FOLLOW_IDENTIFIER_in_variantName2120
= new BitSet(new long[]{0x0000000000000002L
});
9427 public static final BitSet FOLLOW_LCURL_in_variantBody2156
= new BitSet(new long[]{0x000000007FFFFFE0L
,0x0000000000004000L
});
9428 public static final BitSet FOLLOW_structOrVariantDeclarationList_in_variantBody2158
= new BitSet(new long[]{0x0000400000000000L
});
9429 public static final BitSet FOLLOW_RCURL_in_variantBody2160
= new BitSet(new long[]{0x0000000000000002L
});
9430 public static final BitSet FOLLOW_LT_in_variantTag2191
= new BitSet(new long[]{0x0000000000000000L
,0x0000000000004000L
});
9431 public static final BitSet FOLLOW_IDENTIFIER_in_variantTag2193
= new BitSet(new long[]{0x0000010000000000L
});
9432 public static final BitSet FOLLOW_GT_in_variantTag2195
= new BitSet(new long[]{0x0000000000000002L
});
9433 public static final BitSet FOLLOW_ENUMTOK_in_enumSpecifier2225
= new BitSet(new long[]{0x0000200800000000L
,0x0000000000004000L
});
9434 public static final BitSet FOLLOW_enumName_in_enumSpecifier2240
= new BitSet(new long[]{0x0000200800000002L
,0x0000000000004000L
});
9435 public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2251
= new BitSet(new long[]{0x0000200800000000L
,0x0000000000004000L
});
9436 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2253
= new BitSet(new long[]{0x0000000000000002L
});
9437 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2265
= new BitSet(new long[]{0x0000000000000002L
});
9438 public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2300
= new BitSet(new long[]{0x0000200800000000L
,0x0000000000004000L
});
9439 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2302
= new BitSet(new long[]{0x0000000000000002L
});
9440 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2311
= new BitSet(new long[]{0x0000000000000002L
});
9441 public static final BitSet FOLLOW_IDENTIFIER_in_enumName2356
= new BitSet(new long[]{0x0000000000000002L
});
9442 public static final BitSet FOLLOW_LCURL_in_enumBody2389
= new BitSet(new long[]{0x0000000000050210L
,0x0000000000004080L
});
9443 public static final BitSet FOLLOW_enumeratorList_in_enumBody2391
= new BitSet(new long[]{0x0000400400000000L
});
9444 public static final BitSet FOLLOW_SEPARATOR_in_enumBody2394
= new BitSet(new long[]{0x0000400000000000L
});
9445 public static final BitSet FOLLOW_RCURL_in_enumBody2396
= new BitSet(new long[]{0x0000000000000002L
});
9446 public static final BitSet FOLLOW_RCURL_in_enumBody2400
= new BitSet(new long[]{0x0000000000000002L
});
9447 public static final BitSet FOLLOW_COLON_in_enumContainerType2432
= new BitSet(new long[]{0x000000001FCDFDE0L
,0x0000000000004000L
});
9448 public static final BitSet FOLLOW_declarationSpecifiers_in_enumContainerType2434
= new BitSet(new long[]{0x0000000000000002L
});
9449 public static final BitSet FOLLOW_enumerator_in_enumeratorList2465
= new BitSet(new long[]{0x0000000400000002L
});
9450 public static final BitSet FOLLOW_SEPARATOR_in_enumeratorList2468
= new BitSet(new long[]{0x0000000000050210L
,0x0000000000004080L
});
9451 public static final BitSet FOLLOW_enumerator_in_enumeratorList2470
= new BitSet(new long[]{0x0000000400000002L
});
9452 public static final BitSet FOLLOW_enumConstant_in_enumerator2506
= new BitSet(new long[]{0x0000002000000002L
});
9453 public static final BitSet FOLLOW_enumeratorValue_in_enumerator2508
= new BitSet(new long[]{0x0000000000000002L
});
9454 public static final BitSet FOLLOW_ASSIGNMENT_in_enumeratorValue2532
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9455 public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2536
= new BitSet(new long[]{0x0000001000000002L
});
9456 public static final BitSet FOLLOW_ELIPSES_in_enumeratorValue2562
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9457 public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2566
= new BitSet(new long[]{0x0000000000000002L
});
9458 public static final BitSet FOLLOW_pointer_in_declarator2608
= new BitSet(new long[]{0x0001000000000000L
,0x0000000000004000L
});
9459 public static final BitSet FOLLOW_directDeclarator_in_declarator2611
= new BitSet(new long[]{0x0000000000000002L
});
9460 public static final BitSet FOLLOW_IDENTIFIER_in_directDeclarator2655
= new BitSet(new long[]{0x0000020000000002L
});
9461 public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator2673
= new BitSet(new long[]{0x0000020000000002L
});
9462 public static final BitSet FOLLOW_OPENBRAC_in_directDeclaratorSuffix2686
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9463 public static final BitSet FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2688
= new BitSet(new long[]{0x0000040000000000L
});
9464 public static final BitSet FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2690
= new BitSet(new long[]{0x0000000000000002L
});
9465 public static final BitSet FOLLOW_unaryExpression_in_directDeclaratorLength2711
= new BitSet(new long[]{0x0000000000000002L
});
9466 public static final BitSet FOLLOW_pointer_in_abstractDeclarator2742
= new BitSet(new long[]{0x0001080000000002L
,0x0000000000004000L
});
9467 public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2745
= new BitSet(new long[]{0x0000000000000002L
});
9468 public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2765
= new BitSet(new long[]{0x0000000000000002L
});
9469 public static final BitSet FOLLOW_IDENTIFIER_in_directAbstractDeclarator2805
= new BitSet(new long[]{0x0000020000000002L
});
9470 public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2814
= new BitSet(new long[]{0x0001080000000000L
,0x0000000000004000L
});
9471 public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2816
= new BitSet(new long[]{0x0000100000000000L
});
9472 public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2818
= new BitSet(new long[]{0x0000020000000002L
});
9473 public static final BitSet FOLLOW_OPENBRAC_in_directAbstractDeclarator2833
= new BitSet(new long[]{0x0942040060170210L
,0x0000000000004090L
});
9474 public static final BitSet FOLLOW_unaryExpression_in_directAbstractDeclarator2835
= new BitSet(new long[]{0x0000040000000000L
});
9475 public static final BitSet FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2838
= new BitSet(new long[]{0x0000000000000002L
});
9476 public static final BitSet FOLLOW_POINTER_in_pointer2866
= new BitSet(new long[]{0x0000000000000022L
});
9477 public static final BitSet FOLLOW_typeQualifierList_in_pointer2868
= new BitSet(new long[]{0x0000000000000002L
});
9478 public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList2891
= new BitSet(new long[]{0x0000000000000022L
});
9479 public static final BitSet FOLLOW_IDENTIFIER_in_typedefName2917
= new BitSet(new long[]{0x0000000000000002L
});
9480 public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasTarget2945
= new BitSet(new long[]{0x0001080000000002L
,0x0000000000004000L
});
9481 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasTarget2947
= new BitSet(new long[]{0x0000000000000002L
});
9482 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias2980
= new BitSet(new long[]{0x0000000000000002L
});
9483 public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasAlias2989
= new BitSet(new long[]{0x0001080000000002L
,0x0000000000004000L
});
9484 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias2991
= new BitSet(new long[]{0x0000000000000002L
});
9485 public static final BitSet FOLLOW_TYPEALIASTOK_in_typealiasDecl3023
= new BitSet(new long[]{0x000000001FCDFDE0L
,0x0000000000004000L
});
9486 public static final BitSet FOLLOW_typealiasTarget_in_typealiasDecl3025
= new BitSet(new long[]{0x0000004000000000L
});
9487 public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3027
= new BitSet(new long[]{0x000108001FCDFDE0L
,0x0000000000004000L
});
9488 public static final BitSet FOLLOW_typealiasAlias_in_typealiasDecl3029
= new BitSet(new long[]{0x0000000000000002L
});
9489 public static final BitSet FOLLOW_set_in_ctfKeyword0
= new BitSet(new long[]{0x0000000000000002L
});
9490 public static final BitSet FOLLOW_ctfSpecifierHead_in_ctfSpecifier3123
= new BitSet(new long[]{0x0000200000000000L
});
9491 public static final BitSet FOLLOW_ctfBody_in_ctfSpecifier3125
= new BitSet(new long[]{0x0000000000000002L
});
9492 public static final BitSet FOLLOW_typealiasDecl_in_ctfSpecifier3144
= new BitSet(new long[]{0x0000000000000002L
});
9493 public static final BitSet FOLLOW_EVENTTOK_in_ctfSpecifierHead3176
= new BitSet(new long[]{0x0000000000000002L
});
9494 public static final BitSet FOLLOW_STREAMTOK_in_ctfSpecifierHead3185
= new BitSet(new long[]{0x0000000000000002L
});
9495 public static final BitSet FOLLOW_TRACETOK_in_ctfSpecifierHead3194
= new BitSet(new long[]{0x0000000000000002L
});
9496 public static final BitSet FOLLOW_ENVTOK_in_ctfSpecifierHead3203
= new BitSet(new long[]{0x0000000000000002L
});
9497 public static final BitSet FOLLOW_CLOCKTOK_in_ctfSpecifierHead3212
= new BitSet(new long[]{0x0000000000000002L
});
9498 public static final BitSet FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3246
= new BitSet(new long[]{0x0000200000000000L
});
9499 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3248
= new BitSet(new long[]{0x0000000000000002L
});
9500 public static final BitSet FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3263
= new BitSet(new long[]{0x0000200000000000L
});
9501 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3265
= new BitSet(new long[]{0x0000000000000002L
});
9502 public static final BitSet FOLLOW_STRINGTOK_in_ctfTypeSpecifier3280
= new BitSet(new long[]{0x0000200000000002L
});
9503 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3282
= new BitSet(new long[]{0x0000000000000002L
});
9504 public static final BitSet FOLLOW_LCURL_in_ctfBody3320
= new BitSet(new long[]{0x094240007FFFFFF0L
,0x0000000000004090L
});
9505 public static final BitSet FOLLOW_ctfAssignmentExpressionList_in_ctfBody3322
= new BitSet(new long[]{0x0000400000000000L
});
9506 public static final BitSet FOLLOW_RCURL_in_ctfBody3325
= new BitSet(new long[]{0x0000000000000002L
});
9507 public static final BitSet FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3344
= new BitSet(new long[]{0x0000800000000000L
});
9508 public static final BitSet FOLLOW_TERM_in_ctfAssignmentExpressionList3346
= new BitSet(new long[]{0x094200007FFFFFF2L
,0x0000000000004090L
});
9509 public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3381
= new BitSet(new long[]{0x0000006000000000L
});
9510 public static final BitSet FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3400
= new BitSet(new long[]{0x0942000060170210L
,0x0000000000004090L
});
9511 public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3404
= new BitSet(new long[]{0x0000000000000002L
});
9512 public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3438
= new BitSet(new long[]{0x000000001FCDFDE0L
,0x0000000000004000L
});
9513 public static final BitSet FOLLOW_typeSpecifier_in_ctfAssignmentExpression3443
= new BitSet(new long[]{0x0000000000000002L
});
9514 public static final BitSet FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3493
= new BitSet(new long[]{0x0001000000000000L
,0x0000000000004000L
});
9515 public static final BitSet FOLLOW_declaratorList_in_ctfAssignmentExpression3497
= new BitSet(new long[]{0x0000000000000002L
});
9516 public static final BitSet FOLLOW_typealiasDecl_in_ctfAssignmentExpression3525
= new BitSet(new long[]{0x0000000000000002L
});
9517 public static final BitSet FOLLOW_IDENTIFIER_in_synpred1_CTFParser470
= new BitSet(new long[]{0x0000000000000002L
});
9518 public static final BitSet FOLLOW_ctfKeyword_in_synpred2_CTFParser492
= new BitSet(new long[]{0x0000000000000002L
});
9519 public static final BitSet FOLLOW_STRING_LITERAL_in_synpred3_CTFParser512
= new BitSet(new long[]{0x0000000000000002L
});