1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// $ANTLR 3.1.2 BuildOptions\\ProfileGrammar.g3 2009-09-30 13:18:17
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 Gruverusing System.Collections.Generic;
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime;
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Stack = System.Collections.Generic.Stack<object>;
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing List = System.Collections.IList;
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing ArrayList = System.Collections.Generic.List<object>;
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime.Debug;
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing IOException = System.IO.IOException;
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing Antlr.Runtime.Tree;
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverusing RewriteRuleITokenStream = Antlr.Runtime.Tree.RewriteRuleTokenStream;
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver[System.CodeDom.Compiler.GeneratedCode("ANTLR", "3.1.2")]
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver[System.CLSCompliant(false)]
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpublic partial class ProfileGrammarParser : DebugParser
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	internal static readonly string[] tokenNames = new string[] {
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		"<invalid>", "<EOR>", "<DOWN>", "<UP>", "CALL", "FUNC", "ID", "INT", "NEWLINE", "WS", "'-'", "'%'", "'('", "')'", "'*'", "'/'", "'+'", "'='"
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	};
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int EOF=-1;
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__10=10;
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__11=11;
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__12=12;
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__13=13;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__14=14;
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__15=15;
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__16=16;
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int T__17=17;
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int CALL=4;
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int FUNC=5;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int ID=6;
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int INT=7;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int NEWLINE=8;
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public const int WS=9;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// delegates
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// delegators
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public static readonly string[] ruleNames =
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		new string[]
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"invalidRule", "atom", "expr", "formalPar", "func", "multExpr", "prog",
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		"stat"
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		};
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		int ruleLevel = 0;
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual int RuleLevel { get { return ruleLevel; } }
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual void IncRuleLevel() { ruleLevel++; }
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public virtual void DecRuleLevel() { ruleLevel--; }
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public ProfileGrammarParser( ITokenStream input )
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			: this( input, new Profiler(null), new RecognizerSharedState() )
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public ProfileGrammarParser( ITokenStream input, IDebugEventListener dbg, RecognizerSharedState state )
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			: base( input, dbg, state )
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Profiler p = (Profiler)dbg;
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			p.setParser(this);
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			InitializeTreeAdaptor();
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( TreeAdaptor == null )
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				TreeAdaptor = new CommonTreeAdaptor();
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ITreeAdaptor adap = new CommonTreeAdaptor();
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			TreeAdaptor = adap;
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			proxy.TreeAdaptor = adap;
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public ProfileGrammarParser( ITokenStream input, IDebugEventListener dbg )
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		: base( input, dbg )
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		Profiler p = (Profiler)dbg;
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		p.setParser(this);InitializeTreeAdaptor();
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		if ( TreeAdaptor == null )
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			TreeAdaptor = new CommonTreeAdaptor();
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ITreeAdaptor adap = new CommonTreeAdaptor();
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		TreeAdaptor = adap;
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public virtual bool AlreadyParsedRule( IIntStream input, int ruleIndex )
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		((Profiler)dbg).ExamineRuleMemoization(input, ruleIndex, ProfileGrammarParser.ruleNames[ruleIndex]);
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return super.AlreadyParsedRule(input, ruleIndex);
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public virtual void Memoize( IIntStream input, int ruleIndex, int ruleStartIndex )
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		((Profiler)dbg).Memoize(input, ruleIndex, ruleStartIndex, ProfileGrammarParser.ruleNames[ruleIndex]);
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		super.Memoize(input, ruleIndex, ruleStartIndex);
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	protected virtual bool EvalPredicate( bool result, string predicate )
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.SemanticPredicate( result, predicate );
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return result;
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// Implement this function in your helper file to use a custom tree adaptor
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	partial void InitializeTreeAdaptor();
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	protected DebugTreeAdaptor adaptor;
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public ITreeAdaptor TreeAdaptor
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		get
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			return adaptor;
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		set
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.adaptor = new DebugTreeAdaptor(dbg,adaptor);
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public override string[] TokenNames { get { return ProfileGrammarParser.tokenNames; } }
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public override string GrammarFileName { get { return "BuildOptions\\ProfileGrammar.g3"; } }
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#region Rules
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class prog_return : ParserRuleReturnScope
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "prog"
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:50:0: prog : ( stat )* ;
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.prog_return prog(  )
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.prog_return retval = new ProfileGrammarParser.prog_return();
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.stat_return stat1 = default(ProfileGrammarParser.stat_return);
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "prog" );
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 50, -1 );
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:50:7: ( ( stat )* )
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:50:7: ( stat )*
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			root_0 = (CommonTree)adaptor.Nil();
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 50, 6 );
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:50:7: ( stat )*
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterSubRule( 1 );
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			for ( ; ; )
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int alt1=2;
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				try
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterDecision( 1 );
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int LA1_0 = input.LA(1);
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				if ( ((LA1_0>=ID && LA1_0<=NEWLINE)||LA1_0==12) )
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt1=1;
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				finally
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.ExitDecision( 1 );
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				switch ( alt1 )
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				case 1:
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterAlt( 1 );
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:50:9: stat
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 50, 8 );
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					PushFollow(Follow._stat_in_prog53);
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					stat1=stat();
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					state._fsp--;
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, stat1.Tree);
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					break;
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				default:
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					goto loop1;
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			loop1:
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				;
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitSubRule( 1 );
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(51, 4);
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "prog" );
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "prog"
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class stat_return : ParserRuleReturnScope
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "stat"
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:53:0: stat : ( expr NEWLINE -> expr | ID '=' expr NEWLINE -> ^( '=' ID expr ) | func NEWLINE -> func | NEWLINE ->);
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.stat_return stat(  )
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.stat_return retval = new ProfileGrammarParser.stat_return();
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken NEWLINE3=null;
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken ID4=null;
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal5=null;
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken NEWLINE7=null;
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken NEWLINE9=null;
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken NEWLINE10=null;
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return expr2 = default(ProfileGrammarParser.expr_return);
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return expr6 = default(ProfileGrammarParser.expr_return);
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.func_return func8 = default(ProfileGrammarParser.func_return);
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree NEWLINE3_tree=null;
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID4_tree=null;
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal5_tree=null;
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree NEWLINE7_tree=null;
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree NEWLINE9_tree=null;
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree NEWLINE10_tree=null;
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_NEWLINE=new RewriteRuleITokenStream(adaptor,"token NEWLINE");
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID");
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_17=new RewriteRuleITokenStream(adaptor,"token 17");
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleSubtreeStream stream_func=new RewriteRuleSubtreeStream(adaptor,"rule func");
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "stat" );
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 53, -1 );
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:53:9: ( expr NEWLINE -> expr | ID '=' expr NEWLINE -> ^( '=' ID expr ) | func NEWLINE -> func | NEWLINE ->)
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			int alt2=4;
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterDecision( 2 );
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				isCyclicDecision = true;
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt2 = dfa2.Predict(input);
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			catch ( NoViableAltException nvae )
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.RecognitionException( nvae );
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				throw nvae;
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitDecision( 2 );
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( alt2 )
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 1:
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 1 );
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:53:9: expr NEWLINE
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 53, 8 );
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_stat70);
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr2=expr();
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_expr.Add(expr2.Tree);
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 53, 13 );
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				NEWLINE3=(IToken)Match(input,NEWLINE,Follow._NEWLINE_in_stat72);
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_NEWLINE.Add(NEWLINE3);
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements: expr
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 53:41: -> expr
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 53, 43 );
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, stream_expr.NextTree());
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 2:
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 2 );
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:54:9: ID '=' expr NEWLINE
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 54, 8 );
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID4=(IToken)Match(input,ID,Follow._ID_in_stat105);
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_ID.Add(ID4);
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 54, 11 );
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				char_literal5=(IToken)Match(input,17,Follow._17_in_stat107);
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_17.Add(char_literal5);
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 54, 15 );
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_stat109);
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr6=expr();
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_expr.Add(expr6.Tree);
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 54, 20 );
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				NEWLINE7=(IToken)Match(input,NEWLINE,Follow._NEWLINE_in_stat111);
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_NEWLINE.Add(NEWLINE7);
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements: 17, ID, expr
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 54:41: -> ^( '=' ID expr )
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 54, 43 );
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:54:44: ^( '=' ID expr )
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					CommonTree root_1 = (CommonTree)adaptor.Nil();
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 54, 45 );
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					root_1 = (CommonTree)adaptor.BecomeRoot(stream_17.NextNode(), root_1);
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 54, 49 );
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_1, stream_ID.NextNode());
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 54, 52 );
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_1, stream_expr.NextTree());
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, root_1);
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 3:
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 3 );
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:55:9: func NEWLINE
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 55, 8 );
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._func_in_stat143);
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				func8=func();
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_func.Add(func8.Tree);
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 55, 13 );
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				NEWLINE9=(IToken)Match(input,NEWLINE,Follow._NEWLINE_in_stat145);
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_NEWLINE.Add(NEWLINE9);
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements: func
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 55:41: -> func
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 55, 43 );
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, stream_func.NextTree());
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 4:
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 4 );
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:56:9: NEWLINE
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 56, 8 );
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				NEWLINE10=(IToken)Match(input,NEWLINE,Follow._NEWLINE_in_stat178);
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_NEWLINE.Add(NEWLINE10);
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements:
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 56:41: ->
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 57, 4 );
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					root_0 = null;
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(57, 4);
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "stat" );
535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "stat"
545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class func_return : ParserRuleReturnScope
547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "func"
553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:59:0: func : ID '(' formalPar ')' '=' expr -> ^( FUNC ID formalPar expr ) ;
554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.func_return func(  )
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.func_return retval = new ProfileGrammarParser.func_return();
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken ID11=null;
562324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal12=null;
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal14=null;
564324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal15=null;
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.formalPar_return formalPar13 = default(ProfileGrammarParser.formalPar_return);
566324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return expr16 = default(ProfileGrammarParser.expr_return);
567324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
568324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID11_tree=null;
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal12_tree=null;
570324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal14_tree=null;
571324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal15_tree=null;
572324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID");
573324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_12=new RewriteRuleITokenStream(adaptor,"token 12");
574324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_13=new RewriteRuleITokenStream(adaptor,"token 13");
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_17=new RewriteRuleITokenStream(adaptor,"token 17");
576324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleSubtreeStream stream_formalPar=new RewriteRuleSubtreeStream(adaptor,"rule formalPar");
577324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
578324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
580324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "func" );
581324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
582324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
583324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
584324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
585324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
586324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, -1 );
587324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
589324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:59:9: ( ID '(' formalPar ')' '=' expr -> ^( FUNC ID formalPar expr ) )
591324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
593324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:59:9: ID '(' formalPar ')' '=' expr
594324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
595324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 8 );
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ID11=(IToken)Match(input,ID,Follow._ID_in_func219);
597324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_ID.Add(ID11);
598324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
599324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 12 );
600324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			char_literal12=(IToken)Match(input,12,Follow._12_in_func222);
601324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_12.Add(char_literal12);
602324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
603324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 16 );
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			PushFollow(Follow._formalPar_in_func224);
605324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			formalPar13=formalPar();
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
607324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			state._fsp--;
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
609324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_formalPar.Add(formalPar13.Tree);
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 26 );
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			char_literal14=(IToken)Match(input,13,Follow._13_in_func226);
612324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_13.Add(char_literal14);
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
614324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 30 );
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			char_literal15=(IToken)Match(input,17,Follow._17_in_func228);
616324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_17.Add(char_literal15);
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 59, 34 );
619324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			PushFollow(Follow._expr_in_func230);
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			expr16=expr();
621324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			state._fsp--;
623324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			stream_expr.Add(expr16.Tree);
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
626324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// AST REWRITE
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// elements: ID, formalPar, expr
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// token labels:
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// rule labels: retval
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// token list labels:
633324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// rule list labels:
634324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// wildcard labels:
635324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = root_0;
636324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
637324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
638324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			root_0 = (CommonTree)adaptor.Nil();
639324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// 59:41: -> ^( FUNC ID formalPar expr )
640324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
641324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 43 );
642324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:59:44: ^( FUNC ID formalPar expr )
643324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
644324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				CommonTree root_1 = (CommonTree)adaptor.Nil();
645324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 45 );
646324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(FUNC, "FUNC"), root_1);
647324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
648324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 50 );
649324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_1, stream_ID.NextNode());
650324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 53 );
651324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_1, stream_formalPar.NextTree());
652324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 59, 63 );
653324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_1, stream_expr.NextTree());
654324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
655324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_0, root_1);
656324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
657324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
658324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
659324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
660324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = root_0;
661324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
662324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
663324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
664324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
665324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
666324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
667324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
668324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
669324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
670324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
671324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
672324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
673324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
674324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
675324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
676324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
677324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
678324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
679324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
680324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
681324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				  functionDefinitions.Add(((CommonTree)retval.Tree));
682324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
683324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
684324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(60, 4);
685324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
686324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
687324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
688324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
689324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "func" );
690324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
691324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
692324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
693324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
694324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
695324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
696324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
697324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
698324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
699324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "func"
700324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
701324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class formalPar_return : ParserRuleReturnScope
702324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
703324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
704324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
705324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
706324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
707324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "formalPar"
708324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:65:0: formalPar : ( ID | INT );
709324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.formalPar_return formalPar(  )
710324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
711324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.formalPar_return retval = new ProfileGrammarParser.formalPar_return();
712324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
713324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
714324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
715324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
716324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken set17=null;
717324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
718324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree set17_tree=null;
719324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
720324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
721324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
722324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "formalPar" );
723324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
724324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
725324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
726324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
727324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
728324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 65, -1 );
729324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
730324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
731324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
732324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:66:9: ( ID | INT )
733324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
734324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
735324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:
736324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
737324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			root_0 = (CommonTree)adaptor.Nil();
738324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
739324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 66, 8 );
740324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			set17=(IToken)input.LT(1);
741324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( (input.LA(1)>=ID && input.LA(1)<=INT) )
742324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
743324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				input.Consume();
744324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set17));
745324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state.errorRecovery=false;
746324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
747324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			else
748324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
749324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				MismatchedSetException mse = new MismatchedSetException(null,input);
750324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.RecognitionException( mse );
751324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				throw mse;
752324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
753324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
754324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
755324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
756324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
757324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
758324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
759324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
760324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
761324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
762324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
763324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
764324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
765324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
766324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
767324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
768324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
769324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
770324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
771324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
772324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
773324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(68, 1);
774324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
775324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
776324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
777324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
778324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "formalPar" );
779324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
780324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
781324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
782324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
783324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
784324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
785324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
786324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
787324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
788324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "formalPar"
789324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
790324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class expr_return : ParserRuleReturnScope
791324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
792324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
793324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
794324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
795324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
796324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "expr"
797324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:73:0: expr : multExpr ( ( '+' | '-' ) multExpr )* ;
798324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.expr_return expr(  )
799324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
800324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return retval = new ProfileGrammarParser.expr_return();
801324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
802324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
803324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
804324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
805324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal19=null;
806324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal20=null;
807324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.multExpr_return multExpr18 = default(ProfileGrammarParser.multExpr_return);
808324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.multExpr_return multExpr21 = default(ProfileGrammarParser.multExpr_return);
809324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
810324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal19_tree=null;
811324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal20_tree=null;
812324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
813324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
814324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
815324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "expr" );
816324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
817324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
818324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
819324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
820324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
821324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 73, -1 );
822324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
823324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
824324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
825324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:73:9: ( multExpr ( ( '+' | '-' ) multExpr )* )
826324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
827324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
828324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:73:9: multExpr ( ( '+' | '-' ) multExpr )*
829324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
830324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			root_0 = (CommonTree)adaptor.Nil();
831324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
832324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 73, 8 );
833324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			PushFollow(Follow._multExpr_in_expr288);
834324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			multExpr18=multExpr();
835324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
836324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			state._fsp--;
837324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
838324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.AddChild(root_0, multExpr18.Tree);
839324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 73, 17 );
840324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:73:18: ( ( '+' | '-' ) multExpr )*
841324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
842324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
843324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterSubRule( 4 );
844324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
845324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			for ( ; ; )
846324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
847324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int alt4=2;
848324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				try
849324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
850324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterDecision( 4 );
851324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
852324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int LA4_0 = input.LA(1);
853324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
854324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				if ( (LA4_0==10||LA4_0==16) )
855324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
856324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt4=1;
857324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
858324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
859324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
860324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
861324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				finally
862324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
863324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.ExitDecision( 4 );
864324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
865324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
866324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				switch ( alt4 )
867324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
868324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				case 1:
869324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterAlt( 1 );
870324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
871324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:73:19: ( '+' | '-' ) multExpr
872324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
873324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 73, 18 );
874324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:73:19: ( '+' | '-' )
875324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					int alt3=2;
876324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					try
877324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
878324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterSubRule( 3 );
879324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					try
880324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
881324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterDecision( 3 );
882324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
883324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					int LA3_0 = input.LA(1);
884324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
885324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					if ( (LA3_0==16) )
886324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
887324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						alt3=1;
888324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
889324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					else if ( (LA3_0==10) )
890324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
891324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						alt3=2;
892324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
893324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					else
894324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
895324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						NoViableAltException nvae = new NoViableAltException("", 3, 0, input);
896324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
897324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.RecognitionException( nvae );
898324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						throw nvae;
899324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
900324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
901324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					finally
902324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
903324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.ExitDecision( 3 );
904324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
905324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
906324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					switch ( alt3 )
907324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
908324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					case 1:
909324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterAlt( 1 );
910324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
911324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						// BuildOptions\\ProfileGrammar.g3:73:20: '+'
912324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						{
913324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.Location( 73, 22 );
914324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						char_literal19=(IToken)Match(input,16,Follow._16_in_expr292);
915324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						char_literal19_tree = (CommonTree)adaptor.Create(char_literal19);
916324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						root_0 = (CommonTree)adaptor.BecomeRoot(char_literal19_tree, root_0);
917324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
918324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
919324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						}
920324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						break;
921324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					case 2:
922324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.EnterAlt( 2 );
923324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
924324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						// BuildOptions\\ProfileGrammar.g3:73:25: '-'
925324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						{
926324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.Location( 73, 27 );
927324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						char_literal20=(IToken)Match(input,10,Follow._10_in_expr295);
928324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						char_literal20_tree = (CommonTree)adaptor.Create(char_literal20);
929324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						root_0 = (CommonTree)adaptor.BecomeRoot(char_literal20_tree, root_0);
930324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
931324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
932324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						}
933324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						break;
934324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
935324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
936324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
937324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					finally
938324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
939324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.ExitSubRule( 3 );
940324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
941324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
942324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 73, 30 );
943324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					PushFollow(Follow._multExpr_in_expr299);
944324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					multExpr21=multExpr();
945324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
946324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					state._fsp--;
947324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
948324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, multExpr21.Tree);
949324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
950324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
951324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					break;
952324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
953324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				default:
954324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					goto loop4;
955324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
956324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
957324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
958324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			loop4:
959324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				;
960324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
961324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
962324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
963324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
964324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitSubRule( 4 );
965324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
966324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
967324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
968324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
969324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
970324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
971324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
972324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
973324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
974324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
975324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
976324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
977324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
978324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
979324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
980324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
981324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
982324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
983324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
984324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
985324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
986324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(74, 4);
987324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
988324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
989324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
990324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
991324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "expr" );
992324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
993324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
994324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
995324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
996324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
997324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
998324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
999324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
1000324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1001324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "expr"
1002324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1003324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class multExpr_return : ParserRuleReturnScope
1004324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1005324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
1006324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
1007324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1008324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1009324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "multExpr"
1010324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:76:0: multExpr : atom ( ( '*' | '/' | '%' ) atom )* ;
1011324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.multExpr_return multExpr(  )
1012324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1013324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.multExpr_return retval = new ProfileGrammarParser.multExpr_return();
1014324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
1015324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1016324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
1017324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1018324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken set23=null;
1019324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.atom_return atom22 = default(ProfileGrammarParser.atom_return);
1020324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.atom_return atom24 = default(ProfileGrammarParser.atom_return);
1021324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1022324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree set23_tree=null;
1023324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1024324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
1025324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1026324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "multExpr" );
1027324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
1028324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1029324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
1030324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1031324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
1032324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 76, -1 );
1033324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1034324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
1035324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1036324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:77:9: ( atom ( ( '*' | '/' | '%' ) atom )* )
1037324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterAlt( 1 );
1038324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1039324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:77:9: atom ( ( '*' | '/' | '%' ) atom )*
1040324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1041324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			root_0 = (CommonTree)adaptor.Nil();
1042324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1043324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 77, 8 );
1044324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			PushFollow(Follow._atom_in_multExpr320);
1045324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			atom22=atom();
1046324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1047324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			state._fsp--;
1048324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1049324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.AddChild(root_0, atom22.Tree);
1050324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 77, 13 );
1051324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:77:14: ( ( '*' | '/' | '%' ) atom )*
1052324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
1053324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1054324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterSubRule( 5 );
1055324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1056324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			for ( ; ; )
1057324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1058324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int alt5=2;
1059324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				try
1060324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1061324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterDecision( 5 );
1062324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1063324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int LA5_0 = input.LA(1);
1064324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1065324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				if ( (LA5_0==11||(LA5_0>=14 && LA5_0<=15)) )
1066324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1067324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt5=1;
1068324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1069324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1070324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1071324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1072324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				finally
1073324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1074324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.ExitDecision( 5 );
1075324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1076324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1077324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				switch ( alt5 )
1078324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1079324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				case 1:
1080324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.EnterAlt( 1 );
1081324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1082324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:77:15: ( '*' | '/' | '%' ) atom
1083324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
1084324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 77, 27 );
1085324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					set23=(IToken)input.LT(1);
1086324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					set23=(IToken)input.LT(1);
1087324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					if ( input.LA(1)==11||(input.LA(1)>=14 && input.LA(1)<=15) )
1088324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
1089324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						input.Consume();
1090324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						root_0 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(set23), root_0);
1091324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						state.errorRecovery=false;
1092324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
1093324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					else
1094324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
1095324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						MismatchedSetException mse = new MismatchedSetException(null,input);
1096324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						dbg.RecognitionException( mse );
1097324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver						throw mse;
1098324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
1099324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 77, 29 );
1101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					PushFollow(Follow._atom_in_multExpr332);
1102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					atom24=atom();
1103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					state._fsp--;
1105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, atom24.Tree);
1107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
1109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					break;
1110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				default:
1112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					goto loop5;
1113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			loop5:
1117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				;
1118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
1121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitSubRule( 5 );
1123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
1129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
1131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
1132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
1135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
1137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
1138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
1139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
1142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(78, 4);
1145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
1148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "multExpr" );
1150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
1151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
1152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
1154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
1158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "multExpr"
1160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	public class atom_return : ParserRuleReturnScope
1162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		internal CommonTree tree;
1164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override object Tree { get { return tree; } }
1165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR start "atom"
1168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// BuildOptions\\ProfileGrammar.g3:80:0: atom : ( INT | ID | '(' expr ')' -> expr | ID '(' expr ')' -> ^( CALL ID expr ) );
1169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private ProfileGrammarParser.atom_return atom(  )
1170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.atom_return retval = new ProfileGrammarParser.atom_return();
1172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.start = input.LT(1);
1173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree root_0 = null;
1175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken INT25=null;
1177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken ID26=null;
1178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal27=null;
1179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal29=null;
1180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken ID30=null;
1181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal31=null;
1182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		IToken char_literal33=null;
1183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return expr28 = default(ProfileGrammarParser.expr_return);
1184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		ProfileGrammarParser.expr_return expr32 = default(ProfileGrammarParser.expr_return);
1185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree INT25_tree=null;
1187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID26_tree=null;
1188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal27_tree=null;
1189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal29_tree=null;
1190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree ID30_tree=null;
1191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal31_tree=null;
1192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		CommonTree char_literal33_tree=null;
1193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_12=new RewriteRuleITokenStream(adaptor,"token 12");
1194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_13=new RewriteRuleITokenStream(adaptor,"token 13");
1195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleITokenStream stream_ID=new RewriteRuleITokenStream(adaptor,"token ID");
1196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
1197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
1198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.EnterRule( GrammarFileName, "atom" );
1200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
1201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Commence();
1203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			IncRuleLevel();
1205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.Location( 80, -1 );
1206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		try
1208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			// BuildOptions\\ProfileGrammar.g3:80:9: ( INT | ID | '(' expr ')' -> expr | ID '(' expr ')' -> ^( CALL ID expr ) )
1210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			int alt6=4;
1211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			try
1212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterDecision( 6 );
1214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( input.LA(1) )
1216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case INT:
1218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt6=1;
1220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case ID:
1223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				int LA6_2 = input.LA(2);
1225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				if ( (LA6_2==12) )
1227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt6=4;
1229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				else if ( (LA6_2==NEWLINE||(LA6_2>=10 && LA6_2<=11)||(LA6_2>=13 && LA6_2<=16)) )
1231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					alt6=2;
1233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				else
1235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					NoViableAltException nvae = new NoViableAltException("", 6, 2, input);
1237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.RecognitionException( nvae );
1239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					throw nvae;
1240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 12:
1244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				alt6=3;
1246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			default:
1249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					NoViableAltException nvae = new NoViableAltException("", 6, 0, input);
1251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.RecognitionException( nvae );
1253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					throw nvae;
1254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			finally
1259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.ExitDecision( 6 );
1261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			switch ( alt6 )
1264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 1:
1266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 1 );
1267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:80:9: INT
1269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
1271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 80, 8 );
1273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				INT25=(IToken)Match(input,INT,Follow._INT_in_atom348);
1274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				INT25_tree = (CommonTree)adaptor.Create(INT25);
1275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_0, INT25_tree);
1276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 2:
1281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 2 );
1282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:81:9: ID
1284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
1286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 81, 8 );
1288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID26=(IToken)Match(input,ID,Follow._ID_in_atom358);
1289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID26_tree = (CommonTree)adaptor.Create(ID26);
1290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				adaptor.AddChild(root_0, ID26_tree);
1291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 3:
1296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 3 );
1297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:82:9: '(' expr ')'
1299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 82, 8 );
1301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				char_literal27=(IToken)Match(input,12,Follow._12_in_atom368);
1302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_12.Add(char_literal27);
1303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 82, 12 );
1305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_atom370);
1306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr28=expr();
1307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
1309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_expr.Add(expr28.Tree);
1311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 82, 17 );
1312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				char_literal29=(IToken)Match(input,13,Follow._13_in_atom372);
1313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_13.Add(char_literal29);
1314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
1319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements: expr
1320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
1321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
1322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
1323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
1324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
1325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
1326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
1327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
1329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 82:25: -> expr
1330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 82, 27 );
1332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, stream_expr.NextTree());
1333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
1337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			case 4:
1342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.EnterAlt( 4 );
1343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// BuildOptions\\ProfileGrammar.g3:83:9: ID '(' expr ')'
1345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 83, 8 );
1347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				ID30=(IToken)Match(input,ID,Follow._ID_in_atom389);
1348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_ID.Add(ID30);
1349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 83, 11 );
1351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				char_literal31=(IToken)Match(input,12,Follow._12_in_atom391);
1352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_12.Add(char_literal31);
1353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 83, 15 );
1355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				PushFollow(Follow._expr_in_atom393);
1356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				expr32=expr();
1357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				state._fsp--;
1359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_expr.Add(expr32.Tree);
1361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Location( 83, 20 );
1362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				char_literal33=(IToken)Match(input,13,Follow._13_in_atom395);
1363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				stream_13.Add(char_literal33);
1364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// AST REWRITE
1369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// elements: ID, expr
1370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token labels:
1371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule labels: retval
1372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// token list labels:
1373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// rule list labels:
1374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// wildcard labels:
1375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
1376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
1377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				root_0 = (CommonTree)adaptor.Nil();
1379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				// 83:25: -> ^( CALL ID expr )
1380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				{
1381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 83, 27 );
1382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					// BuildOptions\\ProfileGrammar.g3:83:28: ^( CALL ID expr )
1383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					{
1384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					CommonTree root_1 = (CommonTree)adaptor.Nil();
1385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 83, 29 );
1386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(CALL, "CALL"), root_1);
1387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 83, 34 );
1389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_1, stream_ID.NextNode());
1390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					dbg.Location( 83, 37 );
1391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_1, stream_expr.NextTree());
1392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					adaptor.AddChild(root_0, root_1);
1394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver					}
1395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				retval.tree = root_0;
1399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				}
1402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				break;
1403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.stop = input.LT(-1);
1406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);
1408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			adaptor.SetTokenBoundaries(retval.tree, retval.start, retval.stop);
1409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		catch ( RecognitionException re )
1412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			ReportError(re);
1414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			Recover(input,re);
1415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		retval.tree = (CommonTree)adaptor.ErrorNode(input, retval.start, input.LT(-1), re);
1416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
1419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dbg.Location(84, 4);
1422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		finally
1425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			dbg.ExitRule( GrammarFileName, "atom" );
1427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DecRuleLevel();
1428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			if ( RuleLevel == 0 )
1429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				dbg.Terminate();
1431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		return retval;
1435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	// $ANTLR end "atom"
1437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#endregion Rules
1438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#region DFA
1441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	DFA2 dfa2;
1442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	protected override void InitDFAs()
1444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		base.InitDFAs();
1446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		dfa2 = new DFA2( this );
1447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	class DFA2 : DFA
1450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_eotS =
1453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\xA\xFFFF";
1454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_eofS =
1455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\xA\xFFFF";
1456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_minS =
1457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\x1\x6\x1\xFFFF\x1\x8\x1\xFFFF\x1\x6\x1\xFFFF\x2\xA\x1\x8\x1\xFFFF";
1458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_maxS =
1459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\x1\xC\x1\xFFFF\x1\x11\x1\xFFFF\x1\xC\x1\xFFFF\x2\x10\x1\x11\x1\xFFFF";
1460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_acceptS =
1461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\x1\xFFFF\x1\x1\x1\xFFFF\x1\x4\x1\xFFFF\x1\x2\x3\xFFFF\x1\x3";
1462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		const string DFA2_specialS =
1463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			"\xA\xFFFF}>";
1464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly string[] DFA2_transitionS =
1465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x1\x2\x1\x1\x1\x3\x3\xFFFF\x1\x1",
1467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"",
1468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x1\x1\x1\xFFFF\x2\x1\x1\x4\x1\xFFFF\x3\x1\x1\x5",
1469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"",
1470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x1\x7\x1\x6\x4\xFFFF\x1\x1",
1471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"",
1472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x2\x1\x1\xFFFF\x1\x8\x3\x1",
1473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x3\x1\x1\x8\x3\x1",
1474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				"\x1\x1\x1\xFFFF\x2\x1\x2\xFFFF\x3\x1\x1\x9",
1475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				""
1476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			};
1477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly short[] DFA2_eot = DFA.UnpackEncodedString(DFA2_eotS);
1479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly short[] DFA2_eof = DFA.UnpackEncodedString(DFA2_eofS);
1480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly char[] DFA2_min = DFA.UnpackEncodedStringToUnsignedChars(DFA2_minS);
1481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly char[] DFA2_max = DFA.UnpackEncodedStringToUnsignedChars(DFA2_maxS);
1482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly short[] DFA2_accept = DFA.UnpackEncodedString(DFA2_acceptS);
1483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly short[] DFA2_special = DFA.UnpackEncodedString(DFA2_specialS);
1484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static readonly short[][] DFA2_transition;
1485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		static DFA2()
1487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			int numStates = DFA2_transitionS.Length;
1489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			DFA2_transition = new short[numStates][];
1490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			for ( int i=0; i < numStates; i++ )
1491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			{
1492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver				DFA2_transition[i] = DFA.UnpackEncodedString(DFA2_transitionS[i]);
1493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			}
1494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public DFA2( BaseRecognizer recognizer )
1497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.recognizer = recognizer;
1499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.decisionNumber = 2;
1500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.eot = DFA2_eot;
1501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.eof = DFA2_eof;
1502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.min = DFA2_min;
1503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.max = DFA2_max;
1504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.accept = DFA2_accept;
1505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.special = DFA2_special;
1506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			this.transition = DFA2_transition;
1507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override string GetDescription()
1509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			return "53:0: stat : ( expr NEWLINE -> expr | ID '=' expr NEWLINE -> ^( '=' ID expr ) | func NEWLINE -> func | NEWLINE ->);";
1511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public override void Error( NoViableAltException nvae )
1513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		{
1514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver			((DebugParser)recognizer).dbg.RecognitionException( nvae );
1515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		}
1516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#endregion DFA
1520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#region Follow sets
1522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	private static class Follow
1523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	{
1524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _stat_in_prog53 = new BitSet(new ulong[]{0x11C2UL});
1525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_stat70 = new BitSet(new ulong[]{0x100UL});
1526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _NEWLINE_in_stat72 = new BitSet(new ulong[]{0x2UL});
1527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_stat105 = new BitSet(new ulong[]{0x20000UL});
1528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _17_in_stat107 = new BitSet(new ulong[]{0x10C0UL});
1529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_stat109 = new BitSet(new ulong[]{0x100UL});
1530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _NEWLINE_in_stat111 = new BitSet(new ulong[]{0x2UL});
1531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _func_in_stat143 = new BitSet(new ulong[]{0x100UL});
1532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _NEWLINE_in_stat145 = new BitSet(new ulong[]{0x2UL});
1533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _NEWLINE_in_stat178 = new BitSet(new ulong[]{0x2UL});
1534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_func219 = new BitSet(new ulong[]{0x1000UL});
1535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _12_in_func222 = new BitSet(new ulong[]{0xC0UL});
1536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _formalPar_in_func224 = new BitSet(new ulong[]{0x2000UL});
1537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _13_in_func226 = new BitSet(new ulong[]{0x20000UL});
1538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _17_in_func228 = new BitSet(new ulong[]{0x10C0UL});
1539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_func230 = new BitSet(new ulong[]{0x2UL});
1540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _set_in_formalPar267 = new BitSet(new ulong[]{0x2UL});
1541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _multExpr_in_expr288 = new BitSet(new ulong[]{0x10402UL});
1542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _16_in_expr292 = new BitSet(new ulong[]{0x10C0UL});
1543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _10_in_expr295 = new BitSet(new ulong[]{0x10C0UL});
1544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _multExpr_in_expr299 = new BitSet(new ulong[]{0x10402UL});
1545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _atom_in_multExpr320 = new BitSet(new ulong[]{0xC802UL});
1546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _set_in_multExpr323 = new BitSet(new ulong[]{0x10C0UL});
1547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _atom_in_multExpr332 = new BitSet(new ulong[]{0xC802UL});
1548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _INT_in_atom348 = new BitSet(new ulong[]{0x2UL});
1549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_atom358 = new BitSet(new ulong[]{0x2UL});
1550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _12_in_atom368 = new BitSet(new ulong[]{0x10C0UL});
1551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_atom370 = new BitSet(new ulong[]{0x2000UL});
1552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _13_in_atom372 = new BitSet(new ulong[]{0x2UL});
1553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _ID_in_atom389 = new BitSet(new ulong[]{0x1000UL});
1554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _12_in_atom391 = new BitSet(new ulong[]{0x10C0UL});
1555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _expr_in_atom393 = new BitSet(new ulong[]{0x2000UL});
1556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver		public static readonly BitSet _13_in_atom395 = new BitSet(new ulong[]{0x2UL});
1557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	}
1559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver	#endregion Follow sets
1560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
1561