diff options
author | Marc-Andre Laperle | 2014-11-28 21:02:41 +0000 |
---|---|---|
committer | Marc-Andre Laperle | 2014-12-01 15:31:55 +0000 |
commit | ad648477fe1948f2e9b74ebb354dfc219215edb9 (patch) | |
tree | 0e1c1fced28760885ce26c2875e0c01b32384b30 /lttng | |
parent | 80c866a37a17f5d73e321bbef4329e3e3e48b8ac (diff) | |
download | org.eclipse.linuxtools-ad648477fe1948f2e9b74ebb354dfc219215edb9.tar.gz org.eclipse.linuxtools-ad648477fe1948f2e9b74ebb354dfc219215edb9.tar.xz org.eclipse.linuxtools-ad648477fe1948f2e9b74ebb354dfc219215edb9.zip |
ctf: Commit the generated ANTLR files to the source tree
This means users who just pulled the git tree won't need to run
a Maven build manually to generate them. Which in turn, completely
removes the need for installing m2e or such in their Eclipse.
They are now only built when the "ctf-grammar" profile is enabled.
Rebuilding always produces a diff: the first line of the generated
files contains a timestamp, and there is some randomness in the
generated comments. So it's better to only do it on-demand.
Also added a copyright header to these files, since they didn't
seem to have one.
Change-Id: I0f783a58f9cc708686c7649cc7ad2e520a661409
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/37307
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Hudson CI
Diffstat (limited to 'lttng')
6 files changed, 12134 insertions, 49 deletions
diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/README b/lttng/org.eclipse.linuxtools.ctf.parser/README index a6720624bd..f2be96f58d 100644 --- a/lttng/org.eclipse.linuxtools.ctf.parser/README +++ b/lttng/org.eclipse.linuxtools.ctf.parser/README @@ -1,31 +1,11 @@ -Getting compile errors in this plugin? Wondering why? Keep on reading! +This file describes how to build the CTF Java parser files. They are stored in +the git repository (to avoid additional compile-time dependencies), but if you +do modify the .g files in src/, you should rebuild the resulting .java files and +commit them. -This file describes how to build the CTF Java parser files. They are not stored -in the git repository anymore, and must be generated by the build system. +To rebuild the parser files, run Maven with the "ctf-grammar" profile, as such: +$ mvn clean install -Pctf-grammar -Unfortunately there is no easy way to setup an Eclipse builder to generate those -files, since the Antlr plugin in Orbit only provides the runtime, and not the -tool to generate Java files. +Alternatively, you can also run the "generate-grammar.sh" script to regenerate +the parser files. That script requires "antlr3" to be installed on the system. -You have two options: -- On Linux distros: - You can install Antlr 3.2, and then run the generate-grammar.sh script in this - directory. On Ubuntu 12.04, getting Antlr is a simple - $ sudo apt-get install antlr3 - - The files were only tested with Antlr 3.2 though, so they might not compile - with other versions. - -- On all systems: - For a more cross-platform solution you can use Maven to generate the parser - files. If you have Maven installed on your system, you can cd into this - directory and type "mvn install" in a terminal. - - Another option is to install the Maven Eclipse integration plugin "m2e". It - can be found in the default Eclipse repository (under "Collaboration"). Once - it's installed, you can right-click the pom.xml file in this directory and - choose Run As -> Maven install. - -Both methods should create the Java files and put them in the correct directory. -You may need to refresh the project, after which the compilation errors should -disappear.
\ No newline at end of file diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/pom.xml b/lttng/org.eclipse.linuxtools.ctf.parser/pom.xml index 6446b4bc02..bbc9a7cf6e 100644 --- a/lttng/org.eclipse.linuxtools.ctf.parser/pom.xml +++ b/lttng/org.eclipse.linuxtools.ctf.parser/pom.xml @@ -29,26 +29,58 @@ <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-source-plugin</artifactId> </plugin> + <!-- Do not delete the existing .java parser files in target/ --> <plugin> - <groupId>org.antlr</groupId> - <artifactId>antlr3-maven-plugin</artifactId> - <version>3.5.2</version> - <executions> - <execution> - <goals> - <goal>antlr</goal> - </goals> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>antlr-runtime</artifactId> - <version>3.5.2</version> - </dependency> - </dependencies> + <artifactId>maven-clean-plugin</artifactId> + <version>2.5</version> + <configuration> + <excludeDefaultDirectories>true</excludeDefaultDirectories> + <filesets> + <fileset> + <directory>target</directory> + <followSymlinks>false</followSymlinks> + <includes> + <include>*/**</include> + </includes> + <excludes> + <exclude>generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.java</exclude> + <exclude>generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.java</exclude> + </excludes> + </fileset> + </filesets> + </configuration> </plugin> </plugins> </build> + <!-- Only rebuild the CTF grammar files if the ctf-grammar profile is active --> + <profiles> + <profile> + <id>ctf-grammar</id> + <build> + <plugins> + <plugin> + <groupId>org.antlr</groupId> + <artifactId>antlr3-maven-plugin</artifactId> + <version>3.5.2</version> + <executions> + <execution> + <goals> + <goal>antlr</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.antlr</groupId> + <artifactId>antlr-runtime</artifactId> + <version>3.5.2</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </build> + </profile> + </profiles> + </project> diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.g b/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.g index 9be8f9df69..65fa012c7c 100644 --- a/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.g +++ b/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.g @@ -5,7 +5,21 @@ options { } @lexer::header { - package org.eclipse.linuxtools.ctf.parser; +/******************************************************************************* + * Copyright (c) 2010, 2014 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.linuxtools.ctf.parser; } /* diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.g b/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.g index a3d9dbd1dc..20aa958419 100644 --- a/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.g +++ b/lttng/org.eclipse.linuxtools.ctf.parser/src/main/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.g @@ -77,9 +77,24 @@ scope Symbols { } @header { - package org.eclipse.linuxtools.ctf.parser; - import java.util.Set; - import java.util.HashSet; +/******************************************************************************* + * Copyright (c) 2010, 2014 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.linuxtools.ctf.parser; + +import java.util.Set; +import java.util.HashSet; } @members { diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.java b/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.java new file mode 100644 index 0000000000..9bbc764844 --- /dev/null +++ b/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFLexer.java @@ -0,0 +1,3494 @@ +// $ANTLR 3.5.2 org/eclipse/linuxtools/ctf/parser/CTFLexer.g 2014-11-28 16:43:12 + +/******************************************************************************* + * Copyright (c) 2010, 2014 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.linuxtools.ctf.parser; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class CTFLexer extends Lexer { + 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 CALLSITETOK=9; + public static final int CHARACTER_LITERAL=10; + public static final int CHARTOK=11; + public static final int CHAR_CONTENT=12; + public static final int CLOCKTOK=13; + public static final int CLOSEBRAC=14; + public static final int COLON=15; + public static final int COMMENT=16; + public static final int COMMENT_CLOSE=17; + public static final int COMMENT_OPEN=18; + public static final int COMPLEXTOK=19; + public static final int CONSTTOK=20; + public static final int DECIMAL_LITERAL=21; + public static final int DIGIT=22; + public static final int DOT=23; + public static final int DOUBLEQUOTE=24; + public static final int DOUBLETOK=25; + public static final int ELIPSES=26; + public static final int ENUMTOK=27; + public static final int ENVTOK=28; + public static final int ESCAPE_SEQUENCE=29; + public static final int EVENTTOK=30; + public static final int FLOATINGPOINTTOK=31; + public static final int FLOATTOK=32; + public static final int GT=33; + public static final int HEXADECIMAL_ESCAPE=34; + public static final int HEX_DIGIT=35; + public static final int HEX_LITERAL=36; + public static final int HEX_PREFIX=37; + public static final int IDENTIFIER=38; + public static final int IMAGINARYTOK=39; + public static final int INFINITYTOK=40; + public static final int INTEGERTOK=41; + public static final int INTEGER_TYPES_SUFFIX=42; + public static final int INTTOK=43; + public static final int LCURL=44; + public static final int LINE_COMMENT=45; + public static final int LONGTOK=46; + public static final int LPAREN=47; + public static final int LT=48; + public static final int NANNUMBERTOK=49; + public static final int NINFINITYTOK=50; + public static final int NONDIGIT=51; + public static final int NONZERO_DIGIT=52; + public static final int OCTAL_ESCAPE=53; + public static final int OCTAL_LITERAL=54; + public static final int OCT_DIGIT=55; + public static final int OCT_PREFIX=56; + public static final int OPENBRAC=57; + public static final int POINTER=58; + public static final int RCURL=59; + public static final int RPAREN=60; + public static final int SEPARATOR=61; + public static final int SHORTTOK=62; + public static final int SIGN=63; + public static final int SIGNEDTOK=64; + public static final int SINGLEQUOTE=65; + public static final int STREAMTOK=66; + public static final int STRINGPREFIX=67; + public static final int STRINGTOK=68; + public static final int STRING_CONTENT=69; + public static final int STRING_LITERAL=70; + public static final int STRUCTTOK=71; + public static final int TERM=72; + public static final int TRACETOK=73; + public static final int TYPEALIASTOK=74; + public static final int TYPEDEFTOK=75; + public static final int TYPE_ASSIGNMENT=76; + public static final int UNICODE_ESCAPE=77; + public static final int UNSIGNEDTOK=78; + public static final int VARIANTTOK=79; + public static final int VOIDTOK=80; + public static final int WS=81; + + // delegates + // delegators + public Lexer[] getDelegates() { + return new Lexer[] {}; + } + + public CTFLexer() {} + public CTFLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public CTFLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + } + @Override public String getGrammarFileName() { return "org/eclipse/linuxtools/ctf/parser/CTFLexer.g"; } + + // $ANTLR start "ALIGNTOK" + public final void mALIGNTOK() throws RecognitionException { + try { + int _type = ALIGNTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:32:18: ( 'align' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:32:20: 'align' + { + match("align"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ALIGNTOK" + + // $ANTLR start "CONSTTOK" + public final void mCONSTTOK() throws RecognitionException { + try { + int _type = CONSTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:33:18: ( 'const' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:33:20: 'const' + { + match("const"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CONSTTOK" + + // $ANTLR start "CHARTOK" + public final void mCHARTOK() throws RecognitionException { + try { + int _type = CHARTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:34:18: ( 'char' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:34:20: 'char' + { + match("char"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CHARTOK" + + // $ANTLR start "DOUBLETOK" + public final void mDOUBLETOK() throws RecognitionException { + try { + int _type = DOUBLETOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:35:18: ( 'double' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:35:20: 'double' + { + match("double"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "DOUBLETOK" + + // $ANTLR start "ENUMTOK" + public final void mENUMTOK() throws RecognitionException { + try { + int _type = ENUMTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:36:18: ( 'enum' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:36:20: 'enum' + { + match("enum"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ENUMTOK" + + // $ANTLR start "EVENTTOK" + public final void mEVENTTOK() throws RecognitionException { + try { + int _type = EVENTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:37:18: ( 'event' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:37:20: 'event' + { + match("event"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "EVENTTOK" + + // $ANTLR start "FLOATINGPOINTTOK" + public final void mFLOATINGPOINTTOK() throws RecognitionException { + try { + int _type = FLOATINGPOINTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:38:18: ( 'floating_point' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:38:20: 'floating_point' + { + match("floating_point"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "FLOATINGPOINTTOK" + + // $ANTLR start "FLOATTOK" + public final void mFLOATTOK() throws RecognitionException { + try { + int _type = FLOATTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:39:18: ( 'float' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:39:20: 'float' + { + match("float"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "FLOATTOK" + + // $ANTLR start "INTEGERTOK" + public final void mINTEGERTOK() throws RecognitionException { + try { + int _type = INTEGERTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:40:18: ( 'integer' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:40:20: 'integer' + { + match("integer"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INTEGERTOK" + + // $ANTLR start "INTTOK" + public final void mINTTOK() throws RecognitionException { + try { + int _type = INTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:41:18: ( 'int' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:41:20: 'int' + { + match("int"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INTTOK" + + // $ANTLR start "LONGTOK" + public final void mLONGTOK() throws RecognitionException { + try { + int _type = LONGTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:42:18: ( 'long' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:42:20: 'long' + { + match("long"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "LONGTOK" + + // $ANTLR start "SHORTTOK" + public final void mSHORTTOK() throws RecognitionException { + try { + int _type = SHORTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:43:18: ( 'short' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:43:20: 'short' + { + match("short"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "SHORTTOK" + + // $ANTLR start "SIGNEDTOK" + public final void mSIGNEDTOK() throws RecognitionException { + try { + int _type = SIGNEDTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:44:18: ( 'signed' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:44:20: 'signed' + { + match("signed"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "SIGNEDTOK" + + // $ANTLR start "STREAMTOK" + public final void mSTREAMTOK() throws RecognitionException { + try { + int _type = STREAMTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:45:18: ( 'stream' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:45:20: 'stream' + { + match("stream"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STREAMTOK" + + // $ANTLR start "STRINGTOK" + public final void mSTRINGTOK() throws RecognitionException { + try { + int _type = STRINGTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:46:18: ( 'string' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:46:20: 'string' + { + match("string"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STRINGTOK" + + // $ANTLR start "STRUCTTOK" + public final void mSTRUCTTOK() throws RecognitionException { + try { + int _type = STRUCTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:47:18: ( 'struct' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:47:20: 'struct' + { + match("struct"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STRUCTTOK" + + // $ANTLR start "TRACETOK" + public final void mTRACETOK() throws RecognitionException { + try { + int _type = TRACETOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:48:18: ( 'trace' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:48:20: 'trace' + { + match("trace"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TRACETOK" + + // $ANTLR start "TYPEALIASTOK" + public final void mTYPEALIASTOK() throws RecognitionException { + try { + int _type = TYPEALIASTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:49:18: ( 'typealias' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:49:20: 'typealias' + { + match("typealias"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TYPEALIASTOK" + + // $ANTLR start "TYPEDEFTOK" + public final void mTYPEDEFTOK() throws RecognitionException { + try { + int _type = TYPEDEFTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:50:18: ( 'typedef' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:50:20: 'typedef' + { + match("typedef"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TYPEDEFTOK" + + // $ANTLR start "UNSIGNEDTOK" + public final void mUNSIGNEDTOK() throws RecognitionException { + try { + int _type = UNSIGNEDTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:51:18: ( 'unsigned' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:51:20: 'unsigned' + { + match("unsigned"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "UNSIGNEDTOK" + + // $ANTLR start "VARIANTTOK" + public final void mVARIANTTOK() throws RecognitionException { + try { + int _type = VARIANTTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:52:18: ( 'variant' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:52:20: 'variant' + { + match("variant"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VARIANTTOK" + + // $ANTLR start "VOIDTOK" + public final void mVOIDTOK() throws RecognitionException { + try { + int _type = VOIDTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:53:18: ( 'void' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:53:20: 'void' + { + match("void"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "VOIDTOK" + + // $ANTLR start "BOOLTOK" + public final void mBOOLTOK() throws RecognitionException { + try { + int _type = BOOLTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:54:18: ( '_Bool' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:54:20: '_Bool' + { + match("_Bool"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "BOOLTOK" + + // $ANTLR start "COMPLEXTOK" + public final void mCOMPLEXTOK() throws RecognitionException { + try { + int _type = COMPLEXTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:55:18: ( '_Complex' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:55:20: '_Complex' + { + match("_Complex"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "COMPLEXTOK" + + // $ANTLR start "IMAGINARYTOK" + public final void mIMAGINARYTOK() throws RecognitionException { + try { + int _type = IMAGINARYTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:56:18: ( '_Imaginary' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:56:20: '_Imaginary' + { + match("_Imaginary"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "IMAGINARYTOK" + + // $ANTLR start "ENVTOK" + public final void mENVTOK() throws RecognitionException { + try { + int _type = ENVTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:57:18: ( 'env' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:57:20: 'env' + { + match("env"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ENVTOK" + + // $ANTLR start "CLOCKTOK" + public final void mCLOCKTOK() throws RecognitionException { + try { + int _type = CLOCKTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:58:18: ( 'clock' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:58:20: 'clock' + { + match("clock"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CLOCKTOK" + + // $ANTLR start "CALLSITETOK" + public final void mCALLSITETOK() throws RecognitionException { + try { + int _type = CALLSITETOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:62:18: ( 'callsite' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:62:20: 'callsite' + { + match("callsite"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CALLSITETOK" + + // $ANTLR start "NANNUMBERTOK" + public final void mNANNUMBERTOK() throws RecognitionException { + try { + int _type = NANNUMBERTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:69:15: ( 'NaN' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:69:17: 'NaN' + { + match("NaN"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NANNUMBERTOK" + + // $ANTLR start "INFINITYTOK" + public final void mINFINITYTOK() throws RecognitionException { + try { + int _type = INFINITYTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:70:15: ( '+inf' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:70:17: '+inf' + { + match("+inf"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INFINITYTOK" + + // $ANTLR start "NINFINITYTOK" + public final void mNINFINITYTOK() throws RecognitionException { + try { + int _type = NINFINITYTOK; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:71:15: ( '-inf' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:71:17: '-inf' + { + match("-inf"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NINFINITYTOK" + + // $ANTLR start "SEPARATOR" + public final void mSEPARATOR() throws RecognitionException { + try { + int _type = SEPARATOR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:76:20: ( ',' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:76:22: ',' + { + match(','); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "SEPARATOR" + + // $ANTLR start "COLON" + public final void mCOLON() throws RecognitionException { + try { + int _type = COLON; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:77:20: ( ':' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:77:22: ':' + { + match(':'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "COLON" + + // $ANTLR start "ELIPSES" + public final void mELIPSES() throws RecognitionException { + try { + int _type = ELIPSES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:78:20: ( '...' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:78:22: '...' + { + match("..."); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ELIPSES" + + // $ANTLR start "ASSIGNMENT" + public final void mASSIGNMENT() throws RecognitionException { + try { + int _type = ASSIGNMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:79:20: ( '=' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:79:22: '=' + { + match('='); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ASSIGNMENT" + + // $ANTLR start "TYPE_ASSIGNMENT" + public final void mTYPE_ASSIGNMENT() throws RecognitionException { + try { + int _type = TYPE_ASSIGNMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:80:20: ( ':=' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:80:22: ':=' + { + match(":="); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TYPE_ASSIGNMENT" + + // $ANTLR start "LT" + public final void mLT() throws RecognitionException { + try { + int _type = LT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:81:20: ( '<' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:81:22: '<' + { + match('<'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "LT" + + // $ANTLR start "GT" + public final void mGT() throws RecognitionException { + try { + int _type = GT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:82:20: ( '>' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:82:22: '>' + { + match('>'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "GT" + + // $ANTLR start "OPENBRAC" + public final void mOPENBRAC() throws RecognitionException { + try { + int _type = OPENBRAC; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:83:20: ( '[' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:83:22: '[' + { + match('['); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "OPENBRAC" + + // $ANTLR start "CLOSEBRAC" + public final void mCLOSEBRAC() throws RecognitionException { + try { + int _type = CLOSEBRAC; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:84:20: ( ']' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:84:22: ']' + { + match(']'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CLOSEBRAC" + + // $ANTLR start "LPAREN" + public final void mLPAREN() throws RecognitionException { + try { + int _type = LPAREN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:85:20: ( '(' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:85:22: '(' + { + match('('); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "LPAREN" + + // $ANTLR start "RPAREN" + public final void mRPAREN() throws RecognitionException { + try { + int _type = RPAREN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:86:20: ( ')' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:86:22: ')' + { + match(')'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "RPAREN" + + // $ANTLR start "LCURL" + public final void mLCURL() throws RecognitionException { + try { + int _type = LCURL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:87:20: ( '{' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:87:22: '{' + { + match('{'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "LCURL" + + // $ANTLR start "RCURL" + public final void mRCURL() throws RecognitionException { + try { + int _type = RCURL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:88:20: ( '}' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:88:22: '}' + { + match('}'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "RCURL" + + // $ANTLR start "TERM" + public final void mTERM() throws RecognitionException { + try { + int _type = TERM; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:89:20: ( ';' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:89:22: ';' + { + match(';'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "TERM" + + // $ANTLR start "POINTER" + public final void mPOINTER() throws RecognitionException { + try { + int _type = POINTER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:90:20: ( '*' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:90:22: '*' + { + match('*'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "POINTER" + + // $ANTLR start "SIGN" + public final void mSIGN() throws RecognitionException { + try { + int _type = SIGN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:91:20: ( '+' | '-' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "SIGN" + + // $ANTLR start "ARROW" + public final void mARROW() throws RecognitionException { + try { + int _type = ARROW; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:92:20: ( '->' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:92:22: '->' + { + match("->"); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ARROW" + + // $ANTLR start "DOT" + public final void mDOT() throws RecognitionException { + try { + int _type = DOT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:93:20: ( '.' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:93:22: '.' + { + match('.'); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "DOT" + + // $ANTLR start "BACKSLASH" + public final void mBACKSLASH() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:94:20: ( '\\\\' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:94:22: '\\\\' + { + match('\\'); + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "BACKSLASH" + + // $ANTLR start "DIGIT" + public final void mDIGIT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:97:16: ( '0' .. '9' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "DIGIT" + + // $ANTLR start "OCT_DIGIT" + public final void mOCT_DIGIT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:98:20: ( '0' .. '7' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "OCT_DIGIT" + + // $ANTLR start "OCT_PREFIX" + public final void mOCT_PREFIX() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:99:21: ( '0' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:99:23: '0' + { + match('0'); + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "OCT_PREFIX" + + // $ANTLR start "NONZERO_DIGIT" + public final void mNONZERO_DIGIT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:100:24: ( '1' .. '9' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '1' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NONZERO_DIGIT" + + // $ANTLR start "HEX_DIGIT" + public final void mHEX_DIGIT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:101:20: ( DIGIT | ( 'a' .. 'f' ) | ( 'A' .. 'F' ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "HEX_DIGIT" + + // $ANTLR start "HEX_PREFIX" + public final void mHEX_PREFIX() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:102:21: ( '0' ( 'x' | 'X' ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:102:23: '0' ( 'x' | 'X' ) + { + match('0'); + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "HEX_PREFIX" + + // $ANTLR start "OCTAL_LITERAL" + public final void mOCTAL_LITERAL() throws RecognitionException { + try { + int _type = OCTAL_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:107:15: ( OCT_PREFIX ( OCT_DIGIT )+ ( INTEGER_TYPES_SUFFIX )? ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:107:17: OCT_PREFIX ( OCT_DIGIT )+ ( INTEGER_TYPES_SUFFIX )? + { + mOCT_PREFIX(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:107:28: ( OCT_DIGIT )+ + int cnt1=0; + loop1: + while (true) { + int alt1=2; + int LA1_0 = input.LA(1); + if ( ((LA1_0 >= '0' && LA1_0 <= '7')) ) { + alt1=1; + } + + switch (alt1) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt1 >= 1 ) break loop1; + EarlyExitException eee = new EarlyExitException(1, input); + throw eee; + } + cnt1++; + } + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:107:41: ( INTEGER_TYPES_SUFFIX )? + int alt2=2; + int LA2_0 = input.LA(1); + if ( (LA2_0=='L'||LA2_0=='U'||LA2_0=='l'||LA2_0=='u') ) { + alt2=1; + } + switch (alt2) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:107:41: INTEGER_TYPES_SUFFIX + { + mINTEGER_TYPES_SUFFIX(); + + } + break; + + } + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "OCTAL_LITERAL" + + // $ANTLR start "DECIMAL_LITERAL" + public final void mDECIMAL_LITERAL() throws RecognitionException { + try { + int _type = DECIMAL_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:108:17: ( ( DIGIT )+ ( INTEGER_TYPES_SUFFIX )? ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:108:19: ( DIGIT )+ ( INTEGER_TYPES_SUFFIX )? + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:108:19: ( DIGIT )+ + int cnt3=0; + loop3: + while (true) { + int alt3=2; + int LA3_0 = input.LA(1); + if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) { + alt3=1; + } + + switch (alt3) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:108:26: ( INTEGER_TYPES_SUFFIX )? + int alt4=2; + int LA4_0 = input.LA(1); + if ( (LA4_0=='L'||LA4_0=='U'||LA4_0=='l'||LA4_0=='u') ) { + alt4=1; + } + switch (alt4) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:108:26: INTEGER_TYPES_SUFFIX + { + mINTEGER_TYPES_SUFFIX(); + + } + break; + + } + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "DECIMAL_LITERAL" + + // $ANTLR start "HEX_LITERAL" + public final void mHEX_LITERAL() throws RecognitionException { + try { + int _type = HEX_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:109:13: ( HEX_PREFIX ( HEX_DIGIT )+ ( INTEGER_TYPES_SUFFIX )? ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:109:15: HEX_PREFIX ( HEX_DIGIT )+ ( INTEGER_TYPES_SUFFIX )? + { + mHEX_PREFIX(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:109:26: ( HEX_DIGIT )+ + int cnt5=0; + loop5: + while (true) { + int alt5=2; + int LA5_0 = input.LA(1); + if ( ((LA5_0 >= '0' && LA5_0 <= '9')||(LA5_0 >= 'A' && LA5_0 <= 'F')||(LA5_0 >= 'a' && LA5_0 <= 'f')) ) { + alt5=1; + } + + switch (alt5) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt5 >= 1 ) break loop5; + EarlyExitException eee = new EarlyExitException(5, input); + throw eee; + } + cnt5++; + } + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:109:37: ( INTEGER_TYPES_SUFFIX )? + int alt6=2; + int LA6_0 = input.LA(1); + if ( (LA6_0=='L'||LA6_0=='U'||LA6_0=='l'||LA6_0=='u') ) { + alt6=1; + } + switch (alt6) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:109:37: INTEGER_TYPES_SUFFIX + { + mINTEGER_TYPES_SUFFIX(); + + } + break; + + } + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "HEX_LITERAL" + + // $ANTLR start "INTEGER_TYPES_SUFFIX" + public final void mINTEGER_TYPES_SUFFIX() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:3: ( ( 'l' ( 'l' )? | 'L' ( 'L' )? ) | ( 'u' | 'U' ) | ( 'u' | 'U' ) ( 'l' ( 'l' )? | 'L' ( 'L' )? ) | ( 'l' ( 'l' )? | 'L' ( 'L' )? ) ( 'u' | 'U' ) ) + int alt16=4; + switch ( input.LA(1) ) { + case 'l': + { + switch ( input.LA(2) ) { + case 'l': + { + int LA16_4 = input.LA(3); + if ( (LA16_4=='U'||LA16_4=='u') ) { + alt16=4; + } + + else { + alt16=1; + } + + } + break; + case 'U': + case 'u': + { + alt16=4; + } + break; + default: + alt16=1; + } + } + break; + case 'L': + { + switch ( input.LA(2) ) { + case 'L': + { + int LA16_7 = input.LA(3); + if ( (LA16_7=='U'||LA16_7=='u') ) { + alt16=4; + } + + else { + alt16=1; + } + + } + break; + case 'U': + case 'u': + { + alt16=4; + } + break; + default: + alt16=1; + } + } + break; + case 'U': + case 'u': + { + int LA16_3 = input.LA(2); + if ( (LA16_3=='L'||LA16_3=='l') ) { + alt16=3; + } + + else { + alt16=2; + } + + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + throw nvae; + } + switch (alt16) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:5: ( 'l' ( 'l' )? | 'L' ( 'L' )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:5: ( 'l' ( 'l' )? | 'L' ( 'L' )? ) + int alt9=2; + int LA9_0 = input.LA(1); + if ( (LA9_0=='l') ) { + alt9=1; + } + else if ( (LA9_0=='L') ) { + alt9=2; + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + throw nvae; + } + + switch (alt9) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:6: 'l' ( 'l' )? + { + match('l'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:10: ( 'l' )? + int alt7=2; + int LA7_0 = input.LA(1); + if ( (LA7_0=='l') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:11: 'l' + { + match('l'); + } + break; + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:19: 'L' ( 'L' )? + { + match('L'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:23: ( 'L' )? + int alt8=2; + int LA8_0 = input.LA(1); + if ( (LA8_0=='L') ) { + alt8=1; + } + switch (alt8) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:117:24: 'L' + { + match('L'); + } + break; + + } + + } + break; + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:118:5: ( 'u' | 'U' ) + { + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:5: ( 'u' | 'U' ) ( 'l' ( 'l' )? | 'L' ( 'L' )? ) + { + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:17: ( 'l' ( 'l' )? | 'L' ( 'L' )? ) + int alt12=2; + int LA12_0 = input.LA(1); + if ( (LA12_0=='l') ) { + alt12=1; + } + else if ( (LA12_0=='L') ) { + alt12=2; + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + throw nvae; + } + + switch (alt12) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:18: 'l' ( 'l' )? + { + match('l'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:22: ( 'l' )? + int alt10=2; + int LA10_0 = input.LA(1); + if ( (LA10_0=='l') ) { + alt10=1; + } + switch (alt10) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:23: 'l' + { + match('l'); + } + break; + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:31: 'L' ( 'L' )? + { + match('L'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:35: ( 'L' )? + int alt11=2; + int LA11_0 = input.LA(1); + if ( (LA11_0=='L') ) { + alt11=1; + } + switch (alt11) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:119:36: 'L' + { + match('L'); + } + break; + + } + + } + break; + + } + + } + break; + case 4 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:5: ( 'l' ( 'l' )? | 'L' ( 'L' )? ) ( 'u' | 'U' ) + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:5: ( 'l' ( 'l' )? | 'L' ( 'L' )? ) + int alt15=2; + int LA15_0 = input.LA(1); + if ( (LA15_0=='l') ) { + alt15=1; + } + else if ( (LA15_0=='L') ) { + alt15=2; + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 15, 0, input); + throw nvae; + } + + switch (alt15) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:6: 'l' ( 'l' )? + { + match('l'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:10: ( 'l' )? + int alt13=2; + int LA13_0 = input.LA(1); + if ( (LA13_0=='l') ) { + alt13=1; + } + switch (alt13) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:11: 'l' + { + match('l'); + } + break; + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:19: 'L' ( 'L' )? + { + match('L'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:23: ( 'L' )? + int alt14=2; + int LA14_0 = input.LA(1); + if ( (LA14_0=='L') ) { + alt14=1; + } + switch (alt14) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:120:24: 'L' + { + match('L'); + } + break; + + } + + } + break; + + } + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INTEGER_TYPES_SUFFIX" + + // $ANTLR start "ESCAPE_SEQUENCE" + public final void mESCAPE_SEQUENCE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:127:3: ( BACKSLASH ( '\\'' | '\"' | '?' | BACKSLASH | 'a' | 'b' | 'f' | 'n' | 'r' | 't' | 'v' ) | OCTAL_ESCAPE | UNICODE_ESCAPE | HEXADECIMAL_ESCAPE ) + int alt17=4; + int LA17_0 = input.LA(1); + if ( (LA17_0=='\\') ) { + switch ( input.LA(2) ) { + case '\"': + case '\'': + case '?': + case '\\': + case 'a': + case 'b': + case 'f': + case 'n': + case 'r': + case 't': + case 'v': + { + alt17=1; + } + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + { + alt17=2; + } + break; + case 'U': + case 'u': + { + alt17=3; + } + break; + case 'x': + { + alt17=4; + } + break; + default: + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 17, 1, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 17, 0, input); + throw nvae; + } + + switch (alt17) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:127:5: BACKSLASH ( '\\'' | '\"' | '?' | BACKSLASH | 'a' | 'b' | 'f' | 'n' | 'r' | 't' | 'v' ) + { + mBACKSLASH(); + + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='?'||input.LA(1)=='\\'||(input.LA(1) >= 'a' && input.LA(1) <= 'b')||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t'||input.LA(1)=='v' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:128:5: OCTAL_ESCAPE + { + mOCTAL_ESCAPE(); + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:129:5: UNICODE_ESCAPE + { + mUNICODE_ESCAPE(); + + } + break; + case 4 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:130:5: HEXADECIMAL_ESCAPE + { + mHEXADECIMAL_ESCAPE(); + + } + break; + + } + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "ESCAPE_SEQUENCE" + + // $ANTLR start "OCTAL_ESCAPE" + public final void mOCTAL_ESCAPE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:137:3: ( BACKSLASH ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | BACKSLASH ( '0' .. '7' ) ( '0' .. '7' ) | BACKSLASH ( '0' .. '7' ) ) + int alt18=3; + int LA18_0 = input.LA(1); + if ( (LA18_0=='\\') ) { + int LA18_1 = input.LA(2); + if ( ((LA18_1 >= '0' && LA18_1 <= '3')) ) { + int LA18_2 = input.LA(3); + if ( ((LA18_2 >= '0' && LA18_2 <= '7')) ) { + int LA18_4 = input.LA(4); + if ( ((LA18_4 >= '0' && LA18_4 <= '7')) ) { + alt18=1; + } + + else { + alt18=2; + } + + } + + else { + alt18=3; + } + + } + else if ( ((LA18_1 >= '4' && LA18_1 <= '7')) ) { + int LA18_3 = input.LA(3); + if ( ((LA18_3 >= '0' && LA18_3 <= '7')) ) { + alt18=2; + } + + else { + alt18=3; + } + + } + + else { + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 18, 1, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + throw nvae; + } + + switch (alt18) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:137:5: BACKSLASH ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) + { + mBACKSLASH(); + + if ( (input.LA(1) >= '0' && input.LA(1) <= '3') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:138:5: BACKSLASH ( '0' .. '7' ) ( '0' .. '7' ) + { + mBACKSLASH(); + + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:139:5: BACKSLASH ( '0' .. '7' ) + { + mBACKSLASH(); + + if ( (input.LA(1) >= '0' && input.LA(1) <= '7') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "OCTAL_ESCAPE" + + // $ANTLR start "HEXADECIMAL_ESCAPE" + public final void mHEXADECIMAL_ESCAPE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:145:29: ( BACKSLASH 'x' ( HEX_DIGIT )+ ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:145:31: BACKSLASH 'x' ( HEX_DIGIT )+ + { + mBACKSLASH(); + + match('x'); + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:145:45: ( HEX_DIGIT )+ + int cnt19=0; + loop19: + while (true) { + int alt19=2; + int LA19_0 = input.LA(1); + if ( ((LA19_0 >= '0' && LA19_0 <= '9')||(LA19_0 >= 'A' && LA19_0 <= 'F')||(LA19_0 >= 'a' && LA19_0 <= 'f')) ) { + alt19=1; + } + + switch (alt19) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt19 >= 1 ) break loop19; + EarlyExitException eee = new EarlyExitException(19, input); + throw eee; + } + cnt19++; + } + + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "HEXADECIMAL_ESCAPE" + + // $ANTLR start "UNICODE_ESCAPE" + public final void mUNICODE_ESCAPE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:151:3: ( BACKSLASH 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT | BACKSLASH 'U' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT ) + int alt20=2; + int LA20_0 = input.LA(1); + if ( (LA20_0=='\\') ) { + int LA20_1 = input.LA(2); + if ( (LA20_1=='u') ) { + alt20=1; + } + else if ( (LA20_1=='U') ) { + alt20=2; + } + + else { + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 20, 1, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + throw nvae; + } + + switch (alt20) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:151:5: BACKSLASH 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT + { + mBACKSLASH(); + + match('u'); + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:152:5: BACKSLASH 'U' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT + { + mBACKSLASH(); + + match('U'); + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + mHEX_DIGIT(); + + } + break; + + } + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "UNICODE_ESCAPE" + + // $ANTLR start "STRINGPREFIX" + public final void mSTRINGPREFIX() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:157:23: ( 'L' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:157:25: 'L' + { + match('L'); + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STRINGPREFIX" + + // $ANTLR start "CHARACTER_LITERAL" + public final void mCHARACTER_LITERAL() throws RecognitionException { + try { + int _type = CHARACTER_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:162:19: ( ( STRINGPREFIX )? SINGLEQUOTE ( CHAR_CONTENT )+ SINGLEQUOTE ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:162:21: ( STRINGPREFIX )? SINGLEQUOTE ( CHAR_CONTENT )+ SINGLEQUOTE + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:162:21: ( STRINGPREFIX )? + int alt21=2; + int LA21_0 = input.LA(1); + if ( (LA21_0=='L') ) { + alt21=1; + } + switch (alt21) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( input.LA(1)=='L' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + + mSINGLEQUOTE(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:162:47: ( CHAR_CONTENT )+ + int cnt22=0; + loop22: + while (true) { + int alt22=2; + int LA22_0 = input.LA(1); + if ( ((LA22_0 >= '\u0000' && LA22_0 <= '&')||(LA22_0 >= '(' && LA22_0 <= '\uFFFF')) ) { + alt22=1; + } + + switch (alt22) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:162:47: CHAR_CONTENT + { + mCHAR_CONTENT(); + + } + break; + + default : + if ( cnt22 >= 1 ) break loop22; + EarlyExitException eee = new EarlyExitException(22, input); + throw eee; + } + cnt22++; + } + + mSINGLEQUOTE(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CHARACTER_LITERAL" + + // $ANTLR start "CHAR_CONTENT" + public final void mCHAR_CONTENT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:163:23: ( ( ESCAPE_SEQUENCE |~ ( BACKSLASH | SINGLEQUOTE ) ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:163:25: ( ESCAPE_SEQUENCE |~ ( BACKSLASH | SINGLEQUOTE ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:163:25: ( ESCAPE_SEQUENCE |~ ( BACKSLASH | SINGLEQUOTE ) ) + int alt23=2; + int LA23_0 = input.LA(1); + if ( (LA23_0=='\\') ) { + alt23=1; + } + else if ( ((LA23_0 >= '\u0000' && LA23_0 <= '&')||(LA23_0 >= '(' && LA23_0 <= '[')||(LA23_0 >= ']' && LA23_0 <= '\uFFFF')) ) { + alt23=2; + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 23, 0, input); + throw nvae; + } + + switch (alt23) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:163:26: ESCAPE_SEQUENCE + { + mESCAPE_SEQUENCE(); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:163:44: ~ ( BACKSLASH | SINGLEQUOTE ) + { + if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "CHAR_CONTENT" + + // $ANTLR start "SINGLEQUOTE" + public final void mSINGLEQUOTE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:164:22: ( '\\'' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:164:24: '\\'' + { + match('\''); + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "SINGLEQUOTE" + + // $ANTLR start "STRING_LITERAL" + public final void mSTRING_LITERAL() throws RecognitionException { + try { + int _type = STRING_LITERAL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:169:16: ( ( STRINGPREFIX )? DOUBLEQUOTE ( STRING_CONTENT )* DOUBLEQUOTE ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:169:18: ( STRINGPREFIX )? DOUBLEQUOTE ( STRING_CONTENT )* DOUBLEQUOTE + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:169:18: ( STRINGPREFIX )? + int alt24=2; + int LA24_0 = input.LA(1); + if ( (LA24_0=='L') ) { + alt24=1; + } + switch (alt24) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( input.LA(1)=='L' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + + mDOUBLEQUOTE(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:169:44: ( STRING_CONTENT )* + loop25: + while (true) { + int alt25=2; + int LA25_0 = input.LA(1); + if ( ((LA25_0 >= '\u0000' && LA25_0 <= '!')||(LA25_0 >= '#' && LA25_0 <= '\uFFFF')) ) { + alt25=1; + } + + switch (alt25) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:169:44: STRING_CONTENT + { + mSTRING_CONTENT(); + + } + break; + + default : + break loop25; + } + } + + mDOUBLEQUOTE(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STRING_LITERAL" + + // $ANTLR start "STRING_CONTENT" + public final void mSTRING_CONTENT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:170:25: ( ( ESCAPE_SEQUENCE |~ ( BACKSLASH | DOUBLEQUOTE ) ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:170:27: ( ESCAPE_SEQUENCE |~ ( BACKSLASH | DOUBLEQUOTE ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:170:27: ( ESCAPE_SEQUENCE |~ ( BACKSLASH | DOUBLEQUOTE ) ) + int alt26=2; + int LA26_0 = input.LA(1); + if ( (LA26_0=='\\') ) { + alt26=1; + } + else if ( ((LA26_0 >= '\u0000' && LA26_0 <= '!')||(LA26_0 >= '#' && LA26_0 <= '[')||(LA26_0 >= ']' && LA26_0 <= '\uFFFF')) ) { + alt26=2; + } + + else { + NoViableAltException nvae = + new NoViableAltException("", 26, 0, input); + throw nvae; + } + + switch (alt26) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:170:28: ESCAPE_SEQUENCE + { + mESCAPE_SEQUENCE(); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:170:46: ~ ( BACKSLASH | DOUBLEQUOTE ) + { + if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + } + + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "STRING_CONTENT" + + // $ANTLR start "DOUBLEQUOTE" + public final void mDOUBLEQUOTE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:171:22: ( '\"' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:171:24: '\"' + { + match('\"'); + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "DOUBLEQUOTE" + + // $ANTLR start "WS" + public final void mWS() throws RecognitionException { + try { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:176:4: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:176:6: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||(input.LA(1) >= '\f' && input.LA(1) <= '\r')||input.LA(1)==' ' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + _channel = HIDDEN; + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "WS" + + // $ANTLR start "COMMENT" + public final void mCOMMENT() throws RecognitionException { + try { + int _type = COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:183:9: ( COMMENT_OPEN ( . )* COMMENT_CLOSE ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:183:11: COMMENT_OPEN ( . )* COMMENT_CLOSE + { + mCOMMENT_OPEN(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:183:24: ( . )* + loop27: + while (true) { + int alt27=2; + int LA27_0 = input.LA(1); + if ( (LA27_0=='*') ) { + int LA27_1 = input.LA(2); + if ( (LA27_1=='/') ) { + alt27=2; + } + else if ( ((LA27_1 >= '\u0000' && LA27_1 <= '.')||(LA27_1 >= '0' && LA27_1 <= '\uFFFF')) ) { + alt27=1; + } + + } + else if ( ((LA27_0 >= '\u0000' && LA27_0 <= ')')||(LA27_0 >= '+' && LA27_0 <= '\uFFFF')) ) { + alt27=1; + } + + switch (alt27) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:183:24: . + { + matchAny(); + } + break; + + default : + break loop27; + } + } + + mCOMMENT_CLOSE(); + + _channel = HIDDEN; + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "COMMENT" + + // $ANTLR start "COMMENT_OPEN" + public final void mCOMMENT_OPEN() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:184:23: ( '/*' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:184:25: '/*' + { + match("/*"); + + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "COMMENT_OPEN" + + // $ANTLR start "COMMENT_CLOSE" + public final void mCOMMENT_CLOSE() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:185:24: ( '*/' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:185:26: '*/' + { + match("*/"); + + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "COMMENT_CLOSE" + + // $ANTLR start "LINE_COMMENT" + public final void mLINE_COMMENT() throws RecognitionException { + try { + int _type = LINE_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:190:14: ( '//' (~ ( '\\n' ) )* '\\n' ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:190:16: '//' (~ ( '\\n' ) )* '\\n' + { + match("//"); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:190:21: (~ ( '\\n' ) )* + loop28: + while (true) { + int alt28=2; + int LA28_0 = input.LA(1); + if ( ((LA28_0 >= '\u0000' && LA28_0 <= '\t')||(LA28_0 >= '\u000B' && LA28_0 <= '\uFFFF')) ) { + alt28=1; + } + + switch (alt28) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '\t')||(input.LA(1) >= '\u000B' && input.LA(1) <= '\uFFFF') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + break loop28; + } + } + + match('\n'); + _channel = HIDDEN; + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "LINE_COMMENT" + + // $ANTLR start "IDENTIFIER" + public final void mIDENTIFIER() throws RecognitionException { + try { + int _type = IDENTIFIER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:195:12: ( NONDIGIT ( NONDIGIT | DIGIT )* ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:195:14: NONDIGIT ( NONDIGIT | DIGIT )* + { + mNONDIGIT(); + + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:195:23: ( NONDIGIT | DIGIT )* + loop29: + while (true) { + int alt29=2; + int LA29_0 = input.LA(1); + if ( ((LA29_0 >= '0' && LA29_0 <= '9')||(LA29_0 >= 'A' && LA29_0 <= 'Z')||LA29_0=='_'||(LA29_0 >= 'a' && LA29_0 <= 'z')) ) { + alt29=1; + } + + switch (alt29) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + break loop29; + } + } + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "IDENTIFIER" + + // $ANTLR start "NONDIGIT" + public final void mNONDIGIT() throws RecognitionException { + try { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:196:19: ( ( '_' ) | ( 'A' .. 'Z' ) | ( 'a' .. 'z' ) ) + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g: + { + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "NONDIGIT" + + @Override + public void mTokens() throws RecognitionException { + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:8: ( ALIGNTOK | CONSTTOK | CHARTOK | DOUBLETOK | ENUMTOK | EVENTTOK | FLOATINGPOINTTOK | FLOATTOK | INTEGERTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | STREAMTOK | STRINGTOK | STRUCTTOK | TRACETOK | TYPEALIASTOK | TYPEDEFTOK | UNSIGNEDTOK | VARIANTTOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | ENVTOK | CLOCKTOK | CALLSITETOK | NANNUMBERTOK | INFINITYTOK | NINFINITYTOK | SEPARATOR | COLON | ELIPSES | ASSIGNMENT | TYPE_ASSIGNMENT | LT | GT | OPENBRAC | CLOSEBRAC | LPAREN | RPAREN | LCURL | RCURL | TERM | POINTER | SIGN | ARROW | DOT | OCTAL_LITERAL | DECIMAL_LITERAL | HEX_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | WS | COMMENT | LINE_COMMENT | IDENTIFIER ) + int alt30=58; + alt30 = dfa30.predict(input); + switch (alt30) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:10: ALIGNTOK + { + mALIGNTOK(); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:19: CONSTTOK + { + mCONSTTOK(); + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:28: CHARTOK + { + mCHARTOK(); + + } + break; + case 4 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:36: DOUBLETOK + { + mDOUBLETOK(); + + } + break; + case 5 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:46: ENUMTOK + { + mENUMTOK(); + + } + break; + case 6 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:54: EVENTTOK + { + mEVENTTOK(); + + } + break; + case 7 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:63: FLOATINGPOINTTOK + { + mFLOATINGPOINTTOK(); + + } + break; + case 8 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:80: FLOATTOK + { + mFLOATTOK(); + + } + break; + case 9 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:89: INTEGERTOK + { + mINTEGERTOK(); + + } + break; + case 10 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:100: INTTOK + { + mINTTOK(); + + } + break; + case 11 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:107: LONGTOK + { + mLONGTOK(); + + } + break; + case 12 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:115: SHORTTOK + { + mSHORTTOK(); + + } + break; + case 13 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:124: SIGNEDTOK + { + mSIGNEDTOK(); + + } + break; + case 14 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:134: STREAMTOK + { + mSTREAMTOK(); + + } + break; + case 15 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:144: STRINGTOK + { + mSTRINGTOK(); + + } + break; + case 16 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:154: STRUCTTOK + { + mSTRUCTTOK(); + + } + break; + case 17 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:164: TRACETOK + { + mTRACETOK(); + + } + break; + case 18 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:173: TYPEALIASTOK + { + mTYPEALIASTOK(); + + } + break; + case 19 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:186: TYPEDEFTOK + { + mTYPEDEFTOK(); + + } + break; + case 20 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:197: UNSIGNEDTOK + { + mUNSIGNEDTOK(); + + } + break; + case 21 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:209: VARIANTTOK + { + mVARIANTTOK(); + + } + break; + case 22 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:220: VOIDTOK + { + mVOIDTOK(); + + } + break; + case 23 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:228: BOOLTOK + { + mBOOLTOK(); + + } + break; + case 24 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:236: COMPLEXTOK + { + mCOMPLEXTOK(); + + } + break; + case 25 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:247: IMAGINARYTOK + { + mIMAGINARYTOK(); + + } + break; + case 26 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:260: ENVTOK + { + mENVTOK(); + + } + break; + case 27 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:267: CLOCKTOK + { + mCLOCKTOK(); + + } + break; + case 28 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:276: CALLSITETOK + { + mCALLSITETOK(); + + } + break; + case 29 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:288: NANNUMBERTOK + { + mNANNUMBERTOK(); + + } + break; + case 30 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:301: INFINITYTOK + { + mINFINITYTOK(); + + } + break; + case 31 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:313: NINFINITYTOK + { + mNINFINITYTOK(); + + } + break; + case 32 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:326: SEPARATOR + { + mSEPARATOR(); + + } + break; + case 33 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:336: COLON + { + mCOLON(); + + } + break; + case 34 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:342: ELIPSES + { + mELIPSES(); + + } + break; + case 35 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:350: ASSIGNMENT + { + mASSIGNMENT(); + + } + break; + case 36 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:361: TYPE_ASSIGNMENT + { + mTYPE_ASSIGNMENT(); + + } + break; + case 37 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:377: LT + { + mLT(); + + } + break; + case 38 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:380: GT + { + mGT(); + + } + break; + case 39 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:383: OPENBRAC + { + mOPENBRAC(); + + } + break; + case 40 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:392: CLOSEBRAC + { + mCLOSEBRAC(); + + } + break; + case 41 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:402: LPAREN + { + mLPAREN(); + + } + break; + case 42 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:409: RPAREN + { + mRPAREN(); + + } + break; + case 43 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:416: LCURL + { + mLCURL(); + + } + break; + case 44 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:422: RCURL + { + mRCURL(); + + } + break; + case 45 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:428: TERM + { + mTERM(); + + } + break; + case 46 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:433: POINTER + { + mPOINTER(); + + } + break; + case 47 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:441: SIGN + { + mSIGN(); + + } + break; + case 48 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:446: ARROW + { + mARROW(); + + } + break; + case 49 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:452: DOT + { + mDOT(); + + } + break; + case 50 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:456: OCTAL_LITERAL + { + mOCTAL_LITERAL(); + + } + break; + case 51 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:470: DECIMAL_LITERAL + { + mDECIMAL_LITERAL(); + + } + break; + case 52 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:486: HEX_LITERAL + { + mHEX_LITERAL(); + + } + break; + case 53 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:498: CHARACTER_LITERAL + { + mCHARACTER_LITERAL(); + + } + break; + case 54 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:516: STRING_LITERAL + { + mSTRING_LITERAL(); + + } + break; + case 55 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:531: WS + { + mWS(); + + } + break; + case 56 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:534: COMMENT + { + mCOMMENT(); + + } + break; + case 57 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:542: LINE_COMMENT + { + mLINE_COMMENT(); + + } + break; + case 58 : + // org/eclipse/linuxtools/ctf/parser/CTFLexer.g:1:555: IDENTIFIER + { + mIDENTIFIER(); + + } + break; + + } + } + + + protected DFA30 dfa30 = new DFA30(this); + static final String DFA30_eotS = + "\1\uffff\15\45\2\76\1\uffff\1\102\1\104\13\uffff\1\37\1\uffff\1\45\5\uffff"+ + "\27\45\11\uffff\1\144\2\uffff\7\45\1\154\2\45\1\160\14\45\1\177\3\144"+ + "\1\uffff\2\45\1\u0087\3\45\1\u008b\1\uffff\3\45\1\uffff\1\u008f\11\45"+ + "\1\u009a\3\45\1\uffff\1\144\1\uffff\3\144\1\u00a0\1\u00a1\1\uffff\1\u00a2"+ + "\2\45\1\uffff\1\u00a5\1\u00a7\1\45\1\uffff\1\u00a9\4\45\1\u00ae\4\45\1"+ + "\uffff\1\u00b3\2\45\5\uffff\1\45\1\u00b7\1\uffff\1\45\1\uffff\1\45\1\uffff"+ + "\1\u00ba\1\u00bb\1\u00bc\1\u00bd\1\uffff\4\45\1\uffff\3\45\1\uffff\1\45"+ + "\1\u00c6\4\uffff\1\45\1\u00c8\1\45\1\u00ca\2\45\1\u00cd\1\45\1\uffff\1"+ + "\45\1\uffff\1\u00d0\1\uffff\1\u00d1\1\45\1\uffff\1\45\1\u00d4\2\uffff"+ + "\2\45\1\uffff\1\u00d7\1\45\1\uffff\2\45\1\u00db\1\uffff"; + static final String DFA30_eofS = + "\u00dc\uffff"; + static final String DFA30_minS = + "\1\11\1\154\1\141\1\157\1\156\1\154\1\156\1\157\1\150\1\162\1\156\1\141"+ + "\1\102\1\141\1\151\1\76\1\uffff\1\75\1\56\13\uffff\1\60\1\uffff\1\42\3"+ + "\uffff\1\52\1\uffff\1\151\1\156\1\141\1\157\1\154\2\165\1\145\1\157\1"+ + "\164\1\156\1\157\1\147\1\162\1\141\1\160\1\163\1\162\1\151\2\157\1\155"+ + "\1\116\11\uffff\1\60\2\uffff\1\147\1\163\1\162\1\143\1\154\1\142\1\155"+ + "\1\60\1\156\1\141\1\60\1\147\1\162\1\156\1\145\1\143\1\145\2\151\1\144"+ + "\1\157\1\155\1\141\1\60\1\125\2\114\1\uffff\1\156\1\164\1\60\1\153\1\163"+ + "\1\154\1\60\1\uffff\2\164\1\147\1\uffff\1\60\1\164\1\145\1\141\1\156\1"+ + "\143\1\145\1\141\1\147\1\141\1\60\1\154\1\160\1\147\1\uffff\1\125\1\uffff"+ + "\1\125\1\154\1\114\2\60\1\uffff\1\60\1\151\1\145\1\uffff\2\60\1\145\1"+ + "\uffff\1\60\1\144\1\155\1\147\1\164\1\60\1\154\1\145\2\156\1\uffff\1\60"+ + "\1\154\1\151\5\uffff\1\164\1\60\1\uffff\1\156\1\uffff\1\162\1\uffff\4"+ + "\60\1\uffff\1\151\1\146\1\145\1\164\1\uffff\1\145\1\156\1\145\1\uffff"+ + "\1\147\1\60\4\uffff\1\141\1\60\1\144\1\60\1\170\1\141\1\60\1\137\1\uffff"+ + "\1\163\1\uffff\1\60\1\uffff\1\60\1\162\1\uffff\1\160\1\60\2\uffff\1\171"+ + "\1\157\1\uffff\1\60\1\151\1\uffff\1\156\1\164\1\60\1\uffff"; + static final String DFA30_maxS = + "\1\175\1\154\2\157\1\166\1\154\1\156\1\157\1\164\1\171\1\156\1\157\1\111"+ + "\1\141\2\151\1\uffff\1\75\1\56\13\uffff\1\170\1\uffff\1\47\3\uffff\1\57"+ + "\1\uffff\1\151\1\156\1\141\1\157\1\154\1\165\1\166\1\145\1\157\1\164\1"+ + "\156\1\157\1\147\1\162\1\141\1\160\1\163\1\162\1\151\2\157\1\155\1\116"+ + "\11\uffff\1\165\2\uffff\1\147\1\163\1\162\1\143\1\154\1\142\1\155\1\172"+ + "\1\156\1\141\1\172\1\147\1\162\1\156\1\165\1\143\1\145\2\151\1\144\1\157"+ + "\1\155\1\141\1\172\2\165\1\154\1\uffff\1\156\1\164\1\172\1\153\1\163\1"+ + "\154\1\172\1\uffff\2\164\1\147\1\uffff\1\172\1\164\1\145\1\141\1\156\1"+ + "\143\1\145\1\144\1\147\1\141\1\172\1\154\1\160\1\147\1\uffff\1\165\1\uffff"+ + "\1\165\1\154\1\114\2\172\1\uffff\1\172\1\151\1\145\1\uffff\2\172\1\145"+ + "\1\uffff\1\172\1\144\1\155\1\147\1\164\1\172\1\154\1\145\2\156\1\uffff"+ + "\1\172\1\154\1\151\5\uffff\1\164\1\172\1\uffff\1\156\1\uffff\1\162\1\uffff"+ + "\4\172\1\uffff\1\151\1\146\1\145\1\164\1\uffff\1\145\1\156\1\145\1\uffff"+ + "\1\147\1\172\4\uffff\1\141\1\172\1\144\1\172\1\170\1\141\1\172\1\137\1"+ + "\uffff\1\163\1\uffff\1\172\1\uffff\1\172\1\162\1\uffff\1\160\1\172\2\uffff"+ + "\1\171\1\157\1\uffff\1\172\1\151\1\uffff\1\156\1\164\1\172\1\uffff"; + static final String DFA30_acceptS = + "\20\uffff\1\40\2\uffff\1\43\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1"+ + "\55\1\56\1\uffff\1\63\1\uffff\1\65\1\66\1\67\1\uffff\1\72\27\uffff\1\36"+ + "\1\57\1\37\1\60\1\44\1\41\1\42\1\61\1\64\1\uffff\1\70\1\71\33\uffff\1"+ + "\62\7\uffff\1\32\3\uffff\1\12\16\uffff\1\35\1\uffff\1\62\5\uffff\1\3\3"+ + "\uffff\1\5\3\uffff\1\13\12\uffff\1\26\3\uffff\2\62\1\1\1\2\1\33\2\uffff"+ + "\1\6\1\uffff\1\10\1\uffff\1\14\4\uffff\1\21\4\uffff\1\27\3\uffff\1\4\2"+ + "\uffff\1\15\1\16\1\17\1\20\10\uffff\1\11\1\uffff\1\23\1\uffff\1\25\2\uffff"+ + "\1\34\2\uffff\1\24\1\30\2\uffff\1\22\2\uffff\1\31\3\uffff\1\7"; + static final String DFA30_specialS = + "\u00dc\uffff}>"; + static final String[] DFA30_transitionS = { + "\2\43\1\uffff\2\43\22\uffff\1\43\1\uffff\1\42\4\uffff\1\41\1\30\1\31"+ + "\1\35\1\16\1\20\1\17\1\22\1\44\1\36\11\37\1\21\1\34\1\24\1\23\1\25\2"+ + "\uffff\13\45\1\40\1\45\1\15\14\45\1\26\1\uffff\1\27\1\uffff\1\14\1\uffff"+ + "\1\1\1\45\1\2\1\3\1\4\1\5\2\45\1\6\2\45\1\7\6\45\1\10\1\11\1\12\1\13"+ + "\4\45\1\32\1\uffff\1\33", + "\1\46", + "\1\52\6\uffff\1\50\3\uffff\1\51\2\uffff\1\47", + "\1\53", + "\1\54\7\uffff\1\55", + "\1\56", + "\1\57", + "\1\60", + "\1\61\1\62\12\uffff\1\63", + "\1\64\6\uffff\1\65", + "\1\66", + "\1\67\15\uffff\1\70", + "\1\71\1\72\5\uffff\1\73", + "\1\74", + "\1\75", + "\1\100\52\uffff\1\77", + "", + "\1\101", + "\1\103", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\10\106\40\uffff\1\105\37\uffff\1\105", + "", + "\1\42\4\uffff\1\41", + "", + "", + "", + "\1\107\4\uffff\1\110", + "", + "\1\111", + "\1\112", + "\1\113", + "\1\114", + "\1\115", + "\1\116", + "\1\117\1\120", + "\1\121", + "\1\122", + "\1\123", + "\1\124", + "\1\125", + "\1\126", + "\1\127", + "\1\130", + "\1\131", + "\1\132", + "\1\133", + "\1\134", + "\1\135", + "\1\136", + "\1\137", + "\1\140", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\10\106\2\37\22\uffff\1\142\10\uffff\1\143\26\uffff\1\141\10\uffff\1"+ + "\143", + "", + "", + "\1\145", + "\1\146", + "\1\147", + "\1\150", + "\1\151", + "\1\152", + "\1\153", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\155", + "\1\156", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\4\45\1\157\25\45", + "\1\161", + "\1\162", + "\1\163", + "\1\164\3\uffff\1\165\13\uffff\1\166", + "\1\167", + "\1\170", + "\1\171", + "\1\172", + "\1\173", + "\1\174", + "\1\175", + "\1\176", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u0081\26\uffff\1\u0080\10\uffff\1\u0081", + "\1\u0082\10\uffff\1\u0081\37\uffff\1\u0081", + "\1\u0084\37\uffff\1\u0083", + "", + "\1\u0085", + "\1\u0086", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u0088", + "\1\u0089", + "\1\u008a", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "\1\u008c", + "\1\u008d", + "\1\u008e", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u0090", + "\1\u0091", + "\1\u0092", + "\1\u0093", + "\1\u0094", + "\1\u0095", + "\1\u0096\2\uffff\1\u0097", + "\1\u0098", + "\1\u0099", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u009b", + "\1\u009c", + "\1\u009d", + "", + "\1\u0081\37\uffff\1\u0081", + "", + "\1\u0081\37\uffff\1\u0081", + "\1\u009e", + "\1\u009f", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00a3", + "\1\u00a4", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\10\45\1\u00a6\21\45", + "\1\u00a8", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00aa", + "\1\u00ab", + "\1\u00ac", + "\1\u00ad", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00af", + "\1\u00b0", + "\1\u00b1", + "\1\u00b2", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00b4", + "\1\u00b5", + "", + "", + "", + "", + "", + "\1\u00b6", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "\1\u00b8", + "", + "\1\u00b9", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "\1\u00be", + "\1\u00bf", + "\1\u00c0", + "\1\u00c1", + "", + "\1\u00c2", + "\1\u00c3", + "\1\u00c4", + "", + "\1\u00c5", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "", + "", + "", + "\1\u00c7", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00c9", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00cb", + "\1\u00cc", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00ce", + "", + "\1\u00cf", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00d2", + "", + "\1\u00d3", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "", + "", + "\1\u00d5", + "\1\u00d6", + "", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "\1\u00d8", + "", + "\1\u00d9", + "\1\u00da", + "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", + "" + }; + + static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS); + static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS); + static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS); + static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS); + static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS); + static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS); + static final short[][] DFA30_transition; + + static { + int numStates = DFA30_transitionS.length; + DFA30_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]); + } + } + + protected class DFA30 extends DFA { + + public DFA30(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 30; + this.eot = DFA30_eot; + this.eof = DFA30_eof; + this.min = DFA30_min; + this.max = DFA30_max; + this.accept = DFA30_accept; + this.special = DFA30_special; + this.transition = DFA30_transition; + } + @Override + public String getDescription() { + return "1:1: Tokens : ( ALIGNTOK | CONSTTOK | CHARTOK | DOUBLETOK | ENUMTOK | EVENTTOK | FLOATINGPOINTTOK | FLOATTOK | INTEGERTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | STREAMTOK | STRINGTOK | STRUCTTOK | TRACETOK | TYPEALIASTOK | TYPEDEFTOK | UNSIGNEDTOK | VARIANTTOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | ENVTOK | CLOCKTOK | CALLSITETOK | NANNUMBERTOK | INFINITYTOK | NINFINITYTOK | SEPARATOR | COLON | ELIPSES | ASSIGNMENT | TYPE_ASSIGNMENT | LT | GT | OPENBRAC | CLOSEBRAC | LPAREN | RPAREN | LCURL | RCURL | TERM | POINTER | SIGN | ARROW | DOT | OCTAL_LITERAL | DECIMAL_LITERAL | HEX_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | WS | COMMENT | LINE_COMMENT | IDENTIFIER );"; + } + } + +} diff --git a/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.java b/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.java new file mode 100644 index 0000000000..a95266447c --- /dev/null +++ b/lttng/org.eclipse.linuxtools.ctf.parser/target/generated-sources/antlr3/org/eclipse/linuxtools/ctf/parser/CTFParser.java @@ -0,0 +1,8550 @@ +// $ANTLR 3.5.2 org/eclipse/linuxtools/ctf/parser/CTFParser.g 2014-11-28 16:43:12 + +/******************************************************************************* + * Copyright (c) 2010, 2014 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.linuxtools.ctf.parser; + +import java.util.Set; +import java.util.HashSet; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +import org.antlr.runtime.tree.*; + + +@SuppressWarnings("all") +public class CTFParser extends Parser { + public static final String[] tokenNames = new String[] { + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ALIGNTOK", "ARROW", "ASSIGNMENT", + "BACKSLASH", "BOOLTOK", "CALLSITETOK", "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", "CALLSITE", "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 CALLSITETOK=9; + public static final int CHARACTER_LITERAL=10; + public static final int CHARTOK=11; + public static final int CHAR_CONTENT=12; + public static final int CLOCKTOK=13; + public static final int CLOSEBRAC=14; + public static final int COLON=15; + public static final int COMMENT=16; + public static final int COMMENT_CLOSE=17; + public static final int COMMENT_OPEN=18; + public static final int COMPLEXTOK=19; + public static final int CONSTTOK=20; + public static final int DECIMAL_LITERAL=21; + public static final int DIGIT=22; + public static final int DOT=23; + public static final int DOUBLEQUOTE=24; + public static final int DOUBLETOK=25; + public static final int ELIPSES=26; + public static final int ENUMTOK=27; + public static final int ENVTOK=28; + public static final int ESCAPE_SEQUENCE=29; + public static final int EVENTTOK=30; + public static final int FLOATINGPOINTTOK=31; + public static final int FLOATTOK=32; + public static final int GT=33; + public static final int HEXADECIMAL_ESCAPE=34; + public static final int HEX_DIGIT=35; + public static final int HEX_LITERAL=36; + public static final int HEX_PREFIX=37; + public static final int IDENTIFIER=38; + public static final int IMAGINARYTOK=39; + public static final int INFINITYTOK=40; + public static final int INTEGERTOK=41; + public static final int INTEGER_TYPES_SUFFIX=42; + public static final int INTTOK=43; + public static final int LCURL=44; + public static final int LINE_COMMENT=45; + public static final int LONGTOK=46; + public static final int LPAREN=47; + public static final int LT=48; + public static final int NANNUMBERTOK=49; + public static final int NINFINITYTOK=50; + public static final int NONDIGIT=51; + public static final int NONZERO_DIGIT=52; + public static final int OCTAL_ESCAPE=53; + public static final int OCTAL_LITERAL=54; + public static final int OCT_DIGIT=55; + public static final int OCT_PREFIX=56; + public static final int OPENBRAC=57; + public static final int POINTER=58; + public static final int RCURL=59; + public static final int RPAREN=60; + public static final int SEPARATOR=61; + public static final int SHORTTOK=62; + public static final int SIGN=63; + public static final int SIGNEDTOK=64; + public static final int SINGLEQUOTE=65; + public static final int STREAMTOK=66; + public static final int STRINGPREFIX=67; + public static final int STRINGTOK=68; + public static final int STRING_CONTENT=69; + public static final int STRING_LITERAL=70; + public static final int STRUCTTOK=71; + public static final int TERM=72; + public static final int TRACETOK=73; + public static final int TYPEALIASTOK=74; + public static final int TYPEDEFTOK=75; + public static final int TYPE_ASSIGNMENT=76; + public static final int UNICODE_ESCAPE=77; + public static final int UNSIGNEDTOK=78; + public static final int VARIANTTOK=79; + public static final int VOIDTOK=80; + public static final int WS=81; + public static final int ALIGN=82; + public static final int CALLSITE=83; + public static final int CLOCK=84; + public static final int CTF_EXPRESSION_TYPE=85; + public static final int CTF_EXPRESSION_VAL=86; + public static final int CTF_LEFT=87; + public static final int CTF_RIGHT=88; + public static final int DECLARATION=89; + public static final int DECLARATOR=90; + public static final int ENUM=91; + public static final int ENUM_BODY=92; + public static final int ENUM_CONTAINER_TYPE=93; + public static final int ENUM_ENUMERATOR=94; + public static final int ENUM_NAME=95; + public static final int ENUM_VALUE=96; + public static final int ENUM_VALUE_RANGE=97; + public static final int ENV=98; + public static final int EVENT=99; + public static final int FLOATING_POINT=100; + public static final int INTEGER=101; + public static final int LENGTH=102; + public static final int ROOT=103; + public static final int STREAM=104; + public static final int STRING=105; + public static final int STRUCT=106; + public static final int STRUCT_BODY=107; + public static final int STRUCT_NAME=108; + public static final int SV_DECLARATION=109; + public static final int TRACE=110; + public static final int TYPEALIAS=111; + public static final int TYPEALIAS_ALIAS=112; + public static final int TYPEALIAS_TARGET=113; + public static final int TYPEDEF=114; + public static final int TYPE_DECLARATOR=115; + public static final int TYPE_DECLARATOR_LIST=116; + public static final int TYPE_SPECIFIER_LIST=117; + public static final int UNARY_EXPRESSION_DEC=118; + public static final int UNARY_EXPRESSION_HEX=119; + public static final int UNARY_EXPRESSION_OCT=120; + public static final int UNARY_EXPRESSION_STRING=121; + public static final int UNARY_EXPRESSION_STRING_QUOTES=122; + public static final int VARIANT=123; + public static final int VARIANT_BODY=124; + public static final int VARIANT_NAME=125; + public static final int VARIANT_TAG=126; + + // 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/linuxtools/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); + } + } + + boolean _inTypedef = false; + + void typedefOn() { + debug_print("typedefOn"); + _inTypedef = true; + } + + void typedefOff() { + debug_print("typedefOff"); + _inTypedef = false; + } + + boolean inTypedef() { + return _inTypedef; + } + + 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/linuxtools/ctf/parser/CTFParser.g:192: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/linuxtools/ctf/parser/CTFParser.g:197:3: ( ( declaration )+ EOF -> ^( ROOT ( declaration )+ ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:197:5: ( declaration )+ EOF + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:197: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==CALLSITETOK||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/linuxtools/ctf/parser/CTFParser.g:197:5: declaration + { + pushFollow(FOLLOW_declaration_in_parse449); + 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_parse452); 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(); + // 197:22: -> ^( ROOT ( declaration )+ ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:197: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/linuxtools/ctf/parser/CTFParser.g:200: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_SIGN=new RewriteRuleTokenStream(adaptor,"token SIGN"); + RewriteRuleTokenStream stream_OCTAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token OCTAL_LITERAL"); + RewriteRuleTokenStream stream_HEX_LITERAL=new RewriteRuleTokenStream(adaptor,"token HEX_LITERAL"); + RewriteRuleTokenStream stream_DECIMAL_LITERAL=new RewriteRuleTokenStream(adaptor,"token DECIMAL_LITERAL"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:201: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/linuxtools/ctf/parser/CTFParser.g:201: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/linuxtools/ctf/parser/CTFParser.g:201: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/linuxtools/ctf/parser/CTFParser.g:201:5: SIGN + { + SIGN3=(Token)match(input,SIGN,FOLLOW_SIGN_in_numberLiteral474); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SIGN.add(SIGN3); + + } + break; + + default : + break loop2; + } + } + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:202: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/linuxtools/ctf/parser/CTFParser.g:202:9: HEX_LITERAL + { + HEX_LITERAL4=(Token)match(input,HEX_LITERAL,FOLLOW_HEX_LITERAL_in_numberLiteral485); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_HEX_LITERAL.add(HEX_LITERAL4); + + // AST REWRITE + // elements: HEX_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(); + // 202:21: -> ^( UNARY_EXPRESSION_HEX HEX_LITERAL ( SIGN )* ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:202: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/linuxtools/ctf/parser/CTFParser.g:202: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/linuxtools/ctf/parser/CTFParser.g:203:9: DECIMAL_LITERAL + { + DECIMAL_LITERAL5=(Token)match(input,DECIMAL_LITERAL,FOLLOW_DECIMAL_LITERAL_in_numberLiteral506); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DECIMAL_LITERAL.add(DECIMAL_LITERAL5); + + // AST REWRITE + // elements: DECIMAL_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(); + // 203:25: -> ^( UNARY_EXPRESSION_DEC DECIMAL_LITERAL ( SIGN )* ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:203: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/linuxtools/ctf/parser/CTFParser.g:203: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/linuxtools/ctf/parser/CTFParser.g:204:9: OCTAL_LITERAL + { + OCTAL_LITERAL6=(Token)match(input,OCTAL_LITERAL,FOLLOW_OCTAL_LITERAL_in_numberLiteral527); 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(); + // 204:23: -> ^( UNARY_EXPRESSION_OCT OCTAL_LITERAL ( SIGN )* ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:204: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/linuxtools/ctf/parser/CTFParser.g:204: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/linuxtools/ctf/parser/CTFParser.g:208: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/linuxtools/ctf/parser/CTFParser.g:209: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/linuxtools/ctf/parser/CTFParser.g:209:5: ( IDENTIFIER )=> IDENTIFIER + { + IDENTIFIER7=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression565); 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(); + // 210:7: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:210: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/linuxtools/ctf/parser/CTFParser.g:211:5: ( ctfKeyword )=> ctfKeyword + { + pushFollow(FOLLOW_ctfKeyword_in_primaryExpression591); + 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(); + // 211:32: -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:211: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/linuxtools/ctf/parser/CTFParser.g:212:5: ( STRING_LITERAL )=> STRING_LITERAL + { + STRING_LITERAL9=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_primaryExpression611); 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(); + // 213:7: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:213: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/linuxtools/ctf/parser/CTFParser.g:215:5: numberLiteral + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_numberLiteral_in_primaryExpression636); + numberLiteral10=numberLiteral(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, numberLiteral10.getTree()); + + } + break; + case 5 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:216:5: enumConstant + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_enumConstant_in_primaryExpression642); + enumConstant11=enumConstant(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, enumConstant11.getTree()); + + } + break; + case 6 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:217:5: CHARACTER_LITERAL + { + root_0 = (CommonTree)adaptor.nil(); + + + CHARACTER_LITERAL12=(Token)match(input,CHARACTER_LITERAL,FOLLOW_CHARACTER_LITERAL_in_primaryExpression648); 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/linuxtools/ctf/parser/CTFParser.g:220: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/linuxtools/ctf/parser/CTFParser.g:221: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/linuxtools/ctf/parser/CTFParser.g:221:5: OPENBRAC unaryExpression CLOSEBRAC ! + { + root_0 = (CommonTree)adaptor.nil(); + + + OPENBRAC13=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_postfixExpressionSuffix661); 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_postfixExpressionSuffix663); + 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_postfixExpressionSuffix665); if (state.failed) return retval; + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:222:5: (ref= DOT |ref= ARROW ) IDENTIFIER + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:222: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/linuxtools/ctf/parser/CTFParser.g:222:6: ref= DOT + { + ref=(Token)match(input,DOT,FOLLOW_DOT_in_postfixExpressionSuffix675); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_DOT.add(ref); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:222:16: ref= ARROW + { + ref=(Token)match(input,ARROW,FOLLOW_ARROW_in_postfixExpressionSuffix681); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ARROW.add(ref); + + } + break; + + } + + IDENTIFIER16=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_postfixExpressionSuffix684); 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(); + // 223:7: -> ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:223:10: ^( $ref ^( UNARY_EXPRESSION_STRING IDENTIFIER ) ) + { + CommonTree root_1 = (CommonTree)adaptor.nil(); + root_1 = (CommonTree)adaptor.becomeRoot(stream_ref.nextNode(), root_1); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:223: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 postfixExpression_return extends ParserRuleReturnScope { + CommonTree tree; + @Override + public CommonTree getTree() { return tree; } + }; + + + // $ANTLR start "postfixExpression" + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:226:1: postfixExpression : ( primaryExpression ( postfixExpressionSuffix )* | ctfSpecifierHead ( 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 primaryExpression17 =null; + ParserRuleReturnScope postfixExpressionSuffix18 =null; + ParserRuleReturnScope ctfSpecifierHead19 =null; + ParserRuleReturnScope postfixExpressionSuffix20 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:227:3: ( primaryExpression ( postfixExpressionSuffix )* | ctfSpecifierHead ( postfixExpressionSuffix )+ ) + int alt9=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: + { + alt9=1; + } + break; + case EVENTTOK: + { + alt9=1; + } + break; + case CALLSITETOK: + case CLOCKTOK: + case ENVTOK: + case STREAMTOK: + case TRACETOK: + { + alt9=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + throw nvae; + } + switch (alt9) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:227:5: primaryExpression ( postfixExpressionSuffix )* + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_primaryExpression_in_postfixExpression716); + primaryExpression17=primaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, primaryExpression17.getTree()); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:227:23: ( 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/linuxtools/ctf/parser/CTFParser.g:227:23: postfixExpressionSuffix + { + pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression718); + postfixExpressionSuffix18=postfixExpressionSuffix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpressionSuffix18.getTree()); + + } + break; + + default : + break loop7; + } + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:228:5: ctfSpecifierHead ( postfixExpressionSuffix )+ + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_ctfSpecifierHead_in_postfixExpression725); + ctfSpecifierHead19=ctfSpecifierHead(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfSpecifierHead19.getTree()); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:228:22: ( postfixExpressionSuffix )+ + int cnt8=0; + loop8: + while (true) { + int alt8=2; + int LA8_0 = input.LA(1); + if ( (LA8_0==ARROW||LA8_0==DOT||LA8_0==OPENBRAC) ) { + alt8=1; + } + + switch (alt8) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:228:22: postfixExpressionSuffix + { + pushFollow(FOLLOW_postfixExpressionSuffix_in_postfixExpression727); + postfixExpressionSuffix20=postfixExpressionSuffix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpressionSuffix20.getTree()); + + } + break; + + default : + if ( cnt8 >= 1 ) break loop8; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(8, input); + throw eee; + } + cnt8++; + } + + } + 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/linuxtools/ctf/parser/CTFParser.g:231: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 postfixExpression21 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:232:3: ( postfixExpression ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:232:5: postfixExpression + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_postfixExpression_in_unaryExpression743); + postfixExpression21=postfixExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, postfixExpression21.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/linuxtools/ctf/parser/CTFParser.g:236: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_LITERAL22=null; + Token IDENTIFIER23=null; + ParserRuleReturnScope ctfKeyword24 =null; + + CommonTree STRING_LITERAL22_tree=null; + CommonTree IDENTIFIER23_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/linuxtools/ctf/parser/CTFParser.g:237:3: ( STRING_LITERAL -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) | IDENTIFIER -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) | ctfKeyword -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) ) + int alt10=3; + switch ( input.LA(1) ) { + case STRING_LITERAL: + { + alt10=1; + } + break; + case IDENTIFIER: + { + alt10=2; + } + break; + case ALIGNTOK: + case EVENTTOK: + case SIGNEDTOK: + case STRINGTOK: + { + alt10=3; + } + 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/linuxtools/ctf/parser/CTFParser.g:237:5: STRING_LITERAL + { + STRING_LITERAL22=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_enumConstant760); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRING_LITERAL.add(STRING_LITERAL22); + + // 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(); + // 237:20: -> ^( UNARY_EXPRESSION_STRING_QUOTES STRING_LITERAL ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:237: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/linuxtools/ctf/parser/CTFParser.g:238:5: IDENTIFIER + { + IDENTIFIER23=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumConstant774); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER23); + + // 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(); + // 238:16: -> ^( UNARY_EXPRESSION_STRING IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:238: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/linuxtools/ctf/parser/CTFParser.g:239:5: ctfKeyword + { + pushFollow(FOLLOW_ctfKeyword_in_enumConstant788); + ctfKeyword24=ctfKeyword(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfKeyword.add(ctfKeyword24.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(); + // 239:16: -> ^( UNARY_EXPRESSION_STRING ctfKeyword ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:239: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" + + + public static class declaration_return extends ParserRuleReturnScope { + CommonTree tree; + @Override + public CommonTree getTree() { return tree; } + }; + + + // $ANTLR start "declaration" + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:244:1: declaration : ( declarationSpecifiers ( declaratorList )? TERM -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ctfSpecifier TERM !); + public final CTFParser.declaration_return declaration() throws RecognitionException { + CTFParser.declaration_return retval = new CTFParser.declaration_return(); + retval.start = input.LT(1); + + CommonTree root_0 = null; + + Token TERM27=null; + Token TERM29=null; + ParserRuleReturnScope declarationSpecifiers25 =null; + ParserRuleReturnScope declaratorList26 =null; + ParserRuleReturnScope ctfSpecifier28 =null; + + CommonTree TERM27_tree=null; + CommonTree TERM29_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"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:250:3: ( declarationSpecifiers ( declaratorList )? TERM -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) | ctfSpecifier TERM !) + int alt12=2; + int LA12_0 = input.LA(1); + if ( (LA12_0==BOOLTOK||LA12_0==CHARTOK||(LA12_0 >= COMPLEXTOK && LA12_0 <= CONSTTOK)||LA12_0==DOUBLETOK||LA12_0==ENUMTOK||(LA12_0 >= FLOATINGPOINTTOK && LA12_0 <= FLOATTOK)||LA12_0==IMAGINARYTOK||LA12_0==INTEGERTOK||LA12_0==INTTOK||LA12_0==LONGTOK||LA12_0==SHORTTOK||LA12_0==SIGNEDTOK||LA12_0==STRINGTOK||LA12_0==STRUCTTOK||LA12_0==TYPEDEFTOK||(LA12_0 >= UNSIGNEDTOK && LA12_0 <= VOIDTOK)) ) { + alt12=1; + } + else if ( (LA12_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt12=1; + } + else if ( (LA12_0==CALLSITETOK||LA12_0==CLOCKTOK||LA12_0==ENVTOK||LA12_0==EVENTTOK||LA12_0==STREAMTOK||(LA12_0 >= TRACETOK && LA12_0 <= TYPEALIASTOK)) ) { + alt12=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 12, 0, input); + throw nvae; + } + + switch (alt12) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:250:5: declarationSpecifiers ( declaratorList )? TERM + { + pushFollow(FOLLOW_declarationSpecifiers_in_declaration816); + declarationSpecifiers25=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers25.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:250:27: ( declaratorList )? + int alt11=2; + int LA11_0 = input.LA(1); + if ( (LA11_0==IDENTIFIER||LA11_0==POINTER) ) { + alt11=1; + } + switch (alt11) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:250:27: declaratorList + { + pushFollow(FOLLOW_declaratorList_in_declaration818); + declaratorList26=declaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList26.getTree()); + } + break; + + } + + TERM27=(Token)match(input,TERM,FOLLOW_TERM_in_declaration821); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TERM.add(TERM27); + + // AST REWRITE + // elements: declaratorList, declarationSpecifiers, 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(); + // 253:7: -> {inTypedef()}? ^( DECLARATION ^( TYPEDEF declaratorList declarationSpecifiers ) ) + if (inTypedef()) { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:254: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/linuxtools/ctf/parser/CTFParser.g:254: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 // 255:7: -> ^( DECLARATION declarationSpecifiers ( declaratorList )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:255: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/linuxtools/ctf/parser/CTFParser.g:255: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/linuxtools/ctf/parser/CTFParser.g:256:5: ctfSpecifier TERM ! + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_ctfSpecifier_in_declaration889); + ctfSpecifier28=ctfSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfSpecifier28.getTree()); + + TERM29=(Token)match(input,TERM,FOLLOW_TERM_in_declaration891); 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); + } + if ( state.backtracking==0 ) { + if (inTypedef()) { + typedefOff(); + } + } + } + + catch (RecognitionException e) { + throw e; + } + + finally { + // do for sure before leaving + } + 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/linuxtools/ctf/parser/CTFParser.g:259: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 storageClassSpecifier30 =null; + ParserRuleReturnScope typeQualifier31 =null; + ParserRuleReturnScope typeSpecifier32 =null; + + RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); + RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier"); + RewriteRuleSubtreeStream stream_storageClassSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule storageClassSpecifier"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:260:3: ( ( storageClassSpecifier | typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:260:5: ( storageClassSpecifier | typeQualifier | typeSpecifier )+ + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:260:5: ( storageClassSpecifier | typeQualifier | typeSpecifier )+ + int cnt13=0; + loop13: + while (true) { + int alt13=4; + switch ( input.LA(1) ) { + case IDENTIFIER: + { + int LA13_2 = input.LA(2); + if ( ((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))) ) { + alt13=3; + } + + } + break; + case TYPEDEFTOK: + { + alt13=1; + } + break; + case CONSTTOK: + { + alt13=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: + { + alt13=3; + } + break; + } + switch (alt13) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:263:9: storageClassSpecifier + { + pushFollow(FOLLOW_storageClassSpecifier_in_declarationSpecifiers929); + storageClassSpecifier30=storageClassSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_storageClassSpecifier.add(storageClassSpecifier30.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:264:9: typeQualifier + { + pushFollow(FOLLOW_typeQualifier_in_declarationSpecifiers939); + typeQualifier31=typeQualifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier31.getTree()); + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:265:9: typeSpecifier + { + pushFollow(FOLLOW_typeSpecifier_in_declarationSpecifiers949); + typeSpecifier32=typeSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeSpecifier.add(typeSpecifier32.getTree()); + } + break; + + default : + if ( cnt13 >= 1 ) break loop13; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(13, input); + throw eee; + } + cnt13++; + } + + // AST REWRITE + // elements: typeSpecifier, typeQualifier + // 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(); + // 266:6: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:266: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/linuxtools/ctf/parser/CTFParser.g:266:31: ( typeQualifier )* + while ( stream_typeQualifier.hasNext() ) { + adaptor.addChild(root_1, stream_typeQualifier.nextTree()); + } + stream_typeQualifier.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:266: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/linuxtools/ctf/parser/CTFParser.g:269: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 SEPARATOR34=null; + ParserRuleReturnScope declarator33 =null; + ParserRuleReturnScope declarator35 =null; + + CommonTree SEPARATOR34_tree=null; + RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); + RewriteRuleSubtreeStream stream_declarator=new RewriteRuleSubtreeStream(adaptor,"rule declarator"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:270:3: ( declarator ( SEPARATOR declarator )* -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:270:5: declarator ( SEPARATOR declarator )* + { + pushFollow(FOLLOW_declarator_in_declaratorList979); + declarator33=declarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarator.add(declarator33.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:270:16: ( SEPARATOR declarator )* + loop14: + while (true) { + int alt14=2; + int LA14_0 = input.LA(1); + if ( (LA14_0==SEPARATOR) ) { + alt14=1; + } + + switch (alt14) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:270:17: SEPARATOR declarator + { + SEPARATOR34=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_declaratorList982); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR34); + + pushFollow(FOLLOW_declarator_in_declaratorList984); + declarator35=declarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarator.add(declarator35.getTree()); + } + break; + + default : + break loop14; + } + } + + // 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(); + // 271:7: -> ^( TYPE_DECLARATOR_LIST ( declarator )+ ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:271: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/linuxtools/ctf/parser/CTFParser.g:274: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 SEPARATOR37=null; + ParserRuleReturnScope abstractDeclarator36 =null; + ParserRuleReturnScope abstractDeclarator38 =null; + + CommonTree SEPARATOR37_tree=null; + RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); + RewriteRuleSubtreeStream stream_abstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule abstractDeclarator"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:275:3: ( abstractDeclarator ( SEPARATOR abstractDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:275:5: abstractDeclarator ( SEPARATOR abstractDeclarator )* + { + pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList1014); + abstractDeclarator36=abstractDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator36.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:275:24: ( SEPARATOR abstractDeclarator )* + loop15: + while (true) { + int alt15=2; + int LA15_0 = input.LA(1); + if ( (LA15_0==SEPARATOR) ) { + alt15=1; + } + + switch (alt15) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:275:25: SEPARATOR abstractDeclarator + { + SEPARATOR37=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_abstractDeclaratorList1017); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR37); + + pushFollow(FOLLOW_abstractDeclarator_in_abstractDeclaratorList1019); + abstractDeclarator38=abstractDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_abstractDeclarator.add(abstractDeclarator38.getTree()); + } + break; + + default : + break loop15; + } + } + + // 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(); + // 276:7: -> ^( TYPE_DECLARATOR_LIST ( abstractDeclarator )+ ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:276: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/linuxtools/ctf/parser/CTFParser.g:279: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 TYPEDEFTOK39=null; + + CommonTree TYPEDEFTOK39_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:280:3: ( TYPEDEFTOK ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:280:5: TYPEDEFTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + TYPEDEFTOK39=(Token)match(input,TYPEDEFTOK,FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1049); if (state.failed) return retval; + if ( state.backtracking==0 ) { + TYPEDEFTOK39_tree = (CommonTree)adaptor.create(TYPEDEFTOK39); + adaptor.addChild(root_0, TYPEDEFTOK39_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/linuxtools/ctf/parser/CTFParser.g:283: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 FLOATTOK40=null; + Token INTTOK41=null; + Token LONGTOK42=null; + Token SHORTTOK43=null; + Token SIGNEDTOK44=null; + Token UNSIGNEDTOK45=null; + Token CHARTOK46=null; + Token DOUBLETOK47=null; + Token VOIDTOK48=null; + Token BOOLTOK49=null; + Token COMPLEXTOK50=null; + Token IMAGINARYTOK51=null; + ParserRuleReturnScope structSpecifier52 =null; + ParserRuleReturnScope variantSpecifier53 =null; + ParserRuleReturnScope enumSpecifier54 =null; + ParserRuleReturnScope ctfTypeSpecifier55 =null; + ParserRuleReturnScope typedefName56 =null; + + CommonTree FLOATTOK40_tree=null; + CommonTree INTTOK41_tree=null; + CommonTree LONGTOK42_tree=null; + CommonTree SHORTTOK43_tree=null; + CommonTree SIGNEDTOK44_tree=null; + CommonTree UNSIGNEDTOK45_tree=null; + CommonTree CHARTOK46_tree=null; + CommonTree DOUBLETOK47_tree=null; + CommonTree VOIDTOK48_tree=null; + CommonTree BOOLTOK49_tree=null; + CommonTree COMPLEXTOK50_tree=null; + CommonTree IMAGINARYTOK51_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:284:3: ( FLOATTOK | INTTOK | LONGTOK | SHORTTOK | SIGNEDTOK | UNSIGNEDTOK | CHARTOK | DOUBLETOK | VOIDTOK | BOOLTOK | COMPLEXTOK | IMAGINARYTOK | structSpecifier | variantSpecifier | enumSpecifier | ctfTypeSpecifier |{...}? => typedefName ) + int alt16=17; + int LA16_0 = input.LA(1); + if ( (LA16_0==FLOATTOK) ) { + alt16=1; + } + else if ( (LA16_0==INTTOK) ) { + alt16=2; + } + else if ( (LA16_0==LONGTOK) ) { + alt16=3; + } + else if ( (LA16_0==SHORTTOK) ) { + alt16=4; + } + else if ( (LA16_0==SIGNEDTOK) ) { + alt16=5; + } + else if ( (LA16_0==UNSIGNEDTOK) ) { + alt16=6; + } + else if ( (LA16_0==CHARTOK) ) { + alt16=7; + } + else if ( (LA16_0==DOUBLETOK) ) { + alt16=8; + } + else if ( (LA16_0==VOIDTOK) ) { + alt16=9; + } + else if ( (LA16_0==BOOLTOK) ) { + alt16=10; + } + else if ( (LA16_0==COMPLEXTOK) ) { + alt16=11; + } + else if ( (LA16_0==IMAGINARYTOK) ) { + alt16=12; + } + else if ( (LA16_0==STRUCTTOK) ) { + alt16=13; + } + else if ( (LA16_0==VARIANTTOK) ) { + alt16=14; + } + else if ( (LA16_0==ENUMTOK) ) { + alt16=15; + } + else if ( (LA16_0==FLOATINGPOINTTOK||LA16_0==INTEGERTOK||LA16_0==STRINGTOK) ) { + alt16=16; + } + else if ( (LA16_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt16=17; + } + + switch (alt16) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:284:5: FLOATTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + FLOATTOK40=(Token)match(input,FLOATTOK,FOLLOW_FLOATTOK_in_typeSpecifier1065); if (state.failed) return retval; + if ( state.backtracking==0 ) { + FLOATTOK40_tree = (CommonTree)adaptor.create(FLOATTOK40); + adaptor.addChild(root_0, FLOATTOK40_tree); + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:285:5: INTTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + INTTOK41=(Token)match(input,INTTOK,FOLLOW_INTTOK_in_typeSpecifier1071); if (state.failed) return retval; + if ( state.backtracking==0 ) { + INTTOK41_tree = (CommonTree)adaptor.create(INTTOK41); + adaptor.addChild(root_0, INTTOK41_tree); + } + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:286:5: LONGTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + LONGTOK42=(Token)match(input,LONGTOK,FOLLOW_LONGTOK_in_typeSpecifier1077); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LONGTOK42_tree = (CommonTree)adaptor.create(LONGTOK42); + adaptor.addChild(root_0, LONGTOK42_tree); + } + + } + break; + case 4 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:287:5: SHORTTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + SHORTTOK43=(Token)match(input,SHORTTOK,FOLLOW_SHORTTOK_in_typeSpecifier1083); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SHORTTOK43_tree = (CommonTree)adaptor.create(SHORTTOK43); + adaptor.addChild(root_0, SHORTTOK43_tree); + } + + } + break; + case 5 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:288:5: SIGNEDTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + SIGNEDTOK44=(Token)match(input,SIGNEDTOK,FOLLOW_SIGNEDTOK_in_typeSpecifier1089); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SIGNEDTOK44_tree = (CommonTree)adaptor.create(SIGNEDTOK44); + adaptor.addChild(root_0, SIGNEDTOK44_tree); + } + + } + break; + case 6 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:289:5: UNSIGNEDTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + UNSIGNEDTOK45=(Token)match(input,UNSIGNEDTOK,FOLLOW_UNSIGNEDTOK_in_typeSpecifier1095); if (state.failed) return retval; + if ( state.backtracking==0 ) { + UNSIGNEDTOK45_tree = (CommonTree)adaptor.create(UNSIGNEDTOK45); + adaptor.addChild(root_0, UNSIGNEDTOK45_tree); + } + + } + break; + case 7 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:290:5: CHARTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + CHARTOK46=(Token)match(input,CHARTOK,FOLLOW_CHARTOK_in_typeSpecifier1101); if (state.failed) return retval; + if ( state.backtracking==0 ) { + CHARTOK46_tree = (CommonTree)adaptor.create(CHARTOK46); + adaptor.addChild(root_0, CHARTOK46_tree); + } + + } + break; + case 8 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:291:5: DOUBLETOK + { + root_0 = (CommonTree)adaptor.nil(); + + + DOUBLETOK47=(Token)match(input,DOUBLETOK,FOLLOW_DOUBLETOK_in_typeSpecifier1107); if (state.failed) return retval; + if ( state.backtracking==0 ) { + DOUBLETOK47_tree = (CommonTree)adaptor.create(DOUBLETOK47); + adaptor.addChild(root_0, DOUBLETOK47_tree); + } + + } + break; + case 9 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:292:5: VOIDTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + VOIDTOK48=(Token)match(input,VOIDTOK,FOLLOW_VOIDTOK_in_typeSpecifier1113); if (state.failed) return retval; + if ( state.backtracking==0 ) { + VOIDTOK48_tree = (CommonTree)adaptor.create(VOIDTOK48); + adaptor.addChild(root_0, VOIDTOK48_tree); + } + + } + break; + case 10 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:293:5: BOOLTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + BOOLTOK49=(Token)match(input,BOOLTOK,FOLLOW_BOOLTOK_in_typeSpecifier1119); if (state.failed) return retval; + if ( state.backtracking==0 ) { + BOOLTOK49_tree = (CommonTree)adaptor.create(BOOLTOK49); + adaptor.addChild(root_0, BOOLTOK49_tree); + } + + } + break; + case 11 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:294:5: COMPLEXTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + COMPLEXTOK50=(Token)match(input,COMPLEXTOK,FOLLOW_COMPLEXTOK_in_typeSpecifier1125); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMPLEXTOK50_tree = (CommonTree)adaptor.create(COMPLEXTOK50); + adaptor.addChild(root_0, COMPLEXTOK50_tree); + } + + } + break; + case 12 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:295:5: IMAGINARYTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + IMAGINARYTOK51=(Token)match(input,IMAGINARYTOK,FOLLOW_IMAGINARYTOK_in_typeSpecifier1131); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IMAGINARYTOK51_tree = (CommonTree)adaptor.create(IMAGINARYTOK51); + adaptor.addChild(root_0, IMAGINARYTOK51_tree); + } + + } + break; + case 13 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:296:5: structSpecifier + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_structSpecifier_in_typeSpecifier1137); + structSpecifier52=structSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, structSpecifier52.getTree()); + + } + break; + case 14 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:297:5: variantSpecifier + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_variantSpecifier_in_typeSpecifier1143); + variantSpecifier53=variantSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, variantSpecifier53.getTree()); + + } + break; + case 15 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:298:5: enumSpecifier + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_enumSpecifier_in_typeSpecifier1149); + enumSpecifier54=enumSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, enumSpecifier54.getTree()); + + } + break; + case 16 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:299:5: ctfTypeSpecifier + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_ctfTypeSpecifier_in_typeSpecifier1155); + ctfTypeSpecifier55=ctfTypeSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfTypeSpecifier55.getTree()); + + } + break; + case 17 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:300: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_typeSpecifier1165); + typedefName56=typedefName(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, typedefName56.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/linuxtools/ctf/parser/CTFParser.g:303: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 CONSTTOK57=null; + + CommonTree CONSTTOK57_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:304:3: ( CONSTTOK ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:304:5: CONSTTOK + { + root_0 = (CommonTree)adaptor.nil(); + + + CONSTTOK57=(Token)match(input,CONSTTOK,FOLLOW_CONSTTOK_in_typeQualifier1178); if (state.failed) return retval; + if ( state.backtracking==0 ) { + CONSTTOK57_tree = (CommonTree)adaptor.create(CONSTTOK57); + adaptor.addChild(root_0, CONSTTOK57_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/linuxtools/ctf/parser/CTFParser.g:307: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 ALIGNTOK58=null; + Token LPAREN59=null; + Token RPAREN61=null; + ParserRuleReturnScope unaryExpression60 =null; + + CommonTree ALIGNTOK58_tree=null; + CommonTree LPAREN59_tree=null; + CommonTree RPAREN61_tree=null; + RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN"); + RewriteRuleTokenStream stream_ALIGNTOK=new RewriteRuleTokenStream(adaptor,"token ALIGNTOK"); + RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN"); + RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:308:3: ( ALIGNTOK LPAREN unaryExpression RPAREN -> ^( ALIGN unaryExpression ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:308:5: ALIGNTOK LPAREN unaryExpression RPAREN + { + ALIGNTOK58=(Token)match(input,ALIGNTOK,FOLLOW_ALIGNTOK_in_alignAttribute1191); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ALIGNTOK.add(ALIGNTOK58); + + LPAREN59=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_alignAttribute1193); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN59); + + pushFollow(FOLLOW_unaryExpression_in_alignAttribute1195); + unaryExpression60=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_unaryExpression.add(unaryExpression60.getTree()); + RPAREN61=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_alignAttribute1197); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN61); + + // 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(); + // 308:44: -> ^( ALIGN unaryExpression ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:308: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/linuxtools/ctf/parser/CTFParser.g:312: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 LCURL62=null; + Token RCURL64=null; + ParserRuleReturnScope structOrVariantDeclarationList63 =null; + + CommonTree LCURL62_tree=null; + CommonTree RCURL64_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/linuxtools/ctf/parser/CTFParser.g:317:3: ( LCURL ( structOrVariantDeclarationList )? RCURL -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:317:5: LCURL ( structOrVariantDeclarationList )? RCURL + { + LCURL62=(Token)match(input,LCURL,FOLLOW_LCURL_in_structBody1231); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LCURL.add(LCURL62); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:317:11: ( structOrVariantDeclarationList )? + int alt17=2; + int LA17_0 = input.LA(1); + if ( (LA17_0==BOOLTOK||LA17_0==CHARTOK||(LA17_0 >= COMPLEXTOK && LA17_0 <= CONSTTOK)||LA17_0==DOUBLETOK||LA17_0==ENUMTOK||(LA17_0 >= FLOATINGPOINTTOK && LA17_0 <= FLOATTOK)||LA17_0==IMAGINARYTOK||LA17_0==INTEGERTOK||LA17_0==INTTOK||LA17_0==LONGTOK||LA17_0==SHORTTOK||LA17_0==SIGNEDTOK||LA17_0==STRINGTOK||LA17_0==STRUCTTOK||LA17_0==TYPEDEFTOK||(LA17_0 >= UNSIGNEDTOK && LA17_0 <= VOIDTOK)) ) { + alt17=1; + } + else if ( (LA17_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt17=1; + } + else if ( (LA17_0==TYPEALIASTOK) ) { + alt17=1; + } + switch (alt17) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:317:11: structOrVariantDeclarationList + { + pushFollow(FOLLOW_structOrVariantDeclarationList_in_structBody1233); + structOrVariantDeclarationList63=structOrVariantDeclarationList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structOrVariantDeclarationList.add(structOrVariantDeclarationList63.getTree()); + } + break; + + } + + RCURL64=(Token)match(input,RCURL,FOLLOW_RCURL_in_structBody1236); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RCURL.add(RCURL64); + + // 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(); + // 318:7: -> ^( STRUCT_BODY ( structOrVariantDeclarationList )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:318: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/linuxtools/ctf/parser/CTFParser.g:318: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/linuxtools/ctf/parser/CTFParser.g:321: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 STRUCTTOK65=null; + ParserRuleReturnScope structName66 =null; + ParserRuleReturnScope alignAttribute67 =null; + ParserRuleReturnScope structBody68 =null; + ParserRuleReturnScope alignAttribute69 =null; + ParserRuleReturnScope structBody70 =null; + ParserRuleReturnScope alignAttribute71 =null; + + CommonTree STRUCTTOK65_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/linuxtools/ctf/parser/CTFParser.g:322:3: ( STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:322:5: STRUCTTOK ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) + { + STRUCTTOK65=(Token)match(input,STRUCTTOK,FOLLOW_STRUCTTOK_in_structSpecifier1264); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRUCTTOK.add(STRUCTTOK65); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:323:3: ( ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) | ( structBody ( alignAttribute |) ) ) + int alt21=2; + int LA21_0 = input.LA(1); + if ( (LA21_0==IDENTIFIER) ) { + alt21=1; + } + else if ( (LA21_0==LCURL) ) { + 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/linuxtools/ctf/parser/CTFParser.g:325:5: ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:325:5: ( structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:326:9: structName ( alignAttribute | ( structBody ( alignAttribute |) ) |) + { + pushFollow(FOLLOW_structName_in_structSpecifier1289); + structName66=structName(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structName.add(structName66.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:327:9: ( alignAttribute | ( structBody ( alignAttribute |) ) |) + int alt19=3; + switch ( input.LA(1) ) { + case ALIGNTOK: + { + alt19=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: + { + alt19=2; + } + break; + case SIGNEDTOK: + { + int LA19_5 = input.LA(3); + if ( (LA19_5==BOOLTOK||LA19_5==CHARTOK||(LA19_5 >= COMPLEXTOK && LA19_5 <= CONSTTOK)||LA19_5==DOUBLETOK||LA19_5==ENUMTOK||(LA19_5 >= FLOATINGPOINTTOK && LA19_5 <= FLOATTOK)||(LA19_5 >= IDENTIFIER && LA19_5 <= IMAGINARYTOK)||LA19_5==INTEGERTOK||LA19_5==INTTOK||LA19_5==LONGTOK||LA19_5==POINTER||LA19_5==SHORTTOK||LA19_5==SIGNEDTOK||LA19_5==STRINGTOK||LA19_5==STRUCTTOK||LA19_5==TYPEDEFTOK||(LA19_5 >= UNSIGNEDTOK && LA19_5 <= VOIDTOK)) ) { + alt19=2; + } + else if ( (LA19_5==ASSIGNMENT||LA19_5==RCURL||LA19_5==SEPARATOR) ) { + alt19=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("", 19, 5, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case STRINGTOK: + { + int LA19_6 = input.LA(3); + if ( (LA19_6==BOOLTOK||LA19_6==CHARTOK||(LA19_6 >= COMPLEXTOK && LA19_6 <= CONSTTOK)||LA19_6==DOUBLETOK||LA19_6==ENUMTOK||(LA19_6 >= FLOATINGPOINTTOK && LA19_6 <= FLOATTOK)||(LA19_6 >= IDENTIFIER && LA19_6 <= IMAGINARYTOK)||LA19_6==INTEGERTOK||(LA19_6 >= INTTOK && LA19_6 <= LCURL)||LA19_6==LONGTOK||LA19_6==POINTER||LA19_6==SHORTTOK||LA19_6==SIGNEDTOK||LA19_6==STRINGTOK||LA19_6==STRUCTTOK||LA19_6==TYPEDEFTOK||(LA19_6 >= UNSIGNEDTOK && LA19_6 <= VOIDTOK)) ) { + alt19=2; + } + else if ( (LA19_6==ASSIGNMENT||LA19_6==RCURL||LA19_6==SEPARATOR) ) { + alt19=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("", 19, 6, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case IDENTIFIER: + { + int LA19_7 = input.LA(3); + if ( (LA19_7==BOOLTOK||LA19_7==CHARTOK||(LA19_7 >= COMPLEXTOK && LA19_7 <= CONSTTOK)||LA19_7==DOUBLETOK||LA19_7==ENUMTOK||(LA19_7 >= FLOATINGPOINTTOK && LA19_7 <= FLOATTOK)||(LA19_7 >= IDENTIFIER && LA19_7 <= IMAGINARYTOK)||LA19_7==INTEGERTOK||LA19_7==INTTOK||LA19_7==LONGTOK||LA19_7==POINTER||LA19_7==SHORTTOK||LA19_7==SIGNEDTOK||LA19_7==STRINGTOK||LA19_7==STRUCTTOK||LA19_7==TYPEDEFTOK||(LA19_7 >= UNSIGNEDTOK && LA19_7 <= VOIDTOK)) ) { + alt19=2; + } + else if ( (LA19_7==ASSIGNMENT||LA19_7==RCURL||LA19_7==SEPARATOR) ) { + alt19=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("", 19, 7, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case ALIGNTOK: + case EVENTTOK: + case STRING_LITERAL: + { + alt19=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 19, 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: + { + alt19=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); + throw nvae; + } + switch (alt19) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:328:11: alignAttribute + { + pushFollow(FOLLOW_alignAttribute_in_structSpecifier1311); + alignAttribute67=alignAttribute(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute67.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:330:11: ( structBody ( alignAttribute |) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:330:11: ( structBody ( alignAttribute |) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:331:13: structBody ( alignAttribute |) + { + pushFollow(FOLLOW_structBody_in_structSpecifier1347); + structBody68=structBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structBody.add(structBody68.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:332:13: ( alignAttribute |) + int alt18=2; + int LA18_0 = input.LA(1); + if ( (LA18_0==ALIGNTOK) ) { + alt18=1; + } + else if ( (LA18_0==EOF||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 >= IDENTIFIER && LA18_0 <= IMAGINARYTOK)||LA18_0==INTEGERTOK||(LA18_0 >= INTTOK && LA18_0 <= LCURL)||(LA18_0 >= LONGTOK && LA18_0 <= LPAREN)||LA18_0==POINTER||LA18_0==SHORTTOK||LA18_0==SIGNEDTOK||LA18_0==STRINGTOK||(LA18_0 >= STRUCTTOK && LA18_0 <= TERM)||(LA18_0 >= TYPEDEFTOK && LA18_0 <= TYPE_ASSIGNMENT)||(LA18_0 >= UNSIGNEDTOK && LA18_0 <= VOIDTOK)) ) { + alt18=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + throw nvae; + } + + switch (alt18) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:333:14: alignAttribute + { + pushFollow(FOLLOW_alignAttribute_in_structSpecifier1378); + alignAttribute69=alignAttribute(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute69.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:336:13: + { + } + break; + + } + + } + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:340:9: + { + } + break; + + } + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:344:5: ( structBody ( alignAttribute |) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:344:5: ( structBody ( alignAttribute |) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:345:7: structBody ( alignAttribute |) + { + pushFollow(FOLLOW_structBody_in_structSpecifier1494); + structBody70=structBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structBody.add(structBody70.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:346:7: ( alignAttribute |) + int alt20=2; + int LA20_0 = input.LA(1); + if ( (LA20_0==ALIGNTOK) ) { + alt20=1; + } + else if ( (LA20_0==EOF||LA20_0==BOOLTOK||LA20_0==CHARTOK||(LA20_0 >= COMPLEXTOK && LA20_0 <= CONSTTOK)||LA20_0==DOUBLETOK||LA20_0==ENUMTOK||(LA20_0 >= FLOATINGPOINTTOK && LA20_0 <= FLOATTOK)||(LA20_0 >= IDENTIFIER && LA20_0 <= IMAGINARYTOK)||LA20_0==INTEGERTOK||(LA20_0 >= INTTOK && LA20_0 <= LCURL)||(LA20_0 >= LONGTOK && LA20_0 <= LPAREN)||LA20_0==POINTER||LA20_0==SHORTTOK||LA20_0==SIGNEDTOK||LA20_0==STRINGTOK||(LA20_0 >= STRUCTTOK && LA20_0 <= TERM)||(LA20_0 >= TYPEDEFTOK && LA20_0 <= TYPE_ASSIGNMENT)||(LA20_0 >= UNSIGNEDTOK && LA20_0 <= VOIDTOK)) ) { + alt20=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + throw nvae; + } + + switch (alt20) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:347:9: alignAttribute + { + pushFollow(FOLLOW_alignAttribute_in_structSpecifier1512); + alignAttribute71=alignAttribute(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_alignAttribute.add(alignAttribute71.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:350: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(); + // 352:5: -> ^( STRUCT ( structName )? ( structBody )? ( alignAttribute )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:352: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/linuxtools/ctf/parser/CTFParser.g:352:17: ( structName )? + if ( stream_structName.hasNext() ) { + adaptor.addChild(root_1, stream_structName.nextTree()); + } + stream_structName.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:352:29: ( structBody )? + if ( stream_structBody.hasNext() ) { + adaptor.addChild(root_1, stream_structBody.nextTree()); + } + stream_structBody.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:352: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/linuxtools/ctf/parser/CTFParser.g:355: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 IDENTIFIER72=null; + + CommonTree IDENTIFIER72_tree=null; + RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:356:3: ( IDENTIFIER -> ^( STRUCT_NAME IDENTIFIER ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:356:5: IDENTIFIER + { + IDENTIFIER72=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_structName1578); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER72); + + // 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(); + // 356:16: -> ^( STRUCT_NAME IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:356: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/linuxtools/ctf/parser/CTFParser.g:359: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 structOrVariantDeclaration73 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:360:3: ( ( structOrVariantDeclaration )+ ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:360:5: ( structOrVariantDeclaration )+ + { + root_0 = (CommonTree)adaptor.nil(); + + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:360:5: ( structOrVariantDeclaration )+ + int cnt22=0; + loop22: + while (true) { + int alt22=2; + int LA22_0 = input.LA(1); + if ( (LA22_0==BOOLTOK||LA22_0==CHARTOK||(LA22_0 >= COMPLEXTOK && LA22_0 <= CONSTTOK)||LA22_0==DOUBLETOK||LA22_0==ENUMTOK||(LA22_0 >= FLOATINGPOINTTOK && LA22_0 <= FLOATTOK)||LA22_0==IMAGINARYTOK||LA22_0==INTEGERTOK||LA22_0==INTTOK||LA22_0==LONGTOK||LA22_0==SHORTTOK||LA22_0==SIGNEDTOK||LA22_0==STRINGTOK||LA22_0==STRUCTTOK||LA22_0==TYPEDEFTOK||(LA22_0 >= UNSIGNEDTOK && LA22_0 <= VOIDTOK)) ) { + alt22=1; + } + else if ( (LA22_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt22=1; + } + else if ( (LA22_0==TYPEALIASTOK) ) { + alt22=1; + } + + switch (alt22) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:360:5: structOrVariantDeclaration + { + pushFollow(FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1599); + structOrVariantDeclaration73=structOrVariantDeclaration(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, structOrVariantDeclaration73.getTree()); + + } + break; + + default : + if ( cnt22 >= 1 ) break loop22; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(22, input); + throw eee; + } + cnt22++; + } + + } + + 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/linuxtools/ctf/parser/CTFParser.g:363: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 TERM78=null; + ParserRuleReturnScope declarationSpecifiers74 =null; + ParserRuleReturnScope declaratorList75 =null; + ParserRuleReturnScope structOrVariantDeclaratorList76 =null; + ParserRuleReturnScope typealiasDecl77 =null; + + CommonTree TERM78_tree=null; + RewriteRuleTokenStream stream_TERM=new RewriteRuleTokenStream(adaptor,"token TERM"); + RewriteRuleSubtreeStream stream_declaratorList=new RewriteRuleSubtreeStream(adaptor,"rule declaratorList"); + RewriteRuleSubtreeStream stream_typealiasDecl=new RewriteRuleSubtreeStream(adaptor,"rule typealiasDecl"); + RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); + RewriteRuleSubtreeStream stream_structOrVariantDeclaratorList=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclaratorList"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:364:3: ( ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:365:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) TERM + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:365:3: ( ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) | typealiasDecl -> typealiasDecl ) + int alt24=2; + int LA24_0 = input.LA(1); + if ( (LA24_0==BOOLTOK||LA24_0==CHARTOK||(LA24_0 >= COMPLEXTOK && LA24_0 <= CONSTTOK)||LA24_0==DOUBLETOK||LA24_0==ENUMTOK||(LA24_0 >= FLOATINGPOINTTOK && LA24_0 <= FLOATTOK)||LA24_0==IMAGINARYTOK||LA24_0==INTEGERTOK||LA24_0==INTTOK||LA24_0==LONGTOK||LA24_0==SHORTTOK||LA24_0==SIGNEDTOK||LA24_0==STRINGTOK||LA24_0==STRUCTTOK||LA24_0==TYPEDEFTOK||(LA24_0 >= UNSIGNEDTOK && LA24_0 <= VOIDTOK)) ) { + alt24=1; + } + else if ( (LA24_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt24=1; + } + else if ( (LA24_0==TYPEALIASTOK) ) { + alt24=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 24, 0, input); + throw nvae; + } + + switch (alt24) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:366:7: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:366:7: ( declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:367:8: declarationSpecifiers ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) + { + pushFollow(FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1632); + declarationSpecifiers74=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers74.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:368:10: ({...}? => declaratorList -> ^( TYPEDEF declaratorList declarationSpecifiers ) | structOrVariantDeclaratorList -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) ) + int alt23=2; + alt23 = dfa23.predict(input); + switch (alt23) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:370:12: {...}? => declaratorList + { + if ( !((inTypedef())) ) { + if (state.backtracking>0) {state.failed=true; return retval;} + throw new FailedPredicateException(input, "structOrVariantDeclaration", "inTypedef()"); + } + pushFollow(FOLLOW_declaratorList_in_structOrVariantDeclaration1673); + declaratorList75=declaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList75.getTree()); + if ( state.backtracking==0 ) {typedefOff();} + // 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(); + // 371:14: -> ^( TYPEDEF declaratorList declarationSpecifiers ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:371: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/linuxtools/ctf/parser/CTFParser.g:372:14: structOrVariantDeclaratorList + { + pushFollow(FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1713); + structOrVariantDeclaratorList76=structOrVariantDeclaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structOrVariantDeclaratorList.add(structOrVariantDeclaratorList76.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(); + // 373:14: -> ^( SV_DECLARATION declarationSpecifiers structOrVariantDeclaratorList ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:373: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/linuxtools/ctf/parser/CTFParser.g:378:5: typealiasDecl + { + pushFollow(FOLLOW_typealiasDecl_in_structOrVariantDeclaration1772); + typealiasDecl77=typealiasDecl(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typealiasDecl.add(typealiasDecl77.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(); + // 378:19: -> typealiasDecl + { + adaptor.addChild(root_0, stream_typealiasDecl.nextTree()); + } + + + retval.tree = root_0; + } + + } + break; + + } + + TERM78=(Token)match(input,TERM,FOLLOW_TERM_in_structOrVariantDeclaration1784); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TERM.add(TERM78); + + } + + 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/linuxtools/ctf/parser/CTFParser.g:383: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 typeQualifier79 =null; + ParserRuleReturnScope typeSpecifier80 =null; + + RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); + RewriteRuleSubtreeStream stream_typeQualifier=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifier"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:384:3: ( ( typeQualifier | typeSpecifier )+ -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:384:5: ( typeQualifier | typeSpecifier )+ + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:384:5: ( typeQualifier | typeSpecifier )+ + int cnt25=0; + loop25: + while (true) { + int alt25=3; + int LA25_0 = input.LA(1); + if ( (LA25_0==CONSTTOK) ) { + alt25=1; + } + else if ( (LA25_0==BOOLTOK||LA25_0==CHARTOK||LA25_0==COMPLEXTOK||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 >= UNSIGNEDTOK && LA25_0 <= VOIDTOK)) ) { + alt25=2; + } + else if ( (LA25_0==IDENTIFIER) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt25=2; + } + + switch (alt25) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:384:6: typeQualifier + { + pushFollow(FOLLOW_typeQualifier_in_specifierQualifierList1798); + typeQualifier79=typeQualifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeQualifier.add(typeQualifier79.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:384:22: typeSpecifier + { + pushFollow(FOLLOW_typeSpecifier_in_specifierQualifierList1802); + typeSpecifier80=typeSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeSpecifier.add(typeSpecifier80.getTree()); + } + break; + + default : + if ( cnt25 >= 1 ) break loop25; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(25, input); + throw eee; + } + cnt25++; + } + + // 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(); + // 385:7: -> ^( TYPE_SPECIFIER_LIST ( typeQualifier )* ( typeSpecifier )* ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:385: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/linuxtools/ctf/parser/CTFParser.g:385:32: ( typeQualifier )* + while ( stream_typeQualifier.hasNext() ) { + adaptor.addChild(root_1, stream_typeQualifier.nextTree()); + } + stream_typeQualifier.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:385: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/linuxtools/ctf/parser/CTFParser.g:388: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 SEPARATOR82=null; + ParserRuleReturnScope structOrVariantDeclarator81 =null; + ParserRuleReturnScope structOrVariantDeclarator83 =null; + + CommonTree SEPARATOR82_tree=null; + RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); + RewriteRuleSubtreeStream stream_structOrVariantDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule structOrVariantDeclarator"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:389:3: ( structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:389:5: structOrVariantDeclarator ( SEPARATOR structOrVariantDeclarator )* + { + pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1835); + structOrVariantDeclarator81=structOrVariantDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structOrVariantDeclarator.add(structOrVariantDeclarator81.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:389:31: ( SEPARATOR structOrVariantDeclarator )* + loop26: + while (true) { + int alt26=2; + int LA26_0 = input.LA(1); + if ( (LA26_0==SEPARATOR) ) { + alt26=1; + } + + switch (alt26) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:389:32: SEPARATOR structOrVariantDeclarator + { + SEPARATOR82=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1838); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR82); + + pushFollow(FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1840); + structOrVariantDeclarator83=structOrVariantDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structOrVariantDeclarator.add(structOrVariantDeclarator83.getTree()); + } + break; + + default : + break loop26; + } + } + + // 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(); + // 390:7: -> ^( TYPE_DECLARATOR_LIST ( structOrVariantDeclarator )+ ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:390: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/linuxtools/ctf/parser/CTFParser.g:393: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 COLON85=null; + ParserRuleReturnScope declarator84 =null; + ParserRuleReturnScope numberLiteral86 =null; + + CommonTree COLON85_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/linuxtools/ctf/parser/CTFParser.g:394:3: ( ( declarator ( COLON numberLiteral )? ) -> declarator ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:396:5: ( declarator ( COLON numberLiteral )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:396:5: ( declarator ( COLON numberLiteral )? ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:396:6: declarator ( COLON numberLiteral )? + { + pushFollow(FOLLOW_declarator_in_structOrVariantDeclarator1879); + declarator84=declarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarator.add(declarator84.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:396:17: ( COLON numberLiteral )? + int alt27=2; + int LA27_0 = input.LA(1); + if ( (LA27_0==COLON) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:396:18: COLON numberLiteral + { + COLON85=(Token)match(input,COLON,FOLLOW_COLON_in_structOrVariantDeclarator1882); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON85); + + pushFollow(FOLLOW_numberLiteral_in_structOrVariantDeclarator1884); + numberLiteral86=numberLiteral(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_numberLiteral.add(numberLiteral86.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(); + // 396: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/linuxtools/ctf/parser/CTFParser.g:400: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 VARIANTTOK87=null; + ParserRuleReturnScope variantName88 =null; + ParserRuleReturnScope variantTag89 =null; + ParserRuleReturnScope variantBody90 =null; + ParserRuleReturnScope variantBody91 =null; + ParserRuleReturnScope variantTag92 =null; + ParserRuleReturnScope variantBody93 =null; + ParserRuleReturnScope variantBody94 =null; + + CommonTree VARIANTTOK87_tree=null; + RewriteRuleTokenStream stream_VARIANTTOK=new RewriteRuleTokenStream(adaptor,"token VARIANTTOK"); + RewriteRuleSubtreeStream stream_variantName=new RewriteRuleSubtreeStream(adaptor,"rule variantName"); + RewriteRuleSubtreeStream stream_variantTag=new RewriteRuleSubtreeStream(adaptor,"rule variantTag"); + RewriteRuleSubtreeStream stream_variantBody=new RewriteRuleSubtreeStream(adaptor,"rule variantBody"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:401:3: ( VARIANTTOK ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:401:5: VARIANTTOK ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) + { + VARIANTTOK87=(Token)match(input,VARIANTTOK,FOLLOW_VARIANTTOK_in_variantSpecifier1908); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_VARIANTTOK.add(VARIANTTOK87); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:402:3: ( ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) | ( variantTag variantBody ) | variantBody ) + int alt30=3; + switch ( input.LA(1) ) { + case IDENTIFIER: + { + alt30=1; + } + break; + case LT: + { + alt30=2; + } + break; + case LCURL: + { + alt30=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 30, 0, input); + throw nvae; + } + switch (alt30) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:403:5: ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:403:5: ( variantName ( ( variantTag ( variantBody |) ) | variantBody ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:404:7: variantName ( ( variantTag ( variantBody |) ) | variantBody ) + { + pushFollow(FOLLOW_variantName_in_variantSpecifier1926); + variantName88=variantName(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantName.add(variantName88.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:405:7: ( ( variantTag ( variantBody |) ) | variantBody ) + int alt29=2; + int LA29_0 = input.LA(1); + if ( (LA29_0==LT) ) { + alt29=1; + } + else if ( (LA29_0==LCURL) ) { + 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/linuxtools/ctf/parser/CTFParser.g:406:9: ( variantTag ( variantBody |) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:406:9: ( variantTag ( variantBody |) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:407:11: variantTag ( variantBody |) + { + pushFollow(FOLLOW_variantTag_in_variantSpecifier1956); + variantTag89=variantTag(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantTag.add(variantTag89.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:408:11: ( variantBody |) + int alt28=2; + int LA28_0 = input.LA(1); + if ( (LA28_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: + { + alt28=1; + } + break; + case SIGNEDTOK: + { + int LA28_4 = input.LA(3); + if ( (LA28_4==BOOLTOK||LA28_4==CHARTOK||(LA28_4 >= COMPLEXTOK && LA28_4 <= CONSTTOK)||LA28_4==DOUBLETOK||LA28_4==ENUMTOK||(LA28_4 >= FLOATINGPOINTTOK && LA28_4 <= FLOATTOK)||(LA28_4 >= IDENTIFIER && LA28_4 <= IMAGINARYTOK)||LA28_4==INTEGERTOK||LA28_4==INTTOK||LA28_4==LONGTOK||LA28_4==POINTER||LA28_4==SHORTTOK||LA28_4==SIGNEDTOK||LA28_4==STRINGTOK||LA28_4==STRUCTTOK||LA28_4==TYPEDEFTOK||(LA28_4 >= UNSIGNEDTOK && LA28_4 <= VOIDTOK)) ) { + alt28=1; + } + else if ( (LA28_4==ASSIGNMENT||LA28_4==RCURL||LA28_4==SEPARATOR) ) { + alt28=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("", 28, 4, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case STRINGTOK: + { + int LA28_5 = input.LA(3); + if ( (LA28_5==BOOLTOK||LA28_5==CHARTOK||(LA28_5 >= COMPLEXTOK && LA28_5 <= CONSTTOK)||LA28_5==DOUBLETOK||LA28_5==ENUMTOK||(LA28_5 >= FLOATINGPOINTTOK && LA28_5 <= FLOATTOK)||(LA28_5 >= IDENTIFIER && LA28_5 <= IMAGINARYTOK)||LA28_5==INTEGERTOK||(LA28_5 >= INTTOK && LA28_5 <= LCURL)||LA28_5==LONGTOK||LA28_5==POINTER||LA28_5==SHORTTOK||LA28_5==SIGNEDTOK||LA28_5==STRINGTOK||LA28_5==STRUCTTOK||LA28_5==TYPEDEFTOK||(LA28_5 >= UNSIGNEDTOK && LA28_5 <= VOIDTOK)) ) { + alt28=1; + } + else if ( (LA28_5==ASSIGNMENT||LA28_5==RCURL||LA28_5==SEPARATOR) ) { + alt28=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("", 28, 5, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case IDENTIFIER: + { + int LA28_6 = input.LA(3); + if ( (LA28_6==BOOLTOK||LA28_6==CHARTOK||(LA28_6 >= COMPLEXTOK && LA28_6 <= CONSTTOK)||LA28_6==DOUBLETOK||LA28_6==ENUMTOK||(LA28_6 >= FLOATINGPOINTTOK && LA28_6 <= FLOATTOK)||(LA28_6 >= IDENTIFIER && LA28_6 <= IMAGINARYTOK)||LA28_6==INTEGERTOK||LA28_6==INTTOK||LA28_6==LONGTOK||LA28_6==POINTER||LA28_6==SHORTTOK||LA28_6==SIGNEDTOK||LA28_6==STRINGTOK||LA28_6==STRUCTTOK||LA28_6==TYPEDEFTOK||(LA28_6 >= UNSIGNEDTOK && LA28_6 <= VOIDTOK)) ) { + alt28=1; + } + else if ( (LA28_6==ASSIGNMENT||LA28_6==RCURL||LA28_6==SEPARATOR) ) { + alt28=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("", 28, 6, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + + } + break; + case ALIGNTOK: + case EVENTTOK: + case STRING_LITERAL: + { + alt28=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 28, 1, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + else if ( (LA28_0==EOF||LA28_0==BOOLTOK||LA28_0==CHARTOK||(LA28_0 >= COMPLEXTOK && LA28_0 <= CONSTTOK)||LA28_0==DOUBLETOK||LA28_0==ENUMTOK||(LA28_0 >= FLOATINGPOINTTOK && LA28_0 <= FLOATTOK)||(LA28_0 >= IDENTIFIER && LA28_0 <= IMAGINARYTOK)||LA28_0==INTEGERTOK||LA28_0==INTTOK||(LA28_0 >= LONGTOK && LA28_0 <= LPAREN)||LA28_0==POINTER||LA28_0==SHORTTOK||LA28_0==SIGNEDTOK||LA28_0==STRINGTOK||(LA28_0 >= STRUCTTOK && LA28_0 <= TERM)||(LA28_0 >= TYPEDEFTOK && LA28_0 <= TYPE_ASSIGNMENT)||(LA28_0 >= UNSIGNEDTOK && LA28_0 <= VOIDTOK)) ) { + alt28=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 28, 0, input); + throw nvae; + } + + switch (alt28) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:409:13: variantBody + { + pushFollow(FOLLOW_variantBody_in_variantSpecifier1982); + variantBody90=variantBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantBody.add(variantBody90.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:412:11: + { + } + break; + + } + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:415:9: variantBody + { + pushFollow(FOLLOW_variantBody_in_variantSpecifier2050); + variantBody91=variantBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantBody.add(variantBody91.getTree()); + } + break; + + } + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:418:5: ( variantTag variantBody ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:418:5: ( variantTag variantBody ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:418:6: variantTag variantBody + { + pushFollow(FOLLOW_variantTag_in_variantSpecifier2071); + variantTag92=variantTag(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantTag.add(variantTag92.getTree()); + pushFollow(FOLLOW_variantBody_in_variantSpecifier2073); + variantBody93=variantBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantBody.add(variantBody93.getTree()); + } + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:419:5: variantBody + { + pushFollow(FOLLOW_variantBody_in_variantSpecifier2080); + variantBody94=variantBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_variantBody.add(variantBody94.getTree()); + } + break; + + } + + // AST REWRITE + // elements: variantName, variantBody, variantTag + // 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(); + // 420:5: -> ^( VARIANT ( variantName )? ( variantTag )? ( variantBody )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:420: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/linuxtools/ctf/parser/CTFParser.g:420:18: ( variantName )? + if ( stream_variantName.hasNext() ) { + adaptor.addChild(root_1, stream_variantName.nextTree()); + } + stream_variantName.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:420:31: ( variantTag )? + if ( stream_variantTag.hasNext() ) { + adaptor.addChild(root_1, stream_variantTag.nextTree()); + } + stream_variantTag.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:420: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/linuxtools/ctf/parser/CTFParser.g:423: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 IDENTIFIER95=null; + + CommonTree IDENTIFIER95_tree=null; + RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:424:3: ( IDENTIFIER -> ^( VARIANT_NAME IDENTIFIER ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:424:5: IDENTIFIER + { + IDENTIFIER95=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variantName2112); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER95); + + // 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(); + // 424:16: -> ^( VARIANT_NAME IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:424: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/linuxtools/ctf/parser/CTFParser.g:427: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 LCURL96=null; + Token RCURL98=null; + ParserRuleReturnScope structOrVariantDeclarationList97 =null; + + CommonTree LCURL96_tree=null; + CommonTree RCURL98_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/linuxtools/ctf/parser/CTFParser.g:432:3: ( LCURL structOrVariantDeclarationList RCURL -> ^( VARIANT_BODY structOrVariantDeclarationList ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:432:5: LCURL structOrVariantDeclarationList RCURL + { + LCURL96=(Token)match(input,LCURL,FOLLOW_LCURL_in_variantBody2143); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LCURL.add(LCURL96); + + pushFollow(FOLLOW_structOrVariantDeclarationList_in_variantBody2145); + structOrVariantDeclarationList97=structOrVariantDeclarationList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_structOrVariantDeclarationList.add(structOrVariantDeclarationList97.getTree()); + RCURL98=(Token)match(input,RCURL,FOLLOW_RCURL_in_variantBody2147); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RCURL.add(RCURL98); + + // 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(); + // 433:7: -> ^( VARIANT_BODY structOrVariantDeclarationList ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:433: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/linuxtools/ctf/parser/CTFParser.g:436: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 LT99=null; + Token IDENTIFIER100=null; + Token GT101=null; + + CommonTree LT99_tree=null; + CommonTree IDENTIFIER100_tree=null; + CommonTree GT101_tree=null; + RewriteRuleTokenStream stream_GT=new RewriteRuleTokenStream(adaptor,"token GT"); + RewriteRuleTokenStream stream_LT=new RewriteRuleTokenStream(adaptor,"token LT"); + RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:437:3: ( LT IDENTIFIER GT -> ^( VARIANT_TAG IDENTIFIER ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:437:5: LT IDENTIFIER GT + { + LT99=(Token)match(input,LT,FOLLOW_LT_in_variantTag2174); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LT.add(LT99); + + IDENTIFIER100=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variantTag2176); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER100); + + GT101=(Token)match(input,GT,FOLLOW_GT_in_variantTag2178); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_GT.add(GT101); + + // 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(); + // 437:22: -> ^( VARIANT_TAG IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:437: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/linuxtools/ctf/parser/CTFParser.g:440: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 ENUMTOK102=null; + ParserRuleReturnScope enumName103 =null; + ParserRuleReturnScope enumContainerType104 =null; + ParserRuleReturnScope enumBody105 =null; + ParserRuleReturnScope enumBody106 =null; + ParserRuleReturnScope enumContainerType107 =null; + ParserRuleReturnScope enumBody108 =null; + ParserRuleReturnScope enumBody109 =null; + + CommonTree ENUMTOK102_tree=null; + RewriteRuleTokenStream stream_ENUMTOK=new RewriteRuleTokenStream(adaptor,"token ENUMTOK"); + RewriteRuleSubtreeStream stream_enumName=new RewriteRuleSubtreeStream(adaptor,"rule enumName"); + RewriteRuleSubtreeStream stream_enumContainerType=new RewriteRuleSubtreeStream(adaptor,"rule enumContainerType"); + RewriteRuleSubtreeStream stream_enumBody=new RewriteRuleSubtreeStream(adaptor,"rule enumBody"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:441:3: ( ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:441:5: ENUMTOK ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) + { + ENUMTOK102=(Token)match(input,ENUMTOK,FOLLOW_ENUMTOK_in_enumSpecifier2199); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ENUMTOK.add(ENUMTOK102); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:442:5: ( ( enumName ( enumContainerType enumBody | enumBody |) ) | ( enumContainerType enumBody | enumBody ) ) + int alt33=2; + int LA33_0 = input.LA(1); + if ( (LA33_0==IDENTIFIER) ) { + alt33=1; + } + else if ( (LA33_0==COLON||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/linuxtools/ctf/parser/CTFParser.g:444:9: ( enumName ( enumContainerType enumBody | enumBody |) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:444:9: ( enumName ( enumContainerType enumBody | enumBody |) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:445:13: enumName ( enumContainerType enumBody | enumBody |) + { + pushFollow(FOLLOW_enumName_in_enumSpecifier2238); + enumName103=enumName(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumName.add(enumName103.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:446:13: ( enumContainerType enumBody | enumBody |) + int alt31=3; + switch ( input.LA(1) ) { + case COLON: + { + alt31=1; + } + break; + case LCURL: + { + alt31=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: + { + 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/linuxtools/ctf/parser/CTFParser.g:447:17: enumContainerType enumBody + { + pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2270); + enumContainerType104=enumContainerType(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumContainerType.add(enumContainerType104.getTree()); + pushFollow(FOLLOW_enumBody_in_enumSpecifier2272); + enumBody105=enumBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumBody.add(enumBody105.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:449:17: enumBody + { + pushFollow(FOLLOW_enumBody_in_enumSpecifier2302); + enumBody106=enumBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumBody.add(enumBody106.getTree()); + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:452:13: + { + } + break; + + } + + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:456:9: ( enumContainerType enumBody | enumBody ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:456:9: ( enumContainerType enumBody | enumBody ) + int alt32=2; + int LA32_0 = input.LA(1); + if ( (LA32_0==COLON) ) { + alt32=1; + } + else if ( (LA32_0==LCURL) ) { + alt32=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 32, 0, input); + throw nvae; + } + + switch (alt32) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:457:13: enumContainerType enumBody + { + pushFollow(FOLLOW_enumContainerType_in_enumSpecifier2394); + enumContainerType107=enumContainerType(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumContainerType.add(enumContainerType107.getTree()); + pushFollow(FOLLOW_enumBody_in_enumSpecifier2396); + enumBody108=enumBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumBody.add(enumBody108.getTree()); + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:459:13: enumBody + { + pushFollow(FOLLOW_enumBody_in_enumSpecifier2420); + enumBody109=enumBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumBody.add(enumBody109.getTree()); + } + break; + + } + + } + break; + + } + + // AST REWRITE + // elements: enumBody, enumContainerType, enumName + // 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(); + // 461:7: -> ^( ENUM ( enumName )? ( enumContainerType )? ( enumBody )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:461: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/linuxtools/ctf/parser/CTFParser.g:461:17: ( enumName )? + if ( stream_enumName.hasNext() ) { + adaptor.addChild(root_1, stream_enumName.nextTree()); + } + stream_enumName.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:461:27: ( enumContainerType )? + if ( stream_enumContainerType.hasNext() ) { + adaptor.addChild(root_1, stream_enumContainerType.nextTree()); + } + stream_enumContainerType.reset(); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:461: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/linuxtools/ctf/parser/CTFParser.g:464: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 IDENTIFIER110=null; + + CommonTree IDENTIFIER110_tree=null; + RewriteRuleTokenStream stream_IDENTIFIER=new RewriteRuleTokenStream(adaptor,"token IDENTIFIER"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:465:3: ( IDENTIFIER -> ^( ENUM_NAME IDENTIFIER ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:465:5: IDENTIFIER + { + IDENTIFIER110=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_enumName2464); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_IDENTIFIER.add(IDENTIFIER110); + + // 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(); + // 465:16: -> ^( ENUM_NAME IDENTIFIER ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:465: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/linuxtools/ctf/parser/CTFParser.g:468: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 LCURL111=null; + Token SEPARATOR113=null; + Token RCURL114=null; + ParserRuleReturnScope enumeratorList112 =null; + + CommonTree LCURL111_tree=null; + CommonTree SEPARATOR113_tree=null; + CommonTree RCURL114_tree=null; + RewriteRuleTokenStream stream_LCURL=new RewriteRuleTokenStream(adaptor,"token LCURL"); + RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); + RewriteRuleTokenStream stream_RCURL=new RewriteRuleTokenStream(adaptor,"token RCURL"); + RewriteRuleSubtreeStream stream_enumeratorList=new RewriteRuleSubtreeStream(adaptor,"rule enumeratorList"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:469:3: ( LCURL enumeratorList ( SEPARATOR )? RCURL -> ^( ENUM_BODY enumeratorList ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:469:5: LCURL enumeratorList ( SEPARATOR )? RCURL + { + LCURL111=(Token)match(input,LCURL,FOLLOW_LCURL_in_enumBody2485); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LCURL.add(LCURL111); + + pushFollow(FOLLOW_enumeratorList_in_enumBody2487); + enumeratorList112=enumeratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumeratorList.add(enumeratorList112.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:469:26: ( SEPARATOR )? + int alt34=2; + int LA34_0 = input.LA(1); + if ( (LA34_0==SEPARATOR) ) { + alt34=1; + } + switch (alt34) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:469:26: SEPARATOR + { + SEPARATOR113=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_enumBody2489); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR113); + + } + break; + + } + + RCURL114=(Token)match(input,RCURL,FOLLOW_RCURL_in_enumBody2492); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RCURL.add(RCURL114); + + // 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(); + // 469:43: -> ^( ENUM_BODY enumeratorList ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:469: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/linuxtools/ctf/parser/CTFParser.g:472: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 COLON115=null; + ParserRuleReturnScope declarationSpecifiers116 =null; + + CommonTree COLON115_tree=null; + RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); + RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:473:3: ( COLON declarationSpecifiers -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:473:5: COLON declarationSpecifiers + { + COLON115=(Token)match(input,COLON,FOLLOW_COLON_in_enumContainerType2513); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_COLON.add(COLON115); + + pushFollow(FOLLOW_declarationSpecifiers_in_enumContainerType2515); + declarationSpecifiers116=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers116.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(); + // 473:33: -> ^( ENUM_CONTAINER_TYPE declarationSpecifiers ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:473: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/linuxtools/ctf/parser/CTFParser.g:476: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 SEPARATOR118=null; + ParserRuleReturnScope enumerator117 =null; + ParserRuleReturnScope enumerator119 =null; + + CommonTree SEPARATOR118_tree=null; + RewriteRuleTokenStream stream_SEPARATOR=new RewriteRuleTokenStream(adaptor,"token SEPARATOR"); + RewriteRuleSubtreeStream stream_enumerator=new RewriteRuleSubtreeStream(adaptor,"rule enumerator"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:477:3: ( enumerator ( SEPARATOR enumerator )* -> ( ^( ENUM_ENUMERATOR enumerator ) )+ ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:477:5: enumerator ( SEPARATOR enumerator )* + { + pushFollow(FOLLOW_enumerator_in_enumeratorList2536); + enumerator117=enumerator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumerator.add(enumerator117.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:477:16: ( SEPARATOR enumerator )* + loop35: + while (true) { + int alt35=2; + int LA35_0 = input.LA(1); + if ( (LA35_0==SEPARATOR) ) { + int LA35_1 = input.LA(2); + if ( (LA35_1==ALIGNTOK||LA35_1==EVENTTOK||LA35_1==IDENTIFIER||LA35_1==SIGNEDTOK||LA35_1==STRINGTOK||LA35_1==STRING_LITERAL) ) { + alt35=1; + } + + } + + switch (alt35) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:477:17: SEPARATOR enumerator + { + SEPARATOR118=(Token)match(input,SEPARATOR,FOLLOW_SEPARATOR_in_enumeratorList2539); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_SEPARATOR.add(SEPARATOR118); + + pushFollow(FOLLOW_enumerator_in_enumeratorList2541); + enumerator119=enumerator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_enumerator.add(enumerator119.getTree()); + } + break; + + default : + break loop35; + } + } + + // 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(); + // 477:40: -> ( ^( ENUM_ENUMERATOR enumerator ) )+ + { + if ( !(stream_enumerator.hasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_enumerator.hasNext() ) { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:477: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/linuxtools/ctf/parser/CTFParser.g:480: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 enumConstant120 =null; + ParserRuleReturnScope enumeratorValue121 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:481:3: ( enumConstant ( enumeratorValue )? ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:481:5: enumConstant ( enumeratorValue )? + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_enumConstant_in_enumerator2567); + enumConstant120=enumConstant(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, enumConstant120.getTree()); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:481:18: ( enumeratorValue )? + int alt36=2; + int LA36_0 = input.LA(1); + if ( (LA36_0==ASSIGNMENT) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:481:18: enumeratorValue + { + pushFollow(FOLLOW_enumeratorValue_in_enumerator2569); + enumeratorValue121=enumeratorValue(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, enumeratorValue121.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/linuxtools/ctf/parser/CTFParser.g:484: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 ASSIGNMENT122=null; + Token ELIPSES123=null; + ParserRuleReturnScope e1 =null; + ParserRuleReturnScope e2 =null; + + CommonTree ASSIGNMENT122_tree=null; + CommonTree ELIPSES123_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/linuxtools/ctf/parser/CTFParser.g:485:3: ( ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:485:5: ASSIGNMENT e1= unaryExpression ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) + { + ASSIGNMENT122=(Token)match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_enumeratorValue2583); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ASSIGNMENT.add(ASSIGNMENT122); + + pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2587); + e1=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_unaryExpression.add(e1.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:486:7: ( -> ^( ENUM_VALUE $e1) | ELIPSES e2= unaryExpression -> ^( ENUM_VALUE_RANGE $e1 $e2) ) + int alt37=2; + int LA37_0 = input.LA(1); + if ( (LA37_0==RCURL||LA37_0==SEPARATOR) ) { + alt37=1; + } + else if ( (LA37_0==ELIPSES) ) { + alt37=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 37, 0, input); + throw nvae; + } + + switch (alt37) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:487:11: + { + // AST REWRITE + // elements: e1 + // token labels: + // rule labels: retval, e1 + // 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); + RewriteRuleSubtreeStream stream_e1=new RewriteRuleSubtreeStream(adaptor,"rule e1",e1!=null?e1.getTree():null); + + root_0 = (CommonTree)adaptor.nil(); + // 487:11: -> ^( ENUM_VALUE $e1) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:487: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/linuxtools/ctf/parser/CTFParser.g:488:9: ELIPSES e2= unaryExpression + { + ELIPSES123=(Token)match(input,ELIPSES,FOLLOW_ELIPSES_in_enumeratorValue2626); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ELIPSES.add(ELIPSES123); + + pushFollow(FOLLOW_unaryExpression_in_enumeratorValue2630); + 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: retval, e1, e2 + // 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); + 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); + + root_0 = (CommonTree)adaptor.nil(); + // 489:11: -> ^( ENUM_VALUE_RANGE $e1 $e2) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:489: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/linuxtools/ctf/parser/CTFParser.g:493: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 pointer124 =null; + ParserRuleReturnScope directDeclarator125 =null; + + RewriteRuleSubtreeStream stream_directDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directDeclarator"); + RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:494:3: ( ( pointer )* directDeclarator -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:494:5: ( pointer )* directDeclarator + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:494:5: ( pointer )* + loop38: + while (true) { + int alt38=2; + int LA38_0 = input.LA(1); + if ( (LA38_0==POINTER) ) { + alt38=1; + } + + switch (alt38) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:494:5: pointer + { + pushFollow(FOLLOW_pointer_in_declarator2673); + pointer124=pointer(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_pointer.add(pointer124.getTree()); + } + break; + + default : + break loop38; + } + } + + pushFollow(FOLLOW_directDeclarator_in_declarator2676); + directDeclarator125=directDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_directDeclarator.add(directDeclarator125.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(); + // 495:7: -> ^( TYPE_DECLARATOR ( pointer )* directDeclarator ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:495: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/linuxtools/ctf/parser/CTFParser.g:495: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/linuxtools/ctf/parser/CTFParser.g:498: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 IDENTIFIER126=null; + ParserRuleReturnScope directDeclaratorSuffix127 =null; + + CommonTree IDENTIFIER126_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:499:3: ( ( IDENTIFIER ) ( directDeclaratorSuffix )* ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:499:5: ( IDENTIFIER ) ( directDeclaratorSuffix )* + { + root_0 = (CommonTree)adaptor.nil(); + + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:499:5: ( IDENTIFIER ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:500:7: IDENTIFIER + { + IDENTIFIER126=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directDeclarator2714); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IDENTIFIER126_tree = (CommonTree)adaptor.create(IDENTIFIER126); + adaptor.addChild(root_0, IDENTIFIER126_tree); + } + + if ( state.backtracking==0 ) { if (inTypedef()) addTypeName((IDENTIFIER126!=null?IDENTIFIER126.getText():null)); } + if ( state.backtracking==0 ) { debug_print((IDENTIFIER126!=null?IDENTIFIER126.getText():null)); } + } + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:505:5: ( directDeclaratorSuffix )* + loop39: + while (true) { + int alt39=2; + int LA39_0 = input.LA(1); + if ( (LA39_0==OPENBRAC) ) { + alt39=1; + } + + switch (alt39) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:505:5: directDeclaratorSuffix + { + pushFollow(FOLLOW_directDeclaratorSuffix_in_directDeclarator2754); + directDeclaratorSuffix127=directDeclaratorSuffix(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, directDeclaratorSuffix127.getTree()); + + } + break; + + default : + break loop39; + } + } + + } + + 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/linuxtools/ctf/parser/CTFParser.g:508: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 OPENBRAC128=null; + Token CLOSEBRAC130=null; + ParserRuleReturnScope directDeclaratorLength129 =null; + + CommonTree OPENBRAC128_tree=null; + CommonTree CLOSEBRAC130_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/linuxtools/ctf/parser/CTFParser.g:509:3: ( OPENBRAC directDeclaratorLength CLOSEBRAC -> ^( LENGTH directDeclaratorLength ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:509:5: OPENBRAC directDeclaratorLength CLOSEBRAC + { + OPENBRAC128=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_directDeclaratorSuffix2768); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_OPENBRAC.add(OPENBRAC128); + + pushFollow(FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2770); + directDeclaratorLength129=directDeclaratorLength(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_directDeclaratorLength.add(directDeclaratorLength129.getTree()); + CLOSEBRAC130=(Token)match(input,CLOSEBRAC,FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2772); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_CLOSEBRAC.add(CLOSEBRAC130); + + // 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(); + // 510:7: -> ^( LENGTH directDeclaratorLength ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:510: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/linuxtools/ctf/parser/CTFParser.g:513: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 unaryExpression131 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:514:3: ( unaryExpression ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:514:5: unaryExpression + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_unaryExpression_in_directDeclaratorLength2800); + unaryExpression131=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression131.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/linuxtools/ctf/parser/CTFParser.g:517: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 pointer132 =null; + ParserRuleReturnScope directAbstractDeclarator133 =null; + ParserRuleReturnScope directAbstractDeclarator134 =null; + + RewriteRuleSubtreeStream stream_pointer=new RewriteRuleSubtreeStream(adaptor,"rule pointer"); + RewriteRuleSubtreeStream stream_directAbstractDeclarator=new RewriteRuleSubtreeStream(adaptor,"rule directAbstractDeclarator"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:3: ( ( pointer )+ ( directAbstractDeclarator )? -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) | directAbstractDeclarator -> ^( TYPE_DECLARATOR directAbstractDeclarator ) ) + int alt42=2; + int LA42_0 = input.LA(1); + if ( (LA42_0==POINTER) ) { + alt42=1; + } + else if ( (LA42_0==IDENTIFIER||LA42_0==LPAREN) ) { + alt42=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 42, 0, input); + throw nvae; + } + + switch (alt42) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:5: ( pointer )+ ( directAbstractDeclarator )? + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:5: ( pointer )+ + int cnt40=0; + loop40: + while (true) { + int alt40=2; + int LA40_0 = input.LA(1); + if ( (LA40_0==POINTER) ) { + alt40=1; + } + + switch (alt40) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:5: pointer + { + pushFollow(FOLLOW_pointer_in_abstractDeclarator2813); + pointer132=pointer(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_pointer.add(pointer132.getTree()); + } + break; + + default : + if ( cnt40 >= 1 ) break loop40; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(40, input); + throw eee; + } + cnt40++; + } + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:14: ( directAbstractDeclarator )? + int alt41=2; + int LA41_0 = input.LA(1); + if ( (LA41_0==IDENTIFIER||LA41_0==LPAREN) ) { + alt41=1; + } + switch (alt41) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:518:14: directAbstractDeclarator + { + pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2816); + directAbstractDeclarator133=directAbstractDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator133.getTree()); + } + break; + + } + + // AST REWRITE + // elements: directAbstractDeclarator, 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(); + // 519:7: -> ^( TYPE_DECLARATOR ( pointer )+ ( directAbstractDeclarator )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:519: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/linuxtools/ctf/parser/CTFParser.g:519: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/linuxtools/ctf/parser/CTFParser.g:520:5: directAbstractDeclarator + { + pushFollow(FOLLOW_directAbstractDeclarator_in_abstractDeclarator2841); + directAbstractDeclarator134=directAbstractDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_directAbstractDeclarator.add(directAbstractDeclarator134.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(); + // 521:7: -> ^( TYPE_DECLARATOR directAbstractDeclarator ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:521: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/linuxtools/ctf/parser/CTFParser.g:529: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 IDENTIFIER135=null; + Token LPAREN136=null; + Token RPAREN138=null; + Token OPENBRAC139=null; + Token CLOSEBRAC141=null; + ParserRuleReturnScope abstractDeclarator137 =null; + ParserRuleReturnScope unaryExpression140 =null; + + CommonTree IDENTIFIER135_tree=null; + CommonTree LPAREN136_tree=null; + CommonTree RPAREN138_tree=null; + CommonTree OPENBRAC139_tree=null; + CommonTree CLOSEBRAC141_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:530:3: ( ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:530:5: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? + { + root_0 = (CommonTree)adaptor.nil(); + + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:530:5: ( IDENTIFIER | ( LPAREN abstractDeclarator RPAREN ) ) + int alt43=2; + int LA43_0 = input.LA(1); + if ( (LA43_0==IDENTIFIER) ) { + alt43=1; + } + else if ( (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/linuxtools/ctf/parser/CTFParser.g:531:7: IDENTIFIER + { + IDENTIFIER135=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_directAbstractDeclarator2878); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IDENTIFIER135_tree = (CommonTree)adaptor.create(IDENTIFIER135); + adaptor.addChild(root_0, IDENTIFIER135_tree); + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:532:9: ( LPAREN abstractDeclarator RPAREN ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:532:9: ( LPAREN abstractDeclarator RPAREN ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:532:10: LPAREN abstractDeclarator RPAREN + { + LPAREN136=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_directAbstractDeclarator2889); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN136_tree = (CommonTree)adaptor.create(LPAREN136); + adaptor.addChild(root_0, LPAREN136_tree); + } + + pushFollow(FOLLOW_abstractDeclarator_in_directAbstractDeclarator2891); + abstractDeclarator137=abstractDeclarator(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclarator137.getTree()); + + RPAREN138=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_directAbstractDeclarator2893); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN138_tree = (CommonTree)adaptor.create(RPAREN138); + adaptor.addChild(root_0, RPAREN138_tree); + } + + } + + } + break; + + } + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:533:5: ( OPENBRAC ( unaryExpression )? CLOSEBRAC )? + int alt45=2; + int LA45_0 = input.LA(1); + if ( (LA45_0==OPENBRAC) ) { + alt45=1; + } + switch (alt45) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:534:7: OPENBRAC ( unaryExpression )? CLOSEBRAC + { + OPENBRAC139=(Token)match(input,OPENBRAC,FOLLOW_OPENBRAC_in_directAbstractDeclarator2908); if (state.failed) return retval; + if ( state.backtracking==0 ) { + OPENBRAC139_tree = (CommonTree)adaptor.create(OPENBRAC139); + adaptor.addChild(root_0, OPENBRAC139_tree); + } + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:534:16: ( unaryExpression )? + int alt44=2; + int LA44_0 = input.LA(1); + if ( (LA44_0==ALIGNTOK||(LA44_0 >= CALLSITETOK && LA44_0 <= CHARACTER_LITERAL)||LA44_0==CLOCKTOK||LA44_0==DECIMAL_LITERAL||LA44_0==ENVTOK||LA44_0==EVENTTOK||LA44_0==HEX_LITERAL||LA44_0==IDENTIFIER||LA44_0==OCTAL_LITERAL||(LA44_0 >= SIGN && LA44_0 <= SIGNEDTOK)||LA44_0==STREAMTOK||LA44_0==STRINGTOK||LA44_0==STRING_LITERAL||LA44_0==TRACETOK) ) { + alt44=1; + } + switch (alt44) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:534:16: unaryExpression + { + pushFollow(FOLLOW_unaryExpression_in_directAbstractDeclarator2910); + unaryExpression140=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, unaryExpression140.getTree()); + + } + break; + + } + + CLOSEBRAC141=(Token)match(input,CLOSEBRAC,FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2913); if (state.failed) return retval; + if ( state.backtracking==0 ) { + CLOSEBRAC141_tree = (CommonTree)adaptor.create(CLOSEBRAC141); + adaptor.addChild(root_0, CLOSEBRAC141_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/linuxtools/ctf/parser/CTFParser.g:538: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 POINTER142=null; + ParserRuleReturnScope typeQualifierList143 =null; + + CommonTree POINTER142_tree=null; + RewriteRuleTokenStream stream_POINTER=new RewriteRuleTokenStream(adaptor,"token POINTER"); + RewriteRuleSubtreeStream stream_typeQualifierList=new RewriteRuleSubtreeStream(adaptor,"rule typeQualifierList"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539:3: ( POINTER ( typeQualifierList )? -> ^( POINTER ( typeQualifierList )? ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539:5: POINTER ( typeQualifierList )? + { + POINTER142=(Token)match(input,POINTER,FOLLOW_POINTER_in_pointer2931); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_POINTER.add(POINTER142); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539:13: ( typeQualifierList )? + int alt46=2; + int LA46_0 = input.LA(1); + if ( (LA46_0==CONSTTOK) ) { + alt46=1; + } + switch (alt46) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539:13: typeQualifierList + { + pushFollow(FOLLOW_typeQualifierList_in_pointer2933); + typeQualifierList143=typeQualifierList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeQualifierList.add(typeQualifierList143.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(); + // 539:32: -> ^( POINTER ( typeQualifierList )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539:35: ^( POINTER ( typeQualifierList )? ) + { + CommonTree root_1 = (CommonTree)adaptor.nil(); + root_1 = (CommonTree)adaptor.becomeRoot(stream_POINTER.nextNode(), root_1); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:539: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/linuxtools/ctf/parser/CTFParser.g:542: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 typeQualifier144 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:543:3: ( ( typeQualifier )+ ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:543:5: ( typeQualifier )+ + { + root_0 = (CommonTree)adaptor.nil(); + + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:543:5: ( typeQualifier )+ + int cnt47=0; + loop47: + while (true) { + int alt47=2; + int LA47_0 = input.LA(1); + if ( (LA47_0==CONSTTOK) ) { + alt47=1; + } + + switch (alt47) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:543:5: typeQualifier + { + pushFollow(FOLLOW_typeQualifier_in_typeQualifierList2956); + typeQualifier144=typeQualifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, typeQualifier144.getTree()); + + } + break; + + default : + if ( cnt47 >= 1 ) break loop47; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(47, input); + throw eee; + } + cnt47++; + } + + } + + 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/linuxtools/ctf/parser/CTFParser.g:546: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 IDENTIFIER145=null; + + CommonTree IDENTIFIER145_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:547:3: ({...}? IDENTIFIER ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:547: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())"); + } + IDENTIFIER145=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typedefName2972); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IDENTIFIER145_tree = (CommonTree)adaptor.create(IDENTIFIER145); + adaptor.addChild(root_0, IDENTIFIER145_tree); + } + + if ( state.backtracking==0 ) { if ((inTypedef() || inTypealiasAlias()) && !isTypeName((IDENTIFIER145!=null?IDENTIFIER145.getText():null))) { addTypeName((IDENTIFIER145!=null?IDENTIFIER145.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/linuxtools/ctf/parser/CTFParser.g:556: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 declarationSpecifiers146 =null; + ParserRuleReturnScope abstractDeclaratorList147 =null; + + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:557:3: ( declarationSpecifiers ( abstractDeclaratorList )? ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:557:5: declarationSpecifiers ( abstractDeclaratorList )? + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_declarationSpecifiers_in_typealiasTarget2989); + declarationSpecifiers146=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifiers146.getTree()); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:557:27: ( abstractDeclaratorList )? + int alt48=2; + int LA48_0 = input.LA(1); + if ( (LA48_0==IDENTIFIER||LA48_0==LPAREN||LA48_0==POINTER) ) { + alt48=1; + } + switch (alt48) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:557:27: abstractDeclaratorList + { + pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasTarget2991); + abstractDeclaratorList147=abstractDeclaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList147.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/linuxtools/ctf/parser/CTFParser.g:566: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 abstractDeclaratorList148 =null; + ParserRuleReturnScope declarationSpecifiers149 =null; + ParserRuleReturnScope abstractDeclaratorList150 =null; + + + + typealiasAliasOn(); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:573:3: ( abstractDeclaratorList | declarationSpecifiers ( abstractDeclaratorList )? ) + int alt50=2; + switch ( input.LA(1) ) { + case LPAREN: + case POINTER: + { + alt50=1; + } + break; + case IDENTIFIER: + { + int LA50_2 = input.LA(2); + if ( (!(((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))))) ) { + alt50=1; + } + else if ( ((( inTypealiasAlias() || isTypeName(input.LT(1).getText()) )&&(inTypealiasAlias() || isTypeName(input.LT(1).getText())))) ) { + alt50=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 50, 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: + { + alt50=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 50, 0, input); + throw nvae; + } + switch (alt50) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:573:5: abstractDeclaratorList + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias3017); + abstractDeclaratorList148=abstractDeclaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList148.getTree()); + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:574:5: declarationSpecifiers ( abstractDeclaratorList )? + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_declarationSpecifiers_in_typealiasAlias3023); + declarationSpecifiers149=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, declarationSpecifiers149.getTree()); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:574: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/linuxtools/ctf/parser/CTFParser.g:574:27: abstractDeclaratorList + { + pushFollow(FOLLOW_abstractDeclaratorList_in_typealiasAlias3025); + abstractDeclaratorList150=abstractDeclaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, abstractDeclaratorList150.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/linuxtools/ctf/parser/CTFParser.g:577: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 TYPEALIASTOK151=null; + Token TYPE_ASSIGNMENT153=null; + ParserRuleReturnScope typealiasTarget152 =null; + ParserRuleReturnScope typealiasAlias154 =null; + + CommonTree TYPEALIASTOK151_tree=null; + CommonTree TYPE_ASSIGNMENT153_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/linuxtools/ctf/parser/CTFParser.g:578:3: ( TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:578:5: TYPEALIASTOK typealiasTarget TYPE_ASSIGNMENT typealiasAlias + { + TYPEALIASTOK151=(Token)match(input,TYPEALIASTOK,FOLLOW_TYPEALIASTOK_in_typealiasDecl3039); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TYPEALIASTOK.add(TYPEALIASTOK151); + + pushFollow(FOLLOW_typealiasTarget_in_typealiasDecl3041); + typealiasTarget152=typealiasTarget(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typealiasTarget.add(typealiasTarget152.getTree()); + TYPE_ASSIGNMENT153=(Token)match(input,TYPE_ASSIGNMENT,FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3043); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TYPE_ASSIGNMENT.add(TYPE_ASSIGNMENT153); + + pushFollow(FOLLOW_typealiasAlias_in_typealiasDecl3045); + typealiasAlias154=typealiasAlias(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typealiasAlias.add(typealiasAlias154.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(); + // 579:7: -> ^( TYPEALIAS ^( TYPEALIAS_TARGET typealiasTarget ) ^( TYPEALIAS_ALIAS typealiasAlias ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:579: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/linuxtools/ctf/parser/CTFParser.g:580: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/linuxtools/ctf/parser/CTFParser.g:581: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/linuxtools/ctf/parser/CTFParser.g:587: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 set155=null; + + CommonTree set155_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:588:3: ( ALIGNTOK | EVENTTOK | SIGNEDTOK | STRINGTOK ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g: + { + root_0 = (CommonTree)adaptor.nil(); + + + set155=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(set155)); + 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/linuxtools/ctf/parser/CTFParser.g:594: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 ctfSpecifierHead156 =null; + ParserRuleReturnScope ctfBody157 =null; + ParserRuleReturnScope typealiasDecl158 =null; + + RewriteRuleSubtreeStream stream_ctfSpecifierHead=new RewriteRuleSubtreeStream(adaptor,"rule ctfSpecifierHead"); + RewriteRuleSubtreeStream stream_typealiasDecl=new RewriteRuleSubtreeStream(adaptor,"rule typealiasDecl"); + RewriteRuleSubtreeStream stream_ctfBody=new RewriteRuleSubtreeStream(adaptor,"rule ctfBody"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:596:3: ( ctfSpecifierHead ctfBody -> ^( ctfSpecifierHead ctfBody ) | typealiasDecl -> ^( DECLARATION typealiasDecl ) ) + int alt51=2; + int LA51_0 = input.LA(1); + if ( (LA51_0==CALLSITETOK||LA51_0==CLOCKTOK||LA51_0==ENVTOK||LA51_0==EVENTTOK||LA51_0==STREAMTOK||LA51_0==TRACETOK) ) { + alt51=1; + } + else if ( (LA51_0==TYPEALIASTOK) ) { + alt51=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 51, 0, input); + throw nvae; + } + + switch (alt51) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:596:5: ctfSpecifierHead ctfBody + { + pushFollow(FOLLOW_ctfSpecifierHead_in_ctfSpecifier3145); + ctfSpecifierHead156=ctfSpecifierHead(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfSpecifierHead.add(ctfSpecifierHead156.getTree()); + pushFollow(FOLLOW_ctfBody_in_ctfSpecifier3147); + ctfBody157=ctfBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody157.getTree()); + // AST REWRITE + // elements: ctfBody, ctfSpecifierHead + // 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(); + // 596:30: -> ^( ctfSpecifierHead ctfBody ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:596: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/linuxtools/ctf/parser/CTFParser.g:598:5: typealiasDecl + { + pushFollow(FOLLOW_typealiasDecl_in_ctfSpecifier3164); + typealiasDecl158=typealiasDecl(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typealiasDecl.add(typealiasDecl158.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(); + // 598:19: -> ^( DECLARATION typealiasDecl ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:598: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/linuxtools/ctf/parser/CTFParser.g:601:1: ctfSpecifierHead : ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK | CALLSITETOK -> CALLSITE ); + 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 EVENTTOK159=null; + Token STREAMTOK160=null; + Token TRACETOK161=null; + Token ENVTOK162=null; + Token CLOCKTOK163=null; + Token CALLSITETOK164=null; + + CommonTree EVENTTOK159_tree=null; + CommonTree STREAMTOK160_tree=null; + CommonTree TRACETOK161_tree=null; + CommonTree ENVTOK162_tree=null; + CommonTree CLOCKTOK163_tree=null; + CommonTree CALLSITETOK164_tree=null; + RewriteRuleTokenStream stream_EVENTTOK=new RewriteRuleTokenStream(adaptor,"token EVENTTOK"); + RewriteRuleTokenStream stream_CALLSITETOK=new RewriteRuleTokenStream(adaptor,"token CALLSITETOK"); + RewriteRuleTokenStream stream_STREAMTOK=new RewriteRuleTokenStream(adaptor,"token STREAMTOK"); + RewriteRuleTokenStream stream_ENVTOK=new RewriteRuleTokenStream(adaptor,"token ENVTOK"); + RewriteRuleTokenStream stream_CLOCKTOK=new RewriteRuleTokenStream(adaptor,"token CLOCKTOK"); + RewriteRuleTokenStream stream_TRACETOK=new RewriteRuleTokenStream(adaptor,"token TRACETOK"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:602:3: ( EVENTTOK -> EVENT | STREAMTOK -> STREAM | TRACETOK -> TRACE | ENVTOK -> ENV | CLOCKTOK -> CLOCK | CALLSITETOK -> CALLSITE ) + int alt52=6; + switch ( input.LA(1) ) { + case EVENTTOK: + { + alt52=1; + } + break; + case STREAMTOK: + { + alt52=2; + } + break; + case TRACETOK: + { + alt52=3; + } + break; + case ENVTOK: + { + alt52=4; + } + break; + case CLOCKTOK: + { + alt52=5; + } + break; + case CALLSITETOK: + { + alt52=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 52, 0, input); + throw nvae; + } + switch (alt52) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:602:5: EVENTTOK + { + EVENTTOK159=(Token)match(input,EVENTTOK,FOLLOW_EVENTTOK_in_ctfSpecifierHead3185); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_EVENTTOK.add(EVENTTOK159); + + // 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(); + // 602:14: -> EVENT + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(EVENT, "EVENT")); + } + + + retval.tree = root_0; + } + + } + break; + case 2 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:603:5: STREAMTOK + { + STREAMTOK160=(Token)match(input,STREAMTOK,FOLLOW_STREAMTOK_in_ctfSpecifierHead3195); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STREAMTOK.add(STREAMTOK160); + + // 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(); + // 603:15: -> STREAM + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(STREAM, "STREAM")); + } + + + retval.tree = root_0; + } + + } + break; + case 3 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:604:5: TRACETOK + { + TRACETOK161=(Token)match(input,TRACETOK,FOLLOW_TRACETOK_in_ctfSpecifierHead3205); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TRACETOK.add(TRACETOK161); + + // 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(); + // 604:14: -> TRACE + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(TRACE, "TRACE")); + } + + + retval.tree = root_0; + } + + } + break; + case 4 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:605:5: ENVTOK + { + ENVTOK162=(Token)match(input,ENVTOK,FOLLOW_ENVTOK_in_ctfSpecifierHead3215); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ENVTOK.add(ENVTOK162); + + // 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:12: -> ENV + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(ENV, "ENV")); + } + + + retval.tree = root_0; + } + + } + break; + case 5 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:606:5: CLOCKTOK + { + CLOCKTOK163=(Token)match(input,CLOCKTOK,FOLLOW_CLOCKTOK_in_ctfSpecifierHead3225); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_CLOCKTOK.add(CLOCKTOK163); + + // 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:14: -> CLOCK + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(CLOCK, "CLOCK")); + } + + + retval.tree = root_0; + } + + } + break; + case 6 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:607:5: CALLSITETOK + { + CALLSITETOK164=(Token)match(input,CALLSITETOK,FOLLOW_CALLSITETOK_in_ctfSpecifierHead3235); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_CALLSITETOK.add(CALLSITETOK164); + + // 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:17: -> CALLSITE + { + adaptor.addChild(root_0, (CommonTree)adaptor.create(CALLSITE, "CALLSITE")); + } + + + 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/linuxtools/ctf/parser/CTFParser.g:610: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 FLOATINGPOINTTOK165=null; + Token INTEGERTOK167=null; + Token STRINGTOK169=null; + ParserRuleReturnScope ctfBody166 =null; + ParserRuleReturnScope ctfBody168 =null; + ParserRuleReturnScope ctfBody170 =null; + + CommonTree FLOATINGPOINTTOK165_tree=null; + CommonTree INTEGERTOK167_tree=null; + CommonTree STRINGTOK169_tree=null; + RewriteRuleTokenStream stream_FLOATINGPOINTTOK=new RewriteRuleTokenStream(adaptor,"token FLOATINGPOINTTOK"); + RewriteRuleTokenStream stream_STRINGTOK=new RewriteRuleTokenStream(adaptor,"token STRINGTOK"); + RewriteRuleTokenStream stream_INTEGERTOK=new RewriteRuleTokenStream(adaptor,"token INTEGERTOK"); + RewriteRuleSubtreeStream stream_ctfBody=new RewriteRuleSubtreeStream(adaptor,"rule ctfBody"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:612:3: ( FLOATINGPOINTTOK ctfBody -> ^( FLOATING_POINT ( ctfBody )? ) | INTEGERTOK ctfBody -> ^( INTEGER ( ctfBody )? ) | STRINGTOK ( ctfBody )? -> ^( STRING ( ctfBody )? ) ) + int alt54=3; + switch ( input.LA(1) ) { + case FLOATINGPOINTTOK: + { + alt54=1; + } + break; + case INTEGERTOK: + { + alt54=2; + } + break; + case STRINGTOK: + { + alt54=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 54, 0, input); + throw nvae; + } + switch (alt54) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:612:5: FLOATINGPOINTTOK ctfBody + { + FLOATINGPOINTTOK165=(Token)match(input,FLOATINGPOINTTOK,FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3258); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_FLOATINGPOINTTOK.add(FLOATINGPOINTTOK165); + + pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3260); + ctfBody166=ctfBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody166.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(); + // 612:30: -> ^( FLOATING_POINT ( ctfBody )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:612: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/linuxtools/ctf/parser/CTFParser.g:612: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/linuxtools/ctf/parser/CTFParser.g:613:5: INTEGERTOK ctfBody + { + INTEGERTOK167=(Token)match(input,INTEGERTOK,FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3275); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_INTEGERTOK.add(INTEGERTOK167); + + pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3277); + ctfBody168=ctfBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody168.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(); + // 613:24: -> ^( INTEGER ( ctfBody )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:613:27: ^( INTEGER ( ctfBody )? ) + { + CommonTree root_1 = (CommonTree)adaptor.nil(); + root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INTEGER, "INTEGER"), root_1); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:613: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/linuxtools/ctf/parser/CTFParser.g:614:5: STRINGTOK ( ctfBody )? + { + STRINGTOK169=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_ctfTypeSpecifier3292); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_STRINGTOK.add(STRINGTOK169); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:614:15: ( ctfBody )? + int alt53=2; + int LA53_0 = input.LA(1); + if ( (LA53_0==LCURL) ) { + alt53=1; + } + switch (alt53) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:614:15: ctfBody + { + pushFollow(FOLLOW_ctfBody_in_ctfTypeSpecifier3294); + ctfBody170=ctfBody(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfBody.add(ctfBody170.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(); + // 614:24: -> ^( STRING ( ctfBody )? ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:614:27: ^( STRING ( ctfBody )? ) + { + CommonTree root_1 = (CommonTree)adaptor.nil(); + root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STRING, "STRING"), root_1); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:614: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/linuxtools/ctf/parser/CTFParser.g:617: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 LCURL171=null; + Token RCURL173=null; + ParserRuleReturnScope ctfAssignmentExpressionList172 =null; + + CommonTree LCURL171_tree=null; + CommonTree RCURL173_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/linuxtools/ctf/parser/CTFParser.g:622:3: ( LCURL ( ctfAssignmentExpressionList )? RCURL -> ( ctfAssignmentExpressionList )? ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:622:5: LCURL ( ctfAssignmentExpressionList )? RCURL + { + LCURL171=(Token)match(input,LCURL,FOLLOW_LCURL_in_ctfBody3327); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_LCURL.add(LCURL171); + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:622:11: ( ctfAssignmentExpressionList )? + int alt55=2; + int LA55_0 = input.LA(1); + if ( (LA55_0==ALIGNTOK||(LA55_0 >= BOOLTOK && LA55_0 <= CHARTOK)||LA55_0==CLOCKTOK||(LA55_0 >= COMPLEXTOK && LA55_0 <= DECIMAL_LITERAL)||LA55_0==DOUBLETOK||(LA55_0 >= ENUMTOK && LA55_0 <= ENVTOK)||(LA55_0 >= EVENTTOK && LA55_0 <= FLOATTOK)||LA55_0==HEX_LITERAL||(LA55_0 >= IDENTIFIER && LA55_0 <= IMAGINARYTOK)||LA55_0==INTEGERTOK||LA55_0==INTTOK||LA55_0==LONGTOK||LA55_0==OCTAL_LITERAL||(LA55_0 >= SHORTTOK && LA55_0 <= SIGNEDTOK)||LA55_0==STREAMTOK||LA55_0==STRINGTOK||(LA55_0 >= STRING_LITERAL && LA55_0 <= STRUCTTOK)||(LA55_0 >= TRACETOK && LA55_0 <= TYPEDEFTOK)||(LA55_0 >= UNSIGNEDTOK && LA55_0 <= VOIDTOK)) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:622:11: ctfAssignmentExpressionList + { + pushFollow(FOLLOW_ctfAssignmentExpressionList_in_ctfBody3329); + ctfAssignmentExpressionList172=ctfAssignmentExpressionList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ctfAssignmentExpressionList.add(ctfAssignmentExpressionList172.getTree()); + } + break; + + } + + RCURL173=(Token)match(input,RCURL,FOLLOW_RCURL_in_ctfBody3332); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_RCURL.add(RCURL173); + + // 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(); + // 622:46: -> ( ctfAssignmentExpressionList )? + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:622: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/linuxtools/ctf/parser/CTFParser.g:625: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 TERM175=null; + ParserRuleReturnScope ctfAssignmentExpression174 =null; + + CommonTree TERM175_tree=null; + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:626:3: ( ( ctfAssignmentExpression TERM !)+ ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:626:5: ( ctfAssignmentExpression TERM !)+ + { + root_0 = (CommonTree)adaptor.nil(); + + + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:626:5: ( ctfAssignmentExpression TERM !)+ + int cnt56=0; + loop56: + while (true) { + 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/linuxtools/ctf/parser/CTFParser.g:626:6: ctfAssignmentExpression TERM ! + { + pushFollow(FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3351); + ctfAssignmentExpression174=ctfAssignmentExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ctfAssignmentExpression174.getTree()); + + TERM175=(Token)match(input,TERM,FOLLOW_TERM_in_ctfAssignmentExpressionList3353); if (state.failed) return retval; + } + break; + + default : + if ( cnt56 >= 1 ) break loop56; + if (state.backtracking>0) {state.failed=true; return retval;} + EarlyExitException eee = new EarlyExitException(56, input); + throw eee; + } + cnt56++; + } + + } + + 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/linuxtools/ctf/parser/CTFParser.g:629: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 declarationSpecifiers176 =null; + ParserRuleReturnScope declaratorList177 =null; + ParserRuleReturnScope typealiasDecl178 =null; + + CommonTree assignment_tree=null; + CommonTree type_assignment_tree=null; + RewriteRuleTokenStream stream_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token ASSIGNMENT"); + RewriteRuleTokenStream stream_TYPE_ASSIGNMENT=new RewriteRuleTokenStream(adaptor,"token TYPE_ASSIGNMENT"); + RewriteRuleSubtreeStream stream_declaratorList=new RewriteRuleSubtreeStream(adaptor,"rule declaratorList"); + RewriteRuleSubtreeStream stream_unaryExpression=new RewriteRuleSubtreeStream(adaptor,"rule unaryExpression"); + RewriteRuleSubtreeStream stream_declarationSpecifiers=new RewriteRuleSubtreeStream(adaptor,"rule declarationSpecifiers"); + RewriteRuleSubtreeStream stream_typeSpecifier=new RewriteRuleSubtreeStream(adaptor,"rule typeSpecifier"); + + try { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:635: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 alt58=3; + switch ( input.LA(1) ) { + case IDENTIFIER: + { + int LA58_1 = input.LA(2); + if ( ((LA58_1 >= ARROW && LA58_1 <= ASSIGNMENT)||LA58_1==DOT||LA58_1==OPENBRAC||LA58_1==TYPE_ASSIGNMENT) ) { + alt58=1; + } + else if ( (LA58_1==BOOLTOK||LA58_1==CHARTOK||(LA58_1 >= COMPLEXTOK && LA58_1 <= CONSTTOK)||LA58_1==DOUBLETOK||LA58_1==ENUMTOK||(LA58_1 >= FLOATINGPOINTTOK && LA58_1 <= FLOATTOK)||(LA58_1 >= IDENTIFIER && LA58_1 <= IMAGINARYTOK)||LA58_1==INTEGERTOK||LA58_1==INTTOK||LA58_1==LONGTOK||LA58_1==POINTER||LA58_1==SHORTTOK||LA58_1==SIGNEDTOK||LA58_1==STRINGTOK||LA58_1==STRUCTTOK||LA58_1==TYPEDEFTOK||(LA58_1 >= UNSIGNEDTOK && LA58_1 <= VOIDTOK)) && (( inTypealiasAlias() || isTypeName(input.LT(1).getText()) ))) { + alt58=2; + } + + } + break; + case ALIGNTOK: + case CALLSITETOK: + 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: + { + alt58=1; + } + break; + case SIGNEDTOK: + { + switch ( input.LA(2) ) { + case ARROW: + case ASSIGNMENT: + case DOT: + case OPENBRAC: + case TYPE_ASSIGNMENT: + { + alt58=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: + { + alt58=2; + } + break; + case TYPEDEFTOK: + { + alt58=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 58, 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: + { + alt58=2; + } + break; + case STRINGTOK: + { + switch ( input.LA(2) ) { + case ARROW: + case ASSIGNMENT: + case DOT: + case OPENBRAC: + case TYPE_ASSIGNMENT: + { + alt58=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: + { + alt58=2; + } + break; + case TYPEDEFTOK: + { + alt58=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + int nvaeMark = input.mark(); + try { + input.consume(); + NoViableAltException nvae = + new NoViableAltException("", 58, 5, input); + throw nvae; + } finally { + input.rewind(nvaeMark); + } + } + } + break; + case TYPEALIASTOK: + { + alt58=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 58, 0, input); + throw nvae; + } + switch (alt58) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:635: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_ctfAssignmentExpression3376); + left=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_unaryExpression.add(left.getTree()); + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:636: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 alt57=2; + int LA57_0 = input.LA(1); + if ( (LA57_0==ASSIGNMENT) ) { + alt57=1; + } + else if ( (LA57_0==TYPE_ASSIGNMENT) ) { + alt57=2; + } + + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 57, 0, input); + throw nvae; + } + + switch (alt57) { + case 1 : + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:636:9: assignment= ASSIGNMENT right1= unaryExpression + { + assignment=(Token)match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3388); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_ASSIGNMENT.add(assignment); + + pushFollow(FOLLOW_unaryExpression_in_ctfAssignmentExpression3392); + right1=unaryExpression(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_unaryExpression.add(right1.getTree()); + // AST REWRITE + // elements: left, right1 + // token labels: + // rule labels: retval, left, right1 + // 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); + RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.getTree():null); + RewriteRuleSubtreeStream stream_right1=new RewriteRuleSubtreeStream(adaptor,"rule right1",right1!=null?right1.getTree():null); + + root_0 = (CommonTree)adaptor.nil(); + // 637:11: -> ^( CTF_EXPRESSION_VAL ^( CTF_LEFT $left) ^( CTF_RIGHT $right1) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:637: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/linuxtools/ctf/parser/CTFParser.g:638: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/linuxtools/ctf/parser/CTFParser.g:639: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/linuxtools/ctf/parser/CTFParser.g:640:9: type_assignment= TYPE_ASSIGNMENT right2= typeSpecifier + { + type_assignment=(Token)match(input,TYPE_ASSIGNMENT,FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3468); if (state.failed) return retval; + if ( state.backtracking==0 ) stream_TYPE_ASSIGNMENT.add(type_assignment); + + pushFollow(FOLLOW_typeSpecifier_in_ctfAssignmentExpression3472); + right2=typeSpecifier(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_typeSpecifier.add(right2.getTree()); + // AST REWRITE + // elements: right2, left + // token labels: + // rule labels: retval, left, right2 + // 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); + 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); + + root_0 = (CommonTree)adaptor.nil(); + // 641:11: -> ^( CTF_EXPRESSION_TYPE ^( CTF_LEFT $left) ^( CTF_RIGHT ^( TYPE_SPECIFIER_LIST $right2) ) ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:641: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/linuxtools/ctf/parser/CTFParser.g:642: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/linuxtools/ctf/parser/CTFParser.g:643: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/linuxtools/ctf/parser/CTFParser.g:643: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/linuxtools/ctf/parser/CTFParser.g:645:5: ( declarationSpecifiers {...}? declaratorList ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:645:5: ( declarationSpecifiers {...}? declaratorList ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:645:6: declarationSpecifiers {...}? declaratorList + { + pushFollow(FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3555); + declarationSpecifiers176=declarationSpecifiers(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declarationSpecifiers.add(declarationSpecifiers176.getTree()); + if ( !((inTypedef())) ) { + if (state.backtracking>0) {state.failed=true; return retval;} + throw new FailedPredicateException(input, "ctfAssignmentExpression", "inTypedef()"); + } + pushFollow(FOLLOW_declaratorList_in_ctfAssignmentExpression3559); + declaratorList177=declaratorList(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) stream_declaratorList.add(declaratorList177.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(); + // 646:7: -> ^( TYPEDEF declaratorList declarationSpecifiers ) + { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:646: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/linuxtools/ctf/parser/CTFParser.g:647:5: typealiasDecl + { + root_0 = (CommonTree)adaptor.nil(); + + + pushFollow(FOLLOW_typealiasDecl_in_ctfAssignmentExpression3582); + typealiasDecl178=typealiasDecl(); + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, typealiasDecl178.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/linuxtools/ctf/parser/CTFParser.g:209:5: ( IDENTIFIER ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:209:6: IDENTIFIER + { + match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred1_CTFParser560); if (state.failed) return; + + } + + } + // $ANTLR end synpred1_CTFParser + + // $ANTLR start synpred2_CTFParser + public final void synpred2_CTFParser_fragment() throws RecognitionException { + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:211:5: ( ctfKeyword ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:211:6: ctfKeyword + { + pushFollow(FOLLOW_ctfKeyword_in_synpred2_CTFParser586); + 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/linuxtools/ctf/parser/CTFParser.g:212:5: ( STRING_LITERAL ) + // org/eclipse/linuxtools/ctf/parser/CTFParser.g:212:6: STRING_LITERAL + { + match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_synpred3_CTFParser606); if (state.failed) return; + + } + + } + // $ANTLR end synpred3_CTFParser + + // Delegated rules + + 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; + } + 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; + } + + + protected DFA23 dfa23 = new DFA23(this); + static final String DFA23_eotS = + "\10\uffff"; + static final String DFA23_eofS = + "\10\uffff"; + static final String DFA23_minS = + "\1\46\1\24\1\0\1\24\1\0\2\uffff\1\0"; + static final String DFA23_maxS = + "\2\72\1\0\1\72\1\0\2\uffff\1\0"; + static final String DFA23_acceptS = + "\5\uffff\1\1\1\2\1\uffff"; + static final String DFA23_specialS = + "\2\uffff\1\2\1\uffff\1\1\2\uffff\1\0}>"; + static final String[] DFA23_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[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS); + static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS); + static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS); + static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS); + static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS); + static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS); + static final short[][] DFA23_transition; + + static { + int numStates = DFA23_transitionS.length; + DFA23_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]); + } + } + + protected class DFA23 extends DFA { + + public DFA23(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 23; + this.eot = DFA23_eot; + this.eof = DFA23_eof; + this.min = DFA23_min; + this.max = DFA23_max; + this.accept = DFA23_accept; + this.special = DFA23_special; + this.transition = DFA23_transition; + } + @Override + public String getDescription() { + return "368: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 LA23_7 = input.LA(1); + + int index23_7 = input.index(); + input.rewind(); + s = -1; + if ( ((inTypedef())) ) {s = 5;} + else if ( (true) ) {s = 6;} + + input.seek(index23_7); + if ( s>=0 ) return s; + break; + + case 1 : + int LA23_4 = input.LA(1); + + int index23_4 = input.index(); + input.rewind(); + s = -1; + if ( ((inTypedef())) ) {s = 5;} + else if ( (true) ) {s = 6;} + + input.seek(index23_4); + if ( s>=0 ) return s; + break; + + case 2 : + int LA23_2 = input.LA(1); + + int index23_2 = input.index(); + input.rewind(); + s = -1; + if ( ((inTypedef())) ) {s = 5;} + else if ( (true) ) {s = 6;} + + input.seek(index23_2); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 23, _s, input); + error(nvae); + throw nvae; + } + } + + public static final BitSet FOLLOW_declaration_in_parse449 = new BitSet(new long[]{0x40004AC1DA182B00L,0x000000000001CE95L}); + public static final BitSet FOLLOW_EOF_in_parse452 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SIGN_in_numberLiteral474 = new BitSet(new long[]{0x8040001000200000L}); + public static final BitSet FOLLOW_HEX_LITERAL_in_numberLiteral485 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_LITERAL_in_numberLiteral506 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OCTAL_LITERAL_in_numberLiteral527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression565 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfKeyword_in_primaryExpression591 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_primaryExpression611 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numberLiteral_in_primaryExpression636 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumConstant_in_primaryExpression642 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CHARACTER_LITERAL_in_primaryExpression648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OPENBRAC_in_postfixExpressionSuffix661 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_postfixExpressionSuffix663 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_CLOSEBRAC_in_postfixExpressionSuffix665 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOT_in_postfixExpressionSuffix675 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ARROW_in_postfixExpressionSuffix681 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_postfixExpressionSuffix684 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_primaryExpression_in_postfixExpression716 = new BitSet(new long[]{0x0200000000800022L}); + public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression718 = new BitSet(new long[]{0x0200000000800022L}); + public static final BitSet FOLLOW_ctfSpecifierHead_in_postfixExpression725 = new BitSet(new long[]{0x0200000000800020L}); + public static final BitSet FOLLOW_postfixExpressionSuffix_in_postfixExpression727 = new BitSet(new long[]{0x0200000000800022L}); + public static final BitSet FOLLOW_postfixExpression_in_unaryExpression743 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_enumConstant760 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_enumConstant774 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfKeyword_in_enumConstant788 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_declaration816 = new BitSet(new long[]{0x0400004000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_declaratorList_in_declaration818 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_TERM_in_declaration821 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfSpecifier_in_declaration889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_TERM_in_declaration891 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storageClassSpecifier_in_declarationSpecifiers929 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001C891L}); + public static final BitSet FOLLOW_typeQualifier_in_declarationSpecifiers939 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001C891L}); + public static final BitSet FOLLOW_typeSpecifier_in_declarationSpecifiers949 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001C891L}); + public static final BitSet FOLLOW_declarator_in_declaratorList979 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_SEPARATOR_in_declaratorList982 = new BitSet(new long[]{0x0400004000000000L}); + public static final BitSet FOLLOW_declarator_in_declaratorList984 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList1014 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_SEPARATOR_in_abstractDeclaratorList1017 = new BitSet(new long[]{0x0400804000000000L}); + public static final BitSet FOLLOW_abstractDeclarator_in_abstractDeclaratorList1019 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_TYPEDEFTOK_in_storageClassSpecifier1049 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATTOK_in_typeSpecifier1065 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INTTOK_in_typeSpecifier1071 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LONGTOK_in_typeSpecifier1077 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SHORTTOK_in_typeSpecifier1083 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SIGNEDTOK_in_typeSpecifier1089 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_UNSIGNEDTOK_in_typeSpecifier1095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CHARTOK_in_typeSpecifier1101 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOUBLETOK_in_typeSpecifier1107 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VOIDTOK_in_typeSpecifier1113 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BOOLTOK_in_typeSpecifier1119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_COMPLEXTOK_in_typeSpecifier1125 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMAGINARYTOK_in_typeSpecifier1131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_structSpecifier_in_typeSpecifier1137 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variantSpecifier_in_typeSpecifier1143 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumSpecifier_in_typeSpecifier1149 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfTypeSpecifier_in_typeSpecifier1155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_typedefName_in_typeSpecifier1165 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONSTTOK_in_typeQualifier1178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ALIGNTOK_in_alignAttribute1191 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_LPAREN_in_alignAttribute1193 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_alignAttribute1195 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_RPAREN_in_alignAttribute1197 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LCURL_in_structBody1231 = new BitSet(new long[]{0x48004AC18A180900L,0x000000000001CC91L}); + public static final BitSet FOLLOW_structOrVariantDeclarationList_in_structBody1233 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_RCURL_in_structBody1236 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRUCTTOK_in_structSpecifier1264 = new BitSet(new long[]{0x0000104000000000L}); + public static final BitSet FOLLOW_structName_in_structSpecifier1289 = new BitSet(new long[]{0x0000100000000012L}); + public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1311 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_structBody_in_structSpecifier1347 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1378 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_structBody_in_structSpecifier1494 = new BitSet(new long[]{0x0000000000000012L}); + public static final BitSet FOLLOW_alignAttribute_in_structSpecifier1512 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_structName1578 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_structOrVariantDeclaration_in_structOrVariantDeclarationList1599 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001CC91L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_structOrVariantDeclaration1632 = new BitSet(new long[]{0x0400004000000000L}); + public static final BitSet FOLLOW_declaratorList_in_structOrVariantDeclaration1673 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_structOrVariantDeclaratorList_in_structOrVariantDeclaration1713 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_typealiasDecl_in_structOrVariantDeclaration1772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_TERM_in_structOrVariantDeclaration1784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_typeQualifier_in_specifierQualifierList1798 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001C091L}); + public static final BitSet FOLLOW_typeSpecifier_in_specifierQualifierList1802 = new BitSet(new long[]{0x40004AC18A180902L,0x000000000001C091L}); + public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1835 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_SEPARATOR_in_structOrVariantDeclaratorList1838 = new BitSet(new long[]{0x0400004000000000L}); + public static final BitSet FOLLOW_structOrVariantDeclarator_in_structOrVariantDeclaratorList1840 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_declarator_in_structOrVariantDeclarator1879 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_COLON_in_structOrVariantDeclarator1882 = new BitSet(new long[]{0x8040001000200000L}); + public static final BitSet FOLLOW_numberLiteral_in_structOrVariantDeclarator1884 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VARIANTTOK_in_variantSpecifier1908 = new BitSet(new long[]{0x0001104000000000L}); + public static final BitSet FOLLOW_variantName_in_variantSpecifier1926 = new BitSet(new long[]{0x0001100000000000L}); + public static final BitSet FOLLOW_variantTag_in_variantSpecifier1956 = new BitSet(new long[]{0x0000100000000002L}); + public static final BitSet FOLLOW_variantBody_in_variantSpecifier1982 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variantBody_in_variantSpecifier2050 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variantTag_in_variantSpecifier2071 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_variantBody_in_variantSpecifier2073 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variantBody_in_variantSpecifier2080 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_variantName2112 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LCURL_in_variantBody2143 = new BitSet(new long[]{0x40004AC18A180900L,0x000000000001CC91L}); + public static final BitSet FOLLOW_structOrVariantDeclarationList_in_variantBody2145 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_RCURL_in_variantBody2147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LT_in_variantTag2174 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_variantTag2176 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_GT_in_variantTag2178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ENUMTOK_in_enumSpecifier2199 = new BitSet(new long[]{0x0000104000008000L}); + public static final BitSet FOLLOW_enumName_in_enumSpecifier2238 = new BitSet(new long[]{0x0000100000008002L}); + public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2270 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_enumBody_in_enumSpecifier2272 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumBody_in_enumSpecifier2302 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumContainerType_in_enumSpecifier2394 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_enumBody_in_enumSpecifier2396 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumBody_in_enumSpecifier2420 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_enumName2464 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LCURL_in_enumBody2485 = new BitSet(new long[]{0x0000004040000010L,0x0000000000000051L}); + public static final BitSet FOLLOW_enumeratorList_in_enumBody2487 = new BitSet(new long[]{0x2800000000000000L}); + public static final BitSet FOLLOW_SEPARATOR_in_enumBody2489 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_RCURL_in_enumBody2492 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_COLON_in_enumContainerType2513 = new BitSet(new long[]{0x40004AC18A180900L,0x000000000001C891L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_enumContainerType2515 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_enumerator_in_enumeratorList2536 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_SEPARATOR_in_enumeratorList2539 = new BitSet(new long[]{0x0000004040000010L,0x0000000000000051L}); + public static final BitSet FOLLOW_enumerator_in_enumeratorList2541 = new BitSet(new long[]{0x2000000000000002L}); + public static final BitSet FOLLOW_enumConstant_in_enumerator2567 = new BitSet(new long[]{0x0000000000000042L}); + public static final BitSet FOLLOW_enumeratorValue_in_enumerator2569 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ASSIGNMENT_in_enumeratorValue2583 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2587 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_ELIPSES_in_enumeratorValue2626 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_enumeratorValue2630 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pointer_in_declarator2673 = new BitSet(new long[]{0x0400004000000000L}); + public static final BitSet FOLLOW_directDeclarator_in_declarator2676 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_directDeclarator2714 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_directDeclaratorSuffix_in_directDeclarator2754 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_OPENBRAC_in_directDeclaratorSuffix2768 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_directDeclaratorLength_in_directDeclaratorSuffix2770 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_CLOSEBRAC_in_directDeclaratorSuffix2772 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_unaryExpression_in_directDeclaratorLength2800 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_pointer_in_abstractDeclarator2813 = new BitSet(new long[]{0x0400804000000002L}); + public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2816 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_directAbstractDeclarator_in_abstractDeclarator2841 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_directAbstractDeclarator2878 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_directAbstractDeclarator2889 = new BitSet(new long[]{0x0400804000000000L}); + public static final BitSet FOLLOW_abstractDeclarator_in_directAbstractDeclarator2891 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_RPAREN_in_directAbstractDeclarator2893 = new BitSet(new long[]{0x0200000000000002L}); + public static final BitSet FOLLOW_OPENBRAC_in_directAbstractDeclarator2908 = new BitSet(new long[]{0x8040005050206610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_directAbstractDeclarator2910 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_CLOSEBRAC_in_directAbstractDeclarator2913 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_POINTER_in_pointer2931 = new BitSet(new long[]{0x0000000000100002L}); + public static final BitSet FOLLOW_typeQualifierList_in_pointer2933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_typeQualifier_in_typeQualifierList2956 = new BitSet(new long[]{0x0000000000100002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_typedefName2972 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasTarget2989 = new BitSet(new long[]{0x0400804000000002L}); + public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasTarget2991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias3017 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_typealiasAlias3023 = new BitSet(new long[]{0x0400804000000002L}); + public static final BitSet FOLLOW_abstractDeclaratorList_in_typealiasAlias3025 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TYPEALIASTOK_in_typealiasDecl3039 = new BitSet(new long[]{0x40004AC18A180900L,0x000000000001C891L}); + public static final BitSet FOLLOW_typealiasTarget_in_typealiasDecl3041 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L}); + public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_typealiasDecl3043 = new BitSet(new long[]{0x4400CAC18A180900L,0x000000000001C891L}); + public static final BitSet FOLLOW_typealiasAlias_in_typealiasDecl3045 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfSpecifierHead_in_ctfSpecifier3145 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_ctfBody_in_ctfSpecifier3147 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_typealiasDecl_in_ctfSpecifier3164 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EVENTTOK_in_ctfSpecifierHead3185 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STREAMTOK_in_ctfSpecifierHead3195 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TRACETOK_in_ctfSpecifierHead3205 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ENVTOK_in_ctfSpecifierHead3215 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CLOCKTOK_in_ctfSpecifierHead3225 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CALLSITETOK_in_ctfSpecifierHead3235 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATINGPOINTTOK_in_ctfTypeSpecifier3258 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3260 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INTEGERTOK_in_ctfTypeSpecifier3275 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3277 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRINGTOK_in_ctfTypeSpecifier3292 = new BitSet(new long[]{0x0000100000000002L}); + public static final BitSet FOLLOW_ctfBody_in_ctfTypeSpecifier3294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LCURL_in_ctfBody3327 = new BitSet(new long[]{0xC8404AD1DA382F10L,0x000000000001CED5L}); + public static final BitSet FOLLOW_ctfAssignmentExpressionList_in_ctfBody3329 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_RCURL_in_ctfBody3332 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfAssignmentExpression_in_ctfAssignmentExpressionList3351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L}); + public static final BitSet FOLLOW_TERM_in_ctfAssignmentExpressionList3353 = new BitSet(new long[]{0xC0404AD1DA382F12L,0x000000000001CED5L}); + public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3376 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001000L}); + public static final BitSet FOLLOW_ASSIGNMENT_in_ctfAssignmentExpression3388 = new BitSet(new long[]{0x8040005050202610L,0x0000000000000255L}); + public static final BitSet FOLLOW_unaryExpression_in_ctfAssignmentExpression3392 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TYPE_ASSIGNMENT_in_ctfAssignmentExpression3468 = new BitSet(new long[]{0x40004AC18A080900L,0x000000000001C091L}); + public static final BitSet FOLLOW_typeSpecifier_in_ctfAssignmentExpression3472 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_declarationSpecifiers_in_ctfAssignmentExpression3555 = new BitSet(new long[]{0x0400004000000000L}); + public static final BitSet FOLLOW_declaratorList_in_ctfAssignmentExpression3559 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_typealiasDecl_in_ctfAssignmentExpression3582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_synpred1_CTFParser560 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ctfKeyword_in_synpred2_CTFParser586 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_synpred3_CTFParser606 = new BitSet(new long[]{0x0000000000000002L}); +} |