1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// $ANTLR 3.2 Aug 13, 2010 14:19:31 SimpleCTP.g 2010-08-13 14:29:19
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport org.antlr.runtime.*;
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport org.antlr.runtime.tree.*;import java.util.Stack;
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport java.util.List;
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport java.util.ArrayList;
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpublic class SimpleCTP extends TreeParser {
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final String[] tokenNames = new String[] {
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VAR_DEF", "ARG_DEF", "FUNC_HDR", "FUNC_DECL", "FUNC_DEF", "BLOCK", "ID", "EQ", "INT", "FOR", "INT_TYPE", "CHAR", "VOID", "EQEQ", "LT", "PLUS", "WS", "';'", "'('", "','", "')'", "'{'", "'}'"
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    };
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int LT=18;
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__26=26;
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__25=25;
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__24=24;
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__23=23;
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__22=22;
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int T__21=21;
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int CHAR=15;
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int FOR=13;
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int FUNC_HDR=6;
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int INT=12;
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int FUNC_DEF=8;
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int INT_TYPE=14;
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int ID=10;
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int EOF=-1;
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int FUNC_DECL=7;
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int ARG_DEF=5;
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int WS=20;
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int BLOCK=9;
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int PLUS=19;
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int VOID=16;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int EQ=11;
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int VAR_DEF=4;
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final int EQEQ=17;
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // delegates
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // delegators
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        public SimpleCTP(TreeNodeStream input) {
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            this(input, new RecognizerSharedState());
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        public SimpleCTP(TreeNodeStream input, RecognizerSharedState state) {
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            super(input, state);
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public String[] getTokenNames() { return SimpleCTP.tokenNames; }
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public String getGrammarFileName() { return "SimpleCTP.g"; }
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "program"
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:8:1: program : ( declaration )+ ;
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void program() throws RecognitionException {
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:9:5: ( ( declaration )+ )
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:9:9: ( declaration )+
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:9:9: ( declaration )+
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            int cnt1=0;
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            loop1:
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            do {
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                int alt1=2;
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                int LA1_0 = input.LA(1);
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                if ( (LA1_0==VAR_DEF||(LA1_0>=FUNC_DECL && LA1_0<=FUNC_DEF)) ) {
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    alt1=1;
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                switch (alt1) {
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	case 1 :
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    // SimpleCTP.g:9:9: declaration
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    {
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    pushFollow(FOLLOW_declaration_in_program43);
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    declaration();
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    state._fsp--;
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    }
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    break;
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	default :
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    if ( cnt1 >= 1 ) break loop1;
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        EarlyExitException eee =
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                            new EarlyExitException(1, input);
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        throw eee;
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                cnt1++;
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            } while (true);
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "program"
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "declaration"
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:12:1: declaration : ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) );
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void declaration() throws RecognitionException {
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:13:5: ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) )
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            int alt2=3;
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch ( input.LA(1) ) {
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case VAR_DEF:
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=1;
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case FUNC_DECL:
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=2;
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case FUNC_DEF:
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=3;
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            default:
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NoViableAltException nvae =
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    new NoViableAltException("", 2, 0, input);
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                throw nvae;
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch (alt2) {
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 1 :
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:13:9: variable
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_variable_in_declaration63);
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    variable();
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 2 :
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:14:9: ^( FUNC_DECL functionHeader )
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,FUNC_DECL,FOLLOW_FUNC_DECL_in_declaration74);
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_functionHeader_in_declaration76);
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    functionHeader();
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 3 :
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:15:9: ^( FUNC_DEF functionHeader block )
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,FUNC_DEF,FOLLOW_FUNC_DEF_in_declaration88);
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_functionHeader_in_declaration90);
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    functionHeader();
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_block_in_declaration92);
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    block();
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "declaration"
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "variable"
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:18:1: variable : ^( VAR_DEF type declarator ) ;
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void variable() throws RecognitionException {
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:19:5: ( ^( VAR_DEF type declarator ) )
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:19:9: ^( VAR_DEF type declarator )
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,VAR_DEF,FOLLOW_VAR_DEF_in_variable113);
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.DOWN, null);
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_type_in_variable115);
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            type();
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_declarator_in_variable117);
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            declarator();
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.UP, null);
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "variable"
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "declarator"
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:22:1: declarator : ID ;
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void declarator() throws RecognitionException {
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:23:5: ( ID )
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:23:9: ID
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,ID,FOLLOW_ID_in_declarator137);
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "declarator"
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "functionHeader"
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:26:1: functionHeader : ^( FUNC_HDR type ID ( formalParameter )+ ) ;
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void functionHeader() throws RecognitionException {
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:27:5: ( ^( FUNC_HDR type ID ( formalParameter )+ ) )
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:27:9: ^( FUNC_HDR type ID ( formalParameter )+ )
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,FUNC_HDR,FOLLOW_FUNC_HDR_in_functionHeader158);
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.DOWN, null);
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_type_in_functionHeader160);
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            type();
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,ID,FOLLOW_ID_in_functionHeader162);
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:27:28: ( formalParameter )+
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            int cnt3=0;
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            loop3:
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            do {
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                int alt3=2;
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                int LA3_0 = input.LA(1);
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                if ( (LA3_0==ARG_DEF) ) {
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    alt3=1;
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                switch (alt3) {
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	case 1 :
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    // SimpleCTP.g:27:28: formalParameter
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    {
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    pushFollow(FOLLOW_formalParameter_in_functionHeader164);
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    formalParameter();
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    state._fsp--;
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    }
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    break;
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	default :
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            	    if ( cnt3 >= 1 ) break loop3;
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        EarlyExitException eee =
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                            new EarlyExitException(3, input);
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        throw eee;
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                cnt3++;
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            } while (true);
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.UP, null);
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "functionHeader"
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "formalParameter"
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:30:1: formalParameter : ^( ARG_DEF type declarator ) ;
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void formalParameter() throws RecognitionException {
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:31:5: ( ^( ARG_DEF type declarator ) )
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:31:9: ^( ARG_DEF type declarator )
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,ARG_DEF,FOLLOW_ARG_DEF_in_formalParameter186);
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.DOWN, null);
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_type_in_formalParameter188);
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            type();
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_declarator_in_formalParameter190);
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            declarator();
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.UP, null);
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "formalParameter"
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "type"
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:34:1: type : ( 'int' | 'char' | 'void' | ID );
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void type() throws RecognitionException {
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:35:5: ( 'int' | 'char' | 'void' | ID )
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            if ( input.LA(1)==ID||(input.LA(1)>=INT_TYPE && input.LA(1)<=VOID) ) {
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                input.consume();
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                state.errorRecovery=false;
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            else {
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                MismatchedSetException mse = new MismatchedSetException(null,input);
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                throw mse;
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "type"
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "block"
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:41:1: block : ^( BLOCK ( variable )* ( stat )* ) ;
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void block() throws RecognitionException {
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:42:5: ( ^( BLOCK ( variable )* ( stat )* ) )
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:42:9: ^( BLOCK ( variable )* ( stat )* )
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,BLOCK,FOLLOW_BLOCK_in_block273);
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            if ( input.LA(1)==Token.DOWN ) {
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                match(input, Token.DOWN, null);
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:42:17: ( variable )*
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                loop4:
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                do {
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    int alt4=2;
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    int LA4_0 = input.LA(1);
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    if ( (LA4_0==VAR_DEF) ) {
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        alt4=1;
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    switch (alt4) {
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	case 1 :
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    // SimpleCTP.g:42:17: variable
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    {
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    pushFollow(FOLLOW_variable_in_block275);
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    variable();
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    state._fsp--;
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    }
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    break;
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	default :
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    break loop4;
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                } while (true);
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:42:27: ( stat )*
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                loop5:
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                do {
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    int alt5=2;
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    int LA5_0 = input.LA(1);
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    if ( ((LA5_0>=BLOCK && LA5_0<=FOR)||(LA5_0>=EQEQ && LA5_0<=PLUS)) ) {
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        alt5=1;
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    switch (alt5) {
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	case 1 :
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    // SimpleCTP.g:42:27: stat
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    {
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    pushFollow(FOLLOW_stat_in_block278);
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    stat();
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    state._fsp--;
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    }
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    break;
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	default :
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                	    break loop5;
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                } while (true);
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                match(input, Token.UP, null);
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "block"
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "stat"
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:45:1: stat : ( forStat | expr | block );
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void stat() throws RecognitionException {
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:45:5: ( forStat | expr | block )
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            int alt6=3;
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch ( input.LA(1) ) {
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case FOR:
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=1;
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case ID:
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case EQ:
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case INT:
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case EQEQ:
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case LT:
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case PLUS:
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=2;
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case BLOCK:
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=3;
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            default:
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NoViableAltException nvae =
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    new NoViableAltException("", 6, 0, input);
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                throw nvae;
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch (alt6) {
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 1 :
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:45:7: forStat
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_forStat_in_stat292);
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    forStat();
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 2 :
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:46:7: expr
533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_stat300);
535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 3 :
543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:47:7: block
544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_block_in_stat308);
546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    block();
547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
562324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
564324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "stat"
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
566324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
567324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "forStat"
568324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:50:1: forStat : ^( 'for' expr expr expr block ) ;
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void forStat() throws RecognitionException {
570324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
571324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:51:5: ( ^( 'for' expr expr expr block ) )
572324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:51:9: ^( 'for' expr expr expr block )
573324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
574324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input,FOR,FOLLOW_FOR_in_forStat328);
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
576324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.DOWN, null);
577324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_expr_in_forStat330);
578324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            expr();
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
580324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
581324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
582324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_expr_in_forStat332);
583324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            expr();
584324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
585324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
586324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
587324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_expr_in_forStat334);
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            expr();
589324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
591324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            pushFollow(FOLLOW_block_in_forStat336);
593324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            block();
594324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
595324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            state._fsp--;
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
597324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
598324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            match(input, Token.UP, null);
599324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
600324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
601324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
602324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
603324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
605324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
607324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
609324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "forStat"
612324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static class expr_return extends TreeRuleReturnScope {
614324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    };
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
616324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "expr"
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:54:1: expr : ( ^( EQEQ expr expr ) | ^( LT expr expr ) | ^( PLUS expr expr ) | ^( EQ ID e= expr ) | atom );
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final SimpleCTP.expr_return expr() throws RecognitionException {
619324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        SimpleCTP.expr_return retval = new SimpleCTP.expr_return();
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        retval.start = input.LT(1);
621324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        ANTLRCommonTree ID1=null;
623324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        SimpleCTP.expr_return e = null;
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
626324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:54:5: ( ^( EQEQ expr expr ) | ^( LT expr expr ) | ^( PLUS expr expr ) | ^( EQ ID e= expr ) | atom )
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            int alt7=5;
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch ( input.LA(1) ) {
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case EQEQ:
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=1;
633324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
634324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
635324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case LT:
636324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
637324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=2;
638324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
639324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
640324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case PLUS:
641324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
642324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=3;
643324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
644324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
645324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case EQ:
646324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
647324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=4;
648324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
649324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
650324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case ID:
651324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case INT:
652324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
653324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=5;
654324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
655324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
656324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            default:
657324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NoViableAltException nvae =
658324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    new NoViableAltException("", 7, 0, input);
659324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
660324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                throw nvae;
661324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
662324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
663324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch (alt7) {
664324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 1 :
665324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:54:9: ^( EQEQ expr expr )
666324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
667324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,EQEQ,FOLLOW_EQEQ_in_expr352);
668324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
669324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
670324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr354);
671324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
672324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
673324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
674324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
675324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr356);
676324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
677324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
678324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
679324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
680324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
681324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
682324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
683324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
684324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
685324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 2 :
686324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:55:9: ^( LT expr expr )
687324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
688324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,LT,FOLLOW_LT_in_expr368);
689324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
690324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
691324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr370);
692324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
693324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
694324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
695324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
696324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr372);
697324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
698324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
699324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
700324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
701324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
702324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
703324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
704324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
705324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
706324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 3 :
707324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:56:9: ^( PLUS expr expr )
708324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
709324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,PLUS,FOLLOW_PLUS_in_expr384);
710324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
711324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
712324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr386);
713324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
714324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
715324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
716324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
717324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr388);
718324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    expr();
719324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
720324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
721324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
722324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
723324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
724324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
725324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
726324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
727324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 4 :
728324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:57:9: ^( EQ ID e= expr )
729324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
730324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input,EQ,FOLLOW_EQ_in_expr400);
731324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
732324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.DOWN, null);
733324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    ID1=(ANTLRCommonTree)match(input,ID,FOLLOW_ID_in_expr402);
734324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_expr_in_expr406);
735324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    e=expr();
736324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
737324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
738324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
739324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
740324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    match(input, Token.UP, null);
741324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                     NSLog(@"assigning %@ to variable %@", (e!=null?(input.getTokenStream().toString(
742324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                      input.getTreeAdaptor().getTokenStartIndex(e.start),
743324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                      input.getTreeAdaptor().getTokenStopIndex(e.start))):null), (ID1!=null?ID1.getText():null));
744324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
745324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
746324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
747324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 5 :
748324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:58:9: atom
749324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
750324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    pushFollow(FOLLOW_atom_in_expr419);
751324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    atom();
752324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
753324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    state._fsp--;
754324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
755324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
756324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
757324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
758324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
759324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
760324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
761324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
762324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
763324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
764324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
765324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
766324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
767324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return retval;
768324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
769324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "expr"
770324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
771324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
772324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR start "atom"
773324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // SimpleCTP.g:61:1: atom : ( ID | INT );
774324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public final void atom() throws RecognitionException {
775324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        try {
776324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:62:5: ( ID | INT )
777324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:
778324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            {
779324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            if ( input.LA(1)==ID||input.LA(1)==INT ) {
780324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                input.consume();
781324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                state.errorRecovery=false;
782324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
783324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            else {
784324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                MismatchedSetException mse = new MismatchedSetException(null,input);
785324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                throw mse;
786324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
787324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
788324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
789324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
790324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
791324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
792324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        catch (RecognitionException re) {
793324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            reportError(re);
794324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            recover(input,re);
795324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
796324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        finally {
797324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
798324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        return ;
799324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
800324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // $ANTLR end "atom"
801324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
802324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    // Delegated rules
803324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
804324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
805324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
806324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
807324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_declaration_in_program43 = new BitSet(new long[]{0x0000000000000192L});
808324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_variable_in_declaration63 = new BitSet(new long[]{0x0000000000000002L});
809324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_FUNC_DECL_in_declaration74 = new BitSet(new long[]{0x0000000000000004L});
810324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_functionHeader_in_declaration76 = new BitSet(new long[]{0x0000000000000008L});
811324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_FUNC_DEF_in_declaration88 = new BitSet(new long[]{0x0000000000000004L});
812324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_functionHeader_in_declaration90 = new BitSet(new long[]{0x0000000000000200L});
813324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_block_in_declaration92 = new BitSet(new long[]{0x0000000000000008L});
814324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_VAR_DEF_in_variable113 = new BitSet(new long[]{0x0000000000000004L});
815324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_type_in_variable115 = new BitSet(new long[]{0x0000000000000400L});
816324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_declarator_in_variable117 = new BitSet(new long[]{0x0000000000000008L});
817324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_ID_in_declarator137 = new BitSet(new long[]{0x0000000000000002L});
818324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_FUNC_HDR_in_functionHeader158 = new BitSet(new long[]{0x0000000000000004L});
819324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_type_in_functionHeader160 = new BitSet(new long[]{0x0000000000000400L});
820324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_ID_in_functionHeader162 = new BitSet(new long[]{0x0000000000000020L});
821324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_formalParameter_in_functionHeader164 = new BitSet(new long[]{0x0000000000000028L});
822324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_ARG_DEF_in_formalParameter186 = new BitSet(new long[]{0x0000000000000004L});
823324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_type_in_formalParameter188 = new BitSet(new long[]{0x0000000000000400L});
824324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_declarator_in_formalParameter190 = new BitSet(new long[]{0x0000000000000008L});
825324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_set_in_type0 = new BitSet(new long[]{0x0000000000000002L});
826324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_BLOCK_in_block273 = new BitSet(new long[]{0x0000000000000004L});
827324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_variable_in_block275 = new BitSet(new long[]{0x00000000000E3E18L});
828324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_stat_in_block278 = new BitSet(new long[]{0x00000000000E3E08L});
829324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_forStat_in_stat292 = new BitSet(new long[]{0x0000000000000002L});
830324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_stat300 = new BitSet(new long[]{0x0000000000000002L});
831324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_block_in_stat308 = new BitSet(new long[]{0x0000000000000002L});
832324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_FOR_in_forStat328 = new BitSet(new long[]{0x0000000000000004L});
833324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_forStat330 = new BitSet(new long[]{0x00000000000E1C00L});
834324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_forStat332 = new BitSet(new long[]{0x00000000000E1C00L});
835324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_forStat334 = new BitSet(new long[]{0x0000000000000200L});
836324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_block_in_forStat336 = new BitSet(new long[]{0x0000000000000008L});
837324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_EQEQ_in_expr352 = new BitSet(new long[]{0x0000000000000004L});
838324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr354 = new BitSet(new long[]{0x00000000000E1C00L});
839324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr356 = new BitSet(new long[]{0x0000000000000008L});
840324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_LT_in_expr368 = new BitSet(new long[]{0x0000000000000004L});
841324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr370 = new BitSet(new long[]{0x00000000000E1C00L});
842324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr372 = new BitSet(new long[]{0x0000000000000008L});
843324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_PLUS_in_expr384 = new BitSet(new long[]{0x0000000000000004L});
844324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr386 = new BitSet(new long[]{0x00000000000E1C00L});
845324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr388 = new BitSet(new long[]{0x0000000000000008L});
846324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_EQ_in_expr400 = new BitSet(new long[]{0x0000000000000004L});
847324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_ID_in_expr402 = new BitSet(new long[]{0x00000000000E1C00L});
848324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_expr_in_expr406 = new BitSet(new long[]{0x0000000000000008L});
849324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_atom_in_expr419 = new BitSet(new long[]{0x0000000000000002L});
850324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    public static final BitSet FOLLOW_set_in_atom0 = new BitSet(new long[]{0x0000000000000002L});
851324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
852324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}