1 // $ANTLR !Unknown version! Grammar/CTFParser.g 2012-03-09 14:59:18
3 package org
.eclipse
.linuxtools
.ctf
.parser
;
5 import java
.util
.HashSet
;
7 import java
.util
.Stack
;
9 import org
.antlr
.runtime
.BaseRecognizer
;
10 import org
.antlr
.runtime
.BitSet
;
11 import org
.antlr
.runtime
.DFA
;
12 import org
.antlr
.runtime
.EarlyExitException
;
13 import org
.antlr
.runtime
.FailedPredicateException
;
14 import org
.antlr
.runtime
.IntStream
;
15 import org
.antlr
.runtime
.MismatchedSetException
;
16 import org
.antlr
.runtime
.MismatchedTokenException
;
17 import org
.antlr
.runtime
.NoViableAltException
;
18 import org
.antlr
.runtime
.Parser
;
19 import org
.antlr
.runtime
.ParserRuleReturnScope
;
20 import org
.antlr
.runtime
.RecognitionException
;
21 import org
.antlr
.runtime
.RecognizerSharedState
;
22 import org
.antlr
.runtime
.Token
;
23 import org
.antlr
.runtime
.TokenStream
;
24 import org
.antlr
.runtime
.tree
.CommonTree
;
25 import org
.antlr
.runtime
.tree
.CommonTreeAdaptor
;
26 import org
.antlr
.runtime
.tree
.RewriteEarlyExitException
;
27 import org
.antlr
.runtime
.tree
.RewriteRuleSubtreeStream
;
28 import org
.antlr
.runtime
.tree
.RewriteRuleTokenStream
;
29 import org
.antlr
.runtime
.tree
.TreeAdaptor
;
32 * TSDL parser. For internal use only.
34 * @author Matthew Khouzam and Antlr
37 @SuppressWarnings({ "nls", "unused", "unchecked", "rawtypes", "javadoc",
38 "null", "incomplete-switch" })
39 public class CTFParser
extends Parser
{
40 public static final String
[] tokenNames
= new String
[] { "<invalid>",
41 "<EOR>", "<DOWN>", "<UP>", "ALIGNTOK", "CONSTTOK", "CHARTOK",
42 "DOUBLETOK", "ENUMTOK", "EVENTTOK", "FLOATINGPOINTTOK", "FLOATTOK",
43 "INTEGERTOK", "INTTOK", "LONGTOK", "SHORTTOK", "SIGNEDTOK",
44 "STREAMTOK", "STRINGTOK", "STRUCTTOK", "TRACETOK", "TYPEALIASTOK",
45 "TYPEDEFTOK", "UNSIGNEDTOK", "VARIANTTOK", "VOIDTOK", "BOOLTOK",
46 "COMPLEXTOK", "IMAGINARYTOK", "ENVTOK", "CLOCKTOK", "NANNUMBERTOK",
47 "INFINITYTOK", "NINFINITYTOK", "SEPARATOR", "COLON", "ELIPSES",
48 "ASSIGNMENT", "TYPE_ASSIGNMENT", "LT", "GT", "OPENBRAC",
49 "CLOSEBRAC", "LPAREN", "RPAREN", "LCURL", "RCURL", "TERM",
50 "POINTER", "SIGN", "ARROW", "DOT", "BACKSLASH",
51 "INTEGER_TYPES_SUFFIX", "OCTAL_LITERAL", "DIGIT",
52 "DECIMAL_LITERAL", "HEX_PREFIX", "HEX_DIGIT", "HEX_LITERAL",
53 "NONZERO_DIGIT", "OCTAL_ESCAPE", "UNICODE_ESCAPE",
54 "HEXADECIMAL_ESCAPE", "ESCAPE_SEQUENCE", "STRINGPREFIX",
55 "SINGLEQUOTE", "CHAR_CONTENT", "CHARACTER_LITERAL", "DOUBLEQUOTE",
56 "STRING_CONTENT", "STRING_LITERAL", "WS", "COMMENT_OPEN",
57 "COMMENT_CLOSE", "COMMENT", "LINE_COMMENT", "NONDIGIT",
58 "IDENTIFIER", "ROOT", "EVENT", "STREAM", "TRACE", "ENV", "CLOCK",
59 "DECLARATION", "SV_DECLARATION", "TYPE_SPECIFIER_LIST",
60 "TYPE_DECLARATOR_LIST", "TYPE_DECLARATOR", "STRUCT", "STRUCT_NAME",
61 "STRUCT_BODY", "ALIGN", "CTF_EXPRESSION_TYPE",
62 "CTF_EXPRESSION_VAL", "CTF_LEFT", "CTF_RIGHT",
63 "UNARY_EXPRESSION_STRING", "UNARY_EXPRESSION_STRING_QUOTES",
64 "UNARY_EXPRESSION_DEC", "UNARY_EXPRESSION_HEX",
65 "UNARY_EXPRESSION_OCT", "LENGTH", "TYPEDEF", "TYPEALIAS",
66 "TYPEALIAS_TARGET", "TYPEALIAS_ALIAS", "INTEGER", "STRING",
67 "FLOATING_POINT", "ENUM", "ENUM_CONTAINER_TYPE", "ENUM_ENUMERATOR",
68 "ENUM_NAME", "ENUM_VALUE", "ENUM_VALUE_RANGE", "ENUM_BODY",
69 "VARIANT", "VARIANT_NAME", "VARIANT_TAG", "VARIANT_BODY",
71 public static final int SIGN
= 49;
72 public static final int LT
= 39;
73 public static final int TYPEDEFTOK
= 22;
74 public static final int VARIANT_NAME
= 119;
75 public static final int ENV
= 83;
76 public static final int INTEGER_TYPES_SUFFIX
= 53;
77 public static final int POINTER
= 48;
78 public static final int TRACE
= 82;
79 public static final int HEX_PREFIX
= 57;
80 public static final int INTTOK
= 13;
81 public static final int SEPARATOR
= 34;
82 public static final int ENUMTOK
= 8;
83 public static final int COMPLEXTOK
= 27;
84 public static final int IMAGINARYTOK
= 28;
85 public static final int STREAMTOK
= 17;
86 public static final int EOF
= -1;
87 public static final int UNARY_EXPRESSION_OCT
= 102;
88 public static final int ENUM_VALUE
= 115;
89 public static final int UNSIGNEDTOK
= 23;
90 public static final int ENUM_NAME
= 114;
91 public static final int RPAREN
= 44;
92 public static final int CHAR_CONTENT
= 67;
93 public static final int STRING_LITERAL
= 71;
94 public static final int UNARY_EXPRESSION_STRING_QUOTES
= 99;
95 public static final int ALIGNTOK
= 4;
96 public static final int FLOATTOK
= 11;
97 public static final int STRUCT_BODY
= 92;
98 public static final int ENUM_BODY
= 117;
99 public static final int COMMENT_CLOSE
= 74;
100 public static final int STRINGTOK
= 18;
101 public static final int COMMENT
= 75;
102 public static final int STREAM
= 81;
103 public static final int UNARY_EXPRESSION_HEX
= 101;
104 public static final int UNARY_EXPRESSION_DEC
= 100;
105 public static final int FLOATINGPOINTTOK
= 10;
106 public static final int LINE_COMMENT
= 76;
107 public static final int CTF_EXPRESSION_TYPE
= 94;
108 public static final int DOUBLETOK
= 7;
109 public static final int TYPE_DECLARATOR
= 89;
110 public static final int CHARACTER_LITERAL
= 68;
111 public static final int OCTAL_ESCAPE
= 61;
112 public static final int STRUCT_NAME
= 91;
113 public static final int VARIANT
= 118;
114 public static final int NANNUMBERTOK
= 31;
115 public static final int ENUM_ENUMERATOR
= 113;
116 public static final int FLOATING_POINT
= 110;
117 public static final int DECLARATOR
= 122;
118 public static final int SIGNEDTOK
= 16;
119 public static final int CHARTOK
= 6;
120 public static final int WS
= 72;
121 public static final int INTEGERTOK
= 12;
122 public static final int VARIANT_BODY
= 121;
123 public static final int NONDIGIT
= 77;
124 public static final int GT
= 40;
125 public static final int TYPEALIAS_TARGET
= 106;
126 public static final int DECIMAL_LITERAL
= 56;
127 public static final int BACKSLASH
= 52;
128 public static final int CLOSEBRAC
= 42;
129 public static final int TERM
= 47;
130 public static final int BOOLTOK
= 26;
131 public static final int CTF_RIGHT
= 97;
132 public static final int TYPE_DECLARATOR_LIST
= 88;
133 public static final int STRING_CONTENT
= 70;
134 public static final int TYPE_ASSIGNMENT
= 38;
135 public static final int ENUM_CONTAINER_TYPE
= 112;
136 public static final int DOUBLEQUOTE
= 69;
137 public static final int ENUM_VALUE_RANGE
= 116;
138 public static final int DECLARATION
= 85;
139 public static final int LENGTH
= 103;
140 public static final int LPAREN
= 43;
141 public static final int INFINITYTOK
= 32;
142 public static final int STRINGPREFIX
= 65;
143 public static final int CTF_EXPRESSION_VAL
= 95;
144 public static final int ESCAPE_SEQUENCE
= 64;
145 public static final int UNICODE_ESCAPE
= 62;
146 public static final int SINGLEQUOTE
= 66;
147 public static final int IDENTIFIER
= 78;
148 public static final int HEX_LITERAL
= 59;
149 public static final int ALIGN
= 93;
150 public static final int DIGIT
= 55;
151 public static final int DOT
= 51;
152 public static final int ENVTOK
= 29;
153 public static final int STRUCTTOK
= 19;
154 public static final int OPENBRAC
= 41;
155 public static final int TYPEALIASTOK
= 21;
156 public static final int CLOCK
= 84;
157 public static final int INTEGER
= 108;
158 public static final int TYPEALIAS
= 105;
159 public static final int EVENTTOK
= 9;
160 public static final int NINFINITYTOK
= 33;
161 public static final int TYPEDEF
= 104;
162 public static final int VOIDTOK
= 25;
163 public static final int TYPE_SPECIFIER_LIST
= 87;
164 public static final int OCTAL_LITERAL
= 54;
165 public static final int COMMENT_OPEN
= 73;
166 public static final int HEX_DIGIT
= 58;
167 public static final int STRUCT
= 90;
168 public static final int EVENT
= 80;
169 public static final int LONGTOK
= 14;
170 public static final int ROOT
= 79;
171 public static final int CTF_LEFT
= 96;
172 public static final int CLOCKTOK
= 30;
173 public static final int TRACETOK
= 20;
174 public static final int COLON
= 35;
175 public static final int HEXADECIMAL_ESCAPE
= 63;
176 public static final int LCURL
= 45;
177 public static final int VARIANTTOK
= 24;
178 public static final int VARIANT_TAG
= 120;
179 public static final int ENUM
= 111;
180 public static final int ELIPSES
= 36;
181 public static final int RCURL
= 46;
182 public static final int TYPEALIAS_ALIAS
= 107;
183 public static final int UNARY_EXPRESSION_STRING
= 98;
184 public static final int ARROW
= 50;
185 public static final int ASSIGNMENT
= 37;
186 public static final int SHORTTOK
= 15;
187 public static final int SV_DECLARATION
= 86;
188 public static final int NONZERO_DIGIT
= 60;
189 public static final int CONSTTOK
= 5;
190 public static final int STRING
= 109;
195 protected static class Symbols_scope
{
199 protected Stack Symbols_stack
= new Stack();
201 public CTFParser(TokenStream input
) {
202 this(input
, new RecognizerSharedState());
205 public CTFParser(TokenStream input
, RecognizerSharedState state
) {
210 protected TreeAdaptor adaptor
= new CommonTreeAdaptor();
212 public void setTreeAdaptor(TreeAdaptor adaptor
) {
213 this.adaptor
= adaptor
;
216 public TreeAdaptor
getTreeAdaptor() {
221 public String
[] getTokenNames() {
222 return CTFParser
.tokenNames
;
226 public String
getGrammarFileName() {
227 return "Grammar/CTFParser.g";
230 public CTFParser(TokenStream input
, boolean verbose
) {
232 this.verbose
= verbose
;
236 * To disable automatic error recovery. When we have a mismatched token,
237 * simply throw an exception.
240 protected Object
recoverFromMismatchedToken(IntStream input
, int ttype
,
241 BitSet follow
) throws RecognitionException
{
242 throw new MismatchedTokenException(ttype
, input
);
246 * Checks if a given name has been defined has a type. From:
247 * http://www.antlr.org/grammar/1153358328744/C.g
251 * @return True if is is a type, false otherwise.
253 boolean isTypeName(String name
) {
254 for (int i
= Symbols_stack
.size() - 1; i
>= 0; i
--) {
255 Symbols_scope scope
= (Symbols_scope
) Symbols_stack
.get(i
);
256 if (scope
.types
.contains(name
)) {
263 void addTypeName(String name
) {
264 ((Symbols_scope
) Symbols_stack
.peek()).types
.add(name
);
266 debug_print("New type: " + name
);
270 boolean _inTypedef
= false;
273 debug_print("typedefOn");
278 debug_print("typedefOff");
282 boolean inTypedef() {
286 boolean _inTypealiasAlias
= false;
288 void typealiasAliasOn() {
289 debug_print("typealiasAliasOn");
290 _inTypealiasAlias
= true;
293 void typealiasAliasOff() {
294 debug_print("typealiasAliasOff");
295 _inTypealiasAlias
= false;
298 boolean inTypealiasAlias() {
299 return _inTypealiasAlias
;
302 static void print_tabs(int n
) {
303 for (int i
= 0; i
< n
; i
++) {
304 if(System
.out
!= null) {//findbugs
305 System
.out
.print(" ");
310 void enter(String name
) {
312 if (state
.backtracking
== 0) {
314 debug_print("+ " + name
);
320 void exit(String name
) {
324 debug_print("- " + name
);
328 void debug_print(String str
) {
330 if(System
.out
!= null) {//findbugs
331 System
.out
.println(str
);
338 /* Prints rule entry and exit while parsing */
339 boolean verbose
= false;
341 public static class parse_return
extends ParserRuleReturnScope
{
345 public Object
getTree() {
350 // $ANTLR start "parse"
351 // Grammar/CTFParser.g:198:1: parse : ( declaration )+ EOF -> ^( ROOT (
352 // declaration )+ ) ;
353 public final CTFParser
.parse_return
parse() throws RecognitionException
{
354 Symbols_stack
.push(new Symbols_scope());
356 CTFParser
.parse_return retval
= new CTFParser
.parse_return();
357 retval
.start
= input
.LT(1);
359 CommonTree root_0
= null;
362 CTFParser
.declaration_return declaration1
= null;
364 CommonTree EOF2_tree
= null;
365 RewriteRuleTokenStream stream_EOF
= new RewriteRuleTokenStream(adaptor
,
367 RewriteRuleSubtreeStream stream_declaration
= new RewriteRuleSubtreeStream(
368 adaptor
, "rule declaration");
371 debug_print("Scope push " + Symbols_stack
.size());
372 ((Symbols_scope
) Symbols_stack
.peek()).types
= new HashSet
<String
>();
375 // Grammar/CTFParser.g:211:1: ( ( declaration )+ EOF -> ^( ROOT (
376 // declaration )+ ) )
377 // Grammar/CTFParser.g:212:3: ( declaration )+ EOF
379 // Grammar/CTFParser.g:212:3: ( declaration )+
383 int LA1_0
= input
.LA(1);
385 if ((((LA1_0
>= CONSTTOK
) && (LA1_0
<= ENUMTOK
))
386 || ((LA1_0
>= FLOATINGPOINTTOK
) && (LA1_0
<= SIGNEDTOK
))
387 || ((LA1_0
>= STRINGTOK
) && (LA1_0
<= STRUCTTOK
)) || ((LA1_0
>= TYPEDEFTOK
) && (LA1_0
<= IMAGINARYTOK
)))) {
389 } else if ((LA1_0
== IDENTIFIER
)
390 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
393 } else if (((LA1_0
== EVENTTOK
) || (LA1_0
== STREAMTOK
)
394 || ((LA1_0
>= TRACETOK
) && (LA1_0
<= TYPEALIASTOK
)) || ((LA1_0
>= ENVTOK
) && (LA1_0
<= CLOCKTOK
)))) {
400 // Grammar/CTFParser.g:212:3: declaration
402 pushFollow(FOLLOW_declaration_in_parse321
);
403 declaration1
= declaration();
409 if (state
.backtracking
== 0) {
410 stream_declaration
.add(declaration1
.getTree());
420 if (state
.backtracking
> 0) {
424 EarlyExitException eee
= new EarlyExitException(1,
431 EOF2
= (Token
) match(input
, EOF
, FOLLOW_EOF_in_parse324
);
435 if (state
.backtracking
== 0) {
436 stream_EOF
.add(EOF2
);
440 // elements: declaration
442 // rule labels: retval
443 // token list labels:
446 if (state
.backtracking
== 0) {
447 retval
.tree
= root_0
;
448 // RewriteRuleSubtreeStream stream_retval =
449 new RewriteRuleSubtreeStream(
450 adaptor
, "rule retval",
451 retval
!= null ? retval
.tree
: null);
453 root_0
= (CommonTree
) adaptor
.nil();
454 // 212:20: -> ^( ROOT ( declaration )+ )
456 // Grammar/CTFParser.g:212:23: ^( ROOT ( declaration )+
459 CommonTree root_1
= (CommonTree
) adaptor
.nil();
460 root_1
= (CommonTree
) adaptor
.becomeRoot(
461 adaptor
.create(ROOT
, "ROOT"), root_1
);
463 if (!(stream_declaration
.hasNext())) {
464 throw new RewriteEarlyExitException();
466 while (stream_declaration
.hasNext()) {
467 adaptor
.addChild(root_1
,
468 stream_declaration
.nextTree());
471 stream_declaration
.reset();
473 adaptor
.addChild(root_0
, root_1
);
478 retval
.tree
= root_0
;
482 retval
.stop
= input
.LT(-1);
484 if (state
.backtracking
== 0) {
486 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
487 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
490 if (state
.backtracking
== 0) {
492 debug_print("Scope pop " + Symbols_stack
.size());
495 debug_print("Final depth, should be 0: " + depth
);
500 catch (RecognitionException e
) {
509 // $ANTLR end "parse"
511 public static class numberLiteral_return
extends ParserRuleReturnScope
{
515 public Object
getTree() {
520 // $ANTLR start "numberLiteral"
521 // Grammar/CTFParser.g:215:1: numberLiteral : ( SIGN )* ( HEX_LITERAL -> ^(
522 // UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^(
523 // UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^(
524 // UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) ;
525 public final CTFParser
.numberLiteral_return
numberLiteral()
526 throws RecognitionException
{
527 CTFParser
.numberLiteral_return retval
= new CTFParser
.numberLiteral_return();
528 retval
.start
= input
.LT(1);
530 CommonTree root_0
= null;
533 Token HEX_LITERAL4
= null;
534 Token DECIMAL_LITERAL5
= null;
535 Token OCTAL_LITERAL6
= null;
537 CommonTree SIGN3_tree
= null;
538 CommonTree HEX_LITERAL4_tree
= null;
539 CommonTree DECIMAL_LITERAL5_tree
= null;
540 CommonTree OCTAL_LITERAL6_tree
= null;
541 RewriteRuleTokenStream stream_SIGN
= new RewriteRuleTokenStream(
542 adaptor
, "token SIGN");
543 RewriteRuleTokenStream stream_OCTAL_LITERAL
= new RewriteRuleTokenStream(
544 adaptor
, "token OCTAL_LITERAL");
545 RewriteRuleTokenStream stream_HEX_LITERAL
= new RewriteRuleTokenStream(
546 adaptor
, "token HEX_LITERAL");
547 RewriteRuleTokenStream stream_DECIMAL_LITERAL
= new RewriteRuleTokenStream(
548 adaptor
, "token DECIMAL_LITERAL");
550 enter("numberLiteral");
553 // Grammar/CTFParser.g:223:1: ( ( SIGN )* ( HEX_LITERAL -> ^(
554 // UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL ->
555 // ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) |
556 // OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )*
558 // Grammar/CTFParser.g:224:3: ( SIGN )* ( HEX_LITERAL -> ^(
559 // UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL ->
560 // ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) |
561 // OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )*
564 // Grammar/CTFParser.g:224:3: ( SIGN )*
567 int LA2_0
= input
.LA(1);
569 if ((LA2_0
== SIGN
)) {
575 // Grammar/CTFParser.g:224:3: SIGN
577 SIGN3
= (Token
) match(input
, SIGN
,
578 FOLLOW_SIGN_in_numberLiteral357
);
582 if (state
.backtracking
== 0) {
583 stream_SIGN
.add(SIGN3
);
594 // Grammar/CTFParser.g:224:10: ( HEX_LITERAL -> ^(
595 // UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) |
596 // DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL (
597 // SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT
598 // OCTAL_LITERAL ( SIGN )* ) )
600 switch (input
.LA(1)) {
605 case DECIMAL_LITERAL
: {
609 case OCTAL_LITERAL
: {
614 if (state
.backtracking
> 0) {
618 NoViableAltException nvae
= new NoViableAltException("", 3,
626 // Grammar/CTFParser.g:224:11: HEX_LITERAL
628 HEX_LITERAL4
= (Token
) match(input
, HEX_LITERAL
,
629 FOLLOW_HEX_LITERAL_in_numberLiteral362
);
633 if (state
.backtracking
== 0) {
634 stream_HEX_LITERAL
.add(HEX_LITERAL4
);
638 // elements: SIGN, HEX_LITERAL
640 // rule labels: retval
641 // token list labels:
644 if (state
.backtracking
== 0) {
645 retval
.tree
= root_0
;
646 // RewriteRuleSubtreeStream stream_retval =
647 new RewriteRuleSubtreeStream(
648 adaptor
, "rule retval",
649 retval
!= null ? retval
.tree
: null);
651 root_0
= (CommonTree
) adaptor
.nil();
652 // 224:23: -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN
655 // Grammar/CTFParser.g:224:26: ^(
656 // UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* )
658 CommonTree root_1
= (CommonTree
) adaptor
.nil();
659 root_1
= (CommonTree
) adaptor
660 .becomeRoot(adaptor
.create(
661 UNARY_EXPRESSION_HEX
,
662 "UNARY_EXPRESSION_HEX"), root_1
);
664 adaptor
.addChild(root_1
,
665 stream_HEX_LITERAL
.nextNode());
666 // Grammar/CTFParser.g:224:61: ( SIGN )*
667 while (stream_SIGN
.hasNext()) {
668 adaptor
.addChild(root_1
,
669 stream_SIGN
.nextNode());
674 adaptor
.addChild(root_0
, root_1
);
679 retval
.tree
= root_0
;
684 // Grammar/CTFParser.g:225:5: DECIMAL_LITERAL
686 DECIMAL_LITERAL5
= (Token
) match(input
, DECIMAL_LITERAL
,
687 FOLLOW_DECIMAL_LITERAL_in_numberLiteral379
);
691 if (state
.backtracking
== 0) {
692 stream_DECIMAL_LITERAL
.add(DECIMAL_LITERAL5
);
696 // elements: DECIMAL_LITERAL, SIGN
698 // rule labels: retval
699 // token list labels:
702 if (state
.backtracking
== 0) {
703 retval
.tree
= root_0
;
704 // RewriteRuleSubtreeStream stream_retval =
705 new RewriteRuleSubtreeStream(
706 adaptor
, "rule retval",
707 retval
!= null ? retval
.tree
: null);
709 root_0
= (CommonTree
) adaptor
.nil();
710 // 225:21: -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL (
713 // Grammar/CTFParser.g:225:24: ^(
714 // UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* )
716 CommonTree root_1
= (CommonTree
) adaptor
.nil();
717 root_1
= (CommonTree
) adaptor
718 .becomeRoot(adaptor
.create(
719 UNARY_EXPRESSION_DEC
,
720 "UNARY_EXPRESSION_DEC"), root_1
);
722 adaptor
.addChild(root_1
,
723 stream_DECIMAL_LITERAL
.nextNode());
724 // Grammar/CTFParser.g:225:63: ( SIGN )*
725 while (stream_SIGN
.hasNext()) {
726 adaptor
.addChild(root_1
,
727 stream_SIGN
.nextNode());
732 adaptor
.addChild(root_0
, root_1
);
737 retval
.tree
= root_0
;
742 // Grammar/CTFParser.g:226:5: OCTAL_LITERAL
744 OCTAL_LITERAL6
= (Token
) match(input
, OCTAL_LITERAL
,
745 FOLLOW_OCTAL_LITERAL_in_numberLiteral396
);
749 if (state
.backtracking
== 0) {
750 stream_OCTAL_LITERAL
.add(OCTAL_LITERAL6
);
754 // elements: SIGN, OCTAL_LITERAL
756 // rule labels: retval
757 // token list labels:
760 if (state
.backtracking
== 0) {
761 retval
.tree
= root_0
;
762 // RewriteRuleSubtreeStream stream_retval =
763 new RewriteRuleSubtreeStream(
764 adaptor
, "rule retval",
765 retval
!= null ? retval
.tree
: null);
767 root_0
= (CommonTree
) adaptor
.nil();
768 // 226:19: -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL (
771 // Grammar/CTFParser.g:226:22: ^(
772 // UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* )
774 CommonTree root_1
= (CommonTree
) adaptor
.nil();
775 root_1
= (CommonTree
) adaptor
776 .becomeRoot(adaptor
.create(
777 UNARY_EXPRESSION_OCT
,
778 "UNARY_EXPRESSION_OCT"), root_1
);
780 adaptor
.addChild(root_1
,
781 stream_OCTAL_LITERAL
.nextNode());
782 // Grammar/CTFParser.g:226:59: ( SIGN )*
783 while (stream_SIGN
.hasNext()) {
784 adaptor
.addChild(root_1
,
785 stream_SIGN
.nextNode());
790 adaptor
.addChild(root_0
, root_1
);
795 retval
.tree
= root_0
;
804 retval
.stop
= input
.LT(-1);
806 if (state
.backtracking
== 0) {
808 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
809 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
812 if (state
.backtracking
== 0) {
814 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
815 exit("numberLiteral");
820 catch (RecognitionException e
) {
827 // $ANTLR end "numberLiteral"
829 public static class constant_return
extends ParserRuleReturnScope
{
833 public Object
getTree() {
838 // $ANTLR start "constant"
839 // Grammar/CTFParser.g:229:1: constant : ( numberLiteral | enumConstant |
840 // CHARACTER_LITERAL );
841 public final CTFParser
.constant_return
constant()
842 throws RecognitionException
{
843 CTFParser
.constant_return retval
= new CTFParser
.constant_return();
844 retval
.start
= input
.LT(1);
846 CommonTree root_0
= null;
848 Token CHARACTER_LITERAL9
= null;
849 CTFParser
.numberLiteral_return numberLiteral7
= null;
851 CTFParser
.enumConstant_return enumConstant8
= null;
853 CommonTree CHARACTER_LITERAL9_tree
= null;
858 // Grammar/CTFParser.g:236:1: ( numberLiteral | enumConstant |
859 // CHARACTER_LITERAL )
861 switch (input
.LA(1)) {
864 case DECIMAL_LITERAL
:
878 case CHARACTER_LITERAL
: {
883 if (state
.backtracking
> 0) {
887 NoViableAltException nvae
= new NoViableAltException("", 4, 0,
895 // Grammar/CTFParser.g:237:4: numberLiteral
897 root_0
= (CommonTree
) adaptor
.nil();
899 pushFollow(FOLLOW_numberLiteral_in_constant432
);
900 numberLiteral7
= numberLiteral();
906 if (state
.backtracking
== 0) {
907 adaptor
.addChild(root_0
, numberLiteral7
.getTree());
913 // Grammar/CTFParser.g:238:5: enumConstant
915 root_0
= (CommonTree
) adaptor
.nil();
917 pushFollow(FOLLOW_enumConstant_in_constant438
);
918 enumConstant8
= enumConstant();
924 if (state
.backtracking
== 0) {
925 adaptor
.addChild(root_0
, enumConstant8
.getTree());
931 // Grammar/CTFParser.g:239:5: CHARACTER_LITERAL
933 root_0
= (CommonTree
) adaptor
.nil();
935 CHARACTER_LITERAL9
= (Token
) match(input
, CHARACTER_LITERAL
,
936 FOLLOW_CHARACTER_LITERAL_in_constant444
);
940 if (state
.backtracking
== 0) {
941 CHARACTER_LITERAL9_tree
= (CommonTree
) adaptor
942 .create(CHARACTER_LITERAL9
);
943 adaptor
.addChild(root_0
, CHARACTER_LITERAL9_tree
);
950 retval
.stop
= input
.LT(-1);
952 if (state
.backtracking
== 0) {
954 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
955 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
958 if (state
.backtracking
== 0) {
965 catch (RecognitionException e
) {
972 // $ANTLR end "constant"
974 public static class primaryExpression_return
extends ParserRuleReturnScope
{
978 public Object
getTree() {
983 // $ANTLR start "primaryExpression"
984 // Grammar/CTFParser.g:242:1: primaryExpression : ( ( IDENTIFIER )=>
985 // IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=>
986 // ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | ( STRING_LITERAL
987 // )=> STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
989 public final CTFParser
.primaryExpression_return
primaryExpression()
990 throws RecognitionException
{
991 CTFParser
.primaryExpression_return retval
= new CTFParser
.primaryExpression_return();
992 retval
.start
= input
.LT(1);
994 CommonTree root_0
= null;
996 Token IDENTIFIER10
= null;
997 Token STRING_LITERAL12
= null;
998 CTFParser
.ctfKeyword_return ctfKeyword11
= null;
1000 CTFParser
.constant_return constant13
= null;
1002 CommonTree IDENTIFIER10_tree
= null;
1003 CommonTree STRING_LITERAL12_tree
= null;
1004 RewriteRuleTokenStream stream_STRING_LITERAL
= new RewriteRuleTokenStream(
1005 adaptor
, "token STRING_LITERAL");
1006 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
1007 adaptor
, "token IDENTIFIER");
1008 RewriteRuleSubtreeStream stream_ctfKeyword
= new RewriteRuleSubtreeStream(
1009 adaptor
, "rule ctfKeyword");
1011 enter("primaryExpression");
1014 // Grammar/CTFParser.g:249:1: ( ( IDENTIFIER )=> IDENTIFIER -> ^(
1015 // UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=>
1016 // ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | (
1017 // STRING_LITERAL )=> STRING_LITERAL -> ^(
1018 // UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | constant )
1020 switch (input
.LA(1)) {
1022 int LA5_1
= input
.LA(2);
1024 if ((synpred1_CTFParser())) {
1026 } else if ((true)) {
1029 if (state
.backtracking
> 0) {
1030 state
.failed
= true;
1033 NoViableAltException nvae
= new NoViableAltException("", 5,
1044 int LA5_2
= input
.LA(2);
1046 if ((synpred2_CTFParser())) {
1048 } else if ((true)) {
1051 if (state
.backtracking
> 0) {
1052 state
.failed
= true;
1055 NoViableAltException nvae
= new NoViableAltException("", 5,
1062 case STRING_LITERAL
: {
1063 int LA5_3
= input
.LA(2);
1065 if ((synpred3_CTFParser())) {
1067 } else if ((true)) {
1070 if (state
.backtracking
> 0) {
1071 state
.failed
= true;
1074 NoViableAltException nvae
= new NoViableAltException("", 5,
1083 case DECIMAL_LITERAL
:
1085 case CHARACTER_LITERAL
: {
1090 if (state
.backtracking
> 0) {
1091 state
.failed
= true;
1094 NoViableAltException nvae
= new NoViableAltException("", 5, 0,
1102 // Grammar/CTFParser.g:250:5: ( IDENTIFIER )=> IDENTIFIER
1104 IDENTIFIER10
= (Token
) match(input
, IDENTIFIER
,
1105 FOLLOW_IDENTIFIER_in_primaryExpression475
);
1109 if (state
.backtracking
== 0) {
1110 stream_IDENTIFIER
.add(IDENTIFIER10
);
1113 if (state
.backtracking
== 0) {
1114 debug_print("IDENTIFIER: "
1115 + (IDENTIFIER10
!= null ? IDENTIFIER10
.getText()
1120 // elements: IDENTIFIER
1122 // rule labels: retval
1123 // token list labels:
1124 // rule list labels:
1126 if (state
.backtracking
== 0) {
1127 retval
.tree
= root_0
;
1128 // RewriteRuleSubtreeStream stream_retval =
1129 new RewriteRuleSubtreeStream(
1130 adaptor
, "rule retval",
1131 retval
!= null ? retval
.tree
: null);
1133 root_0
= (CommonTree
) adaptor
.nil();
1134 // 250:83: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER )
1136 // Grammar/CTFParser.g:250:86: ^(
1137 // UNARY_EXPRESSION_STRING IDENTIFIER )
1139 CommonTree root_1
= (CommonTree
) adaptor
.nil();
1140 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
1141 .create(UNARY_EXPRESSION_STRING
,
1142 "UNARY_EXPRESSION_STRING"), root_1
);
1144 adaptor
.addChild(root_1
,
1145 stream_IDENTIFIER
.nextNode());
1147 adaptor
.addChild(root_0
, root_1
);
1152 retval
.tree
= root_0
;
1157 // Grammar/CTFParser.g:251:5: ( ctfKeyword )=> ctfKeyword
1159 pushFollow(FOLLOW_ctfKeyword_in_primaryExpression497
);
1160 ctfKeyword11
= ctfKeyword();
1166 if (state
.backtracking
== 0) {
1167 stream_ctfKeyword
.add(ctfKeyword11
.getTree());
1171 // elements: ctfKeyword
1173 // rule labels: retval
1174 // token list labels:
1175 // rule list labels:
1177 if (state
.backtracking
== 0) {
1178 retval
.tree
= root_0
;
1179 // RewriteRuleSubtreeStream stream_retval =
1180 new RewriteRuleSubtreeStream(
1181 adaptor
, "rule retval",
1182 retval
!= null ? retval
.tree
: null);
1184 root_0
= (CommonTree
) adaptor
.nil();
1185 // 251:32: -> ^( UNARY_EXPRESSION_STRING ctfKeyword )
1187 // Grammar/CTFParser.g:251:35: ^(
1188 // UNARY_EXPRESSION_STRING ctfKeyword )
1190 CommonTree root_1
= (CommonTree
) adaptor
.nil();
1191 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
1192 .create(UNARY_EXPRESSION_STRING
,
1193 "UNARY_EXPRESSION_STRING"), root_1
);
1195 adaptor
.addChild(root_1
,
1196 stream_ctfKeyword
.nextTree());
1198 adaptor
.addChild(root_0
, root_1
);
1203 retval
.tree
= root_0
;
1208 // Grammar/CTFParser.g:252:5: ( STRING_LITERAL )=> STRING_LITERAL
1210 STRING_LITERAL12
= (Token
) match(input
, STRING_LITERAL
,
1211 FOLLOW_STRING_LITERAL_in_primaryExpression517
);
1215 if (state
.backtracking
== 0) {
1216 stream_STRING_LITERAL
.add(STRING_LITERAL12
);
1219 if (state
.backtracking
== 0) {
1220 debug_print("STRING_LITERAL: "
1221 + (STRING_LITERAL12
!= null ? STRING_LITERAL12
1222 .getText() : null));
1226 // elements: STRING_LITERAL
1228 // rule labels: retval
1229 // token list labels:
1230 // rule list labels:
1232 if (state
.backtracking
== 0) {
1233 retval
.tree
= root_0
;
1234 new RewriteRuleSubtreeStream(
1235 adaptor
, "rule retval",
1236 retval
!= null ? retval
.tree
: null);
1238 root_0
= (CommonTree
) adaptor
.nil();
1239 // 252:99: -> ^( UNARY_EXPRESSION_STRING_QUOTES
1242 // Grammar/CTFParser.g:252:102: ^(
1243 // UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1245 CommonTree root_1
= (CommonTree
) adaptor
.nil();
1246 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
1247 .create(UNARY_EXPRESSION_STRING_QUOTES
,
1248 "UNARY_EXPRESSION_STRING_QUOTES"),
1251 adaptor
.addChild(root_1
,
1252 stream_STRING_LITERAL
.nextNode());
1254 adaptor
.addChild(root_0
, root_1
);
1259 retval
.tree
= root_0
;
1264 // Grammar/CTFParser.g:254:5: constant
1266 root_0
= (CommonTree
) adaptor
.nil();
1268 pushFollow(FOLLOW_constant_in_primaryExpression538
);
1269 constant13
= constant();
1275 if (state
.backtracking
== 0) {
1276 adaptor
.addChild(root_0
, constant13
.getTree());
1283 retval
.stop
= input
.LT(-1);
1285 if (state
.backtracking
== 0) {
1287 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
1288 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
1291 if (state
.backtracking
== 0) {
1293 exit("primaryExpression");
1298 catch (RecognitionException e
) {
1304 // $ANTLR end "primaryExpression"
1306 public static class reference_return
extends ParserRuleReturnScope
{
1310 public Object
getTree() {
1315 // $ANTLR start "reference"
1316 // Grammar/CTFParser.g:257:1: reference : (ref= DOT | ref= ARROW )
1317 // IDENTIFIER -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) ;
1318 public final CTFParser
.reference_return
reference()
1319 throws RecognitionException
{
1320 CTFParser
.reference_return retval
= new CTFParser
.reference_return();
1321 retval
.start
= input
.LT(1);
1323 CommonTree root_0
= null;
1326 Token IDENTIFIER14
= null;
1328 CommonTree ref_tree
= null;
1329 CommonTree IDENTIFIER14_tree
= null;
1330 RewriteRuleTokenStream stream_ARROW
= new RewriteRuleTokenStream(
1331 adaptor
, "token ARROW");
1332 RewriteRuleTokenStream stream_DOT
= new RewriteRuleTokenStream(adaptor
,
1334 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
1335 adaptor
, "token IDENTIFIER");
1340 // Grammar/CTFParser.g:265:1: ( (ref= DOT | ref= ARROW ) IDENTIFIER
1341 // -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) )
1342 // Grammar/CTFParser.g:266:3: (ref= DOT | ref= ARROW ) IDENTIFIER
1344 // Grammar/CTFParser.g:266:3: (ref= DOT | ref= ARROW )
1346 int LA6_0
= input
.LA(1);
1348 if ((LA6_0
== DOT
)) {
1350 } else if ((LA6_0
== ARROW
)) {
1353 if (state
.backtracking
> 0) {
1354 state
.failed
= true;
1357 NoViableAltException nvae
= new NoViableAltException("", 6,
1364 // Grammar/CTFParser.g:266:4: ref= DOT
1366 ref
= (Token
) match(input
, DOT
, FOLLOW_DOT_in_reference564
);
1370 if (state
.backtracking
== 0) {
1371 stream_DOT
.add(ref
);
1377 // Grammar/CTFParser.g:266:14: ref= ARROW
1379 ref
= (Token
) match(input
, ARROW
,
1380 FOLLOW_ARROW_in_reference570
);
1384 if (state
.backtracking
== 0) {
1385 stream_ARROW
.add(ref
);
1393 IDENTIFIER14
= (Token
) match(input
, IDENTIFIER
,
1394 FOLLOW_IDENTIFIER_in_reference573
);
1398 if (state
.backtracking
== 0) {
1399 stream_IDENTIFIER
.add(IDENTIFIER14
);
1403 // elements: IDENTIFIER, ref
1404 // token labels: ref
1405 // rule labels: retval
1406 // token list labels:
1407 // rule list labels:
1409 if (state
.backtracking
== 0) {
1410 retval
.tree
= root_0
;
1411 RewriteRuleTokenStream stream_ref
= new RewriteRuleTokenStream(
1412 adaptor
, "token ref", ref
);
1413 // RewriteRuleSubtreeStream stream_retval =
1414 new RewriteRuleSubtreeStream(
1415 adaptor
, "rule retval",
1416 retval
!= null ? retval
.tree
: null);
1418 root_0
= (CommonTree
) adaptor
.nil();
1419 // 266:36: -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER
1422 // Grammar/CTFParser.g:266:39: ^( $ref ^(
1423 // UNARY_EXPRESSION_STRING IDENTIFIER ) )
1425 CommonTree root_1
= (CommonTree
) adaptor
.nil();
1426 root_1
= (CommonTree
) adaptor
.becomeRoot(
1427 stream_ref
.nextNode(), root_1
);
1429 // Grammar/CTFParser.g:266:46: ^(
1430 // UNARY_EXPRESSION_STRING IDENTIFIER )
1432 CommonTree root_2
= (CommonTree
) adaptor
.nil();
1433 root_2
= (CommonTree
) adaptor
.becomeRoot(
1434 adaptor
.create(UNARY_EXPRESSION_STRING
,
1435 "UNARY_EXPRESSION_STRING"),
1438 adaptor
.addChild(root_2
,
1439 stream_IDENTIFIER
.nextNode());
1441 adaptor
.addChild(root_1
, root_2
);
1444 adaptor
.addChild(root_0
, root_1
);
1449 retval
.tree
= root_0
;
1453 retval
.stop
= input
.LT(-1);
1455 if (state
.backtracking
== 0) {
1457 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
1458 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
1461 if (state
.backtracking
== 0) {
1463 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
1469 catch (RecognitionException e
) {
1475 // $ANTLR end "reference"
1477 public static class postfixExpressionSuffix_return
extends
1478 ParserRuleReturnScope
{
1482 public Object
getTree() {
1487 // $ANTLR start "postfixExpressionSuffix"
1488 // Grammar/CTFParser.g:269:1: postfixExpressionSuffix : ( ( OPENBRAC
1489 // unaryExpression CLOSEBRAC ) | reference );
1490 public final CTFParser
.postfixExpressionSuffix_return
postfixExpressionSuffix()
1491 throws RecognitionException
{
1492 CTFParser
.postfixExpressionSuffix_return retval
= new CTFParser
.postfixExpressionSuffix_return();
1493 retval
.start
= input
.LT(1);
1495 CommonTree root_0
= null;
1497 Token OPENBRAC15
= null;
1498 Token CLOSEBRAC17
= null;
1499 CTFParser
.unaryExpression_return unaryExpression16
= null;
1501 CTFParser
.reference_return reference18
= null;
1503 CommonTree OPENBRAC15_tree
= null;
1504 CommonTree CLOSEBRAC17_tree
= null;
1506 enter("postfixExpressionSuffix");
1509 // Grammar/CTFParser.g:276:1: ( ( OPENBRAC unaryExpression CLOSEBRAC
1512 int LA7_0
= input
.LA(1);
1514 if ((LA7_0
== OPENBRAC
)) {
1516 } else if ((((LA7_0
>= ARROW
) && (LA7_0
<= DOT
)))) {
1519 if (state
.backtracking
> 0) {
1520 state
.failed
= true;
1523 NoViableAltException nvae
= new NoViableAltException("", 7, 0,
1530 // Grammar/CTFParser.g:277:5: ( OPENBRAC unaryExpression CLOSEBRAC )
1532 root_0
= (CommonTree
) adaptor
.nil();
1534 // Grammar/CTFParser.g:277:5: ( OPENBRAC unaryExpression
1536 // Grammar/CTFParser.g:277:6: OPENBRAC unaryExpression CLOSEBRAC
1538 OPENBRAC15
= (Token
) match(input
, OPENBRAC
,
1539 FOLLOW_OPENBRAC_in_postfixExpressionSuffix612
);
1543 if (state
.backtracking
== 0) {
1544 OPENBRAC15_tree
= (CommonTree
) adaptor
1545 .create(OPENBRAC15
);
1546 adaptor
.addChild(root_0
, OPENBRAC15_tree
);
1548 pushFollow(FOLLOW_unaryExpression_in_postfixExpressionSuffix614
);
1549 unaryExpression16
= unaryExpression();
1555 if (state
.backtracking
== 0) {
1556 adaptor
.addChild(root_0
, unaryExpression16
.getTree());
1558 // CLOSEBRAC17 = (Token)
1559 match(input
, CLOSEBRAC
,
1560 FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix616
);
1570 // Grammar/CTFParser.g:278:5: reference
1572 root_0
= (CommonTree
) adaptor
.nil();
1574 pushFollow(FOLLOW_reference_in_postfixExpressionSuffix624
);
1575 reference18
= reference();
1581 if (state
.backtracking
== 0) {
1582 adaptor
.addChild(root_0
, reference18
.getTree());
1589 retval
.stop
= input
.LT(-1);
1591 if (state
.backtracking
== 0) {
1593 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
1594 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
1597 if (state
.backtracking
== 0) {
1599 exit("postfixExpressionSuffix");
1604 catch (RecognitionException e
) {
1610 // $ANTLR end "postfixExpressionSuffix"
1612 public static class postfixExpression_return
extends ParserRuleReturnScope
{
1616 public Object
getTree() {
1621 // $ANTLR start "postfixExpression"
1622 // Grammar/CTFParser.g:281:1: postfixExpression : ( ( primaryExpression ) (
1623 // postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) (
1624 // postfixExpressionSuffix )+ ) );
1625 public final CTFParser
.postfixExpression_return
postfixExpression()
1626 throws RecognitionException
{
1627 CTFParser
.postfixExpression_return retval
= new CTFParser
.postfixExpression_return();
1628 retval
.start
= input
.LT(1);
1630 CommonTree root_0
= null;
1632 CTFParser
.primaryExpression_return primaryExpression19
= null;
1634 CTFParser
.postfixExpressionSuffix_return postfixExpressionSuffix20
= null;
1636 CTFParser
.ctfSpecifierHead_return ctfSpecifierHead21
= null;
1638 CTFParser
.postfixExpressionSuffix_return postfixExpressionSuffix22
= null;
1640 enter("postfixExpression");
1643 // Grammar/CTFParser.g:288:1: ( ( primaryExpression ) (
1644 // postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) (
1645 // postfixExpressionSuffix )+ ) )
1647 alt10
= dfa10
.predict(input
);
1650 // Grammar/CTFParser.g:289:3: ( primaryExpression ) (
1651 // postfixExpressionSuffix )*
1653 root_0
= (CommonTree
) adaptor
.nil();
1655 // Grammar/CTFParser.g:289:3: ( primaryExpression )
1656 // Grammar/CTFParser.g:289:4: primaryExpression
1658 pushFollow(FOLLOW_primaryExpression_in_postfixExpression648
);
1659 primaryExpression19
= primaryExpression();
1665 if (state
.backtracking
== 0) {
1666 adaptor
.addChild(root_0
, primaryExpression19
.getTree());
1671 // Grammar/CTFParser.g:289:23: ( postfixExpressionSuffix )*
1674 int LA8_0
= input
.LA(1);
1676 if (((LA8_0
== OPENBRAC
) || ((LA8_0
>= ARROW
) && (LA8_0
<= DOT
)))) {
1682 // Grammar/CTFParser.g:289:24: postfixExpressionSuffix
1684 pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression652
);
1685 postfixExpressionSuffix20
= postfixExpressionSuffix();
1691 if (state
.backtracking
== 0) {
1692 adaptor
.addChild(root_0
,
1693 postfixExpressionSuffix20
.getTree());
1707 // Grammar/CTFParser.g:290:3: ( ( ctfSpecifierHead ) (
1708 // postfixExpressionSuffix )+ )
1710 root_0
= (CommonTree
) adaptor
.nil();
1712 // Grammar/CTFParser.g:290:3: ( ( ctfSpecifierHead ) (
1713 // postfixExpressionSuffix )+ )
1714 // Grammar/CTFParser.g:290:4: ( ctfSpecifierHead ) (
1715 // postfixExpressionSuffix )+
1717 // Grammar/CTFParser.g:290:4: ( ctfSpecifierHead )
1718 // Grammar/CTFParser.g:290:5: ctfSpecifierHead
1720 pushFollow(FOLLOW_ctfSpecifierHead_in_postfixExpression661
);
1721 ctfSpecifierHead21
= ctfSpecifierHead();
1727 if (state
.backtracking
== 0) {
1728 adaptor
.addChild(root_0
,
1729 ctfSpecifierHead21
.getTree());
1734 // Grammar/CTFParser.g:290:24: ( postfixExpressionSuffix )+
1738 int LA9_0
= input
.LA(1);
1740 if (((LA9_0
== OPENBRAC
) || ((LA9_0
>= ARROW
) && (LA9_0
<= DOT
)))) {
1746 // Grammar/CTFParser.g:290:25: postfixExpressionSuffix
1748 pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression666
);
1749 postfixExpressionSuffix22
= postfixExpressionSuffix();
1755 if (state
.backtracking
== 0) {
1756 adaptor
.addChild(root_0
,
1757 postfixExpressionSuffix22
.getTree());
1767 if (state
.backtracking
> 0) {
1768 state
.failed
= true;
1771 EarlyExitException eee
= new EarlyExitException(9,
1784 retval
.stop
= input
.LT(-1);
1786 if (state
.backtracking
== 0) {
1788 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
1789 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
1792 if (state
.backtracking
== 0) {
1794 exit("postfixExpression");
1799 catch (RecognitionException e
) {
1805 // $ANTLR end "postfixExpression"
1807 public static class unaryExpression_return
extends ParserRuleReturnScope
{
1811 public Object
getTree() {
1816 // $ANTLR start "unaryExpression"
1817 // Grammar/CTFParser.g:293:1: unaryExpression : postfixExpression ;
1818 public final CTFParser
.unaryExpression_return
unaryExpression()
1819 throws RecognitionException
{
1820 CTFParser
.unaryExpression_return retval
= new CTFParser
.unaryExpression_return();
1821 retval
.start
= input
.LT(1);
1823 CommonTree root_0
= null;
1825 CTFParser
.postfixExpression_return postfixExpression23
= null;
1827 enter("unaryExpression");
1830 // Grammar/CTFParser.g:300:1: ( postfixExpression )
1831 // Grammar/CTFParser.g:303:5: postfixExpression
1833 root_0
= (CommonTree
) adaptor
.nil();
1835 pushFollow(FOLLOW_postfixExpression_in_unaryExpression700
);
1836 postfixExpression23
= postfixExpression();
1842 if (state
.backtracking
== 0) {
1843 adaptor
.addChild(root_0
, postfixExpression23
.getTree());
1848 retval
.stop
= input
.LT(-1);
1850 if (state
.backtracking
== 0) {
1852 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
1853 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
1856 if (state
.backtracking
== 0) {
1858 exit("unaryExpression");
1863 catch (RecognitionException e
) {
1869 // $ANTLR end "unaryExpression"
1871 public static class enumConstant_return
extends ParserRuleReturnScope
{
1875 public Object
getTree() {
1880 // $ANTLR start "enumConstant"
1881 // Grammar/CTFParser.g:306:1: enumConstant : ( STRING_LITERAL -> ^(
1882 // UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^(
1883 // UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^(
1884 // UNARY_EXPRESSION_STRING ctfKeyword ) );
1885 public final CTFParser
.enumConstant_return
enumConstant()
1886 throws RecognitionException
{
1887 CTFParser
.enumConstant_return retval
= new CTFParser
.enumConstant_return();
1888 retval
.start
= input
.LT(1);
1890 CommonTree root_0
= null;
1892 Token STRING_LITERAL24
= null;
1893 Token IDENTIFIER25
= null;
1894 CTFParser
.ctfKeyword_return ctfKeyword26
= null;
1896 CommonTree STRING_LITERAL24_tree
= null;
1897 CommonTree IDENTIFIER25_tree
= null;
1898 RewriteRuleTokenStream stream_STRING_LITERAL
= new RewriteRuleTokenStream(
1899 adaptor
, "token STRING_LITERAL");
1900 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
1901 adaptor
, "token IDENTIFIER");
1902 RewriteRuleSubtreeStream stream_ctfKeyword
= new RewriteRuleSubtreeStream(
1903 adaptor
, "rule ctfKeyword");
1905 enter("enumConstant");
1908 // Grammar/CTFParser.g:314:1: ( STRING_LITERAL -> ^(
1909 // UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER ->
1910 // ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^(
1911 // UNARY_EXPRESSION_STRING ctfKeyword ) )
1913 switch (input
.LA(1)) {
1914 case STRING_LITERAL
: {
1930 if (state
.backtracking
> 0) {
1931 state
.failed
= true;
1934 NoViableAltException nvae
= new NoViableAltException("", 11, 0,
1942 // Grammar/CTFParser.g:315:5: STRING_LITERAL
1944 STRING_LITERAL24
= (Token
) match(input
, STRING_LITERAL
,
1945 FOLLOW_STRING_LITERAL_in_enumConstant725
);
1949 if (state
.backtracking
== 0) {
1950 stream_STRING_LITERAL
.add(STRING_LITERAL24
);
1954 // elements: STRING_LITERAL
1956 // rule labels: retval
1957 // token list labels:
1958 // rule list labels:
1960 if (state
.backtracking
== 0) {
1961 retval
.tree
= root_0
;
1962 // RewriteRuleSubtreeStream stream_retval =
1963 new RewriteRuleSubtreeStream(
1964 adaptor
, "rule retval",
1965 retval
!= null ? retval
.tree
: null);
1967 root_0
= (CommonTree
) adaptor
.nil();
1968 // 315:20: -> ^( UNARY_EXPRESSION_STRING_QUOTES
1971 // Grammar/CTFParser.g:315:23: ^(
1972 // UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL )
1974 CommonTree root_1
= (CommonTree
) adaptor
.nil();
1975 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
1976 .create(UNARY_EXPRESSION_STRING_QUOTES
,
1977 "UNARY_EXPRESSION_STRING_QUOTES"),
1980 adaptor
.addChild(root_1
,
1981 stream_STRING_LITERAL
.nextNode());
1983 adaptor
.addChild(root_0
, root_1
);
1988 retval
.tree
= root_0
;
1993 // Grammar/CTFParser.g:316:7: IDENTIFIER
1995 IDENTIFIER25
= (Token
) match(input
, IDENTIFIER
,
1996 FOLLOW_IDENTIFIER_in_enumConstant741
);
2000 if (state
.backtracking
== 0) {
2001 stream_IDENTIFIER
.add(IDENTIFIER25
);
2005 // elements: IDENTIFIER
2007 // rule labels: retval
2008 // token list labels:
2009 // rule list labels:
2011 if (state
.backtracking
== 0) {
2012 retval
.tree
= root_0
;
2013 // RewriteRuleSubtreeStream stream_retval =
2014 new RewriteRuleSubtreeStream(
2015 adaptor
, "rule retval",
2016 retval
!= null ? retval
.tree
: null);
2018 root_0
= (CommonTree
) adaptor
.nil();
2019 // 316:18: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER )
2021 // Grammar/CTFParser.g:316:21: ^(
2022 // UNARY_EXPRESSION_STRING IDENTIFIER )
2024 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2025 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
2026 .create(UNARY_EXPRESSION_STRING
,
2027 "UNARY_EXPRESSION_STRING"), root_1
);
2029 adaptor
.addChild(root_1
,
2030 stream_IDENTIFIER
.nextNode());
2032 adaptor
.addChild(root_0
, root_1
);
2037 retval
.tree
= root_0
;
2042 // Grammar/CTFParser.g:317:7: ctfKeyword
2044 pushFollow(FOLLOW_ctfKeyword_in_enumConstant757
);
2045 ctfKeyword26
= ctfKeyword();
2051 if (state
.backtracking
== 0) {
2052 stream_ctfKeyword
.add(ctfKeyword26
.getTree());
2056 // elements: ctfKeyword
2058 // rule labels: retval
2059 // token list labels:
2060 // rule list labels:
2062 if (state
.backtracking
== 0) {
2063 retval
.tree
= root_0
;
2064 // RewriteRuleSubtreeStream stream_retval =
2065 new RewriteRuleSubtreeStream(
2066 adaptor
, "rule retval",
2067 retval
!= null ? retval
.tree
: null);
2069 root_0
= (CommonTree
) adaptor
.nil();
2070 // 317:18: -> ^( UNARY_EXPRESSION_STRING ctfKeyword )
2072 // Grammar/CTFParser.g:317:21: ^(
2073 // UNARY_EXPRESSION_STRING ctfKeyword )
2075 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2076 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
2077 .create(UNARY_EXPRESSION_STRING
,
2078 "UNARY_EXPRESSION_STRING"), root_1
);
2080 adaptor
.addChild(root_1
,
2081 stream_ctfKeyword
.nextTree());
2083 adaptor
.addChild(root_0
, root_1
);
2088 retval
.tree
= root_0
;
2094 retval
.stop
= input
.LT(-1);
2096 if (state
.backtracking
== 0) {
2098 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2099 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2102 if (state
.backtracking
== 0) {
2104 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
2105 exit("enumConstant");
2110 catch (RecognitionException e
) {
2116 // $ANTLR end "enumConstant"
2118 public static class declaration_return
extends ParserRuleReturnScope
{
2122 public Object
getTree() {
2127 // $ANTLR start "declaration"
2128 // Grammar/CTFParser.g:321:1: declaration : ( ( declarationSpecifiers (
2129 // declaratorList )? TERM ) -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF
2130 // declaratorList declarationSpecifiers ) ) -> ^( DECLARATION
2131 // declarationSpecifiers ( declaratorList )? ) | ( ctfSpecifier TERM ) );
2132 public final CTFParser
.declaration_return
declaration()
2133 throws RecognitionException
{
2134 CTFParser
.declaration_return retval
= new CTFParser
.declaration_return();
2135 retval
.start
= input
.LT(1);
2137 CommonTree root_0
= null;
2139 Token TERM29
= null;
2140 Token TERM31
= null;
2141 CTFParser
.declarationSpecifiers_return declarationSpecifiers27
= null;
2143 CTFParser
.declaratorList_return declaratorList28
= null;
2145 CTFParser
.ctfSpecifier_return ctfSpecifier30
= null;
2147 CommonTree TERM29_tree
= null;
2148 CommonTree TERM31_tree
= null;
2149 RewriteRuleTokenStream stream_TERM
= new RewriteRuleTokenStream(
2150 adaptor
, "token TERM");
2151 RewriteRuleSubtreeStream stream_declaratorList
= new RewriteRuleSubtreeStream(
2152 adaptor
, "rule declaratorList");
2153 RewriteRuleSubtreeStream stream_declarationSpecifiers
= new RewriteRuleSubtreeStream(
2154 adaptor
, "rule declarationSpecifiers");
2156 enter("declaration");
2159 // Grammar/CTFParser.g:330:1: ( ( declarationSpecifiers (
2160 // declaratorList )? TERM ) -> {inTypedef()}? ^( DECLARATION ^(
2161 // TYPEDEF declaratorList declarationSpecifiers ) ) -> ^(
2162 // DECLARATION declarationSpecifiers ( declaratorList )? ) | (
2163 // ctfSpecifier TERM ) )
2165 int LA13_0
= input
.LA(1);
2167 if ((((LA13_0
>= CONSTTOK
) && (LA13_0
<= ENUMTOK
))
2168 || ((LA13_0
>= FLOATINGPOINTTOK
) && (LA13_0
<= SIGNEDTOK
))
2169 || ((LA13_0
>= STRINGTOK
) && (LA13_0
<= STRUCTTOK
)) || ((LA13_0
>= TYPEDEFTOK
) && (LA13_0
<= IMAGINARYTOK
)))) {
2171 } else if ((LA13_0
== IDENTIFIER
)
2172 && ((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
2174 } else if (((LA13_0
== EVENTTOK
) || (LA13_0
== STREAMTOK
)
2175 || ((LA13_0
>= TRACETOK
) && (LA13_0
<= TYPEALIASTOK
)) || ((LA13_0
>= ENVTOK
) && (LA13_0
<= CLOCKTOK
)))) {
2178 if (state
.backtracking
> 0) {
2179 state
.failed
= true;
2182 NoViableAltException nvae
= new NoViableAltException("", 13, 0,
2189 // Grammar/CTFParser.g:331:3: ( declarationSpecifiers (
2190 // declaratorList )? TERM )
2192 // Grammar/CTFParser.g:331:3: ( declarationSpecifiers (
2193 // declaratorList )? TERM )
2194 // Grammar/CTFParser.g:331:4: declarationSpecifiers (
2195 // declaratorList )? TERM
2197 pushFollow(FOLLOW_declarationSpecifiers_in_declaration790
);
2198 declarationSpecifiers27
= declarationSpecifiers();
2204 if (state
.backtracking
== 0) {
2205 stream_declarationSpecifiers
2206 .add(declarationSpecifiers27
.getTree());
2208 // Grammar/CTFParser.g:331:26: ( declaratorList )?
2210 int LA12_0
= input
.LA(1);
2212 if (((LA12_0
== POINTER
) || (LA12_0
== IDENTIFIER
))) {
2217 // Grammar/CTFParser.g:331:26: declaratorList
2219 pushFollow(FOLLOW_declaratorList_in_declaration792
);
2220 declaratorList28
= declaratorList();
2226 if (state
.backtracking
== 0) {
2227 stream_declaratorList
.add(declaratorList28
2236 TERM29
= (Token
) match(input
, TERM
,
2237 FOLLOW_TERM_in_declaration795
);
2241 if (state
.backtracking
== 0) {
2242 stream_TERM
.add(TERM29
);
2248 // elements: declaratorList, declaratorList,
2249 // declarationSpecifiers, declarationSpecifiers
2251 // rule labels: retval
2252 // token list labels:
2253 // rule list labels:
2255 if (state
.backtracking
== 0) {
2256 retval
.tree
= root_0
;
2257 // RewriteRuleSubtreeStream stream_retval =
2258 new RewriteRuleSubtreeStream(
2259 adaptor
, "rule retval",
2260 retval
!= null ? retval
.tree
: null);
2262 root_0
= (CommonTree
) adaptor
.nil();
2263 // 334:3: -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF
2264 // declaratorList declarationSpecifiers ) )
2266 // Grammar/CTFParser.g:334:21: ^( DECLARATION ^( TYPEDEF
2267 // declaratorList declarationSpecifiers ) )
2269 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2270 root_1
= (CommonTree
) adaptor
.becomeRoot(
2271 adaptor
.create(DECLARATION
, "DECLARATION"),
2274 // Grammar/CTFParser.g:334:35: ^( TYPEDEF
2275 // declaratorList declarationSpecifiers )
2277 CommonTree root_2
= (CommonTree
) adaptor
.nil();
2278 root_2
= (CommonTree
) adaptor
.becomeRoot(
2279 adaptor
.create(TYPEDEF
, "TYPEDEF"),
2282 adaptor
.addChild(root_2
,
2283 stream_declaratorList
.nextTree());
2284 adaptor
.addChild(root_2
,
2285 stream_declarationSpecifiers
.nextTree());
2287 adaptor
.addChild(root_1
, root_2
);
2290 adaptor
.addChild(root_0
, root_1
);
2293 } else // 335:3: -> ^( DECLARATION declarationSpecifiers (
2294 // declaratorList )? )
2296 // Grammar/CTFParser.g:335:6: ^( DECLARATION
2297 // declarationSpecifiers ( declaratorList )? )
2299 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2300 root_1
= (CommonTree
) adaptor
.becomeRoot(
2301 adaptor
.create(DECLARATION
, "DECLARATION"),
2304 adaptor
.addChild(root_1
,
2305 stream_declarationSpecifiers
.nextTree());
2306 // Grammar/CTFParser.g:335:42: ( declaratorList )?
2307 if (stream_declaratorList
.hasNext()) {
2308 adaptor
.addChild(root_1
,
2309 stream_declaratorList
.nextTree());
2312 stream_declaratorList
.reset();
2314 adaptor
.addChild(root_0
, root_1
);
2319 retval
.tree
= root_0
;
2324 // Grammar/CTFParser.g:337:5: ( ctfSpecifier TERM )
2326 root_0
= (CommonTree
) adaptor
.nil();
2328 // Grammar/CTFParser.g:337:5: ( ctfSpecifier TERM )
2329 // Grammar/CTFParser.g:337:6: ctfSpecifier TERM
2331 pushFollow(FOLLOW_ctfSpecifier_in_declaration844
);
2332 ctfSpecifier30
= ctfSpecifier();
2338 if (state
.backtracking
== 0) {
2339 adaptor
.addChild(root_0
, ctfSpecifier30
.getTree());
2343 FOLLOW_TERM_in_declaration846
);
2354 retval
.stop
= input
.LT(-1);
2356 if (state
.backtracking
== 0) {
2358 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2359 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2362 if (state
.backtracking
== 0) {
2364 exit("declaration");
2372 catch (RecognitionException e
) {
2378 // $ANTLR end "declaration"
2380 public static class declarationSpecifiers_return
extends
2381 ParserRuleReturnScope
{
2385 public Object
getTree() {
2390 // $ANTLR start "declarationSpecifiers"
2391 // Grammar/CTFParser.g:340:1: declarationSpecifiers : (
2392 // storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^(
2393 // TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ;
2394 public final CTFParser
.declarationSpecifiers_return
declarationSpecifiers()
2395 throws RecognitionException
{
2396 CTFParser
.declarationSpecifiers_return retval
= new CTFParser
.declarationSpecifiers_return();
2397 retval
.start
= input
.LT(1);
2399 CommonTree root_0
= null;
2401 CTFParser
.storageClassSpecifier_return storageClassSpecifier32
= null;
2403 CTFParser
.typeQualifier_return typeQualifier33
= null;
2405 CTFParser
.typeSpecifier_return typeSpecifier34
= null;
2407 RewriteRuleSubtreeStream stream_typeSpecifier
= new RewriteRuleSubtreeStream(
2408 adaptor
, "rule typeSpecifier");
2409 RewriteRuleSubtreeStream stream_typeQualifier
= new RewriteRuleSubtreeStream(
2410 adaptor
, "rule typeQualifier");
2411 RewriteRuleSubtreeStream stream_storageClassSpecifier
= new RewriteRuleSubtreeStream(
2412 adaptor
, "rule storageClassSpecifier");
2414 enter("declarationSpecifiers");
2417 // Grammar/CTFParser.g:348:1: ( ( storageClassSpecifier |
2418 // typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST (
2419 // typeQualifier )* ( typeSpecifier )* ) )
2420 // Grammar/CTFParser.g:349:3: ( storageClassSpecifier |
2421 // typeQualifier | typeSpecifier )+
2423 // Grammar/CTFParser.g:349:3: ( storageClassSpecifier |
2424 // typeQualifier | typeSpecifier )+
2428 switch (input
.LA(1)) {
2430 int LA14_2
= input
.LA(2);
2432 if (((inTypealiasAlias() || isTypeName(input
.LT(1)
2450 case FLOATINGPOINTTOK
:
2464 case IMAGINARYTOK
: {
2473 // Grammar/CTFParser.g:352:6: storageClassSpecifier
2475 pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifiers891
);
2476 storageClassSpecifier32
= storageClassSpecifier();
2482 if (state
.backtracking
== 0) {
2483 stream_storageClassSpecifier
2484 .add(storageClassSpecifier32
.getTree());
2490 // Grammar/CTFParser.g:353:6: typeQualifier
2492 pushFollow(FOLLOW_typeQualifier_in_declarationSpecifiers898
);
2493 typeQualifier33
= typeQualifier();
2499 if (state
.backtracking
== 0) {
2500 stream_typeQualifier
.add(typeQualifier33
.getTree());
2506 // Grammar/CTFParser.g:354:6: typeSpecifier
2508 pushFollow(FOLLOW_typeSpecifier_in_declarationSpecifiers905
);
2509 typeSpecifier34
= typeSpecifier();
2515 if (state
.backtracking
== 0) {
2516 stream_typeSpecifier
.add(typeSpecifier34
.getTree());
2526 if (state
.backtracking
> 0) {
2527 state
.failed
= true;
2530 EarlyExitException eee
= new EarlyExitException(14,
2538 // elements: typeQualifier, typeSpecifier
2540 // rule labels: retval
2541 // token list labels:
2542 // rule list labels:
2544 if (state
.backtracking
== 0) {
2545 retval
.tree
= root_0
;
2546 // RewriteRuleSubtreeStream stream_retval =
2547 new RewriteRuleSubtreeStream(
2548 adaptor
, "rule retval",
2549 retval
!= null ? retval
.tree
: null);
2551 root_0
= (CommonTree
) adaptor
.nil();
2552 // 355:6: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* (
2553 // typeSpecifier )* )
2555 // Grammar/CTFParser.g:355:9: ^( TYPE_SPECIFIER_LIST (
2556 // typeQualifier )* ( typeSpecifier )* )
2558 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2559 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
2560 .create(TYPE_SPECIFIER_LIST
,
2561 "TYPE_SPECIFIER_LIST"), root_1
);
2563 // Grammar/CTFParser.g:355:31: ( typeQualifier )*
2564 while (stream_typeQualifier
.hasNext()) {
2565 adaptor
.addChild(root_1
,
2566 stream_typeQualifier
.nextTree());
2569 stream_typeQualifier
.reset();
2570 // Grammar/CTFParser.g:355:46: ( typeSpecifier )*
2571 while (stream_typeSpecifier
.hasNext()) {
2572 adaptor
.addChild(root_1
,
2573 stream_typeSpecifier
.nextTree());
2576 stream_typeSpecifier
.reset();
2578 adaptor
.addChild(root_0
, root_1
);
2583 retval
.tree
= root_0
;
2587 retval
.stop
= input
.LT(-1);
2589 if (state
.backtracking
== 0) {
2591 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2592 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2595 if (state
.backtracking
== 0) {
2597 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
2598 exit("declarationSpecifiers");
2603 catch (RecognitionException e
) {
2610 // $ANTLR end "declarationSpecifiers"
2612 public static class declaratorList_return
extends ParserRuleReturnScope
{
2616 public Object
getTree() {
2621 // $ANTLR start "declaratorList"
2622 // Grammar/CTFParser.g:358:1: declaratorList : declarator ( SEPARATOR
2623 // declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) ;
2624 public final CTFParser
.declaratorList_return
declaratorList()
2625 throws RecognitionException
{
2626 CTFParser
.declaratorList_return retval
= new CTFParser
.declaratorList_return();
2627 retval
.start
= input
.LT(1);
2629 CommonTree root_0
= null;
2631 Token SEPARATOR36
= null;
2632 CTFParser
.declarator_return declarator35
= null;
2634 CTFParser
.declarator_return declarator37
= null;
2636 CommonTree SEPARATOR36_tree
= null;
2637 RewriteRuleTokenStream stream_SEPARATOR
= new RewriteRuleTokenStream(
2638 adaptor
, "token SEPARATOR");
2639 RewriteRuleSubtreeStream stream_declarator
= new RewriteRuleSubtreeStream(
2640 adaptor
, "rule declarator");
2642 enter("declaratorList");
2645 // Grammar/CTFParser.g:365:1: ( declarator ( SEPARATOR declarator )*
2646 // -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) )
2647 // Grammar/CTFParser.g:366:3: declarator ( SEPARATOR declarator )*
2649 pushFollow(FOLLOW_declarator_in_declaratorList946
);
2650 declarator35
= declarator();
2656 if (state
.backtracking
== 0) {
2657 stream_declarator
.add(declarator35
.getTree());
2659 // Grammar/CTFParser.g:366:14: ( SEPARATOR declarator )*
2662 int LA15_0
= input
.LA(1);
2664 if ((LA15_0
== SEPARATOR
)) {
2670 // Grammar/CTFParser.g:366:15: SEPARATOR declarator
2672 SEPARATOR36
= (Token
) match(input
, SEPARATOR
,
2673 FOLLOW_SEPARATOR_in_declaratorList949
);
2677 if (state
.backtracking
== 0) {
2678 stream_SEPARATOR
.add(SEPARATOR36
);
2681 pushFollow(FOLLOW_declarator_in_declaratorList951
);
2682 declarator37
= declarator();
2688 if (state
.backtracking
== 0) {
2689 stream_declarator
.add(declarator37
.getTree());
2701 // elements: declarator
2703 // rule labels: retval
2704 // token list labels:
2705 // rule list labels:
2707 if (state
.backtracking
== 0) {
2708 retval
.tree
= root_0
;
2709 // RewriteRuleSubtreeStream stream_retval =
2710 new RewriteRuleSubtreeStream(
2711 adaptor
, "rule retval",
2712 retval
!= null ? retval
.tree
: null);
2714 root_0
= (CommonTree
) adaptor
.nil();
2715 // 366:38: -> ^( TYPE_DECLARATOR_LIST ( declarator )+ )
2717 // Grammar/CTFParser.g:366:41: ^( TYPE_DECLARATOR_LIST (
2720 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2721 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
2722 .create(TYPE_DECLARATOR_LIST
,
2723 "TYPE_DECLARATOR_LIST"), root_1
);
2725 if (!(stream_declarator
.hasNext())) {
2726 throw new RewriteEarlyExitException();
2728 while (stream_declarator
.hasNext()) {
2729 adaptor
.addChild(root_1
,
2730 stream_declarator
.nextTree());
2733 stream_declarator
.reset();
2735 adaptor
.addChild(root_0
, root_1
);
2740 retval
.tree
= root_0
;
2744 retval
.stop
= input
.LT(-1);
2746 if (state
.backtracking
== 0) {
2748 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2749 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2752 if (state
.backtracking
== 0) {
2754 exit("declaratorList");
2759 catch (RecognitionException e
) {
2766 // $ANTLR end "declaratorList"
2768 public static class abstractDeclaratorList_return
extends
2769 ParserRuleReturnScope
{
2773 public Object
getTree() {
2778 // $ANTLR start "abstractDeclaratorList"
2779 // Grammar/CTFParser.g:369:1: abstractDeclaratorList : abstractDeclarator (
2780 // SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST (
2781 // abstractDeclarator )+ ) ;
2782 public final CTFParser
.abstractDeclaratorList_return
abstractDeclaratorList()
2783 throws RecognitionException
{
2784 CTFParser
.abstractDeclaratorList_return retval
= new CTFParser
.abstractDeclaratorList_return();
2785 retval
.start
= input
.LT(1);
2787 CommonTree root_0
= null;
2789 Token SEPARATOR39
= null;
2790 CTFParser
.abstractDeclarator_return abstractDeclarator38
= null;
2792 CTFParser
.abstractDeclarator_return abstractDeclarator40
= null;
2794 CommonTree SEPARATOR39_tree
= null;
2795 RewriteRuleTokenStream stream_SEPARATOR
= new RewriteRuleTokenStream(
2796 adaptor
, "token SEPARATOR");
2797 RewriteRuleSubtreeStream stream_abstractDeclarator
= new RewriteRuleSubtreeStream(
2798 adaptor
, "rule abstractDeclarator");
2800 enter("abstractDeclaratorList");
2803 // Grammar/CTFParser.g:376:1: ( abstractDeclarator ( SEPARATOR
2804 // abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST (
2805 // abstractDeclarator )+ ) )
2806 // Grammar/CTFParser.g:377:3: abstractDeclarator ( SEPARATOR
2807 // abstractDeclarator )*
2809 pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList985
);
2810 abstractDeclarator38
= abstractDeclarator();
2816 if (state
.backtracking
== 0) {
2817 stream_abstractDeclarator
.add(abstractDeclarator38
2820 // Grammar/CTFParser.g:377:22: ( SEPARATOR abstractDeclarator )*
2823 int LA16_0
= input
.LA(1);
2825 if ((LA16_0
== SEPARATOR
)) {
2831 // Grammar/CTFParser.g:377:23: SEPARATOR abstractDeclarator
2833 SEPARATOR39
= (Token
) match(input
, SEPARATOR
,
2834 FOLLOW_SEPARATOR_in_abstractDeclaratorList988
);
2838 if (state
.backtracking
== 0) {
2839 stream_SEPARATOR
.add(SEPARATOR39
);
2842 pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList990
);
2843 abstractDeclarator40
= abstractDeclarator();
2849 if (state
.backtracking
== 0) {
2850 stream_abstractDeclarator
.add(abstractDeclarator40
2863 // elements: abstractDeclarator
2865 // rule labels: retval
2866 // token list labels:
2867 // rule list labels:
2869 if (state
.backtracking
== 0) {
2870 retval
.tree
= root_0
;
2871 // RewriteRuleSubtreeStream stream_retval =
2872 new RewriteRuleSubtreeStream(
2873 adaptor
, "rule retval",
2874 retval
!= null ? retval
.tree
: null);
2876 root_0
= (CommonTree
) adaptor
.nil();
2877 // 377:54: -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator
2880 // Grammar/CTFParser.g:377:57: ^( TYPE_DECLARATOR_LIST (
2881 // abstractDeclarator )+ )
2883 CommonTree root_1
= (CommonTree
) adaptor
.nil();
2884 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
2885 .create(TYPE_DECLARATOR_LIST
,
2886 "TYPE_DECLARATOR_LIST"), root_1
);
2888 if (!(stream_abstractDeclarator
.hasNext())) {
2889 throw new RewriteEarlyExitException();
2891 while (stream_abstractDeclarator
.hasNext()) {
2892 adaptor
.addChild(root_1
,
2893 stream_abstractDeclarator
.nextTree());
2896 stream_abstractDeclarator
.reset();
2898 adaptor
.addChild(root_0
, root_1
);
2903 retval
.tree
= root_0
;
2907 retval
.stop
= input
.LT(-1);
2909 if (state
.backtracking
== 0) {
2911 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2912 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2915 if (state
.backtracking
== 0) {
2917 exit("abstractDeclaratorList");
2922 catch (RecognitionException e
) {
2928 // $ANTLR end "abstractDeclaratorList"
2930 public static class storageClassSpecifier_return
extends
2931 ParserRuleReturnScope
{
2935 public Object
getTree() {
2940 // $ANTLR start "storageClassSpecifier"
2941 // Grammar/CTFParser.g:380:1: storageClassSpecifier : TYPEDEFTOK ;
2942 public final CTFParser
.storageClassSpecifier_return
storageClassSpecifier()
2943 throws RecognitionException
{
2944 CTFParser
.storageClassSpecifier_return retval
= new CTFParser
.storageClassSpecifier_return();
2945 retval
.start
= input
.LT(1);
2947 CommonTree root_0
= null;
2949 Token TYPEDEFTOK41
= null;
2951 CommonTree TYPEDEFTOK41_tree
= null;
2954 // Grammar/CTFParser.g:380:23: ( TYPEDEFTOK )
2955 // Grammar/CTFParser.g:381:3: TYPEDEFTOK
2957 root_0
= (CommonTree
) adaptor
.nil();
2959 TYPEDEFTOK41
= (Token
) match(input
, TYPEDEFTOK
,
2960 FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1014
);
2964 if (state
.backtracking
== 0) {
2965 TYPEDEFTOK41_tree
= (CommonTree
) adaptor
2966 .create(TYPEDEFTOK41
);
2967 adaptor
.addChild(root_0
, TYPEDEFTOK41_tree
);
2969 if (state
.backtracking
== 0) {
2975 retval
.stop
= input
.LT(-1);
2977 if (state
.backtracking
== 0) {
2979 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
2980 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
2985 catch (RecognitionException e
) {
2992 // $ANTLR end "storageClassSpecifier"
2994 public static class typeSpecifier_return
extends ParserRuleReturnScope
{
2998 public Object
getTree() {
3003 // $ANTLR start "typeSpecifier"
3004 // Grammar/CTFParser.g:384:1: typeSpecifier : ( FLOATTOK | INTTOK | LONGTOK
3005 // | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK |
3006 // BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier
3007 // | enumSpecifier | ctfTypeSpecifier | {...}? => typedefName );
3008 public final CTFParser
.typeSpecifier_return
typeSpecifier()
3009 throws RecognitionException
{
3010 CTFParser
.typeSpecifier_return retval
= new CTFParser
.typeSpecifier_return();
3011 retval
.start
= input
.LT(1);
3013 CommonTree root_0
= null;
3015 Token FLOATTOK42
= null;
3016 Token INTTOK43
= null;
3017 Token LONGTOK44
= null;
3018 Token SHORTTOK45
= null;
3019 Token SIGNEDTOK46
= null;
3020 Token UNSIGNEDTOK47
= null;
3021 Token CHARTOK48
= null;
3022 Token DOUBLETOK49
= null;
3023 Token VOIDTOK50
= null;
3024 Token BOOLTOK51
= null;
3025 Token COMPLEXTOK52
= null;
3026 Token IMAGINARYTOK53
= null;
3027 CTFParser
.structSpecifier_return structSpecifier54
= null;
3029 CTFParser
.variantSpecifier_return variantSpecifier55
= null;
3031 CTFParser
.enumSpecifier_return enumSpecifier56
= null;
3033 CTFParser
.ctfTypeSpecifier_return ctfTypeSpecifier57
= null;
3035 CTFParser
.typedefName_return typedefName58
= null;
3037 CommonTree FLOATTOK42_tree
= null;
3038 CommonTree INTTOK43_tree
= null;
3039 CommonTree LONGTOK44_tree
= null;
3040 CommonTree SHORTTOK45_tree
= null;
3041 CommonTree SIGNEDTOK46_tree
= null;
3042 CommonTree UNSIGNEDTOK47_tree
= null;
3043 CommonTree CHARTOK48_tree
= null;
3044 CommonTree DOUBLETOK49_tree
= null;
3045 CommonTree VOIDTOK50_tree
= null;
3046 CommonTree BOOLTOK51_tree
= null;
3047 CommonTree COMPLEXTOK52_tree
= null;
3048 CommonTree IMAGINARYTOK53_tree
= null;
3050 enter("typeSpecifier");
3053 // Grammar/CTFParser.g:392:1: ( FLOATTOK | INTTOK | LONGTOK |
3054 // SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK |
3055 // VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier |
3056 // variantSpecifier | enumSpecifier | ctfTypeSpecifier | {...}? =>
3059 alt17
= dfa17
.predict(input
);
3062 // Grammar/CTFParser.g:393:3: FLOATTOK
3064 root_0
= (CommonTree
) adaptor
.nil();
3066 FLOATTOK42
= (Token
) match(input
, FLOATTOK
,
3067 FOLLOW_FLOATTOK_in_typeSpecifier1040
);
3071 if (state
.backtracking
== 0) {
3072 FLOATTOK42_tree
= (CommonTree
) adaptor
.create(FLOATTOK42
);
3073 adaptor
.addChild(root_0
, FLOATTOK42_tree
);
3079 // Grammar/CTFParser.g:394:5: INTTOK
3081 root_0
= (CommonTree
) adaptor
.nil();
3083 INTTOK43
= (Token
) match(input
, INTTOK
,
3084 FOLLOW_INTTOK_in_typeSpecifier1046
);
3088 if (state
.backtracking
== 0) {
3089 INTTOK43_tree
= (CommonTree
) adaptor
.create(INTTOK43
);
3090 adaptor
.addChild(root_0
, INTTOK43_tree
);
3096 // Grammar/CTFParser.g:395:5: LONGTOK
3098 root_0
= (CommonTree
) adaptor
.nil();
3100 LONGTOK44
= (Token
) match(input
, LONGTOK
,
3101 FOLLOW_LONGTOK_in_typeSpecifier1052
);
3105 if (state
.backtracking
== 0) {
3106 LONGTOK44_tree
= (CommonTree
) adaptor
.create(LONGTOK44
);
3107 adaptor
.addChild(root_0
, LONGTOK44_tree
);
3113 // Grammar/CTFParser.g:396:5: SHORTTOK
3115 root_0
= (CommonTree
) adaptor
.nil();
3117 SHORTTOK45
= (Token
) match(input
, SHORTTOK
,
3118 FOLLOW_SHORTTOK_in_typeSpecifier1058
);
3122 if (state
.backtracking
== 0) {
3123 SHORTTOK45_tree
= (CommonTree
) adaptor
.create(SHORTTOK45
);
3124 adaptor
.addChild(root_0
, SHORTTOK45_tree
);
3130 // Grammar/CTFParser.g:397:5: SIGNEDTOK
3132 root_0
= (CommonTree
) adaptor
.nil();
3134 SIGNEDTOK46
= (Token
) match(input
, SIGNEDTOK
,
3135 FOLLOW_SIGNEDTOK_in_typeSpecifier1064
);
3139 if (state
.backtracking
== 0) {
3140 SIGNEDTOK46_tree
= (CommonTree
) adaptor
.create(SIGNEDTOK46
);
3141 adaptor
.addChild(root_0
, SIGNEDTOK46_tree
);
3147 // Grammar/CTFParser.g:398:5: UNSIGNEDTOK
3149 root_0
= (CommonTree
) adaptor
.nil();
3151 UNSIGNEDTOK47
= (Token
) match(input
, UNSIGNEDTOK
,
3152 FOLLOW_UNSIGNEDTOK_in_typeSpecifier1070
);
3156 if (state
.backtracking
== 0) {
3157 UNSIGNEDTOK47_tree
= (CommonTree
) adaptor
3158 .create(UNSIGNEDTOK47
);
3159 adaptor
.addChild(root_0
, UNSIGNEDTOK47_tree
);
3165 // Grammar/CTFParser.g:399:5: CHARTOK
3167 root_0
= (CommonTree
) adaptor
.nil();
3169 CHARTOK48
= (Token
) match(input
, CHARTOK
,
3170 FOLLOW_CHARTOK_in_typeSpecifier1076
);
3174 if (state
.backtracking
== 0) {
3175 CHARTOK48_tree
= (CommonTree
) adaptor
.create(CHARTOK48
);
3176 adaptor
.addChild(root_0
, CHARTOK48_tree
);
3182 // Grammar/CTFParser.g:400:5: DOUBLETOK
3184 root_0
= (CommonTree
) adaptor
.nil();
3186 DOUBLETOK49
= (Token
) match(input
, DOUBLETOK
,
3187 FOLLOW_DOUBLETOK_in_typeSpecifier1082
);
3191 if (state
.backtracking
== 0) {
3192 DOUBLETOK49_tree
= (CommonTree
) adaptor
.create(DOUBLETOK49
);
3193 adaptor
.addChild(root_0
, DOUBLETOK49_tree
);
3199 // Grammar/CTFParser.g:401:5: VOIDTOK
3201 root_0
= (CommonTree
) adaptor
.nil();
3203 VOIDTOK50
= (Token
) match(input
, VOIDTOK
,
3204 FOLLOW_VOIDTOK_in_typeSpecifier1088
);
3208 if (state
.backtracking
== 0) {
3209 VOIDTOK50_tree
= (CommonTree
) adaptor
.create(VOIDTOK50
);
3210 adaptor
.addChild(root_0
, VOIDTOK50_tree
);
3216 // Grammar/CTFParser.g:402:5: BOOLTOK
3218 root_0
= (CommonTree
) adaptor
.nil();
3220 BOOLTOK51
= (Token
) match(input
, BOOLTOK
,
3221 FOLLOW_BOOLTOK_in_typeSpecifier1094
);
3225 if (state
.backtracking
== 0) {
3226 BOOLTOK51_tree
= (CommonTree
) adaptor
.create(BOOLTOK51
);
3227 adaptor
.addChild(root_0
, BOOLTOK51_tree
);
3233 // Grammar/CTFParser.g:403:5: COMPLEXTOK
3235 root_0
= (CommonTree
) adaptor
.nil();
3237 COMPLEXTOK52
= (Token
) match(input
, COMPLEXTOK
,
3238 FOLLOW_COMPLEXTOK_in_typeSpecifier1100
);
3242 if (state
.backtracking
== 0) {
3243 COMPLEXTOK52_tree
= (CommonTree
) adaptor
3244 .create(COMPLEXTOK52
);
3245 adaptor
.addChild(root_0
, COMPLEXTOK52_tree
);
3251 // Grammar/CTFParser.g:404:5: IMAGINARYTOK
3253 root_0
= (CommonTree
) adaptor
.nil();
3255 IMAGINARYTOK53
= (Token
) match(input
, IMAGINARYTOK
,
3256 FOLLOW_IMAGINARYTOK_in_typeSpecifier1106
);
3260 if (state
.backtracking
== 0) {
3261 IMAGINARYTOK53_tree
= (CommonTree
) adaptor
3262 .create(IMAGINARYTOK53
);
3263 adaptor
.addChild(root_0
, IMAGINARYTOK53_tree
);
3269 // Grammar/CTFParser.g:405:5: structSpecifier
3271 root_0
= (CommonTree
) adaptor
.nil();
3273 pushFollow(FOLLOW_structSpecifier_in_typeSpecifier1112
);
3274 structSpecifier54
= structSpecifier();
3280 if (state
.backtracking
== 0) {
3281 adaptor
.addChild(root_0
, structSpecifier54
.getTree());
3287 // Grammar/CTFParser.g:406:5: variantSpecifier
3289 root_0
= (CommonTree
) adaptor
.nil();
3291 pushFollow(FOLLOW_variantSpecifier_in_typeSpecifier1118
);
3292 variantSpecifier55
= variantSpecifier();
3298 if (state
.backtracking
== 0) {
3299 adaptor
.addChild(root_0
, variantSpecifier55
.getTree());
3305 // Grammar/CTFParser.g:407:5: enumSpecifier
3307 root_0
= (CommonTree
) adaptor
.nil();
3309 pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier1124
);
3310 enumSpecifier56
= enumSpecifier();
3316 if (state
.backtracking
== 0) {
3317 adaptor
.addChild(root_0
, enumSpecifier56
.getTree());
3323 // Grammar/CTFParser.g:408:5: ctfTypeSpecifier
3325 root_0
= (CommonTree
) adaptor
.nil();
3327 pushFollow(FOLLOW_ctfTypeSpecifier_in_typeSpecifier1130
);
3328 ctfTypeSpecifier57
= ctfTypeSpecifier();
3334 if (state
.backtracking
== 0) {
3335 adaptor
.addChild(root_0
, ctfTypeSpecifier57
.getTree());
3341 // Grammar/CTFParser.g:409:5: {...}? => typedefName
3343 root_0
= (CommonTree
) adaptor
.nil();
3345 if (!((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
3346 if (state
.backtracking
> 0) {
3347 state
.failed
= true;
3350 throw new FailedPredicateException(input
, "typeSpecifier",
3351 "inTypealiasAlias() || isTypeName(input.LT(1).getText())");
3353 pushFollow(FOLLOW_typedefName_in_typeSpecifier1140
);
3354 typedefName58
= typedefName();
3360 if (state
.backtracking
== 0) {
3361 adaptor
.addChild(root_0
, typedefName58
.getTree());
3368 retval
.stop
= input
.LT(-1);
3370 if (state
.backtracking
== 0) {
3372 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
3373 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
3376 if (state
.backtracking
== 0) {
3378 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
3379 exit("typeSpecifier");
3384 catch (RecognitionException e
) {
3391 // $ANTLR end "typeSpecifier"
3393 public static class typeQualifier_return
extends ParserRuleReturnScope
{
3397 public Object
getTree() {
3402 // $ANTLR start "typeQualifier"
3403 // Grammar/CTFParser.g:412:1: typeQualifier : CONSTTOK ;
3404 public final CTFParser
.typeQualifier_return
typeQualifier()
3405 throws RecognitionException
{
3406 CTFParser
.typeQualifier_return retval
= new CTFParser
.typeQualifier_return();
3407 retval
.start
= input
.LT(1);
3409 CommonTree root_0
= null;
3411 Token CONSTTOK59
= null;
3413 CommonTree CONSTTOK59_tree
= null;
3415 enter("typeQualifier");
3418 // Grammar/CTFParser.g:420:1: ( CONSTTOK )
3419 // Grammar/CTFParser.g:421:3: CONSTTOK
3421 root_0
= (CommonTree
) adaptor
.nil();
3423 CONSTTOK59
= (Token
) match(input
, CONSTTOK
,
3424 FOLLOW_CONSTTOK_in_typeQualifier1163
);
3428 if (state
.backtracking
== 0) {
3429 CONSTTOK59_tree
= (CommonTree
) adaptor
.create(CONSTTOK59
);
3430 adaptor
.addChild(root_0
, CONSTTOK59_tree
);
3435 retval
.stop
= input
.LT(-1);
3437 if (state
.backtracking
== 0) {
3439 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
3440 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
3443 if (state
.backtracking
== 0) {
3445 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
3446 exit("typeQualifier");
3451 catch (RecognitionException e
) {
3458 // $ANTLR end "typeQualifier"
3460 public static class alignAttribute_return
extends ParserRuleReturnScope
{
3464 public Object
getTree() {
3469 // $ANTLR start "alignAttribute"
3470 // Grammar/CTFParser.g:424:1: alignAttribute : ALIGNTOK LPAREN
3471 // unaryExpression RPAREN -> ^( ALIGN unaryExpression ) ;
3472 public final CTFParser
.alignAttribute_return
alignAttribute()
3473 throws RecognitionException
{
3474 CTFParser
.alignAttribute_return retval
= new CTFParser
.alignAttribute_return();
3475 retval
.start
= input
.LT(1);
3477 CommonTree root_0
= null;
3479 Token ALIGNTOK60
= null;
3480 Token LPAREN61
= null;
3481 Token RPAREN63
= null;
3482 CTFParser
.unaryExpression_return unaryExpression62
= null;
3484 CommonTree ALIGNTOK60_tree
= null;
3485 CommonTree LPAREN61_tree
= null;
3486 CommonTree RPAREN63_tree
= null;
3487 RewriteRuleTokenStream stream_RPAREN
= new RewriteRuleTokenStream(
3488 adaptor
, "token RPAREN");
3489 RewriteRuleTokenStream stream_ALIGNTOK
= new RewriteRuleTokenStream(
3490 adaptor
, "token ALIGNTOK");
3491 RewriteRuleTokenStream stream_LPAREN
= new RewriteRuleTokenStream(
3492 adaptor
, "token LPAREN");
3493 RewriteRuleSubtreeStream stream_unaryExpression
= new RewriteRuleSubtreeStream(
3494 adaptor
, "rule unaryExpression");
3496 // Grammar/CTFParser.g:424:16: ( ALIGNTOK LPAREN unaryExpression
3497 // RPAREN -> ^( ALIGN unaryExpression ) )
3498 // Grammar/CTFParser.g:425:3: ALIGNTOK LPAREN unaryExpression RPAREN
3500 ALIGNTOK60
= (Token
) match(input
, ALIGNTOK
,
3501 FOLLOW_ALIGNTOK_in_alignAttribute1176
);
3505 if (state
.backtracking
== 0) {
3506 stream_ALIGNTOK
.add(ALIGNTOK60
);
3509 LPAREN61
= (Token
) match(input
, LPAREN
,
3510 FOLLOW_LPAREN_in_alignAttribute1178
);
3514 if (state
.backtracking
== 0) {
3515 stream_LPAREN
.add(LPAREN61
);
3518 pushFollow(FOLLOW_unaryExpression_in_alignAttribute1180
);
3519 unaryExpression62
= unaryExpression();
3525 if (state
.backtracking
== 0) {
3526 stream_unaryExpression
.add(unaryExpression62
.getTree());
3528 RPAREN63
= (Token
) match(input
, RPAREN
,
3529 FOLLOW_RPAREN_in_alignAttribute1182
);
3533 if (state
.backtracking
== 0) {
3534 stream_RPAREN
.add(RPAREN63
);
3538 // elements: unaryExpression
3540 // rule labels: retval
3541 // token list labels:
3542 // rule list labels:
3544 if (state
.backtracking
== 0) {
3545 retval
.tree
= root_0
;
3546 // RewriteRuleSubtreeStream stream_retval =
3547 new RewriteRuleSubtreeStream(
3548 adaptor
, "rule retval",
3549 retval
!= null ? retval
.tree
: null);
3551 root_0
= (CommonTree
) adaptor
.nil();
3552 // 425:42: -> ^( ALIGN unaryExpression )
3554 // Grammar/CTFParser.g:425:45: ^( ALIGN unaryExpression
3557 CommonTree root_1
= (CommonTree
) adaptor
.nil();
3558 root_1
= (CommonTree
) adaptor
.becomeRoot(
3559 adaptor
.create(ALIGN
, "ALIGN"), root_1
);
3561 adaptor
.addChild(root_1
,
3562 stream_unaryExpression
.nextTree());
3564 adaptor
.addChild(root_0
, root_1
);
3569 retval
.tree
= root_0
;
3573 retval
.stop
= input
.LT(-1);
3575 if (state
.backtracking
== 0) {
3577 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
3578 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
3583 catch (RecognitionException e
) {
3590 // $ANTLR end "alignAttribute"
3592 public static class structBody_return
extends ParserRuleReturnScope
{
3596 public Object
getTree() {
3601 // $ANTLR start "structBody"
3602 // Grammar/CTFParser.g:429:1: structBody : LCURL (
3603 // structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY (
3604 // structOrVariantDeclarationList )? ) ;
3605 public final CTFParser
.structBody_return
structBody()
3606 throws RecognitionException
{
3607 Symbols_stack
.push(new Symbols_scope());
3609 CTFParser
.structBody_return retval
= new CTFParser
.structBody_return();
3610 retval
.start
= input
.LT(1);
3612 CommonTree root_0
= null;
3614 Token LCURL64
= null;
3615 Token RCURL66
= null;
3616 CTFParser
.structOrVariantDeclarationList_return structOrVariantDeclarationList65
= null;
3618 CommonTree LCURL64_tree
= null;
3619 CommonTree RCURL66_tree
= null;
3620 RewriteRuleTokenStream stream_LCURL
= new RewriteRuleTokenStream(
3621 adaptor
, "token LCURL");
3622 RewriteRuleTokenStream stream_RCURL
= new RewriteRuleTokenStream(
3623 adaptor
, "token RCURL");
3624 RewriteRuleSubtreeStream stream_structOrVariantDeclarationList
= new RewriteRuleSubtreeStream(
3625 adaptor
, "rule structOrVariantDeclarationList");
3627 enter("structBody");
3628 debug_print("Scope push " + Symbols_stack
.size());
3629 ((Symbols_scope
) Symbols_stack
.peek()).types
= new HashSet
<String
>();
3632 // Grammar/CTFParser.g:440:1: ( LCURL (
3633 // structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY (
3634 // structOrVariantDeclarationList )? ) )
3635 // Grammar/CTFParser.g:441:3: LCURL ( structOrVariantDeclarationList
3638 LCURL64
= (Token
) match(input
, LCURL
,
3639 FOLLOW_LCURL_in_structBody1223
);
3643 if (state
.backtracking
== 0) {
3644 stream_LCURL
.add(LCURL64
);
3647 // Grammar/CTFParser.g:441:9: ( structOrVariantDeclarationList
3650 int LA18_0
= input
.LA(1);
3652 if ((((LA18_0
>= CONSTTOK
) && (LA18_0
<= ENUMTOK
))
3653 || ((LA18_0
>= FLOATINGPOINTTOK
) && (LA18_0
<= SIGNEDTOK
))
3654 || ((LA18_0
>= STRINGTOK
) && (LA18_0
<= STRUCTTOK
)) || ((LA18_0
>= TYPEDEFTOK
) && (LA18_0
<= IMAGINARYTOK
)))) {
3656 } else if ((LA18_0
== IDENTIFIER
)
3657 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
3660 } else if ((LA18_0
== TYPEALIASTOK
)) {
3665 // Grammar/CTFParser.g:441:9: structOrVariantDeclarationList
3667 pushFollow(FOLLOW_structOrVariantDeclarationList_in_structBody1225
);
3668 structOrVariantDeclarationList65
= structOrVariantDeclarationList();
3674 if (state
.backtracking
== 0) {
3675 stream_structOrVariantDeclarationList
3676 .add(structOrVariantDeclarationList65
.getTree());
3684 RCURL66
= (Token
) match(input
, RCURL
,
3685 FOLLOW_RCURL_in_structBody1228
);
3689 if (state
.backtracking
== 0) {
3690 stream_RCURL
.add(RCURL66
);
3694 // elements: structOrVariantDeclarationList
3696 // rule labels: retval
3697 // token list labels:
3698 // rule list labels:
3700 if (state
.backtracking
== 0) {
3701 retval
.tree
= root_0
;
3702 // RewriteRuleSubtreeStream stream_retval =
3703 new RewriteRuleSubtreeStream(
3704 adaptor
, "rule retval",
3705 retval
!= null ? retval
.tree
: null);
3707 root_0
= (CommonTree
) adaptor
.nil();
3708 // 441:47: -> ^( STRUCT_BODY (
3709 // structOrVariantDeclarationList )? )
3711 // Grammar/CTFParser.g:441:50: ^( STRUCT_BODY (
3712 // structOrVariantDeclarationList )? )
3714 CommonTree root_1
= (CommonTree
) adaptor
.nil();
3715 root_1
= (CommonTree
) adaptor
.becomeRoot(
3716 adaptor
.create(STRUCT_BODY
, "STRUCT_BODY"),
3719 // Grammar/CTFParser.g:441:64: (
3720 // structOrVariantDeclarationList )?
3721 if (stream_structOrVariantDeclarationList
.hasNext()) {
3722 adaptor
.addChild(root_1
,
3723 stream_structOrVariantDeclarationList
3727 stream_structOrVariantDeclarationList
.reset();
3729 adaptor
.addChild(root_0
, root_1
);
3734 retval
.tree
= root_0
;
3738 retval
.stop
= input
.LT(-1);
3740 if (state
.backtracking
== 0) {
3742 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
3743 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
3746 if (state
.backtracking
== 0) {
3748 debug_print("Scope pop " + Symbols_stack
.size());
3754 catch (RecognitionException e
) {
3757 Symbols_stack
.pop();
3763 // $ANTLR end "structBody"
3765 public static class structSpecifier_return
extends ParserRuleReturnScope
{
3769 public Object
getTree() {
3774 // $ANTLR start "structSpecifier"
3775 // Grammar/CTFParser.g:446:1: structSpecifier : STRUCTTOK ( ( structName (
3776 // alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | ( structBody
3777 // ( alignAttribute | ) ) ) -> ^( STRUCT ( structName )? ( structBody )? (
3778 // alignAttribute )? ) ;
3779 public final CTFParser
.structSpecifier_return
structSpecifier()
3780 throws RecognitionException
{
3781 CTFParser
.structSpecifier_return retval
= new CTFParser
.structSpecifier_return();
3782 retval
.start
= input
.LT(1);
3784 CommonTree root_0
= null;
3786 Token STRUCTTOK67
= null;
3787 CTFParser
.structName_return structName68
= null;
3789 CTFParser
.alignAttribute_return alignAttribute69
= null;
3791 CTFParser
.structBody_return structBody70
= null;
3793 CTFParser
.alignAttribute_return alignAttribute71
= null;
3795 CTFParser
.structBody_return structBody72
= null;
3797 CTFParser
.alignAttribute_return alignAttribute73
= null;
3799 CommonTree STRUCTTOK67_tree
= null;
3800 RewriteRuleTokenStream stream_STRUCTTOK
= new RewriteRuleTokenStream(
3801 adaptor
, "token STRUCTTOK");
3802 RewriteRuleSubtreeStream stream_structName
= new RewriteRuleSubtreeStream(
3803 adaptor
, "rule structName");
3804 RewriteRuleSubtreeStream stream_structBody
= new RewriteRuleSubtreeStream(
3805 adaptor
, "rule structBody");
3806 RewriteRuleSubtreeStream stream_alignAttribute
= new RewriteRuleSubtreeStream(
3807 adaptor
, "rule alignAttribute");
3809 enter("structSpecifier");
3812 // Grammar/CTFParser.g:453:1: ( STRUCTTOK ( ( structName (
3813 // alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | (
3814 // structBody ( alignAttribute | ) ) ) -> ^( STRUCT ( structName )?
3815 // ( structBody )? ( alignAttribute )? ) )
3816 // Grammar/CTFParser.g:454:3: STRUCTTOK ( ( structName (
3817 // alignAttribute | ( structBody ( alignAttribute | ) ) | ) ) | (
3818 // structBody ( alignAttribute | ) ) )
3820 STRUCTTOK67
= (Token
) match(input
, STRUCTTOK
,
3821 FOLLOW_STRUCTTOK_in_structSpecifier1266
);
3825 if (state
.backtracking
== 0) {
3826 stream_STRUCTTOK
.add(STRUCTTOK67
);
3829 // Grammar/CTFParser.g:455:3: ( ( structName ( alignAttribute |
3830 // ( structBody ( alignAttribute | ) ) | ) ) | ( structBody (
3831 // alignAttribute | ) ) )
3833 int LA22_0
= input
.LA(1);
3835 if ((LA22_0
== IDENTIFIER
)) {
3837 } else if ((LA22_0
== LCURL
)) {
3840 if (state
.backtracking
> 0) {
3841 state
.failed
= true;
3844 NoViableAltException nvae
= new NoViableAltException("",
3851 // Grammar/CTFParser.g:457:5: ( structName ( alignAttribute | (
3852 // structBody ( alignAttribute | ) ) | ) )
3854 // Grammar/CTFParser.g:457:5: ( structName ( alignAttribute
3855 // | ( structBody ( alignAttribute | ) ) | ) )
3856 // Grammar/CTFParser.g:458:6: structName ( alignAttribute |
3857 // ( structBody ( alignAttribute | ) ) | )
3859 pushFollow(FOLLOW_structName_in_structSpecifier1288
);
3860 structName68
= structName();
3866 if (state
.backtracking
== 0) {
3867 stream_structName
.add(structName68
.getTree());
3869 // Grammar/CTFParser.g:459:6: ( alignAttribute | (
3870 // structBody ( alignAttribute | ) ) | )
3872 switch (input
.LA(1)) {
3878 switch (input
.LA(2)) {
3883 case FLOATINGPOINTTOK
:
3903 int LA20_5
= input
.LA(3);
3905 if ((((LA20_5
>= CONSTTOK
) && (LA20_5
<= ENUMTOK
))
3906 || ((LA20_5
>= FLOATINGPOINTTOK
) && (LA20_5
<= SIGNEDTOK
))
3907 || ((LA20_5
>= STRINGTOK
) && (LA20_5
<= STRUCTTOK
))
3908 || ((LA20_5
>= TYPEDEFTOK
) && (LA20_5
<= IMAGINARYTOK
))
3909 || (LA20_5
== POINTER
) || (LA20_5
== IDENTIFIER
))) {
3911 } else if (((LA20_5
== SEPARATOR
)
3912 || (LA20_5
== ASSIGNMENT
) || (LA20_5
== RCURL
))) {
3915 if (state
.backtracking
> 0) {
3916 state
.failed
= true;
3919 NoViableAltException nvae
= new NoViableAltException(
3927 int LA20_6
= input
.LA(3);
3929 if ((((LA20_6
>= CONSTTOK
) && (LA20_6
<= ENUMTOK
))
3930 || ((LA20_6
>= FLOATINGPOINTTOK
) && (LA20_6
<= SIGNEDTOK
))
3931 || ((LA20_6
>= STRINGTOK
) && (LA20_6
<= STRUCTTOK
))
3932 || ((LA20_6
>= TYPEDEFTOK
) && (LA20_6
<= IMAGINARYTOK
))
3933 || (LA20_6
== LCURL
)
3934 || (LA20_6
== POINTER
) || (LA20_6
== IDENTIFIER
))) {
3936 } else if (((LA20_6
== SEPARATOR
)
3937 || (LA20_6
== ASSIGNMENT
) || (LA20_6
== RCURL
))) {
3940 if (state
.backtracking
> 0) {
3941 state
.failed
= true;
3944 NoViableAltException nvae
= new NoViableAltException(
3952 int LA20_7
= input
.LA(3);
3954 if (((LA20_7
== SEPARATOR
)
3955 || (LA20_7
== ASSIGNMENT
) || (LA20_7
== RCURL
))) {
3957 } else if ((((LA20_7
>= CONSTTOK
) && (LA20_7
<= ENUMTOK
))
3958 || ((LA20_7
>= FLOATINGPOINTTOK
) && (LA20_7
<= SIGNEDTOK
))
3959 || ((LA20_7
>= STRINGTOK
) && (LA20_7
<= STRUCTTOK
))
3960 || ((LA20_7
>= TYPEDEFTOK
) && (LA20_7
<= IMAGINARYTOK
))
3961 || (LA20_7
== POINTER
) || (LA20_7
== IDENTIFIER
))) {
3964 if (state
.backtracking
> 0) {
3965 state
.failed
= true;
3968 NoViableAltException nvae
= new NoViableAltException(
3977 case STRING_LITERAL
: {
3982 if (state
.backtracking
> 0) {
3983 state
.failed
= true;
3986 NoViableAltException nvae
= new NoViableAltException(
3999 case FLOATINGPOINTTOK
:
4015 case TYPE_ASSIGNMENT
:
4024 if (state
.backtracking
> 0) {
4025 state
.failed
= true;
4028 NoViableAltException nvae
= new NoViableAltException(
4036 // Grammar/CTFParser.g:460:8: alignAttribute
4038 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1304
);
4039 alignAttribute69
= alignAttribute();
4045 if (state
.backtracking
== 0) {
4046 stream_alignAttribute
.add(alignAttribute69
4053 // Grammar/CTFParser.g:462:8: ( structBody (
4054 // alignAttribute | ) )
4056 // Grammar/CTFParser.g:462:8: ( structBody (
4057 // alignAttribute | ) )
4058 // Grammar/CTFParser.g:463:10: structBody (
4059 // alignAttribute | )
4061 pushFollow(FOLLOW_structBody_in_structSpecifier1333
);
4062 structBody70
= structBody();
4068 if (state
.backtracking
== 0) {
4069 stream_structBody
.add(structBody70
4072 // Grammar/CTFParser.g:464:10: ( alignAttribute
4075 int LA19_0
= input
.LA(1);
4077 if ((LA19_0
== ALIGNTOK
)) {
4079 } else if (((LA19_0
== EOF
)
4080 || ((LA19_0
>= CONSTTOK
) && (LA19_0
<= ENUMTOK
))
4081 || ((LA19_0
>= FLOATINGPOINTTOK
) && (LA19_0
<= SIGNEDTOK
))
4082 || ((LA19_0
>= STRINGTOK
) && (LA19_0
<= STRUCTTOK
))
4083 || ((LA19_0
>= TYPEDEFTOK
) && (LA19_0
<= IMAGINARYTOK
))
4084 || (LA19_0
== TYPE_ASSIGNMENT
)
4085 || (LA19_0
== LPAREN
)
4086 || (LA19_0
== LCURL
)
4087 || ((LA19_0
>= TERM
) && (LA19_0
<= POINTER
)) || (LA19_0
== IDENTIFIER
))) {
4090 if (state
.backtracking
> 0) {
4091 state
.failed
= true;
4094 NoViableAltException nvae
= new NoViableAltException(
4101 // Grammar/CTFParser.g:465:11: alignAttribute
4103 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1358
);
4104 alignAttribute71
= alignAttribute();
4110 if (state
.backtracking
== 0) {
4111 stream_alignAttribute
4112 .add(alignAttribute71
.getTree());
4118 // Grammar/CTFParser.g:468:10:
4128 // Grammar/CTFParser.g:472:6:
4138 // Grammar/CTFParser.g:476:5: ( structBody ( alignAttribute | )
4141 // Grammar/CTFParser.g:476:5: ( structBody ( alignAttribute
4143 // Grammar/CTFParser.g:477:7: structBody ( alignAttribute |
4146 pushFollow(FOLLOW_structBody_in_structSpecifier1456
);
4147 structBody72
= structBody();
4153 if (state
.backtracking
== 0) {
4154 stream_structBody
.add(structBody72
.getTree());
4156 // Grammar/CTFParser.g:478:7: ( alignAttribute | )
4158 int LA21_0
= input
.LA(1);
4160 if ((LA21_0
== ALIGNTOK
)) {
4162 } else if (((LA21_0
== EOF
)
4163 || ((LA21_0
>= CONSTTOK
) && (LA21_0
<= ENUMTOK
))
4164 || ((LA21_0
>= FLOATINGPOINTTOK
) && (LA21_0
<= SIGNEDTOK
))
4165 || ((LA21_0
>= STRINGTOK
) && (LA21_0
<= STRUCTTOK
))
4166 || ((LA21_0
>= TYPEDEFTOK
) && (LA21_0
<= IMAGINARYTOK
))
4167 || (LA21_0
== TYPE_ASSIGNMENT
)
4168 || (LA21_0
== LPAREN
) || (LA21_0
== LCURL
)
4169 || ((LA21_0
>= TERM
) && (LA21_0
<= POINTER
)) || (LA21_0
== IDENTIFIER
))) {
4172 if (state
.backtracking
> 0) {
4173 state
.failed
= true;
4176 NoViableAltException nvae
= new NoViableAltException(
4183 // Grammar/CTFParser.g:479:9: alignAttribute
4185 pushFollow(FOLLOW_alignAttribute_in_structSpecifier1474
);
4186 alignAttribute73
= alignAttribute();
4192 if (state
.backtracking
== 0) {
4193 stream_alignAttribute
.add(alignAttribute73
4212 // elements: alignAttribute, structName, structBody
4214 // rule labels: retval
4215 // token list labels:
4216 // rule list labels:
4218 if (state
.backtracking
== 0) {
4219 retval
.tree
= root_0
;
4220 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
4221 adaptor
, "rule retval",
4222 retval
!= null ? retval
.tree
: null);
4224 root_0
= (CommonTree
) adaptor
.nil();
4225 // 484:5: -> ^( STRUCT ( structName )? ( structBody )? (
4226 // alignAttribute )? )
4228 // Grammar/CTFParser.g:484:8: ^( STRUCT ( structName )?
4229 // ( structBody )? ( alignAttribute )? )
4231 CommonTree root_1
= (CommonTree
) adaptor
.nil();
4232 root_1
= (CommonTree
) adaptor
.becomeRoot(
4233 adaptor
.create(STRUCT
, "STRUCT"), root_1
);
4235 // Grammar/CTFParser.g:484:17: ( structName )?
4236 if (stream_structName
.hasNext()) {
4237 adaptor
.addChild(root_1
,
4238 stream_structName
.nextTree());
4241 stream_structName
.reset();
4242 // Grammar/CTFParser.g:484:29: ( structBody )?
4243 if (stream_structBody
.hasNext()) {
4244 adaptor
.addChild(root_1
,
4245 stream_structBody
.nextTree());
4248 stream_structBody
.reset();
4249 // Grammar/CTFParser.g:484:41: ( alignAttribute )?
4250 if (stream_alignAttribute
.hasNext()) {
4251 adaptor
.addChild(root_1
,
4252 stream_alignAttribute
.nextTree());
4255 stream_alignAttribute
.reset();
4257 adaptor
.addChild(root_0
, root_1
);
4262 retval
.tree
= root_0
;
4266 retval
.stop
= input
.LT(-1);
4268 if (state
.backtracking
== 0) {
4270 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
4271 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
4274 if (state
.backtracking
== 0) {
4276 exit("structSpecifier");
4281 catch (RecognitionException e
) {
4287 // $ANTLR end "structSpecifier"
4289 public static class structName_return
extends ParserRuleReturnScope
{
4293 public Object
getTree() {
4298 // $ANTLR start "structName"
4299 // Grammar/CTFParser.g:487:1: structName : IDENTIFIER -> ^( STRUCT_NAME
4301 public final CTFParser
.structName_return
structName()
4302 throws RecognitionException
{
4303 CTFParser
.structName_return retval
= new CTFParser
.structName_return();
4304 retval
.start
= input
.LT(1);
4306 CommonTree root_0
= null;
4308 Token IDENTIFIER74
= null;
4310 CommonTree IDENTIFIER74_tree
= null;
4311 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
4312 adaptor
, "token IDENTIFIER");
4314 enter("structName");
4317 // Grammar/CTFParser.g:495:1: ( IDENTIFIER -> ^( STRUCT_NAME
4319 // Grammar/CTFParser.g:496:3: IDENTIFIER
4321 IDENTIFIER74
= (Token
) match(input
, IDENTIFIER
,
4322 FOLLOW_IDENTIFIER_in_structName1550
);
4326 if (state
.backtracking
== 0) {
4327 stream_IDENTIFIER
.add(IDENTIFIER74
);
4331 // elements: IDENTIFIER
4333 // rule labels: retval
4334 // token list labels:
4335 // rule list labels:
4337 if (state
.backtracking
== 0) {
4338 retval
.tree
= root_0
;
4339 // RewriteRuleSubtreeStream stream_retval =
4340 new RewriteRuleSubtreeStream(
4341 adaptor
, "rule retval",
4342 retval
!= null ? retval
.tree
: null);
4344 root_0
= (CommonTree
) adaptor
.nil();
4345 // 496:14: -> ^( STRUCT_NAME IDENTIFIER )
4347 // Grammar/CTFParser.g:496:17: ^( STRUCT_NAME IDENTIFIER
4350 CommonTree root_1
= (CommonTree
) adaptor
.nil();
4351 root_1
= (CommonTree
) adaptor
.becomeRoot(
4352 adaptor
.create(STRUCT_NAME
, "STRUCT_NAME"),
4355 adaptor
.addChild(root_1
,
4356 stream_IDENTIFIER
.nextNode());
4358 adaptor
.addChild(root_0
, root_1
);
4363 retval
.tree
= root_0
;
4367 retval
.stop
= input
.LT(-1);
4369 if (state
.backtracking
== 0) {
4371 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
4372 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
4375 if (state
.backtracking
== 0) {
4377 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
4383 catch (RecognitionException e
) {
4389 // $ANTLR end "structName"
4391 public static class structOrVariantDeclarationList_return
extends
4392 ParserRuleReturnScope
{
4396 public Object
getTree() {
4401 // $ANTLR start "structOrVariantDeclarationList"
4402 // Grammar/CTFParser.g:499:1: structOrVariantDeclarationList : (
4403 // structOrVariantDeclaration )+ ;
4404 public final CTFParser
.structOrVariantDeclarationList_return
structOrVariantDeclarationList()
4405 throws RecognitionException
{
4406 CTFParser
.structOrVariantDeclarationList_return retval
= new CTFParser
.structOrVariantDeclarationList_return();
4407 retval
.start
= input
.LT(1);
4409 CommonTree root_0
= null;
4411 CTFParser
.structOrVariantDeclaration_return structOrVariantDeclaration75
= null;
4413 enter("structOrVariantDeclarationList");
4416 // Grammar/CTFParser.g:506:1: ( ( structOrVariantDeclaration )+ )
4417 // Grammar/CTFParser.g:507:3: ( structOrVariantDeclaration )+
4419 root_0
= (CommonTree
) adaptor
.nil();
4421 // Grammar/CTFParser.g:507:3: ( structOrVariantDeclaration )+
4425 int LA23_0
= input
.LA(1);
4427 if ((((LA23_0
>= CONSTTOK
) && (LA23_0
<= ENUMTOK
))
4428 || ((LA23_0
>= FLOATINGPOINTTOK
) && (LA23_0
<= SIGNEDTOK
))
4429 || ((LA23_0
>= STRINGTOK
) && (LA23_0
<= STRUCTTOK
)) || ((LA23_0
>= TYPEDEFTOK
) && (LA23_0
<= IMAGINARYTOK
)))) {
4431 } else if ((LA23_0
== IDENTIFIER
)
4432 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
4435 } else if ((LA23_0
== TYPEALIASTOK
)) {
4441 // Grammar/CTFParser.g:507:3: structOrVariantDeclaration
4443 pushFollow(FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1581
);
4444 structOrVariantDeclaration75
= structOrVariantDeclaration();
4450 if (state
.backtracking
== 0) {
4451 adaptor
.addChild(root_0
,
4452 structOrVariantDeclaration75
.getTree());
4462 if (state
.backtracking
> 0) {
4463 state
.failed
= true;
4466 EarlyExitException eee
= new EarlyExitException(23,
4475 retval
.stop
= input
.LT(-1);
4477 if (state
.backtracking
== 0) {
4479 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
4480 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
4483 if (state
.backtracking
== 0) {
4485 exit("structOrVariantDeclarationList");
4490 catch (RecognitionException e
) {
4497 // $ANTLR end "structOrVariantDeclarationList"
4499 public static class structOrVariantDeclaration_return
extends
4500 ParserRuleReturnScope
{
4504 public Object
getTree() {
4509 // $ANTLR start "structOrVariantDeclaration"
4510 // Grammar/CTFParser.g:510:1: structOrVariantDeclaration : ( (
4511 // declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF
4512 // declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList ->
4513 // ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )
4514 // ) | typealiasDecl -> typealiasDecl ) TERM ;
4515 public final CTFParser
.structOrVariantDeclaration_return
structOrVariantDeclaration()
4516 throws RecognitionException
{
4517 CTFParser
.structOrVariantDeclaration_return retval
= new CTFParser
.structOrVariantDeclaration_return();
4518 retval
.start
= input
.LT(1);
4520 CommonTree root_0
= null;
4522 Token TERM80
= null;
4523 CTFParser
.declarationSpecifiers_return declarationSpecifiers76
= null;
4525 CTFParser
.declaratorList_return declaratorList77
= null;
4527 CTFParser
.structOrVariantDeclaratorList_return structOrVariantDeclaratorList78
= null;
4529 CTFParser
.typealiasDecl_return typealiasDecl79
= null;
4531 CommonTree TERM80_tree
= null;
4532 RewriteRuleTokenStream stream_TERM
= new RewriteRuleTokenStream(
4533 adaptor
, "token TERM");
4534 RewriteRuleSubtreeStream stream_declaratorList
= new RewriteRuleSubtreeStream(
4535 adaptor
, "rule declaratorList");
4536 RewriteRuleSubtreeStream stream_typealiasDecl
= new RewriteRuleSubtreeStream(
4537 adaptor
, "rule typealiasDecl");
4538 RewriteRuleSubtreeStream stream_declarationSpecifiers
= new RewriteRuleSubtreeStream(
4539 adaptor
, "rule declarationSpecifiers");
4540 RewriteRuleSubtreeStream stream_structOrVariantDeclaratorList
= new RewriteRuleSubtreeStream(
4541 adaptor
, "rule structOrVariantDeclaratorList");
4543 enter("structOrVariantDeclaration");
4546 // Grammar/CTFParser.g:517:1: ( ( ( declarationSpecifiers ({...}? =>
4547 // declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers
4548 // ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION
4549 // declarationSpecifiers structOrVariantDeclaratorList ) ) ) |
4550 // typealiasDecl -> typealiasDecl ) TERM )
4551 // Grammar/CTFParser.g:518:3: ( ( declarationSpecifiers ({...}? =>
4552 // declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers
4553 // ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION
4554 // declarationSpecifiers structOrVariantDeclaratorList ) ) ) |
4555 // typealiasDecl -> typealiasDecl ) TERM
4557 // Grammar/CTFParser.g:518:3: ( ( declarationSpecifiers ({...}?
4558 // => declaratorList -> ^( TYPEDEF declaratorList
4559 // declarationSpecifiers ) | structOrVariantDeclaratorList -> ^(
4560 // SV_DECLARATION declarationSpecifiers
4561 // structOrVariantDeclaratorList ) ) ) | typealiasDecl ->
4564 int LA25_0
= input
.LA(1);
4566 if ((((LA25_0
>= CONSTTOK
) && (LA25_0
<= ENUMTOK
))
4567 || ((LA25_0
>= FLOATINGPOINTTOK
) && (LA25_0
<= SIGNEDTOK
))
4568 || ((LA25_0
>= STRINGTOK
) && (LA25_0
<= STRUCTTOK
)) || ((LA25_0
>= TYPEDEFTOK
) && (LA25_0
<= IMAGINARYTOK
)))) {
4570 } else if ((LA25_0
== IDENTIFIER
)
4571 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
4574 } else if ((LA25_0
== TYPEALIASTOK
)) {
4577 if (state
.backtracking
> 0) {
4578 state
.failed
= true;
4581 NoViableAltException nvae
= new NoViableAltException("",
4588 // Grammar/CTFParser.g:519:4: ( declarationSpecifiers ({...}? =>
4589 // declaratorList -> ^( TYPEDEF declaratorList
4590 // declarationSpecifiers ) | structOrVariantDeclaratorList -> ^(
4591 // SV_DECLARATION declarationSpecifiers
4592 // structOrVariantDeclaratorList ) ) )
4594 // Grammar/CTFParser.g:519:4: ( declarationSpecifiers
4595 // ({...}? => declaratorList -> ^( TYPEDEF declaratorList
4596 // declarationSpecifiers ) | structOrVariantDeclaratorList
4597 // -> ^( SV_DECLARATION declarationSpecifiers
4598 // structOrVariantDeclaratorList ) ) )
4599 // Grammar/CTFParser.g:520:5: declarationSpecifiers ({...}?
4600 // => declaratorList -> ^( TYPEDEF declaratorList
4601 // declarationSpecifiers ) | structOrVariantDeclaratorList
4602 // -> ^( SV_DECLARATION declarationSpecifiers
4603 // structOrVariantDeclaratorList ) )
4605 pushFollow(FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1619
);
4606 declarationSpecifiers76
= declarationSpecifiers();
4612 if (state
.backtracking
== 0) {
4613 stream_declarationSpecifiers
4614 .add(declarationSpecifiers76
.getTree());
4616 // Grammar/CTFParser.g:521:7: ({...}? => declaratorList
4617 // -> ^( TYPEDEF declaratorList declarationSpecifiers )
4618 // | structOrVariantDeclaratorList -> ^( SV_DECLARATION
4619 // declarationSpecifiers structOrVariantDeclaratorList )
4622 alt24
= dfa24
.predict(input
);
4625 // Grammar/CTFParser.g:523:9: {...}? => declaratorList
4627 if (!((inTypedef()))) {
4628 if (state
.backtracking
> 0) {
4629 state
.failed
= true;
4632 throw new FailedPredicateException(input
,
4633 "structOrVariantDeclaration",
4636 pushFollow(FOLLOW_declaratorList_in_structOrVariantDeclaration1651
);
4637 declaratorList77
= declaratorList();
4643 if (state
.backtracking
== 0) {
4644 stream_declaratorList
.add(declaratorList77
4647 if (state
.backtracking
== 0) {
4652 // elements: declarationSpecifiers, declaratorList
4654 // rule labels: retval
4655 // token list labels:
4656 // rule list labels:
4658 if (state
.backtracking
== 0) {
4659 retval
.tree
= root_0
;
4660 // RewriteRuleSubtreeStream stream_retval =
4661 new RewriteRuleSubtreeStream(
4662 adaptor
, "rule retval",
4663 retval
!= null ? retval
.tree
: null);
4665 root_0
= (CommonTree
) adaptor
.nil();
4666 // 524:11: -> ^( TYPEDEF declaratorList
4667 // declarationSpecifiers )
4669 // Grammar/CTFParser.g:524:14: ^( TYPEDEF
4670 // declaratorList declarationSpecifiers )
4672 CommonTree root_1
= (CommonTree
) adaptor
4674 root_1
= (CommonTree
) adaptor
4675 .becomeRoot(adaptor
.create(
4676 TYPEDEF
, "TYPEDEF"),
4679 adaptor
.addChild(root_1
,
4680 stream_declaratorList
4682 adaptor
.addChild(root_1
,
4683 stream_declarationSpecifiers
4686 adaptor
.addChild(root_0
, root_1
);
4691 retval
.tree
= root_0
;
4696 // Grammar/CTFParser.g:525:11:
4697 // structOrVariantDeclaratorList
4699 pushFollow(FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1685
);
4700 structOrVariantDeclaratorList78
= structOrVariantDeclaratorList();
4706 if (state
.backtracking
== 0) {
4707 stream_structOrVariantDeclaratorList
4708 .add(structOrVariantDeclaratorList78
4713 // elements: structOrVariantDeclaratorList,
4714 // declarationSpecifiers
4716 // rule labels: retval
4717 // token list labels:
4718 // rule list labels:
4720 if (state
.backtracking
== 0) {
4721 retval
.tree
= root_0
;
4722 // RewriteRuleSubtreeStream stream_retval =
4723 new RewriteRuleSubtreeStream(
4724 adaptor
, "rule retval",
4725 retval
!= null ? retval
.tree
: null);
4727 root_0
= (CommonTree
) adaptor
.nil();
4728 // 526:11: -> ^( SV_DECLARATION
4729 // declarationSpecifiers
4730 // structOrVariantDeclaratorList )
4732 // Grammar/CTFParser.g:526:14: ^(
4733 // SV_DECLARATION declarationSpecifiers
4734 // structOrVariantDeclaratorList )
4736 CommonTree root_1
= (CommonTree
) adaptor
4738 root_1
= (CommonTree
) adaptor
4739 .becomeRoot(adaptor
.create(
4744 adaptor
.addChild(root_1
,
4745 stream_declarationSpecifiers
4747 adaptor
.addChild(root_1
,
4748 stream_structOrVariantDeclaratorList
4751 adaptor
.addChild(root_0
, root_1
);
4756 retval
.tree
= root_0
;
4768 // Grammar/CTFParser.g:531:5: typealiasDecl
4770 pushFollow(FOLLOW_typealiasDecl_in_structOrVariantDeclaration1735
);
4771 typealiasDecl79
= typealiasDecl();
4777 if (state
.backtracking
== 0) {
4778 stream_typealiasDecl
.add(typealiasDecl79
.getTree());
4782 // elements: typealiasDecl
4784 // rule labels: retval
4785 // token list labels:
4786 // rule list labels:
4788 if (state
.backtracking
== 0) {
4789 retval
.tree
= root_0
;
4790 // RewriteRuleSubtreeStream stream_retval =
4791 new RewriteRuleSubtreeStream(
4792 adaptor
, "rule retval",
4793 retval
!= null ? retval
.tree
: null);
4795 root_0
= (CommonTree
) adaptor
.nil();
4796 // 531:19: -> typealiasDecl
4798 adaptor
.addChild(root_0
,
4799 stream_typealiasDecl
.nextTree());
4803 retval
.tree
= root_0
;
4810 TERM80
= (Token
) match(input
, TERM
,
4811 FOLLOW_TERM_in_structOrVariantDeclaration1747
);
4815 if (state
.backtracking
== 0) {
4816 stream_TERM
.add(TERM80
);
4821 retval
.stop
= input
.LT(-1);
4823 if (state
.backtracking
== 0) {
4825 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
4826 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
4829 if (state
.backtracking
== 0) {
4831 exit("structOrVariantDeclaration");
4836 catch (RecognitionException e
) {
4843 // $ANTLR end "structOrVariantDeclaration"
4845 public static class specifierQualifierList_return
extends
4846 ParserRuleReturnScope
{
4850 public Object
getTree() {
4855 // $ANTLR start "specifierQualifierList"
4856 // Grammar/CTFParser.g:536:1: specifierQualifierList : ( typeQualifier |
4857 // typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* (
4858 // typeSpecifier )* ) ;
4859 public final CTFParser
.specifierQualifierList_return
specifierQualifierList()
4860 throws RecognitionException
{
4861 CTFParser
.specifierQualifierList_return retval
= new CTFParser
.specifierQualifierList_return();
4862 retval
.start
= input
.LT(1);
4864 CommonTree root_0
= null;
4866 CTFParser
.typeQualifier_return typeQualifier81
= null;
4868 CTFParser
.typeSpecifier_return typeSpecifier82
= null;
4870 RewriteRuleSubtreeStream stream_typeSpecifier
= new RewriteRuleSubtreeStream(
4871 adaptor
, "rule typeSpecifier");
4872 RewriteRuleSubtreeStream stream_typeQualifier
= new RewriteRuleSubtreeStream(
4873 adaptor
, "rule typeQualifier");
4875 enter("specifierQualifierList");
4878 // Grammar/CTFParser.g:543:1: ( ( typeQualifier | typeSpecifier )+
4879 // -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* )
4881 // Grammar/CTFParser.g:544:3: ( typeQualifier | typeSpecifier )+
4883 // Grammar/CTFParser.g:544:3: ( typeQualifier | typeSpecifier )+
4887 int LA26_0
= input
.LA(1);
4889 if ((LA26_0
== CONSTTOK
)) {
4891 } else if ((((LA26_0
>= CHARTOK
) && (LA26_0
<= ENUMTOK
))
4892 || ((LA26_0
>= FLOATINGPOINTTOK
) && (LA26_0
<= SIGNEDTOK
))
4893 || ((LA26_0
>= STRINGTOK
) && (LA26_0
<= STRUCTTOK
)) || ((LA26_0
>= UNSIGNEDTOK
) && (LA26_0
<= IMAGINARYTOK
)))) {
4895 } else if ((LA26_0
== IDENTIFIER
)
4896 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
4903 // Grammar/CTFParser.g:544:4: typeQualifier
4905 pushFollow(FOLLOW_typeQualifier_in_specifierQualifierList1771
);
4906 typeQualifier81
= typeQualifier();
4912 if (state
.backtracking
== 0) {
4913 stream_typeQualifier
.add(typeQualifier81
.getTree());
4919 // Grammar/CTFParser.g:544:20: typeSpecifier
4921 pushFollow(FOLLOW_typeSpecifier_in_specifierQualifierList1775
);
4922 typeSpecifier82
= typeSpecifier();
4928 if (state
.backtracking
== 0) {
4929 stream_typeSpecifier
.add(typeSpecifier82
.getTree());
4939 if (state
.backtracking
> 0) {
4940 state
.failed
= true;
4943 EarlyExitException eee
= new EarlyExitException(26,
4951 // elements: typeSpecifier, typeQualifier
4953 // rule labels: retval
4954 // token list labels:
4955 // rule list labels:
4957 if (state
.backtracking
== 0) {
4958 retval
.tree
= root_0
;
4959 // RewriteRuleSubtreeStream stream_retval =
4960 new RewriteRuleSubtreeStream(
4961 adaptor
, "rule retval",
4962 retval
!= null ? retval
.tree
: null);
4964 root_0
= (CommonTree
) adaptor
.nil();
4965 // 544:36: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* (
4966 // typeSpecifier )* )
4968 // Grammar/CTFParser.g:544:39: ^( TYPE_SPECIFIER_LIST (
4969 // typeQualifier )* ( typeSpecifier )* )
4971 CommonTree root_1
= (CommonTree
) adaptor
.nil();
4972 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
4973 .create(TYPE_SPECIFIER_LIST
,
4974 "TYPE_SPECIFIER_LIST"), root_1
);
4976 // Grammar/CTFParser.g:544:61: ( typeQualifier )*
4977 while (stream_typeQualifier
.hasNext()) {
4978 adaptor
.addChild(root_1
,
4979 stream_typeQualifier
.nextTree());
4982 stream_typeQualifier
.reset();
4983 // Grammar/CTFParser.g:544:76: ( typeSpecifier )*
4984 while (stream_typeSpecifier
.hasNext()) {
4985 adaptor
.addChild(root_1
,
4986 stream_typeSpecifier
.nextTree());
4989 stream_typeSpecifier
.reset();
4991 adaptor
.addChild(root_0
, root_1
);
4996 retval
.tree
= root_0
;
5000 retval
.stop
= input
.LT(-1);
5002 if (state
.backtracking
== 0) {
5004 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
5005 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
5008 if (state
.backtracking
== 0) {
5010 exit("specifierQualifierList");
5015 catch (RecognitionException e
) {
5022 // $ANTLR end "specifierQualifierList"
5024 public static class structOrVariantDeclaratorList_return
extends
5025 ParserRuleReturnScope
{
5029 public Object
getTree() {
5034 // $ANTLR start "structOrVariantDeclaratorList"
5035 // Grammar/CTFParser.g:547:1: structOrVariantDeclaratorList :
5036 // structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^(
5037 // TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) ;
5038 public final CTFParser
.structOrVariantDeclaratorList_return
structOrVariantDeclaratorList()
5039 throws RecognitionException
{
5040 CTFParser
.structOrVariantDeclaratorList_return retval
= new CTFParser
.structOrVariantDeclaratorList_return();
5041 retval
.start
= input
.LT(1);
5043 CommonTree root_0
= null;
5045 Token SEPARATOR84
= null;
5046 CTFParser
.structOrVariantDeclarator_return structOrVariantDeclarator83
= null;
5048 CTFParser
.structOrVariantDeclarator_return structOrVariantDeclarator85
= null;
5050 CommonTree SEPARATOR84_tree
= null;
5051 RewriteRuleTokenStream stream_SEPARATOR
= new RewriteRuleTokenStream(
5052 adaptor
, "token SEPARATOR");
5053 RewriteRuleSubtreeStream stream_structOrVariantDeclarator
= new RewriteRuleSubtreeStream(
5054 adaptor
, "rule structOrVariantDeclarator");
5056 enter("structOrVariantDeclaratorList");
5059 // Grammar/CTFParser.g:554:1: ( structOrVariantDeclarator (
5060 // SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST
5061 // ( structOrVariantDeclarator )+ ) )
5062 // Grammar/CTFParser.g:555:3: structOrVariantDeclarator ( SEPARATOR
5063 // structOrVariantDeclarator )*
5065 pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1812
);
5066 structOrVariantDeclarator83
= structOrVariantDeclarator();
5072 if (state
.backtracking
== 0) {
5073 stream_structOrVariantDeclarator
5074 .add(structOrVariantDeclarator83
.getTree());
5076 // Grammar/CTFParser.g:555:29: ( SEPARATOR
5077 // structOrVariantDeclarator )*
5080 int LA27_0
= input
.LA(1);
5082 if ((LA27_0
== SEPARATOR
)) {
5088 // Grammar/CTFParser.g:555:30: SEPARATOR
5089 // structOrVariantDeclarator
5091 SEPARATOR84
= (Token
) match(input
, SEPARATOR
,
5092 FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1815
);
5096 if (state
.backtracking
== 0) {
5097 stream_SEPARATOR
.add(SEPARATOR84
);
5100 pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1817
);
5101 structOrVariantDeclarator85
= structOrVariantDeclarator();
5107 if (state
.backtracking
== 0) {
5108 stream_structOrVariantDeclarator
5109 .add(structOrVariantDeclarator85
.getTree());
5121 // elements: structOrVariantDeclarator
5123 // rule labels: retval
5124 // token list labels:
5125 // rule list labels:
5127 if (state
.backtracking
== 0) {
5128 retval
.tree
= root_0
;
5129 // RewriteRuleSubtreeStream stream_retval =
5130 new RewriteRuleSubtreeStream(
5131 adaptor
, "rule retval",
5132 retval
!= null ? retval
.tree
: null);
5134 root_0
= (CommonTree
) adaptor
.nil();
5135 // 555:68: -> ^( TYPE_DECLARATOR_LIST (
5136 // structOrVariantDeclarator )+ )
5138 // Grammar/CTFParser.g:555:71: ^( TYPE_DECLARATOR_LIST (
5139 // structOrVariantDeclarator )+ )
5141 CommonTree root_1
= (CommonTree
) adaptor
.nil();
5142 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
5143 .create(TYPE_DECLARATOR_LIST
,
5144 "TYPE_DECLARATOR_LIST"), root_1
);
5146 if (!(stream_structOrVariantDeclarator
.hasNext())) {
5147 throw new RewriteEarlyExitException();
5149 while (stream_structOrVariantDeclarator
.hasNext()) {
5150 adaptor
.addChild(root_1
,
5151 stream_structOrVariantDeclarator
5155 stream_structOrVariantDeclarator
.reset();
5157 adaptor
.addChild(root_0
, root_1
);
5162 retval
.tree
= root_0
;
5166 retval
.stop
= input
.LT(-1);
5168 if (state
.backtracking
== 0) {
5170 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
5171 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
5174 if (state
.backtracking
== 0) {
5176 exit("structOrVariantDeclaratorList");
5181 catch (RecognitionException e
) {
5187 // $ANTLR end "structOrVariantDeclaratorList"
5189 public static class structOrVariantDeclarator_return
extends
5190 ParserRuleReturnScope
{
5194 public Object
getTree() {
5199 // $ANTLR start "structOrVariantDeclarator"
5200 // Grammar/CTFParser.g:558:1: structOrVariantDeclarator : ( declarator (
5201 // COLON numberLiteral )? ) -> declarator ;
5202 public final CTFParser
.structOrVariantDeclarator_return
structOrVariantDeclarator()
5203 throws RecognitionException
{
5204 CTFParser
.structOrVariantDeclarator_return retval
= new CTFParser
.structOrVariantDeclarator_return();
5205 retval
.start
= input
.LT(1);
5207 CommonTree root_0
= null;
5209 Token COLON87
= null;
5210 CTFParser
.declarator_return declarator86
= null;
5212 CTFParser
.numberLiteral_return numberLiteral88
= null;
5214 CommonTree COLON87_tree
= null;
5215 RewriteRuleTokenStream stream_COLON
= new RewriteRuleTokenStream(
5216 adaptor
, "token COLON");
5217 RewriteRuleSubtreeStream stream_declarator
= new RewriteRuleSubtreeStream(
5218 adaptor
, "rule declarator");
5219 RewriteRuleSubtreeStream stream_numberLiteral
= new RewriteRuleSubtreeStream(
5220 adaptor
, "rule numberLiteral");
5222 enter("structOrVariantDeclarator");
5225 // Grammar/CTFParser.g:565:1: ( ( declarator ( COLON numberLiteral
5226 // )? ) -> declarator )
5227 // Grammar/CTFParser.g:567:5: ( declarator ( COLON numberLiteral )?
5230 // Grammar/CTFParser.g:567:5: ( declarator ( COLON numberLiteral
5232 // Grammar/CTFParser.g:567:6: declarator ( COLON numberLiteral
5235 pushFollow(FOLLOW_declarator_in_structOrVariantDeclarator1858
);
5236 declarator86
= declarator();
5242 if (state
.backtracking
== 0) {
5243 stream_declarator
.add(declarator86
.getTree());
5245 // Grammar/CTFParser.g:567:17: ( COLON numberLiteral )?
5247 int LA28_0
= input
.LA(1);
5249 if ((LA28_0
== COLON
)) {
5254 // Grammar/CTFParser.g:567:18: COLON numberLiteral
5256 COLON87
= (Token
) match(input
, COLON
,
5257 FOLLOW_COLON_in_structOrVariantDeclarator1861
);
5261 if (state
.backtracking
== 0) {
5262 stream_COLON
.add(COLON87
);
5265 pushFollow(FOLLOW_numberLiteral_in_structOrVariantDeclarator1863
);
5266 numberLiteral88
= numberLiteral();
5272 if (state
.backtracking
== 0) {
5273 stream_numberLiteral
.add(numberLiteral88
.getTree());
5284 // elements: declarator
5286 // rule labels: retval
5287 // token list labels:
5288 // rule list labels:
5290 if (state
.backtracking
== 0) {
5291 retval
.tree
= root_0
;
5292 // RewriteRuleSubtreeStream stream_retval =
5293 new RewriteRuleSubtreeStream(
5294 adaptor
, "rule retval",
5295 retval
!= null ? retval
.tree
: null);
5297 root_0
= (CommonTree
) adaptor
.nil();
5298 // 567:41: -> declarator
5300 adaptor
.addChild(root_0
, stream_declarator
.nextTree());
5304 retval
.tree
= root_0
;
5308 retval
.stop
= input
.LT(-1);
5310 if (state
.backtracking
== 0) {
5312 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
5313 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
5316 if (state
.backtracking
== 0) {
5318 exit("structOrVariantDeclarator");
5323 catch (RecognitionException e
) {
5329 // $ANTLR end "structOrVariantDeclarator"
5331 public static class variantSpecifier_return
extends ParserRuleReturnScope
{
5335 public Object
getTree() {
5340 // $ANTLR start "variantSpecifier"
5341 // Grammar/CTFParser.g:571:1: variantSpecifier : VARIANTTOK ( ( variantName
5342 // ( ( variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag
5343 // variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag
5344 // )? ( variantBody )? ) ;
5345 public final CTFParser
.variantSpecifier_return
variantSpecifier()
5346 throws RecognitionException
{
5347 CTFParser
.variantSpecifier_return retval
= new CTFParser
.variantSpecifier_return();
5348 retval
.start
= input
.LT(1);
5350 CommonTree root_0
= null;
5352 Token VARIANTTOK89
= null;
5353 CTFParser
.variantName_return variantName90
= null;
5355 CTFParser
.variantTag_return variantTag91
= null;
5357 CTFParser
.variantBody_return variantBody92
= null;
5359 CTFParser
.variantBody_return variantBody93
= null;
5361 CTFParser
.variantTag_return variantTag94
= null;
5363 CTFParser
.variantBody_return variantBody95
= null;
5365 CTFParser
.variantBody_return variantBody96
= null;
5367 CommonTree VARIANTTOK89_tree
= null;
5368 RewriteRuleTokenStream stream_VARIANTTOK
= new RewriteRuleTokenStream(
5369 adaptor
, "token VARIANTTOK");
5370 RewriteRuleSubtreeStream stream_variantName
= new RewriteRuleSubtreeStream(
5371 adaptor
, "rule variantName");
5372 RewriteRuleSubtreeStream stream_variantTag
= new RewriteRuleSubtreeStream(
5373 adaptor
, "rule variantTag");
5374 RewriteRuleSubtreeStream stream_variantBody
= new RewriteRuleSubtreeStream(
5375 adaptor
, "rule variantBody");
5377 enter("variantSpecifier");
5380 // Grammar/CTFParser.g:578:1: ( VARIANTTOK ( ( variantName ( (
5381 // variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag
5382 // variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? (
5383 // variantTag )? ( variantBody )? ) )
5384 // Grammar/CTFParser.g:579:3: VARIANTTOK ( ( variantName ( (
5385 // variantTag ( variantBody | ) ) | variantBody ) ) | ( variantTag
5386 // variantBody ) | variantBody )
5388 VARIANTTOK89
= (Token
) match(input
, VARIANTTOK
,
5389 FOLLOW_VARIANTTOK_in_variantSpecifier1897
);
5393 if (state
.backtracking
== 0) {
5394 stream_VARIANTTOK
.add(VARIANTTOK89
);
5397 // Grammar/CTFParser.g:580:3: ( ( variantName ( ( variantTag (
5398 // variantBody | ) ) | variantBody ) ) | ( variantTag
5399 // variantBody ) | variantBody )
5401 switch (input
.LA(1)) {
5415 if (state
.backtracking
> 0) {
5416 state
.failed
= true;
5419 NoViableAltException nvae
= new NoViableAltException("",
5427 // Grammar/CTFParser.g:581:5: ( variantName ( ( variantTag (
5428 // variantBody | ) ) | variantBody ) )
5430 // Grammar/CTFParser.g:581:5: ( variantName ( ( variantTag (
5431 // variantBody | ) ) | variantBody ) )
5432 // Grammar/CTFParser.g:582:7: variantName ( ( variantTag (
5433 // variantBody | ) ) | variantBody )
5435 pushFollow(FOLLOW_variantName_in_variantSpecifier1915
);
5436 variantName90
= variantName();
5442 if (state
.backtracking
== 0) {
5443 stream_variantName
.add(variantName90
.getTree());
5445 // Grammar/CTFParser.g:583:7: ( ( variantTag (
5446 // variantBody | ) ) | variantBody )
5448 int LA30_0
= input
.LA(1);
5450 if ((LA30_0
== LT
)) {
5452 } else if ((LA30_0
== LCURL
)) {
5455 if (state
.backtracking
> 0) {
5456 state
.failed
= true;
5459 NoViableAltException nvae
= new NoViableAltException(
5466 // Grammar/CTFParser.g:584:9: ( variantTag ( variantBody
5469 // Grammar/CTFParser.g:584:9: ( variantTag (
5470 // variantBody | ) )
5471 // Grammar/CTFParser.g:585:11: variantTag (
5474 pushFollow(FOLLOW_variantTag_in_variantSpecifier1946
);
5475 variantTag91
= variantTag();
5481 if (state
.backtracking
== 0) {
5482 stream_variantTag
.add(variantTag91
5485 // Grammar/CTFParser.g:586:11: ( variantBody | )
5487 int LA29_0
= input
.LA(1);
5489 if ((LA29_0
== LCURL
)) {
5490 switch (input
.LA(2)) {
5495 case FLOATINGPOINTTOK
:
5509 case IMAGINARYTOK
: {
5514 int LA29_4
= input
.LA(3);
5516 if ((((LA29_4
>= CONSTTOK
) && (LA29_4
<= ENUMTOK
))
5517 || ((LA29_4
>= FLOATINGPOINTTOK
) && (LA29_4
<= SIGNEDTOK
))
5518 || ((LA29_4
>= STRINGTOK
) && (LA29_4
<= STRUCTTOK
))
5519 || ((LA29_4
>= TYPEDEFTOK
) && (LA29_4
<= IMAGINARYTOK
))
5520 || (LA29_4
== POINTER
) || (LA29_4
== IDENTIFIER
))) {
5522 } else if (((LA29_4
== SEPARATOR
)
5523 || (LA29_4
== ASSIGNMENT
) || (LA29_4
== RCURL
))) {
5526 if (state
.backtracking
> 0) {
5527 state
.failed
= true;
5530 NoViableAltException nvae
= new NoViableAltException(
5538 int LA29_5
= input
.LA(3);
5540 if (((LA29_5
== SEPARATOR
)
5541 || (LA29_5
== ASSIGNMENT
) || (LA29_5
== RCURL
))) {
5543 } else if ((((LA29_5
>= CONSTTOK
) && (LA29_5
<= ENUMTOK
))
5544 || ((LA29_5
>= FLOATINGPOINTTOK
) && (LA29_5
<= SIGNEDTOK
))
5545 || ((LA29_5
>= STRINGTOK
) && (LA29_5
<= STRUCTTOK
))
5546 || ((LA29_5
>= TYPEDEFTOK
) && (LA29_5
<= IMAGINARYTOK
))
5547 || (LA29_5
== LCURL
)
5548 || (LA29_5
== POINTER
) || (LA29_5
== IDENTIFIER
))) {
5551 if (state
.backtracking
> 0) {
5552 state
.failed
= true;
5555 NoViableAltException nvae
= new NoViableAltException(
5563 int LA29_6
= input
.LA(3);
5565 if (((LA29_6
== SEPARATOR
)
5566 || (LA29_6
== ASSIGNMENT
) || (LA29_6
== RCURL
))) {
5568 } else if ((((LA29_6
>= CONSTTOK
) && (LA29_6
<= ENUMTOK
))
5569 || ((LA29_6
>= FLOATINGPOINTTOK
) && (LA29_6
<= SIGNEDTOK
))
5570 || ((LA29_6
>= STRINGTOK
) && (LA29_6
<= STRUCTTOK
))
5571 || ((LA29_6
>= TYPEDEFTOK
) && (LA29_6
<= IMAGINARYTOK
))
5572 || (LA29_6
== POINTER
) || (LA29_6
== IDENTIFIER
))) {
5575 if (state
.backtracking
> 0) {
5576 state
.failed
= true;
5579 NoViableAltException nvae
= new NoViableAltException(
5588 case STRING_LITERAL
: {
5593 if (state
.backtracking
> 0) {
5594 state
.failed
= true;
5597 NoViableAltException nvae
= new NoViableAltException(
5603 } else if (((LA29_0
== EOF
)
5604 || ((LA29_0
>= CONSTTOK
) && (LA29_0
<= ENUMTOK
))
5605 || ((LA29_0
>= FLOATINGPOINTTOK
) && (LA29_0
<= SIGNEDTOK
))
5606 || ((LA29_0
>= STRINGTOK
) && (LA29_0
<= STRUCTTOK
))
5607 || ((LA29_0
>= TYPEDEFTOK
) && (LA29_0
<= IMAGINARYTOK
))
5608 || (LA29_0
== TYPE_ASSIGNMENT
)
5609 || (LA29_0
== LPAREN
)
5610 || ((LA29_0
>= TERM
) && (LA29_0
<= POINTER
)) || (LA29_0
== IDENTIFIER
))) {
5613 if (state
.backtracking
> 0) {
5614 state
.failed
= true;
5617 NoViableAltException nvae
= new NoViableAltException(
5624 // Grammar/CTFParser.g:587:13: variantBody
5626 pushFollow(FOLLOW_variantBody_in_variantSpecifier1972
);
5627 variantBody92
= variantBody();
5633 if (state
.backtracking
== 0) {
5634 stream_variantBody
.add(variantBody92
5650 // Grammar/CTFParser.g:593:9: variantBody
5652 pushFollow(FOLLOW_variantBody_in_variantSpecifier2040
);
5653 variantBody93
= variantBody();
5659 if (state
.backtracking
== 0) {
5660 stream_variantBody
.add(variantBody93
.getTree());
5673 // Grammar/CTFParser.g:597:5: ( variantTag variantBody )
5675 // Grammar/CTFParser.g:597:5: ( variantTag variantBody )
5676 // Grammar/CTFParser.g:597:6: variantTag variantBody
5678 pushFollow(FOLLOW_variantTag_in_variantSpecifier2065
);
5679 variantTag94
= variantTag();
5685 if (state
.backtracking
== 0) {
5686 stream_variantTag
.add(variantTag94
.getTree());
5688 pushFollow(FOLLOW_variantBody_in_variantSpecifier2067
);
5689 variantBody95
= variantBody();
5695 if (state
.backtracking
== 0) {
5696 stream_variantBody
.add(variantBody95
.getTree());
5704 // Grammar/CTFParser.g:599:5: variantBody
5706 pushFollow(FOLLOW_variantBody_in_variantSpecifier2078
);
5707 variantBody96
= variantBody();
5713 if (state
.backtracking
== 0) {
5714 stream_variantBody
.add(variantBody96
.getTree());
5723 // elements: variantBody, variantTag, variantName
5725 // rule labels: retval
5726 // token list labels:
5727 // rule list labels:
5729 if (state
.backtracking
== 0) {
5730 retval
.tree
= root_0
;
5731 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
5732 adaptor
, "rule retval",
5733 retval
!= null ? retval
.tree
: null);
5735 root_0
= (CommonTree
) adaptor
.nil();
5736 // 600:5: -> ^( VARIANT ( variantName )? ( variantTag )? (
5739 // Grammar/CTFParser.g:600:8: ^( VARIANT ( variantName
5740 // )? ( variantTag )? ( variantBody )? )
5742 CommonTree root_1
= (CommonTree
) adaptor
.nil();
5743 root_1
= (CommonTree
) adaptor
.becomeRoot(
5744 adaptor
.create(VARIANT
, "VARIANT"), root_1
);
5746 // Grammar/CTFParser.g:600:18: ( variantName )?
5747 if (stream_variantName
.hasNext()) {
5748 adaptor
.addChild(root_1
,
5749 stream_variantName
.nextTree());
5752 stream_variantName
.reset();
5753 // Grammar/CTFParser.g:600:31: ( variantTag )?
5754 if (stream_variantTag
.hasNext()) {
5755 adaptor
.addChild(root_1
,
5756 stream_variantTag
.nextTree());
5759 stream_variantTag
.reset();
5760 // Grammar/CTFParser.g:600:43: ( variantBody )?
5761 if (stream_variantBody
.hasNext()) {
5762 adaptor
.addChild(root_1
,
5763 stream_variantBody
.nextTree());
5766 stream_variantBody
.reset();
5768 adaptor
.addChild(root_0
, root_1
);
5773 retval
.tree
= root_0
;
5777 retval
.stop
= input
.LT(-1);
5779 if (state
.backtracking
== 0) {
5781 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
5782 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
5785 if (state
.backtracking
== 0) {
5787 exit("variantSpecifier");
5792 catch (RecognitionException e
) {
5798 // $ANTLR end "variantSpecifier"
5800 public static class variantName_return
extends ParserRuleReturnScope
{
5804 public Object
getTree() {
5809 // $ANTLR start "variantName"
5810 // Grammar/CTFParser.g:603:1: variantName : IDENTIFIER -> ^( VARIANT_NAME
5812 public final CTFParser
.variantName_return
variantName()
5813 throws RecognitionException
{
5814 CTFParser
.variantName_return retval
= new CTFParser
.variantName_return();
5815 retval
.start
= input
.LT(1);
5817 CommonTree root_0
= null;
5819 Token IDENTIFIER97
= null;
5821 CommonTree IDENTIFIER97_tree
= null;
5822 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
5823 adaptor
, "token IDENTIFIER");
5825 enter("variantName");
5828 // Grammar/CTFParser.g:611:1: ( IDENTIFIER -> ^( VARIANT_NAME
5830 // Grammar/CTFParser.g:612:3: IDENTIFIER
5832 IDENTIFIER97
= (Token
) match(input
, IDENTIFIER
,
5833 FOLLOW_IDENTIFIER_in_variantName2120
);
5837 if (state
.backtracking
== 0) {
5838 stream_IDENTIFIER
.add(IDENTIFIER97
);
5842 // elements: IDENTIFIER
5844 // rule labels: retval
5845 // token list labels:
5846 // rule list labels:
5848 if (state
.backtracking
== 0) {
5849 retval
.tree
= root_0
;
5850 // RewriteRuleSubtreeStream stream_retval =
5851 new RewriteRuleSubtreeStream(
5852 adaptor
, "rule retval",
5853 retval
!= null ? retval
.tree
: null);
5855 root_0
= (CommonTree
) adaptor
.nil();
5856 // 612:14: -> ^( VARIANT_NAME IDENTIFIER )
5858 // Grammar/CTFParser.g:612:17: ^( VARIANT_NAME
5861 CommonTree root_1
= (CommonTree
) adaptor
.nil();
5862 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
5863 .create(VARIANT_NAME
, "VARIANT_NAME"),
5866 adaptor
.addChild(root_1
,
5867 stream_IDENTIFIER
.nextNode());
5869 adaptor
.addChild(root_0
, root_1
);
5874 retval
.tree
= root_0
;
5878 retval
.stop
= input
.LT(-1);
5880 if (state
.backtracking
== 0) {
5882 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
5883 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
5886 if (state
.backtracking
== 0) {
5888 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
5889 exit("variantName");
5894 catch (RecognitionException e
) {
5900 // $ANTLR end "variantName"
5902 public static class variantBody_return
extends ParserRuleReturnScope
{
5906 public Object
getTree() {
5911 // $ANTLR start "variantBody"
5912 // Grammar/CTFParser.g:615:1: variantBody : LCURL
5913 // structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY
5914 // structOrVariantDeclarationList ) ;
5915 public final CTFParser
.variantBody_return
variantBody()
5916 throws RecognitionException
{
5917 Symbols_stack
.push(new Symbols_scope());
5919 CTFParser
.variantBody_return retval
= new CTFParser
.variantBody_return();
5920 retval
.start
= input
.LT(1);
5922 CommonTree root_0
= null;
5924 Token LCURL98
= null;
5925 Token RCURL100
= null;
5926 CTFParser
.structOrVariantDeclarationList_return structOrVariantDeclarationList99
= null;
5928 CommonTree LCURL98_tree
= null;
5929 CommonTree RCURL100_tree
= null;
5930 RewriteRuleTokenStream stream_LCURL
= new RewriteRuleTokenStream(
5931 adaptor
, "token LCURL");
5932 RewriteRuleTokenStream stream_RCURL
= new RewriteRuleTokenStream(
5933 adaptor
, "token RCURL");
5934 RewriteRuleSubtreeStream stream_structOrVariantDeclarationList
= new RewriteRuleSubtreeStream(
5935 adaptor
, "rule structOrVariantDeclarationList");
5937 enter("variantBody");
5938 debug_print("Scope push " + Symbols_stack
.size());
5939 ((Symbols_scope
) Symbols_stack
.peek()).types
= new HashSet
<String
>();
5942 // Grammar/CTFParser.g:626:1: ( LCURL structOrVariantDeclarationList
5943 // RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) )
5944 // Grammar/CTFParser.g:627:3: LCURL structOrVariantDeclarationList
5947 LCURL98
= (Token
) match(input
, LCURL
,
5948 FOLLOW_LCURL_in_variantBody2156
);
5952 if (state
.backtracking
== 0) {
5953 stream_LCURL
.add(LCURL98
);
5956 pushFollow(FOLLOW_structOrVariantDeclarationList_in_variantBody2158
);
5957 structOrVariantDeclarationList99
= structOrVariantDeclarationList();
5963 if (state
.backtracking
== 0) {
5964 stream_structOrVariantDeclarationList
5965 .add(structOrVariantDeclarationList99
.getTree());
5967 RCURL100
= (Token
) match(input
, RCURL
,
5968 FOLLOW_RCURL_in_variantBody2160
);
5972 if (state
.backtracking
== 0) {
5973 stream_RCURL
.add(RCURL100
);
5977 // elements: structOrVariantDeclarationList
5979 // rule labels: retval
5980 // token list labels:
5981 // rule list labels:
5983 if (state
.backtracking
== 0) {
5984 retval
.tree
= root_0
;
5985 // RewriteRuleSubtreeStream stream_retval =
5986 new RewriteRuleSubtreeStream(
5987 adaptor
, "rule retval",
5988 retval
!= null ? retval
.tree
: null);
5990 root_0
= (CommonTree
) adaptor
.nil();
5991 // 627:46: -> ^( VARIANT_BODY structOrVariantDeclarationList
5994 // Grammar/CTFParser.g:627:49: ^( VARIANT_BODY
5995 // structOrVariantDeclarationList )
5997 CommonTree root_1
= (CommonTree
) adaptor
.nil();
5998 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
5999 .create(VARIANT_BODY
, "VARIANT_BODY"),
6002 adaptor
.addChild(root_1
,
6003 stream_structOrVariantDeclarationList
6006 adaptor
.addChild(root_0
, root_1
);
6011 retval
.tree
= root_0
;
6015 retval
.stop
= input
.LT(-1);
6017 if (state
.backtracking
== 0) {
6019 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6020 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6023 if (state
.backtracking
== 0) {
6025 debug_print("Scope pop " + Symbols_stack
.size());
6026 exit("variantBody");
6031 catch (RecognitionException e
) {
6034 Symbols_stack
.pop();
6040 // $ANTLR end "variantBody"
6042 public static class variantTag_return
extends ParserRuleReturnScope
{
6046 public Object
getTree() {
6051 // $ANTLR start "variantTag"
6052 // Grammar/CTFParser.g:630:1: variantTag : LT IDENTIFIER GT -> ^(
6053 // VARIANT_TAG IDENTIFIER ) ;
6054 public final CTFParser
.variantTag_return
variantTag()
6055 throws RecognitionException
{
6056 CTFParser
.variantTag_return retval
= new CTFParser
.variantTag_return();
6057 retval
.start
= input
.LT(1);
6059 CommonTree root_0
= null;
6062 Token IDENTIFIER102
= null;
6065 CommonTree LT101_tree
= null;
6066 CommonTree IDENTIFIER102_tree
= null;
6067 CommonTree GT103_tree
= null;
6068 RewriteRuleTokenStream stream_GT
= new RewriteRuleTokenStream(adaptor
,
6070 RewriteRuleTokenStream stream_LT
= new RewriteRuleTokenStream(adaptor
,
6072 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
6073 adaptor
, "token IDENTIFIER");
6075 enter("variantTag");
6078 // Grammar/CTFParser.g:638:1: ( LT IDENTIFIER GT -> ^( VARIANT_TAG
6080 // Grammar/CTFParser.g:639:3: LT IDENTIFIER GT
6082 LT101
= (Token
) match(input
, LT
, FOLLOW_LT_in_variantTag2191
);
6086 if (state
.backtracking
== 0) {
6087 stream_LT
.add(LT101
);
6090 IDENTIFIER102
= (Token
) match(input
, IDENTIFIER
,
6091 FOLLOW_IDENTIFIER_in_variantTag2193
);
6095 if (state
.backtracking
== 0) {
6096 stream_IDENTIFIER
.add(IDENTIFIER102
);
6099 GT103
= (Token
) match(input
, GT
, FOLLOW_GT_in_variantTag2195
);
6103 if (state
.backtracking
== 0) {
6104 stream_GT
.add(GT103
);
6108 // elements: IDENTIFIER
6110 // rule labels: retval
6111 // token list labels:
6112 // rule list labels:
6114 if (state
.backtracking
== 0) {
6115 retval
.tree
= root_0
;
6116 // RewriteRuleSubtreeStream stream_retval =
6117 new RewriteRuleSubtreeStream(
6118 adaptor
, "rule retval",
6119 retval
!= null ? retval
.tree
: null);
6121 root_0
= (CommonTree
) adaptor
.nil();
6122 // 639:20: -> ^( VARIANT_TAG IDENTIFIER )
6124 // Grammar/CTFParser.g:639:23: ^( VARIANT_TAG IDENTIFIER
6127 CommonTree root_1
= (CommonTree
) adaptor
.nil();
6128 root_1
= (CommonTree
) adaptor
.becomeRoot(
6129 adaptor
.create(VARIANT_TAG
, "VARIANT_TAG"),
6132 adaptor
.addChild(root_1
,
6133 stream_IDENTIFIER
.nextNode());
6135 adaptor
.addChild(root_0
, root_1
);
6140 retval
.tree
= root_0
;
6144 retval
.stop
= input
.LT(-1);
6146 if (state
.backtracking
== 0) {
6148 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6149 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6152 if (state
.backtracking
== 0) {
6154 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
6160 catch (RecognitionException e
) {
6167 // $ANTLR end "variantTag"
6169 public static class enumSpecifier_return
extends ParserRuleReturnScope
{
6173 public Object
getTree() {
6178 // $ANTLR start "enumSpecifier"
6179 // Grammar/CTFParser.g:642:1: enumSpecifier : ENUMTOK ( ( enumName (
6180 // enumContainerType enumBody | enumBody | ) ) | ( enumContainerType
6181 // enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? (
6183 public final CTFParser
.enumSpecifier_return
enumSpecifier()
6184 throws RecognitionException
{
6185 CTFParser
.enumSpecifier_return retval
= new CTFParser
.enumSpecifier_return();
6186 retval
.start
= input
.LT(1);
6188 CommonTree root_0
= null;
6190 Token ENUMTOK104
= null;
6191 CTFParser
.enumName_return enumName105
= null;
6193 CTFParser
.enumContainerType_return enumContainerType106
= null;
6195 CTFParser
.enumBody_return enumBody107
= null;
6197 CTFParser
.enumBody_return enumBody108
= null;
6199 CTFParser
.enumContainerType_return enumContainerType109
= null;
6201 CTFParser
.enumBody_return enumBody110
= null;
6203 CTFParser
.enumBody_return enumBody111
= null;
6205 CommonTree ENUMTOK104_tree
= null;
6206 RewriteRuleTokenStream stream_ENUMTOK
= new RewriteRuleTokenStream(
6207 adaptor
, "token ENUMTOK");
6208 RewriteRuleSubtreeStream stream_enumName
= new RewriteRuleSubtreeStream(
6209 adaptor
, "rule enumName");
6210 RewriteRuleSubtreeStream stream_enumContainerType
= new RewriteRuleSubtreeStream(
6211 adaptor
, "rule enumContainerType");
6212 RewriteRuleSubtreeStream stream_enumBody
= new RewriteRuleSubtreeStream(
6213 adaptor
, "rule enumBody");
6215 enter("enumSpecifier");
6218 // Grammar/CTFParser.g:649:1: ( ENUMTOK ( ( enumName (
6219 // enumContainerType enumBody | enumBody | ) ) | ( enumContainerType
6220 // enumBody | enumBody ) ) -> ^( ENUM ( enumName )? (
6221 // enumContainerType )? ( enumBody )? ) )
6222 // Grammar/CTFParser.g:650:2: ENUMTOK ( ( enumName (
6223 // enumContainerType enumBody | enumBody | ) ) | ( enumContainerType
6224 // enumBody | enumBody ) )
6226 ENUMTOK104
= (Token
) match(input
, ENUMTOK
,
6227 FOLLOW_ENUMTOK_in_enumSpecifier2225
);
6231 if (state
.backtracking
== 0) {
6232 stream_ENUMTOK
.add(ENUMTOK104
);
6235 // Grammar/CTFParser.g:651:2: ( ( enumName ( enumContainerType
6236 // enumBody | enumBody | ) ) | ( enumContainerType enumBody |
6239 int LA34_0
= input
.LA(1);
6241 if ((LA34_0
== IDENTIFIER
)) {
6243 } else if (((LA34_0
== COLON
) || (LA34_0
== LCURL
))) {
6246 if (state
.backtracking
> 0) {
6247 state
.failed
= true;
6250 NoViableAltException nvae
= new NoViableAltException("",
6257 // Grammar/CTFParser.g:653:3: ( enumName ( enumContainerType
6258 // enumBody | enumBody | ) )
6260 // Grammar/CTFParser.g:653:3: ( enumName ( enumContainerType
6261 // enumBody | enumBody | ) )
6262 // Grammar/CTFParser.g:654:4: enumName ( enumContainerType
6263 // enumBody | enumBody | )
6265 pushFollow(FOLLOW_enumName_in_enumSpecifier2240
);
6266 enumName105
= enumName();
6272 if (state
.backtracking
== 0) {
6273 stream_enumName
.add(enumName105
.getTree());
6275 // Grammar/CTFParser.g:655:4: ( enumContainerType
6276 // enumBody | enumBody | )
6278 alt32
= dfa32
.predict(input
);
6281 // Grammar/CTFParser.g:656:5: enumContainerType enumBody
6283 pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2251
);
6284 enumContainerType106
= enumContainerType();
6290 if (state
.backtracking
== 0) {
6291 stream_enumContainerType
6292 .add(enumContainerType106
.getTree());
6294 pushFollow(FOLLOW_enumBody_in_enumSpecifier2253
);
6295 enumBody107
= enumBody();
6301 if (state
.backtracking
== 0) {
6302 stream_enumBody
.add(enumBody107
.getTree());
6308 // Grammar/CTFParser.g:658:5: enumBody
6310 pushFollow(FOLLOW_enumBody_in_enumSpecifier2265
);
6311 enumBody108
= enumBody();
6317 if (state
.backtracking
== 0) {
6318 stream_enumBody
.add(enumBody108
.getTree());
6330 // Grammar/CTFParser.g:665:3: ( enumContainerType enumBody |
6333 // Grammar/CTFParser.g:665:3: ( enumContainerType enumBody |
6336 int LA33_0
= input
.LA(1);
6338 if ((LA33_0
== COLON
)) {
6340 } else if ((LA33_0
== LCURL
)) {
6343 if (state
.backtracking
> 0) {
6344 state
.failed
= true;
6347 NoViableAltException nvae
= new NoViableAltException(
6354 // Grammar/CTFParser.g:666:4: enumContainerType enumBody
6356 pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2300
);
6357 enumContainerType109
= enumContainerType();
6363 if (state
.backtracking
== 0) {
6364 stream_enumContainerType
.add(enumContainerType109
6367 pushFollow(FOLLOW_enumBody_in_enumSpecifier2302
);
6368 enumBody110
= enumBody();
6374 if (state
.backtracking
== 0) {
6375 stream_enumBody
.add(enumBody110
.getTree());
6381 // Grammar/CTFParser.g:668:4: enumBody
6383 pushFollow(FOLLOW_enumBody_in_enumSpecifier2311
);
6384 enumBody111
= enumBody();
6390 if (state
.backtracking
== 0) {
6391 stream_enumBody
.add(enumBody111
.getTree());
6405 // elements: enumContainerType, enumName, enumBody
6407 // rule labels: retval
6408 // token list labels:
6409 // rule list labels:
6411 if (state
.backtracking
== 0) {
6412 retval
.tree
= root_0
;
6413 // RewriteRuleSubtreeStream stream_retval =
6414 new RewriteRuleSubtreeStream(
6415 adaptor
, "rule retval",
6416 retval
!= null ? retval
.tree
: null);
6418 root_0
= (CommonTree
) adaptor
.nil();
6419 // 670:4: -> ^( ENUM ( enumName )? ( enumContainerType )? (
6422 // Grammar/CTFParser.g:670:7: ^( ENUM ( enumName )? (
6423 // enumContainerType )? ( enumBody )? )
6425 CommonTree root_1
= (CommonTree
) adaptor
.nil();
6426 root_1
= (CommonTree
) adaptor
.becomeRoot(
6427 adaptor
.create(ENUM
, "ENUM"), root_1
);
6429 // Grammar/CTFParser.g:670:14: ( enumName )?
6430 if (stream_enumName
.hasNext()) {
6431 adaptor
.addChild(root_1
,
6432 stream_enumName
.nextTree());
6435 stream_enumName
.reset();
6436 // Grammar/CTFParser.g:670:24: ( enumContainerType
6438 if (stream_enumContainerType
.hasNext()) {
6439 adaptor
.addChild(root_1
,
6440 stream_enumContainerType
.nextTree());
6443 stream_enumContainerType
.reset();
6444 // Grammar/CTFParser.g:670:43: ( enumBody )?
6445 if (stream_enumBody
.hasNext()) {
6446 adaptor
.addChild(root_1
,
6447 stream_enumBody
.nextTree());
6450 stream_enumBody
.reset();
6452 adaptor
.addChild(root_0
, root_1
);
6457 retval
.tree
= root_0
;
6461 retval
.stop
= input
.LT(-1);
6463 if (state
.backtracking
== 0) {
6465 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6466 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6469 if (state
.backtracking
== 0) {
6471 exit("enumSpecifier");
6476 catch (RecognitionException e
) {
6483 // $ANTLR end "enumSpecifier"
6485 public static class enumName_return
extends ParserRuleReturnScope
{
6489 public Object
getTree() {
6494 // $ANTLR start "enumName"
6495 // Grammar/CTFParser.g:673:1: enumName : IDENTIFIER -> ^( ENUM_NAME
6497 public final CTFParser
.enumName_return
enumName()
6498 throws RecognitionException
{
6499 CTFParser
.enumName_return retval
= new CTFParser
.enumName_return();
6500 retval
.start
= input
.LT(1);
6502 CommonTree root_0
= null;
6504 Token IDENTIFIER112
= null;
6506 CommonTree IDENTIFIER112_tree
= null;
6507 RewriteRuleTokenStream stream_IDENTIFIER
= new RewriteRuleTokenStream(
6508 adaptor
, "token IDENTIFIER");
6513 // Grammar/CTFParser.g:681:1: ( IDENTIFIER -> ^( ENUM_NAME
6515 // Grammar/CTFParser.g:682:3: IDENTIFIER
6517 IDENTIFIER112
= (Token
) match(input
, IDENTIFIER
,
6518 FOLLOW_IDENTIFIER_in_enumName2356
);
6522 if (state
.backtracking
== 0) {
6523 stream_IDENTIFIER
.add(IDENTIFIER112
);
6527 // elements: IDENTIFIER
6529 // rule labels: retval
6530 // token list labels:
6531 // rule list labels:
6533 if (state
.backtracking
== 0) {
6534 retval
.tree
= root_0
;
6535 // RewriteRuleSubtreeStream stream_retval =
6536 new RewriteRuleSubtreeStream(
6537 adaptor
, "rule retval",
6538 retval
!= null ? retval
.tree
: null);
6540 root_0
= (CommonTree
) adaptor
.nil();
6541 // 682:14: -> ^( ENUM_NAME IDENTIFIER )
6543 // Grammar/CTFParser.g:682:17: ^( ENUM_NAME IDENTIFIER )
6545 CommonTree root_1
= (CommonTree
) adaptor
.nil();
6546 root_1
= (CommonTree
) adaptor
.becomeRoot(
6547 adaptor
.create(ENUM_NAME
, "ENUM_NAME"),
6550 adaptor
.addChild(root_1
,
6551 stream_IDENTIFIER
.nextNode());
6553 adaptor
.addChild(root_0
, root_1
);
6558 retval
.tree
= root_0
;
6562 retval
.stop
= input
.LT(-1);
6564 if (state
.backtracking
== 0) {
6566 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6567 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6570 if (state
.backtracking
== 0) {
6572 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
6578 catch (RecognitionException e
) {
6585 // $ANTLR end "enumName"
6587 public static class enumBody_return
extends ParserRuleReturnScope
{
6591 public Object
getTree() {
6596 // $ANTLR start "enumBody"
6597 // Grammar/CTFParser.g:685:1: enumBody : LCURL enumeratorList ( SEPARATOR
6598 // RCURL | RCURL ) -> ^( ENUM_BODY enumeratorList ) ;
6599 public final CTFParser
.enumBody_return
enumBody()
6600 throws RecognitionException
{
6601 CTFParser
.enumBody_return retval
= new CTFParser
.enumBody_return();
6602 retval
.start
= input
.LT(1);
6604 CommonTree root_0
= null;
6606 Token LCURL113
= null;
6607 Token SEPARATOR115
= null;
6608 Token RCURL116
= null;
6609 Token RCURL117
= null;
6610 CTFParser
.enumeratorList_return enumeratorList114
= null;
6612 CommonTree LCURL113_tree
= null;
6613 CommonTree SEPARATOR115_tree
= null;
6614 CommonTree RCURL116_tree
= null;
6615 CommonTree RCURL117_tree
= null;
6616 RewriteRuleTokenStream stream_LCURL
= new RewriteRuleTokenStream(
6617 adaptor
, "token LCURL");
6618 RewriteRuleTokenStream stream_SEPARATOR
= new RewriteRuleTokenStream(
6619 adaptor
, "token SEPARATOR");
6620 RewriteRuleTokenStream stream_RCURL
= new RewriteRuleTokenStream(
6621 adaptor
, "token RCURL");
6622 RewriteRuleSubtreeStream stream_enumeratorList
= new RewriteRuleSubtreeStream(
6623 adaptor
, "rule enumeratorList");
6628 // Grammar/CTFParser.g:692:1: ( LCURL enumeratorList ( SEPARATOR
6629 // RCURL | RCURL ) -> ^( ENUM_BODY enumeratorList ) )
6630 // Grammar/CTFParser.g:693:3: LCURL enumeratorList ( SEPARATOR RCURL
6633 LCURL113
= (Token
) match(input
, LCURL
,
6634 FOLLOW_LCURL_in_enumBody2389
);
6638 if (state
.backtracking
== 0) {
6639 stream_LCURL
.add(LCURL113
);
6642 pushFollow(FOLLOW_enumeratorList_in_enumBody2391
);
6643 enumeratorList114
= enumeratorList();
6649 if (state
.backtracking
== 0) {
6650 stream_enumeratorList
.add(enumeratorList114
.getTree());
6652 // Grammar/CTFParser.g:693:24: ( SEPARATOR RCURL | RCURL )
6654 int LA35_0
= input
.LA(1);
6656 if ((LA35_0
== SEPARATOR
)) {
6658 } else if ((LA35_0
== RCURL
)) {
6661 if (state
.backtracking
> 0) {
6662 state
.failed
= true;
6665 NoViableAltException nvae
= new NoViableAltException("",
6672 // Grammar/CTFParser.g:693:25: SEPARATOR RCURL
6674 SEPARATOR115
= (Token
) match(input
, SEPARATOR
,
6675 FOLLOW_SEPARATOR_in_enumBody2394
);
6679 if (state
.backtracking
== 0) {
6680 stream_SEPARATOR
.add(SEPARATOR115
);
6683 RCURL116
= (Token
) match(input
, RCURL
,
6684 FOLLOW_RCURL_in_enumBody2396
);
6688 if (state
.backtracking
== 0) {
6689 stream_RCURL
.add(RCURL116
);
6695 // Grammar/CTFParser.g:693:43: RCURL
6697 RCURL117
= (Token
) match(input
, RCURL
,
6698 FOLLOW_RCURL_in_enumBody2400
);
6702 if (state
.backtracking
== 0) {
6703 stream_RCURL
.add(RCURL117
);
6712 // elements: enumeratorList
6714 // rule labels: retval
6715 // token list labels:
6716 // rule list labels:
6718 if (state
.backtracking
== 0) {
6719 retval
.tree
= root_0
;
6720 // RewriteRuleSubtreeStream stream_retval =
6721 new RewriteRuleSubtreeStream(
6722 adaptor
, "rule retval",
6723 retval
!= null ? retval
.tree
: null);
6725 root_0
= (CommonTree
) adaptor
.nil();
6726 // 693:50: -> ^( ENUM_BODY enumeratorList )
6728 // Grammar/CTFParser.g:693:53: ^( ENUM_BODY
6731 CommonTree root_1
= (CommonTree
) adaptor
.nil();
6732 root_1
= (CommonTree
) adaptor
.becomeRoot(
6733 adaptor
.create(ENUM_BODY
, "ENUM_BODY"),
6736 adaptor
.addChild(root_1
,
6737 stream_enumeratorList
.nextTree());
6739 adaptor
.addChild(root_0
, root_1
);
6744 retval
.tree
= root_0
;
6748 retval
.stop
= input
.LT(-1);
6750 if (state
.backtracking
== 0) {
6752 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6753 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6756 if (state
.backtracking
== 0) {
6763 catch (RecognitionException e
) {
6770 // $ANTLR end "enumBody"
6772 public static class enumContainerType_return
extends ParserRuleReturnScope
{
6776 public Object
getTree() {
6781 // $ANTLR start "enumContainerType"
6782 // Grammar/CTFParser.g:696:1: enumContainerType : COLON
6783 // declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) ;
6784 public final CTFParser
.enumContainerType_return
enumContainerType()
6785 throws RecognitionException
{
6786 CTFParser
.enumContainerType_return retval
= new CTFParser
.enumContainerType_return();
6787 retval
.start
= input
.LT(1);
6789 CommonTree root_0
= null;
6791 Token COLON118
= null;
6792 CTFParser
.declarationSpecifiers_return declarationSpecifiers119
= null;
6794 CommonTree COLON118_tree
= null;
6795 RewriteRuleTokenStream stream_COLON
= new RewriteRuleTokenStream(
6796 adaptor
, "token COLON");
6797 RewriteRuleSubtreeStream stream_declarationSpecifiers
= new RewriteRuleSubtreeStream(
6798 adaptor
, "rule declarationSpecifiers");
6800 enter("enumContainerType");
6803 // Grammar/CTFParser.g:703:1: ( COLON declarationSpecifiers -> ^(
6804 // ENUM_CONTAINER_TYPE declarationSpecifiers ) )
6805 // Grammar/CTFParser.g:704:3: COLON declarationSpecifiers
6807 COLON118
= (Token
) match(input
, COLON
,
6808 FOLLOW_COLON_in_enumContainerType2432
);
6812 if (state
.backtracking
== 0) {
6813 stream_COLON
.add(COLON118
);
6816 pushFollow(FOLLOW_declarationSpecifiers_in_enumContainerType2434
);
6817 declarationSpecifiers119
= declarationSpecifiers();
6823 if (state
.backtracking
== 0) {
6824 stream_declarationSpecifiers
.add(declarationSpecifiers119
6829 // elements: declarationSpecifiers
6831 // rule labels: retval
6832 // token list labels:
6833 // rule list labels:
6835 if (state
.backtracking
== 0) {
6836 retval
.tree
= root_0
;
6837 // RewriteRuleSubtreeStream stream_retval =
6838 new RewriteRuleSubtreeStream(
6839 adaptor
, "rule retval",
6840 retval
!= null ? retval
.tree
: null);
6842 root_0
= (CommonTree
) adaptor
.nil();
6843 // 704:31: -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers )
6845 // Grammar/CTFParser.g:704:34: ^( ENUM_CONTAINER_TYPE
6846 // declarationSpecifiers )
6848 CommonTree root_1
= (CommonTree
) adaptor
.nil();
6849 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
6850 .create(ENUM_CONTAINER_TYPE
,
6851 "ENUM_CONTAINER_TYPE"), root_1
);
6853 adaptor
.addChild(root_1
,
6854 stream_declarationSpecifiers
.nextTree());
6856 adaptor
.addChild(root_0
, root_1
);
6861 retval
.tree
= root_0
;
6865 retval
.stop
= input
.LT(-1);
6867 if (state
.backtracking
== 0) {
6869 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
6870 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
6873 if (state
.backtracking
== 0) {
6875 exit("enumContainerType");
6880 catch (RecognitionException e
) {
6886 // $ANTLR end "enumContainerType"
6888 public static class enumeratorList_return
extends ParserRuleReturnScope
{
6892 public Object
getTree() {
6897 // $ANTLR start "enumeratorList"
6898 // Grammar/CTFParser.g:707:1: enumeratorList : enumerator ( SEPARATOR
6899 // enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ ;
6900 public final CTFParser
.enumeratorList_return
enumeratorList()
6901 throws RecognitionException
{
6902 CTFParser
.enumeratorList_return retval
= new CTFParser
.enumeratorList_return();
6903 retval
.start
= input
.LT(1);
6905 CommonTree root_0
= null;
6907 Token SEPARATOR121
= null;
6908 CTFParser
.enumerator_return enumerator120
= null;
6910 CTFParser
.enumerator_return enumerator122
= null;
6912 CommonTree SEPARATOR121_tree
= null;
6913 RewriteRuleTokenStream stream_SEPARATOR
= new RewriteRuleTokenStream(
6914 adaptor
, "token SEPARATOR");
6915 RewriteRuleSubtreeStream stream_enumerator
= new RewriteRuleSubtreeStream(
6916 adaptor
, "rule enumerator");
6918 enter("enumeratorList");
6921 // Grammar/CTFParser.g:714:1: ( enumerator ( SEPARATOR enumerator )*
6922 // -> ( ^( ENUM_ENUMERATOR enumerator ) )+ )
6923 // Grammar/CTFParser.g:715:3: enumerator ( SEPARATOR enumerator )*
6925 pushFollow(FOLLOW_enumerator_in_enumeratorList2465
);
6926 enumerator120
= enumerator();
6932 if (state
.backtracking
== 0) {
6933 stream_enumerator
.add(enumerator120
.getTree());
6935 // Grammar/CTFParser.g:715:14: ( SEPARATOR enumerator )*
6938 int LA36_0
= input
.LA(1);
6940 if ((LA36_0
== SEPARATOR
)) {
6941 int LA36_1
= input
.LA(2);
6943 if (((LA36_1
== ALIGNTOK
) || (LA36_1
== EVENTTOK
)
6944 || (LA36_1
== SIGNEDTOK
)
6945 || (LA36_1
== STRINGTOK
)
6946 || (LA36_1
== STRING_LITERAL
) || (LA36_1
== IDENTIFIER
))) {
6954 // Grammar/CTFParser.g:715:15: SEPARATOR enumerator
6956 SEPARATOR121
= (Token
) match(input
, SEPARATOR
,
6957 FOLLOW_SEPARATOR_in_enumeratorList2468
);
6961 if (state
.backtracking
== 0) {
6962 stream_SEPARATOR
.add(SEPARATOR121
);
6965 pushFollow(FOLLOW_enumerator_in_enumeratorList2470
);
6966 enumerator122
= enumerator();
6972 if (state
.backtracking
== 0) {
6973 stream_enumerator
.add(enumerator122
.getTree());
6985 // elements: enumerator
6987 // rule labels: retval
6988 // token list labels:
6989 // rule list labels:
6991 if (state
.backtracking
== 0) {
6992 retval
.tree
= root_0
;
6993 // RewriteRuleSubtreeStream stream_retval =
6994 new RewriteRuleSubtreeStream(
6995 adaptor
, "rule retval",
6996 retval
!= null ? retval
.tree
: null);
6998 root_0
= (CommonTree
) adaptor
.nil();
6999 // 715:38: -> ( ^( ENUM_ENUMERATOR enumerator ) )+
7001 if (!(stream_enumerator
.hasNext())) {
7002 throw new RewriteEarlyExitException();
7004 while (stream_enumerator
.hasNext()) {
7005 // Grammar/CTFParser.g:715:42: ^( ENUM_ENUMERATOR
7008 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7009 root_1
= (CommonTree
) adaptor
.becomeRoot(
7010 adaptor
.create(ENUM_ENUMERATOR
,
7011 "ENUM_ENUMERATOR"), root_1
);
7013 adaptor
.addChild(root_1
,
7014 stream_enumerator
.nextTree());
7016 adaptor
.addChild(root_0
, root_1
);
7020 stream_enumerator
.reset();
7024 retval
.tree
= root_0
;
7028 retval
.stop
= input
.LT(-1);
7030 if (state
.backtracking
== 0) {
7032 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7033 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7036 if (state
.backtracking
== 0) {
7038 exit("enumeratorList");
7043 catch (RecognitionException e
) {
7050 // $ANTLR end "enumeratorList"
7052 public static class enumerator_return
extends ParserRuleReturnScope
{
7056 public Object
getTree() {
7061 // $ANTLR start "enumerator"
7062 // Grammar/CTFParser.g:718:1: enumerator : enumConstant ( enumeratorValue )?
7064 public final CTFParser
.enumerator_return
enumerator()
7065 throws RecognitionException
{
7066 CTFParser
.enumerator_return retval
= new CTFParser
.enumerator_return();
7067 retval
.start
= input
.LT(1);
7069 CommonTree root_0
= null;
7071 CTFParser
.enumConstant_return enumConstant123
= null;
7073 CTFParser
.enumeratorValue_return enumeratorValue124
= null;
7075 enter("enumerator");
7078 // Grammar/CTFParser.g:725:1: ( enumConstant ( enumeratorValue )? )
7079 // Grammar/CTFParser.g:726:3: enumConstant ( enumeratorValue )?
7081 root_0
= (CommonTree
) adaptor
.nil();
7083 pushFollow(FOLLOW_enumConstant_in_enumerator2506
);
7084 enumConstant123
= enumConstant();
7090 if (state
.backtracking
== 0) {
7091 adaptor
.addChild(root_0
, enumConstant123
.getTree());
7093 // Grammar/CTFParser.g:726:16: ( enumeratorValue )?
7095 int LA37_0
= input
.LA(1);
7097 if ((LA37_0
== ASSIGNMENT
)) {
7102 // Grammar/CTFParser.g:726:16: enumeratorValue
7104 pushFollow(FOLLOW_enumeratorValue_in_enumerator2508
);
7105 enumeratorValue124
= enumeratorValue();
7111 if (state
.backtracking
== 0) {
7112 adaptor
.addChild(root_0
, enumeratorValue124
.getTree());
7122 retval
.stop
= input
.LT(-1);
7124 if (state
.backtracking
== 0) {
7126 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7127 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7130 if (state
.backtracking
== 0) {
7137 catch (RecognitionException e
) {
7144 // $ANTLR end "enumerator"
7146 public static class enumeratorValue_return
extends ParserRuleReturnScope
{
7150 public Object
getTree() {
7155 // $ANTLR start "enumeratorValue"
7156 // Grammar/CTFParser.g:729:1: enumeratorValue : ASSIGNMENT e1=
7157 // unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression ->
7158 // ^( ENUM_VALUE_RANGE $e1 $e2) ) ;
7159 public final CTFParser
.enumeratorValue_return
enumeratorValue()
7160 throws RecognitionException
{
7161 CTFParser
.enumeratorValue_return retval
= new CTFParser
.enumeratorValue_return();
7162 retval
.start
= input
.LT(1);
7164 CommonTree root_0
= null;
7166 Token ASSIGNMENT125
= null;
7167 Token ELIPSES126
= null;
7168 CTFParser
.unaryExpression_return e1
= null;
7170 CTFParser
.unaryExpression_return e2
= null;
7172 CommonTree ASSIGNMENT125_tree
= null;
7173 CommonTree ELIPSES126_tree
= null;
7174 RewriteRuleTokenStream stream_ASSIGNMENT
= new RewriteRuleTokenStream(
7175 adaptor
, "token ASSIGNMENT");
7176 RewriteRuleTokenStream stream_ELIPSES
= new RewriteRuleTokenStream(
7177 adaptor
, "token ELIPSES");
7178 RewriteRuleSubtreeStream stream_unaryExpression
= new RewriteRuleSubtreeStream(
7179 adaptor
, "rule unaryExpression");
7181 enter("enumeratorValue");
7184 // Grammar/CTFParser.g:736:1: ( ASSIGNMENT e1= unaryExpression ( ->
7185 // ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^(
7186 // ENUM_VALUE_RANGE $e1 $e2) ) )
7187 // Grammar/CTFParser.g:737:3: ASSIGNMENT e1= unaryExpression ( -> ^(
7188 // ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^(
7189 // ENUM_VALUE_RANGE $e1 $e2) )
7191 ASSIGNMENT125
= (Token
) match(input
, ASSIGNMENT
,
7192 FOLLOW_ASSIGNMENT_in_enumeratorValue2532
);
7196 if (state
.backtracking
== 0) {
7197 stream_ASSIGNMENT
.add(ASSIGNMENT125
);
7200 pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2536
);
7201 e1
= unaryExpression();
7207 if (state
.backtracking
== 0) {
7208 stream_unaryExpression
.add(e1
.getTree());
7210 // Grammar/CTFParser.g:738:3: ( -> ^( ENUM_VALUE $e1) | ELIPSES
7211 // e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) )
7213 int LA38_0
= input
.LA(1);
7215 if (((LA38_0
== SEPARATOR
) || (LA38_0
== RCURL
))) {
7217 } else if ((LA38_0
== ELIPSES
)) {
7220 if (state
.backtracking
> 0) {
7221 state
.failed
= true;
7224 NoViableAltException nvae
= new NoViableAltException("",
7231 // Grammar/CTFParser.g:739:5:
7237 // rule labels: retval, e1
7238 // token list labels:
7239 // rule list labels:
7241 if (state
.backtracking
== 0) {
7242 retval
.tree
= root_0
;
7243 // RewriteRuleSubtreeStream stream_retval =
7244 new RewriteRuleSubtreeStream(
7245 adaptor
, "rule retval",
7246 retval
!= null ? retval
.tree
: null);
7247 RewriteRuleSubtreeStream stream_e1
= new RewriteRuleSubtreeStream(
7248 adaptor
, "rule e1", e1
!= null ? e1
.tree
: null);
7250 root_0
= (CommonTree
) adaptor
.nil();
7251 // 739:5: -> ^( ENUM_VALUE $e1)
7253 // Grammar/CTFParser.g:739:8: ^( ENUM_VALUE $e1)
7255 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7256 root_1
= (CommonTree
) adaptor
7257 .becomeRoot(adaptor
.create(ENUM_VALUE
,
7258 "ENUM_VALUE"), root_1
);
7260 adaptor
.addChild(root_1
, stream_e1
.nextTree());
7262 adaptor
.addChild(root_0
, root_1
);
7267 retval
.tree
= root_0
;
7272 // Grammar/CTFParser.g:740:7: ELIPSES e2= unaryExpression
7274 ELIPSES126
= (Token
) match(input
, ELIPSES
,
7275 FOLLOW_ELIPSES_in_enumeratorValue2562
);
7279 if (state
.backtracking
== 0) {
7280 stream_ELIPSES
.add(ELIPSES126
);
7283 pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2566
);
7284 e2
= unaryExpression();
7290 if (state
.backtracking
== 0) {
7291 stream_unaryExpression
.add(e2
.getTree());
7297 // rule labels: retval, e1, e2
7298 // token list labels:
7299 // rule list labels:
7301 if (state
.backtracking
== 0) {
7302 retval
.tree
= root_0
;
7303 // RewriteRuleSubtreeStream stream_retval =
7304 new RewriteRuleSubtreeStream(
7305 adaptor
, "rule retval",
7306 retval
!= null ? retval
.tree
: null);
7307 RewriteRuleSubtreeStream stream_e1
= new RewriteRuleSubtreeStream(
7308 adaptor
, "rule e1", e1
!= null ? e1
.tree
: null);
7309 RewriteRuleSubtreeStream stream_e2
= new RewriteRuleSubtreeStream(
7310 adaptor
, "rule e2", e2
!= null ? e2
.tree
: null);
7312 root_0
= (CommonTree
) adaptor
.nil();
7313 // 740:34: -> ^( ENUM_VALUE_RANGE $e1 $e2)
7315 // Grammar/CTFParser.g:740:37: ^( ENUM_VALUE_RANGE
7318 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7319 root_1
= (CommonTree
) adaptor
.becomeRoot(
7320 adaptor
.create(ENUM_VALUE_RANGE
,
7321 "ENUM_VALUE_RANGE"), root_1
);
7323 adaptor
.addChild(root_1
, stream_e1
.nextTree());
7324 adaptor
.addChild(root_1
, stream_e2
.nextTree());
7326 adaptor
.addChild(root_0
, root_1
);
7331 retval
.tree
= root_0
;
7340 retval
.stop
= input
.LT(-1);
7342 if (state
.backtracking
== 0) {
7344 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7345 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7348 if (state
.backtracking
== 0) {
7350 exit("enumeratorValue");
7355 catch (RecognitionException e
) {
7362 // $ANTLR end "enumeratorValue"
7364 public static class declarator_return
extends ParserRuleReturnScope
{
7368 public Object
getTree() {
7373 // $ANTLR start "declarator"
7374 // Grammar/CTFParser.g:745:1: declarator : ( pointer )* directDeclarator ->
7375 // ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) ;
7376 public final CTFParser
.declarator_return
declarator()
7377 throws RecognitionException
{
7378 CTFParser
.declarator_return retval
= new CTFParser
.declarator_return();
7379 retval
.start
= input
.LT(1);
7381 CommonTree root_0
= null;
7383 CTFParser
.pointer_return pointer127
= null;
7385 CTFParser
.directDeclarator_return directDeclarator128
= null;
7387 RewriteRuleSubtreeStream stream_directDeclarator
= new RewriteRuleSubtreeStream(
7388 adaptor
, "rule directDeclarator");
7389 RewriteRuleSubtreeStream stream_pointer
= new RewriteRuleSubtreeStream(
7390 adaptor
, "rule pointer");
7392 enter("declarator");
7395 // Grammar/CTFParser.g:752:1: ( ( pointer )* directDeclarator -> ^(
7396 // TYPE_DECLARATOR ( pointer )* directDeclarator ) )
7397 // Grammar/CTFParser.g:753:3: ( pointer )* directDeclarator
7399 // Grammar/CTFParser.g:753:3: ( pointer )*
7402 int LA39_0
= input
.LA(1);
7404 if ((LA39_0
== POINTER
)) {
7410 // Grammar/CTFParser.g:753:3: pointer
7412 pushFollow(FOLLOW_pointer_in_declarator2608
);
7413 pointer127
= pointer();
7419 if (state
.backtracking
== 0) {
7420 stream_pointer
.add(pointer127
.getTree());
7431 pushFollow(FOLLOW_directDeclarator_in_declarator2611
);
7432 directDeclarator128
= directDeclarator();
7438 if (state
.backtracking
== 0) {
7439 stream_directDeclarator
.add(directDeclarator128
.getTree());
7443 // elements: directDeclarator, pointer
7445 // rule labels: retval
7446 // token list labels:
7447 // rule list labels:
7449 if (state
.backtracking
== 0) {
7450 retval
.tree
= root_0
;
7451 // RewriteRuleSubtreeStream stream_retval =
7452 new RewriteRuleSubtreeStream(
7453 adaptor
, "rule retval",
7454 retval
!= null ? retval
.tree
: null);
7456 root_0
= (CommonTree
) adaptor
.nil();
7457 // 753:29: -> ^( TYPE_DECLARATOR ( pointer )*
7458 // directDeclarator )
7460 // Grammar/CTFParser.g:753:32: ^( TYPE_DECLARATOR (
7461 // pointer )* directDeclarator )
7463 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7464 root_1
= (CommonTree
) adaptor
.becomeRoot(
7465 adaptor
.create(TYPE_DECLARATOR
,
7466 "TYPE_DECLARATOR"), root_1
);
7468 // Grammar/CTFParser.g:753:50: ( pointer )*
7469 while (stream_pointer
.hasNext()) {
7470 adaptor
.addChild(root_1
,
7471 stream_pointer
.nextTree());
7474 stream_pointer
.reset();
7475 adaptor
.addChild(root_1
,
7476 stream_directDeclarator
.nextTree());
7478 adaptor
.addChild(root_0
, root_1
);
7483 retval
.tree
= root_0
;
7487 retval
.stop
= input
.LT(-1);
7489 if (state
.backtracking
== 0) {
7491 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7492 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7495 if (state
.backtracking
== 0) {
7502 catch (RecognitionException e
) {
7509 // $ANTLR end "declarator"
7511 public static class directDeclarator_return
extends ParserRuleReturnScope
{
7515 public Object
getTree() {
7520 // $ANTLR start "directDeclarator"
7521 // Grammar/CTFParser.g:756:1: directDeclarator : ( IDENTIFIER ) (
7522 // directDeclaratorSuffix )* ;
7523 public final CTFParser
.directDeclarator_return
directDeclarator()
7524 throws RecognitionException
{
7525 CTFParser
.directDeclarator_return retval
= new CTFParser
.directDeclarator_return();
7526 retval
.start
= input
.LT(1);
7528 CommonTree root_0
= null;
7530 Token IDENTIFIER129
= null;
7531 CTFParser
.directDeclaratorSuffix_return directDeclaratorSuffix130
= null;
7533 CommonTree IDENTIFIER129_tree
= null;
7535 enter("directDeclarator");
7538 // Grammar/CTFParser.g:763:1: ( ( IDENTIFIER ) (
7539 // directDeclaratorSuffix )* )
7540 // Grammar/CTFParser.g:764:3: ( IDENTIFIER ) (
7541 // directDeclaratorSuffix )*
7543 root_0
= (CommonTree
) adaptor
.nil();
7545 // Grammar/CTFParser.g:764:3: ( IDENTIFIER )
7546 // Grammar/CTFParser.g:765:6: IDENTIFIER
7548 IDENTIFIER129
= (Token
) match(input
, IDENTIFIER
,
7549 FOLLOW_IDENTIFIER_in_directDeclarator2655
);
7553 if (state
.backtracking
== 0) {
7554 IDENTIFIER129_tree
= (CommonTree
) adaptor
7555 .create(IDENTIFIER129
);
7556 adaptor
.addChild(root_0
, IDENTIFIER129_tree
);
7558 if (state
.backtracking
== 0) {
7560 addTypeName((IDENTIFIER129
!= null ? IDENTIFIER129
7561 .getText() : null));
7564 if (state
.backtracking
== 0) {
7565 debug_print((IDENTIFIER129
!= null ? IDENTIFIER129
7566 .getText() : null));
7571 // Grammar/CTFParser.g:768:2: ( directDeclaratorSuffix )*
7574 int LA40_0
= input
.LA(1);
7576 if ((LA40_0
== OPENBRAC
)) {
7582 // Grammar/CTFParser.g:768:2: directDeclaratorSuffix
7584 pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator2673
);
7585 directDeclaratorSuffix130
= directDeclaratorSuffix();
7591 if (state
.backtracking
== 0) {
7592 adaptor
.addChild(root_0
,
7593 directDeclaratorSuffix130
.getTree());
7606 retval
.stop
= input
.LT(-1);
7608 if (state
.backtracking
== 0) {
7610 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7611 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7614 if (state
.backtracking
== 0) {
7616 exit("directDeclarator");
7621 catch (RecognitionException e
) {
7628 // $ANTLR end "directDeclarator"
7630 public static class directDeclaratorSuffix_return
extends
7631 ParserRuleReturnScope
{
7635 public Object
getTree() {
7640 // $ANTLR start "directDeclaratorSuffix"
7641 // Grammar/CTFParser.g:771:1: directDeclaratorSuffix : OPENBRAC
7642 // directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) ;
7643 public final CTFParser
.directDeclaratorSuffix_return
directDeclaratorSuffix()
7644 throws RecognitionException
{
7645 CTFParser
.directDeclaratorSuffix_return retval
= new CTFParser
.directDeclaratorSuffix_return();
7646 retval
.start
= input
.LT(1);
7648 CommonTree root_0
= null;
7650 Token OPENBRAC131
= null;
7651 Token CLOSEBRAC133
= null;
7652 CTFParser
.directDeclaratorLength_return directDeclaratorLength132
= null;
7654 CommonTree OPENBRAC131_tree
= null;
7655 CommonTree CLOSEBRAC133_tree
= null;
7656 RewriteRuleTokenStream stream_OPENBRAC
= new RewriteRuleTokenStream(
7657 adaptor
, "token OPENBRAC");
7658 RewriteRuleTokenStream stream_CLOSEBRAC
= new RewriteRuleTokenStream(
7659 adaptor
, "token CLOSEBRAC");
7660 RewriteRuleSubtreeStream stream_directDeclaratorLength
= new RewriteRuleSubtreeStream(
7661 adaptor
, "rule directDeclaratorLength");
7663 // Grammar/CTFParser.g:771:23: ( OPENBRAC directDeclaratorLength
7664 // CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) )
7665 // Grammar/CTFParser.g:772:3: OPENBRAC directDeclaratorLength
7668 OPENBRAC131
= (Token
) match(input
, OPENBRAC
,
7669 FOLLOW_OPENBRAC_in_directDeclaratorSuffix2686
);
7673 if (state
.backtracking
== 0) {
7674 stream_OPENBRAC
.add(OPENBRAC131
);
7677 pushFollow(FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2688
);
7678 directDeclaratorLength132
= directDeclaratorLength();
7684 if (state
.backtracking
== 0) {
7685 stream_directDeclaratorLength
.add(directDeclaratorLength132
7688 CLOSEBRAC133
= (Token
) match(input
, CLOSEBRAC
,
7689 FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2690
);
7693 if (state
.backtracking
== 0) {
7694 stream_CLOSEBRAC
.add(CLOSEBRAC133
);
7698 // elements: directDeclaratorLength
7700 // rule labels: retval
7701 // token list labels:
7702 // rule list labels:
7704 if (state
.backtracking
== 0) {
7705 retval
.tree
= root_0
;
7706 // RewriteRuleSubtreeStream stream_retval =
7707 new RewriteRuleSubtreeStream(
7708 adaptor
, "rule retval",
7709 retval
!= null ? retval
.tree
: null);
7711 root_0
= (CommonTree
) adaptor
.nil();
7712 // 772:45: -> ^( LENGTH directDeclaratorLength )
7714 // Grammar/CTFParser.g:772:48: ^( LENGTH
7715 // directDeclaratorLength )
7717 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7718 root_1
= (CommonTree
) adaptor
.becomeRoot(
7719 adaptor
.create(LENGTH
, "LENGTH"), root_1
);
7721 adaptor
.addChild(root_1
,
7722 stream_directDeclaratorLength
.nextTree());
7724 adaptor
.addChild(root_0
, root_1
);
7729 retval
.tree
= root_0
;
7733 retval
.stop
= input
.LT(-1);
7735 if (state
.backtracking
== 0) {
7737 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7738 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7743 catch (RecognitionException e
) {
7750 // $ANTLR end "directDeclaratorSuffix"
7752 public static class directDeclaratorLength_return
extends
7753 ParserRuleReturnScope
{
7757 public Object
getTree() {
7762 // $ANTLR start "directDeclaratorLength"
7763 // Grammar/CTFParser.g:775:1: directDeclaratorLength : unaryExpression ;
7764 public final CTFParser
.directDeclaratorLength_return
directDeclaratorLength()
7765 throws RecognitionException
{
7766 CTFParser
.directDeclaratorLength_return retval
= new CTFParser
.directDeclaratorLength_return();
7767 retval
.start
= input
.LT(1);
7769 CommonTree root_0
= null;
7771 CTFParser
.unaryExpression_return unaryExpression134
= null;
7774 // Grammar/CTFParser.g:775:24: ( unaryExpression )
7775 // Grammar/CTFParser.g:776:3: unaryExpression
7777 root_0
= (CommonTree
) adaptor
.nil();
7779 pushFollow(FOLLOW_unaryExpression_in_directDeclaratorLength2711
);
7780 unaryExpression134
= unaryExpression();
7786 if (state
.backtracking
== 0) {
7787 adaptor
.addChild(root_0
, unaryExpression134
.getTree());
7792 retval
.stop
= input
.LT(-1);
7794 if (state
.backtracking
== 0) {
7796 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
7797 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
7802 catch (RecognitionException e
) {
7809 // $ANTLR end "directDeclaratorLength"
7811 public static class abstractDeclarator_return
extends ParserRuleReturnScope
{
7815 public Object
getTree() {
7820 // $ANTLR start "abstractDeclarator"
7821 // Grammar/CTFParser.g:780:1: abstractDeclarator : ( ( ( pointer )+ (
7822 // directAbstractDeclarator )? ) -> ^( TYPE_DECLARATOR ( pointer )+ (
7823 // directAbstractDeclarator )? ) | directAbstractDeclarator -> ^(
7824 // TYPE_DECLARATOR directAbstractDeclarator ) );
7825 public final CTFParser
.abstractDeclarator_return
abstractDeclarator()
7826 throws RecognitionException
{
7827 CTFParser
.abstractDeclarator_return retval
= new CTFParser
.abstractDeclarator_return();
7828 retval
.start
= input
.LT(1);
7830 CommonTree root_0
= null;
7832 CTFParser
.pointer_return pointer135
= null;
7834 CTFParser
.directAbstractDeclarator_return directAbstractDeclarator136
= null;
7836 CTFParser
.directAbstractDeclarator_return directAbstractDeclarator137
= null;
7838 RewriteRuleSubtreeStream stream_pointer
= new RewriteRuleSubtreeStream(
7839 adaptor
, "rule pointer");
7840 RewriteRuleSubtreeStream stream_directAbstractDeclarator
= new RewriteRuleSubtreeStream(
7841 adaptor
, "rule directAbstractDeclarator");
7843 enter("abstractDeclarator");
7846 // Grammar/CTFParser.g:787:1: ( ( ( pointer )+ (
7847 // directAbstractDeclarator )? ) -> ^( TYPE_DECLARATOR ( pointer )+
7848 // ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^(
7849 // TYPE_DECLARATOR directAbstractDeclarator ) )
7851 int LA43_0
= input
.LA(1);
7853 if ((LA43_0
== POINTER
)) {
7855 } else if (((LA43_0
== LPAREN
) || (LA43_0
== IDENTIFIER
))) {
7858 if (state
.backtracking
> 0) {
7859 state
.failed
= true;
7862 NoViableAltException nvae
= new NoViableAltException("", 43, 0,
7869 // Grammar/CTFParser.g:788:5: ( ( pointer )+ (
7870 // directAbstractDeclarator )? )
7872 // Grammar/CTFParser.g:788:5: ( ( pointer )+ (
7873 // directAbstractDeclarator )? )
7874 // Grammar/CTFParser.g:788:6: ( pointer )+ (
7875 // directAbstractDeclarator )?
7877 // Grammar/CTFParser.g:788:6: ( pointer )+
7881 int LA41_0
= input
.LA(1);
7883 if ((LA41_0
== POINTER
)) {
7889 // Grammar/CTFParser.g:788:6: pointer
7891 pushFollow(FOLLOW_pointer_in_abstractDeclarator2742
);
7892 pointer135
= pointer();
7898 if (state
.backtracking
== 0) {
7899 stream_pointer
.add(pointer135
.getTree());
7909 if (state
.backtracking
> 0) {
7910 state
.failed
= true;
7913 EarlyExitException eee
= new EarlyExitException(41,
7920 // Grammar/CTFParser.g:788:15: ( directAbstractDeclarator )?
7922 int LA42_0
= input
.LA(1);
7924 if (((LA42_0
== LPAREN
) || (LA42_0
== IDENTIFIER
))) {
7929 // Grammar/CTFParser.g:788:15: directAbstractDeclarator
7931 pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2745
);
7932 directAbstractDeclarator136
= directAbstractDeclarator();
7938 if (state
.backtracking
== 0) {
7939 stream_directAbstractDeclarator
7940 .add(directAbstractDeclarator136
.getTree());
7951 // elements: pointer, directAbstractDeclarator
7953 // rule labels: retval
7954 // token list labels:
7955 // rule list labels:
7957 if (state
.backtracking
== 0) {
7958 retval
.tree
= root_0
;
7959 // RewriteRuleSubtreeStream stream_retval =
7960 new RewriteRuleSubtreeStream(
7961 adaptor
, "rule retval",
7962 retval
!= null ? retval
.tree
: null);
7964 root_0
= (CommonTree
) adaptor
.nil();
7965 // 788:42: -> ^( TYPE_DECLARATOR ( pointer )+ (
7966 // directAbstractDeclarator )? )
7968 // Grammar/CTFParser.g:788:45: ^( TYPE_DECLARATOR (
7969 // pointer )+ ( directAbstractDeclarator )? )
7971 CommonTree root_1
= (CommonTree
) adaptor
.nil();
7972 root_1
= (CommonTree
) adaptor
.becomeRoot(
7973 adaptor
.create(TYPE_DECLARATOR
,
7974 "TYPE_DECLARATOR"), root_1
);
7976 if (!(stream_pointer
.hasNext())) {
7977 throw new RewriteEarlyExitException();
7979 while (stream_pointer
.hasNext()) {
7980 adaptor
.addChild(root_1
,
7981 stream_pointer
.nextTree());
7984 stream_pointer
.reset();
7985 // Grammar/CTFParser.g:788:72: (
7986 // directAbstractDeclarator )?
7987 if (stream_directAbstractDeclarator
.hasNext()) {
7988 adaptor
.addChild(root_1
,
7989 stream_directAbstractDeclarator
7993 stream_directAbstractDeclarator
.reset();
7995 adaptor
.addChild(root_0
, root_1
);
8000 retval
.tree
= root_0
;
8005 // Grammar/CTFParser.g:789:5: directAbstractDeclarator
8007 pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2765
);
8008 directAbstractDeclarator137
= directAbstractDeclarator();
8014 if (state
.backtracking
== 0) {
8015 stream_directAbstractDeclarator
8016 .add(directAbstractDeclarator137
.getTree());
8020 // elements: directAbstractDeclarator
8022 // rule labels: retval
8023 // token list labels:
8024 // rule list labels:
8026 if (state
.backtracking
== 0) {
8027 retval
.tree
= root_0
;
8028 // RewriteRuleSubtreeStream stream_retval =
8029 new RewriteRuleSubtreeStream(
8030 adaptor
, "rule retval",
8031 retval
!= null ? retval
.tree
: null);
8033 root_0
= (CommonTree
) adaptor
.nil();
8034 // 789:30: -> ^( TYPE_DECLARATOR directAbstractDeclarator )
8036 // Grammar/CTFParser.g:789:33: ^( TYPE_DECLARATOR
8037 // directAbstractDeclarator )
8039 CommonTree root_1
= (CommonTree
) adaptor
.nil();
8040 root_1
= (CommonTree
) adaptor
.becomeRoot(
8041 adaptor
.create(TYPE_DECLARATOR
,
8042 "TYPE_DECLARATOR"), root_1
);
8044 adaptor
.addChild(root_1
,
8045 stream_directAbstractDeclarator
.nextTree());
8047 adaptor
.addChild(root_0
, root_1
);
8052 retval
.tree
= root_0
;
8058 retval
.stop
= input
.LT(-1);
8060 if (state
.backtracking
== 0) {
8062 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8063 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8066 if (state
.backtracking
== 0) {
8068 exit("abstractDeclarator");
8073 catch (RecognitionException e
) {
8080 // $ANTLR end "abstractDeclarator"
8082 public static class directAbstractDeclarator_return
extends
8083 ParserRuleReturnScope
{
8087 public Object
getTree() {
8092 // $ANTLR start "directAbstractDeclarator"
8093 // Grammar/CTFParser.g:796:1: directAbstractDeclarator : ( IDENTIFIER | (
8094 // LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )?
8096 public final CTFParser
.directAbstractDeclarator_return
directAbstractDeclarator()
8097 throws RecognitionException
{
8098 CTFParser
.directAbstractDeclarator_return retval
= new CTFParser
.directAbstractDeclarator_return();
8099 retval
.start
= input
.LT(1);
8101 CommonTree root_0
= null;
8103 Token IDENTIFIER138
= null;
8104 Token LPAREN139
= null;
8105 Token RPAREN141
= null;
8106 Token OPENBRAC142
= null;
8107 Token CLOSEBRAC144
= null;
8108 CTFParser
.abstractDeclarator_return abstractDeclarator140
= null;
8110 CTFParser
.unaryExpression_return unaryExpression143
= null;
8112 CommonTree IDENTIFIER138_tree
= null;
8113 CommonTree LPAREN139_tree
= null;
8114 CommonTree RPAREN141_tree
= null;
8115 CommonTree OPENBRAC142_tree
= null;
8116 CommonTree CLOSEBRAC144_tree
= null;
8118 enter("directAbstractDeclarator");
8121 // Grammar/CTFParser.g:804:1: ( ( IDENTIFIER | ( LPAREN
8122 // abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )?
8124 // Grammar/CTFParser.g:805:3: ( IDENTIFIER | ( LPAREN
8125 // abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )?
8128 root_0
= (CommonTree
) adaptor
.nil();
8130 // Grammar/CTFParser.g:805:3: ( IDENTIFIER | ( LPAREN
8131 // abstractDeclarator RPAREN ) )
8133 int LA44_0
= input
.LA(1);
8135 if ((LA44_0
== IDENTIFIER
)) {
8137 } else if ((LA44_0
== LPAREN
)) {
8140 if (state
.backtracking
> 0) {
8141 state
.failed
= true;
8144 NoViableAltException nvae
= new NoViableAltException("",
8151 // Grammar/CTFParser.g:806:6: IDENTIFIER
8153 IDENTIFIER138
= (Token
) match(input
, IDENTIFIER
,
8154 FOLLOW_IDENTIFIER_in_directAbstractDeclarator2805
);
8158 if (state
.backtracking
== 0) {
8159 IDENTIFIER138_tree
= (CommonTree
) adaptor
8160 .create(IDENTIFIER138
);
8161 adaptor
.addChild(root_0
, IDENTIFIER138_tree
);
8167 // Grammar/CTFParser.g:807:7: ( LPAREN abstractDeclarator RPAREN
8170 // Grammar/CTFParser.g:807:7: ( LPAREN abstractDeclarator
8172 // Grammar/CTFParser.g:807:8: LPAREN abstractDeclarator
8175 LPAREN139
= (Token
) match(input
, LPAREN
,
8176 FOLLOW_LPAREN_in_directAbstractDeclarator2814
);
8180 if (state
.backtracking
== 0) {
8181 LPAREN139_tree
= (CommonTree
) adaptor
8183 adaptor
.addChild(root_0
, LPAREN139_tree
);
8185 pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2816
);
8186 abstractDeclarator140
= abstractDeclarator();
8192 if (state
.backtracking
== 0) {
8193 adaptor
.addChild(root_0
,
8194 abstractDeclarator140
.getTree());
8196 RPAREN141
= (Token
) match(input
, RPAREN
,
8197 FOLLOW_RPAREN_in_directAbstractDeclarator2818
);
8201 if (state
.backtracking
== 0) {
8202 RPAREN141_tree
= (CommonTree
) adaptor
8204 adaptor
.addChild(root_0
, RPAREN141_tree
);
8214 // Grammar/CTFParser.g:809:3: ( OPENBRAC ( unaryExpression )?
8217 int LA46_0
= input
.LA(1);
8219 if ((LA46_0
== OPENBRAC
)) {
8224 // Grammar/CTFParser.g:810:5: OPENBRAC ( unaryExpression )?
8227 OPENBRAC142
= (Token
) match(input
, OPENBRAC
,
8228 FOLLOW_OPENBRAC_in_directAbstractDeclarator2833
);
8232 if (state
.backtracking
== 0) {
8233 OPENBRAC142_tree
= (CommonTree
) adaptor
8234 .create(OPENBRAC142
);
8235 adaptor
.addChild(root_0
, OPENBRAC142_tree
);
8237 // Grammar/CTFParser.g:810:14: ( unaryExpression )?
8239 int LA45_0
= input
.LA(1);
8241 if (((LA45_0
== ALIGNTOK
) || (LA45_0
== EVENTTOK
)
8242 || ((LA45_0
>= SIGNEDTOK
) && (LA45_0
<= STRINGTOK
))
8243 || (LA45_0
== TRACETOK
)
8244 || ((LA45_0
>= ENVTOK
) && (LA45_0
<= CLOCKTOK
))
8245 || (LA45_0
== SIGN
) || (LA45_0
== OCTAL_LITERAL
)
8246 || (LA45_0
== DECIMAL_LITERAL
)
8247 || (LA45_0
== HEX_LITERAL
)
8248 || (LA45_0
== CHARACTER_LITERAL
)
8249 || (LA45_0
== STRING_LITERAL
) || (LA45_0
== IDENTIFIER
))) {
8254 // Grammar/CTFParser.g:810:14: unaryExpression
8256 pushFollow(FOLLOW_unaryExpression_in_directAbstractDeclarator2835
);
8257 unaryExpression143
= unaryExpression();
8263 if (state
.backtracking
== 0) {
8264 adaptor
.addChild(root_0
,
8265 unaryExpression143
.getTree());
8273 CLOSEBRAC144
= (Token
) match(input
, CLOSEBRAC
,
8274 FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2838
);
8278 if (state
.backtracking
== 0) {
8279 CLOSEBRAC144_tree
= (CommonTree
) adaptor
8280 .create(CLOSEBRAC144
);
8281 adaptor
.addChild(root_0
, CLOSEBRAC144_tree
);
8291 retval
.stop
= input
.LT(-1);
8293 if (state
.backtracking
== 0) {
8295 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8296 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8299 if (state
.backtracking
== 0) {
8301 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
8302 exit("directAbstractDeclarator");
8307 catch (RecognitionException e
) {
8314 // $ANTLR end "directAbstractDeclarator"
8316 public static class pointer_return
extends ParserRuleReturnScope
{
8320 public Object
getTree() {
8325 // $ANTLR start "pointer"
8326 // Grammar/CTFParser.g:814:1: pointer : POINTER ( typeQualifierList )? -> ^(
8327 // POINTER ( typeQualifierList )? ) ;
8328 public final CTFParser
.pointer_return
pointer() throws RecognitionException
{
8329 CTFParser
.pointer_return retval
= new CTFParser
.pointer_return();
8330 retval
.start
= input
.LT(1);
8332 CommonTree root_0
= null;
8334 Token POINTER145
= null;
8335 CTFParser
.typeQualifierList_return typeQualifierList146
= null;
8337 CommonTree POINTER145_tree
= null;
8338 RewriteRuleTokenStream stream_POINTER
= new RewriteRuleTokenStream(
8339 adaptor
, "token POINTER");
8340 RewriteRuleSubtreeStream stream_typeQualifierList
= new RewriteRuleSubtreeStream(
8341 adaptor
, "rule typeQualifierList");
8346 // Grammar/CTFParser.g:822:1: ( POINTER ( typeQualifierList )? -> ^(
8347 // POINTER ( typeQualifierList )? ) )
8348 // Grammar/CTFParser.g:823:3: POINTER ( typeQualifierList )?
8350 POINTER145
= (Token
) match(input
, POINTER
,
8351 FOLLOW_POINTER_in_pointer2866
);
8355 if (state
.backtracking
== 0) {
8356 stream_POINTER
.add(POINTER145
);
8359 // Grammar/CTFParser.g:823:11: ( typeQualifierList )?
8361 int LA47_0
= input
.LA(1);
8363 if ((LA47_0
== CONSTTOK
)) {
8368 // Grammar/CTFParser.g:823:11: typeQualifierList
8370 pushFollow(FOLLOW_typeQualifierList_in_pointer2868
);
8371 typeQualifierList146
= typeQualifierList();
8377 if (state
.backtracking
== 0) {
8378 stream_typeQualifierList
.add(typeQualifierList146
8388 // elements: typeQualifierList, POINTER
8390 // rule labels: retval
8391 // token list labels:
8392 // rule list labels:
8394 if (state
.backtracking
== 0) {
8395 retval
.tree
= root_0
;
8396 // RewriteRuleSubtreeStream stream_retval =
8397 new RewriteRuleSubtreeStream(
8398 adaptor
, "rule retval",
8399 retval
!= null ? retval
.tree
: null);
8401 root_0
= (CommonTree
) adaptor
.nil();
8402 // 823:30: -> ^( POINTER ( typeQualifierList )? )
8404 // Grammar/CTFParser.g:823:33: ^( POINTER (
8405 // typeQualifierList )? )
8407 CommonTree root_1
= (CommonTree
) adaptor
.nil();
8408 root_1
= (CommonTree
) adaptor
.becomeRoot(
8409 stream_POINTER
.nextNode(), root_1
);
8411 // Grammar/CTFParser.g:823:43: ( typeQualifierList
8413 if (stream_typeQualifierList
.hasNext()) {
8414 adaptor
.addChild(root_1
,
8415 stream_typeQualifierList
.nextTree());
8418 stream_typeQualifierList
.reset();
8420 adaptor
.addChild(root_0
, root_1
);
8425 retval
.tree
= root_0
;
8429 retval
.stop
= input
.LT(-1);
8431 if (state
.backtracking
== 0) {
8433 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8434 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8437 if (state
.backtracking
== 0) {
8439 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
8445 catch (RecognitionException e
) {
8452 // $ANTLR end "pointer"
8454 public static class typeQualifierList_return
extends ParserRuleReturnScope
{
8458 public Object
getTree() {
8463 // $ANTLR start "typeQualifierList"
8464 // Grammar/CTFParser.g:826:1: typeQualifierList : ( typeQualifier )+ ;
8465 public final CTFParser
.typeQualifierList_return
typeQualifierList()
8466 throws RecognitionException
{
8467 CTFParser
.typeQualifierList_return retval
= new CTFParser
.typeQualifierList_return();
8468 retval
.start
= input
.LT(1);
8470 CommonTree root_0
= null;
8472 CTFParser
.typeQualifier_return typeQualifier147
= null;
8475 // Grammar/CTFParser.g:826:19: ( ( typeQualifier )+ )
8476 // Grammar/CTFParser.g:827:3: ( typeQualifier )+
8478 root_0
= (CommonTree
) adaptor
.nil();
8480 // Grammar/CTFParser.g:827:3: ( typeQualifier )+
8484 int LA48_0
= input
.LA(1);
8486 if ((LA48_0
== CONSTTOK
)) {
8492 // Grammar/CTFParser.g:827:3: typeQualifier
8494 pushFollow(FOLLOW_typeQualifier_in_typeQualifierList2891
);
8495 typeQualifier147
= typeQualifier();
8501 if (state
.backtracking
== 0) {
8502 adaptor
.addChild(root_0
, typeQualifier147
.getTree());
8512 if (state
.backtracking
> 0) {
8513 state
.failed
= true;
8516 EarlyExitException eee
= new EarlyExitException(48,
8525 retval
.stop
= input
.LT(-1);
8527 if (state
.backtracking
== 0) {
8529 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8530 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8535 catch (RecognitionException e
) {
8542 // $ANTLR end "typeQualifierList"
8544 public static class typedefName_return
extends ParserRuleReturnScope
{
8548 public Object
getTree() {
8553 // $ANTLR start "typedefName"
8554 // Grammar/CTFParser.g:830:1: typedefName : {...}? IDENTIFIER ;
8555 public final CTFParser
.typedefName_return
typedefName()
8556 throws RecognitionException
{
8557 CTFParser
.typedefName_return retval
= new CTFParser
.typedefName_return();
8558 retval
.start
= input
.LT(1);
8560 CommonTree root_0
= null;
8562 Token IDENTIFIER148
= null;
8564 CommonTree IDENTIFIER148_tree
= null;
8566 enter("typedefName");
8569 // Grammar/CTFParser.g:838:1: ({...}? IDENTIFIER )
8570 // Grammar/CTFParser.g:839:3: {...}? IDENTIFIER
8572 root_0
= (CommonTree
) adaptor
.nil();
8574 if (!((inTypealiasAlias() || isTypeName(input
.LT(1).getText())))) {
8575 if (state
.backtracking
> 0) {
8576 state
.failed
= true;
8579 throw new FailedPredicateException(input
, "typedefName",
8580 "inTypealiasAlias() || isTypeName(input.LT(1).getText())");
8582 IDENTIFIER148
= (Token
) match(input
, IDENTIFIER
,
8583 FOLLOW_IDENTIFIER_in_typedefName2917
);
8587 if (state
.backtracking
== 0) {
8588 IDENTIFIER148_tree
= (CommonTree
) adaptor
8589 .create(IDENTIFIER148
);
8590 adaptor
.addChild(root_0
, IDENTIFIER148_tree
);
8592 if (state
.backtracking
== 0) {
8593 if ((inTypedef() || inTypealiasAlias())
8594 && !isTypeName((IDENTIFIER148
!= null ? IDENTIFIER148
8595 .getText() : null))) {
8596 addTypeName((IDENTIFIER148
!= null ? IDENTIFIER148
8597 .getText() : null));
8603 retval
.stop
= input
.LT(-1);
8605 if (state
.backtracking
== 0) {
8607 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8608 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8611 if (state
.backtracking
== 0) {
8613 debug_print("typedefName: "
8614 + input
.toString(retval
.start
, input
.LT(-1)));
8615 exit("typedefName");
8620 catch (RecognitionException e
) {
8627 // $ANTLR end "typedefName"
8629 public static class typealiasTarget_return
extends ParserRuleReturnScope
{
8633 public Object
getTree() {
8638 // $ANTLR start "typealiasTarget"
8639 // Grammar/CTFParser.g:842:1: typealiasTarget : declarationSpecifiers (
8640 // abstractDeclaratorList )? ;
8641 public final CTFParser
.typealiasTarget_return
typealiasTarget()
8642 throws RecognitionException
{
8643 CTFParser
.typealiasTarget_return retval
= new CTFParser
.typealiasTarget_return();
8644 retval
.start
= input
.LT(1);
8646 CommonTree root_0
= null;
8648 CTFParser
.declarationSpecifiers_return declarationSpecifiers149
= null;
8650 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList150
= null;
8652 enter("typealiasTarget");
8655 // Grammar/CTFParser.g:855:1: ( declarationSpecifiers (
8656 // abstractDeclaratorList )? )
8657 // Grammar/CTFParser.g:856:3: declarationSpecifiers (
8658 // abstractDeclaratorList )?
8660 root_0
= (CommonTree
) adaptor
.nil();
8662 pushFollow(FOLLOW_declarationSpecifiers_in_typealiasTarget2945
);
8663 declarationSpecifiers149
= declarationSpecifiers();
8669 if (state
.backtracking
== 0) {
8670 adaptor
.addChild(root_0
, declarationSpecifiers149
.getTree());
8672 // Grammar/CTFParser.g:856:25: ( abstractDeclaratorList )?
8674 int LA49_0
= input
.LA(1);
8676 if (((LA49_0
== LPAREN
) || (LA49_0
== POINTER
) || (LA49_0
== IDENTIFIER
))) {
8681 // Grammar/CTFParser.g:856:25: abstractDeclaratorList
8683 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasTarget2947
);
8684 abstractDeclaratorList150
= abstractDeclaratorList();
8690 if (state
.backtracking
== 0) {
8691 adaptor
.addChild(root_0
,
8692 abstractDeclaratorList150
.getTree());
8702 retval
.stop
= input
.LT(-1);
8704 if (state
.backtracking
== 0) {
8706 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8707 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8710 if (state
.backtracking
== 0) {
8712 exit("typealiasTarget");
8717 catch (RecognitionException e
) {
8724 // $ANTLR end "typealiasTarget"
8726 public static class typealiasAlias_return
extends ParserRuleReturnScope
{
8730 public Object
getTree() {
8735 // $ANTLR start "typealiasAlias"
8736 // Grammar/CTFParser.g:859:1: typealiasAlias : ( abstractDeclaratorList | (
8737 // declarationSpecifiers ( abstractDeclaratorList )? ) ) ;
8738 public final CTFParser
.typealiasAlias_return
typealiasAlias()
8739 throws RecognitionException
{
8740 CTFParser
.typealiasAlias_return retval
= new CTFParser
.typealiasAlias_return();
8741 retval
.start
= input
.LT(1);
8743 CommonTree root_0
= null;
8745 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList151
= null;
8747 CTFParser
.declarationSpecifiers_return declarationSpecifiers152
= null;
8749 CTFParser
.abstractDeclaratorList_return abstractDeclaratorList153
= null;
8751 enter("typealiasAlias");
8755 // Grammar/CTFParser.g:874:1: ( ( abstractDeclaratorList | (
8756 // declarationSpecifiers ( abstractDeclaratorList )? ) ) )
8757 // Grammar/CTFParser.g:875:3: ( abstractDeclaratorList | (
8758 // declarationSpecifiers ( abstractDeclaratorList )? ) )
8760 root_0
= (CommonTree
) adaptor
.nil();
8762 // Grammar/CTFParser.g:875:3: ( abstractDeclaratorList | (
8763 // declarationSpecifiers ( abstractDeclaratorList )? ) )
8765 switch (input
.LA(1)) {
8772 int LA51_2
= input
.LA(2);
8774 if ((!(((inTypealiasAlias() || isTypeName(input
.LT(1)
8777 } else if (((inTypealiasAlias() || isTypeName(input
.LT(1)
8781 if (state
.backtracking
> 0) {
8782 state
.failed
= true;
8785 NoViableAltException nvae
= new NoViableAltException(
8796 case FLOATINGPOINTTOK
:
8811 case IMAGINARYTOK
: {
8816 if (state
.backtracking
> 0) {
8817 state
.failed
= true;
8820 NoViableAltException nvae
= new NoViableAltException("",
8828 // Grammar/CTFParser.g:876:3: abstractDeclaratorList
8830 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias2980
);
8831 abstractDeclaratorList151
= abstractDeclaratorList();
8837 if (state
.backtracking
== 0) {
8838 adaptor
.addChild(root_0
,
8839 abstractDeclaratorList151
.getTree());
8845 // Grammar/CTFParser.g:878:3: ( declarationSpecifiers (
8846 // abstractDeclaratorList )? )
8848 // Grammar/CTFParser.g:878:3: ( declarationSpecifiers (
8849 // abstractDeclaratorList )? )
8850 // Grammar/CTFParser.g:878:4: declarationSpecifiers (
8851 // abstractDeclaratorList )?
8853 pushFollow(FOLLOW_declarationSpecifiers_in_typealiasAlias2989
);
8854 declarationSpecifiers152
= declarationSpecifiers();
8860 if (state
.backtracking
== 0) {
8861 adaptor
.addChild(root_0
,
8862 declarationSpecifiers152
.getTree());
8864 // Grammar/CTFParser.g:878:26: ( abstractDeclaratorList
8867 int LA50_0
= input
.LA(1);
8869 if (((LA50_0
== LPAREN
) || (LA50_0
== POINTER
) || (LA50_0
== IDENTIFIER
))) {
8874 // Grammar/CTFParser.g:878:26: abstractDeclaratorList
8876 pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias2991
);
8877 abstractDeclaratorList153
= abstractDeclaratorList();
8883 if (state
.backtracking
== 0) {
8884 adaptor
.addChild(root_0
,
8885 abstractDeclaratorList153
.getTree());
8902 retval
.stop
= input
.LT(-1);
8904 if (state
.backtracking
== 0) {
8906 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
8907 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
8910 if (state
.backtracking
== 0) {
8912 exit("typealiasAlias");
8913 typealiasAliasOff();
8918 catch (RecognitionException e
) {
8925 // $ANTLR end "typealiasAlias"
8927 public static class typealiasDecl_return
extends ParserRuleReturnScope
{
8931 public Object
getTree() {
8936 // $ANTLR start "typealiasDecl"
8937 // Grammar/CTFParser.g:882:1: typealiasDecl : TYPEALIASTOK typealiasTarget
8938 // TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET
8939 // typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) ;
8940 public final CTFParser
.typealiasDecl_return
typealiasDecl()
8941 throws RecognitionException
{
8942 CTFParser
.typealiasDecl_return retval
= new CTFParser
.typealiasDecl_return();
8943 retval
.start
= input
.LT(1);
8945 CommonTree root_0
= null;
8947 Token TYPEALIASTOK154
= null;
8948 Token TYPE_ASSIGNMENT156
= null;
8949 CTFParser
.typealiasTarget_return typealiasTarget155
= null;
8951 CTFParser
.typealiasAlias_return typealiasAlias157
= null;
8953 CommonTree TYPEALIASTOK154_tree
= null;
8954 CommonTree TYPE_ASSIGNMENT156_tree
= null;
8955 RewriteRuleTokenStream stream_TYPE_ASSIGNMENT
= new RewriteRuleTokenStream(
8956 adaptor
, "token TYPE_ASSIGNMENT");
8957 RewriteRuleTokenStream stream_TYPEALIASTOK
= new RewriteRuleTokenStream(
8958 adaptor
, "token TYPEALIASTOK");
8959 RewriteRuleSubtreeStream stream_typealiasAlias
= new RewriteRuleSubtreeStream(
8960 adaptor
, "rule typealiasAlias");
8961 RewriteRuleSubtreeStream stream_typealiasTarget
= new RewriteRuleSubtreeStream(
8962 adaptor
, "rule typealiasTarget");
8964 enter("typealiasDecl");
8967 // Grammar/CTFParser.g:889:1: ( TYPEALIASTOK typealiasTarget
8968 // TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^(
8969 // TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS
8970 // typealiasAlias ) ) )
8971 // Grammar/CTFParser.g:890:3: TYPEALIASTOK typealiasTarget
8972 // TYPE_ASSIGNMENT typealiasAlias
8974 TYPEALIASTOK154
= (Token
) match(input
, TYPEALIASTOK
,
8975 FOLLOW_TYPEALIASTOK_in_typealiasDecl3023
);
8979 if (state
.backtracking
== 0) {
8980 stream_TYPEALIASTOK
.add(TYPEALIASTOK154
);
8983 pushFollow(FOLLOW_typealiasTarget_in_typealiasDecl3025
);
8984 typealiasTarget155
= typealiasTarget();
8990 if (state
.backtracking
== 0) {
8991 stream_typealiasTarget
.add(typealiasTarget155
.getTree());
8993 TYPE_ASSIGNMENT156
= (Token
) match(input
, TYPE_ASSIGNMENT
,
8994 FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3027
);
8998 if (state
.backtracking
== 0) {
8999 stream_TYPE_ASSIGNMENT
.add(TYPE_ASSIGNMENT156
);
9002 pushFollow(FOLLOW_typealiasAlias_in_typealiasDecl3029
);
9003 typealiasAlias157
= typealiasAlias();
9009 if (state
.backtracking
== 0) {
9010 stream_typealiasAlias
.add(typealiasAlias157
.getTree());
9014 // elements: typealiasTarget, typealiasAlias
9016 // rule labels: retval
9017 // token list labels:
9018 // rule list labels:
9020 if (state
.backtracking
== 0) {
9021 retval
.tree
= root_0
;
9022 // RewriteRuleSubtreeStream stream_retval =
9023 new RewriteRuleSubtreeStream(
9024 adaptor
, "rule retval",
9025 retval
!= null ? retval
.tree
: null);
9027 root_0
= (CommonTree
) adaptor
.nil();
9028 // 891:3: -> ^( TYPEALIAS ^( TYPEALIAS_TARGET
9029 // typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) )
9031 // Grammar/CTFParser.g:891:6: ^( TYPEALIAS ^(
9032 // TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS
9033 // typealiasAlias ) )
9035 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9036 root_1
= (CommonTree
) adaptor
.becomeRoot(
9037 adaptor
.create(TYPEALIAS
, "TYPEALIAS"),
9040 // Grammar/CTFParser.g:891:18: ^( TYPEALIAS_TARGET
9041 // typealiasTarget )
9043 CommonTree root_2
= (CommonTree
) adaptor
.nil();
9044 root_2
= (CommonTree
) adaptor
.becomeRoot(
9045 adaptor
.create(TYPEALIAS_TARGET
,
9046 "TYPEALIAS_TARGET"), root_2
);
9048 adaptor
.addChild(root_2
,
9049 stream_typealiasTarget
.nextTree());
9051 adaptor
.addChild(root_1
, root_2
);
9053 // Grammar/CTFParser.g:891:54: ^( TYPEALIAS_ALIAS
9056 CommonTree root_2
= (CommonTree
) adaptor
.nil();
9057 root_2
= (CommonTree
) adaptor
.becomeRoot(
9058 adaptor
.create(TYPEALIAS_ALIAS
,
9059 "TYPEALIAS_ALIAS"), root_2
);
9061 adaptor
.addChild(root_2
,
9062 stream_typealiasAlias
.nextTree());
9064 adaptor
.addChild(root_1
, root_2
);
9067 adaptor
.addChild(root_0
, root_1
);
9072 retval
.tree
= root_0
;
9076 retval
.stop
= input
.LT(-1);
9078 if (state
.backtracking
== 0) {
9080 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
9081 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
9084 if (state
.backtracking
== 0) {
9086 exit("typealiasDecl");
9091 catch (RecognitionException e
) {
9098 // $ANTLR end "typealiasDecl"
9100 public static class ctfKeyword_return
extends ParserRuleReturnScope
{
9104 public Object
getTree() {
9109 // $ANTLR start "ctfKeyword"
9110 // Grammar/CTFParser.g:897:1: ctfKeyword : ( ALIGNTOK | EVENTTOK | SIGNEDTOK
9112 public final CTFParser
.ctfKeyword_return
ctfKeyword()
9113 throws RecognitionException
{
9114 CTFParser
.ctfKeyword_return retval
= new CTFParser
.ctfKeyword_return();
9115 retval
.start
= input
.LT(1);
9117 CommonTree root_0
= null;
9119 Token set158
= null;
9121 CommonTree set158_tree
= null;
9123 enter("ctfKeyword");
9126 // Grammar/CTFParser.g:905:1: ( ALIGNTOK | EVENTTOK | SIGNEDTOK |
9128 // Grammar/CTFParser.g:
9130 root_0
= (CommonTree
) adaptor
.nil();
9132 set158
= input
.LT(1);
9133 if ((input
.LA(1) == ALIGNTOK
) || (input
.LA(1) == EVENTTOK
)
9134 || (input
.LA(1) == SIGNEDTOK
)
9135 || (input
.LA(1) == STRINGTOK
)) {
9137 if (state
.backtracking
== 0) {
9138 adaptor
.addChild(root_0
, adaptor
.create(set158
));
9140 state
.errorRecovery
= false;
9141 state
.failed
= false;
9143 if (state
.backtracking
> 0) {
9144 state
.failed
= true;
9147 MismatchedSetException mse
= new MismatchedSetException(
9154 retval
.stop
= input
.LT(-1);
9156 if (state
.backtracking
== 0) {
9158 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
9159 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
9162 if (state
.backtracking
== 0) {
9164 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
9170 catch (RecognitionException e
) {
9177 // $ANTLR end "ctfKeyword"
9179 public static class ctfSpecifier_return
extends ParserRuleReturnScope
{
9183 public Object
getTree() {
9188 // $ANTLR start "ctfSpecifier"
9189 // Grammar/CTFParser.g:912:1: ctfSpecifier : ( ctfSpecifierHead ctfBody ->
9190 // ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION
9191 // typealiasDecl ) );
9192 public final CTFParser
.ctfSpecifier_return
ctfSpecifier()
9193 throws RecognitionException
{
9194 CTFParser
.ctfSpecifier_return retval
= new CTFParser
.ctfSpecifier_return();
9195 retval
.start
= input
.LT(1);
9197 CommonTree root_0
= null;
9199 CTFParser
.ctfSpecifierHead_return ctfSpecifierHead159
= null;
9201 CTFParser
.ctfBody_return ctfBody160
= null;
9203 CTFParser
.typealiasDecl_return typealiasDecl161
= null;
9205 RewriteRuleSubtreeStream stream_ctfSpecifierHead
= new RewriteRuleSubtreeStream(
9206 adaptor
, "rule ctfSpecifierHead");
9207 RewriteRuleSubtreeStream stream_typealiasDecl
= new RewriteRuleSubtreeStream(
9208 adaptor
, "rule typealiasDecl");
9209 RewriteRuleSubtreeStream stream_ctfBody
= new RewriteRuleSubtreeStream(
9210 adaptor
, "rule ctfBody");
9212 enter("ctfSpecifier");
9215 // Grammar/CTFParser.g:919:3: ( ctfSpecifierHead ctfBody -> ^(
9216 // ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION
9217 // typealiasDecl ) )
9219 int LA52_0
= input
.LA(1);
9221 if (((LA52_0
== EVENTTOK
) || (LA52_0
== STREAMTOK
)
9222 || (LA52_0
== TRACETOK
) || ((LA52_0
>= ENVTOK
) && (LA52_0
<= CLOCKTOK
)))) {
9224 } else if ((LA52_0
== TYPEALIASTOK
)) {
9227 if (state
.backtracking
> 0) {
9228 state
.failed
= true;
9231 NoViableAltException nvae
= new NoViableAltException("", 52, 0,
9238 // Grammar/CTFParser.g:921:3: ctfSpecifierHead ctfBody
9240 pushFollow(FOLLOW_ctfSpecifierHead_in_ctfSpecifier3123
);
9241 ctfSpecifierHead159
= ctfSpecifierHead();
9247 if (state
.backtracking
== 0) {
9248 stream_ctfSpecifierHead
.add(ctfSpecifierHead159
.getTree());
9250 pushFollow(FOLLOW_ctfBody_in_ctfSpecifier3125
);
9251 ctfBody160
= ctfBody();
9257 if (state
.backtracking
== 0) {
9258 stream_ctfBody
.add(ctfBody160
.getTree());
9262 // elements: ctfBody, ctfSpecifierHead
9264 // rule labels: retval
9265 // token list labels:
9266 // rule list labels:
9268 if (state
.backtracking
== 0) {
9269 retval
.tree
= root_0
;
9270 // RewriteRuleSubtreeStream stream_retval =
9271 new RewriteRuleSubtreeStream(
9272 adaptor
, "rule retval",
9273 retval
!= null ? retval
.tree
: null);
9275 root_0
= (CommonTree
) adaptor
.nil();
9276 // 921:28: -> ^( ctfSpecifierHead ctfBody )
9278 // Grammar/CTFParser.g:921:31: ^( ctfSpecifierHead
9281 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9282 root_1
= (CommonTree
) adaptor
.becomeRoot(
9283 stream_ctfSpecifierHead
.nextNode(), root_1
);
9285 adaptor
.addChild(root_1
, stream_ctfBody
.nextTree());
9287 adaptor
.addChild(root_0
, root_1
);
9292 retval
.tree
= root_0
;
9297 // Grammar/CTFParser.g:924:3: typealiasDecl
9299 pushFollow(FOLLOW_typealiasDecl_in_ctfSpecifier3144
);
9300 typealiasDecl161
= typealiasDecl();
9306 if (state
.backtracking
== 0) {
9307 stream_typealiasDecl
.add(typealiasDecl161
.getTree());
9311 // elements: typealiasDecl
9313 // rule labels: retval
9314 // token list labels:
9315 // rule list labels:
9317 if (state
.backtracking
== 0) {
9318 retval
.tree
= root_0
;
9319 // RewriteRuleSubtreeStream stream_retval =
9320 new RewriteRuleSubtreeStream(
9321 adaptor
, "rule retval",
9322 retval
!= null ? retval
.tree
: null);
9324 root_0
= (CommonTree
) adaptor
.nil();
9325 // 924:17: -> ^( DECLARATION typealiasDecl )
9327 // Grammar/CTFParser.g:924:20: ^( DECLARATION
9330 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9331 root_1
= (CommonTree
) adaptor
.becomeRoot(
9332 adaptor
.create(DECLARATION
, "DECLARATION"),
9335 adaptor
.addChild(root_1
,
9336 stream_typealiasDecl
.nextTree());
9338 adaptor
.addChild(root_0
, root_1
);
9343 retval
.tree
= root_0
;
9349 retval
.stop
= input
.LT(-1);
9351 if (state
.backtracking
== 0) {
9353 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
9354 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
9357 if (state
.backtracking
== 0) {
9359 exit("ctfSpecifier");
9364 catch (RecognitionException e
) {
9371 // $ANTLR end "ctfSpecifier"
9373 public static class ctfSpecifierHead_return
extends ParserRuleReturnScope
{
9377 public Object
getTree() {
9382 // $ANTLR start "ctfSpecifierHead"
9383 // Grammar/CTFParser.g:927:1: ctfSpecifierHead : ( EVENTTOK -> EVENT |
9384 // STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK ->
9386 public final CTFParser
.ctfSpecifierHead_return
ctfSpecifierHead()
9387 throws RecognitionException
{
9388 CTFParser
.ctfSpecifierHead_return retval
= new CTFParser
.ctfSpecifierHead_return();
9389 retval
.start
= input
.LT(1);
9391 CommonTree root_0
= null;
9393 Token EVENTTOK162
= null;
9394 Token STREAMTOK163
= null;
9395 Token TRACETOK164
= null;
9396 Token ENVTOK165
= null;
9397 Token CLOCKTOK166
= null;
9399 CommonTree EVENTTOK162_tree
= null;
9400 CommonTree STREAMTOK163_tree
= null;
9401 CommonTree TRACETOK164_tree
= null;
9402 CommonTree ENVTOK165_tree
= null;
9403 CommonTree CLOCKTOK166_tree
= null;
9404 RewriteRuleTokenStream stream_EVENTTOK
= new RewriteRuleTokenStream(
9405 adaptor
, "token EVENTTOK");
9406 RewriteRuleTokenStream stream_STREAMTOK
= new RewriteRuleTokenStream(
9407 adaptor
, "token STREAMTOK");
9408 RewriteRuleTokenStream stream_ENVTOK
= new RewriteRuleTokenStream(
9409 adaptor
, "token ENVTOK");
9410 RewriteRuleTokenStream stream_CLOCKTOK
= new RewriteRuleTokenStream(
9411 adaptor
, "token CLOCKTOK");
9412 RewriteRuleTokenStream stream_TRACETOK
= new RewriteRuleTokenStream(
9413 adaptor
, "token TRACETOK");
9415 enter("ctfSpecifierHead");
9418 // Grammar/CTFParser.g:935:1: ( EVENTTOK -> EVENT | STREAMTOK ->
9419 // STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK )
9421 switch (input
.LA(1)) {
9443 if (state
.backtracking
> 0) {
9444 state
.failed
= true;
9447 NoViableAltException nvae
= new NoViableAltException("", 53, 0,
9455 // Grammar/CTFParser.g:936:4: EVENTTOK
9457 EVENTTOK162
= (Token
) match(input
, EVENTTOK
,
9458 FOLLOW_EVENTTOK_in_ctfSpecifierHead3176
);
9462 if (state
.backtracking
== 0) {
9463 stream_EVENTTOK
.add(EVENTTOK162
);
9469 // rule labels: retval
9470 // token list labels:
9471 // rule list labels:
9473 if (state
.backtracking
== 0) {
9474 retval
.tree
= root_0
;
9475 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
9476 adaptor
, "rule retval",
9477 retval
!= null ? retval
.tree
: null);
9479 root_0
= (CommonTree
) adaptor
.nil();
9482 adaptor
.addChild(root_0
, adaptor
.create(EVENT
, "EVENT"));
9486 retval
.tree
= root_0
;
9491 // Grammar/CTFParser.g:937:4: STREAMTOK
9493 STREAMTOK163
= (Token
) match(input
, STREAMTOK
,
9494 FOLLOW_STREAMTOK_in_ctfSpecifierHead3185
);
9498 if (state
.backtracking
== 0) {
9499 stream_STREAMTOK
.add(STREAMTOK163
);
9505 // rule labels: retval
9506 // token list labels:
9507 // rule list labels:
9509 if (state
.backtracking
== 0) {
9510 retval
.tree
= root_0
;
9511 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
9512 adaptor
, "rule retval",
9513 retval
!= null ? retval
.tree
: null);
9515 root_0
= (CommonTree
) adaptor
.nil();
9516 // 937:14: -> STREAM
9518 adaptor
.addChild(root_0
,
9519 adaptor
.create(STREAM
, "STREAM"));
9523 retval
.tree
= root_0
;
9528 // Grammar/CTFParser.g:938:4: TRACETOK
9530 TRACETOK164
= (Token
) match(input
, TRACETOK
,
9531 FOLLOW_TRACETOK_in_ctfSpecifierHead3194
);
9535 if (state
.backtracking
== 0) {
9536 stream_TRACETOK
.add(TRACETOK164
);
9542 // rule labels: retval
9543 // token list labels:
9544 // rule list labels:
9546 if (state
.backtracking
== 0) {
9547 retval
.tree
= root_0
;
9548 // RewriteRuleSubtreeStream stream_retval =
9549 new RewriteRuleSubtreeStream(
9550 adaptor
, "rule retval",
9551 retval
!= null ? retval
.tree
: null);
9553 root_0
= (CommonTree
) adaptor
.nil();
9556 adaptor
.addChild(root_0
, adaptor
.create(TRACE
, "TRACE"));
9560 retval
.tree
= root_0
;
9565 // Grammar/CTFParser.g:939:4: ENVTOK
9567 ENVTOK165
= (Token
) match(input
, ENVTOK
,
9568 FOLLOW_ENVTOK_in_ctfSpecifierHead3203
);
9572 if (state
.backtracking
== 0) {
9573 stream_ENVTOK
.add(ENVTOK165
);
9579 // rule labels: retval
9580 // token list labels:
9581 // rule list labels:
9583 if (state
.backtracking
== 0) {
9584 retval
.tree
= root_0
;
9585 // RewriteRuleSubtreeStream stream_retval =
9586 new RewriteRuleSubtreeStream(
9587 adaptor
, "rule retval",
9588 retval
!= null ? retval
.tree
: null);
9590 root_0
= (CommonTree
) adaptor
.nil();
9593 adaptor
.addChild(root_0
, adaptor
.create(ENV
, "ENV"));
9597 retval
.tree
= root_0
;
9602 // Grammar/CTFParser.g:940:4: CLOCKTOK
9604 CLOCKTOK166
= (Token
) match(input
, CLOCKTOK
,
9605 FOLLOW_CLOCKTOK_in_ctfSpecifierHead3212
);
9609 if (state
.backtracking
== 0) {
9610 stream_CLOCKTOK
.add(CLOCKTOK166
);
9616 // rule labels: retval
9617 // token list labels:
9618 // rule list labels:
9620 if (state
.backtracking
== 0) {
9621 retval
.tree
= root_0
;
9622 // RewriteRuleSubtreeStream stream_retval =
9623 new RewriteRuleSubtreeStream(
9624 adaptor
, "rule retval",
9625 retval
!= null ? retval
.tree
: null);
9627 root_0
= (CommonTree
) adaptor
.nil();
9630 adaptor
.addChild(root_0
, adaptor
.create(CLOCK
, "CLOCK"));
9634 retval
.tree
= root_0
;
9640 retval
.stop
= input
.LT(-1);
9642 if (state
.backtracking
== 0) {
9644 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
9645 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
9648 if (state
.backtracking
== 0) {
9650 debug_print(input
.toString(retval
.start
, input
.LT(-1)));
9651 exit("ctfSpecifierHead");
9656 catch (RecognitionException e
) {
9663 // $ANTLR end "ctfSpecifierHead"
9665 public static class ctfTypeSpecifier_return
extends ParserRuleReturnScope
{
9669 public Object
getTree() {
9674 // $ANTLR start "ctfTypeSpecifier"
9675 // Grammar/CTFParser.g:943:1: ctfTypeSpecifier : ( FLOATINGPOINTTOK ctfBody
9676 // -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER (
9677 // ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) );
9678 public final CTFParser
.ctfTypeSpecifier_return
ctfTypeSpecifier()
9679 throws RecognitionException
{
9680 CTFParser
.ctfTypeSpecifier_return retval
= new CTFParser
.ctfTypeSpecifier_return();
9681 retval
.start
= input
.LT(1);
9683 CommonTree root_0
= null;
9685 Token FLOATINGPOINTTOK167
= null;
9686 Token INTEGERTOK169
= null;
9687 Token STRINGTOK171
= null;
9688 CTFParser
.ctfBody_return ctfBody168
= null;
9690 CTFParser
.ctfBody_return ctfBody170
= null;
9692 CTFParser
.ctfBody_return ctfBody172
= null;
9694 CommonTree FLOATINGPOINTTOK167_tree
= null;
9695 CommonTree INTEGERTOK169_tree
= null;
9696 CommonTree STRINGTOK171_tree
= null;
9697 RewriteRuleTokenStream stream_FLOATINGPOINTTOK
= new RewriteRuleTokenStream(
9698 adaptor
, "token FLOATINGPOINTTOK");
9699 RewriteRuleTokenStream stream_STRINGTOK
= new RewriteRuleTokenStream(
9700 adaptor
, "token STRINGTOK");
9701 RewriteRuleTokenStream stream_INTEGERTOK
= new RewriteRuleTokenStream(
9702 adaptor
, "token INTEGERTOK");
9703 RewriteRuleSubtreeStream stream_ctfBody
= new RewriteRuleSubtreeStream(
9704 adaptor
, "rule ctfBody");
9706 enter("ctfTypeSpecifier");
9709 // Grammar/CTFParser.g:950:1: ( FLOATINGPOINTTOK ctfBody -> ^(
9710 // FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER
9711 // ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )?
9714 switch (input
.LA(1)) {
9715 case FLOATINGPOINTTOK
: {
9728 if (state
.backtracking
> 0) {
9729 state
.failed
= true;
9732 NoViableAltException nvae
= new NoViableAltException("", 55, 0,
9740 // Grammar/CTFParser.g:952:5: FLOATINGPOINTTOK ctfBody
9742 FLOATINGPOINTTOK167
= (Token
) match(input
, FLOATINGPOINTTOK
,
9743 FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3246
);
9747 if (state
.backtracking
== 0) {
9748 stream_FLOATINGPOINTTOK
.add(FLOATINGPOINTTOK167
);
9751 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3248
);
9752 ctfBody168
= ctfBody();
9758 if (state
.backtracking
== 0) {
9759 stream_ctfBody
.add(ctfBody168
.getTree());
9763 // elements: ctfBody
9765 // rule labels: retval
9766 // token list labels:
9767 // rule list labels:
9769 if (state
.backtracking
== 0) {
9770 retval
.tree
= root_0
;
9771 // RewriteRuleSubtreeStream stream_retval =
9772 new RewriteRuleSubtreeStream(
9773 adaptor
, "rule retval",
9774 retval
!= null ? retval
.tree
: null);
9776 root_0
= (CommonTree
) adaptor
.nil();
9777 // 952:30: -> ^( FLOATING_POINT ( ctfBody )? )
9779 // Grammar/CTFParser.g:952:33: ^( FLOATING_POINT (
9782 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9783 root_1
= (CommonTree
) adaptor
.becomeRoot(adaptor
9784 .create(FLOATING_POINT
, "FLOATING_POINT"),
9787 // Grammar/CTFParser.g:952:50: ( ctfBody )?
9788 if (stream_ctfBody
.hasNext()) {
9789 adaptor
.addChild(root_1
,
9790 stream_ctfBody
.nextTree());
9793 stream_ctfBody
.reset();
9795 adaptor
.addChild(root_0
, root_1
);
9800 retval
.tree
= root_0
;
9805 // Grammar/CTFParser.g:953:5: INTEGERTOK ctfBody
9807 INTEGERTOK169
= (Token
) match(input
, INTEGERTOK
,
9808 FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3263
);
9812 if (state
.backtracking
== 0) {
9813 stream_INTEGERTOK
.add(INTEGERTOK169
);
9816 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3265
);
9817 ctfBody170
= ctfBody();
9823 if (state
.backtracking
== 0) {
9824 stream_ctfBody
.add(ctfBody170
.getTree());
9828 // elements: ctfBody
9830 // rule labels: retval
9831 // token list labels:
9832 // rule list labels:
9834 if (state
.backtracking
== 0) {
9835 retval
.tree
= root_0
;
9836 // RewriteRuleSubtreeStream stream_retval =
9837 new RewriteRuleSubtreeStream(
9838 adaptor
, "rule retval",
9839 retval
!= null ? retval
.tree
: null);
9841 root_0
= (CommonTree
) adaptor
.nil();
9842 // 953:24: -> ^( INTEGER ( ctfBody )? )
9844 // Grammar/CTFParser.g:953:27: ^( INTEGER ( ctfBody )? )
9846 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9847 root_1
= (CommonTree
) adaptor
.becomeRoot(
9848 adaptor
.create(INTEGER
, "INTEGER"), root_1
);
9850 // Grammar/CTFParser.g:953:37: ( ctfBody )?
9851 if (stream_ctfBody
.hasNext()) {
9852 adaptor
.addChild(root_1
,
9853 stream_ctfBody
.nextTree());
9856 stream_ctfBody
.reset();
9858 adaptor
.addChild(root_0
, root_1
);
9863 retval
.tree
= root_0
;
9868 // Grammar/CTFParser.g:954:5: STRINGTOK ( ctfBody )?
9870 STRINGTOK171
= (Token
) match(input
, STRINGTOK
,
9871 FOLLOW_STRINGTOK_in_ctfTypeSpecifier3280
);
9875 if (state
.backtracking
== 0) {
9876 stream_STRINGTOK
.add(STRINGTOK171
);
9879 // Grammar/CTFParser.g:954:15: ( ctfBody )?
9881 alt54
= dfa54
.predict(input
);
9884 // Grammar/CTFParser.g:954:15: ctfBody
9886 pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3282
);
9887 ctfBody172
= ctfBody();
9893 if (state
.backtracking
== 0) {
9894 stream_ctfBody
.add(ctfBody172
.getTree());
9903 // elements: ctfBody
9905 // rule labels: retval
9906 // token list labels:
9907 // rule list labels:
9909 if (state
.backtracking
== 0) {
9910 retval
.tree
= root_0
;
9911 // RewriteRuleSubtreeStream stream_retval =
9912 new RewriteRuleSubtreeStream(
9913 adaptor
, "rule retval",
9914 retval
!= null ? retval
.tree
: null);
9916 root_0
= (CommonTree
) adaptor
.nil();
9917 // 954:24: -> ^( STRING ( ctfBody )? )
9919 // Grammar/CTFParser.g:954:27: ^( STRING ( ctfBody )? )
9921 CommonTree root_1
= (CommonTree
) adaptor
.nil();
9922 root_1
= (CommonTree
) adaptor
.becomeRoot(
9923 adaptor
.create(STRING
, "STRING"), root_1
);
9925 // Grammar/CTFParser.g:954:36: ( ctfBody )?
9926 if (stream_ctfBody
.hasNext()) {
9927 adaptor
.addChild(root_1
,
9928 stream_ctfBody
.nextTree());
9931 stream_ctfBody
.reset();
9933 adaptor
.addChild(root_0
, root_1
);
9938 retval
.tree
= root_0
;
9944 retval
.stop
= input
.LT(-1);
9946 if (state
.backtracking
== 0) {
9948 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
9949 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
9952 if (state
.backtracking
== 0) {
9954 exit("ctfTypeSpecifier");
9959 catch (RecognitionException e
) {
9966 // $ANTLR end "ctfTypeSpecifier"
9968 public static class ctfBody_return
extends ParserRuleReturnScope
{
9972 public Object
getTree() {
9977 // $ANTLR start "ctfBody"
9978 // Grammar/CTFParser.g:957:1: ctfBody : LCURL ( ctfAssignmentExpressionList
9979 // )? RCURL -> ( ctfAssignmentExpressionList )? ;
9980 public final CTFParser
.ctfBody_return
ctfBody() throws RecognitionException
{
9981 Symbols_stack
.push(new Symbols_scope());
9983 CTFParser
.ctfBody_return retval
= new CTFParser
.ctfBody_return();
9984 retval
.start
= input
.LT(1);
9986 CommonTree root_0
= null;
9988 Token LCURL173
= null;
9989 Token RCURL175
= null;
9990 CTFParser
.ctfAssignmentExpressionList_return ctfAssignmentExpressionList174
= null;
9992 CommonTree LCURL173_tree
= null;
9993 CommonTree RCURL175_tree
= null;
9994 RewriteRuleTokenStream stream_LCURL
= new RewriteRuleTokenStream(
9995 adaptor
, "token LCURL");
9996 RewriteRuleTokenStream stream_RCURL
= new RewriteRuleTokenStream(
9997 adaptor
, "token RCURL");
9998 RewriteRuleSubtreeStream stream_ctfAssignmentExpressionList
= new RewriteRuleSubtreeStream(
9999 adaptor
, "rule ctfAssignmentExpressionList");
10002 debug_print("Scope push " + +Symbols_stack
.size());
10003 ((Symbols_scope
) Symbols_stack
.peek()).types
= new HashSet
<String
>();
10006 // Grammar/CTFParser.g:968:1: ( LCURL ( ctfAssignmentExpressionList
10007 // )? RCURL -> ( ctfAssignmentExpressionList )? )
10008 // Grammar/CTFParser.g:969:3: LCURL ( ctfAssignmentExpressionList )?
10011 LCURL173
= (Token
) match(input
, LCURL
,
10012 FOLLOW_LCURL_in_ctfBody3320
);
10013 if (state
.failed
) {
10016 if (state
.backtracking
== 0) {
10017 stream_LCURL
.add(LCURL173
);
10020 // Grammar/CTFParser.g:969:9: ( ctfAssignmentExpressionList )?
10022 int LA56_0
= input
.LA(1);
10024 if ((((LA56_0
>= ALIGNTOK
) && (LA56_0
<= CLOCKTOK
))
10025 || (LA56_0
== SIGN
) || (LA56_0
== OCTAL_LITERAL
)
10026 || (LA56_0
== DECIMAL_LITERAL
)
10027 || (LA56_0
== HEX_LITERAL
)
10028 || (LA56_0
== CHARACTER_LITERAL
)
10029 || (LA56_0
== STRING_LITERAL
) || (LA56_0
== IDENTIFIER
))) {
10034 // Grammar/CTFParser.g:969:9: ctfAssignmentExpressionList
10036 pushFollow(FOLLOW_ctfAssignmentExpressionList_in_ctfBody3322
);
10037 ctfAssignmentExpressionList174
= ctfAssignmentExpressionList();
10040 if (state
.failed
) {
10043 if (state
.backtracking
== 0) {
10044 stream_ctfAssignmentExpressionList
10045 .add(ctfAssignmentExpressionList174
.getTree());
10053 RCURL175
= (Token
) match(input
, RCURL
,
10054 FOLLOW_RCURL_in_ctfBody3325
);
10055 if (state
.failed
) {
10058 if (state
.backtracking
== 0) {
10059 stream_RCURL
.add(RCURL175
);
10063 // elements: ctfAssignmentExpressionList
10065 // rule labels: retval
10066 // token list labels:
10067 // rule list labels:
10068 // wildcard labels:
10069 if (state
.backtracking
== 0) {
10070 retval
.tree
= root_0
;
10071 // RewriteRuleSubtreeStream stream_retval =
10072 new RewriteRuleSubtreeStream(
10073 adaptor
, "rule retval",
10074 retval
!= null ? retval
.tree
: null);
10076 root_0
= (CommonTree
) adaptor
.nil();
10077 // 969:44: -> ( ctfAssignmentExpressionList )?
10079 // Grammar/CTFParser.g:969:47: (
10080 // ctfAssignmentExpressionList )?
10081 if (stream_ctfAssignmentExpressionList
.hasNext()) {
10082 adaptor
.addChild(root_0
,
10083 stream_ctfAssignmentExpressionList
10087 stream_ctfAssignmentExpressionList
.reset();
10091 retval
.tree
= root_0
;
10095 retval
.stop
= input
.LT(-1);
10097 if (state
.backtracking
== 0) {
10099 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
10100 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
10103 if (state
.backtracking
== 0) {
10105 debug_print("Scope pop " + +Symbols_stack
.size());
10111 catch (RecognitionException e
) {
10114 Symbols_stack
.pop();
10120 // $ANTLR end "ctfBody"
10122 public static class ctfAssignmentExpressionList_return
extends
10123 ParserRuleReturnScope
{
10127 public Object
getTree() {
10132 // $ANTLR start "ctfAssignmentExpressionList"
10133 // Grammar/CTFParser.g:972:1: ctfAssignmentExpressionList : (
10134 // ctfAssignmentExpression TERM )+ ;
10135 public final CTFParser
.ctfAssignmentExpressionList_return
ctfAssignmentExpressionList()
10136 throws RecognitionException
{
10137 CTFParser
.ctfAssignmentExpressionList_return retval
= new CTFParser
.ctfAssignmentExpressionList_return();
10138 retval
.start
= input
.LT(1);
10140 CommonTree root_0
= null;
10142 Token TERM177
= null;
10143 CTFParser
.ctfAssignmentExpression_return ctfAssignmentExpression176
= null;
10145 CommonTree TERM177_tree
= null;
10148 // Grammar/CTFParser.g:972:29: ( ( ctfAssignmentExpression TERM )+ )
10149 // Grammar/CTFParser.g:973:3: ( ctfAssignmentExpression TERM )+
10151 root_0
= (CommonTree
) adaptor
.nil();
10153 // Grammar/CTFParser.g:973:3: ( ctfAssignmentExpression TERM )+
10157 int LA57_0
= input
.LA(1);
10159 if ((((LA57_0
>= ALIGNTOK
) && (LA57_0
<= CLOCKTOK
))
10160 || (LA57_0
== SIGN
) || (LA57_0
== OCTAL_LITERAL
)
10161 || (LA57_0
== DECIMAL_LITERAL
)
10162 || (LA57_0
== HEX_LITERAL
)
10163 || (LA57_0
== CHARACTER_LITERAL
)
10164 || (LA57_0
== STRING_LITERAL
) || (LA57_0
== IDENTIFIER
))) {
10170 // Grammar/CTFParser.g:973:4: ctfAssignmentExpression TERM
10172 pushFollow(FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3344
);
10173 ctfAssignmentExpression176
= ctfAssignmentExpression();
10176 if (state
.failed
) {
10179 if (state
.backtracking
== 0) {
10180 adaptor
.addChild(root_0
,
10181 ctfAssignmentExpression176
.getTree());
10183 TERM177
= (Token
) match(input
, TERM
,
10184 FOLLOW_TERM_in_ctfAssignmentExpressionList3346
);
10185 if (state
.failed
) {
10196 if (state
.backtracking
> 0) {
10197 state
.failed
= true;
10200 EarlyExitException eee
= new EarlyExitException(57,
10209 retval
.stop
= input
.LT(-1);
10211 if (state
.backtracking
== 0) {
10213 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
10214 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
10219 catch (RecognitionException e
) {
10226 // $ANTLR end "ctfAssignmentExpressionList"
10228 public static class ctfAssignmentExpression_return
extends
10229 ParserRuleReturnScope
{
10233 public Object
getTree() {
10238 // $ANTLR start "ctfAssignmentExpression"
10239 // Grammar/CTFParser.g:977:1: ctfAssignmentExpression : ( (left=
10240 // unaryExpression ( (assignment= ASSIGNMENT right1= unaryExpression ) -> ^(
10241 // CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |
10242 // (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^(
10243 // CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^(
10244 // TYPE_SPECIFIER_LIST $right2) ) ) ) ) | ( declarationSpecifiers {...}?
10245 // declaratorList ) -> ^( TYPEDEF declaratorList declarationSpecifiers ) |
10246 // typealiasDecl );
10247 public final CTFParser
.ctfAssignmentExpression_return
ctfAssignmentExpression()
10248 throws RecognitionException
{
10249 CTFParser
.ctfAssignmentExpression_return retval
= new CTFParser
.ctfAssignmentExpression_return();
10250 retval
.start
= input
.LT(1);
10252 CommonTree root_0
= null;
10254 Token assignment
= null;
10255 Token type_assignment
= null;
10256 CTFParser
.unaryExpression_return left
= null;
10258 CTFParser
.unaryExpression_return right1
= null;
10260 CTFParser
.typeSpecifier_return right2
= null;
10262 CTFParser
.declarationSpecifiers_return declarationSpecifiers178
= null;
10264 CTFParser
.declaratorList_return declaratorList179
= null;
10266 CTFParser
.typealiasDecl_return typealiasDecl180
= null;
10268 CommonTree assignment_tree
= null;
10269 CommonTree type_assignment_tree
= null;
10270 RewriteRuleTokenStream stream_ASSIGNMENT
= new RewriteRuleTokenStream(
10271 adaptor
, "token ASSIGNMENT");
10272 RewriteRuleTokenStream stream_TYPE_ASSIGNMENT
= new RewriteRuleTokenStream(
10273 adaptor
, "token TYPE_ASSIGNMENT");
10274 RewriteRuleSubtreeStream stream_declaratorList
= new RewriteRuleSubtreeStream(
10275 adaptor
, "rule declaratorList");
10276 RewriteRuleSubtreeStream stream_unaryExpression
= new RewriteRuleSubtreeStream(
10277 adaptor
, "rule unaryExpression");
10278 RewriteRuleSubtreeStream stream_declarationSpecifiers
= new RewriteRuleSubtreeStream(
10279 adaptor
, "rule declarationSpecifiers");
10280 RewriteRuleSubtreeStream stream_typeSpecifier
= new RewriteRuleSubtreeStream(
10281 adaptor
, "rule typeSpecifier");
10283 enter("ctfAssignmentExpression");
10286 // Grammar/CTFParser.g:987:1: ( (left= unaryExpression (
10287 // (assignment= ASSIGNMENT right1= unaryExpression ) -> ^(
10288 // CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |
10289 // (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^(
10290 // CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^(
10291 // TYPE_SPECIFIER_LIST $right2) ) ) ) ) | ( declarationSpecifiers
10292 // {...}? declaratorList ) -> ^( TYPEDEF declaratorList
10293 // declarationSpecifiers ) | typealiasDecl )
10295 switch (input
.LA(1)) {
10297 int LA59_1
= input
.LA(2);
10299 if ((((LA59_1
>= CONSTTOK
) && (LA59_1
<= ENUMTOK
))
10300 || ((LA59_1
>= FLOATINGPOINTTOK
) && (LA59_1
<= SIGNEDTOK
))
10301 || ((LA59_1
>= STRINGTOK
) && (LA59_1
<= STRUCTTOK
))
10302 || ((LA59_1
>= TYPEDEFTOK
) && (LA59_1
<= IMAGINARYTOK
))
10303 || (LA59_1
== POINTER
) || (LA59_1
== IDENTIFIER
))
10304 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
10307 } else if ((((LA59_1
>= ASSIGNMENT
) && (LA59_1
<= TYPE_ASSIGNMENT
))
10308 || (LA59_1
== OPENBRAC
) || ((LA59_1
>= ARROW
) && (LA59_1
<= DOT
)))) {
10311 if (state
.backtracking
> 0) {
10312 state
.failed
= true;
10315 NoViableAltException nvae
= new NoViableAltException("",
10329 case OCTAL_LITERAL
:
10330 case DECIMAL_LITERAL
:
10332 case CHARACTER_LITERAL
:
10333 case STRING_LITERAL
: {
10338 switch (input
.LA(2)) {
10340 case TYPE_ASSIGNMENT
:
10351 case FLOATINGPOINTTOK
:
10376 if (state
.backtracking
> 0) {
10377 state
.failed
= true;
10380 NoViableAltException nvae
= new NoViableAltException("",
10392 case FLOATINGPOINTTOK
:
10405 case IMAGINARYTOK
: {
10410 switch (input
.LA(2)) {
10412 case TYPE_ASSIGNMENT
:
10423 case FLOATINGPOINTTOK
:
10449 if (state
.backtracking
> 0) {
10450 state
.failed
= true;
10453 NoViableAltException nvae
= new NoViableAltException("",
10461 case TYPEALIASTOK
: {
10466 if (state
.backtracking
> 0) {
10467 state
.failed
= true;
10470 NoViableAltException nvae
= new NoViableAltException("", 59, 0,
10478 // Grammar/CTFParser.g:988:3: (left= unaryExpression ( (assignment=
10479 // ASSIGNMENT right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^(
10480 // CTF_LEFT $left) ^( CTF_RIGHT $right1) ) | (type_assignment=
10481 // TYPE_ASSIGNMENT right2= typeSpecifier ) -> ^( CTF_EXPRESSION_TYPE
10482 // ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) )
10485 // Grammar/CTFParser.g:988:3: (left= unaryExpression (
10486 // (assignment= ASSIGNMENT right1= unaryExpression ) -> ^(
10487 // CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) )
10488 // | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier )
10489 // -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^(
10490 // TYPE_SPECIFIER_LIST $right2) ) ) ) )
10491 // Grammar/CTFParser.g:989:5: left= unaryExpression (
10492 // (assignment= ASSIGNMENT right1= unaryExpression ) -> ^(
10493 // CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) )
10494 // | (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier )
10495 // -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^(
10496 // TYPE_SPECIFIER_LIST $right2) ) ) )
10498 pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3381
);
10499 left
= unaryExpression();
10502 if (state
.failed
) {
10505 if (state
.backtracking
== 0) {
10506 stream_unaryExpression
.add(left
.getTree());
10508 // Grammar/CTFParser.g:990:5: ( (assignment= ASSIGNMENT
10509 // right1= unaryExpression ) -> ^( CTF_EXPRESSION_VAL ^(
10510 // CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |
10511 // (type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier )
10512 // -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT
10513 // ^( TYPE_SPECIFIER_LIST $right2) ) ) )
10515 int LA58_0
= input
.LA(1);
10517 if ((LA58_0
== ASSIGNMENT
)) {
10519 } else if ((LA58_0
== TYPE_ASSIGNMENT
)) {
10522 if (state
.backtracking
> 0) {
10523 state
.failed
= true;
10526 NoViableAltException nvae
= new NoViableAltException(
10533 // Grammar/CTFParser.g:991:9: (assignment= ASSIGNMENT
10534 // right1= unaryExpression )
10536 // Grammar/CTFParser.g:991:9: (assignment= ASSIGNMENT
10537 // right1= unaryExpression )
10538 // Grammar/CTFParser.g:991:10: assignment= ASSIGNMENT
10539 // right1= unaryExpression
10541 assignment
= (Token
) match(input
, ASSIGNMENT
,
10542 FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3400
);
10543 if (state
.failed
) {
10546 if (state
.backtracking
== 0) {
10547 stream_ASSIGNMENT
.add(assignment
);
10550 pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3404
);
10551 right1
= unaryExpression();
10554 if (state
.failed
) {
10557 if (state
.backtracking
== 0) {
10558 stream_unaryExpression
.add(right1
.getTree());
10564 // elements: right1, left
10566 // rule labels: retval, left, right1
10567 // token list labels:
10568 // rule list labels:
10569 // wildcard labels:
10570 if (state
.backtracking
== 0) {
10571 retval
.tree
= root_0
;
10572 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
10573 adaptor
, "rule retval",
10574 retval
!= null ? retval
.tree
: null);
10575 RewriteRuleSubtreeStream stream_left
= new RewriteRuleSubtreeStream(
10576 adaptor
, "rule left",
10577 left
!= null ? left
.tree
: null);
10578 RewriteRuleSubtreeStream stream_right1
= new RewriteRuleSubtreeStream(
10579 adaptor
, "rule right1",
10580 right1
!= null ? right1
.tree
: null);
10582 root_0
= (CommonTree
) adaptor
.nil();
10583 // 991:56: -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT
10584 // $left) ^( CTF_RIGHT $right1) )
10586 // Grammar/CTFParser.g:991:59: ^(
10587 // CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^(
10588 // CTF_RIGHT $right1) )
10590 CommonTree root_1
= (CommonTree
) adaptor
10592 root_1
= (CommonTree
) adaptor
.becomeRoot(
10593 adaptor
.create(CTF_EXPRESSION_VAL
,
10594 "CTF_EXPRESSION_VAL"),
10597 // Grammar/CTFParser.g:991:80: ^( CTF_LEFT
10600 CommonTree root_2
= (CommonTree
) adaptor
10602 root_2
= (CommonTree
) adaptor
10603 .becomeRoot(adaptor
.create(
10604 CTF_LEFT
, "CTF_LEFT"),
10607 adaptor
.addChild(root_2
,
10608 stream_left
.nextTree());
10610 adaptor
.addChild(root_1
, root_2
);
10612 // Grammar/CTFParser.g:991:98: ^( CTF_RIGHT
10615 CommonTree root_2
= (CommonTree
) adaptor
10617 root_2
= (CommonTree
) adaptor
10624 adaptor
.addChild(root_2
,
10625 stream_right1
.nextTree());
10627 adaptor
.addChild(root_1
, root_2
);
10630 adaptor
.addChild(root_0
, root_1
);
10635 retval
.tree
= root_0
;
10640 // Grammar/CTFParser.g:992:9: (type_assignment=
10641 // TYPE_ASSIGNMENT right2= typeSpecifier )
10643 // Grammar/CTFParser.g:992:9: (type_assignment=
10644 // TYPE_ASSIGNMENT right2= typeSpecifier )
10645 // Grammar/CTFParser.g:992:10: type_assignment=
10646 // TYPE_ASSIGNMENT right2= typeSpecifier
10648 type_assignment
= (Token
) match(input
,
10650 FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3438
);
10651 if (state
.failed
) {
10654 if (state
.backtracking
== 0) {
10655 stream_TYPE_ASSIGNMENT
.add(type_assignment
);
10658 pushFollow(FOLLOW_typeSpecifier_in_ctfAssignmentExpression3443
);
10659 right2
= typeSpecifier();
10662 if (state
.failed
) {
10665 if (state
.backtracking
== 0) {
10666 stream_typeSpecifier
.add(right2
.getTree());
10672 // elements: left, right2
10674 // rule labels: retval, left, right2
10675 // token list labels:
10676 // rule list labels:
10677 // wildcard labels:
10678 if (state
.backtracking
== 0) {
10679 retval
.tree
= root_0
;
10680 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
10681 adaptor
, "rule retval",
10682 retval
!= null ? retval
.tree
: null);
10683 RewriteRuleSubtreeStream stream_left
= new RewriteRuleSubtreeStream(
10684 adaptor
, "rule left",
10685 left
!= null ? left
.tree
: null);
10686 RewriteRuleSubtreeStream stream_right2
= new RewriteRuleSubtreeStream(
10687 adaptor
, "rule right2",
10688 right2
!= null ? right2
.tree
: null);
10690 root_0
= (CommonTree
) adaptor
.nil();
10691 // 992:65: -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT
10692 // $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST
10695 // Grammar/CTFParser.g:992:68: ^(
10696 // CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^(
10697 // CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) )
10699 CommonTree root_1
= (CommonTree
) adaptor
10701 root_1
= (CommonTree
) adaptor
.becomeRoot(
10702 adaptor
.create(CTF_EXPRESSION_TYPE
,
10703 "CTF_EXPRESSION_TYPE"),
10706 // Grammar/CTFParser.g:992:90: ^( CTF_LEFT
10709 CommonTree root_2
= (CommonTree
) adaptor
10711 root_2
= (CommonTree
) adaptor
10712 .becomeRoot(adaptor
.create(
10713 CTF_LEFT
, "CTF_LEFT"),
10716 adaptor
.addChild(root_2
,
10717 stream_left
.nextTree());
10719 adaptor
.addChild(root_1
, root_2
);
10721 // Grammar/CTFParser.g:992:108: ^( CTF_RIGHT
10722 // ^( TYPE_SPECIFIER_LIST $right2) )
10724 CommonTree root_2
= (CommonTree
) adaptor
10726 root_2
= (CommonTree
) adaptor
10733 // Grammar/CTFParser.g:992:120: ^(
10734 // TYPE_SPECIFIER_LIST $right2)
10736 CommonTree root_3
= (CommonTree
) adaptor
10738 root_3
= (CommonTree
) adaptor
10741 TYPE_SPECIFIER_LIST
,
10742 "TYPE_SPECIFIER_LIST"),
10745 adaptor
.addChild(root_3
,
10746 stream_right2
.nextTree());
10748 adaptor
.addChild(root_2
, root_3
);
10751 adaptor
.addChild(root_1
, root_2
);
10754 adaptor
.addChild(root_0
, root_1
);
10759 retval
.tree
= root_0
;
10771 // Grammar/CTFParser.g:998:5: ( declarationSpecifiers {...}?
10772 // declaratorList )
10774 // Grammar/CTFParser.g:998:5: ( declarationSpecifiers {...}?
10775 // declaratorList )
10776 // Grammar/CTFParser.g:998:6: declarationSpecifiers {...}?
10779 pushFollow(FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3493
);
10780 declarationSpecifiers178
= declarationSpecifiers();
10783 if (state
.failed
) {
10786 if (state
.backtracking
== 0) {
10787 stream_declarationSpecifiers
10788 .add(declarationSpecifiers178
.getTree());
10790 if (!((inTypedef()))) {
10791 if (state
.backtracking
> 0) {
10792 state
.failed
= true;
10795 throw new FailedPredicateException(input
,
10796 "ctfAssignmentExpression", "inTypedef()");
10798 pushFollow(FOLLOW_declaratorList_in_ctfAssignmentExpression3497
);
10799 declaratorList179
= declaratorList();
10802 if (state
.failed
) {
10805 if (state
.backtracking
== 0) {
10806 stream_declaratorList
.add(declaratorList179
.getTree());
10812 // elements: declaratorList, declarationSpecifiers
10814 // rule labels: retval
10815 // token list labels:
10816 // rule list labels:
10817 // wildcard labels:
10818 if (state
.backtracking
== 0) {
10819 retval
.tree
= root_0
;
10820 RewriteRuleSubtreeStream stream_retval
= new RewriteRuleSubtreeStream(
10821 adaptor
, "rule retval",
10822 retval
!= null ? retval
.tree
: null);
10824 root_0
= (CommonTree
) adaptor
.nil();
10825 // 999:5: -> ^( TYPEDEF declaratorList declarationSpecifiers
10828 // Grammar/CTFParser.g:999:8: ^( TYPEDEF declaratorList
10829 // declarationSpecifiers )
10831 CommonTree root_1
= (CommonTree
) adaptor
.nil();
10832 root_1
= (CommonTree
) adaptor
.becomeRoot(
10833 adaptor
.create(TYPEDEF
, "TYPEDEF"), root_1
);
10835 adaptor
.addChild(root_1
,
10836 stream_declaratorList
.nextTree());
10837 adaptor
.addChild(root_1
,
10838 stream_declarationSpecifiers
.nextTree());
10840 adaptor
.addChild(root_0
, root_1
);
10845 retval
.tree
= root_0
;
10850 // Grammar/CTFParser.g:1002:5: typealiasDecl
10852 root_0
= (CommonTree
) adaptor
.nil();
10854 pushFollow(FOLLOW_typealiasDecl_in_ctfAssignmentExpression3525
);
10855 typealiasDecl180
= typealiasDecl();
10858 if (state
.failed
) {
10861 if (state
.backtracking
== 0) {
10862 adaptor
.addChild(root_0
, typealiasDecl180
.getTree());
10869 retval
.stop
= input
.LT(-1);
10871 if (state
.backtracking
== 0) {
10873 retval
.tree
= (CommonTree
) adaptor
.rulePostProcessing(root_0
);
10874 adaptor
.setTokenBoundaries(retval
.tree
, retval
.start
,
10877 if (state
.backtracking
== 0) {
10882 exit("ctfAssignmentExpression");
10887 catch (RecognitionException e
) {
10894 // $ANTLR end "ctfAssignmentExpression"
10896 // $ANTLR start synpred1_CTFParser
10897 public final void synpred1_CTFParser_fragment() throws RecognitionException
{
10898 // Grammar/CTFParser.g:250:5: ( IDENTIFIER )
10899 // Grammar/CTFParser.g:250:6: IDENTIFIER
10901 match(input
, IDENTIFIER
, FOLLOW_IDENTIFIER_in_synpred1_CTFParser470
);
10902 if (state
.failed
) {
10909 // $ANTLR end synpred1_CTFParser
10911 // $ANTLR start synpred2_CTFParser
10912 public final void synpred2_CTFParser_fragment() throws RecognitionException
{
10913 // Grammar/CTFParser.g:251:5: ( ctfKeyword )
10914 // Grammar/CTFParser.g:251:6: ctfKeyword
10916 pushFollow(FOLLOW_ctfKeyword_in_synpred2_CTFParser492
);
10920 if (state
.failed
) {
10927 // $ANTLR end synpred2_CTFParser
10929 // $ANTLR start synpred3_CTFParser
10930 public final void synpred3_CTFParser_fragment() throws RecognitionException
{
10931 // Grammar/CTFParser.g:252:5: ( STRING_LITERAL )
10932 // Grammar/CTFParser.g:252:6: STRING_LITERAL
10934 match(input
, STRING_LITERAL
,
10935 FOLLOW_STRING_LITERAL_in_synpred3_CTFParser512
);
10936 if (state
.failed
) {
10943 // $ANTLR end synpred3_CTFParser
10947 public final boolean synpred2_CTFParser() {
10948 state
.backtracking
++;
10949 int start
= input
.mark();
10951 synpred2_CTFParser_fragment(); // can never throw exception
10952 } catch (RecognitionException re
) {
10953 if(System
.err
!= null) {//findbugs
10954 System
.err
.println("impossible: " + re
);
10957 boolean success
= !state
.failed
;
10958 input
.rewind(start
);
10959 state
.backtracking
--;
10960 state
.failed
= false;
10964 public final boolean synpred1_CTFParser() {
10965 state
.backtracking
++;
10966 int start
= input
.mark();
10968 synpred1_CTFParser_fragment(); // can never throw exception
10969 } catch (RecognitionException re
) {
10970 if( System
.err
!= null ) {//findbugs
10971 System
.err
.println("impossible: " + re
);
10974 boolean success
= !state
.failed
;
10975 input
.rewind(start
);
10976 state
.backtracking
--;
10977 state
.failed
= false;
10981 public final boolean synpred3_CTFParser() {
10982 state
.backtracking
++;
10983 int start
= input
.mark();
10985 synpred3_CTFParser_fragment(); // can never throw exception
10986 } catch (RecognitionException re
) {
10987 if( System
.err
!= null ) { //findbugs
10988 System
.err
.println("impossible: " + re
);
10991 boolean success
= !state
.failed
;
10992 input
.rewind(start
);
10993 state
.backtracking
--;
10994 state
.failed
= false;
10998 protected DFA10 dfa10
= new DFA10(this);
10999 protected DFA17 dfa17
= new DFA17(this);
11000 protected DFA24 dfa24
= new DFA24(this);
11001 protected DFA32 dfa32
= new DFA32(this);
11002 protected DFA54 dfa54
= new DFA54(this);
11003 static final String DFA10_eotS
= "\16\uffff";
11004 static final String DFA10_eofS
= "\16\uffff";
11005 static final String DFA10_minS
= "\1\4\15\uffff";
11006 static final String DFA10_maxS
= "\1\116\15\uffff";
11007 static final String DFA10_acceptS
= "\1\uffff\2\1\7\uffff\1\2\3\uffff";
11008 static final String DFA10_specialS
= "\16\uffff}>";
11009 static final String
[] DFA10_transitionS
= {
11010 "\1\1\4\uffff\1\2\6\uffff\1\1\1\12\1\1\1\uffff\1\12\10\uffff"
11011 + "\2\12\22\uffff\1\1\4\uffff\1\1\1\uffff\1\1\2\uffff\1\1\10\uffff"
11012 + "\1\1\2\uffff\1\1\6\uffff\1\1", "", "", "", "", "", "",
11013 "", "", "", "", "", "", "" };
11015 static final short[] DFA10_eot
= DFA
.unpackEncodedString(DFA10_eotS
);
11016 static final short[] DFA10_eof
= DFA
.unpackEncodedString(DFA10_eofS
);
11017 static final char[] DFA10_min
= DFA
11018 .unpackEncodedStringToUnsignedChars(DFA10_minS
);
11019 static final char[] DFA10_max
= DFA
11020 .unpackEncodedStringToUnsignedChars(DFA10_maxS
);
11021 static final short[] DFA10_accept
= DFA
.unpackEncodedString(DFA10_acceptS
);
11022 static final short[] DFA10_special
= DFA
11023 .unpackEncodedString(DFA10_specialS
);
11024 static final short[][] DFA10_transition
;
11027 int numStates
= DFA10_transitionS
.length
;
11028 DFA10_transition
= new short[numStates
][];
11029 for (int i
= 0; i
< numStates
; i
++) {
11030 DFA10_transition
[i
] = DFA
.unpackEncodedString(DFA10_transitionS
[i
]);
11034 static class DFA10
extends DFA
{
11036 public DFA10(BaseRecognizer recognizer
) {
11037 this.recognizer
= recognizer
;
11038 this.decisionNumber
= 10;
11039 this.eot
= DFA10_eot
;
11040 this.eof
= DFA10_eof
;
11041 this.min
= DFA10_min
;
11042 this.max
= DFA10_max
;
11043 this.accept
= DFA10_accept
;
11044 this.special
= DFA10_special
;
11045 this.transition
= DFA10_transition
;
11049 public String
getDescription() {
11050 return "281:1: postfixExpression : ( ( primaryExpression ) ( postfixExpressionSuffix )* | ( ( ctfSpecifierHead ) ( postfixExpressionSuffix )+ ) );";
11054 static final String DFA17_eotS
= "\22\uffff";
11055 static final String DFA17_eofS
= "\22\uffff";
11056 static final String DFA17_minS
= "\1\6\21\uffff";
11057 static final String DFA17_maxS
= "\1\116\21\uffff";
11058 static final String DFA17_acceptS
= "\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"
11059 + "\15\1\16\1\17\1\20\1\21";
11060 static final String DFA17_specialS
= "\1\0\21\uffff}>";
11061 static final String
[] DFA17_transitionS
= {
11062 "\1\7\1\10\1\17\1\uffff\1\20\1\1\1\20\1\2\1\3\1\4\1\5\1\uffff"
11063 + "\1\20\1\15\3\uffff\1\6\1\16\1\11\1\12\1\13\1\14\61\uffff\1\21",
11064 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
11066 static final short[] DFA17_eot
= DFA
.unpackEncodedString(DFA17_eotS
);
11067 static final short[] DFA17_eof
= DFA
.unpackEncodedString(DFA17_eofS
);
11068 static final char[] DFA17_min
= DFA
11069 .unpackEncodedStringToUnsignedChars(DFA17_minS
);
11070 static final char[] DFA17_max
= DFA
11071 .unpackEncodedStringToUnsignedChars(DFA17_maxS
);
11072 static final short[] DFA17_accept
= DFA
.unpackEncodedString(DFA17_acceptS
);
11073 static final short[] DFA17_special
= DFA
11074 .unpackEncodedString(DFA17_specialS
);
11075 static final short[][] DFA17_transition
;
11078 int numStates
= DFA17_transitionS
.length
;
11079 DFA17_transition
= new short[numStates
][];
11080 for (int i
= 0; i
< numStates
; i
++) {
11081 DFA17_transition
[i
] = DFA
.unpackEncodedString(DFA17_transitionS
[i
]);
11085 class DFA17
extends DFA
{
11087 public DFA17(BaseRecognizer recognizer
) {
11088 this.recognizer
= recognizer
;
11089 this.decisionNumber
= 17;
11090 this.eot
= DFA17_eot
;
11091 this.eof
= DFA17_eof
;
11092 this.min
= DFA17_min
;
11093 this.max
= DFA17_max
;
11094 this.accept
= DFA17_accept
;
11095 this.special
= DFA17_special
;
11096 this.transition
= DFA17_transition
;
11100 public String
getDescription() {
11101 return "384:1: typeSpecifier : ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier | {...}? => typedefName );";
11104 @SuppressWarnings({ "synthetic-access" })
11106 public int specialStateTransition(final int inputS
, IntStream _input
)
11107 throws NoViableAltException
{
11108 TokenStream input
= (TokenStream
) _input
;
11113 int LA17_0
= input
.LA(1);
11115 int index17_0
= input
.index();
11118 if ((LA17_0
== FLOATTOK
)) {
11122 else if ((LA17_0
== INTTOK
)) {
11126 else if ((LA17_0
== LONGTOK
)) {
11130 else if ((LA17_0
== SHORTTOK
)) {
11134 else if ((LA17_0
== SIGNEDTOK
)) {
11138 else if ((LA17_0
== UNSIGNEDTOK
)) {
11142 else if ((LA17_0
== CHARTOK
)) {
11146 else if ((LA17_0
== DOUBLETOK
)) {
11150 else if ((LA17_0
== VOIDTOK
)) {
11154 else if ((LA17_0
== BOOLTOK
)) {
11158 else if ((LA17_0
== COMPLEXTOK
)) {
11162 else if ((LA17_0
== IMAGINARYTOK
)) {
11166 else if ((LA17_0
== STRUCTTOK
)) {
11170 else if ((LA17_0
== VARIANTTOK
)) {
11174 else if ((LA17_0
== ENUMTOK
)) {
11178 else if (((LA17_0
== FLOATINGPOINTTOK
)
11179 || (LA17_0
== INTEGERTOK
) || (LA17_0
== STRINGTOK
))) {
11183 else if ((LA17_0
== IDENTIFIER
)
11184 && ((inTypealiasAlias() || isTypeName(input
.LT(1)
11189 input
.seek(index17_0
);
11195 if (state
.backtracking
> 0) {
11196 state
.failed
= true;
11199 NoViableAltException nvae
= new NoViableAltException(
11200 getDescription(), 17, _s
, input
);
11206 static final String DFA24_eotS
= "\6\uffff";
11207 static final String DFA24_eofS
= "\6\uffff";
11208 static final String DFA24_minS
= "\1\60\1\5\1\0\1\5\2\uffff";
11209 static final String DFA24_maxS
= "\2\116\1\0\1\116\2\uffff";
11210 static final String DFA24_acceptS
= "\4\uffff\1\1\1\2";
11211 static final String DFA24_specialS
= "\2\uffff\1\0\3\uffff}>";
11212 static final String
[] DFA24_transitionS
= { "\1\1\35\uffff\1\2",
11213 "\1\3\52\uffff\1\1\35\uffff\1\2", "\1\uffff",
11214 "\1\3\52\uffff\1\1\35\uffff\1\2", "", "" };
11216 static final short[] DFA24_eot
= DFA
.unpackEncodedString(DFA24_eotS
);
11217 static final short[] DFA24_eof
= DFA
.unpackEncodedString(DFA24_eofS
);
11218 static final char[] DFA24_min
= DFA
11219 .unpackEncodedStringToUnsignedChars(DFA24_minS
);
11220 static final char[] DFA24_max
= DFA
11221 .unpackEncodedStringToUnsignedChars(DFA24_maxS
);
11222 static final short[] DFA24_accept
= DFA
.unpackEncodedString(DFA24_acceptS
);
11223 static final short[] DFA24_special
= DFA
11224 .unpackEncodedString(DFA24_specialS
);
11225 static final short[][] DFA24_transition
;
11228 int numStates
= DFA24_transitionS
.length
;
11229 DFA24_transition
= new short[numStates
][];
11230 for (int i
= 0; i
< numStates
; i
++) {
11231 DFA24_transition
[i
] = DFA
.unpackEncodedString(DFA24_transitionS
[i
]);
11235 class DFA24
extends DFA
{
11237 public DFA24(BaseRecognizer recognizer
) {
11238 this.recognizer
= recognizer
;
11239 this.decisionNumber
= 24;
11240 this.eot
= DFA24_eot
;
11241 this.eof
= DFA24_eof
;
11242 this.min
= DFA24_min
;
11243 this.max
= DFA24_max
;
11244 this.accept
= DFA24_accept
;
11245 this.special
= DFA24_special
;
11246 this.transition
= DFA24_transition
;
11250 public String
getDescription() {
11251 return "521:7: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )";
11255 public int specialStateTransition(int s
, IntStream _input
)
11256 throws NoViableAltException
{
11257 TokenStream input
= (TokenStream
) _input
;
11261 int LA24_2
= input
.LA(1);
11263 int index24_2
= input
.index();
11266 if (((inTypedef()))) {
11274 input
.seek(index24_2
);
11280 if (state
.backtracking
> 0) {
11281 state
.failed
= true;
11284 NoViableAltException nvae
= new NoViableAltException(
11285 getDescription(), 24, _s
, input
);
11291 static final String DFA32_eotS
= "\35\uffff";
11292 static final String DFA32_eofS
= "\1\3\34\uffff";
11293 static final String DFA32_minS
= "\1\5\34\uffff";
11294 static final String DFA32_maxS
= "\1\116\34\uffff";
11295 static final String DFA32_acceptS
= "\1\uffff\1\1\1\2\1\3\31\uffff";
11296 static final String DFA32_specialS
= "\35\uffff}>";
11297 static final String
[] DFA32_transitionS
= {
11298 "\4\3\1\uffff\7\3\1\uffff\2\3\2\uffff\7\3\6\uffff\1\1\2\uffff"
11299 + "\1\3\4\uffff\1\3\1\uffff\1\2\1\uffff\2\3\35\uffff\1\3",
11300 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
11301 "", "", "", "", "", "", "", "", "", "", "" };
11303 static final short[] DFA32_eot
= DFA
.unpackEncodedString(DFA32_eotS
);
11304 static final short[] DFA32_eof
= DFA
.unpackEncodedString(DFA32_eofS
);
11305 static final char[] DFA32_min
= DFA
11306 .unpackEncodedStringToUnsignedChars(DFA32_minS
);
11307 static final char[] DFA32_max
= DFA
11308 .unpackEncodedStringToUnsignedChars(DFA32_maxS
);
11309 static final short[] DFA32_accept
= DFA
.unpackEncodedString(DFA32_acceptS
);
11310 static final short[] DFA32_special
= DFA
11311 .unpackEncodedString(DFA32_specialS
);
11312 static final short[][] DFA32_transition
;
11315 int numStates
= DFA32_transitionS
.length
;
11316 DFA32_transition
= new short[numStates
][];
11317 for (int i
= 0; i
< numStates
; i
++) {
11318 DFA32_transition
[i
] = DFA
.unpackEncodedString(DFA32_transitionS
[i
]);
11322 static class DFA32
extends DFA
{
11324 public DFA32(BaseRecognizer recognizer
) {
11325 this.recognizer
= recognizer
;
11326 this.decisionNumber
= 32;
11327 this.eot
= DFA32_eot
;
11328 this.eof
= DFA32_eof
;
11329 this.min
= DFA32_min
;
11330 this.max
= DFA32_max
;
11331 this.accept
= DFA32_accept
;
11332 this.special
= DFA32_special
;
11333 this.transition
= DFA32_transition
;
11337 public String
getDescription() {
11338 return "655:4: ( enumContainerType enumBody | enumBody | )";
11342 static final String DFA54_eotS
= "\34\uffff";
11343 static final String DFA54_eofS
= "\1\2\33\uffff";
11344 static final String DFA54_minS
= "\1\5\33\uffff";
11345 static final String DFA54_maxS
= "\1\116\33\uffff";
11346 static final String DFA54_acceptS
= "\1\uffff\1\1\1\2\31\uffff";
11347 static final String DFA54_specialS
= "\34\uffff}>";
11348 static final String
[] DFA54_transitionS
= {
11349 "\4\2\1\uffff\7\2\1\uffff\2\2\2\uffff\7\2\11\uffff\1\2\4\uffff"
11350 + "\1\2\1\uffff\1\1\1\uffff\2\2\35\uffff\1\2", "", "", "",
11351 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
11352 "", "", "", "", "", "", "" };
11354 static final short[] DFA54_eot
= DFA
.unpackEncodedString(DFA54_eotS
);
11355 static final short[] DFA54_eof
= DFA
.unpackEncodedString(DFA54_eofS
);
11356 static final char[] DFA54_min
= DFA
11357 .unpackEncodedStringToUnsignedChars(DFA54_minS
);
11358 static final char[] DFA54_max
= DFA
11359 .unpackEncodedStringToUnsignedChars(DFA54_maxS
);
11360 static final short[] DFA54_accept
= DFA
.unpackEncodedString(DFA54_acceptS
);
11361 static final short[] DFA54_special
= DFA
11362 .unpackEncodedString(DFA54_specialS
);
11363 static final short[][] DFA54_transition
;
11366 int numStates
= DFA54_transitionS
.length
;
11367 DFA54_transition
= new short[numStates
][];
11368 for (int i
= 0; i
< numStates
; i
++) {
11369 DFA54_transition
[i
] = DFA
.unpackEncodedString(DFA54_transitionS
[i
]);
11373 static class DFA54
extends DFA
{
11375 public DFA54(BaseRecognizer recognizer
) {
11376 this.recognizer
= recognizer
;
11377 this.decisionNumber
= 54;
11378 this.eot
= DFA54_eot
;
11379 this.eof
= DFA54_eof
;
11380 this.min
= DFA54_min
;
11381 this.max
= DFA54_max
;
11382 this.accept
= DFA54_accept
;
11383 this.special
= DFA54_special
;
11384 this.transition
= DFA54_transition
;
11388 public String
getDescription() {
11389 return "954:15: ( ctfBody )?";
11393 public static final BitSet FOLLOW_declaration_in_parse321
= new BitSet(
11394 new long[] { 0x000000007FFFFFE0L
, 0x0000000000004000L
});
11395 public static final BitSet FOLLOW_EOF_in_parse324
= new BitSet(
11396 new long[] { 0x0000000000000002L
});
11397 public static final BitSet FOLLOW_SIGN_in_numberLiteral357
= new BitSet(
11398 new long[] { 0x0942000000000000L
});
11399 public static final BitSet FOLLOW_HEX_LITERAL_in_numberLiteral362
= new BitSet(
11400 new long[] { 0x0000000000000002L
});
11401 public static final BitSet FOLLOW_DECIMAL_LITERAL_in_numberLiteral379
= new BitSet(
11402 new long[] { 0x0000000000000002L
});
11403 public static final BitSet FOLLOW_OCTAL_LITERAL_in_numberLiteral396
= new BitSet(
11404 new long[] { 0x0000000000000002L
});
11405 public static final BitSet FOLLOW_numberLiteral_in_constant432
= new BitSet(
11406 new long[] { 0x0000000000000002L
});
11407 public static final BitSet FOLLOW_enumConstant_in_constant438
= new BitSet(
11408 new long[] { 0x0000000000000002L
});
11409 public static final BitSet FOLLOW_CHARACTER_LITERAL_in_constant444
= new BitSet(
11410 new long[] { 0x0000000000000002L
});
11411 public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression475
= new BitSet(
11412 new long[] { 0x0000000000000002L
});
11413 public static final BitSet FOLLOW_ctfKeyword_in_primaryExpression497
= new BitSet(
11414 new long[] { 0x0000000000000002L
});
11415 public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression517
= new BitSet(
11416 new long[] { 0x0000000000000002L
});
11417 public static final BitSet FOLLOW_constant_in_primaryExpression538
= new BitSet(
11418 new long[] { 0x0000000000000002L
});
11419 public static final BitSet FOLLOW_DOT_in_reference564
= new BitSet(
11420 new long[] { 0x0000000000000000L
, 0x0000000000004000L
});
11421 public static final BitSet FOLLOW_ARROW_in_reference570
= new BitSet(
11422 new long[] { 0x0000000000000000L
, 0x0000000000004000L
});
11423 public static final BitSet FOLLOW_IDENTIFIER_in_reference573
= new BitSet(
11424 new long[] { 0x0000000000000002L
});
11425 public static final BitSet FOLLOW_OPENBRAC_in_postfixExpressionSuffix612
= new BitSet(
11426 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11427 public static final BitSet FOLLOW_unaryExpression_in_postfixExpressionSuffix614
= new BitSet(
11428 new long[] { 0x0000040000000000L
});
11429 public static final BitSet FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix616
= new BitSet(
11430 new long[] { 0x0000000000000002L
});
11431 public static final BitSet FOLLOW_reference_in_postfixExpressionSuffix624
= new BitSet(
11432 new long[] { 0x0000000000000002L
});
11433 public static final BitSet FOLLOW_primaryExpression_in_postfixExpression648
= new BitSet(
11434 new long[] { 0x000C020000000002L
});
11435 public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression652
= new BitSet(
11436 new long[] { 0x000C020000000002L
});
11437 public static final BitSet FOLLOW_ctfSpecifierHead_in_postfixExpression661
= new BitSet(
11438 new long[] { 0x000C020000000000L
});
11439 public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression666
= new BitSet(
11440 new long[] { 0x000C020000000002L
});
11441 public static final BitSet FOLLOW_postfixExpression_in_unaryExpression700
= new BitSet(
11442 new long[] { 0x0000000000000002L
});
11443 public static final BitSet FOLLOW_STRING_LITERAL_in_enumConstant725
= new BitSet(
11444 new long[] { 0x0000000000000002L
});
11445 public static final BitSet FOLLOW_IDENTIFIER_in_enumConstant741
= new BitSet(
11446 new long[] { 0x0000000000000002L
});
11447 public static final BitSet FOLLOW_ctfKeyword_in_enumConstant757
= new BitSet(
11448 new long[] { 0x0000000000000002L
});
11449 public static final BitSet FOLLOW_declarationSpecifiers_in_declaration790
= new BitSet(
11450 new long[] { 0x0001800000000000L
, 0x0000000000004000L
});
11451 public static final BitSet FOLLOW_declaratorList_in_declaration792
= new BitSet(
11452 new long[] { 0x0000800000000000L
});
11453 public static final BitSet FOLLOW_TERM_in_declaration795
= new BitSet(
11454 new long[] { 0x0000000000000002L
});
11455 public static final BitSet FOLLOW_ctfSpecifier_in_declaration844
= new BitSet(
11456 new long[] { 0x0000800000000000L
});
11457 public static final BitSet FOLLOW_TERM_in_declaration846
= new BitSet(
11458 new long[] { 0x0000000000000002L
});
11459 public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifiers891
= new BitSet(
11460 new long[] { 0x000000001FCDFDE2L
, 0x0000000000004000L
});
11461 public static final BitSet FOLLOW_typeQualifier_in_declarationSpecifiers898
= new BitSet(
11462 new long[] { 0x000000001FCDFDE2L
, 0x0000000000004000L
});
11463 public static final BitSet FOLLOW_typeSpecifier_in_declarationSpecifiers905
= new BitSet(
11464 new long[] { 0x000000001FCDFDE2L
, 0x0000000000004000L
});
11465 public static final BitSet FOLLOW_declarator_in_declaratorList946
= new BitSet(
11466 new long[] { 0x0000000400000002L
});
11467 public static final BitSet FOLLOW_SEPARATOR_in_declaratorList949
= new BitSet(
11468 new long[] { 0x0001000000000000L
, 0x0000000000004000L
});
11469 public static final BitSet FOLLOW_declarator_in_declaratorList951
= new BitSet(
11470 new long[] { 0x0000000400000002L
});
11471 public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList985
= new BitSet(
11472 new long[] { 0x0000000400000002L
});
11473 public static final BitSet FOLLOW_SEPARATOR_in_abstractDeclaratorList988
= new BitSet(
11474 new long[] { 0x0001080000000000L
, 0x0000000000004000L
});
11475 public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList990
= new BitSet(
11476 new long[] { 0x0000000400000002L
});
11477 public static final BitSet FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1014
= new BitSet(
11478 new long[] { 0x0000000000000002L
});
11479 public static final BitSet FOLLOW_FLOATTOK_in_typeSpecifier1040
= new BitSet(
11480 new long[] { 0x0000000000000002L
});
11481 public static final BitSet FOLLOW_INTTOK_in_typeSpecifier1046
= new BitSet(
11482 new long[] { 0x0000000000000002L
});
11483 public static final BitSet FOLLOW_LONGTOK_in_typeSpecifier1052
= new BitSet(
11484 new long[] { 0x0000000000000002L
});
11485 public static final BitSet FOLLOW_SHORTTOK_in_typeSpecifier1058
= new BitSet(
11486 new long[] { 0x0000000000000002L
});
11487 public static final BitSet FOLLOW_SIGNEDTOK_in_typeSpecifier1064
= new BitSet(
11488 new long[] { 0x0000000000000002L
});
11489 public static final BitSet FOLLOW_UNSIGNEDTOK_in_typeSpecifier1070
= new BitSet(
11490 new long[] { 0x0000000000000002L
});
11491 public static final BitSet FOLLOW_CHARTOK_in_typeSpecifier1076
= new BitSet(
11492 new long[] { 0x0000000000000002L
});
11493 public static final BitSet FOLLOW_DOUBLETOK_in_typeSpecifier1082
= new BitSet(
11494 new long[] { 0x0000000000000002L
});
11495 public static final BitSet FOLLOW_VOIDTOK_in_typeSpecifier1088
= new BitSet(
11496 new long[] { 0x0000000000000002L
});
11497 public static final BitSet FOLLOW_BOOLTOK_in_typeSpecifier1094
= new BitSet(
11498 new long[] { 0x0000000000000002L
});
11499 public static final BitSet FOLLOW_COMPLEXTOK_in_typeSpecifier1100
= new BitSet(
11500 new long[] { 0x0000000000000002L
});
11501 public static final BitSet FOLLOW_IMAGINARYTOK_in_typeSpecifier1106
= new BitSet(
11502 new long[] { 0x0000000000000002L
});
11503 public static final BitSet FOLLOW_structSpecifier_in_typeSpecifier1112
= new BitSet(
11504 new long[] { 0x0000000000000002L
});
11505 public static final BitSet FOLLOW_variantSpecifier_in_typeSpecifier1118
= new BitSet(
11506 new long[] { 0x0000000000000002L
});
11507 public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier1124
= new BitSet(
11508 new long[] { 0x0000000000000002L
});
11509 public static final BitSet FOLLOW_ctfTypeSpecifier_in_typeSpecifier1130
= new BitSet(
11510 new long[] { 0x0000000000000002L
});
11511 public static final BitSet FOLLOW_typedefName_in_typeSpecifier1140
= new BitSet(
11512 new long[] { 0x0000000000000002L
});
11513 public static final BitSet FOLLOW_CONSTTOK_in_typeQualifier1163
= new BitSet(
11514 new long[] { 0x0000000000000002L
});
11515 public static final BitSet FOLLOW_ALIGNTOK_in_alignAttribute1176
= new BitSet(
11516 new long[] { 0x0000080000000000L
});
11517 public static final BitSet FOLLOW_LPAREN_in_alignAttribute1178
= new BitSet(
11518 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11519 public static final BitSet FOLLOW_unaryExpression_in_alignAttribute1180
= new BitSet(
11520 new long[] { 0x0000100000000000L
});
11521 public static final BitSet FOLLOW_RPAREN_in_alignAttribute1182
= new BitSet(
11522 new long[] { 0x0000000000000002L
});
11523 public static final BitSet FOLLOW_LCURL_in_structBody1223
= new BitSet(
11524 new long[] { 0x000040007FFFFFE0L
, 0x0000000000004000L
});
11525 public static final BitSet FOLLOW_structOrVariantDeclarationList_in_structBody1225
= new BitSet(
11526 new long[] { 0x0000400000000000L
});
11527 public static final BitSet FOLLOW_RCURL_in_structBody1228
= new BitSet(
11528 new long[] { 0x0000000000000002L
});
11529 public static final BitSet FOLLOW_STRUCTTOK_in_structSpecifier1266
= new BitSet(
11530 new long[] { 0x0000200000000000L
, 0x0000000000004000L
});
11531 public static final BitSet FOLLOW_structName_in_structSpecifier1288
= new BitSet(
11532 new long[] { 0x0000200000000012L
, 0x0000000000004000L
});
11533 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1304
= new BitSet(
11534 new long[] { 0x0000000000000002L
});
11535 public static final BitSet FOLLOW_structBody_in_structSpecifier1333
= new BitSet(
11536 new long[] { 0x0000000000000012L
});
11537 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1358
= new BitSet(
11538 new long[] { 0x0000000000000002L
});
11539 public static final BitSet FOLLOW_structBody_in_structSpecifier1456
= new BitSet(
11540 new long[] { 0x0000000000000012L
});
11541 public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1474
= new BitSet(
11542 new long[] { 0x0000000000000002L
});
11543 public static final BitSet FOLLOW_IDENTIFIER_in_structName1550
= new BitSet(
11544 new long[] { 0x0000000000000002L
});
11545 public static final BitSet FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1581
= new BitSet(
11546 new long[] { 0x000000007FFFFFE2L
, 0x0000000000004000L
});
11547 public static final BitSet FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1619
= new BitSet(
11548 new long[] { 0x0001000000000000L
, 0x0000000000004000L
});
11549 public static final BitSet FOLLOW_declaratorList_in_structOrVariantDeclaration1651
= new BitSet(
11550 new long[] { 0x0000800000000000L
});
11551 public static final BitSet FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1685
= new BitSet(
11552 new long[] { 0x0000800000000000L
});
11553 public static final BitSet FOLLOW_typealiasDecl_in_structOrVariantDeclaration1735
= new BitSet(
11554 new long[] { 0x0000800000000000L
});
11555 public static final BitSet FOLLOW_TERM_in_structOrVariantDeclaration1747
= new BitSet(
11556 new long[] { 0x0000000000000002L
});
11557 public static final BitSet FOLLOW_typeQualifier_in_specifierQualifierList1771
= new BitSet(
11558 new long[] { 0x000000001FCDFDE2L
, 0x0000000000004000L
});
11559 public static final BitSet FOLLOW_typeSpecifier_in_specifierQualifierList1775
= new BitSet(
11560 new long[] { 0x000000001FCDFDE2L
, 0x0000000000004000L
});
11561 public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1812
= new BitSet(
11562 new long[] { 0x0000000400000002L
});
11563 public static final BitSet FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1815
= new BitSet(
11564 new long[] { 0x0001000000000000L
, 0x0000000000004000L
});
11565 public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1817
= new BitSet(
11566 new long[] { 0x0000000400000002L
});
11567 public static final BitSet FOLLOW_declarator_in_structOrVariantDeclarator1858
= new BitSet(
11568 new long[] { 0x0000000800000002L
});
11569 public static final BitSet FOLLOW_COLON_in_structOrVariantDeclarator1861
= new BitSet(
11570 new long[] { 0x0942000000000000L
});
11571 public static final BitSet FOLLOW_numberLiteral_in_structOrVariantDeclarator1863
= new BitSet(
11572 new long[] { 0x0000000000000002L
});
11573 public static final BitSet FOLLOW_VARIANTTOK_in_variantSpecifier1897
= new BitSet(
11574 new long[] { 0x0000208000000000L
, 0x0000000000004000L
});
11575 public static final BitSet FOLLOW_variantName_in_variantSpecifier1915
= new BitSet(
11576 new long[] { 0x0000208000000000L
, 0x0000000000004000L
});
11577 public static final BitSet FOLLOW_variantTag_in_variantSpecifier1946
= new BitSet(
11578 new long[] { 0x0000208000000002L
, 0x0000000000004000L
});
11579 public static final BitSet FOLLOW_variantBody_in_variantSpecifier1972
= new BitSet(
11580 new long[] { 0x0000000000000002L
});
11581 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2040
= new BitSet(
11582 new long[] { 0x0000000000000002L
});
11583 public static final BitSet FOLLOW_variantTag_in_variantSpecifier2065
= new BitSet(
11584 new long[] { 0x0000208000000000L
, 0x0000000000004000L
});
11585 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2067
= new BitSet(
11586 new long[] { 0x0000000000000002L
});
11587 public static final BitSet FOLLOW_variantBody_in_variantSpecifier2078
= new BitSet(
11588 new long[] { 0x0000000000000002L
});
11589 public static final BitSet FOLLOW_IDENTIFIER_in_variantName2120
= new BitSet(
11590 new long[] { 0x0000000000000002L
});
11591 public static final BitSet FOLLOW_LCURL_in_variantBody2156
= new BitSet(
11592 new long[] { 0x000000007FFFFFE0L
, 0x0000000000004000L
});
11593 public static final BitSet FOLLOW_structOrVariantDeclarationList_in_variantBody2158
= new BitSet(
11594 new long[] { 0x0000400000000000L
});
11595 public static final BitSet FOLLOW_RCURL_in_variantBody2160
= new BitSet(
11596 new long[] { 0x0000000000000002L
});
11597 public static final BitSet FOLLOW_LT_in_variantTag2191
= new BitSet(
11598 new long[] { 0x0000000000000000L
, 0x0000000000004000L
});
11599 public static final BitSet FOLLOW_IDENTIFIER_in_variantTag2193
= new BitSet(
11600 new long[] { 0x0000010000000000L
});
11601 public static final BitSet FOLLOW_GT_in_variantTag2195
= new BitSet(
11602 new long[] { 0x0000000000000002L
});
11603 public static final BitSet FOLLOW_ENUMTOK_in_enumSpecifier2225
= new BitSet(
11604 new long[] { 0x0000200800000000L
, 0x0000000000004000L
});
11605 public static final BitSet FOLLOW_enumName_in_enumSpecifier2240
= new BitSet(
11606 new long[] { 0x0000200800000002L
, 0x0000000000004000L
});
11607 public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2251
= new BitSet(
11608 new long[] { 0x0000200800000000L
, 0x0000000000004000L
});
11609 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2253
= new BitSet(
11610 new long[] { 0x0000000000000002L
});
11611 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2265
= new BitSet(
11612 new long[] { 0x0000000000000002L
});
11613 public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2300
= new BitSet(
11614 new long[] { 0x0000200800000000L
, 0x0000000000004000L
});
11615 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2302
= new BitSet(
11616 new long[] { 0x0000000000000002L
});
11617 public static final BitSet FOLLOW_enumBody_in_enumSpecifier2311
= new BitSet(
11618 new long[] { 0x0000000000000002L
});
11619 public static final BitSet FOLLOW_IDENTIFIER_in_enumName2356
= new BitSet(
11620 new long[] { 0x0000000000000002L
});
11621 public static final BitSet FOLLOW_LCURL_in_enumBody2389
= new BitSet(
11622 new long[] { 0x0000000000050210L
, 0x0000000000004080L
});
11623 public static final BitSet FOLLOW_enumeratorList_in_enumBody2391
= new BitSet(
11624 new long[] { 0x0000400400000000L
});
11625 public static final BitSet FOLLOW_SEPARATOR_in_enumBody2394
= new BitSet(
11626 new long[] { 0x0000400000000000L
});
11627 public static final BitSet FOLLOW_RCURL_in_enumBody2396
= new BitSet(
11628 new long[] { 0x0000000000000002L
});
11629 public static final BitSet FOLLOW_RCURL_in_enumBody2400
= new BitSet(
11630 new long[] { 0x0000000000000002L
});
11631 public static final BitSet FOLLOW_COLON_in_enumContainerType2432
= new BitSet(
11632 new long[] { 0x000000001FCDFDE0L
, 0x0000000000004000L
});
11633 public static final BitSet FOLLOW_declarationSpecifiers_in_enumContainerType2434
= new BitSet(
11634 new long[] { 0x0000000000000002L
});
11635 public static final BitSet FOLLOW_enumerator_in_enumeratorList2465
= new BitSet(
11636 new long[] { 0x0000000400000002L
});
11637 public static final BitSet FOLLOW_SEPARATOR_in_enumeratorList2468
= new BitSet(
11638 new long[] { 0x0000000000050210L
, 0x0000000000004080L
});
11639 public static final BitSet FOLLOW_enumerator_in_enumeratorList2470
= new BitSet(
11640 new long[] { 0x0000000400000002L
});
11641 public static final BitSet FOLLOW_enumConstant_in_enumerator2506
= new BitSet(
11642 new long[] { 0x0000002000000002L
});
11643 public static final BitSet FOLLOW_enumeratorValue_in_enumerator2508
= new BitSet(
11644 new long[] { 0x0000000000000002L
});
11645 public static final BitSet FOLLOW_ASSIGNMENT_in_enumeratorValue2532
= new BitSet(
11646 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11647 public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2536
= new BitSet(
11648 new long[] { 0x0000001000000002L
});
11649 public static final BitSet FOLLOW_ELIPSES_in_enumeratorValue2562
= new BitSet(
11650 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11651 public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2566
= new BitSet(
11652 new long[] { 0x0000000000000002L
});
11653 public static final BitSet FOLLOW_pointer_in_declarator2608
= new BitSet(
11654 new long[] { 0x0001000000000000L
, 0x0000000000004000L
});
11655 public static final BitSet FOLLOW_directDeclarator_in_declarator2611
= new BitSet(
11656 new long[] { 0x0000000000000002L
});
11657 public static final BitSet FOLLOW_IDENTIFIER_in_directDeclarator2655
= new BitSet(
11658 new long[] { 0x0000020000000002L
});
11659 public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator2673
= new BitSet(
11660 new long[] { 0x0000020000000002L
});
11661 public static final BitSet FOLLOW_OPENBRAC_in_directDeclaratorSuffix2686
= new BitSet(
11662 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11663 public static final BitSet FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2688
= new BitSet(
11664 new long[] { 0x0000040000000000L
});
11665 public static final BitSet FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2690
= new BitSet(
11666 new long[] { 0x0000000000000002L
});
11667 public static final BitSet FOLLOW_unaryExpression_in_directDeclaratorLength2711
= new BitSet(
11668 new long[] { 0x0000000000000002L
});
11669 public static final BitSet FOLLOW_pointer_in_abstractDeclarator2742
= new BitSet(
11670 new long[] { 0x0001080000000002L
, 0x0000000000004000L
});
11671 public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2745
= new BitSet(
11672 new long[] { 0x0000000000000002L
});
11673 public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2765
= new BitSet(
11674 new long[] { 0x0000000000000002L
});
11675 public static final BitSet FOLLOW_IDENTIFIER_in_directAbstractDeclarator2805
= new BitSet(
11676 new long[] { 0x0000020000000002L
});
11677 public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2814
= new BitSet(
11678 new long[] { 0x0001080000000000L
, 0x0000000000004000L
});
11679 public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2816
= new BitSet(
11680 new long[] { 0x0000100000000000L
});
11681 public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2818
= new BitSet(
11682 new long[] { 0x0000020000000002L
});
11683 public static final BitSet FOLLOW_OPENBRAC_in_directAbstractDeclarator2833
= new BitSet(
11684 new long[] { 0x0942040060170210L
, 0x0000000000004090L
});
11685 public static final BitSet FOLLOW_unaryExpression_in_directAbstractDeclarator2835
= new BitSet(
11686 new long[] { 0x0000040000000000L
});
11687 public static final BitSet FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2838
= new BitSet(
11688 new long[] { 0x0000000000000002L
});
11689 public static final BitSet FOLLOW_POINTER_in_pointer2866
= new BitSet(
11690 new long[] { 0x0000000000000022L
});
11691 public static final BitSet FOLLOW_typeQualifierList_in_pointer2868
= new BitSet(
11692 new long[] { 0x0000000000000002L
});
11693 public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList2891
= new BitSet(
11694 new long[] { 0x0000000000000022L
});
11695 public static final BitSet FOLLOW_IDENTIFIER_in_typedefName2917
= new BitSet(
11696 new long[] { 0x0000000000000002L
});
11697 public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasTarget2945
= new BitSet(
11698 new long[] { 0x0001080000000002L
, 0x0000000000004000L
});
11699 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasTarget2947
= new BitSet(
11700 new long[] { 0x0000000000000002L
});
11701 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias2980
= new BitSet(
11702 new long[] { 0x0000000000000002L
});
11703 public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasAlias2989
= new BitSet(
11704 new long[] { 0x0001080000000002L
, 0x0000000000004000L
});
11705 public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias2991
= new BitSet(
11706 new long[] { 0x0000000000000002L
});
11707 public static final BitSet FOLLOW_TYPEALIASTOK_in_typealiasDecl3023
= new BitSet(
11708 new long[] { 0x000000001FCDFDE0L
, 0x0000000000004000L
});
11709 public static final BitSet FOLLOW_typealiasTarget_in_typealiasDecl3025
= new BitSet(
11710 new long[] { 0x0000004000000000L
});
11711 public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3027
= new BitSet(
11712 new long[] { 0x000108001FCDFDE0L
, 0x0000000000004000L
});
11713 public static final BitSet FOLLOW_typealiasAlias_in_typealiasDecl3029
= new BitSet(
11714 new long[] { 0x0000000000000002L
});
11715 public static final BitSet FOLLOW_set_in_ctfKeyword0
= new BitSet(
11716 new long[] { 0x0000000000000002L
});
11717 public static final BitSet FOLLOW_ctfSpecifierHead_in_ctfSpecifier3123
= new BitSet(
11718 new long[] { 0x0000200000000000L
});
11719 public static final BitSet FOLLOW_ctfBody_in_ctfSpecifier3125
= new BitSet(
11720 new long[] { 0x0000000000000002L
});
11721 public static final BitSet FOLLOW_typealiasDecl_in_ctfSpecifier3144
= new BitSet(
11722 new long[] { 0x0000000000000002L
});
11723 public static final BitSet FOLLOW_EVENTTOK_in_ctfSpecifierHead3176
= new BitSet(
11724 new long[] { 0x0000000000000002L
});
11725 public static final BitSet FOLLOW_STREAMTOK_in_ctfSpecifierHead3185
= new BitSet(
11726 new long[] { 0x0000000000000002L
});
11727 public static final BitSet FOLLOW_TRACETOK_in_ctfSpecifierHead3194
= new BitSet(
11728 new long[] { 0x0000000000000002L
});
11729 public static final BitSet FOLLOW_ENVTOK_in_ctfSpecifierHead3203
= new BitSet(
11730 new long[] { 0x0000000000000002L
});
11731 public static final BitSet FOLLOW_CLOCKTOK_in_ctfSpecifierHead3212
= new BitSet(
11732 new long[] { 0x0000000000000002L
});
11733 public static final BitSet FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3246
= new BitSet(
11734 new long[] { 0x0000200000000000L
});
11735 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3248
= new BitSet(
11736 new long[] { 0x0000000000000002L
});
11737 public static final BitSet FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3263
= new BitSet(
11738 new long[] { 0x0000200000000000L
});
11739 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3265
= new BitSet(
11740 new long[] { 0x0000000000000002L
});
11741 public static final BitSet FOLLOW_STRINGTOK_in_ctfTypeSpecifier3280
= new BitSet(
11742 new long[] { 0x0000200000000002L
});
11743 public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3282
= new BitSet(
11744 new long[] { 0x0000000000000002L
});
11745 public static final BitSet FOLLOW_LCURL_in_ctfBody3320
= new BitSet(
11746 new long[] { 0x094240007FFFFFF0L
, 0x0000000000004090L
});
11747 public static final BitSet FOLLOW_ctfAssignmentExpressionList_in_ctfBody3322
= new BitSet(
11748 new long[] { 0x0000400000000000L
});
11749 public static final BitSet FOLLOW_RCURL_in_ctfBody3325
= new BitSet(
11750 new long[] { 0x0000000000000002L
});
11751 public static final BitSet FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3344
= new BitSet(
11752 new long[] { 0x0000800000000000L
});
11753 public static final BitSet FOLLOW_TERM_in_ctfAssignmentExpressionList3346
= new BitSet(
11754 new long[] { 0x094200007FFFFFF2L
, 0x0000000000004090L
});
11755 public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3381
= new BitSet(
11756 new long[] { 0x0000006000000000L
});
11757 public static final BitSet FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3400
= new BitSet(
11758 new long[] { 0x0942000060170210L
, 0x0000000000004090L
});
11759 public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3404
= new BitSet(
11760 new long[] { 0x0000000000000002L
});
11761 public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3438
= new BitSet(
11762 new long[] { 0x000000001FCDFDE0L
, 0x0000000000004000L
});
11763 public static final BitSet FOLLOW_typeSpecifier_in_ctfAssignmentExpression3443
= new BitSet(
11764 new long[] { 0x0000000000000002L
});
11765 public static final BitSet FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3493
= new BitSet(
11766 new long[] { 0x0001000000000000L
, 0x0000000000004000L
});
11767 public static final BitSet FOLLOW_declaratorList_in_ctfAssignmentExpression3497
= new BitSet(
11768 new long[] { 0x0000000000000002L
});
11769 public static final BitSet FOLLOW_typealiasDecl_in_ctfAssignmentExpression3525
= new BitSet(
11770 new long[] { 0x0000000000000002L
});
11771 public static final BitSet FOLLOW_IDENTIFIER_in_synpred1_CTFParser470
= new BitSet(
11772 new long[] { 0x0000000000000002L
});
11773 public static final BitSet FOLLOW_ctfKeyword_in_synpred2_CTFParser492
= new BitSet(
11774 new long[] { 0x0000000000000002L
});
11775 public static final BitSet FOLLOW_STRING_LITERAL_in_synpred3_CTFParser512
= new BitSet(
11776 new long[] { 0x0000000000000002L
});