// $ANTLR 3.5.2 org/eclipse/tracecompass/ctf/parser/CTFParser.g 2015-08-06 19:37:54 /******************************************************************************* * Copyright (c) 2010, 2015 Ericsson, Ecole Polytechnique de Montréal and others * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Matthew Khouzam - Initial API and implementation * Simon Marchi - Initial API and implementation * Etienne Bergeron - Update to Antlr 3.5 syntax *******************************************************************************/ package org.eclipse.tracecompass.ctf.parser; import java.util.HashSet; import java.util.Set; import java.util.Stack; import org.antlr.runtime.BaseRecognizer; import org.antlr.runtime.BitSet; import org.antlr.runtime.DFA; import org.antlr.runtime.EarlyExitException; import org.antlr.runtime.FailedPredicateException; import org.antlr.runtime.IntStream; import org.antlr.runtime.MismatchedSetException; import org.antlr.runtime.MismatchedTokenException; import org.antlr.runtime.NoViableAltException; import org.antlr.runtime.Parser; import org.antlr.runtime.ParserRuleReturnScope; import org.antlr.runtime.RecognitionException; import org.antlr.runtime.RecognizerSharedState; import org.antlr.runtime.Token; import org.antlr.runtime.TokenStream; import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.tree.CommonTreeAdaptor; import org.antlr.runtime.tree.RewriteEarlyExitException; import org.antlr.runtime.tree.RewriteRuleSubtreeStream; import org.antlr.runtime.tree.RewriteRuleTokenStream; import org.antlr.runtime.tree.TreeAdaptor; @SuppressWarnings("all") public class CTFParser extends Parser { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ALIGNTOK", "ARROW", "ASSIGNMENT", "BACKSLASH", "BOOLTOK", "CHARACTER_LITERAL", "CHARTOK", "CHAR_CONTENT", "CLOCKTOK", "CLOSEBRAC", "COLON", "COMMENT", "COMMENT_CLOSE", "COMMENT_OPEN", "COMPLEXTOK", "CONSTTOK", "DECIMAL_LITERAL", "DIGIT", "DOT", "DOUBLEQUOTE", "DOUBLETOK", "ELIPSES", "ENUMTOK", "ENVTOK", "ESCAPE_SEQUENCE", "EVENTTOK", "FLOATINGPOINTTOK", "FLOATTOK", "GT", "HEXADECIMAL_ESCAPE", "HEX_DIGIT", "HEX_LITERAL", "HEX_PREFIX", "IDENTIFIER", "IMAGINARYTOK", "INFINITYTOK", "INTEGERTOK", "INTEGER_TYPES_SUFFIX", "INTTOK", "LCURL", "LINE_COMMENT", "LONGTOK", "LPAREN", "LT", "NANNUMBERTOK", "NINFINITYTOK", "NONDIGIT", "NONZERO_DIGIT", "OCTAL_ESCAPE", "OCTAL_LITERAL", "OCT_DIGIT", "OCT_PREFIX", "OPENBRAC", "POINTER", "RCURL", "RPAREN", "SEPARATOR", "SHORTTOK", "SIGN", "SIGNEDTOK", "SINGLEQUOTE", "STREAMTOK", "STRINGPREFIX", "STRINGTOK", "STRING_CONTENT", "STRING_LITERAL", "STRUCTTOK", "TERM", "TRACETOK", "TYPEALIASTOK", "TYPEDEFTOK", "TYPE_ASSIGNMENT", "UNICODE_ESCAPE", "UNSIGNEDTOK", "VARIANTTOK", "VOIDTOK", "WS", "ALIGN", "CLOCK", "CTF_EXPRESSION_TYPE", "CTF_EXPRESSION_VAL", "CTF_LEFT", "CTF_RIGHT", "DECLARATION", "DECLARATOR", "ENUM", "ENUM_BODY", "ENUM_CONTAINER_TYPE", "ENUM_ENUMERATOR", "ENUM_NAME", "ENUM_VALUE", "ENUM_VALUE_RANGE", "ENV", "EVENT", "FLOATING_POINT", "INTEGER", "LENGTH", "ROOT", "STREAM", "STRING", "STRUCT", "STRUCT_BODY", "STRUCT_NAME", "SV_DECLARATION", "TRACE", "TYPEALIAS", "TYPEALIAS_ALIAS", "TYPEALIAS_TARGET", "TYPEDEF", "TYPE_DECLARATOR", "TYPE_DECLARATOR_LIST", "TYPE_SPECIFIER_LIST", "UNARY_EXPRESSION_DEC", "UNARY_EXPRESSION_HEX", "UNARY_EXPRESSION_OCT", "UNARY_EXPRESSION_STRING", "UNARY_EXPRESSION_STRING_QUOTES", "VARIANT", "VARIANT_BODY", "VARIANT_NAME", "VARIANT_TAG" }; public static final int EOF=-1; public static final int ALIGNTOK=4; public static final int ARROW=5; public static final int ASSIGNMENT=6; public static final int BACKSLASH=7; public static final int BOOLTOK=8; public static final int CHARACTER_LITERAL=9; public static final int CHARTOK=10; public static final int CHAR_CONTENT=11; public static final int CLOCKTOK=12; public static final int CLOSEBRAC=13; public static final int COLON=14; public static final int COMMENT=15; public static final int COMMENT_CLOSE=16; public static final int COMMENT_OPEN=17; public static final int COMPLEXTOK=18; public static final int CONSTTOK=19; public static final int DECIMAL_LITERAL=20; public static final int DIGIT=21; public static final int DOT=22; public static final int DOUBLEQUOTE=23; public static final int DOUBLETOK=24; public static final int ELIPSES=25; public static final int ENUMTOK=26; public static final int ENVTOK=27; public static final int ESCAPE_SEQUENCE=28; public static final int EVENTTOK=29; public static final int FLOATINGPOINTTOK=30; public static final int FLOATTOK=31; public static final int GT=32; public static final int HEXADECIMAL_ESCAPE=33; public static final int HEX_DIGIT=34; public static final int HEX_LITERAL=35; public static final int HEX_PREFIX=36; public static final int IDENTIFIER=37; public static final int IMAGINARYTOK=38; public static final int INFINITYTOK=39; public static final int INTEGERTOK=40; public static final int INTEGER_TYPES_SUFFIX=41; public static final int INTTOK=42; public static final int LCURL=43; public static final int LINE_COMMENT=44; public static final int LONGTOK=45; public static final int LPAREN=46; public static final int LT=47; public static final int NANNUMBERTOK=48; public static final int NINFINITYTOK=49; public static final int NONDIGIT=50; public static final int NONZERO_DIGIT=51; public static final int OCTAL_ESCAPE=52; public static final int OCTAL_LITERAL=53; public static final int OCT_DIGIT=54; public static final int OCT_PREFIX=55; public static final int OPENBRAC=56; public static final int POINTER=57; public static final int RCURL=58; public static final int RPAREN=59; public static final int SEPARATOR=60; public static final int SHORTTOK=61; public static final int SIGN=62; public static final int SIGNEDTOK=63; public static final int SINGLEQUOTE=64; public static final int STREAMTOK=65; public static final int STRINGPREFIX=66; public static final int STRINGTOK=67; public static final int STRING_CONTENT=68; public static final int STRING_LITERAL=69; public static final int STRUCTTOK=70; public static final int TERM=71; public static final int TRACETOK=72; public static final int TYPEALIASTOK=73; public static final int TYPEDEFTOK=74; public static final int TYPE_ASSIGNMENT=75; public static final int UNICODE_ESCAPE=76; public static final int UNSIGNEDTOK=77; public static final int VARIANTTOK=78; public static final int VOIDTOK=79; public static final int WS=80; public static final int ALIGN=81; public static final int CLOCK=82; public static final int CTF_EXPRESSION_TYPE=83; public static final int CTF_EXPRESSION_VAL=84; public static final int CTF_LEFT=85; public static final int CTF_RIGHT=86; public static final int DECLARATION=87; public static final int DECLARATOR=88; public static final int ENUM=89; public static final int ENUM_BODY=90; public static final int ENUM_CONTAINER_TYPE=91; public static final int ENUM_ENUMERATOR=92; public static final int ENUM_NAME=93; public static final int ENUM_VALUE=94; public static final int ENUM_VALUE_RANGE=95; public static final int ENV=96; public static final int EVENT=97; public static final int FLOATING_POINT=98; public static final int INTEGER=99; public static final int LENGTH=100; public static final int ROOT=101; public static final int STREAM=102; public static final int STRING=103; public static final int STRUCT=104; public static final int STRUCT_BODY=105; public static final int STRUCT_NAME=106; public static final int SV_DECLARATION=107; public static final int TRACE=108; public static final int TYPEALIAS=109; public static final int TYPEALIAS_ALIAS=110; public static final int TYPEALIAS_TARGET=111; public static final int TYPEDEF=112; public static final int TYPE_DECLARATOR=113; public static final int TYPE_DECLARATOR_LIST=114; public static final int TYPE_SPECIFIER_LIST=115; public static final int UNARY_EXPRESSION_DEC=116; public static final int UNARY_EXPRESSION_HEX=117; public static final int UNARY_EXPRESSION_OCT=118; public static final int UNARY_EXPRESSION_STRING=119; public static final int UNARY_EXPRESSION_STRING_QUOTES=120; public static final int VARIANT=121; public static final int VARIANT_BODY=122; public static final int VARIANT_NAME=123; public static final int VARIANT_TAG=124; // delegates public Parser[] getDelegates() { return new Parser[] {}; } // delegators protected static class Symbols_scope { Set<String> types; } protected Stack<Symbols_scope> Symbols_stack = new Stack<Symbols_scope>(); public CTFParser(TokenStream input) { this(input, new RecognizerSharedState()); } public CTFParser(TokenStream input, RecognizerSharedState state) { super(input, state); } protected TreeAdaptor adaptor = new CommonTreeAdaptor(); public void setTreeAdaptor(TreeAdaptor adaptor) { this.adaptor = adaptor; } public TreeAdaptor getTreeAdaptor() { return adaptor; } @Override public String[] getTokenNames() { return CTFParser.tokenNames; } @Override public String getGrammarFileName() { return "org/eclipse/tracecompass/ctf/parser/CTFParser.g"; } public CTFParser(TokenStream input, boolean verbose) { this(input); this.verbose = verbose; } /** * This method is overriden to disable automatic error recovery. * On a mismatched token, it simply re-throw an exception. */ @Override protected Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow) throws RecognitionException { throw new MismatchedTokenException(ttype, input); } /** * Checks if a given name has been defined has a type. * From: http://www.antlr.org/grammar/1153358328744/C.g * * @param name The name to check. * @return True if is is a type, false otherwise. */ boolean isTypeName(String name) { for (int i = Symbols_stack.size() - 1; i >= 0; i--) { Symbols_scope scope = (Symbols_scope) Symbols_stack.get(i); if (scope.types.contains(name)) { return true; } } return false; } void addTypeName(String name) { Symbols_stack.peek().types.add(name); if (verbose) { debug_print("New type: " + name + " " + declaration_stack); } } void typedefOn() { debug_print("typedefOn" + declaration_stack); declaration_stack.peek().isTypedef =true; } void typedefOff() { debug_print("typedefOff" + declaration_stack); declaration_stack.peek().isTypedef =false; } boolean inTypedef() { return declaration_stack.peek().isTypedef; } boolean _inTypealiasAlias = false; void typealiasAliasOn() { debug_print("typealiasAliasOn"); _inTypealiasAlias = true; } void typealiasAliasOff() { debug_print("typealiasAliasOff"); _inTypealiasAlias = false; } boolean inTypealiasAlias() { return _inTypealiasAlias; } void debug_print(String str) { if (verbose) { System.out.println(str); } } /* Prints rule entry and exit while parsing */ boolean verbose = false; public static class parse_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "parse" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:189:1: parse : ( declaration )+ EOF -> ^( ROOT ( declaration )+ ) ; public final CTFParser.parse_return parse() throws RecognitionException { Symbols_stack.push(new Symbols_scope()); CTFParser.parse_return retval = new CTFParser.parse_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token EOF2=null; ParserRuleReturnScope declaration1 =null; CommonTree EOF2_tree=null; RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF"); RewriteRuleSubtreeStream stream_declaration=new RewriteRuleSubtreeStream(adaptor,"rule declaration"); Symbols_stack.peek().types = new HashSet<String>(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:194:3: ( ( declaration )+ EOF -> ^( ROOT ( declaration )+ ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:194:5: ( declaration )+ EOF { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:194:5: ( declaration )+ int cnt1=0; loop1: while (true) { int alt1=2; int LA1_0 = input.LA(1); if ( (LA1_0==BOOLTOK||LA1_0==CHARTOK||(LA1_0 >= COMPLEXTOK && LA1_0 <= CONSTTOK)||LA1_0==DOUBLETOK||LA1_0==ENUMTOK||(LA1_0 >= FLOATINGPOINTTOK && LA1_0 <= FLOATTOK)||LA1_0==IMAGINARYTOK||LA1_0==INTEGERTOK||LA1_0==INTTOK||LA1_0==LONGTOK||LA1_0==SHORTTOK||LA1_0==SIGNEDTOK||LA1_0==STRINGTOK||LA1_0==STRUCTTOK||LA1_0==TYPEDEFTOK||(LA1_0 >= UNSIGNEDTOK && LA1_0 <= VOIDTOK)) ) { alt1=1; } else if ( (LA1_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt1=1; } else if ( (LA1_0==CLOCKTOK||LA1_0==ENVTOK||LA1_0==EVENTTOK||LA1_0==STREAMTOK||(LA1_0 >= TRACETOK && LA1_0 <= TYPEALIASTOK)) ) { alt1=1; } switch (alt1) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:194:5: declaration { pushFollow(FOLLOW_declaration_in_parse442); declaration1=declaration(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declaration.add(declaration1.getTree()); } break; default : if ( cnt1 >= 1 ) break loop1; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(1, input); throw eee; } cnt1++; } EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_parse445); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EOF.add(EOF2); // AST REWRITE // elements: declaration // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 194:22: -> ^( ROOT ( declaration )+ ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:194:25: ^( ROOT ( declaration )+ ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ROOT, "ROOT"), root_1); if ( !(stream_declaration.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_declaration.hasNext() ) { adaptor.addChild(root_1, stream_declaration.nextTree()); } stream_declaration.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving Symbols_stack.pop(); } return retval; } // $ANTLR end "parse" public static class numberLiteral_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "numberLiteral" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:197:1: numberLiteral : ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) ; public final CTFParser.numberLiteral_return numberLiteral() throws RecognitionException { CTFParser.numberLiteral_return retval = new CTFParser.numberLiteral_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SIGN3=null; Token HEX_LITERAL4=null; Token DECIMAL_LITERAL5=null; Token OCTAL_LITERAL6=null; CommonTree SIGN3_tree=null; CommonTree HEX_LITERAL4_tree=null; CommonTree DECIMAL_LITERAL5_tree=null; CommonTree OCTAL_LITERAL6_tree=null; RewriteRuleTokenStream stream_OCTAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token OCTAL_LITERAL"); RewriteRuleTokenStream stream_HEX_LITERAL=new RewriteRuleTokenStream(adaptor,"token HEX_LITERAL"); RewriteRuleTokenStream stream_SIGN=new RewriteRuleTokenStream(adaptor,"token SIGN"); RewriteRuleTokenStream stream_DECIMAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token DECIMAL_LITERAL"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:198:3: ( ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:198:5: ( SIGN )* ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:198:5: ( SIGN )* loop2: while (true) { int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==SIGN) ) { alt2=1; } switch (alt2) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:198:5: SIGN { SIGN3=(Token)match(input,SIGN,FOLLOW_SIGN_in_numberLiteral467); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SIGN.add(SIGN3); } break; default : break loop2; } } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:199:7: ( HEX_LITERAL -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) | DECIMAL_LITERAL -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) | OCTAL_LITERAL -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) ) int alt3=3; switch ( input.LA(1) ) { case HEX_LITERAL: { alt3=1; } break; case DECIMAL_LITERAL: { alt3=2; } break; case OCTAL_LITERAL: { alt3=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 3, 0, input); throw nvae; } switch (alt3) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:199:9: HEX_LITERAL { HEX_LITERAL4=(Token)match(input,HEX_LITERAL,FOLLOW_HEX_LITERAL_in_numberLiteral478); if (state.failed) return retval; if ( state.backtracking==0 ) stream_HEX_LITERAL.add(HEX_LITERAL4); // AST REWRITE // elements: SIGN, HEX_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 199:21: -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:199:24: ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_HEX, "UNARY_EXPRESSION_HEX"), root_1); adaptor.addChild(root_1, stream_HEX_LITERAL.nextNode()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:199:59: ( SIGN )* while ( stream_SIGN.hasNext() ) { adaptor.addChild(root_1, stream_SIGN.nextNode()); } stream_SIGN.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:200:9: DECIMAL_LITERAL { DECIMAL_LITERAL5=(Token)match(input,DECIMAL_LITERAL,FOLLOW_DECIMAL_LITERAL_in_numberLiteral499); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DECIMAL_LITERAL.add(DECIMAL_LITERAL5); // AST REWRITE // elements: SIGN, DECIMAL_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 200:25: -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:200:28: ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_DEC, "UNARY_EXPRESSION_DEC"), root_1); adaptor.addChild(root_1, stream_DECIMAL_LITERAL.nextNode()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:200:67: ( SIGN )* while ( stream_SIGN.hasNext() ) { adaptor.addChild(root_1, stream_SIGN.nextNode()); } stream_SIGN.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:201:9: OCTAL_LITERAL { OCTAL_LITERAL6=(Token)match(input,OCTAL_LITERAL,FOLLOW_OCTAL_LITERAL_in_numberLiteral520); if (state.failed) return retval; if ( state.backtracking==0 ) stream_OCTAL_LITERAL.add(OCTAL_LITERAL6); // AST REWRITE // elements: OCTAL_LITERAL, SIGN // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 201:23: -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:201:26: ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_OCT, "UNARY_EXPRESSION_OCT"), root_1); adaptor.addChild(root_1, stream_OCTAL_LITERAL.nextNode()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:201:63: ( SIGN )* while ( stream_SIGN.hasNext() ) { adaptor.addChild(root_1, stream_SIGN.nextNode()); } stream_SIGN.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "numberLiteral" public static class primaryExpression_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "primaryExpression" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:205:1: primaryExpression : ( ( IDENTIFIER )=> IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=> ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | ( STRING_LITERAL )=> STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | numberLiteral | enumConstant | CHARACTER_LITERAL ); public final CTFParser.primaryExpression_return primaryExpression() throws RecognitionException { CTFParser.primaryExpression_return retval = new CTFParser.primaryExpression_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER7=null; Token STRING_LITERAL9=null; Token CHARACTER_LITERAL12=null; ParserRuleReturnScope ctfKeyword8 =null; ParserRuleReturnScope numberLiteral10 =null; ParserRuleReturnScope enumConstant11 =null; CommonTree IDENTIFIER7_tree=null; CommonTree STRING_LITERAL9_tree=null; CommonTree CHARACTER_LITERAL12_tree=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); RewriteRuleSubtreeStream stream_ctfKeyword=new RewriteRuleSubtreeStream(adaptor,"rule ctfKeyword"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:206:3: ( ( IDENTIFIER )=> IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ( ctfKeyword )=> ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) | ( STRING_LITERAL )=> STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | numberLiteral | enumConstant | CHARACTER_LITERAL ) int alt4=6; switch ( input.LA(1) ) { case IDENTIFIER: { int LA4_1 = input.LA(2); if ( (synpred1_CTFParser()) ) { alt4=1; } else if ( (true) ) { alt4=5; } } break; case ALIGNTOK: case EVENTTOK: case SIGNEDTOK: case STRINGTOK: { int LA4_2 = input.LA(2); if ( (synpred2_CTFParser()) ) { alt4=2; } else if ( (true) ) { alt4=5; } } break; case STRING_LITERAL: { int LA4_3 = input.LA(2); if ( (synpred3_CTFParser()) ) { alt4=3; } else if ( (true) ) { alt4=5; } } break; case DECIMAL_LITERAL: case HEX_LITERAL: case OCTAL_LITERAL: case SIGN: { alt4=4; } break; case CHARACTER_LITERAL: { alt4=6; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 4, 0, input); throw nvae; } switch (alt4) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:206:5: ( IDENTIFIER )=> IDENTIFIER { IDENTIFIER7=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression558); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER7); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 207:7: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:207:10: ^( UNARY_EXPRESSION_STRING IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:208:5: ( ctfKeyword )=> ctfKeyword { pushFollow(FOLLOW_ctfKeyword_in_primaryExpression584); ctfKeyword8=ctfKeyword(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfKeyword.add(ctfKeyword8.getTree()); // AST REWRITE // elements: ctfKeyword // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 208:32: -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:208:35: ^( UNARY_EXPRESSION_STRING ctfKeyword ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_1); adaptor.addChild(root_1, stream_ctfKeyword.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:209:5: ( STRING_LITERAL )=> STRING_LITERAL { STRING_LITERAL9=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression604); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL9); // AST REWRITE // elements: STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 210:7: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:210:10: ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING_QUOTES, "UNARY_EXPRESSION_STRING_QUOTES"), root_1); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 4 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:212:5: numberLiteral { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_numberLiteral_in_primaryExpression629); numberLiteral10=numberLiteral(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, numberLiteral10.getTree()); } break; case 5 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:213:5: enumConstant { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_enumConstant_in_primaryExpression635); enumConstant11=enumConstant(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, enumConstant11.getTree()); } break; case 6 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:214:5: CHARACTER_LITERAL { root_0 = (CommonTree)adaptor.nil(); CHARACTER_LITERAL12=(Token)match(input,CHARACTER_LITERAL,FOLLOW_CHARACTER_LITERAL_in_primaryExpression641); if (state.failed) return retval; if ( state.backtracking==0 ) { CHARACTER_LITERAL12_tree = (CommonTree)adaptor.create(CHARACTER_LITERAL12); adaptor.addChild(root_0, CHARACTER_LITERAL12_tree); } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "primaryExpression" public static class postfixExpressionSuffix_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "postfixExpressionSuffix" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:217:1: postfixExpressionSuffix : ( OPENBRAC unaryExpression CLOSEBRAC !| (ref= DOT |ref= ARROW ) IDENTIFIER -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) ); public final CTFParser.postfixExpressionSuffix_return postfixExpressionSuffix() throws RecognitionException { CTFParser.postfixExpressionSuffix_return retval = new CTFParser.postfixExpressionSuffix_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ref=null; Token OPENBRAC13=null; Token CLOSEBRAC15=null; Token IDENTIFIER16=null; ParserRuleReturnScope unaryExpression14 =null; CommonTree ref_tree=null; CommonTree OPENBRAC13_tree=null; CommonTree CLOSEBRAC15_tree=null; CommonTree IDENTIFIER16_tree=null; RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT"); RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:218:3: ( OPENBRAC unaryExpression CLOSEBRAC !| (ref= DOT |ref= ARROW ) IDENTIFIER -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) ) int alt6=2; int LA6_0 = input.LA(1); if ( (LA6_0==OPENBRAC) ) { alt6=1; } else if ( (LA6_0==ARROW||LA6_0==DOT) ) { alt6=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 6, 0, input); throw nvae; } switch (alt6) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:218:5: OPENBRAC unaryExpression CLOSEBRAC ! { root_0 = (CommonTree)adaptor.nil(); OPENBRAC13=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_postfixExpressionSuffix654); if (state.failed) return retval; if ( state.backtracking==0 ) { OPENBRAC13_tree = (CommonTree)adaptor.create(OPENBRAC13); adaptor.addChild(root_0, OPENBRAC13_tree); } pushFollow(FOLLOW_unaryExpression_in_postfixExpressionSuffix656); unaryExpression14=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression14.getTree()); CLOSEBRAC15=(Token)match(input,CLOSEBRAC,FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix658); if (state.failed) return retval; } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:219:5: (ref= DOT |ref= ARROW ) IDENTIFIER { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:219:5: (ref= DOT |ref= ARROW ) int alt5=2; int LA5_0 = input.LA(1); if ( (LA5_0==DOT) ) { alt5=1; } else if ( (LA5_0==ARROW) ) { alt5=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 5, 0, input); throw nvae; } switch (alt5) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:219:6: ref= DOT { ref=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpressionSuffix668); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOT.add(ref); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:219:16: ref= ARROW { ref=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpressionSuffix674); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ARROW.add(ref); } break; } IDENTIFIER16=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpressionSuffix677); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER16); // AST REWRITE // elements: IDENTIFIER, ref // token labels: ref // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleTokenStream stream_ref=new RewriteRuleTokenStream(adaptor,"token ref",ref); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 220:7: -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:220:10: ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot(stream_ref.nextNode(), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:220:17: ^( UNARY_EXPRESSION_STRING IDENTIFIER ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_2); adaptor.addChild(root_2, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "postfixExpressionSuffix" public static class postfixCtfExpression_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "postfixCtfExpression" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:223:1: postfixCtfExpression : (ref= DOT ) ctfSpecifierHead -> ^( $ref ^( UNARY_EXPRESSION_STRING ctfSpecifierHead ) ) ; public final CTFParser.postfixCtfExpression_return postfixCtfExpression() throws RecognitionException { CTFParser.postfixCtfExpression_return retval = new CTFParser.postfixCtfExpression_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ref=null; ParserRuleReturnScope ctfSpecifierHead17 =null; CommonTree ref_tree=null; RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT"); RewriteRuleSubtreeStream stream_ctfSpecifierHead=new RewriteRuleSubtreeStream(adaptor,"rule ctfSpecifierHead"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:224:3: ( (ref= DOT ) ctfSpecifierHead -> ^( $ref ^( UNARY_EXPRESSION_STRING ctfSpecifierHead ) ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:224:5: (ref= DOT ) ctfSpecifierHead { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:224:5: (ref= DOT ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:224:6: ref= DOT { ref=(Token)match(input,DOT,FOLLOW_DOT_in_postfixCtfExpression712); if (state.failed) return retval; if ( state.backtracking==0 ) stream_DOT.add(ref); } pushFollow(FOLLOW_ctfSpecifierHead_in_postfixCtfExpression715); ctfSpecifierHead17=ctfSpecifierHead(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfSpecifierHead.add(ctfSpecifierHead17.getTree()); // AST REWRITE // elements: ref, ctfSpecifierHead // token labels: ref // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleTokenStream stream_ref=new RewriteRuleTokenStream(adaptor,"token ref",ref); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 225:7: -> ^( $ref ^( UNARY_EXPRESSION_STRING ctfSpecifierHead ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:225:10: ^( $ref ^( UNARY_EXPRESSION_STRING ctfSpecifierHead ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot(stream_ref.nextNode(), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:225:17: ^( UNARY_EXPRESSION_STRING ctfSpecifierHead ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_2); adaptor.addChild(root_2, stream_ctfSpecifierHead.nextTree()); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "postfixCtfExpression" public static class postfixExpression_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "postfixExpression" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:228:1: postfixExpression : ( ( primaryExpression ( postfixExpressionSuffix )* ) | ( ctfSpecifierHead ( postfixCtfExpression )* ( postfixExpressionSuffix )+ ) ); public final CTFParser.postfixExpression_return postfixExpression() throws RecognitionException { CTFParser.postfixExpression_return retval = new CTFParser.postfixExpression_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope primaryExpression18 =null; ParserRuleReturnScope postfixExpressionSuffix19 =null; ParserRuleReturnScope ctfSpecifierHead20 =null; ParserRuleReturnScope postfixCtfExpression21 =null; ParserRuleReturnScope postfixExpressionSuffix22 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:3: ( ( primaryExpression ( postfixExpressionSuffix )* ) | ( ctfSpecifierHead ( postfixCtfExpression )* ( postfixExpressionSuffix )+ ) ) int alt10=2; switch ( input.LA(1) ) { case ALIGNTOK: case CHARACTER_LITERAL: case DECIMAL_LITERAL: case HEX_LITERAL: case IDENTIFIER: case OCTAL_LITERAL: case SIGN: case SIGNEDTOK: case STRINGTOK: case STRING_LITERAL: { alt10=1; } break; case EVENTTOK: { alt10=1; } break; case CLOCKTOK: case ENVTOK: case STREAMTOK: case TRACETOK: { alt10=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 10, 0, input); throw nvae; } switch (alt10) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:5: ( primaryExpression ( postfixExpressionSuffix )* ) { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:5: ( primaryExpression ( postfixExpressionSuffix )* ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:6: primaryExpression ( postfixExpressionSuffix )* { pushFollow(FOLLOW_primaryExpression_in_postfixExpression748); primaryExpression18=primaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpression18.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:24: ( postfixExpressionSuffix )* loop7: while (true) { int alt7=2; int LA7_0 = input.LA(1); if ( (LA7_0==ARROW||LA7_0==DOT||LA7_0==OPENBRAC) ) { alt7=1; } switch (alt7) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:229:24: postfixExpressionSuffix { pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression750); postfixExpressionSuffix19=postfixExpressionSuffix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpressionSuffix19.getTree()); } break; default : break loop7; } } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:5: ( ctfSpecifierHead ( postfixCtfExpression )* ( postfixExpressionSuffix )+ ) { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:5: ( ctfSpecifierHead ( postfixCtfExpression )* ( postfixExpressionSuffix )+ ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:6: ctfSpecifierHead ( postfixCtfExpression )* ( postfixExpressionSuffix )+ { pushFollow(FOLLOW_ctfSpecifierHead_in_postfixExpression759); ctfSpecifierHead20=ctfSpecifierHead(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfSpecifierHead20.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:23: ( postfixCtfExpression )* loop8: while (true) { int alt8=2; int LA8_0 = input.LA(1); if ( (LA8_0==DOT) ) { int LA8_2 = input.LA(2); if ( (LA8_2==CLOCKTOK||LA8_2==ENVTOK||LA8_2==EVENTTOK||LA8_2==STREAMTOK||LA8_2==TRACETOK) ) { alt8=1; } } switch (alt8) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:23: postfixCtfExpression { pushFollow(FOLLOW_postfixCtfExpression_in_postfixExpression761); postfixCtfExpression21=postfixCtfExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixCtfExpression21.getTree()); } break; default : break loop8; } } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:45: ( postfixExpressionSuffix )+ int cnt9=0; loop9: while (true) { int alt9=2; int LA9_0 = input.LA(1); if ( (LA9_0==ARROW||LA9_0==DOT||LA9_0==OPENBRAC) ) { alt9=1; } switch (alt9) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:230:45: postfixExpressionSuffix { pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression764); postfixExpressionSuffix22=postfixExpressionSuffix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpressionSuffix22.getTree()); } break; default : if ( cnt9 >= 1 ) break loop9; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(9, input); throw eee; } cnt9++; } } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "postfixExpression" public static class unaryExpression_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "unaryExpression" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:233:1: unaryExpression : postfixExpression ; public final CTFParser.unaryExpression_return unaryExpression() throws RecognitionException { CTFParser.unaryExpression_return retval = new CTFParser.unaryExpression_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope postfixExpression23 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:234:3: ( postfixExpression ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:234:5: postfixExpression { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_postfixExpression_in_unaryExpression780); postfixExpression23=postfixExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression23.getTree()); } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "unaryExpression" public static class enumConstant_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumConstant" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:238:1: enumConstant : ( STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) ); public final CTFParser.enumConstant_return enumConstant() throws RecognitionException { CTFParser.enumConstant_return retval = new CTFParser.enumConstant_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token STRING_LITERAL24=null; Token IDENTIFIER25=null; ParserRuleReturnScope ctfKeyword26 =null; CommonTree STRING_LITERAL24_tree=null; CommonTree IDENTIFIER25_tree=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); RewriteRuleSubtreeStream stream_ctfKeyword=new RewriteRuleSubtreeStream(adaptor,"rule ctfKeyword"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:239:3: ( STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) ) int alt11=3; switch ( input.LA(1) ) { case STRING_LITERAL: { alt11=1; } break; case IDENTIFIER: { alt11=2; } break; case ALIGNTOK: case EVENTTOK: case SIGNEDTOK: case STRINGTOK: { alt11=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 11, 0, input); throw nvae; } switch (alt11) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:239:5: STRING_LITERAL { STRING_LITERAL24=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_enumConstant797); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL24); // AST REWRITE // elements: STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 239:20: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:239:23: ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING_QUOTES, "UNARY_EXPRESSION_STRING_QUOTES"), root_1); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:240:5: IDENTIFIER { IDENTIFIER25=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumConstant811); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER25); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 240:16: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:240:19: ^( UNARY_EXPRESSION_STRING IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:241:5: ctfKeyword { pushFollow(FOLLOW_ctfKeyword_in_enumConstant825); ctfKeyword26=ctfKeyword(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfKeyword.add(ctfKeyword26.getTree()); // AST REWRITE // elements: ctfKeyword // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 241:16: -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:241:19: ^( UNARY_EXPRESSION_STRING ctfKeyword ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(UNARY_EXPRESSION_STRING, "UNARY_EXPRESSION_STRING"), root_1); adaptor.addChild(root_1, stream_ctfKeyword.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumConstant" protected static class declaration_scope { boolean isTypedef; } protected Stack<declaration_scope> declaration_stack = new Stack<declaration_scope>(); public static class declaration_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "declaration" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:246:1: declaration : ( declarationSpecifiers ( declaratorList )? TERM -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ctfSpecifier TERM !); public final CTFParser.declaration_return declaration() throws RecognitionException { declaration_stack.push(new declaration_scope()); CTFParser.declaration_return retval = new CTFParser.declaration_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token TERM29=null; Token TERM31=null; ParserRuleReturnScope declarationSpecifiers27 =null; ParserRuleReturnScope declaratorList28 =null; ParserRuleReturnScope ctfSpecifier30 =null; CommonTree TERM29_tree=null; CommonTree TERM31_tree=null; RewriteRuleTokenStream stream_TERM=new RewriteRuleTokenStream(adaptor,"token TERM"); RewriteRuleSubtreeStream stream_declaratorList=new RewriteRuleSubtreeStream(adaptor,"rule declaratorList"); RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); typedefOff(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:253:3: ( declarationSpecifiers ( declaratorList )? TERM -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ctfSpecifier TERM !) int alt13=2; int LA13_0 = input.LA(1); if ( (LA13_0==BOOLTOK||LA13_0==CHARTOK||(LA13_0 >= COMPLEXTOK && LA13_0 <= CONSTTOK)||LA13_0==DOUBLETOK||LA13_0==ENUMTOK||(LA13_0 >= FLOATINGPOINTTOK && LA13_0 <= FLOATTOK)||LA13_0==IMAGINARYTOK||LA13_0==INTEGERTOK||LA13_0==INTTOK||LA13_0==LONGTOK||LA13_0==SHORTTOK||LA13_0==SIGNEDTOK||LA13_0==STRINGTOK||LA13_0==STRUCTTOK||LA13_0==TYPEDEFTOK||(LA13_0 >= UNSIGNEDTOK && LA13_0 <= VOIDTOK)) ) { alt13=1; } else if ( (LA13_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt13=1; } else if ( (LA13_0==CLOCKTOK||LA13_0==ENVTOK||LA13_0==EVENTTOK||LA13_0==STREAMTOK||(LA13_0 >= TRACETOK && LA13_0 <= TYPEALIASTOK)) ) { alt13=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 13, 0, input); throw nvae; } switch (alt13) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:253:5: declarationSpecifiers ( declaratorList )? TERM { pushFollow(FOLLOW_declarationSpecifiers_in_declaration856); declarationSpecifiers27=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers27.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:253:27: ( declaratorList )? int alt12=2; int LA12_0 = input.LA(1); if ( (LA12_0==IDENTIFIER||LA12_0==POINTER) ) { alt12=1; } switch (alt12) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:253:27: declaratorList { pushFollow(FOLLOW_declaratorList_in_declaration858); declaratorList28=declaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList28.getTree()); } break; } TERM29=(Token)match(input,TERM,FOLLOW_TERM_in_declaration861); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TERM.add(TERM29); // AST REWRITE // elements: declarationSpecifiers, declaratorList, declarationSpecifiers, declaratorList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 256:7: -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) if (inTypedef()) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:257:10: ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(DECLARATION, "DECLARATION"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:257:24: ^( TYPEDEF declaratorList declarationSpecifiers ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_2); adaptor.addChild(root_2, stream_declaratorList.nextTree()); adaptor.addChild(root_2, stream_declarationSpecifiers.nextTree()); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } else // 258:7: -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:258:10: ^( DECLARATION declarationSpecifiers ( declaratorList )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(DECLARATION, "DECLARATION"), root_1); adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:258:46: ( declaratorList )? if ( stream_declaratorList.hasNext() ) { adaptor.addChild(root_1, stream_declaratorList.nextTree()); } stream_declaratorList.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:259:5: ctfSpecifier TERM ! { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_ctfSpecifier_in_declaration929); ctfSpecifier30=ctfSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfSpecifier30.getTree()); TERM31=(Token)match(input,TERM,FOLLOW_TERM_in_declaration931); if (state.failed) return retval; } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving declaration_stack.pop(); } return retval; } // $ANTLR end "declaration" public static class declarationSpecifiers_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "declarationSpecifiers" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:262:1: declarationSpecifiers : ( storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ; public final CTFParser.declarationSpecifiers_return declarationSpecifiers() throws RecognitionException { CTFParser.declarationSpecifiers_return retval = new CTFParser.declarationSpecifiers_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope storageClassSpecifier32 =null; ParserRuleReturnScope typeQualifier33 =null; ParserRuleReturnScope typeSpecifier34 =null; RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); RewriteRuleSubtreeStream stream_storageClassSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule storageClassSpecifier"); RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:263:3: ( ( storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:263:5: ( storageClassSpecifier | typeQualifier | typeSpecifier )+ { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:263:5: ( storageClassSpecifier | typeQualifier | typeSpecifier )+ int cnt14=0; loop14: while (true) { int alt14=4; switch ( input.LA(1) ) { case IDENTIFIER: { int LA14_2 = input.LA(2); if ( ((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))) ) { alt14=3; } } break; case TYPEDEFTOK: { alt14=1; } break; case CONSTTOK: { alt14=2; } break; case BOOLTOK: case CHARTOK: case COMPLEXTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt14=3; } break; } switch (alt14) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:266:9: storageClassSpecifier { pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifiers969); storageClassSpecifier32=storageClassSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_storageClassSpecifier.add(storageClassSpecifier32.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:267:9: typeQualifier { pushFollow(FOLLOW_typeQualifier_in_declarationSpecifiers979); typeQualifier33=typeQualifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier33.getTree()); } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:268:9: typeSpecifier { pushFollow(FOLLOW_typeSpecifier_in_declarationSpecifiers989); typeSpecifier34=typeSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeSpecifier.add(typeSpecifier34.getTree()); } break; default : if ( cnt14 >= 1 ) break loop14; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(14, input); throw eee; } cnt14++; } // AST REWRITE // elements: typeQualifier, typeSpecifier // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 269:6: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:269:9: ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_SPECIFIER_LIST, "TYPE_SPECIFIER_LIST"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:269:31: ( typeQualifier )* while ( stream_typeQualifier.hasNext() ) { adaptor.addChild(root_1, stream_typeQualifier.nextTree()); } stream_typeQualifier.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:269:46: ( typeSpecifier )* while ( stream_typeSpecifier.hasNext() ) { adaptor.addChild(root_1, stream_typeSpecifier.nextTree()); } stream_typeSpecifier.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "declarationSpecifiers" public static class declaratorList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "declaratorList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:272:1: declaratorList : declarator ( SEPARATOR declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) ; public final CTFParser.declaratorList_return declaratorList() throws RecognitionException { CTFParser.declaratorList_return retval = new CTFParser.declaratorList_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SEPARATOR36=null; ParserRuleReturnScope declarator35 =null; ParserRuleReturnScope declarator37 =null; CommonTree SEPARATOR36_tree=null; RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:273:3: ( declarator ( SEPARATOR declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:273:5: declarator ( SEPARATOR declarator )* { pushFollow(FOLLOW_declarator_in_declaratorList1019); declarator35=declarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarator.add(declarator35.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:273:16: ( SEPARATOR declarator )* loop15: while (true) { int alt15=2; int LA15_0 = input.LA(1); if ( (LA15_0==SEPARATOR) ) { alt15=1; } switch (alt15) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:273:17: SEPARATOR declarator { SEPARATOR36=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_declaratorList1022); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR36); pushFollow(FOLLOW_declarator_in_declaratorList1024); declarator37=declarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarator.add(declarator37.getTree()); } break; default : break loop15; } } // AST REWRITE // elements: declarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 274:7: -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:274:10: ^( TYPE_DECLARATOR_LIST ( declarator )+ ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR_LIST, "TYPE_DECLARATOR_LIST"), root_1); if ( !(stream_declarator.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_declarator.hasNext() ) { adaptor.addChild(root_1, stream_declarator.nextTree()); } stream_declarator.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "declaratorList" public static class abstractDeclaratorList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "abstractDeclaratorList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:277:1: abstractDeclaratorList : abstractDeclarator ( SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) ; public final CTFParser.abstractDeclaratorList_return abstractDeclaratorList() throws RecognitionException { CTFParser.abstractDeclaratorList_return retval = new CTFParser.abstractDeclaratorList_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SEPARATOR39=null; ParserRuleReturnScope abstractDeclarator38 =null; ParserRuleReturnScope abstractDeclarator40 =null; CommonTree SEPARATOR39_tree=null; RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:278:3: ( abstractDeclarator ( SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:278:5: abstractDeclarator ( SEPARATOR abstractDeclarator )* { pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList1054); abstractDeclarator38=abstractDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator38.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:278:24: ( SEPARATOR abstractDeclarator )* loop16: while (true) { int alt16=2; int LA16_0 = input.LA(1); if ( (LA16_0==SEPARATOR) ) { alt16=1; } switch (alt16) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:278:25: SEPARATOR abstractDeclarator { SEPARATOR39=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_abstractDeclaratorList1057); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR39); pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList1059); abstractDeclarator40=abstractDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator40.getTree()); } break; default : break loop16; } } // AST REWRITE // elements: abstractDeclarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 279:7: -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:279:10: ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR_LIST, "TYPE_DECLARATOR_LIST"), root_1); if ( !(stream_abstractDeclarator.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_abstractDeclarator.hasNext() ) { adaptor.addChild(root_1, stream_abstractDeclarator.nextTree()); } stream_abstractDeclarator.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "abstractDeclaratorList" public static class storageClassSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "storageClassSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:282:1: storageClassSpecifier : TYPEDEFTOK ; public final CTFParser.storageClassSpecifier_return storageClassSpecifier() throws RecognitionException { CTFParser.storageClassSpecifier_return retval = new CTFParser.storageClassSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token TYPEDEFTOK41=null; CommonTree TYPEDEFTOK41_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:283:3: ( TYPEDEFTOK ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:283:5: TYPEDEFTOK { root_0 = (CommonTree)adaptor.nil(); TYPEDEFTOK41=(Token)match(input,TYPEDEFTOK,FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1089); if (state.failed) return retval; if ( state.backtracking==0 ) { TYPEDEFTOK41_tree = (CommonTree)adaptor.create(TYPEDEFTOK41); adaptor.addChild(root_0, TYPEDEFTOK41_tree); } if ( state.backtracking==0 ) { typedefOn(); } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "storageClassSpecifier" public static class typeSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typeSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:286:1: typeSpecifier : ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier |{...}? => typedefName ); public final CTFParser.typeSpecifier_return typeSpecifier() throws RecognitionException { CTFParser.typeSpecifier_return retval = new CTFParser.typeSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token FLOATTOK42=null; Token INTTOK43=null; Token LONGTOK44=null; Token SHORTTOK45=null; Token SIGNEDTOK46=null; Token UNSIGNEDTOK47=null; Token CHARTOK48=null; Token DOUBLETOK49=null; Token VOIDTOK50=null; Token BOOLTOK51=null; Token COMPLEXTOK52=null; Token IMAGINARYTOK53=null; ParserRuleReturnScope structSpecifier54 =null; ParserRuleReturnScope variantSpecifier55 =null; ParserRuleReturnScope enumSpecifier56 =null; ParserRuleReturnScope ctfTypeSpecifier57 =null; ParserRuleReturnScope typedefName58 =null; CommonTree FLOATTOK42_tree=null; CommonTree INTTOK43_tree=null; CommonTree LONGTOK44_tree=null; CommonTree SHORTTOK45_tree=null; CommonTree SIGNEDTOK46_tree=null; CommonTree UNSIGNEDTOK47_tree=null; CommonTree CHARTOK48_tree=null; CommonTree DOUBLETOK49_tree=null; CommonTree VOIDTOK50_tree=null; CommonTree BOOLTOK51_tree=null; CommonTree COMPLEXTOK52_tree=null; CommonTree IMAGINARYTOK53_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:287:3: ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier |{...}? => typedefName ) int alt17=17; int LA17_0 = input.LA(1); if ( (LA17_0==FLOATTOK) ) { alt17=1; } else if ( (LA17_0==INTTOK) ) { alt17=2; } else if ( (LA17_0==LONGTOK) ) { alt17=3; } else if ( (LA17_0==SHORTTOK) ) { alt17=4; } else if ( (LA17_0==SIGNEDTOK) ) { alt17=5; } else if ( (LA17_0==UNSIGNEDTOK) ) { alt17=6; } else if ( (LA17_0==CHARTOK) ) { alt17=7; } else if ( (LA17_0==DOUBLETOK) ) { alt17=8; } else if ( (LA17_0==VOIDTOK) ) { alt17=9; } else if ( (LA17_0==BOOLTOK) ) { alt17=10; } else if ( (LA17_0==COMPLEXTOK) ) { alt17=11; } else if ( (LA17_0==IMAGINARYTOK) ) { alt17=12; } else if ( (LA17_0==STRUCTTOK) ) { alt17=13; } else if ( (LA17_0==VARIANTTOK) ) { alt17=14; } else if ( (LA17_0==ENUMTOK) ) { alt17=15; } else if ( (LA17_0==FLOATINGPOINTTOK||LA17_0==INTEGERTOK||LA17_0==STRINGTOK) ) { alt17=16; } else if ( (LA17_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt17=17; } switch (alt17) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:287:5: FLOATTOK { root_0 = (CommonTree)adaptor.nil(); FLOATTOK42=(Token)match(input,FLOATTOK,FOLLOW_FLOATTOK_in_typeSpecifier1105); if (state.failed) return retval; if ( state.backtracking==0 ) { FLOATTOK42_tree = (CommonTree)adaptor.create(FLOATTOK42); adaptor.addChild(root_0, FLOATTOK42_tree); } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:288:5: INTTOK { root_0 = (CommonTree)adaptor.nil(); INTTOK43=(Token)match(input,INTTOK,FOLLOW_INTTOK_in_typeSpecifier1111); if (state.failed) return retval; if ( state.backtracking==0 ) { INTTOK43_tree = (CommonTree)adaptor.create(INTTOK43); adaptor.addChild(root_0, INTTOK43_tree); } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:289:5: LONGTOK { root_0 = (CommonTree)adaptor.nil(); LONGTOK44=(Token)match(input,LONGTOK,FOLLOW_LONGTOK_in_typeSpecifier1117); if (state.failed) return retval; if ( state.backtracking==0 ) { LONGTOK44_tree = (CommonTree)adaptor.create(LONGTOK44); adaptor.addChild(root_0, LONGTOK44_tree); } } break; case 4 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:290:5: SHORTTOK { root_0 = (CommonTree)adaptor.nil(); SHORTTOK45=(Token)match(input,SHORTTOK,FOLLOW_SHORTTOK_in_typeSpecifier1123); if (state.failed) return retval; if ( state.backtracking==0 ) { SHORTTOK45_tree = (CommonTree)adaptor.create(SHORTTOK45); adaptor.addChild(root_0, SHORTTOK45_tree); } } break; case 5 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:291:5: SIGNEDTOK { root_0 = (CommonTree)adaptor.nil(); SIGNEDTOK46=(Token)match(input,SIGNEDTOK,FOLLOW_SIGNEDTOK_in_typeSpecifier1129); if (state.failed) return retval; if ( state.backtracking==0 ) { SIGNEDTOK46_tree = (CommonTree)adaptor.create(SIGNEDTOK46); adaptor.addChild(root_0, SIGNEDTOK46_tree); } } break; case 6 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:292:5: UNSIGNEDTOK { root_0 = (CommonTree)adaptor.nil(); UNSIGNEDTOK47=(Token)match(input,UNSIGNEDTOK,FOLLOW_UNSIGNEDTOK_in_typeSpecifier1135); if (state.failed) return retval; if ( state.backtracking==0 ) { UNSIGNEDTOK47_tree = (CommonTree)adaptor.create(UNSIGNEDTOK47); adaptor.addChild(root_0, UNSIGNEDTOK47_tree); } } break; case 7 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:293:5: CHARTOK { root_0 = (CommonTree)adaptor.nil(); CHARTOK48=(Token)match(input,CHARTOK,FOLLOW_CHARTOK_in_typeSpecifier1141); if (state.failed) return retval; if ( state.backtracking==0 ) { CHARTOK48_tree = (CommonTree)adaptor.create(CHARTOK48); adaptor.addChild(root_0, CHARTOK48_tree); } } break; case 8 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:294:5: DOUBLETOK { root_0 = (CommonTree)adaptor.nil(); DOUBLETOK49=(Token)match(input,DOUBLETOK,FOLLOW_DOUBLETOK_in_typeSpecifier1147); if (state.failed) return retval; if ( state.backtracking==0 ) { DOUBLETOK49_tree = (CommonTree)adaptor.create(DOUBLETOK49); adaptor.addChild(root_0, DOUBLETOK49_tree); } } break; case 9 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:295:5: VOIDTOK { root_0 = (CommonTree)adaptor.nil(); VOIDTOK50=(Token)match(input,VOIDTOK,FOLLOW_VOIDTOK_in_typeSpecifier1153); if (state.failed) return retval; if ( state.backtracking==0 ) { VOIDTOK50_tree = (CommonTree)adaptor.create(VOIDTOK50); adaptor.addChild(root_0, VOIDTOK50_tree); } } break; case 10 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:296:5: BOOLTOK { root_0 = (CommonTree)adaptor.nil(); BOOLTOK51=(Token)match(input,BOOLTOK,FOLLOW_BOOLTOK_in_typeSpecifier1159); if (state.failed) return retval; if ( state.backtracking==0 ) { BOOLTOK51_tree = (CommonTree)adaptor.create(BOOLTOK51); adaptor.addChild(root_0, BOOLTOK51_tree); } } break; case 11 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:297:5: COMPLEXTOK { root_0 = (CommonTree)adaptor.nil(); COMPLEXTOK52=(Token)match(input,COMPLEXTOK,FOLLOW_COMPLEXTOK_in_typeSpecifier1165); if (state.failed) return retval; if ( state.backtracking==0 ) { COMPLEXTOK52_tree = (CommonTree)adaptor.create(COMPLEXTOK52); adaptor.addChild(root_0, COMPLEXTOK52_tree); } } break; case 12 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:298:5: IMAGINARYTOK { root_0 = (CommonTree)adaptor.nil(); IMAGINARYTOK53=(Token)match(input,IMAGINARYTOK,FOLLOW_IMAGINARYTOK_in_typeSpecifier1171); if (state.failed) return retval; if ( state.backtracking==0 ) { IMAGINARYTOK53_tree = (CommonTree)adaptor.create(IMAGINARYTOK53); adaptor.addChild(root_0, IMAGINARYTOK53_tree); } } break; case 13 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:299:5: structSpecifier { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_structSpecifier_in_typeSpecifier1177); structSpecifier54=structSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, structSpecifier54.getTree()); } break; case 14 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:300:5: variantSpecifier { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_variantSpecifier_in_typeSpecifier1183); variantSpecifier55=variantSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, variantSpecifier55.getTree()); } break; case 15 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:301:5: enumSpecifier { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier1189); enumSpecifier56=enumSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, enumSpecifier56.getTree()); } break; case 16 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:302:5: ctfTypeSpecifier { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_ctfTypeSpecifier_in_typeSpecifier1195); ctfTypeSpecifier57=ctfTypeSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfTypeSpecifier57.getTree()); } break; case 17 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:303:5: {...}? => typedefName { root_0 = (CommonTree)adaptor.nil(); if ( !(( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )) ) { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "typeSpecifier", " inTypealiasAlias() || isTypeName(input.LT(1).getText()) "); } pushFollow(FOLLOW_typedefName_in_typeSpecifier1205); typedefName58=typedefName(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, typedefName58.getTree()); } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typeSpecifier" public static class typeQualifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typeQualifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:306:1: typeQualifier : CONSTTOK ; public final CTFParser.typeQualifier_return typeQualifier() throws RecognitionException { CTFParser.typeQualifier_return retval = new CTFParser.typeQualifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token CONSTTOK59=null; CommonTree CONSTTOK59_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:307:3: ( CONSTTOK ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:307:5: CONSTTOK { root_0 = (CommonTree)adaptor.nil(); CONSTTOK59=(Token)match(input,CONSTTOK,FOLLOW_CONSTTOK_in_typeQualifier1218); if (state.failed) return retval; if ( state.backtracking==0 ) { CONSTTOK59_tree = (CommonTree)adaptor.create(CONSTTOK59); adaptor.addChild(root_0, CONSTTOK59_tree); } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typeQualifier" public static class alignAttribute_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "alignAttribute" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:310:1: alignAttribute : ALIGNTOK LPAREN unaryExpression RPAREN -> ^( ALIGN unaryExpression ) ; public final CTFParser.alignAttribute_return alignAttribute() throws RecognitionException { CTFParser.alignAttribute_return retval = new CTFParser.alignAttribute_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ALIGNTOK60=null; Token LPAREN61=null; Token RPAREN63=null; ParserRuleReturnScope unaryExpression62 =null; CommonTree ALIGNTOK60_tree=null; CommonTree LPAREN61_tree=null; CommonTree RPAREN63_tree=null; RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); RewriteRuleTokenStream stream_ALIGNTOK=new RewriteRuleTokenStream(adaptor,"token ALIGNTOK"); RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:311:3: ( ALIGNTOK LPAREN unaryExpression RPAREN -> ^( ALIGN unaryExpression ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:311:5: ALIGNTOK LPAREN unaryExpression RPAREN { ALIGNTOK60=(Token)match(input,ALIGNTOK,FOLLOW_ALIGNTOK_in_alignAttribute1231); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ALIGNTOK.add(ALIGNTOK60); LPAREN61=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_alignAttribute1233); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN61); pushFollow(FOLLOW_unaryExpression_in_alignAttribute1235); unaryExpression62=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression62.getTree()); RPAREN63=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignAttribute1237); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN63); // AST REWRITE // elements: unaryExpression // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 311:44: -> ^( ALIGN unaryExpression ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:311:47: ^( ALIGN unaryExpression ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ALIGN, "ALIGN"), root_1); adaptor.addChild(root_1, stream_unaryExpression.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "alignAttribute" public static class structBody_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structBody" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:315:1: structBody : LCURL ( structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) ; public final CTFParser.structBody_return structBody() throws RecognitionException { Symbols_stack.push(new Symbols_scope()); CTFParser.structBody_return retval = new CTFParser.structBody_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LCURL64=null; Token RCURL66=null; ParserRuleReturnScope structOrVariantDeclarationList65 =null; CommonTree LCURL64_tree=null; CommonTree RCURL66_tree=null; RewriteRuleTokenStream stream_LCURL=new RewriteRuleTokenStream(adaptor,"token LCURL"); RewriteRuleTokenStream stream_RCURL=new RewriteRuleTokenStream(adaptor,"token RCURL"); RewriteRuleSubtreeStream stream_structOrVariantDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclarationList"); Symbols_stack.peek().types = new HashSet<String>(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:320:3: ( LCURL ( structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:320:5: LCURL ( structOrVariantDeclarationList )? RCURL { LCURL64=(Token)match(input,LCURL,FOLLOW_LCURL_in_structBody1271); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LCURL.add(LCURL64); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:320:11: ( structOrVariantDeclarationList )? int alt18=2; int LA18_0 = input.LA(1); if ( (LA18_0==BOOLTOK||LA18_0==CHARTOK||(LA18_0 >= COMPLEXTOK && LA18_0 <= CONSTTOK)||LA18_0==DOUBLETOK||LA18_0==ENUMTOK||(LA18_0 >= FLOATINGPOINTTOK && LA18_0 <= FLOATTOK)||LA18_0==IMAGINARYTOK||LA18_0==INTEGERTOK||LA18_0==INTTOK||LA18_0==LONGTOK||LA18_0==SHORTTOK||LA18_0==SIGNEDTOK||LA18_0==STRINGTOK||LA18_0==STRUCTTOK||LA18_0==TYPEDEFTOK||(LA18_0 >= UNSIGNEDTOK && LA18_0 <= VOIDTOK)) ) { alt18=1; } else if ( (LA18_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt18=1; } else if ( (LA18_0==TYPEALIASTOK) ) { alt18=1; } switch (alt18) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:320:11: structOrVariantDeclarationList { pushFollow(FOLLOW_structOrVariantDeclarationList_in_structBody1273); structOrVariantDeclarationList65=structOrVariantDeclarationList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structOrVariantDeclarationList.add(structOrVariantDeclarationList65.getTree()); } break; } RCURL66=(Token)match(input,RCURL,FOLLOW_RCURL_in_structBody1276); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RCURL.add(RCURL66); // AST REWRITE // elements: structOrVariantDeclarationList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 321:7: -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:321:10: ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STRUCT_BODY, "STRUCT_BODY"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:321:24: ( structOrVariantDeclarationList )? if ( stream_structOrVariantDeclarationList.hasNext() ) { adaptor.addChild(root_1, stream_structOrVariantDeclarationList.nextTree()); } stream_structOrVariantDeclarationList.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving Symbols_stack.pop(); } return retval; } // $ANTLR end "structBody" public static class structSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:324:1: structSpecifier : STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) ; public final CTFParser.structSpecifier_return structSpecifier() throws RecognitionException { CTFParser.structSpecifier_return retval = new CTFParser.structSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token STRUCTTOK67=null; ParserRuleReturnScope structName68 =null; ParserRuleReturnScope alignAttribute69 =null; ParserRuleReturnScope structBody70 =null; ParserRuleReturnScope alignAttribute71 =null; ParserRuleReturnScope structBody72 =null; ParserRuleReturnScope alignAttribute73 =null; CommonTree STRUCTTOK67_tree=null; RewriteRuleTokenStream stream_STRUCTTOK=new RewriteRuleTokenStream(adaptor,"token STRUCTTOK"); RewriteRuleSubtreeStream stream_structName=new RewriteRuleSubtreeStream(adaptor,"rule structName"); RewriteRuleSubtreeStream stream_structBody=new RewriteRuleSubtreeStream(adaptor,"rule structBody"); RewriteRuleSubtreeStream stream_alignAttribute=new RewriteRuleSubtreeStream(adaptor,"rule alignAttribute"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:325:3: ( STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:325:5: STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) { STRUCTTOK67=(Token)match(input,STRUCTTOK,FOLLOW_STRUCTTOK_in_structSpecifier1304); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STRUCTTOK.add(STRUCTTOK67); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:326:3: ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) int alt22=2; int LA22_0 = input.LA(1); if ( (LA22_0==IDENTIFIER) ) { alt22=1; } else if ( (LA22_0==LCURL) ) { alt22=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 22, 0, input); throw nvae; } switch (alt22) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:328:5: ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:328:5: ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:329:9: structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) { pushFollow(FOLLOW_structName_in_structSpecifier1329); structName68=structName(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structName.add(structName68.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:330:9: ( alignAttribute | ( structBody ( alignAttribute |) ) |) int alt20=3; switch ( input.LA(1) ) { case ALIGNTOK: { alt20=1; } break; case LCURL: { switch ( input.LA(2) ) { case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case RCURL: case SHORTTOK: case STRUCTTOK: case TYPEALIASTOK: case TYPEDEFTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt20=2; } break; case SIGNEDTOK: { int LA20_5 = input.LA(3); if ( (LA20_5==BOOLTOK||LA20_5==CHARTOK||(LA20_5 >= COMPLEXTOK && LA20_5 <= CONSTTOK)||LA20_5==DOUBLETOK||LA20_5==ENUMTOK||(LA20_5 >= FLOATINGPOINTTOK && LA20_5 <= FLOATTOK)||(LA20_5 >= IDENTIFIER && LA20_5 <= IMAGINARYTOK)||LA20_5==INTEGERTOK||LA20_5==INTTOK||LA20_5==LONGTOK||LA20_5==POINTER||LA20_5==SHORTTOK||LA20_5==SIGNEDTOK||LA20_5==STRINGTOK||LA20_5==STRUCTTOK||LA20_5==TYPEDEFTOK||(LA20_5 >= UNSIGNEDTOK && LA20_5 <= VOIDTOK)) ) { alt20=2; } else if ( (LA20_5==ASSIGNMENT||LA20_5==RCURL||LA20_5==SEPARATOR) ) { alt20=3; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 20, 5, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case STRINGTOK: { int LA20_6 = input.LA(3); if ( (LA20_6==BOOLTOK||LA20_6==CHARTOK||(LA20_6 >= COMPLEXTOK && LA20_6 <= CONSTTOK)||LA20_6==DOUBLETOK||LA20_6==ENUMTOK||(LA20_6 >= FLOATINGPOINTTOK && LA20_6 <= FLOATTOK)||(LA20_6 >= IDENTIFIER && LA20_6 <= IMAGINARYTOK)||LA20_6==INTEGERTOK||(LA20_6 >= INTTOK && LA20_6 <= LCURL)||LA20_6==LONGTOK||LA20_6==POINTER||LA20_6==SHORTTOK||LA20_6==SIGNEDTOK||LA20_6==STRINGTOK||LA20_6==STRUCTTOK||LA20_6==TYPEDEFTOK||(LA20_6 >= UNSIGNEDTOK && LA20_6 <= VOIDTOK)) ) { alt20=2; } else if ( (LA20_6==ASSIGNMENT||LA20_6==RCURL||LA20_6==SEPARATOR) ) { alt20=3; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 20, 6, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case IDENTIFIER: { int LA20_7 = input.LA(3); if ( (LA20_7==BOOLTOK||LA20_7==CHARTOK||(LA20_7 >= COMPLEXTOK && LA20_7 <= CONSTTOK)||LA20_7==DOUBLETOK||LA20_7==ENUMTOK||(LA20_7 >= FLOATINGPOINTTOK && LA20_7 <= FLOATTOK)||(LA20_7 >= IDENTIFIER && LA20_7 <= IMAGINARYTOK)||LA20_7==INTEGERTOK||LA20_7==INTTOK||LA20_7==LONGTOK||LA20_7==POINTER||LA20_7==SHORTTOK||LA20_7==SIGNEDTOK||LA20_7==STRINGTOK||LA20_7==STRUCTTOK||LA20_7==TYPEDEFTOK||(LA20_7 >= UNSIGNEDTOK && LA20_7 <= VOIDTOK)) ) { alt20=2; } else if ( (LA20_7==ASSIGNMENT||LA20_7==RCURL||LA20_7==SEPARATOR) ) { alt20=3; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 20, 7, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case ALIGNTOK: case EVENTTOK: case STRING_LITERAL: { alt20=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 20, 2, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case EOF: case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IDENTIFIER: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case LPAREN: case POINTER: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case TERM: case TYPEDEFTOK: case TYPE_ASSIGNMENT: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt20=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 20, 0, input); throw nvae; } switch (alt20) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:331:11: alignAttribute { pushFollow(FOLLOW_alignAttribute_in_structSpecifier1351); alignAttribute69=alignAttribute(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute69.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:333:11: ( structBody ( alignAttribute |) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:333:11: ( structBody ( alignAttribute |) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:334:13: structBody ( alignAttribute |) { pushFollow(FOLLOW_structBody_in_structSpecifier1387); structBody70=structBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structBody.add(structBody70.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:335:13: ( alignAttribute |) int alt19=2; int LA19_0 = input.LA(1); if ( (LA19_0==ALIGNTOK) ) { alt19=1; } else if ( (LA19_0==EOF||LA19_0==BOOLTOK||LA19_0==CHARTOK||(LA19_0 >= COMPLEXTOK && LA19_0 <= CONSTTOK)||LA19_0==DOUBLETOK||LA19_0==ENUMTOK||(LA19_0 >= FLOATINGPOINTTOK && LA19_0 <= FLOATTOK)||(LA19_0 >= IDENTIFIER && LA19_0 <= IMAGINARYTOK)||LA19_0==INTEGERTOK||(LA19_0 >= INTTOK && LA19_0 <= LCURL)||(LA19_0 >= LONGTOK && LA19_0 <= LPAREN)||LA19_0==POINTER||LA19_0==SHORTTOK||LA19_0==SIGNEDTOK||LA19_0==STRINGTOK||(LA19_0 >= STRUCTTOK && LA19_0 <= TERM)||(LA19_0 >= TYPEDEFTOK && LA19_0 <= TYPE_ASSIGNMENT)||(LA19_0 >= UNSIGNEDTOK && LA19_0 <= VOIDTOK)) ) { alt19=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 19, 0, input); throw nvae; } switch (alt19) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:336:14: alignAttribute { pushFollow(FOLLOW_alignAttribute_in_structSpecifier1418); alignAttribute71=alignAttribute(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute71.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:339:13: { } break; } } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:343:9: { } break; } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:347:5: ( structBody ( alignAttribute |) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:347:5: ( structBody ( alignAttribute |) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:348:7: structBody ( alignAttribute |) { pushFollow(FOLLOW_structBody_in_structSpecifier1534); structBody72=structBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structBody.add(structBody72.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:349:7: ( alignAttribute |) int alt21=2; int LA21_0 = input.LA(1); if ( (LA21_0==ALIGNTOK) ) { alt21=1; } else if ( (LA21_0==EOF||LA21_0==BOOLTOK||LA21_0==CHARTOK||(LA21_0 >= COMPLEXTOK && LA21_0 <= CONSTTOK)||LA21_0==DOUBLETOK||LA21_0==ENUMTOK||(LA21_0 >= FLOATINGPOINTTOK && LA21_0 <= FLOATTOK)||(LA21_0 >= IDENTIFIER && LA21_0 <= IMAGINARYTOK)||LA21_0==INTEGERTOK||(LA21_0 >= INTTOK && LA21_0 <= LCURL)||(LA21_0 >= LONGTOK && LA21_0 <= LPAREN)||LA21_0==POINTER||LA21_0==SHORTTOK||LA21_0==SIGNEDTOK||LA21_0==STRINGTOK||(LA21_0 >= STRUCTTOK && LA21_0 <= TERM)||(LA21_0 >= TYPEDEFTOK && LA21_0 <= TYPE_ASSIGNMENT)||(LA21_0 >= UNSIGNEDTOK && LA21_0 <= VOIDTOK)) ) { alt21=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 21, 0, input); throw nvae; } switch (alt21) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:350:9: alignAttribute { pushFollow(FOLLOW_alignAttribute_in_structSpecifier1552); alignAttribute73=alignAttribute(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute73.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:353:7: { } break; } } } break; } // AST REWRITE // elements: structName, structBody, alignAttribute // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 355:5: -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:355:8: ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STRUCT, "STRUCT"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:355:17: ( structName )? if ( stream_structName.hasNext() ) { adaptor.addChild(root_1, stream_structName.nextTree()); } stream_structName.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:355:29: ( structBody )? if ( stream_structBody.hasNext() ) { adaptor.addChild(root_1, stream_structBody.nextTree()); } stream_structBody.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:355:41: ( alignAttribute )? if ( stream_alignAttribute.hasNext() ) { adaptor.addChild(root_1, stream_alignAttribute.nextTree()); } stream_alignAttribute.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structSpecifier" public static class structName_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structName" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:358:1: structName : IDENTIFIER -> ^( STRUCT_NAME IDENTIFIER ) ; public final CTFParser.structName_return structName() throws RecognitionException { CTFParser.structName_return retval = new CTFParser.structName_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER74=null; CommonTree IDENTIFIER74_tree=null; RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:359:3: ( IDENTIFIER -> ^( STRUCT_NAME IDENTIFIER ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:359:5: IDENTIFIER { IDENTIFIER74=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structName1618); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER74); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 359:16: -> ^( STRUCT_NAME IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:359:19: ^( STRUCT_NAME IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STRUCT_NAME, "STRUCT_NAME"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structName" public static class structOrVariantDeclarationList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structOrVariantDeclarationList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:362:1: structOrVariantDeclarationList : ( structOrVariantDeclaration )+ ; public final CTFParser.structOrVariantDeclarationList_return structOrVariantDeclarationList() throws RecognitionException { CTFParser.structOrVariantDeclarationList_return retval = new CTFParser.structOrVariantDeclarationList_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope structOrVariantDeclaration75 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:363:3: ( ( structOrVariantDeclaration )+ ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:363:5: ( structOrVariantDeclaration )+ { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:363:5: ( structOrVariantDeclaration )+ int cnt23=0; loop23: while (true) { int alt23=2; int LA23_0 = input.LA(1); if ( (LA23_0==BOOLTOK||LA23_0==CHARTOK||(LA23_0 >= COMPLEXTOK && LA23_0 <= CONSTTOK)||LA23_0==DOUBLETOK||LA23_0==ENUMTOK||(LA23_0 >= FLOATINGPOINTTOK && LA23_0 <= FLOATTOK)||LA23_0==IMAGINARYTOK||LA23_0==INTEGERTOK||LA23_0==INTTOK||LA23_0==LONGTOK||LA23_0==SHORTTOK||LA23_0==SIGNEDTOK||LA23_0==STRINGTOK||LA23_0==STRUCTTOK||LA23_0==TYPEDEFTOK||(LA23_0 >= UNSIGNEDTOK && LA23_0 <= VOIDTOK)) ) { alt23=1; } else if ( (LA23_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt23=1; } else if ( (LA23_0==TYPEALIASTOK) ) { alt23=1; } switch (alt23) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:363:5: structOrVariantDeclaration { pushFollow(FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1639); structOrVariantDeclaration75=structOrVariantDeclaration(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, structOrVariantDeclaration75.getTree()); } break; default : if ( cnt23 >= 1 ) break loop23; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(23, input); throw eee; } cnt23++; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structOrVariantDeclarationList" public static class structOrVariantDeclaration_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structOrVariantDeclaration" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:366:1: structOrVariantDeclaration : ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM ; public final CTFParser.structOrVariantDeclaration_return structOrVariantDeclaration() throws RecognitionException { CTFParser.structOrVariantDeclaration_return retval = new CTFParser.structOrVariantDeclaration_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token TERM80=null; ParserRuleReturnScope declarationSpecifiers76 =null; ParserRuleReturnScope declaratorList77 =null; ParserRuleReturnScope structOrVariantDeclaratorList78 =null; ParserRuleReturnScope typealiasDecl79 =null; CommonTree TERM80_tree=null; RewriteRuleTokenStream stream_TERM=new RewriteRuleTokenStream(adaptor,"token TERM"); RewriteRuleSubtreeStream stream_typealiasDecl=new RewriteRuleSubtreeStream(adaptor,"rule typealiasDecl"); RewriteRuleSubtreeStream stream_declaratorList=new RewriteRuleSubtreeStream(adaptor,"rule declaratorList"); RewriteRuleSubtreeStream stream_structOrVariantDeclaratorList=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclaratorList"); RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:367:3: ( ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:368:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:368:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) int alt25=2; int LA25_0 = input.LA(1); if ( (LA25_0==BOOLTOK||LA25_0==CHARTOK||(LA25_0 >= COMPLEXTOK && LA25_0 <= CONSTTOK)||LA25_0==DOUBLETOK||LA25_0==ENUMTOK||(LA25_0 >= FLOATINGPOINTTOK && LA25_0 <= FLOATTOK)||LA25_0==IMAGINARYTOK||LA25_0==INTEGERTOK||LA25_0==INTTOK||LA25_0==LONGTOK||LA25_0==SHORTTOK||LA25_0==SIGNEDTOK||LA25_0==STRINGTOK||LA25_0==STRUCTTOK||LA25_0==TYPEDEFTOK||(LA25_0 >= UNSIGNEDTOK && LA25_0 <= VOIDTOK)) ) { alt25=1; } else if ( (LA25_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt25=1; } else if ( (LA25_0==TYPEALIASTOK) ) { alt25=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 25, 0, input); throw nvae; } switch (alt25) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:369:7: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:369:7: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:370:8: declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) { pushFollow(FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1672); declarationSpecifiers76=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers76.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:371:10: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) int alt24=2; alt24 = dfa24.predict(input); switch (alt24) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:373:12: {...}? => declaratorList { if ( !((inTypedef())) ) { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "structOrVariantDeclaration", "inTypedef()"); } pushFollow(FOLLOW_declaratorList_in_structOrVariantDeclaration1713); declaratorList77=declaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList77.getTree()); // AST REWRITE // elements: declaratorList, declarationSpecifiers // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 374:14: -> ^( TYPEDEF declaratorList declarationSpecifiers ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:374:17: ^( TYPEDEF declaratorList declarationSpecifiers ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_1); adaptor.addChild(root_1, stream_declaratorList.nextTree()); adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:375:14: structOrVariantDeclaratorList { pushFollow(FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1751); structOrVariantDeclaratorList78=structOrVariantDeclaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structOrVariantDeclaratorList.add(structOrVariantDeclaratorList78.getTree()); // AST REWRITE // elements: declarationSpecifiers, structOrVariantDeclaratorList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 376:14: -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:376:17: ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(SV_DECLARATION, "SV_DECLARATION"), root_1); adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree()); adaptor.addChild(root_1, stream_structOrVariantDeclaratorList.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:381:5: typealiasDecl { pushFollow(FOLLOW_typealiasDecl_in_structOrVariantDeclaration1810); typealiasDecl79=typealiasDecl(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typealiasDecl.add(typealiasDecl79.getTree()); // AST REWRITE // elements: typealiasDecl // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 381:19: -> typealiasDecl { adaptor.addChild(root_0, stream_typealiasDecl.nextTree()); } retval.tree = root_0; } } break; } TERM80=(Token)match(input,TERM,FOLLOW_TERM_in_structOrVariantDeclaration1822); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TERM.add(TERM80); } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structOrVariantDeclaration" public static class specifierQualifierList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "specifierQualifierList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:386:1: specifierQualifierList : ( typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ; public final CTFParser.specifierQualifierList_return specifierQualifierList() throws RecognitionException { CTFParser.specifierQualifierList_return retval = new CTFParser.specifierQualifierList_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope typeQualifier81 =null; ParserRuleReturnScope typeSpecifier82 =null; RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:387:3: ( ( typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:387:5: ( typeQualifier | typeSpecifier )+ { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:387:5: ( typeQualifier | typeSpecifier )+ int cnt26=0; loop26: while (true) { int alt26=3; int LA26_0 = input.LA(1); if ( (LA26_0==CONSTTOK) ) { alt26=1; } else if ( (LA26_0==BOOLTOK||LA26_0==CHARTOK||LA26_0==COMPLEXTOK||LA26_0==DOUBLETOK||LA26_0==ENUMTOK||(LA26_0 >= FLOATINGPOINTTOK && LA26_0 <= FLOATTOK)||LA26_0==IMAGINARYTOK||LA26_0==INTEGERTOK||LA26_0==INTTOK||LA26_0==LONGTOK||LA26_0==SHORTTOK||LA26_0==SIGNEDTOK||LA26_0==STRINGTOK||LA26_0==STRUCTTOK||(LA26_0 >= UNSIGNEDTOK && LA26_0 <= VOIDTOK)) ) { alt26=2; } else if ( (LA26_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt26=2; } switch (alt26) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:387:6: typeQualifier { pushFollow(FOLLOW_typeQualifier_in_specifierQualifierList1836); typeQualifier81=typeQualifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier81.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:387:22: typeSpecifier { pushFollow(FOLLOW_typeSpecifier_in_specifierQualifierList1840); typeSpecifier82=typeSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeSpecifier.add(typeSpecifier82.getTree()); } break; default : if ( cnt26 >= 1 ) break loop26; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(26, input); throw eee; } cnt26++; } // AST REWRITE // elements: typeQualifier, typeSpecifier // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 388:7: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:388:10: ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_SPECIFIER_LIST, "TYPE_SPECIFIER_LIST"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:388:32: ( typeQualifier )* while ( stream_typeQualifier.hasNext() ) { adaptor.addChild(root_1, stream_typeQualifier.nextTree()); } stream_typeQualifier.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:388:47: ( typeSpecifier )* while ( stream_typeSpecifier.hasNext() ) { adaptor.addChild(root_1, stream_typeSpecifier.nextTree()); } stream_typeSpecifier.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "specifierQualifierList" public static class structOrVariantDeclaratorList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structOrVariantDeclaratorList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:391:1: structOrVariantDeclaratorList : structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) ; public final CTFParser.structOrVariantDeclaratorList_return structOrVariantDeclaratorList() throws RecognitionException { CTFParser.structOrVariantDeclaratorList_return retval = new CTFParser.structOrVariantDeclaratorList_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SEPARATOR84=null; ParserRuleReturnScope structOrVariantDeclarator83 =null; ParserRuleReturnScope structOrVariantDeclarator85 =null; CommonTree SEPARATOR84_tree=null; RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); RewriteRuleSubtreeStream stream_structOrVariantDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclarator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:392:3: ( structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:392:5: structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* { pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1873); structOrVariantDeclarator83=structOrVariantDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structOrVariantDeclarator.add(structOrVariantDeclarator83.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:392:31: ( SEPARATOR structOrVariantDeclarator )* loop27: while (true) { int alt27=2; int LA27_0 = input.LA(1); if ( (LA27_0==SEPARATOR) ) { alt27=1; } switch (alt27) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:392:32: SEPARATOR structOrVariantDeclarator { SEPARATOR84=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1876); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR84); pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1878); structOrVariantDeclarator85=structOrVariantDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structOrVariantDeclarator.add(structOrVariantDeclarator85.getTree()); } break; default : break loop27; } } // AST REWRITE // elements: structOrVariantDeclarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 393:7: -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:393:10: ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR_LIST, "TYPE_DECLARATOR_LIST"), root_1); if ( !(stream_structOrVariantDeclarator.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_structOrVariantDeclarator.hasNext() ) { adaptor.addChild(root_1, stream_structOrVariantDeclarator.nextTree()); } stream_structOrVariantDeclarator.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structOrVariantDeclaratorList" public static class structOrVariantDeclarator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "structOrVariantDeclarator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:396:1: structOrVariantDeclarator : ( declarator ( COLON numberLiteral )? ) -> declarator ; public final CTFParser.structOrVariantDeclarator_return structOrVariantDeclarator() throws RecognitionException { CTFParser.structOrVariantDeclarator_return retval = new CTFParser.structOrVariantDeclarator_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token COLON87=null; ParserRuleReturnScope declarator86 =null; ParserRuleReturnScope numberLiteral88 =null; CommonTree COLON87_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator"); RewriteRuleSubtreeStream stream_numberLiteral=new RewriteRuleSubtreeStream(adaptor,"rule numberLiteral"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:397:3: ( ( declarator ( COLON numberLiteral )? ) -> declarator ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:399:5: ( declarator ( COLON numberLiteral )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:399:5: ( declarator ( COLON numberLiteral )? ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:399:6: declarator ( COLON numberLiteral )? { pushFollow(FOLLOW_declarator_in_structOrVariantDeclarator1917); declarator86=declarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarator.add(declarator86.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:399:17: ( COLON numberLiteral )? int alt28=2; int LA28_0 = input.LA(1); if ( (LA28_0==COLON) ) { alt28=1; } switch (alt28) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:399:18: COLON numberLiteral { COLON87=(Token)match(input,COLON,FOLLOW_COLON_in_structOrVariantDeclarator1920); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON87); pushFollow(FOLLOW_numberLiteral_in_structOrVariantDeclarator1922); numberLiteral88=numberLiteral(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_numberLiteral.add(numberLiteral88.getTree()); } break; } } // AST REWRITE // elements: declarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 399:41: -> declarator { adaptor.addChild(root_0, stream_declarator.nextTree()); } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "structOrVariantDeclarator" public static class variantSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "variantSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:403:1: variantSpecifier : VARIANTTOK ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) ; public final CTFParser.variantSpecifier_return variantSpecifier() throws RecognitionException { CTFParser.variantSpecifier_return retval = new CTFParser.variantSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token VARIANTTOK89=null; ParserRuleReturnScope variantName90 =null; ParserRuleReturnScope variantTag91 =null; ParserRuleReturnScope variantBody92 =null; ParserRuleReturnScope variantBody93 =null; ParserRuleReturnScope variantTag94 =null; ParserRuleReturnScope variantBody95 =null; ParserRuleReturnScope variantBody96 =null; CommonTree VARIANTTOK89_tree=null; RewriteRuleTokenStream stream_VARIANTTOK=new RewriteRuleTokenStream(adaptor,"token VARIANTTOK"); RewriteRuleSubtreeStream stream_variantBody=new RewriteRuleSubtreeStream(adaptor,"rule variantBody"); RewriteRuleSubtreeStream stream_variantTag=new RewriteRuleSubtreeStream(adaptor,"rule variantTag"); RewriteRuleSubtreeStream stream_variantName=new RewriteRuleSubtreeStream(adaptor,"rule variantName"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:404:3: ( VARIANTTOK ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:404:5: VARIANTTOK ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) { VARIANTTOK89=(Token)match(input,VARIANTTOK,FOLLOW_VARIANTTOK_in_variantSpecifier1946); if (state.failed) return retval; if ( state.backtracking==0 ) stream_VARIANTTOK.add(VARIANTTOK89); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:405:3: ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) int alt31=3; switch ( input.LA(1) ) { case IDENTIFIER: { alt31=1; } break; case LT: { alt31=2; } break; case LCURL: { alt31=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 31, 0, input); throw nvae; } switch (alt31) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:406:5: ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:406:5: ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:407:7: variantName ( ( variantTag ( variantBody |) ) | variantBody ) { pushFollow(FOLLOW_variantName_in_variantSpecifier1964); variantName90=variantName(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantName.add(variantName90.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:408:7: ( ( variantTag ( variantBody |) ) | variantBody ) int alt30=2; int LA30_0 = input.LA(1); if ( (LA30_0==LT) ) { alt30=1; } else if ( (LA30_0==LCURL) ) { alt30=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 30, 0, input); throw nvae; } switch (alt30) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:409:9: ( variantTag ( variantBody |) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:409:9: ( variantTag ( variantBody |) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:410:11: variantTag ( variantBody |) { pushFollow(FOLLOW_variantTag_in_variantSpecifier1994); variantTag91=variantTag(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantTag.add(variantTag91.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:411:11: ( variantBody |) int alt29=2; int LA29_0 = input.LA(1); if ( (LA29_0==LCURL) ) { switch ( input.LA(2) ) { case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case SHORTTOK: case STRUCTTOK: case TYPEALIASTOK: case TYPEDEFTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt29=1; } break; case SIGNEDTOK: { int LA29_4 = input.LA(3); if ( (LA29_4==BOOLTOK||LA29_4==CHARTOK||(LA29_4 >= COMPLEXTOK && LA29_4 <= CONSTTOK)||LA29_4==DOUBLETOK||LA29_4==ENUMTOK||(LA29_4 >= FLOATINGPOINTTOK && LA29_4 <= FLOATTOK)||(LA29_4 >= IDENTIFIER && LA29_4 <= IMAGINARYTOK)||LA29_4==INTEGERTOK||LA29_4==INTTOK||LA29_4==LONGTOK||LA29_4==POINTER||LA29_4==SHORTTOK||LA29_4==SIGNEDTOK||LA29_4==STRINGTOK||LA29_4==STRUCTTOK||LA29_4==TYPEDEFTOK||(LA29_4 >= UNSIGNEDTOK && LA29_4 <= VOIDTOK)) ) { alt29=1; } else if ( (LA29_4==ASSIGNMENT||LA29_4==RCURL||LA29_4==SEPARATOR) ) { alt29=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 29, 4, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case STRINGTOK: { int LA29_5 = input.LA(3); if ( (LA29_5==BOOLTOK||LA29_5==CHARTOK||(LA29_5 >= COMPLEXTOK && LA29_5 <= CONSTTOK)||LA29_5==DOUBLETOK||LA29_5==ENUMTOK||(LA29_5 >= FLOATINGPOINTTOK && LA29_5 <= FLOATTOK)||(LA29_5 >= IDENTIFIER && LA29_5 <= IMAGINARYTOK)||LA29_5==INTEGERTOK||(LA29_5 >= INTTOK && LA29_5 <= LCURL)||LA29_5==LONGTOK||LA29_5==POINTER||LA29_5==SHORTTOK||LA29_5==SIGNEDTOK||LA29_5==STRINGTOK||LA29_5==STRUCTTOK||LA29_5==TYPEDEFTOK||(LA29_5 >= UNSIGNEDTOK && LA29_5 <= VOIDTOK)) ) { alt29=1; } else if ( (LA29_5==ASSIGNMENT||LA29_5==RCURL||LA29_5==SEPARATOR) ) { alt29=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 29, 5, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case IDENTIFIER: { int LA29_6 = input.LA(3); if ( (LA29_6==BOOLTOK||LA29_6==CHARTOK||(LA29_6 >= COMPLEXTOK && LA29_6 <= CONSTTOK)||LA29_6==DOUBLETOK||LA29_6==ENUMTOK||(LA29_6 >= FLOATINGPOINTTOK && LA29_6 <= FLOATTOK)||(LA29_6 >= IDENTIFIER && LA29_6 <= IMAGINARYTOK)||LA29_6==INTEGERTOK||LA29_6==INTTOK||LA29_6==LONGTOK||LA29_6==POINTER||LA29_6==SHORTTOK||LA29_6==SIGNEDTOK||LA29_6==STRINGTOK||LA29_6==STRUCTTOK||LA29_6==TYPEDEFTOK||(LA29_6 >= UNSIGNEDTOK && LA29_6 <= VOIDTOK)) ) { alt29=1; } else if ( (LA29_6==ASSIGNMENT||LA29_6==RCURL||LA29_6==SEPARATOR) ) { alt29=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { input.consume(); } NoViableAltException nvae = new NoViableAltException("", 29, 6, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case ALIGNTOK: case EVENTTOK: case STRING_LITERAL: { alt29=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 29, 1, input); throw nvae; } finally { input.rewind(nvaeMark); } } } else if ( (LA29_0==EOF||LA29_0==BOOLTOK||LA29_0==CHARTOK||(LA29_0 >= COMPLEXTOK && LA29_0 <= CONSTTOK)||LA29_0==DOUBLETOK||LA29_0==ENUMTOK||(LA29_0 >= FLOATINGPOINTTOK && LA29_0 <= FLOATTOK)||(LA29_0 >= IDENTIFIER && LA29_0 <= IMAGINARYTOK)||LA29_0==INTEGERTOK||LA29_0==INTTOK||(LA29_0 >= LONGTOK && LA29_0 <= LPAREN)||LA29_0==POINTER||LA29_0==SHORTTOK||LA29_0==SIGNEDTOK||LA29_0==STRINGTOK||(LA29_0 >= STRUCTTOK && LA29_0 <= TERM)||(LA29_0 >= TYPEDEFTOK && LA29_0 <= TYPE_ASSIGNMENT)||(LA29_0 >= UNSIGNEDTOK && LA29_0 <= VOIDTOK)) ) { alt29=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 29, 0, input); throw nvae; } switch (alt29) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:412:13: variantBody { pushFollow(FOLLOW_variantBody_in_variantSpecifier2020); variantBody92=variantBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantBody.add(variantBody92.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:415:11: { } break; } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:418:9: variantBody { pushFollow(FOLLOW_variantBody_in_variantSpecifier2088); variantBody93=variantBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantBody.add(variantBody93.getTree()); } break; } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:421:5: ( variantTag variantBody ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:421:5: ( variantTag variantBody ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:421:6: variantTag variantBody { pushFollow(FOLLOW_variantTag_in_variantSpecifier2109); variantTag94=variantTag(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantTag.add(variantTag94.getTree()); pushFollow(FOLLOW_variantBody_in_variantSpecifier2111); variantBody95=variantBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantBody.add(variantBody95.getTree()); } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:422:5: variantBody { pushFollow(FOLLOW_variantBody_in_variantSpecifier2118); variantBody96=variantBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_variantBody.add(variantBody96.getTree()); } break; } // AST REWRITE // elements: variantTag, variantBody, variantName // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 423:5: -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:423:8: ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VARIANT, "VARIANT"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:423:18: ( variantName )? if ( stream_variantName.hasNext() ) { adaptor.addChild(root_1, stream_variantName.nextTree()); } stream_variantName.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:423:31: ( variantTag )? if ( stream_variantTag.hasNext() ) { adaptor.addChild(root_1, stream_variantTag.nextTree()); } stream_variantTag.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:423:43: ( variantBody )? if ( stream_variantBody.hasNext() ) { adaptor.addChild(root_1, stream_variantBody.nextTree()); } stream_variantBody.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "variantSpecifier" public static class variantName_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "variantName" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:426:1: variantName : IDENTIFIER -> ^( VARIANT_NAME IDENTIFIER ) ; public final CTFParser.variantName_return variantName() throws RecognitionException { CTFParser.variantName_return retval = new CTFParser.variantName_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER97=null; CommonTree IDENTIFIER97_tree=null; RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:427:3: ( IDENTIFIER -> ^( VARIANT_NAME IDENTIFIER ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:427:5: IDENTIFIER { IDENTIFIER97=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variantName2150); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER97); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 427:16: -> ^( VARIANT_NAME IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:427:19: ^( VARIANT_NAME IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VARIANT_NAME, "VARIANT_NAME"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "variantName" public static class variantBody_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "variantBody" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:430:1: variantBody : LCURL structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) ; public final CTFParser.variantBody_return variantBody() throws RecognitionException { Symbols_stack.push(new Symbols_scope()); CTFParser.variantBody_return retval = new CTFParser.variantBody_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LCURL98=null; Token RCURL100=null; ParserRuleReturnScope structOrVariantDeclarationList99 =null; CommonTree LCURL98_tree=null; CommonTree RCURL100_tree=null; RewriteRuleTokenStream stream_LCURL=new RewriteRuleTokenStream(adaptor,"token LCURL"); RewriteRuleTokenStream stream_RCURL=new RewriteRuleTokenStream(adaptor,"token RCURL"); RewriteRuleSubtreeStream stream_structOrVariantDeclarationList=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclarationList"); Symbols_stack.peek().types = new HashSet<String>(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:435:3: ( LCURL structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:435:5: LCURL structOrVariantDeclarationList RCURL { LCURL98=(Token)match(input,LCURL,FOLLOW_LCURL_in_variantBody2181); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LCURL.add(LCURL98); pushFollow(FOLLOW_structOrVariantDeclarationList_in_variantBody2183); structOrVariantDeclarationList99=structOrVariantDeclarationList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_structOrVariantDeclarationList.add(structOrVariantDeclarationList99.getTree()); RCURL100=(Token)match(input,RCURL,FOLLOW_RCURL_in_variantBody2185); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RCURL.add(RCURL100); // AST REWRITE // elements: structOrVariantDeclarationList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 436:7: -> ^( VARIANT_BODY structOrVariantDeclarationList ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:436:10: ^( VARIANT_BODY structOrVariantDeclarationList ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VARIANT_BODY, "VARIANT_BODY"), root_1); adaptor.addChild(root_1, stream_structOrVariantDeclarationList.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving Symbols_stack.pop(); } return retval; } // $ANTLR end "variantBody" public static class variantTag_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "variantTag" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:439:1: variantTag : LT IDENTIFIER GT -> ^( VARIANT_TAG IDENTIFIER ) ; public final CTFParser.variantTag_return variantTag() throws RecognitionException { CTFParser.variantTag_return retval = new CTFParser.variantTag_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LT101=null; Token IDENTIFIER102=null; Token GT103=null; CommonTree LT101_tree=null; CommonTree IDENTIFIER102_tree=null; CommonTree GT103_tree=null; RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT"); RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:440:3: ( LT IDENTIFIER GT -> ^( VARIANT_TAG IDENTIFIER ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:440:5: LT IDENTIFIER GT { LT101=(Token)match(input,LT,FOLLOW_LT_in_variantTag2212); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LT.add(LT101); IDENTIFIER102=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variantTag2214); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER102); GT103=(Token)match(input,GT,FOLLOW_GT_in_variantTag2216); if (state.failed) return retval; if ( state.backtracking==0 ) stream_GT.add(GT103); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 440:22: -> ^( VARIANT_TAG IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:440:25: ^( VARIANT_TAG IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VARIANT_TAG, "VARIANT_TAG"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "variantTag" public static class enumSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:443:1: enumSpecifier : ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) ; public final CTFParser.enumSpecifier_return enumSpecifier() throws RecognitionException { CTFParser.enumSpecifier_return retval = new CTFParser.enumSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ENUMTOK104=null; ParserRuleReturnScope enumName105 =null; ParserRuleReturnScope enumContainerType106 =null; ParserRuleReturnScope enumBody107 =null; ParserRuleReturnScope enumBody108 =null; ParserRuleReturnScope enumContainerType109 =null; ParserRuleReturnScope enumBody110 =null; ParserRuleReturnScope enumBody111 =null; CommonTree ENUMTOK104_tree=null; RewriteRuleTokenStream stream_ENUMTOK=new RewriteRuleTokenStream(adaptor,"token ENUMTOK"); RewriteRuleSubtreeStream stream_enumBody=new RewriteRuleSubtreeStream(adaptor,"rule enumBody"); RewriteRuleSubtreeStream stream_enumName=new RewriteRuleSubtreeStream(adaptor,"rule enumName"); RewriteRuleSubtreeStream stream_enumContainerType=new RewriteRuleSubtreeStream(adaptor,"rule enumContainerType"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:444:3: ( ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:444:5: ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) { ENUMTOK104=(Token)match(input,ENUMTOK,FOLLOW_ENUMTOK_in_enumSpecifier2237); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ENUMTOK.add(ENUMTOK104); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:445:5: ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) int alt34=2; int LA34_0 = input.LA(1); if ( (LA34_0==IDENTIFIER) ) { alt34=1; } else if ( (LA34_0==COLON||LA34_0==LCURL) ) { alt34=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 34, 0, input); throw nvae; } switch (alt34) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:447:9: ( enumName ( enumContainerType enumBody | enumBody |) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:447:9: ( enumName ( enumContainerType enumBody | enumBody |) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:448:13: enumName ( enumContainerType enumBody | enumBody |) { pushFollow(FOLLOW_enumName_in_enumSpecifier2276); enumName105=enumName(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumName.add(enumName105.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:449:13: ( enumContainerType enumBody | enumBody |) int alt32=3; switch ( input.LA(1) ) { case COLON: { alt32=1; } break; case LCURL: { alt32=2; } break; case EOF: case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IDENTIFIER: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case LPAREN: case POINTER: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case TERM: case TYPEDEFTOK: case TYPE_ASSIGNMENT: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt32=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 32, 0, input); throw nvae; } switch (alt32) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:450:17: enumContainerType enumBody { pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2308); enumContainerType106=enumContainerType(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumContainerType.add(enumContainerType106.getTree()); pushFollow(FOLLOW_enumBody_in_enumSpecifier2310); enumBody107=enumBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumBody.add(enumBody107.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:452:17: enumBody { pushFollow(FOLLOW_enumBody_in_enumSpecifier2340); enumBody108=enumBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumBody.add(enumBody108.getTree()); } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:455:13: { } break; } } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:459:9: ( enumContainerType enumBody | enumBody ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:459:9: ( enumContainerType enumBody | enumBody ) int alt33=2; int LA33_0 = input.LA(1); if ( (LA33_0==COLON) ) { alt33=1; } else if ( (LA33_0==LCURL) ) { alt33=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 33, 0, input); throw nvae; } switch (alt33) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:460:13: enumContainerType enumBody { pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2432); enumContainerType109=enumContainerType(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumContainerType.add(enumContainerType109.getTree()); pushFollow(FOLLOW_enumBody_in_enumSpecifier2434); enumBody110=enumBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumBody.add(enumBody110.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:462:13: enumBody { pushFollow(FOLLOW_enumBody_in_enumSpecifier2458); enumBody111=enumBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumBody.add(enumBody111.getTree()); } break; } } break; } // AST REWRITE // elements: enumName, enumBody, enumContainerType // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 464:7: -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:464:10: ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM, "ENUM"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:464:17: ( enumName )? if ( stream_enumName.hasNext() ) { adaptor.addChild(root_1, stream_enumName.nextTree()); } stream_enumName.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:464:27: ( enumContainerType )? if ( stream_enumContainerType.hasNext() ) { adaptor.addChild(root_1, stream_enumContainerType.nextTree()); } stream_enumContainerType.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:464:46: ( enumBody )? if ( stream_enumBody.hasNext() ) { adaptor.addChild(root_1, stream_enumBody.nextTree()); } stream_enumBody.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumSpecifier" public static class enumName_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumName" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:467:1: enumName : IDENTIFIER -> ^( ENUM_NAME IDENTIFIER ) ; public final CTFParser.enumName_return enumName() throws RecognitionException { CTFParser.enumName_return retval = new CTFParser.enumName_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER112=null; CommonTree IDENTIFIER112_tree=null; RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:468:3: ( IDENTIFIER -> ^( ENUM_NAME IDENTIFIER ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:468:5: IDENTIFIER { IDENTIFIER112=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumName2502); if (state.failed) return retval; if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER112); // AST REWRITE // elements: IDENTIFIER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 468:16: -> ^( ENUM_NAME IDENTIFIER ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:468:19: ^( ENUM_NAME IDENTIFIER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_NAME, "ENUM_NAME"), root_1); adaptor.addChild(root_1, stream_IDENTIFIER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumName" public static class enumBody_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumBody" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:471:1: enumBody : LCURL enumeratorList ( SEPARATOR )? RCURL -> ^( ENUM_BODY enumeratorList ) ; public final CTFParser.enumBody_return enumBody() throws RecognitionException { CTFParser.enumBody_return retval = new CTFParser.enumBody_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LCURL113=null; Token SEPARATOR115=null; Token RCURL116=null; ParserRuleReturnScope enumeratorList114 =null; CommonTree LCURL113_tree=null; CommonTree SEPARATOR115_tree=null; CommonTree RCURL116_tree=null; RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); RewriteRuleTokenStream stream_LCURL=new RewriteRuleTokenStream(adaptor,"token LCURL"); RewriteRuleTokenStream stream_RCURL=new RewriteRuleTokenStream(adaptor,"token RCURL"); RewriteRuleSubtreeStream stream_enumeratorList=new RewriteRuleSubtreeStream(adaptor,"rule enumeratorList"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:472:3: ( LCURL enumeratorList ( SEPARATOR )? RCURL -> ^( ENUM_BODY enumeratorList ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:472:5: LCURL enumeratorList ( SEPARATOR )? RCURL { LCURL113=(Token)match(input,LCURL,FOLLOW_LCURL_in_enumBody2523); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LCURL.add(LCURL113); pushFollow(FOLLOW_enumeratorList_in_enumBody2525); enumeratorList114=enumeratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList114.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:472:26: ( SEPARATOR )? int alt35=2; int LA35_0 = input.LA(1); if ( (LA35_0==SEPARATOR) ) { alt35=1; } switch (alt35) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:472:26: SEPARATOR { SEPARATOR115=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_enumBody2527); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR115); } break; } RCURL116=(Token)match(input,RCURL,FOLLOW_RCURL_in_enumBody2530); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RCURL.add(RCURL116); // AST REWRITE // elements: enumeratorList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 472:43: -> ^( ENUM_BODY enumeratorList ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:472:46: ^( ENUM_BODY enumeratorList ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_BODY, "ENUM_BODY"), root_1); adaptor.addChild(root_1, stream_enumeratorList.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumBody" public static class enumContainerType_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumContainerType" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:475:1: enumContainerType : COLON declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) ; public final CTFParser.enumContainerType_return enumContainerType() throws RecognitionException { CTFParser.enumContainerType_return retval = new CTFParser.enumContainerType_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token COLON117=null; ParserRuleReturnScope declarationSpecifiers118 =null; CommonTree COLON117_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:476:3: ( COLON declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:476:5: COLON declarationSpecifiers { COLON117=(Token)match(input,COLON,FOLLOW_COLON_in_enumContainerType2551); if (state.failed) return retval; if ( state.backtracking==0 ) stream_COLON.add(COLON117); pushFollow(FOLLOW_declarationSpecifiers_in_enumContainerType2553); declarationSpecifiers118=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers118.getTree()); // AST REWRITE // elements: declarationSpecifiers // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 476:33: -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:476:36: ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_CONTAINER_TYPE, "ENUM_CONTAINER_TYPE"), root_1); adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumContainerType" public static class enumeratorList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumeratorList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:479:1: enumeratorList : enumerator ( SEPARATOR enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ ; public final CTFParser.enumeratorList_return enumeratorList() throws RecognitionException { CTFParser.enumeratorList_return retval = new CTFParser.enumeratorList_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SEPARATOR120=null; ParserRuleReturnScope enumerator119 =null; ParserRuleReturnScope enumerator121 =null; CommonTree SEPARATOR120_tree=null; RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); RewriteRuleSubtreeStream stream_enumerator=new RewriteRuleSubtreeStream(adaptor,"rule enumerator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:480:3: ( enumerator ( SEPARATOR enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:480:5: enumerator ( SEPARATOR enumerator )* { pushFollow(FOLLOW_enumerator_in_enumeratorList2574); enumerator119=enumerator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumerator.add(enumerator119.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:480:16: ( SEPARATOR enumerator )* loop36: while (true) { int alt36=2; int LA36_0 = input.LA(1); if ( (LA36_0==SEPARATOR) ) { int LA36_1 = input.LA(2); if ( (LA36_1==ALIGNTOK||LA36_1==EVENTTOK||LA36_1==IDENTIFIER||LA36_1==SIGNEDTOK||LA36_1==STRINGTOK||LA36_1==STRING_LITERAL) ) { alt36=1; } } switch (alt36) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:480:17: SEPARATOR enumerator { SEPARATOR120=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_enumeratorList2577); if (state.failed) return retval; if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR120); pushFollow(FOLLOW_enumerator_in_enumeratorList2579); enumerator121=enumerator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_enumerator.add(enumerator121.getTree()); } break; default : break loop36; } } // AST REWRITE // elements: enumerator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 480:40: -> ( ^( ENUM_ENUMERATOR enumerator ) )+ { if ( !(stream_enumerator.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_enumerator.hasNext() ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:480:44: ^( ENUM_ENUMERATOR enumerator ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_ENUMERATOR, "ENUM_ENUMERATOR"), root_1); adaptor.addChild(root_1, stream_enumerator.nextTree()); adaptor.addChild(root_0, root_1); } } stream_enumerator.reset(); } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumeratorList" public static class enumerator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumerator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:483:1: enumerator : enumConstant ( enumeratorValue )? ; public final CTFParser.enumerator_return enumerator() throws RecognitionException { CTFParser.enumerator_return retval = new CTFParser.enumerator_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope enumConstant122 =null; ParserRuleReturnScope enumeratorValue123 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:484:3: ( enumConstant ( enumeratorValue )? ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:484:5: enumConstant ( enumeratorValue )? { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_enumConstant_in_enumerator2605); enumConstant122=enumConstant(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, enumConstant122.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:484:18: ( enumeratorValue )? int alt37=2; int LA37_0 = input.LA(1); if ( (LA37_0==ASSIGNMENT) ) { alt37=1; } switch (alt37) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:484:18: enumeratorValue { pushFollow(FOLLOW_enumeratorValue_in_enumerator2607); enumeratorValue123=enumeratorValue(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, enumeratorValue123.getTree()); } break; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumerator" public static class enumeratorValue_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "enumeratorValue" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:487:1: enumeratorValue : ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) ; public final CTFParser.enumeratorValue_return enumeratorValue() throws RecognitionException { CTFParser.enumeratorValue_return retval = new CTFParser.enumeratorValue_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ASSIGNMENT124=null; Token ELIPSES125=null; ParserRuleReturnScope e1 =null; ParserRuleReturnScope e2 =null; CommonTree ASSIGNMENT124_tree=null; CommonTree ELIPSES125_tree=null; RewriteRuleTokenStream stream_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token ASSIGNMENT"); RewriteRuleTokenStream stream_ELIPSES=new RewriteRuleTokenStream(adaptor,"token ELIPSES"); RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:488:3: ( ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:488:5: ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) { ASSIGNMENT124=(Token)match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_enumeratorValue2621); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ASSIGNMENT.add(ASSIGNMENT124); pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2625); e1=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_unaryExpression.add(e1.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:489:7: ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) int alt38=2; int LA38_0 = input.LA(1); if ( (LA38_0==RCURL||LA38_0==SEPARATOR) ) { alt38=1; } else if ( (LA38_0==ELIPSES) ) { alt38=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 38, 0, input); throw nvae; } switch (alt38) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:490:11: { // AST REWRITE // elements: e1 // token labels: // rule labels: e1, retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_e1=new RewriteRuleSubtreeStream(adaptor,"rule e1",e1!=null?e1.getTree():null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 490:11: -> ^( ENUM_VALUE $e1) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:490:14: ^( ENUM_VALUE $e1) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_VALUE, "ENUM_VALUE"), root_1); adaptor.addChild(root_1, stream_e1.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:491:9: ELIPSES e2= unaryExpression { ELIPSES125=(Token)match(input,ELIPSES,FOLLOW_ELIPSES_in_enumeratorValue2664); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ELIPSES.add(ELIPSES125); pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2668); e2=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_unaryExpression.add(e2.getTree()); // AST REWRITE // elements: e1, e2 // token labels: // rule labels: e1, e2, retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_e1=new RewriteRuleSubtreeStream(adaptor,"rule e1",e1!=null?e1.getTree():null); RewriteRuleSubtreeStream stream_e2=new RewriteRuleSubtreeStream(adaptor,"rule e2",e2!=null?e2.getTree():null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 492:11: -> ^( ENUM_VALUE_RANGE $e1 $e2) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:492:14: ^( ENUM_VALUE_RANGE $e1 $e2) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENUM_VALUE_RANGE, "ENUM_VALUE_RANGE"), root_1); adaptor.addChild(root_1, stream_e1.nextTree()); adaptor.addChild(root_1, stream_e2.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "enumeratorValue" public static class declarator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "declarator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:496:1: declarator : ( pointer )* directDeclarator -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) ; public final CTFParser.declarator_return declarator() throws RecognitionException { CTFParser.declarator_return retval = new CTFParser.declarator_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope pointer126 =null; ParserRuleReturnScope directDeclarator127 =null; RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer"); RewriteRuleSubtreeStream stream_directDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directDeclarator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:497:3: ( ( pointer )* directDeclarator -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:497:5: ( pointer )* directDeclarator { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:497:5: ( pointer )* loop39: while (true) { int alt39=2; int LA39_0 = input.LA(1); if ( (LA39_0==POINTER) ) { alt39=1; } switch (alt39) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:497:5: pointer { pushFollow(FOLLOW_pointer_in_declarator2711); pointer126=pointer(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_pointer.add(pointer126.getTree()); } break; default : break loop39; } } pushFollow(FOLLOW_directDeclarator_in_declarator2714); directDeclarator127=directDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_directDeclarator.add(directDeclarator127.getTree()); // AST REWRITE // elements: directDeclarator, pointer // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 498:7: -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:498:10: ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR, "TYPE_DECLARATOR"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:498:28: ( pointer )* while ( stream_pointer.hasNext() ) { adaptor.addChild(root_1, stream_pointer.nextTree()); } stream_pointer.reset(); adaptor.addChild(root_1, stream_directDeclarator.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "declarator" public static class directDeclarator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "directDeclarator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:501:1: directDeclarator : ( IDENTIFIER ) ( directDeclaratorSuffix )* ; public final CTFParser.directDeclarator_return directDeclarator() throws RecognitionException { CTFParser.directDeclarator_return retval = new CTFParser.directDeclarator_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER128=null; ParserRuleReturnScope directDeclaratorSuffix129 =null; CommonTree IDENTIFIER128_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:502:3: ( ( IDENTIFIER ) ( directDeclaratorSuffix )* ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:502:5: ( IDENTIFIER ) ( directDeclaratorSuffix )* { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:502:5: ( IDENTIFIER ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:503:7: IDENTIFIER { IDENTIFIER128=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directDeclarator2752); if (state.failed) return retval; if ( state.backtracking==0 ) { IDENTIFIER128_tree = (CommonTree)adaptor.create(IDENTIFIER128); adaptor.addChild(root_0, IDENTIFIER128_tree); } if ( state.backtracking==0 ) { if (inTypedef()) addTypeName((IDENTIFIER128!=null?IDENTIFIER128.getText():null)); } if ( state.backtracking==0 ) { debug_print((IDENTIFIER128!=null?IDENTIFIER128.getText():null)); } } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:508:5: ( directDeclaratorSuffix )* loop40: while (true) { int alt40=2; int LA40_0 = input.LA(1); if ( (LA40_0==OPENBRAC) ) { alt40=1; } switch (alt40) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:508:5: directDeclaratorSuffix { pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator2792); directDeclaratorSuffix129=directDeclaratorSuffix(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorSuffix129.getTree()); } break; default : break loop40; } } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "directDeclarator" public static class directDeclaratorSuffix_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "directDeclaratorSuffix" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:511:1: directDeclaratorSuffix : OPENBRAC directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) ; public final CTFParser.directDeclaratorSuffix_return directDeclaratorSuffix() throws RecognitionException { CTFParser.directDeclaratorSuffix_return retval = new CTFParser.directDeclaratorSuffix_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token OPENBRAC130=null; Token CLOSEBRAC132=null; ParserRuleReturnScope directDeclaratorLength131 =null; CommonTree OPENBRAC130_tree=null; CommonTree CLOSEBRAC132_tree=null; RewriteRuleTokenStream stream_OPENBRAC=new RewriteRuleTokenStream(adaptor,"token OPENBRAC"); RewriteRuleTokenStream stream_CLOSEBRAC=new RewriteRuleTokenStream(adaptor,"token CLOSEBRAC"); RewriteRuleSubtreeStream stream_directDeclaratorLength=new RewriteRuleSubtreeStream(adaptor,"rule directDeclaratorLength"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:512:3: ( OPENBRAC directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:512:5: OPENBRAC directDeclaratorLength CLOSEBRAC { OPENBRAC130=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_directDeclaratorSuffix2806); if (state.failed) return retval; if ( state.backtracking==0 ) stream_OPENBRAC.add(OPENBRAC130); pushFollow(FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2808); directDeclaratorLength131=directDeclaratorLength(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_directDeclaratorLength.add(directDeclaratorLength131.getTree()); CLOSEBRAC132=(Token)match(input,CLOSEBRAC,FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2810); if (state.failed) return retval; if ( state.backtracking==0 ) stream_CLOSEBRAC.add(CLOSEBRAC132); // AST REWRITE // elements: directDeclaratorLength // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 513:7: -> ^( LENGTH directDeclaratorLength ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:513:10: ^( LENGTH directDeclaratorLength ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LENGTH, "LENGTH"), root_1); adaptor.addChild(root_1, stream_directDeclaratorLength.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "directDeclaratorSuffix" public static class directDeclaratorLength_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "directDeclaratorLength" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:516:1: directDeclaratorLength : unaryExpression ; public final CTFParser.directDeclaratorLength_return directDeclaratorLength() throws RecognitionException { CTFParser.directDeclaratorLength_return retval = new CTFParser.directDeclaratorLength_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope unaryExpression133 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:517:3: ( unaryExpression ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:517:5: unaryExpression { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_unaryExpression_in_directDeclaratorLength2838); unaryExpression133=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression133.getTree()); } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "directDeclaratorLength" public static class abstractDeclarator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "abstractDeclarator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:520:1: abstractDeclarator : ( ( pointer )+ ( directAbstractDeclarator )? -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^( TYPE_DECLARATOR directAbstractDeclarator ) ); public final CTFParser.abstractDeclarator_return abstractDeclarator() throws RecognitionException { CTFParser.abstractDeclarator_return retval = new CTFParser.abstractDeclarator_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope pointer134 =null; ParserRuleReturnScope directAbstractDeclarator135 =null; ParserRuleReturnScope directAbstractDeclarator136 =null; RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer"); RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:3: ( ( pointer )+ ( directAbstractDeclarator )? -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^( TYPE_DECLARATOR directAbstractDeclarator ) ) int alt43=2; int LA43_0 = input.LA(1); if ( (LA43_0==POINTER) ) { alt43=1; } else if ( (LA43_0==IDENTIFIER||LA43_0==LPAREN) ) { alt43=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 43, 0, input); throw nvae; } switch (alt43) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:5: ( pointer )+ ( directAbstractDeclarator )? { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:5: ( pointer )+ int cnt41=0; loop41: while (true) { int alt41=2; int LA41_0 = input.LA(1); if ( (LA41_0==POINTER) ) { alt41=1; } switch (alt41) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:5: pointer { pushFollow(FOLLOW_pointer_in_abstractDeclarator2851); pointer134=pointer(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_pointer.add(pointer134.getTree()); } break; default : if ( cnt41 >= 1 ) break loop41; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(41, input); throw eee; } cnt41++; } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:14: ( directAbstractDeclarator )? int alt42=2; int LA42_0 = input.LA(1); if ( (LA42_0==IDENTIFIER||LA42_0==LPAREN) ) { alt42=1; } switch (alt42) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:521:14: directAbstractDeclarator { pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2854); directAbstractDeclarator135=directAbstractDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator135.getTree()); } break; } // AST REWRITE // elements: pointer, directAbstractDeclarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 522:7: -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:522:10: ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR, "TYPE_DECLARATOR"), root_1); if ( !(stream_pointer.hasNext()) ) { throw new RewriteEarlyExitException(); } while ( stream_pointer.hasNext() ) { adaptor.addChild(root_1, stream_pointer.nextTree()); } stream_pointer.reset(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:522:37: ( directAbstractDeclarator )? if ( stream_directAbstractDeclarator.hasNext() ) { adaptor.addChild(root_1, stream_directAbstractDeclarator.nextTree()); } stream_directAbstractDeclarator.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:523:5: directAbstractDeclarator { pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2879); directAbstractDeclarator136=directAbstractDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator136.getTree()); // AST REWRITE // elements: directAbstractDeclarator // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 524:7: -> ^( TYPE_DECLARATOR directAbstractDeclarator ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:524:10: ^( TYPE_DECLARATOR directAbstractDeclarator ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_DECLARATOR, "TYPE_DECLARATOR"), root_1); adaptor.addChild(root_1, stream_directAbstractDeclarator.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "abstractDeclarator" public static class directAbstractDeclarator_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "directAbstractDeclarator" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:532:1: directAbstractDeclarator : ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? ; public final CTFParser.directAbstractDeclarator_return directAbstractDeclarator() throws RecognitionException { CTFParser.directAbstractDeclarator_return retval = new CTFParser.directAbstractDeclarator_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER137=null; Token LPAREN138=null; Token RPAREN140=null; Token OPENBRAC141=null; Token CLOSEBRAC143=null; ParserRuleReturnScope abstractDeclarator139 =null; ParserRuleReturnScope unaryExpression142 =null; CommonTree IDENTIFIER137_tree=null; CommonTree LPAREN138_tree=null; CommonTree RPAREN140_tree=null; CommonTree OPENBRAC141_tree=null; CommonTree CLOSEBRAC143_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:533:3: ( ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:533:5: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:533:5: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) int alt44=2; int LA44_0 = input.LA(1); if ( (LA44_0==IDENTIFIER) ) { alt44=1; } else if ( (LA44_0==LPAREN) ) { alt44=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 44, 0, input); throw nvae; } switch (alt44) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:534:7: IDENTIFIER { IDENTIFIER137=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directAbstractDeclarator2916); if (state.failed) return retval; if ( state.backtracking==0 ) { IDENTIFIER137_tree = (CommonTree)adaptor.create(IDENTIFIER137); adaptor.addChild(root_0, IDENTIFIER137_tree); } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:535:9: ( LPAREN abstractDeclarator RPAREN ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:535:9: ( LPAREN abstractDeclarator RPAREN ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:535:10: LPAREN abstractDeclarator RPAREN { LPAREN138=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator2927); if (state.failed) return retval; if ( state.backtracking==0 ) { LPAREN138_tree = (CommonTree)adaptor.create(LPAREN138); adaptor.addChild(root_0, LPAREN138_tree); } pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2929); abstractDeclarator139=abstractDeclarator(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclarator139.getTree()); RPAREN140=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator2931); if (state.failed) return retval; if ( state.backtracking==0 ) { RPAREN140_tree = (CommonTree)adaptor.create(RPAREN140); adaptor.addChild(root_0, RPAREN140_tree); } } } break; } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:536:5: ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? int alt46=2; int LA46_0 = input.LA(1); if ( (LA46_0==OPENBRAC) ) { alt46=1; } switch (alt46) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:537:7: OPENBRAC ( unaryExpression )? CLOSEBRAC { OPENBRAC141=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_directAbstractDeclarator2946); if (state.failed) return retval; if ( state.backtracking==0 ) { OPENBRAC141_tree = (CommonTree)adaptor.create(OPENBRAC141); adaptor.addChild(root_0, OPENBRAC141_tree); } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:537:16: ( unaryExpression )? int alt45=2; int LA45_0 = input.LA(1); if ( (LA45_0==ALIGNTOK||LA45_0==CHARACTER_LITERAL||LA45_0==CLOCKTOK||LA45_0==DECIMAL_LITERAL||LA45_0==ENVTOK||LA45_0==EVENTTOK||LA45_0==HEX_LITERAL||LA45_0==IDENTIFIER||LA45_0==OCTAL_LITERAL||(LA45_0 >= SIGN && LA45_0 <= SIGNEDTOK)||LA45_0==STREAMTOK||LA45_0==STRINGTOK||LA45_0==STRING_LITERAL||LA45_0==TRACETOK) ) { alt45=1; } switch (alt45) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:537:16: unaryExpression { pushFollow(FOLLOW_unaryExpression_in_directAbstractDeclarator2948); unaryExpression142=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression142.getTree()); } break; } CLOSEBRAC143=(Token)match(input,CLOSEBRAC,FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2951); if (state.failed) return retval; if ( state.backtracking==0 ) { CLOSEBRAC143_tree = (CommonTree)adaptor.create(CLOSEBRAC143); adaptor.addChild(root_0, CLOSEBRAC143_tree); } } break; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "directAbstractDeclarator" public static class pointer_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "pointer" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:541:1: pointer : POINTER ( typeQualifierList )? -> ^( POINTER ( typeQualifierList )? ) ; public final CTFParser.pointer_return pointer() throws RecognitionException { CTFParser.pointer_return retval = new CTFParser.pointer_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token POINTER144=null; ParserRuleReturnScope typeQualifierList145 =null; CommonTree POINTER144_tree=null; RewriteRuleTokenStream stream_POINTER=new RewriteRuleTokenStream(adaptor,"token POINTER"); RewriteRuleSubtreeStream stream_typeQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:3: ( POINTER ( typeQualifierList )? -> ^( POINTER ( typeQualifierList )? ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:5: POINTER ( typeQualifierList )? { POINTER144=(Token)match(input,POINTER,FOLLOW_POINTER_in_pointer2969); if (state.failed) return retval; if ( state.backtracking==0 ) stream_POINTER.add(POINTER144); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:13: ( typeQualifierList )? int alt47=2; int LA47_0 = input.LA(1); if ( (LA47_0==CONSTTOK) ) { alt47=1; } switch (alt47) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:13: typeQualifierList { pushFollow(FOLLOW_typeQualifierList_in_pointer2971); typeQualifierList145=typeQualifierList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList145.getTree()); } break; } // AST REWRITE // elements: typeQualifierList, POINTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 542:32: -> ^( POINTER ( typeQualifierList )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:35: ^( POINTER ( typeQualifierList )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot(stream_POINTER.nextNode(), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:542:45: ( typeQualifierList )? if ( stream_typeQualifierList.hasNext() ) { adaptor.addChild(root_1, stream_typeQualifierList.nextTree()); } stream_typeQualifierList.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "pointer" public static class typeQualifierList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typeQualifierList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:545:1: typeQualifierList : ( typeQualifier )+ ; public final CTFParser.typeQualifierList_return typeQualifierList() throws RecognitionException { CTFParser.typeQualifierList_return retval = new CTFParser.typeQualifierList_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope typeQualifier146 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:546:3: ( ( typeQualifier )+ ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:546:5: ( typeQualifier )+ { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:546:5: ( typeQualifier )+ int cnt48=0; loop48: while (true) { int alt48=2; int LA48_0 = input.LA(1); if ( (LA48_0==CONSTTOK) ) { alt48=1; } switch (alt48) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:546:5: typeQualifier { pushFollow(FOLLOW_typeQualifier_in_typeQualifierList2994); typeQualifier146=typeQualifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, typeQualifier146.getTree()); } break; default : if ( cnt48 >= 1 ) break loop48; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(48, input); throw eee; } cnt48++; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typeQualifierList" public static class typedefName_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typedefName" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:549:1: typedefName :{...}? IDENTIFIER ; public final CTFParser.typedefName_return typedefName() throws RecognitionException { CTFParser.typedefName_return retval = new CTFParser.typedefName_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IDENTIFIER147=null; CommonTree IDENTIFIER147_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:550:3: ({...}? IDENTIFIER ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:550:5: {...}? IDENTIFIER { root_0 = (CommonTree)adaptor.nil(); if ( !((inTypealiasAlias() || isTypeName(input.LT(1).getText()))) ) { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "typedefName", "inTypealiasAlias() || isTypeName(input.LT(1).getText())"); } IDENTIFIER147=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedefName3010); if (state.failed) return retval; if ( state.backtracking==0 ) { IDENTIFIER147_tree = (CommonTree)adaptor.create(IDENTIFIER147); adaptor.addChild(root_0, IDENTIFIER147_tree); } if ( state.backtracking==0 ) { if ((inTypedef() || inTypealiasAlias()) && !isTypeName((IDENTIFIER147!=null?IDENTIFIER147.getText():null))) { addTypeName((IDENTIFIER147!=null?IDENTIFIER147.getText():null)); } } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typedefName" public static class typealiasTarget_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typealiasTarget" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:559:1: typealiasTarget : declarationSpecifiers ( abstractDeclaratorList )? ; public final CTFParser.typealiasTarget_return typealiasTarget() throws RecognitionException { CTFParser.typealiasTarget_return retval = new CTFParser.typealiasTarget_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope declarationSpecifiers148 =null; ParserRuleReturnScope abstractDeclaratorList149 =null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:560:3: ( declarationSpecifiers ( abstractDeclaratorList )? ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:560:5: declarationSpecifiers ( abstractDeclaratorList )? { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_declarationSpecifiers_in_typealiasTarget3027); declarationSpecifiers148=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifiers148.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:560:27: ( abstractDeclaratorList )? int alt49=2; int LA49_0 = input.LA(1); if ( (LA49_0==IDENTIFIER||LA49_0==LPAREN||LA49_0==POINTER) ) { alt49=1; } switch (alt49) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:560:27: abstractDeclaratorList { pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasTarget3029); abstractDeclaratorList149=abstractDeclaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList149.getTree()); } break; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typealiasTarget" public static class typealiasAlias_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typealiasAlias" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:569:1: typealiasAlias : ( abstractDeclaratorList | declarationSpecifiers ( abstractDeclaratorList )? ); public final CTFParser.typealiasAlias_return typealiasAlias() throws RecognitionException { CTFParser.typealiasAlias_return retval = new CTFParser.typealiasAlias_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope abstractDeclaratorList150 =null; ParserRuleReturnScope declarationSpecifiers151 =null; ParserRuleReturnScope abstractDeclaratorList152 =null; typealiasAliasOn(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:576:3: ( abstractDeclaratorList | declarationSpecifiers ( abstractDeclaratorList )? ) int alt51=2; switch ( input.LA(1) ) { case LPAREN: case POINTER: { alt51=1; } break; case IDENTIFIER: { int LA51_2 = input.LA(2); if ( (!(((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))))) ) { alt51=1; } else if ( ((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))) ) { alt51=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 51, 2, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case TYPEDEFTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt51=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 51, 0, input); throw nvae; } switch (alt51) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:576:5: abstractDeclaratorList { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias3055); abstractDeclaratorList150=abstractDeclaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList150.getTree()); } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:577:5: declarationSpecifiers ( abstractDeclaratorList )? { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_declarationSpecifiers_in_typealiasAlias3061); declarationSpecifiers151=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifiers151.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:577:27: ( abstractDeclaratorList )? int alt50=2; int LA50_0 = input.LA(1); if ( (LA50_0==IDENTIFIER||LA50_0==LPAREN||LA50_0==POINTER) ) { alt50=1; } switch (alt50) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:577:27: abstractDeclaratorList { pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias3063); abstractDeclaratorList152=abstractDeclaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList152.getTree()); } break; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } if ( state.backtracking==0 ) { typealiasAliasOff(); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typealiasAlias" public static class typealiasDecl_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "typealiasDecl" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:580:1: typealiasDecl : TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) ; public final CTFParser.typealiasDecl_return typealiasDecl() throws RecognitionException { CTFParser.typealiasDecl_return retval = new CTFParser.typealiasDecl_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token TYPEALIASTOK153=null; Token TYPE_ASSIGNMENT155=null; ParserRuleReturnScope typealiasTarget154 =null; ParserRuleReturnScope typealiasAlias156 =null; CommonTree TYPEALIASTOK153_tree=null; CommonTree TYPE_ASSIGNMENT155_tree=null; RewriteRuleTokenStream stream_TYPE_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token TYPE_ASSIGNMENT"); RewriteRuleTokenStream stream_TYPEALIASTOK=new RewriteRuleTokenStream(adaptor,"token TYPEALIASTOK"); RewriteRuleSubtreeStream stream_typealiasAlias=new RewriteRuleSubtreeStream(adaptor,"rule typealiasAlias"); RewriteRuleSubtreeStream stream_typealiasTarget=new RewriteRuleSubtreeStream(adaptor,"rule typealiasTarget"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:581:3: ( TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:581:5: TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias { TYPEALIASTOK153=(Token)match(input,TYPEALIASTOK,FOLLOW_TYPEALIASTOK_in_typealiasDecl3077); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TYPEALIASTOK.add(TYPEALIASTOK153); pushFollow(FOLLOW_typealiasTarget_in_typealiasDecl3079); typealiasTarget154=typealiasTarget(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typealiasTarget.add(typealiasTarget154.getTree()); TYPE_ASSIGNMENT155=(Token)match(input,TYPE_ASSIGNMENT,FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3081); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TYPE_ASSIGNMENT.add(TYPE_ASSIGNMENT155); pushFollow(FOLLOW_typealiasAlias_in_typealiasDecl3083); typealiasAlias156=typealiasAlias(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typealiasAlias.add(typealiasAlias156.getTree()); // AST REWRITE // elements: typealiasTarget, typealiasAlias // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 582:7: -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:582:10: ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEALIAS, "TYPEALIAS"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:583:14: ^( TYPEALIAS_TARGET typealiasTarget ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEALIAS_TARGET, "TYPEALIAS_TARGET"), root_2); adaptor.addChild(root_2, stream_typealiasTarget.nextTree()); adaptor.addChild(root_1, root_2); } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:584:14: ^( TYPEALIAS_ALIAS typealiasAlias ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEALIAS_ALIAS, "TYPEALIAS_ALIAS"), root_2); adaptor.addChild(root_2, stream_typealiasAlias.nextTree()); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "typealiasDecl" public static class ctfKeyword_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfKeyword" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:590:1: ctfKeyword : ( ALIGNTOK | EVENTTOK | SIGNEDTOK | STRINGTOK ); public final CTFParser.ctfKeyword_return ctfKeyword() throws RecognitionException { CTFParser.ctfKeyword_return retval = new CTFParser.ctfKeyword_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token set157=null; CommonTree set157_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:591:3: ( ALIGNTOK | EVENTTOK | SIGNEDTOK | STRINGTOK ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g: { root_0 = (CommonTree)adaptor.nil(); set157=input.LT(1); if ( input.LA(1)==ALIGNTOK||input.LA(1)==EVENTTOK||input.LA(1)==SIGNEDTOK||input.LA(1)==STRINGTOK ) { input.consume(); if ( state.backtracking==0 ) adaptor.addChild(root_0, (CommonTree)adaptor.create(set157)); state.errorRecovery=false; state.failed=false; } else { if (state.backtracking>0) {state.failed=true; return retval;} MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfKeyword" public static class ctfSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:597:1: ctfSpecifier : ( ctfSpecifierHead ctfBody -> ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION typealiasDecl ) ); public final CTFParser.ctfSpecifier_return ctfSpecifier() throws RecognitionException { CTFParser.ctfSpecifier_return retval = new CTFParser.ctfSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; ParserRuleReturnScope ctfSpecifierHead158 =null; ParserRuleReturnScope ctfBody159 =null; ParserRuleReturnScope typealiasDecl160 =null; RewriteRuleSubtreeStream stream_typealiasDecl=new RewriteRuleSubtreeStream(adaptor,"rule typealiasDecl"); RewriteRuleSubtreeStream stream_ctfSpecifierHead=new RewriteRuleSubtreeStream(adaptor,"rule ctfSpecifierHead"); RewriteRuleSubtreeStream stream_ctfBody=new RewriteRuleSubtreeStream(adaptor,"rule ctfBody"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:599:3: ( ctfSpecifierHead ctfBody -> ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION typealiasDecl ) ) int alt52=2; int LA52_0 = input.LA(1); if ( (LA52_0==CLOCKTOK||LA52_0==ENVTOK||LA52_0==EVENTTOK||LA52_0==STREAMTOK||LA52_0==TRACETOK) ) { alt52=1; } else if ( (LA52_0==TYPEALIASTOK) ) { alt52=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 52, 0, input); throw nvae; } switch (alt52) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:599:5: ctfSpecifierHead ctfBody { pushFollow(FOLLOW_ctfSpecifierHead_in_ctfSpecifier3183); ctfSpecifierHead158=ctfSpecifierHead(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfSpecifierHead.add(ctfSpecifierHead158.getTree()); pushFollow(FOLLOW_ctfBody_in_ctfSpecifier3185); ctfBody159=ctfBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody159.getTree()); // AST REWRITE // elements: ctfSpecifierHead, ctfBody // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 599:30: -> ^( ctfSpecifierHead ctfBody ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:599:33: ^( ctfSpecifierHead ctfBody ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot(stream_ctfSpecifierHead.nextNode(), root_1); adaptor.addChild(root_1, stream_ctfBody.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:601:5: typealiasDecl { pushFollow(FOLLOW_typealiasDecl_in_ctfSpecifier3202); typealiasDecl160=typealiasDecl(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typealiasDecl.add(typealiasDecl160.getTree()); // AST REWRITE // elements: typealiasDecl // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 601:19: -> ^( DECLARATION typealiasDecl ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:601:22: ^( DECLARATION typealiasDecl ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(DECLARATION, "DECLARATION"), root_1); adaptor.addChild(root_1, stream_typealiasDecl.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfSpecifier" public static class ctfSpecifierHead_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfSpecifierHead" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:604:1: ctfSpecifierHead : ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK ); public final CTFParser.ctfSpecifierHead_return ctfSpecifierHead() throws RecognitionException { CTFParser.ctfSpecifierHead_return retval = new CTFParser.ctfSpecifierHead_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token EVENTTOK161=null; Token STREAMTOK162=null; Token TRACETOK163=null; Token ENVTOK164=null; Token CLOCKTOK165=null; CommonTree EVENTTOK161_tree=null; CommonTree STREAMTOK162_tree=null; CommonTree TRACETOK163_tree=null; CommonTree ENVTOK164_tree=null; CommonTree CLOCKTOK165_tree=null; RewriteRuleTokenStream stream_ENVTOK=new RewriteRuleTokenStream(adaptor,"token ENVTOK"); RewriteRuleTokenStream stream_TRACETOK=new RewriteRuleTokenStream(adaptor,"token TRACETOK"); RewriteRuleTokenStream stream_STREAMTOK=new RewriteRuleTokenStream(adaptor,"token STREAMTOK"); RewriteRuleTokenStream stream_CLOCKTOK=new RewriteRuleTokenStream(adaptor,"token CLOCKTOK"); RewriteRuleTokenStream stream_EVENTTOK=new RewriteRuleTokenStream(adaptor,"token EVENTTOK"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:605:3: ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK ) int alt53=5; switch ( input.LA(1) ) { case EVENTTOK: { alt53=1; } break; case STREAMTOK: { alt53=2; } break; case TRACETOK: { alt53=3; } break; case ENVTOK: { alt53=4; } break; case CLOCKTOK: { alt53=5; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 53, 0, input); throw nvae; } switch (alt53) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:605:5: EVENTTOK { EVENTTOK161=(Token)match(input,EVENTTOK,FOLLOW_EVENTTOK_in_ctfSpecifierHead3223); if (state.failed) return retval; if ( state.backtracking==0 ) stream_EVENTTOK.add(EVENTTOK161); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 605:14: -> EVENT { adaptor.addChild(root_0, (CommonTree)adaptor.create(EVENT, "EVENT")); } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:606:5: STREAMTOK { STREAMTOK162=(Token)match(input,STREAMTOK,FOLLOW_STREAMTOK_in_ctfSpecifierHead3233); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STREAMTOK.add(STREAMTOK162); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 606:15: -> STREAM { adaptor.addChild(root_0, (CommonTree)adaptor.create(STREAM, "STREAM")); } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:607:5: TRACETOK { TRACETOK163=(Token)match(input,TRACETOK,FOLLOW_TRACETOK_in_ctfSpecifierHead3243); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TRACETOK.add(TRACETOK163); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 607:14: -> TRACE { adaptor.addChild(root_0, (CommonTree)adaptor.create(TRACE, "TRACE")); } retval.tree = root_0; } } break; case 4 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:608:5: ENVTOK { ENVTOK164=(Token)match(input,ENVTOK,FOLLOW_ENVTOK_in_ctfSpecifierHead3253); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ENVTOK.add(ENVTOK164); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 608:12: -> ENV { adaptor.addChild(root_0, (CommonTree)adaptor.create(ENV, "ENV")); } retval.tree = root_0; } } break; case 5 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:609:5: CLOCKTOK { CLOCKTOK165=(Token)match(input,CLOCKTOK,FOLLOW_CLOCKTOK_in_ctfSpecifierHead3263); if (state.failed) return retval; if ( state.backtracking==0 ) stream_CLOCKTOK.add(CLOCKTOK165); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 609:14: -> CLOCK { adaptor.addChild(root_0, (CommonTree)adaptor.create(CLOCK, "CLOCK")); } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfSpecifierHead" public static class ctfTypeSpecifier_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfTypeSpecifier" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:612:1: ctfTypeSpecifier : ( FLOATINGPOINTTOK ctfBody -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) ); public final CTFParser.ctfTypeSpecifier_return ctfTypeSpecifier() throws RecognitionException { CTFParser.ctfTypeSpecifier_return retval = new CTFParser.ctfTypeSpecifier_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token FLOATINGPOINTTOK166=null; Token INTEGERTOK168=null; Token STRINGTOK170=null; ParserRuleReturnScope ctfBody167 =null; ParserRuleReturnScope ctfBody169 =null; ParserRuleReturnScope ctfBody171 =null; CommonTree FLOATINGPOINTTOK166_tree=null; CommonTree INTEGERTOK168_tree=null; CommonTree STRINGTOK170_tree=null; RewriteRuleTokenStream stream_FLOATINGPOINTTOK=new RewriteRuleTokenStream(adaptor,"token FLOATINGPOINTTOK"); RewriteRuleTokenStream stream_INTEGERTOK=new RewriteRuleTokenStream(adaptor,"token INTEGERTOK"); RewriteRuleTokenStream stream_STRINGTOK=new RewriteRuleTokenStream(adaptor,"token STRINGTOK"); RewriteRuleSubtreeStream stream_ctfBody=new RewriteRuleSubtreeStream(adaptor,"rule ctfBody"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:614:3: ( FLOATINGPOINTTOK ctfBody -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) ) int alt55=3; switch ( input.LA(1) ) { case FLOATINGPOINTTOK: { alt55=1; } break; case INTEGERTOK: { alt55=2; } break; case STRINGTOK: { alt55=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 55, 0, input); throw nvae; } switch (alt55) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:614:5: FLOATINGPOINTTOK ctfBody { FLOATINGPOINTTOK166=(Token)match(input,FLOATINGPOINTTOK,FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3286); if (state.failed) return retval; if ( state.backtracking==0 ) stream_FLOATINGPOINTTOK.add(FLOATINGPOINTTOK166); pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3288); ctfBody167=ctfBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody167.getTree()); // AST REWRITE // elements: ctfBody // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 614:30: -> ^( FLOATING_POINT ( ctfBody )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:614:33: ^( FLOATING_POINT ( ctfBody )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FLOATING_POINT, "FLOATING_POINT"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:614:50: ( ctfBody )? if ( stream_ctfBody.hasNext() ) { adaptor.addChild(root_1, stream_ctfBody.nextTree()); } stream_ctfBody.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:615:5: INTEGERTOK ctfBody { INTEGERTOK168=(Token)match(input,INTEGERTOK,FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3303); if (state.failed) return retval; if ( state.backtracking==0 ) stream_INTEGERTOK.add(INTEGERTOK168); pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3305); ctfBody169=ctfBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody169.getTree()); // AST REWRITE // elements: ctfBody // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 615:24: -> ^( INTEGER ( ctfBody )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:615:27: ^( INTEGER ( ctfBody )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INTEGER, "INTEGER"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:615:37: ( ctfBody )? if ( stream_ctfBody.hasNext() ) { adaptor.addChild(root_1, stream_ctfBody.nextTree()); } stream_ctfBody.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:616:5: STRINGTOK ( ctfBody )? { STRINGTOK170=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_ctfTypeSpecifier3320); if (state.failed) return retval; if ( state.backtracking==0 ) stream_STRINGTOK.add(STRINGTOK170); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:616:15: ( ctfBody )? int alt54=2; int LA54_0 = input.LA(1); if ( (LA54_0==LCURL) ) { alt54=1; } switch (alt54) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:616:15: ctfBody { pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3322); ctfBody171=ctfBody(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody171.getTree()); } break; } // AST REWRITE // elements: ctfBody // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 616:24: -> ^( STRING ( ctfBody )? ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:616:27: ^( STRING ( ctfBody )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STRING, "STRING"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:616:36: ( ctfBody )? if ( stream_ctfBody.hasNext() ) { adaptor.addChild(root_1, stream_ctfBody.nextTree()); } stream_ctfBody.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfTypeSpecifier" public static class ctfBody_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfBody" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:619:1: ctfBody : LCURL ( ctfAssignmentExpressionList )? RCURL -> ( ctfAssignmentExpressionList )? ; public final CTFParser.ctfBody_return ctfBody() throws RecognitionException { Symbols_stack.push(new Symbols_scope()); CTFParser.ctfBody_return retval = new CTFParser.ctfBody_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LCURL172=null; Token RCURL174=null; ParserRuleReturnScope ctfAssignmentExpressionList173 =null; CommonTree LCURL172_tree=null; CommonTree RCURL174_tree=null; RewriteRuleTokenStream stream_LCURL=new RewriteRuleTokenStream(adaptor,"token LCURL"); RewriteRuleTokenStream stream_RCURL=new RewriteRuleTokenStream(adaptor,"token RCURL"); RewriteRuleSubtreeStream stream_ctfAssignmentExpressionList=new RewriteRuleSubtreeStream(adaptor,"rule ctfAssignmentExpressionList"); Symbols_stack.peek().types = new HashSet<String>(); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:624:3: ( LCURL ( ctfAssignmentExpressionList )? RCURL -> ( ctfAssignmentExpressionList )? ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:624:5: LCURL ( ctfAssignmentExpressionList )? RCURL { LCURL172=(Token)match(input,LCURL,FOLLOW_LCURL_in_ctfBody3355); if (state.failed) return retval; if ( state.backtracking==0 ) stream_LCURL.add(LCURL172); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:624:11: ( ctfAssignmentExpressionList )? int alt56=2; int LA56_0 = input.LA(1); if ( (LA56_0==ALIGNTOK||(LA56_0 >= BOOLTOK && LA56_0 <= CHARTOK)||LA56_0==CLOCKTOK||(LA56_0 >= COMPLEXTOK && LA56_0 <= DECIMAL_LITERAL)||LA56_0==DOUBLETOK||(LA56_0 >= ENUMTOK && LA56_0 <= ENVTOK)||(LA56_0 >= EVENTTOK && LA56_0 <= FLOATTOK)||LA56_0==HEX_LITERAL||(LA56_0 >= IDENTIFIER && LA56_0 <= IMAGINARYTOK)||LA56_0==INTEGERTOK||LA56_0==INTTOK||LA56_0==LONGTOK||LA56_0==OCTAL_LITERAL||(LA56_0 >= SHORTTOK && LA56_0 <= SIGNEDTOK)||LA56_0==STREAMTOK||LA56_0==STRINGTOK||(LA56_0 >= STRING_LITERAL && LA56_0 <= STRUCTTOK)||(LA56_0 >= TRACETOK && LA56_0 <= TYPEDEFTOK)||(LA56_0 >= UNSIGNEDTOK && LA56_0 <= VOIDTOK)) ) { alt56=1; } switch (alt56) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:624:11: ctfAssignmentExpressionList { pushFollow(FOLLOW_ctfAssignmentExpressionList_in_ctfBody3357); ctfAssignmentExpressionList173=ctfAssignmentExpressionList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_ctfAssignmentExpressionList.add(ctfAssignmentExpressionList173.getTree()); } break; } RCURL174=(Token)match(input,RCURL,FOLLOW_RCURL_in_ctfBody3360); if (state.failed) return retval; if ( state.backtracking==0 ) stream_RCURL.add(RCURL174); // AST REWRITE // elements: ctfAssignmentExpressionList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 624:46: -> ( ctfAssignmentExpressionList )? { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:624:49: ( ctfAssignmentExpressionList )? if ( stream_ctfAssignmentExpressionList.hasNext() ) { adaptor.addChild(root_0, stream_ctfAssignmentExpressionList.nextTree()); } stream_ctfAssignmentExpressionList.reset(); } retval.tree = root_0; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving Symbols_stack.pop(); } return retval; } // $ANTLR end "ctfBody" public static class ctfAssignmentExpressionList_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfAssignmentExpressionList" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:627:1: ctfAssignmentExpressionList : ( ctfAssignmentExpression TERM !)+ ; public final CTFParser.ctfAssignmentExpressionList_return ctfAssignmentExpressionList() throws RecognitionException { CTFParser.ctfAssignmentExpressionList_return retval = new CTFParser.ctfAssignmentExpressionList_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token TERM176=null; ParserRuleReturnScope ctfAssignmentExpression175 =null; CommonTree TERM176_tree=null; try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:628:3: ( ( ctfAssignmentExpression TERM !)+ ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:628:5: ( ctfAssignmentExpression TERM !)+ { root_0 = (CommonTree)adaptor.nil(); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:628:5: ( ctfAssignmentExpression TERM !)+ int cnt57=0; loop57: while (true) { int alt57=2; int LA57_0 = input.LA(1); if ( (LA57_0==ALIGNTOK||(LA57_0 >= BOOLTOK && LA57_0 <= CHARTOK)||LA57_0==CLOCKTOK||(LA57_0 >= COMPLEXTOK && LA57_0 <= DECIMAL_LITERAL)||LA57_0==DOUBLETOK||(LA57_0 >= ENUMTOK && LA57_0 <= ENVTOK)||(LA57_0 >= EVENTTOK && LA57_0 <= FLOATTOK)||LA57_0==HEX_LITERAL||(LA57_0 >= IDENTIFIER && LA57_0 <= IMAGINARYTOK)||LA57_0==INTEGERTOK||LA57_0==INTTOK||LA57_0==LONGTOK||LA57_0==OCTAL_LITERAL||(LA57_0 >= SHORTTOK && LA57_0 <= SIGNEDTOK)||LA57_0==STREAMTOK||LA57_0==STRINGTOK||(LA57_0 >= STRING_LITERAL && LA57_0 <= STRUCTTOK)||(LA57_0 >= TRACETOK && LA57_0 <= TYPEDEFTOK)||(LA57_0 >= UNSIGNEDTOK && LA57_0 <= VOIDTOK)) ) { alt57=1; } switch (alt57) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:628:6: ctfAssignmentExpression TERM ! { pushFollow(FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3379); ctfAssignmentExpression175=ctfAssignmentExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfAssignmentExpression175.getTree()); TERM176=(Token)match(input,TERM,FOLLOW_TERM_in_ctfAssignmentExpressionList3381); if (state.failed) return retval; } break; default : if ( cnt57 >= 1 ) break loop57; if (state.backtracking>0) {state.failed=true; return retval;} EarlyExitException eee = new EarlyExitException(57, input); throw eee; } cnt57++; } } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfAssignmentExpressionList" public static class ctfAssignmentExpression_return extends ParserRuleReturnScope { CommonTree tree; @Override public CommonTree getTree() { return tree; } }; // $ANTLR start "ctfAssignmentExpression" // org/eclipse/tracecompass/ctf/parser/CTFParser.g:631:1: ctfAssignmentExpression : (left= unaryExpression (assignment= ASSIGNMENT right1= unaryExpression -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) | ( declarationSpecifiers {...}? declaratorList ) -> ^( TYPEDEF declaratorList declarationSpecifiers ) | typealiasDecl ); public final CTFParser.ctfAssignmentExpression_return ctfAssignmentExpression() throws RecognitionException { CTFParser.ctfAssignmentExpression_return retval = new CTFParser.ctfAssignmentExpression_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token assignment=null; Token type_assignment=null; ParserRuleReturnScope left =null; ParserRuleReturnScope right1 =null; ParserRuleReturnScope right2 =null; ParserRuleReturnScope declarationSpecifiers177 =null; ParserRuleReturnScope declaratorList178 =null; ParserRuleReturnScope typealiasDecl179 =null; CommonTree assignment_tree=null; CommonTree type_assignment_tree=null; RewriteRuleTokenStream stream_TYPE_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token TYPE_ASSIGNMENT"); RewriteRuleTokenStream stream_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token ASSIGNMENT"); RewriteRuleSubtreeStream stream_declaratorList=new RewriteRuleSubtreeStream(adaptor,"rule declaratorList"); RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); try { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:637:3: (left= unaryExpression (assignment= ASSIGNMENT right1= unaryExpression -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) | ( declarationSpecifiers {...}? declaratorList ) -> ^( TYPEDEF declaratorList declarationSpecifiers ) | typealiasDecl ) int alt59=3; switch ( input.LA(1) ) { case IDENTIFIER: { int LA59_1 = input.LA(2); if ( ((LA59_1 >= ARROW && LA59_1 <= ASSIGNMENT)||LA59_1==DOT||LA59_1==OPENBRAC||LA59_1==TYPE_ASSIGNMENT) ) { alt59=1; } else if ( (LA59_1==BOOLTOK||LA59_1==CHARTOK||(LA59_1 >= COMPLEXTOK && LA59_1 <= CONSTTOK)||LA59_1==DOUBLETOK||LA59_1==ENUMTOK||(LA59_1 >= FLOATINGPOINTTOK && LA59_1 <= FLOATTOK)||(LA59_1 >= IDENTIFIER && LA59_1 <= IMAGINARYTOK)||LA59_1==INTEGERTOK||LA59_1==INTTOK||LA59_1==LONGTOK||LA59_1==POINTER||LA59_1==SHORTTOK||LA59_1==SIGNEDTOK||LA59_1==STRINGTOK||LA59_1==STRUCTTOK||LA59_1==TYPEDEFTOK||(LA59_1 >= UNSIGNEDTOK && LA59_1 <= VOIDTOK)) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { alt59=2; } } break; case ALIGNTOK: case CHARACTER_LITERAL: case CLOCKTOK: case DECIMAL_LITERAL: case ENVTOK: case EVENTTOK: case HEX_LITERAL: case OCTAL_LITERAL: case SIGN: case STREAMTOK: case STRING_LITERAL: case TRACETOK: { alt59=1; } break; case SIGNEDTOK: { switch ( input.LA(2) ) { case ARROW: case ASSIGNMENT: case DOT: case OPENBRAC: case TYPE_ASSIGNMENT: { alt59=1; } break; case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IDENTIFIER: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case POINTER: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt59=2; } break; case TYPEDEFTOK: { alt59=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 59, 3, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LONGTOK: case SHORTTOK: case STRUCTTOK: case TYPEDEFTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt59=2; } break; case STRINGTOK: { switch ( input.LA(2) ) { case ARROW: case ASSIGNMENT: case DOT: case OPENBRAC: case TYPE_ASSIGNMENT: { alt59=1; } break; case BOOLTOK: case CHARTOK: case COMPLEXTOK: case CONSTTOK: case DOUBLETOK: case ENUMTOK: case FLOATINGPOINTTOK: case FLOATTOK: case IDENTIFIER: case IMAGINARYTOK: case INTEGERTOK: case INTTOK: case LCURL: case LONGTOK: case POINTER: case SHORTTOK: case SIGNEDTOK: case STRINGTOK: case STRUCTTOK: case UNSIGNEDTOK: case VARIANTTOK: case VOIDTOK: { alt59=2; } break; case TYPEDEFTOK: { alt59=2; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} int nvaeMark = input.mark(); try { input.consume(); NoViableAltException nvae = new NoViableAltException("", 59, 5, input); throw nvae; } finally { input.rewind(nvaeMark); } } } break; case TYPEALIASTOK: { alt59=3; } break; default: if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 59, 0, input); throw nvae; } switch (alt59) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:637:5: left= unaryExpression (assignment= ASSIGNMENT right1= unaryExpression -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) { pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3404); left=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_unaryExpression.add(left.getTree()); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:638:7: (assignment= ASSIGNMENT right1= unaryExpression -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) |type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) ) int alt58=2; int LA58_0 = input.LA(1); if ( (LA58_0==ASSIGNMENT) ) { alt58=1; } else if ( (LA58_0==TYPE_ASSIGNMENT) ) { alt58=2; } else { if (state.backtracking>0) {state.failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("", 58, 0, input); throw nvae; } switch (alt58) { case 1 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:638:9: assignment= ASSIGNMENT right1= unaryExpression { assignment=(Token)match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3416); if (state.failed) return retval; if ( state.backtracking==0 ) stream_ASSIGNMENT.add(assignment); pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3420); right1=unaryExpression(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_unaryExpression.add(right1.getTree()); // AST REWRITE // elements: right1, left // token labels: // rule labels: right1, left, retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_right1=new RewriteRuleSubtreeStream(adaptor,"rule right1",right1!=null?right1.getTree():null); RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.getTree():null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 639:11: -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:639:14: ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_EXPRESSION_VAL, "CTF_EXPRESSION_VAL"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:640:18: ^( CTF_LEFT $left) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_LEFT, "CTF_LEFT"), root_2); adaptor.addChild(root_2, stream_left.nextTree()); adaptor.addChild(root_1, root_2); } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:641:18: ^( CTF_RIGHT $right1) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_RIGHT, "CTF_RIGHT"), root_2); adaptor.addChild(root_2, stream_right1.nextTree()); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:642:9: type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier { type_assignment=(Token)match(input,TYPE_ASSIGNMENT,FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3496); if (state.failed) return retval; if ( state.backtracking==0 ) stream_TYPE_ASSIGNMENT.add(type_assignment); pushFollow(FOLLOW_typeSpecifier_in_ctfAssignmentExpression3500); right2=typeSpecifier(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_typeSpecifier.add(right2.getTree()); // AST REWRITE // elements: left, right2 // token labels: // rule labels: left, right2, retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.getTree():null); RewriteRuleSubtreeStream stream_right2=new RewriteRuleSubtreeStream(adaptor,"rule right2",right2!=null?right2.getTree():null); RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 643:11: -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:643:14: ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_EXPRESSION_TYPE, "CTF_EXPRESSION_TYPE"), root_1); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:644:18: ^( CTF_LEFT $left) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_LEFT, "CTF_LEFT"), root_2); adaptor.addChild(root_2, stream_left.nextTree()); adaptor.addChild(root_1, root_2); } // org/eclipse/tracecompass/ctf/parser/CTFParser.g:645:18: ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CTF_RIGHT, "CTF_RIGHT"), root_2); // org/eclipse/tracecompass/ctf/parser/CTFParser.g:645:30: ^( TYPE_SPECIFIER_LIST $right2) { CommonTree root_3 = (CommonTree)adaptor.nil(); root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE_SPECIFIER_LIST, "TYPE_SPECIFIER_LIST"), root_3); adaptor.addChild(root_3, stream_right2.nextTree()); adaptor.addChild(root_2, root_3); } adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; } } break; case 2 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:647:5: ( declarationSpecifiers {...}? declaratorList ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:647:5: ( declarationSpecifiers {...}? declaratorList ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:647:6: declarationSpecifiers {...}? declaratorList { pushFollow(FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3583); declarationSpecifiers177=declarationSpecifiers(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers177.getTree()); if ( !((inTypedef())) ) { if (state.backtracking>0) {state.failed=true; return retval;} throw new FailedPredicateException(input, "ctfAssignmentExpression", "inTypedef()"); } pushFollow(FOLLOW_declaratorList_in_ctfAssignmentExpression3587); declaratorList178=declaratorList(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList178.getTree()); } // AST REWRITE // elements: declarationSpecifiers, declaratorList // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); root_0 = (CommonTree)adaptor.nil(); // 648:7: -> ^( TYPEDEF declaratorList declarationSpecifiers ) { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:648:10: ^( TYPEDEF declaratorList declarationSpecifiers ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_1); adaptor.addChild(root_1, stream_declaratorList.nextTree()); adaptor.addChild(root_1, stream_declarationSpecifiers.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } break; case 3 : // org/eclipse/tracecompass/ctf/parser/CTFParser.g:649:5: typealiasDecl { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_typealiasDecl_in_ctfAssignmentExpression3610); typealiasDecl179=typealiasDecl(); state._fsp--; if (state.failed) return retval; if ( state.backtracking==0 ) adaptor.addChild(root_0, typealiasDecl179.getTree()); } break; } retval.stop = input.LT(-1); if ( state.backtracking==0 ) { retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } if ( state.backtracking==0 ) { if (inTypedef()) { typedefOff(); } } } catch (RecognitionException e) { throw e; } finally { // do for sure before leaving } return retval; } // $ANTLR end "ctfAssignmentExpression" // $ANTLR start synpred1_CTFParser public final void synpred1_CTFParser_fragment() throws RecognitionException { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:206:5: ( IDENTIFIER ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:206:6: IDENTIFIER { match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred1_CTFParser553); if (state.failed) return; } } // $ANTLR end synpred1_CTFParser // $ANTLR start synpred2_CTFParser public final void synpred2_CTFParser_fragment() throws RecognitionException { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:208:5: ( ctfKeyword ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:208:6: ctfKeyword { pushFollow(FOLLOW_ctfKeyword_in_synpred2_CTFParser579); ctfKeyword(); state._fsp--; if (state.failed) return; } } // $ANTLR end synpred2_CTFParser // $ANTLR start synpred3_CTFParser public final void synpred3_CTFParser_fragment() throws RecognitionException { // org/eclipse/tracecompass/ctf/parser/CTFParser.g:209:5: ( STRING_LITERAL ) // org/eclipse/tracecompass/ctf/parser/CTFParser.g:209:6: STRING_LITERAL { match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_synpred3_CTFParser599); if (state.failed) return; } } // $ANTLR end synpred3_CTFParser // Delegated rules public final boolean synpred1_CTFParser() { state.backtracking++; int start = input.mark(); try { synpred1_CTFParser_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !state.failed; input.rewind(start); state.backtracking--; state.failed=false; return success; } public final boolean synpred3_CTFParser() { state.backtracking++; int start = input.mark(); try { synpred3_CTFParser_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !state.failed; input.rewind(start); state.backtracking--; state.failed=false; return success; } public final boolean synpred2_CTFParser() { state.backtracking++; int start = input.mark(); try { synpred2_CTFParser_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !state.failed; input.rewind(start); state.backtracking--; state.failed=false; return success; } protected DFA24 dfa24 = new DFA24(this); static final String DFA24_eotS = "\10\uffff"; static final String DFA24_eofS = "\10\uffff"; static final String DFA24_minS = "\1\45\1\23\1\0\1\23\1\0\2\uffff\1\0"; static final String DFA24_maxS = "\2\71\1\0\1\71\1\0\2\uffff\1\0"; static final String DFA24_acceptS = "\5\uffff\1\1\1\2\1\uffff"; static final String DFA24_specialS = "\2\uffff\1\0\1\uffff\1\1\2\uffff\1\2}>"; static final String[] DFA24_transitionS = { "\1\2\23\uffff\1\1", "\1\3\21\uffff\1\4\23\uffff\1\1", "\1\uffff", "\1\3\21\uffff\1\7\23\uffff\1\1", "\1\uffff", "", "", "\1\uffff" }; static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS); static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS); static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS); static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS); static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS); static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS); static final short[][] DFA24_transition; static { int numStates = DFA24_transitionS.length; DFA24_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]); } } protected class DFA24 extends DFA { public DFA24(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 24; this.eot = DFA24_eot; this.eof = DFA24_eof; this.min = DFA24_min; this.max = DFA24_max; this.accept = DFA24_accept; this.special = DFA24_special; this.transition = DFA24_transition; } @Override public String getDescription() { return "371:10: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) )"; } @Override public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream)_input; int _s = s; switch ( s ) { case 0 : int LA24_2 = input.LA(1); int index24_2 = input.index(); input.rewind(); s = -1; if ( ((inTypedef())) ) {s = 5;} else if ( (true) ) {s = 6;} input.seek(index24_2); if ( s>=0 ) return s; break; case 1 : int LA24_4 = input.LA(1); int index24_4 = input.index(); input.rewind(); s = -1; if ( ((inTypedef())) ) {s = 5;} else if ( (true) ) {s = 6;} input.seek(index24_4); if ( s>=0 ) return s; break; case 2 : int LA24_7 = input.LA(1); int index24_7 = input.index(); input.rewind(); s = -1; if ( ((inTypedef())) ) {s = 5;} else if ( (true) ) {s = 6;} input.seek(index24_7); if ( s>=0 ) return s; break; } if (state.backtracking>0) {state.failed=true; return -1;} NoViableAltException nvae = new NoViableAltException(getDescription(), 24, _s, input); error(nvae); throw nvae; } } public static final BitSet FOLLOW_declaration_in_parse442 = new BitSet(new long[]{0xA0002560ED0C1500L,0x000000000000E74AL}); public static final BitSet FOLLOW_EOF_in_parse445 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SIGN_in_numberLiteral467 = new BitSet(new long[]{0x4020000800100000L}); public static final BitSet FOLLOW_HEX_LITERAL_in_numberLiteral478 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DECIMAL_LITERAL_in_numberLiteral499 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OCTAL_LITERAL_in_numberLiteral520 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression558 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfKeyword_in_primaryExpression584 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression604 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_numberLiteral_in_primaryExpression629 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumConstant_in_primaryExpression635 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHARACTER_LITERAL_in_primaryExpression641 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPENBRAC_in_postfixExpressionSuffix654 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_postfixExpressionSuffix656 = new BitSet(new long[]{0x0000000000002000L}); public static final BitSet FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix658 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOT_in_postfixExpressionSuffix668 = new BitSet(new long[]{0x0000002000000000L}); public static final BitSet FOLLOW_ARROW_in_postfixExpressionSuffix674 = new BitSet(new long[]{0x0000002000000000L}); public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpressionSuffix677 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOT_in_postfixCtfExpression712 = new BitSet(new long[]{0x0000000028001000L,0x0000000000000102L}); public static final BitSet FOLLOW_ctfSpecifierHead_in_postfixCtfExpression715 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_primaryExpression_in_postfixExpression748 = new BitSet(new long[]{0x0100000000400022L}); public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression750 = new BitSet(new long[]{0x0100000000400022L}); public static final BitSet FOLLOW_ctfSpecifierHead_in_postfixExpression759 = new BitSet(new long[]{0x0100000000400020L}); public static final BitSet FOLLOW_postfixCtfExpression_in_postfixExpression761 = new BitSet(new long[]{0x0100000000400020L}); public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression764 = new BitSet(new long[]{0x0100000000400022L}); public static final BitSet FOLLOW_postfixExpression_in_unaryExpression780 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRING_LITERAL_in_enumConstant797 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_enumConstant811 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfKeyword_in_enumConstant825 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declarationSpecifiers_in_declaration856 = new BitSet(new long[]{0x0200002000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_declaratorList_in_declaration858 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_TERM_in_declaration861 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfSpecifier_in_declaration929 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_TERM_in_declaration931 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifiers969 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E448L}); public static final BitSet FOLLOW_typeQualifier_in_declarationSpecifiers979 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E448L}); public static final BitSet FOLLOW_typeSpecifier_in_declarationSpecifiers989 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E448L}); public static final BitSet FOLLOW_declarator_in_declaratorList1019 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_SEPARATOR_in_declaratorList1022 = new BitSet(new long[]{0x0200002000000000L}); public static final BitSet FOLLOW_declarator_in_declaratorList1024 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList1054 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_SEPARATOR_in_abstractDeclaratorList1057 = new BitSet(new long[]{0x0200402000000000L}); public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList1059 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1089 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOATTOK_in_typeSpecifier1105 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INTTOK_in_typeSpecifier1111 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONGTOK_in_typeSpecifier1117 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SHORTTOK_in_typeSpecifier1123 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SIGNEDTOK_in_typeSpecifier1129 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_UNSIGNEDTOK_in_typeSpecifier1135 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHARTOK_in_typeSpecifier1141 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOUBLETOK_in_typeSpecifier1147 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_VOIDTOK_in_typeSpecifier1153 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BOOLTOK_in_typeSpecifier1159 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COMPLEXTOK_in_typeSpecifier1165 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IMAGINARYTOK_in_typeSpecifier1171 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_structSpecifier_in_typeSpecifier1177 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_variantSpecifier_in_typeSpecifier1183 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier1189 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfTypeSpecifier_in_typeSpecifier1195 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_typedefName_in_typeSpecifier1205 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CONSTTOK_in_typeQualifier1218 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ALIGNTOK_in_alignAttribute1231 = new BitSet(new long[]{0x0000400000000000L}); public static final BitSet FOLLOW_LPAREN_in_alignAttribute1233 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_alignAttribute1235 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_RPAREN_in_alignAttribute1237 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LCURL_in_structBody1271 = new BitSet(new long[]{0xA4002560C50C0500L,0x000000000000E648L}); public static final BitSet FOLLOW_structOrVariantDeclarationList_in_structBody1273 = new BitSet(new long[]{0x0400000000000000L}); public static final BitSet FOLLOW_RCURL_in_structBody1276 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRUCTTOK_in_structSpecifier1304 = new BitSet(new long[]{0x0000082000000000L}); public static final BitSet FOLLOW_structName_in_structSpecifier1329 = new BitSet(new long[]{0x0000080000000012L}); public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1351 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_structBody_in_structSpecifier1387 = new BitSet(new long[]{0x0000000000000012L}); public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1418 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_structBody_in_structSpecifier1534 = new BitSet(new long[]{0x0000000000000012L}); public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1552 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_structName1618 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1639 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E648L}); public static final BitSet FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1672 = new BitSet(new long[]{0x0200002000000000L}); public static final BitSet FOLLOW_declaratorList_in_structOrVariantDeclaration1713 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1751 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_typealiasDecl_in_structOrVariantDeclaration1810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_TERM_in_structOrVariantDeclaration1822 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_typeQualifier_in_specifierQualifierList1836 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E048L}); public static final BitSet FOLLOW_typeSpecifier_in_specifierQualifierList1840 = new BitSet(new long[]{0xA0002560C50C0502L,0x000000000000E048L}); public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1873 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1876 = new BitSet(new long[]{0x0200002000000000L}); public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1878 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_declarator_in_structOrVariantDeclarator1917 = new BitSet(new long[]{0x0000000000004002L}); public static final BitSet FOLLOW_COLON_in_structOrVariantDeclarator1920 = new BitSet(new long[]{0x4020000800100000L}); public static final BitSet FOLLOW_numberLiteral_in_structOrVariantDeclarator1922 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_VARIANTTOK_in_variantSpecifier1946 = new BitSet(new long[]{0x0000882000000000L}); public static final BitSet FOLLOW_variantName_in_variantSpecifier1964 = new BitSet(new long[]{0x0000880000000000L}); public static final BitSet FOLLOW_variantTag_in_variantSpecifier1994 = new BitSet(new long[]{0x0000080000000002L}); public static final BitSet FOLLOW_variantBody_in_variantSpecifier2020 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_variantBody_in_variantSpecifier2088 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_variantTag_in_variantSpecifier2109 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_variantBody_in_variantSpecifier2111 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_variantBody_in_variantSpecifier2118 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_variantName2150 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LCURL_in_variantBody2181 = new BitSet(new long[]{0xA0002560C50C0500L,0x000000000000E648L}); public static final BitSet FOLLOW_structOrVariantDeclarationList_in_variantBody2183 = new BitSet(new long[]{0x0400000000000000L}); public static final BitSet FOLLOW_RCURL_in_variantBody2185 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LT_in_variantTag2212 = new BitSet(new long[]{0x0000002000000000L}); public static final BitSet FOLLOW_IDENTIFIER_in_variantTag2214 = new BitSet(new long[]{0x0000000100000000L}); public static final BitSet FOLLOW_GT_in_variantTag2216 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ENUMTOK_in_enumSpecifier2237 = new BitSet(new long[]{0x0000082000004000L}); public static final BitSet FOLLOW_enumName_in_enumSpecifier2276 = new BitSet(new long[]{0x0000080000004002L}); public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2308 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_enumBody_in_enumSpecifier2310 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumBody_in_enumSpecifier2340 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2432 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_enumBody_in_enumSpecifier2434 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumBody_in_enumSpecifier2458 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_enumName2502 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LCURL_in_enumBody2523 = new BitSet(new long[]{0x8000002020000010L,0x0000000000000028L}); public static final BitSet FOLLOW_enumeratorList_in_enumBody2525 = new BitSet(new long[]{0x1400000000000000L}); public static final BitSet FOLLOW_SEPARATOR_in_enumBody2527 = new BitSet(new long[]{0x0400000000000000L}); public static final BitSet FOLLOW_RCURL_in_enumBody2530 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COLON_in_enumContainerType2551 = new BitSet(new long[]{0xA0002560C50C0500L,0x000000000000E448L}); public static final BitSet FOLLOW_declarationSpecifiers_in_enumContainerType2553 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enumerator_in_enumeratorList2574 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_SEPARATOR_in_enumeratorList2577 = new BitSet(new long[]{0x8000002020000010L,0x0000000000000028L}); public static final BitSet FOLLOW_enumerator_in_enumeratorList2579 = new BitSet(new long[]{0x1000000000000002L}); public static final BitSet FOLLOW_enumConstant_in_enumerator2605 = new BitSet(new long[]{0x0000000000000042L}); public static final BitSet FOLLOW_enumeratorValue_in_enumerator2607 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ASSIGNMENT_in_enumeratorValue2621 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2625 = new BitSet(new long[]{0x0000000002000002L}); public static final BitSet FOLLOW_ELIPSES_in_enumeratorValue2664 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2668 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_pointer_in_declarator2711 = new BitSet(new long[]{0x0200002000000000L}); public static final BitSet FOLLOW_directDeclarator_in_declarator2714 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_directDeclarator2752 = new BitSet(new long[]{0x0100000000000002L}); public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator2792 = new BitSet(new long[]{0x0100000000000002L}); public static final BitSet FOLLOW_OPENBRAC_in_directDeclaratorSuffix2806 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2808 = new BitSet(new long[]{0x0000000000002000L}); public static final BitSet FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2810 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_unaryExpression_in_directDeclaratorLength2838 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_pointer_in_abstractDeclarator2851 = new BitSet(new long[]{0x0200402000000002L}); public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2854 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2879 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_directAbstractDeclarator2916 = new BitSet(new long[]{0x0100000000000002L}); public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2927 = new BitSet(new long[]{0x0200402000000000L}); public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2929 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2931 = new BitSet(new long[]{0x0100000000000002L}); public static final BitSet FOLLOW_OPENBRAC_in_directAbstractDeclarator2946 = new BitSet(new long[]{0xC020002828103210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_directAbstractDeclarator2948 = new BitSet(new long[]{0x0000000000002000L}); public static final BitSet FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2951 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_POINTER_in_pointer2969 = new BitSet(new long[]{0x0000000000080002L}); public static final BitSet FOLLOW_typeQualifierList_in_pointer2971 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList2994 = new BitSet(new long[]{0x0000000000080002L}); public static final BitSet FOLLOW_IDENTIFIER_in_typedefName3010 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasTarget3027 = new BitSet(new long[]{0x0200402000000002L}); public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasTarget3029 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias3055 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasAlias3061 = new BitSet(new long[]{0x0200402000000002L}); public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias3063 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_TYPEALIASTOK_in_typealiasDecl3077 = new BitSet(new long[]{0xA0002560C50C0500L,0x000000000000E448L}); public static final BitSet FOLLOW_typealiasTarget_in_typealiasDecl3079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L}); public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3081 = new BitSet(new long[]{0xA2006560C50C0500L,0x000000000000E448L}); public static final BitSet FOLLOW_typealiasAlias_in_typealiasDecl3083 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfSpecifierHead_in_ctfSpecifier3183 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_ctfBody_in_ctfSpecifier3185 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_typealiasDecl_in_ctfSpecifier3202 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_EVENTTOK_in_ctfSpecifierHead3223 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STREAMTOK_in_ctfSpecifierHead3233 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_TRACETOK_in_ctfSpecifierHead3243 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ENVTOK_in_ctfSpecifierHead3253 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CLOCKTOK_in_ctfSpecifierHead3263 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3286 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3288 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3303 = new BitSet(new long[]{0x0000080000000000L}); public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3305 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRINGTOK_in_ctfTypeSpecifier3320 = new BitSet(new long[]{0x0000080000000002L}); public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3322 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LCURL_in_ctfBody3355 = new BitSet(new long[]{0xE4202568ED1C1710L,0x000000000000E76AL}); public static final BitSet FOLLOW_ctfAssignmentExpressionList_in_ctfBody3357 = new BitSet(new long[]{0x0400000000000000L}); public static final BitSet FOLLOW_RCURL_in_ctfBody3360 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); public static final BitSet FOLLOW_TERM_in_ctfAssignmentExpressionList3381 = new BitSet(new long[]{0xE0202568ED1C1712L,0x000000000000E76AL}); public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3404 = new BitSet(new long[]{0x0000000000000040L,0x0000000000000800L}); public static final BitSet FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3416 = new BitSet(new long[]{0xC020002828101210L,0x000000000000012AL}); public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3420 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3496 = new BitSet(new long[]{0xA0002560C5040500L,0x000000000000E048L}); public static final BitSet FOLLOW_typeSpecifier_in_ctfAssignmentExpression3500 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3583 = new BitSet(new long[]{0x0200002000000000L}); public static final BitSet FOLLOW_declaratorList_in_ctfAssignmentExpression3587 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_typealiasDecl_in_ctfAssignmentExpression3610 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_synpred1_CTFParser553 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ctfKeyword_in_synpred2_CTFParser579 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRING_LITERAL_in_synpred3_CTFParser599 = new BitSet(new long[]{0x0000000000000002L}); }