1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// $ANTLR 3.1.2 BuildOptions\\ProfileTreeGrammar.g3 2009-09-30 13:18:19
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// The variable 'variable' is assigned but its value is never used.
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma warning disable 219
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Unreachable code detected.
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma warning disable 162
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//import java.util.Map;
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//import java.util.HashMap;
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing BigInteger = java.math.BigInteger;
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Console = System.Console;
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing System.Collections.Generic;
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime;
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime.Tree;
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream;using Stack = System.Collections.Generic.Stack<object>;
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing List = System.Collections.IList;
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing ArrayList = System.Collections.Generic.List<object>;
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime.Debug;
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing IOException = System.IO.IOException;
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.1.2")]
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver[System.CLSCompliant(false)]
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpublic partial class ProfileTreeGrammar : DebugTreeParser
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	internal static readonly string[] tokenNames = new string[] {
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		"<invalid>", "<EOR>", "<DOWN>", "<UP>", "CALL", "FUNC", "ID", "INT", "NEWLINE", "WS", "'-'", "'%'", "'('", "')'", "'*'", "'/'", "'+'", "'='"
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	};
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int EOF=-1;
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__10=10;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__11=11;
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__12=12;
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__13=13;
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__14=14;
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__15=15;
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__16=16;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__17=17;
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int CALL=4;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int FUNC=5;
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int ID=6;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int INT=7;
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int NEWLINE=8;
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int WS=9;
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// delegates
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// delegators
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public static readonly string[] ruleNames =
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		new string[]
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"invalidRule", "call", "expr", "prog", "stat"
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		};
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		int ruleLevel = 0;
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual int RuleLevel { get { return ruleLevel; } }
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual void IncRuleLevel() { ruleLevel++; }
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual void DecRuleLevel() { ruleLevel--; }
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public ProfileTreeGrammar( ITreeNodeStream input )
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			: this( input, new Profiler(null), new RecognizerSharedState() )
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public ProfileTreeGrammar( ITreeNodeStream input, IDebugEventListener dbg, RecognizerSharedState state )
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			: base( input, dbg, state )
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Profiler p = (Profiler)dbg;
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			p.setParser(this);
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public ProfileTreeGrammar( ITreeNodeStream input, IDebugEventListener dbg )
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		: base( input, dbg, new RecognizerSharedState() )
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		Profiler p = (Profiler)dbg;
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		p.setParser(this);
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public virtual bool AlreadyParsedRule( IIntStream input, int ruleIndex )
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		((Profiler)dbg).ExamineRuleMemoization(input, ruleIndex, ProfileTreeGrammar.ruleNames[ruleIndex]);
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return super.AlreadyParsedRule(input, ruleIndex);
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public virtual void Memoize( IIntStream input, int ruleIndex, int ruleStartIndex )
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		((Profiler)dbg).Memoize(input, ruleIndex, ruleStartIndex, ProfileTreeGrammar.ruleNames[ruleIndex]);
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		super.Memoize(input, ruleIndex, ruleStartIndex);
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	protected virtual bool EvalPredicate( bool result, string predicate )
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.SemanticPredicate( result, predicate );
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return result;
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public override string[] TokenNames { get { return ProfileTreeGrammar.tokenNames; } }
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public override string GrammarFileName { get { return "BuildOptions\\ProfileTreeGrammar.g3"; } }
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#region Rules
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "prog"
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileTreeGrammar.g3:53:0: prog : ( stat )* ;
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private void prog(  )
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "prog" );
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 53, -1 );
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:53:9: ( ( stat )* )
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:53:9: ( stat )*
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 53, 8 );
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:53:9: ( stat )*
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterSubRule( 1 );
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			for ( ; ; )
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int alt1=2;
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				try
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterDecision( 1 );
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int LA1_0 = input.LA(1);
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				if ( ((LA1_0>=CALL && LA1_0<=INT)||(LA1_0>=10 && LA1_0<=11)||(LA1_0>=14 && LA1_0<=17)) )
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt1=1;
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				finally
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.ExitDecision( 1 );
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				switch ( alt1 )
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				case 1:
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterAlt( 1 );
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileTreeGrammar.g3:53:0: stat
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 53, 8 );
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					PushFollow(Follow._stat_in_prog48);
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					stat();
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					state._fsp--;
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					break;
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				default:
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					goto loop1;
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			loop1:
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				;
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitSubRule( 1 );
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(54, 4);
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "prog" );
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return ;
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "prog"
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "stat"
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileTreeGrammar.g3:56:0: stat : ( expr | ^( '=' ID expr ) | ^( FUNC ( . )+ ) );
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private void stat(  )
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID2=null;
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger expr1 = default(BigInteger);
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger expr3 = default(BigInteger);
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "stat" );
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 56, -1 );
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:56:9: ( expr | ^( '=' ID expr ) | ^( FUNC ( . )+ ) )
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			int alt3=3;
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterDecision( 3 );
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( input.LA(1) )
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case CALL:
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case ID:
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case INT:
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 10:
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 11:
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 14:
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 15:
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 16:
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt3=1;
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 17:
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt3=2;
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case FUNC:
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt3=3;
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			default:
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					NoViableAltException nvae = new NoViableAltException("", 3, 0, input);
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.RecognitionException( nvae );
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					throw nvae;
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitDecision( 3 );
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( alt3 )
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 1:
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 1 );
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:56:9: expr
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 56, 8 );
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_stat63);
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr1=expr();
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 56, 35 );
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 string result = expr1.ToString();
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				                                     Console.Out.WriteLine(expr1 + " (about " + result[0] + "*10^" + (result.Length-1) + ")");
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 2:
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 2 );
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:59:9: ^( '=' ID expr )
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 8 );
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 10 );
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,17,Follow._17_in_stat98);
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 14 );
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID2=(CommonTree)Match(input,ID,Follow._ID_in_stat100);
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 17 );
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_stat102);
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr3=expr();
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 35 );
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 globalMemory[(ID2!=null?ID2.Text:null)] = expr3;
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 3:
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 3 );
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:60:9: ^( FUNC ( . )+ )
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 60, 8 );
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 60, 10 );
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,FUNC,Follow._FUNC_in_stat128);
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 60, 15 );
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:60:16: ( . )+
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int cnt2=0;
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				try
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterSubRule( 2 );
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				for ( ; ; )
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					int alt2=2;
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					try
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterDecision( 2 );
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					int LA2_0 = input.LA(1);
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					if ( ((LA2_0>=CALL && LA2_0<=17)) )
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						alt2=1;
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					else if ( (LA2_0==UP) )
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						alt2=2;
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					finally
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.ExitDecision( 2 );
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					switch ( alt2 )
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					case 1:
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterAlt( 1 );
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						// BuildOptions\\ProfileTreeGrammar.g3:60:0: .
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						{
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.Location( 60, 15 );
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						MatchAny(input);
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						}
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						break;
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					default:
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						if ( cnt2 >= 1 )
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver							goto loop2;
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						EarlyExitException eee2 = new EarlyExitException( 2, input );
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.RecognitionException( eee2 );
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						throw eee2;
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					cnt2++;
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				loop2:
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					;
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				finally
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.ExitSubRule( 2 );
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(61, 4);
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "stat" );
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return ;
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "stat"
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "expr"
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileTreeGrammar.g3:63:0: expr returns [BigInteger value] : ( ^( '+' a= expr b= expr ) | ^( '-' a= expr b= expr ) | ^( '*' a= expr b= expr ) | ^( '/' a= expr b= expr ) | ^( '%' a= expr b= expr ) | ID | INT | call );
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private BigInteger expr(  )
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger value = default(BigInteger);
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID4=null;
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree INT5=null;
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger a = default(BigInteger);
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger b = default(BigInteger);
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger call6 = default(BigInteger);
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "expr" );
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 63, -1 );
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:64:9: ( ^( '+' a= expr b= expr ) | ^( '-' a= expr b= expr ) | ^( '*' a= expr b= expr ) | ^( '/' a= expr b= expr ) | ^( '%' a= expr b= expr ) | ID | INT | call )
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			int alt4=8;
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterDecision( 4 );
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( input.LA(1) )
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 16:
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=1;
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 10:
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=2;
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 14:
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=3;
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 15:
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=4;
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 11:
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=5;
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case ID:
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=6;
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case INT:
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=7;
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case CALL:
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt4=8;
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			default:
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					NoViableAltException nvae = new NoViableAltException("", 4, 0, input);
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.RecognitionException( nvae );
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					throw nvae;
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitDecision( 4 );
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( alt4 )
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 1:
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 1 );
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:64:9: ^( '+' a= expr b= expr )
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 64, 8 );
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 64, 10 );
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,16,Follow._16_in_expr172);
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 64, 15 );
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr176);
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				a=expr();
531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 64, 22 );
535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr180);
536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				b=expr();
537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 64, 35 );
543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = a.add(b);
544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 2:
548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 2 );
549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:65:9: ^( '-' a= expr b= expr )
551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 65, 8 );
553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 65, 10 );
554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,10,Follow._10_in_expr200);
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 65, 15 );
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr204);
559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				a=expr();
560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
562324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 65, 22 );
564324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr208);
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				b=expr();
566324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
567324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
568324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
570324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
571324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 65, 35 );
572324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = a.subtract(b);
573324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
574324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
576324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 3:
577324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 3 );
578324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:66:9: ^( '*' a= expr b= expr )
580324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
581324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 66, 8 );
582324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 66, 10 );
583324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,14,Follow._14_in_expr228);
584324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
585324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
586324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 66, 15 );
587324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr232);
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				a=expr();
589324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
591324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 66, 22 );
593324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr236);
594324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				b=expr();
595324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
597324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
598324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
599324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
600324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 66, 35 );
601324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = a.multiply(b);
602324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
603324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
605324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 4:
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 4 );
607324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:67:9: ^( '/' a= expr b= expr )
609324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 67, 8 );
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 67, 10 );
612324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,15,Follow._15_in_expr256);
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
614324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 67, 15 );
616324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr260);
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				a=expr();
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
619324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
621324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 67, 22 );
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr264);
623324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				b=expr();
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
626324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 67, 35 );
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = a.divide(b);
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
633324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
634324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 5:
635324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 5 );
636324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
637324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:68:9: ^( '%' a= expr b= expr )
638324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
639324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 68, 8 );
640324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 68, 10 );
641324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input,11,Follow._11_in_expr284);
642324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
643324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Down, null);
644324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 68, 15 );
645324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr288);
646324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				a=expr();
647324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
648324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
649324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
650324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 68, 22 );
651324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_expr292);
652324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				b=expr();
653324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
654324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
655324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
656324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
657324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				Match(input, TokenTypes.Up, null);
658324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 68, 35 );
659324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = a.remainder(b);
660324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
661324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
662324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
663324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 6:
664324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 6 );
665324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
666324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:69:9: ID
667324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
668324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 69, 8 );
669324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID4=(CommonTree)Match(input,ID,Follow._ID_in_expr311);
670324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 69, 35 );
671324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = getValue((ID4!=null?ID4.Text:null));
672324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
673324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
674324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
675324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 7:
676324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 7 );
677324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
678324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:70:9: INT
679324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
680324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 70, 8 );
681324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				INT5=(CommonTree)Match(input,INT,Follow._INT_in_expr347);
682324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 70, 35 );
683324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = new BigInteger((INT5!=null?INT5.Text:null));
684324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
685324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
686324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
687324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 8:
688324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 8 );
689324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
690324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileTreeGrammar.g3:71:9: call
691324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
692324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 71, 8 );
693324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._call_in_expr382);
694324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				call6=call();
695324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
696324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
697324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
698324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 71, 35 );
699324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				 value = call6;
700324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
701324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
702324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
703324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
704324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
705324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
706324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
707324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
708324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
709324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
710324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
711324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
712324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
713324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
714324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(72, 4);
715324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
716324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
717324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
718324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
719324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "expr" );
720324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
721324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
722324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
723324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
724324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
725324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
726324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
727324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return value;
728324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
729324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "expr"
730324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
731324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
732324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "call"
733324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileTreeGrammar.g3:74:0: call returns [BigInteger value] : ^( CALL ID expr ) ;
734324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private BigInteger call(  )
735324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
736324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger value = default(BigInteger);
737324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
738324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID8=null;
739324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		BigInteger expr7 = default(BigInteger);
740324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
741324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
742324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
743324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "call" );
744324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
745324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
746324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
747324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
748324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
749324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 74, -1 );
750324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
751324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
752324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
753324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:75:9: ( ^( CALL ID expr ) )
754324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
755324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
756324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileTreeGrammar.g3:75:9: ^( CALL ID expr )
757324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
758324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 75, 8 );
759324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 75, 10 );
760324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Match(input,CALL,Follow._CALL_in_call430);
761324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
762324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Match(input, TokenTypes.Down, null);
763324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 75, 15 );
764324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ID8=(CommonTree)Match(input,ID,Follow._ID_in_call432);
765324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 75, 18 );
766324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			PushFollow(Follow._expr_in_call434);
767324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			expr7=expr();
768324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
769324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			state._fsp--;
770324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
771324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
772324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Match(input, TokenTypes.Up, null);
773324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 75, 35 );
774324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			 BigInteger p = expr7;
775324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                     CommonTree funcRoot = findFunction((ID8!=null?ID8.Text:null), p);
776324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                     if (funcRoot == null) {
777324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         Console.Error.WriteLine("No match found for " + (ID8!=null?ID8.Text:null) + "(" + p + ")");
778324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                     } else {
779324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         // Here we set up the local evaluator to run over the
780324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         // function definition with the parameter value.
781324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         // This re-reads a sub-AST of our input AST!
782324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         ProfileTreeGrammar e = new ProfileTreeGrammar(funcRoot, functionDefinitions, globalMemory, p);
783324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                         value = e.expr();
784324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			                                     }
785324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
786324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
787324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
788324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
789324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
790324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
791324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
792324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
793324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
794324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
795324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
796324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
797324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
798324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(87, 4);
799324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
800324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
801324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
802324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
803324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "call" );
804324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
805324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
806324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
807324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
808324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
809324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
810324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
811324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return value;
812324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
813324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "call"
814324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#endregion Rules
815324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
816324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
817324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#region Follow sets
818324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private static class Follow
819324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
820324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _stat_in_prog48 = new BitSet(new ulong[]{0x3CCF2UL});
821324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_stat63 = new BitSet(new ulong[]{0x2UL});
822324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _17_in_stat98 = new BitSet(new ulong[]{0x4UL});
823324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_stat100 = new BitSet(new ulong[]{0x1CCD0UL});
824324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_stat102 = new BitSet(new ulong[]{0x8UL});
825324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _FUNC_in_stat128 = new BitSet(new ulong[]{0x4UL});
826324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _16_in_expr172 = new BitSet(new ulong[]{0x4UL});
827324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr176 = new BitSet(new ulong[]{0x1CCD0UL});
828324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr180 = new BitSet(new ulong[]{0x8UL});
829324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _10_in_expr200 = new BitSet(new ulong[]{0x4UL});
830324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr204 = new BitSet(new ulong[]{0x1CCD0UL});
831324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr208 = new BitSet(new ulong[]{0x8UL});
832324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _14_in_expr228 = new BitSet(new ulong[]{0x4UL});
833324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr232 = new BitSet(new ulong[]{0x1CCD0UL});
834324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr236 = new BitSet(new ulong[]{0x8UL});
835324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _15_in_expr256 = new BitSet(new ulong[]{0x4UL});
836324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr260 = new BitSet(new ulong[]{0x1CCD0UL});
837324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr264 = new BitSet(new ulong[]{0x8UL});
838324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _11_in_expr284 = new BitSet(new ulong[]{0x4UL});
839324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr288 = new BitSet(new ulong[]{0x1CCD0UL});
840324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_expr292 = new BitSet(new ulong[]{0x8UL});
841324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_expr311 = new BitSet(new ulong[]{0x2UL});
842324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _INT_in_expr347 = new BitSet(new ulong[]{0x2UL});
843324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _call_in_expr382 = new BitSet(new ulong[]{0x2UL});
844324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _CALL_in_call430 = new BitSet(new ulong[]{0x4UL});
845324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_call432 = new BitSet(new ulong[]{0x1CCD0UL});
846324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_call434 = new BitSet(new ulong[]{0x8UL});
847324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
848324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
849324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#endregion Follow sets
850324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
851