18d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount// Generated from BindingExpression.g4 by ANTLR 4.5
2fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.parser;
3c09acd410cdf8399b43f5e4a77313337a0c9a178George Mountimport org.antlr.v4.runtime.atn.*;
48d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mountimport org.antlr.v4.runtime.dfa.DFA;
5c09acd410cdf8399b43f5e4a77313337a0c9a178George Mountimport org.antlr.v4.runtime.*;
68d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mountimport org.antlr.v4.runtime.misc.*;
7c09acd410cdf8399b43f5e4a77313337a0c9a178George Mountimport org.antlr.v4.runtime.tree.*;
8c09acd410cdf8399b43f5e4a77313337a0c9a178George Mountimport java.util.List;
98d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mountimport java.util.Iterator;
108d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mountimport java.util.ArrayList;
11c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
12c09acd410cdf8399b43f5e4a77313337a0c9a178George Mountpublic class BindingExpressionParser extends Parser {
13c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static final int
148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
168d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
178d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
198d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, THIS=44, IntegerLiteral=45,
20c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		FloatingPointLiteral=46, BooleanLiteral=47, CharacterLiteral=48, SingleQuoteString=49,
21c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		DoubleQuoteString=50, NullLiteral=51, Identifier=52, WS=53, ResourceReference=54,
22ae7cb82316e351c488ee3b9c7226602321f34301George Mount		PackageName=55, ResourceType=56;
23c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static final int
24d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		RULE_bindingSyntax = 0, RULE_defaults = 1, RULE_constantValue = 2, RULE_expression = 3,
25d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		RULE_classExtraction = 4, RULE_expressionList = 5, RULE_literal = 6, RULE_identifier = 7,
26d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		RULE_javaLiteral = 8, RULE_stringLiteral = 9, RULE_explicitGenericInvocation = 10,
27d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		RULE_typeArguments = 11, RULE_type = 12, RULE_explicitGenericInvocationSuffix = 13,
28ae7cb82316e351c488ee3b9c7226602321f34301George Mount		RULE_arguments = 14, RULE_classOrInterfaceType = 15, RULE_primitiveType = 16,
29ae7cb82316e351c488ee3b9c7226602321f34301George Mount		RULE_resources = 17, RULE_resourceParameters = 18;
30c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static final String[] ruleNames = {
31d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		"bindingSyntax", "defaults", "constantValue", "expression", "classExtraction",
32d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		"expressionList", "literal", "identifier", "javaLiteral", "stringLiteral",
33d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		"explicitGenericInvocation", "typeArguments", "type", "explicitGenericInvocationSuffix",
34ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"arguments", "classOrInterfaceType", "primitiveType", "resources", "resourceParameters"
35c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	};
36c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	private static final String[] _LITERAL_NAMES = {
388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		null, "','", "'default'", "'='", "'('", "')'", "'.'", "'['", "']'", "'+'",
398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'<<'", "'>>>'", "'>>'", "'<='",
408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"'>='", "'>'", "'<'", "'instanceof'", "'=='", "'!='", "'&'", "'^'", "'|'",
418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"'&&'", "'||'", "'?'", "':'", "'??'", "'class'", "'void'", "'boolean'",
428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"'char'", "'byte'", "'short'", "'int'", "'long'", "'float'", "'double'",
438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"'this'", null, null, null, null, null, null, "'null'"
448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	};
458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	private static final String[] _SYMBOLIC_NAMES = {
468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		null, null, null, null, null, null, null, null, null, null, null, null,
478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		null, null, null, null, null, null, null, null, null, null, null, null,
488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		null, null, null, null, null, null, null, null, null, null, null, null,
498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		null, null, null, null, null, null, null, null, "THIS", "IntegerLiteral",
508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "SingleQuoteString",
518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"DoubleQuoteString", "NullLiteral", "Identifier", "WS", "ResourceReference",
528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"PackageName", "ResourceType"
538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	};
548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount
568d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	/**
578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	 * @deprecated Use {@link #VOCABULARY} instead.
588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	 */
598d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	@Deprecated
608d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public static final String[] tokenNames;
618d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	static {
628d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		tokenNames = new String[_SYMBOLIC_NAMES.length];
638d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		for (int i = 0; i < tokenNames.length; i++) {
648d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			tokenNames[i] = VOCABULARY.getLiteralName(i);
658d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if (tokenNames[i] == null) {
668d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				tokenNames[i] = VOCABULARY.getSymbolicName(i);
678d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			}
688d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount
698d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if (tokenNames[i] == null) {
708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				tokenNames[i] = "<INVALID>";
718d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			}
728d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
738d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	}
748d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount
75c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@Override
768d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	@Deprecated
778d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public String[] getTokenNames() {
788d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		return tokenNames;
798d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	}
808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount
818d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	@Override
828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	@NotNull
838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public Vocabulary getVocabulary() {
848d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		return VOCABULARY;
858d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	}
86c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
87c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@Override
888d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public String getGrammarFileName() { return "BindingExpression.g4"; }
89c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
90c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@Override
91c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public String[] getRuleNames() { return ruleNames; }
92c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
93c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@Override
94c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public String getSerializedATN() { return _serializedATN; }
95c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
96c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public BindingExpressionParser(TokenStream input) {
97c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		super(input);
98c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		_interp = new ParserATNSimulator(this,_ATN);
99c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
100c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class BindingSyntaxContext extends ParserRuleContext {
101c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
102c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
103c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public DefaultsContext defaults() {
1058d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(DefaultsContext.class,0);
1068d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
107c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public BindingSyntaxContext(ParserRuleContext parent, int invokingState) {
108c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
109c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
110c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_bindingSyntax; }
111c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
112c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
113c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBindingSyntax(this);
114c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
115c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
116c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
117c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBindingSyntax(this);
118c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
119c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
120c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
121c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBindingSyntax(this);
122c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
123c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
124c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
125c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
126c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
127c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final BindingSyntaxContext bindingSyntax() throws RecognitionException {
128c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		BindingSyntaxContext _localctx = new BindingSyntaxContext(_ctx, getState());
129c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		enterRule(_localctx, 0, RULE_bindingSyntax);
130c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
131c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
132c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
133c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
1348d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(38);
1358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			expression(0);
136ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(40);
137c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
1388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if (_la==T__0) {
139c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
1408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(39);
1418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				defaults();
142c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
143c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
144c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
145c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
146c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
147c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
148c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
149c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
150c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
151c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
152c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
153c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
154c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
155c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
156c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
157c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
158c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class DefaultsContext extends ParserRuleContext {
159c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ConstantValueContext constantValue() {
160c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ConstantValueContext.class,0);
161c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
162c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public DefaultsContext(ParserRuleContext parent, int invokingState) {
163c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
164c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
165c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_defaults; }
166c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
167c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
168c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterDefaults(this);
169c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
170c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
171c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
172c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDefaults(this);
173c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
174c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
175c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
176c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDefaults(this);
177c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
178c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
179c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
180c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
181c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
182c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final DefaultsContext defaults() throws RecognitionException {
183c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		DefaultsContext _localctx = new DefaultsContext(_ctx, getState());
184c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		enterRule(_localctx, 2, RULE_defaults);
185c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
186c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
187c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
1888d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(42);
1898d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__0);
1908d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(43);
1918d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__1);
1928d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(44);
1938d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__2);
1948d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(45);
1958d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			constantValue();
196c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
197c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
198c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
199c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
200c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
201c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
202c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
203c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
204c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
205c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
206c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
207c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
208c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
209c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ConstantValueContext extends ParserRuleContext {
210c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public LiteralContext literal() {
211c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(LiteralContext.class,0);
212c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
2138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
214d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public IdentifierContext identifier() {
215d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			return getRuleContext(IdentifierContext.class,0);
216d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		}
217c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ConstantValueContext(ParserRuleContext parent, int invokingState) {
218c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
219c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
220c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_constantValue; }
221c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
222c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
223c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterConstantValue(this);
224c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
225c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
226c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
227c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitConstantValue(this);
228c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
229c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
230c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
231c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitConstantValue(this);
232c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
233c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
234c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
235c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
236c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
237c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ConstantValueContext constantValue() throws RecognitionException {
238c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ConstantValueContext _localctx = new ConstantValueContext(_ctx, getState());
239c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		enterRule(_localctx, 4, RULE_constantValue);
240c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
241ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(50);
242c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			switch (_input.LA(1)) {
243c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case IntegerLiteral:
244c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case FloatingPointLiteral:
245c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case BooleanLiteral:
246c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case CharacterLiteral:
247c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case SingleQuoteString:
248c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case DoubleQuoteString:
249c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case NullLiteral:
250c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 1);
251c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
2528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(47);
2538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				literal();
254c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
255c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
256c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case ResourceReference:
257c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 2);
258c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
2598d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(48);
2608d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(ResourceReference);
261c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
262c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
263c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case Identifier:
264c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 3);
265c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
2668d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(49);
2678d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				identifier();
268c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
269c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
270c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			default:
271c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				throw new NoViableAltException(this);
272c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
273c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
274c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
275c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
276c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
277c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
278c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
279c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
280c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
281c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
282c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
283c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
284c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
285c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ExpressionContext extends ParserRuleContext {
286c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext(ParserRuleContext parent, int invokingState) {
287c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
288c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
289c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_expression; }
290c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
291c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext() { }
292c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void copyFrom(ExpressionContext ctx) {
293c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super.copyFrom(ctx);
294c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
295c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
296c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class BracketOpContext extends ExpressionContext {
297c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends ExpressionContext> expression() {
298c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(ExpressionContext.class);
299c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
3008d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
3018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
3028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
303c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public BracketOpContext(ExpressionContext ctx) { copyFrom(ctx); }
304c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
305c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
306c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBracketOp(this);
307c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
308c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
309c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
310c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBracketOp(this);
311c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
312c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
313c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
314c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBracketOp(this);
315c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
316c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
317c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
31835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	public static class ResourceContext extends ExpressionContext {
319ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public ResourcesContext resources() {
320ae7cb82316e351c488ee3b9c7226602321f34301George Mount			return getRuleContext(ResourcesContext.class,0);
321ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
32235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ResourceContext(ExpressionContext ctx) { copyFrom(ctx); }
323c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
324c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
32535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResource(this);
326c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
327c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
328c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
32935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResource(this);
330c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
331c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
332c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
33335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResource(this);
334c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
335c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
336c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
337c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class CastOpContext extends ExpressionContext {
338c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeContext type() {
339c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(TypeContext.class,0);
340c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
341c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
342c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
343c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
344c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public CastOpContext(ExpressionContext ctx) { copyFrom(ctx); }
345c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
346c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
347c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterCastOp(this);
348c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
349c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
350c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
351c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitCastOp(this);
352c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
353c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
354c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
355c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitCastOp(this);
356c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
357c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
358c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
35935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	public static class UnaryOpContext extends ExpressionContext {
360d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public Token op;
36135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext expression() {
36235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			return getRuleContext(ExpressionContext.class,0);
36335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
36435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public UnaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
365c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
366c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
36735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterUnaryOp(this);
368c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
369c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
370c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
37135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitUnaryOp(this);
372c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
373c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
374c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
37535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitUnaryOp(this);
37635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			else return visitor.visitChildren(this);
37735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
37835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	}
37935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	public static class AndOrOpContext extends ExpressionContext {
38035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
38135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
38235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext right;
38335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public List<? extends ExpressionContext> expression() {
38435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			return getRuleContexts(ExpressionContext.class);
38535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
3868d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
3878d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
3888d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
38935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public AndOrOpContext(ExpressionContext ctx) { copyFrom(ctx); }
39035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
39135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void enterRule(ParseTreeListener listener) {
39235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterAndOrOp(this);
39335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
39435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
39535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void exitRule(ParseTreeListener listener) {
39635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitAndOrOp(this);
39735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
39835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
39935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
40035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitAndOrOp(this);
401c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
402c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
403c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
404c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class MethodInvocationContext extends ExpressionContext {
405d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar		public ExpressionContext target;
406d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar		public Token methodName;
407d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar		public ExpressionListContext args;
408c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
409c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
410c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
4118d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
4128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionListContext expressionList() {
4138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionListContext.class,0);
4148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
415c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public MethodInvocationContext(ExpressionContext ctx) { copyFrom(ctx); }
416c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
417c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
418c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterMethodInvocation(this);
419c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
420c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
421c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
422c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMethodInvocation(this);
423c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
424c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
425c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
426c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMethodInvocation(this);
427c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
428c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
429c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
430c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class PrimaryContext extends ExpressionContext {
431c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public LiteralContext literal() {
432c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(LiteralContext.class,0);
433c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
434c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public IdentifierContext identifier() {
435c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(IdentifierContext.class,0);
436c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
4378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ClassExtractionContext classExtraction() {
4388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ClassExtractionContext.class,0);
4398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
440c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public PrimaryContext(ExpressionContext ctx) { copyFrom(ctx); }
441c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
442c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
443c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterPrimary(this);
444c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
445c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
446c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
447c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimary(this);
448c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
449c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
450c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
451c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimary(this);
452c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
453c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
454c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
455c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class GroupingContext extends ExpressionContext {
456c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
457c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
458c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
459c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public GroupingContext(ExpressionContext ctx) { copyFrom(ctx); }
460c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
461c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
462c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterGrouping(this);
463c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
464c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
465c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
466c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitGrouping(this);
467c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
468c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
469c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
470c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitGrouping(this);
471c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
472c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
473c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
474c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class TernaryOpContext extends ExpressionContext {
47535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
47635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
47735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext iftrue;
47835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext iffalse;
479c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends ExpressionContext> expression() {
480c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(ExpressionContext.class);
481c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
4828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
4838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
4848d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
485c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TernaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
486c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
487c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
488c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterTernaryOp(this);
489c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
490c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
491c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
492c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTernaryOp(this);
493c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
494c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
495c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
496c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTernaryOp(this);
497c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
498c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
499c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
50035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	public static class ComparisonOpContext extends ExpressionContext {
50135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
50235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
50335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext right;
50435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public List<? extends ExpressionContext> expression() {
50535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			return getRuleContexts(ExpressionContext.class);
50635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
5078d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
5088d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
5098d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
51035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ComparisonOpContext(ExpressionContext ctx) { copyFrom(ctx); }
51135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
51235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void enterRule(ParseTreeListener listener) {
51335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterComparisonOp(this);
51435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
51535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
51635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void exitRule(ParseTreeListener listener) {
51735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitComparisonOp(this);
51835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
51935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
52035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
52135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitComparisonOp(this);
52235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			else return visitor.visitChildren(this);
52335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
52435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	}
525c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class DotOpContext extends ExpressionContext {
526c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
527c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
528c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
5298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
530c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public DotOpContext(ExpressionContext ctx) { copyFrom(ctx); }
531c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
532c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
533c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterDotOp(this);
534c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
535c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
536c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
537c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitDotOp(this);
538c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
539c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
540c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
541c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitDotOp(this);
542c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
543c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
544c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
545d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount	public static class MathOpContext extends ExpressionContext {
546d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public ExpressionContext left;
547d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public Token op;
548d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public ExpressionContext right;
549d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public List<? extends ExpressionContext> expression() {
550d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			return getRuleContexts(ExpressionContext.class);
551c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
5528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
5538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
5548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
555d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		public MathOpContext(ExpressionContext ctx) { copyFrom(ctx); }
556c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
557c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
558d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterMathOp(this);
559c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
560c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
561c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
562d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitMathOp(this);
563c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
564c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
565c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
566d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitMathOp(this);
567c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
568c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
569c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
5708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public static class QuestionQuestionOpContext extends ExpressionContext {
57135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
57235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
57335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext right;
57435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public List<? extends ExpressionContext> expression() {
57535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			return getRuleContexts(ExpressionContext.class);
57635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
5778d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
5788d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
5798d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
5808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public QuestionQuestionOpContext(ExpressionContext ctx) { copyFrom(ctx); }
58135e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
58235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void enterRule(ParseTreeListener listener) {
5838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterQuestionQuestionOp(this);
58435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
58535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
58635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public void exitRule(ParseTreeListener listener) {
5878d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitQuestionQuestionOp(this);
58835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
58935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		@Override
59035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
5918d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitQuestionQuestionOp(this);
59235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar			else return visitor.visitChildren(this);
59335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		}
59435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar	}
5958d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount	public static class BitShiftOpContext extends ExpressionContext {
59635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
59735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
59835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext right;
599c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends ExpressionContext> expression() {
600c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(ExpressionContext.class);
601c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
6028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
6038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
6048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
6058d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public BitShiftOpContext(ExpressionContext ctx) { copyFrom(ctx); }
606c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
607c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
6088d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBitShiftOp(this);
609c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
610c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
611c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
6128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBitShiftOp(this);
613c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
614c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
615c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
6168d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBitShiftOp(this);
617c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
618c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
619c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
620c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class InstanceOfOpContext extends ExpressionContext {
621c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionContext expression() {
622c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionContext.class,0);
623c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
6248d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TypeContext type() {
6258d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(TypeContext.class,0);
6268d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
627c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public InstanceOfOpContext(ExpressionContext ctx) { copyFrom(ctx); }
628c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
629c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
630c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterInstanceOfOp(this);
631c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
632c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
633c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
634c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitInstanceOfOp(this);
635c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
636c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
637c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
638c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitInstanceOfOp(this);
639c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
640c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
641c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
642c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class BinaryOpContext extends ExpressionContext {
64335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext left;
64435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public Token op;
64535e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar		public ExpressionContext right;
646c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends ExpressionContext> expression() {
647c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(ExpressionContext.class);
648c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
6498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
6508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
6518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
652c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public BinaryOpContext(ExpressionContext ctx) { copyFrom(ctx); }
653c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
654c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
655c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterBinaryOp(this);
656c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
657c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
658c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
659c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitBinaryOp(this);
660c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
661c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
662c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
663c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitBinaryOp(this);
664c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
665c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
666c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
667c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
668c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
669c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ExpressionContext expression() throws RecognitionException {
670c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return expression(0);
671c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
672c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
673c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	private ExpressionContext expression(int _p) throws RecognitionException {
674c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ParserRuleContext _parentctx = _ctx;
675c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _parentState = getState();
676c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
677c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ExpressionContext _prevctx = _localctx;
678d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		int _startState = 6;
679d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRecursionRule(_localctx, 6, RULE_expression, _p);
680c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
681c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
682c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			int _alt;
683c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
684c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
685ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(70);
686d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
687c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 1:
688c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
689c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new CastOpContext(_localctx);
690c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
691c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
692c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
6938d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(53);
6948d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__3);
6958d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(54);
6968d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				type();
6978d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(55);
6988d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__4);
6998d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(56);
7008d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expression(16);
701c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
702c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
703c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
704c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 2:
705c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
706c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new UnaryOpContext(_localctx);
707c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
708c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
709ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(58);
710d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				((UnaryOpContext)_localctx).op = _input.LT(1);
711c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_la = _input.LA(1);
7128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				if ( !(_la==T__8 || _la==T__9) ) {
713d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
7148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				} else {
7158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					consume();
716c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
7178d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(59);
7188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expression(15);
719c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
720c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
721c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
722c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 3:
723c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
724c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new UnaryOpContext(_localctx);
725c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
726c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
727ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(60);
728d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				((UnaryOpContext)_localctx).op = _input.LT(1);
729c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_la = _input.LA(1);
7308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				if ( !(_la==T__10 || _la==T__11) ) {
731d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					((UnaryOpContext)_localctx).op = _errHandler.recoverInline(this);
7328d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				} else {
7338d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					consume();
734c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
7358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(61);
7368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expression(14);
737c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
738c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
739c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
740c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 4:
741c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
742c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new GroupingContext(_localctx);
743c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
744c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
7458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(62);
7468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__3);
7478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(63);
7488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expression(0);
7498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(64);
7508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__4);
751c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
752c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
753c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
754c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 5:
755c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
756c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new PrimaryContext(_localctx);
757c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
758c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
7598d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(66);
7608d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				literal();
761c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
762c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
763c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
764c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 6:
765c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
766c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new PrimaryContext(_localctx);
767c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
768c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
7698d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(67);
7708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				identifier();
771c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
772c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
773c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
774c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 7:
775c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
776c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new PrimaryContext(_localctx);
777c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
778c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
7798d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(68);
7808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				classExtraction();
781c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
782c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
783c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
784c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 8:
785c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
786c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_localctx = new ResourceContext(_localctx);
787c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_ctx = _localctx;
788c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_prevctx = _localctx;
7898d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(69);
7908d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				resources();
791c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
792c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
793c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
794c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_ctx.stop = _input.LT(-1);
795ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(132);
796c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.sync(this);
797d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			_alt = getInterpreter().adaptivePredict(_input,5,_ctx);
798c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
799c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				if ( _alt==1 ) {
800c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					if ( _parseListeners!=null ) triggerExitRuleEvent();
801c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					_prevctx = _localctx;
802c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					{
803ae7cb82316e351c488ee3b9c7226602321f34301George Mount					setState(130);
804d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
805c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 1:
806c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
80735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new MathOpContext(new ExpressionContext(_parentctx, _parentState));
80835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((MathOpContext)_localctx).left = _prevctx;
809c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
810ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(72);
811c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
812ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(73);
81335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((MathOpContext)_localctx).op = _input.LT(1);
814c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
8158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14))) != 0)) ) {
81635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar							((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
8178d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						} else {
8188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							consume();
819c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
8208d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(74);
8218d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((MathOpContext)_localctx).right = expression(14);
822c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
823c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
824c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
825c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 2:
826c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
82735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new MathOpContext(new ExpressionContext(_parentctx, _parentState));
82835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((MathOpContext)_localctx).left = _prevctx;
829c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
830ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(75);
831c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
832ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(76);
83335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((MathOpContext)_localctx).op = _input.LT(1);
834c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
8358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ( !(_la==T__8 || _la==T__9) ) {
83635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar							((MathOpContext)_localctx).op = _errHandler.recoverInline(this);
8378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						} else {
8388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							consume();
839c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
8408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(77);
8418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((MathOpContext)_localctx).right = expression(13);
842c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
843c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
844c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
845c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 3:
846c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
84735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new BitShiftOpContext(new ExpressionContext(_parentctx, _parentState));
84835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((BitShiftOpContext)_localctx).left = _prevctx;
849c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
850ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(78);
851c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
852ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(79);
85335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((BitShiftOpContext)_localctx).op = _input.LT(1);
854c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
8558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__15) | (1L << T__16) | (1L << T__17))) != 0)) ) {
85635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar							((BitShiftOpContext)_localctx).op = _errHandler.recoverInline(this);
8578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						} else {
8588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							consume();
859c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
8608d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(80);
8618d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BitShiftOpContext)_localctx).right = expression(12);
862c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
863c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
864c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
865c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 4:
866c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
86735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState));
86835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((ComparisonOpContext)_localctx).left = _prevctx;
869c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
870ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(81);
871c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
872ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(82);
87335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((ComparisonOpContext)_localctx).op = _input.LT(1);
874c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
8758d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21))) != 0)) ) {
87635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar							((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
8778d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						} else {
8788d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							consume();
879c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
8808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(83);
8818d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((ComparisonOpContext)_localctx).right = expression(11);
882c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
883c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
884c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
885c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 5:
886c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
88735e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new ComparisonOpContext(new ExpressionContext(_parentctx, _parentState));
88835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((ComparisonOpContext)_localctx).left = _prevctx;
889c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
890ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(84);
891c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
892ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(85);
89335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((ComparisonOpContext)_localctx).op = _input.LT(1);
894c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
8958d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ( !(_la==T__23 || _la==T__24) ) {
89635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar							((ComparisonOpContext)_localctx).op = _errHandler.recoverInline(this);
8978d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						} else {
8988d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							consume();
899c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
9008d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(86);
9018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((ComparisonOpContext)_localctx).right = expression(9);
902c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
903c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
904c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
905c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 6:
906c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
907c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
90835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((BinaryOpContext)_localctx).left = _prevctx;
909c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
910ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(87);
911c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
9128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(88);
9138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).op = match(T__25);
9148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(89);
9158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).right = expression(8);
916c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
917c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
918c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
919c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 7:
920c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
921c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
92235e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((BinaryOpContext)_localctx).left = _prevctx;
923c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
924ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(90);
925c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
9268d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(91);
9278d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).op = match(T__26);
9288d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(92);
9298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).right = expression(7);
930c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
931c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
932c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
933c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 8:
934c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
935c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new BinaryOpContext(new ExpressionContext(_parentctx, _parentState));
93635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((BinaryOpContext)_localctx).left = _prevctx;
937c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
938ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(93);
939c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
9408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(94);
9418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).op = match(T__27);
9428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(95);
9438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((BinaryOpContext)_localctx).right = expression(6);
944c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
945c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
946c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
947c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 9:
948c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
94935e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState));
95035e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((AndOrOpContext)_localctx).left = _prevctx;
951c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
952ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(96);
953c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
9548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(97);
9558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((AndOrOpContext)_localctx).op = match(T__28);
9568d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(98);
9578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((AndOrOpContext)_localctx).right = expression(5);
958c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
959c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
960c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
961c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 10:
962c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
96335e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						_localctx = new AndOrOpContext(new ExpressionContext(_parentctx, _parentState));
96435e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((AndOrOpContext)_localctx).left = _prevctx;
965c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
966ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(99);
967c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
9688d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(100);
9698d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((AndOrOpContext)_localctx).op = match(T__29);
9708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(101);
9718d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((AndOrOpContext)_localctx).right = expression(4);
972c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
973c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
974c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
975c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 11:
976c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
977c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new TernaryOpContext(new ExpressionContext(_parentctx, _parentState));
97835e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((TernaryOpContext)_localctx).left = _prevctx;
979c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
980ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(102);
981c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
9828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(103);
9838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((TernaryOpContext)_localctx).op = match(T__30);
9848d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(104);
9858d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((TernaryOpContext)_localctx).iftrue = expression(0);
9868d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(105);
9878d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__31);
9888d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(106);
9898d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((TernaryOpContext)_localctx).iffalse = expression(2);
990c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
991c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
992c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
993c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 12:
994c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
995c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new QuestionQuestionOpContext(new ExpressionContext(_parentctx, _parentState));
99635e303ef39a4fe83175b69486a6bbd444ef6ccd5Yigit Boyar						((QuestionQuestionOpContext)_localctx).left = _prevctx;
997c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
998ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(108);
999c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
10008d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(109);
10018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((QuestionQuestionOpContext)_localctx).op = match(T__32);
10028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(110);
10038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((QuestionQuestionOpContext)_localctx).right = expression(2);
1004c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1005c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1006c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1007c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 13:
1008c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1009c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new DotOpContext(new ExpressionContext(_parentctx, _parentState));
1010c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
1011ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(111);
1012c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)");
10138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(112);
10148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__5);
10158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(113);
10168d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(Identifier);
1017c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1018c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1019c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1020d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					case 14:
1021c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1022c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new BracketOpContext(new ExpressionContext(_parentctx, _parentState));
1023c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
1024ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(114);
1025c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)");
10268d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(115);
10278d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__6);
10288d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(116);
10298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						expression(0);
10308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(117);
10318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__7);
1032c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1033c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1034c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1035d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					case 15:
1036c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1037c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new MethodInvocationContext(new ExpressionContext(_parentctx, _parentState));
1038d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar						((MethodInvocationContext)_localctx).target = _prevctx;
1039c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
1040ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(119);
1041c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)");
10428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(120);
10438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__5);
10448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(121);
10458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						((MethodInvocationContext)_localctx).methodName = match(Identifier);
10468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(122);
10478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__3);
1048ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(124);
1049c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_la = _input.LA(1);
10508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
1051c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount							{
10528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							setState(123);
10538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount							((MethodInvocationContext)_localctx).args = expressionList();
1054c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount							}
1055c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1056c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
10578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(126);
10588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__4);
1059c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1060c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1061c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1062d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					case 16:
1063c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1064c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						_localctx = new InstanceOfOpContext(new ExpressionContext(_parentctx, _parentState));
1065c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						pushNewRecursionContext(_localctx, _startState, RULE_expression);
1066ae7cb82316e351c488ee3b9c7226602321f34301George Mount						setState(127);
1067c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
10688d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(128);
10698d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__22);
10708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(129);
10718d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						type();
1072c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1073c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1074c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1075c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1076c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1077ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(134);
1078c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1079d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				_alt = getInterpreter().adaptivePredict(_input,5,_ctx);
1080c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1081c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1082c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1083c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1084c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1085c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1086c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1087c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1088c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1089c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			unrollRecursionContexts(_parentctx);
1090c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1091c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1092c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1093c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1094c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ClassExtractionContext extends ParserRuleContext {
1095c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeContext type() {
1096c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(TypeContext.class,0);
1097c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1098c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ClassExtractionContext(ParserRuleContext parent, int invokingState) {
1099c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1100c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1101c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_classExtraction; }
1102c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1103c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1104c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterClassExtraction(this);
1105c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1106c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1107c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1108c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassExtraction(this);
1109c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1110c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1111c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1112c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassExtraction(this);
1113c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1114c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1115c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1116c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1117c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1118c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ClassExtractionContext classExtraction() throws RecognitionException {
1119c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ClassExtractionContext _localctx = new ClassExtractionContext(_ctx, getState());
1120d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 8, RULE_classExtraction);
1121c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1122ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(142);
1123c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			switch (_input.LA(1)) {
11248d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__35:
11258d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__36:
11268d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__37:
11278d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__38:
1128c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case T__39:
11298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__40:
11308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__41:
11318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__42:
1132c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case Identifier:
1133c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 1);
1134c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
11358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(135);
11368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				type();
11378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(136);
11388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__5);
11398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(137);
11408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__33);
1141c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1142c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
11438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__34:
1144c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 2);
1145c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
11468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(139);
11478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__34);
11488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(140);
11498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__5);
11508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(141);
11518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__33);
1152c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1153c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
1154c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			default:
1155c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				throw new NoViableAltException(this);
1156c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1157c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1158c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1159c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1160c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1161c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1162c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1163c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1164c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1165c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1166c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1167c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1168c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1169c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ExpressionListContext extends ParserRuleContext {
1170c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends ExpressionContext> expression() {
1171c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(ExpressionContext.class);
1172c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
11738d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExpressionContext expression(int i) {
11748d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExpressionContext.class,i);
11758d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1176c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionListContext(ParserRuleContext parent, int invokingState) {
1177c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1178c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1179c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_expressionList; }
1180c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1181c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1182c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExpressionList(this);
1183c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1184c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1185c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1186c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExpressionList(this);
1187c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1188c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1189c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1190c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExpressionList(this);
1191c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1192c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1193c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1194c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1195c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1196c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ExpressionListContext expressionList() throws RecognitionException {
1197c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState());
1198d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 10, RULE_expressionList);
1199c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1200c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1201c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1202c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
12038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(144);
12048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			expression(0);
1205ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(149);
1206c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.sync(this);
1207c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
12088d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			while (_la==T__0) {
1209c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
1210c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
12118d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(145);
12128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__0);
12138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(146);
12148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expression(0);
1215c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1216c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1217ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(151);
1218c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1219c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_la = _input.LA(1);
1220c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1221c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1222c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1223c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1224c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1225c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1226c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1227c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1228c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1229c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1230c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1231c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1232c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1233c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1234c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class LiteralContext extends ParserRuleContext {
1235c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public JavaLiteralContext javaLiteral() {
1236c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(JavaLiteralContext.class,0);
1237c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
12388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public StringLiteralContext stringLiteral() {
12398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(StringLiteralContext.class,0);
12408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1241c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public LiteralContext(ParserRuleContext parent, int invokingState) {
1242c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1243c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1244c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_literal; }
1245c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1246c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1247c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterLiteral(this);
1248c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1249c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1250c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1251c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitLiteral(this);
1252c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1253c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1254c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1255c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitLiteral(this);
1256c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1257c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1258c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1259c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1260c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1261c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final LiteralContext literal() throws RecognitionException {
1262c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		LiteralContext _localctx = new LiteralContext(_ctx, getState());
1263d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 12, RULE_literal);
1264c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1265ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(154);
1266c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			switch (_input.LA(1)) {
1267c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case IntegerLiteral:
1268c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case FloatingPointLiteral:
1269c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case BooleanLiteral:
1270c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case CharacterLiteral:
1271c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case NullLiteral:
1272c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 1);
1273c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
12748d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(152);
12758d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				javaLiteral();
1276c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1277c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
1278c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case SingleQuoteString:
1279c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case DoubleQuoteString:
1280c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 2);
1281c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
12828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(153);
12838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				stringLiteral();
1284c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1285c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
1286c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			default:
1287c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				throw new NoViableAltException(this);
1288c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1289c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1290c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1291c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1292c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1293c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1294c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1295c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1296c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1297c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1298c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1299c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1300c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1301c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class IdentifierContext extends ParserRuleContext {
1302c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
1303c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public IdentifierContext(ParserRuleContext parent, int invokingState) {
1304c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1305c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1306c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_identifier; }
1307c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1308c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1309c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterIdentifier(this);
1310c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1311c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1312c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1313c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitIdentifier(this);
1314c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1315c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1316c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1317c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitIdentifier(this);
1318c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1319c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1320c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1321c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1322c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1323c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final IdentifierContext identifier() throws RecognitionException {
1324c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
1325d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 14, RULE_identifier);
1326c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1327c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1328c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
13298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(156);
13308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(Identifier);
1331c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1332c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1333c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1334c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1335c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1336c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1337c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1338c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1339c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1340c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1341c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1342c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1343c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1344c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class JavaLiteralContext extends ParserRuleContext {
1345c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode IntegerLiteral() { return getToken(BindingExpressionParser.IntegerLiteral, 0); }
1346c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode FloatingPointLiteral() { return getToken(BindingExpressionParser.FloatingPointLiteral, 0); }
1347c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode BooleanLiteral() { return getToken(BindingExpressionParser.BooleanLiteral, 0); }
13488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode NullLiteral() { return getToken(BindingExpressionParser.NullLiteral, 0); }
13498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode CharacterLiteral() { return getToken(BindingExpressionParser.CharacterLiteral, 0); }
1350c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public JavaLiteralContext(ParserRuleContext parent, int invokingState) {
1351c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1352c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1353c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_javaLiteral; }
1354c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1355c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1356c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterJavaLiteral(this);
1357c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1358c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1359c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1360c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitJavaLiteral(this);
1361c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1362c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1363c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1364c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitJavaLiteral(this);
1365c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1366c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1367c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1368c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1369c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1370c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final JavaLiteralContext javaLiteral() throws RecognitionException {
1371c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		JavaLiteralContext _localctx = new JavaLiteralContext(_ctx, getState());
1372d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 16, RULE_javaLiteral);
1373c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1374c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1375c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1376c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
1377ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(158);
1378c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
1379c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << NullLiteral))) != 0)) ) {
1380c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recoverInline(this);
13818d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			} else {
13828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				consume();
1383c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1384c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1385c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1386c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1387c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1388c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1389c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1390c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1391c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1392c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1393c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1394c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1395c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1396c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1397c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class StringLiteralContext extends ParserRuleContext {
1398c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode SingleQuoteString() { return getToken(BindingExpressionParser.SingleQuoteString, 0); }
1399c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode DoubleQuoteString() { return getToken(BindingExpressionParser.DoubleQuoteString, 0); }
1400c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public StringLiteralContext(ParserRuleContext parent, int invokingState) {
1401c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1402c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1403c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_stringLiteral; }
1404c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1405c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1406c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterStringLiteral(this);
1407c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1408c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1409c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1410c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitStringLiteral(this);
1411c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1412c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1413c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1414c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitStringLiteral(this);
1415c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1416c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1417c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1418c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1419c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1420c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final StringLiteralContext stringLiteral() throws RecognitionException {
1421c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		StringLiteralContext _localctx = new StringLiteralContext(_ctx, getState());
1422d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 18, RULE_stringLiteral);
1423c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1424c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1425c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1426c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
1427ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(160);
1428c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
1429c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( !(_la==SingleQuoteString || _la==DoubleQuoteString) ) {
1430c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recoverInline(this);
14318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			} else {
14328d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				consume();
1433c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1434c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1435c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1436c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1437c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1438c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1439c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1440c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1441c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1442c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1443c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1444c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1445c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1446c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1447c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ExplicitGenericInvocationContext extends ParserRuleContext {
1448c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeArgumentsContext typeArguments() {
1449c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(TypeArgumentsContext.class,0);
1450c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
14518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
14528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
14538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1454c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) {
1455c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1456c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1457c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_explicitGenericInvocation; }
1458c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1459c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1460c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExplicitGenericInvocation(this);
1461c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1462c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1463c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1464c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocation(this);
1465c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1466c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1467c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1468c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocation(this);
1469c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1470c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1471c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1472c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1473c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1474c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException {
1475c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState());
1476d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 20, RULE_explicitGenericInvocation);
1477c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1478c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1479c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
14808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(162);
14818d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			typeArguments();
14828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(163);
14838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			explicitGenericInvocationSuffix();
1484c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1485c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1486c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1487c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1488c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1489c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1490c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1491c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1492c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1493c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1494c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1495c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1496c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1497c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class TypeArgumentsContext extends ParserRuleContext {
1498c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public List<? extends TypeContext> type() {
1499c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContexts(TypeContext.class);
1500c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
15018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TypeContext type(int i) {
15028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(TypeContext.class,i);
15038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1504c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeArgumentsContext(ParserRuleContext parent, int invokingState) {
1505c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1506c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1507c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_typeArguments; }
1508c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1509c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1510c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterTypeArguments(this);
1511c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1512c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1513c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1514c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitTypeArguments(this);
1515c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1516c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1517c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1518c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitTypeArguments(this);
1519c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1520c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1521c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1522c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1523c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1524c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final TypeArgumentsContext typeArguments() throws RecognitionException {
1525c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState());
1526d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 22, RULE_typeArguments);
1527c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1528c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1529c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1530c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
15318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(165);
15328d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__21);
15338d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(166);
15348d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			type();
1535ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(171);
1536c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.sync(this);
1537c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
15388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			while (_la==T__0) {
1539c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
1540c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
15418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(167);
15428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				match(T__0);
15438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(168);
15448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				type();
1545c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1546c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1547ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(173);
1548c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1549c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_la = _input.LA(1);
1550c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
15518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(174);
15528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__20);
1553c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1554c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1555c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1556c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1557c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1558c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1559c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1560c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1561c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1562c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1563c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1564c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1565c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1566c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class TypeContext extends ParserRuleContext {
1567c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ClassOrInterfaceTypeContext classOrInterfaceType() {
1568c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ClassOrInterfaceTypeContext.class,0);
1569c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
15708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public PrimitiveTypeContext primitiveType() {
15718d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(PrimitiveTypeContext.class,0);
15728d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1573c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeContext(ParserRuleContext parent, int invokingState) {
1574c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1575c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1576c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_type; }
1577c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1578c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1579c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterType(this);
1580c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1581c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1582c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1583c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitType(this);
1584c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1585c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1586c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1587c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitType(this);
1588c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1589c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1590c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1591c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1592c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1593c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final TypeContext type() throws RecognitionException {
1594c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		TypeContext _localctx = new TypeContext(_ctx, getState());
1595d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 24, RULE_type);
1596c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1597c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			int _alt;
1598ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(192);
1599c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			switch (_input.LA(1)) {
1600c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case Identifier:
1601c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 1);
1602c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
16038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(176);
16048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				classOrInterfaceType();
1605ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(181);
1606c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1607d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
1608c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
1609c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					if ( _alt==1 ) {
1610c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1611c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
16128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(177);
16138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__6);
16148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(178);
16158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__7);
1616c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1617c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1618c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1619ae7cb82316e351c488ee3b9c7226602321f34301George Mount					setState(183);
1620c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					_errHandler.sync(this);
1621d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
1622c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1623c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1624c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
16258d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__35:
16268d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__36:
16278d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__37:
16288d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__38:
1629c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case T__39:
16308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__40:
16318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__41:
16328d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			case T__42:
1633c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				enterOuterAlt(_localctx, 2);
1634c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
16358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(184);
16368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				primitiveType();
1637ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(189);
1638c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1639d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
1640c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
1641c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					if ( _alt==1 ) {
1642c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
1643c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
16448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(185);
16458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__6);
16468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(186);
16478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						match(T__7);
1648c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1649c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1650c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1651ae7cb82316e351c488ee3b9c7226602321f34301George Mount					setState(191);
1652c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					_errHandler.sync(this);
1653d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
1654c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1655c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1656c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
1657c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			default:
1658c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				throw new NoViableAltException(this);
1659c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1660c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1661c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1662c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1663c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1664c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1665c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1666c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1667c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1668c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1669c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1670c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1671c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1672c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext {
1673c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode Identifier() { return getToken(BindingExpressionParser.Identifier, 0); }
1674c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ArgumentsContext arguments() {
1675c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ArgumentsContext.class,0);
1676c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1677c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) {
1678c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1679c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1680c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; }
1681c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1682c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1683c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterExplicitGenericInvocationSuffix(this);
1684c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1685c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1686c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1687c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitExplicitGenericInvocationSuffix(this);
1688c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1689c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1690c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1691c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitExplicitGenericInvocationSuffix(this);
1692c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1693c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1694c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1695c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1696c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1697c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException {
1698c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState());
1699d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 26, RULE_explicitGenericInvocationSuffix);
1700c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1701c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1702c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
17038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(194);
17048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(Identifier);
17058d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(195);
17068d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			arguments();
1707c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1708c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1709c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1710c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1711c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1712c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1713c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1714c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1715c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1716c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1717c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1718c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1719c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1720c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ArgumentsContext extends ParserRuleContext {
1721c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ExpressionListContext expressionList() {
1722c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(ExpressionListContext.class,0);
1723c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1724c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ArgumentsContext(ParserRuleContext parent, int invokingState) {
1725c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1726c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1727c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_arguments; }
1728c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1729c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1730c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterArguments(this);
1731c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1732c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1733c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1734c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitArguments(this);
1735c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1736c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1737c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1738c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitArguments(this);
1739c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1740c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1741c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1742c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1743c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1744c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ArgumentsContext arguments() throws RecognitionException {
1745c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
1746d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 28, RULE_arguments);
1747c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1748c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1749c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1750c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
17518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(197);
17528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__3);
1753ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(199);
1754c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
17558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << SingleQuoteString) | (1L << DoubleQuoteString) | (1L << NullLiteral) | (1L << Identifier) | (1L << ResourceReference))) != 0)) {
1756c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
17578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(198);
17588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				expressionList();
1759c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1760c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1761c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
17628d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(201);
17638d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__4);
1764c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1765c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1766c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1767c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1768c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1769c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1770c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1771c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1772c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1773c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1774c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1775c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1776c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1777c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class ClassOrInterfaceTypeContext extends ParserRuleContext {
17788d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public IdentifierContext identifier() {
17798d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContext(IdentifierContext.class,0);
17808d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
17818d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public List<? extends TypeArgumentsContext> typeArguments() {
17828d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return getRuleContexts(TypeArgumentsContext.class);
17838d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		}
1784c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TypeArgumentsContext typeArguments(int i) {
1785c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getRuleContext(TypeArgumentsContext.class,i);
1786c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
17878d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public List<? extends TerminalNode> Identifier() { return getTokens(BindingExpressionParser.Identifier); }
1788c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public TerminalNode Identifier(int i) {
1789c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			return getToken(BindingExpressionParser.Identifier, i);
1790c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1791c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) {
1792c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1793c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1794c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_classOrInterfaceType; }
1795c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1796c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1797c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterClassOrInterfaceType(this);
1798c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1799c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1800c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1801c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitClassOrInterfaceType(this);
1802c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1803c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1804c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1805c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitClassOrInterfaceType(this);
1806c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1807c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1808c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1809c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1810c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1811c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException {
1812c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState());
1813d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 30, RULE_classOrInterfaceType);
1814c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1815c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			int _alt;
1816c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1817c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
18188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(203);
18198d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			identifier();
1820ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(205);
1821d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) {
1822c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			case 1:
1823c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				{
18248d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(204);
18258d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				typeArguments();
1826c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1827c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				break;
1828c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1829ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(214);
1830c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.sync(this);
1831d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount			_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
1832c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
1833c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				if ( _alt==1 ) {
1834c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					{
1835c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					{
18368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					setState(207);
18378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					match(T__5);
18388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					setState(208);
18398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount					match(Identifier);
1840ae7cb82316e351c488ee3b9c7226602321f34301George Mount					setState(210);
1841d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount					switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) {
1842c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					case 1:
1843c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						{
18448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						setState(209);
18458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount						typeArguments();
1846c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						}
1847c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount						break;
1848c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1849c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1850c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount					}
1851c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				}
1852ae7cb82316e351c488ee3b9c7226602321f34301George Mount				setState(216);
1853c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount				_errHandler.sync(this);
1854d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount				_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
1855c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1856c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1857c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1858c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1859c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1860c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1861c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1862c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1863c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1864c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1865c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1866c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1867c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1868c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1869c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static class PrimitiveTypeContext extends ParserRuleContext {
1870c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
1871c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			super(parent, invokingState);
1872c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1873c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override public int getRuleIndex() { return RULE_primitiveType; }
1874c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1875c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void enterRule(ParseTreeListener listener) {
1876c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterPrimitiveType(this);
1877c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1878c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1879c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public void exitRule(ParseTreeListener listener) {
1880c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitPrimitiveType(this);
1881c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1882c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		@Override
1883c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1884c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitPrimitiveType(this);
1885c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			else return visitor.visitChildren(this);
1886c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1887c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1888c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1889c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	@RuleVersion(0)
1890c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public final PrimitiveTypeContext primitiveType() throws RecognitionException {
1891c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
1892d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		enterRule(_localctx, 32, RULE_primitiveType);
1893c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		int _la;
1894c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		try {
1895c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			enterOuterAlt(_localctx, 1);
1896c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			{
1897ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(217);
1898c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_la = _input.LA(1);
18998d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42))) != 0)) ) {
1900c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recoverInline(this);
19018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			} else {
19028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				consume();
1903c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1904c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			}
1905c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1906c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		catch (RecognitionException re) {
1907c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_localctx.exception = re;
1908c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.reportError(this, re);
1909c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			_errHandler.recover(this, re);
1910c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1911c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		finally {
1912c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount			exitRule();
1913c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
1914c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return _localctx;
1915c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
1916c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
1917ae7cb82316e351c488ee3b9c7226602321f34301George Mount	public static class ResourcesContext extends ParserRuleContext {
19188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		public TerminalNode ResourceReference() { return getToken(BindingExpressionParser.ResourceReference, 0); }
1919ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public ResourceParametersContext resourceParameters() {
1920ae7cb82316e351c488ee3b9c7226602321f34301George Mount			return getRuleContext(ResourceParametersContext.class,0);
1921ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1922ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public ResourcesContext(ParserRuleContext parent, int invokingState) {
1923ae7cb82316e351c488ee3b9c7226602321f34301George Mount			super(parent, invokingState);
1924ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1925ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override public int getRuleIndex() { return RULE_resources; }
1926ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1927ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public void enterRule(ParseTreeListener listener) {
1928ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResources(this);
1929ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1930ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1931ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public void exitRule(ParseTreeListener listener) {
1932ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResources(this);
1933ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1934ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1935ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1936ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResources(this);
1937ae7cb82316e351c488ee3b9c7226602321f34301George Mount			else return visitor.visitChildren(this);
1938ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1939ae7cb82316e351c488ee3b9c7226602321f34301George Mount	}
1940ae7cb82316e351c488ee3b9c7226602321f34301George Mount
1941ae7cb82316e351c488ee3b9c7226602321f34301George Mount	@RuleVersion(0)
1942ae7cb82316e351c488ee3b9c7226602321f34301George Mount	public final ResourcesContext resources() throws RecognitionException {
1943ae7cb82316e351c488ee3b9c7226602321f34301George Mount		ResourcesContext _localctx = new ResourcesContext(_ctx, getState());
1944ae7cb82316e351c488ee3b9c7226602321f34301George Mount		enterRule(_localctx, 34, RULE_resources);
1945ae7cb82316e351c488ee3b9c7226602321f34301George Mount		try {
1946ae7cb82316e351c488ee3b9c7226602321f34301George Mount			enterOuterAlt(_localctx, 1);
1947ae7cb82316e351c488ee3b9c7226602321f34301George Mount			{
19488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(219);
19498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(ResourceReference);
1950ae7cb82316e351c488ee3b9c7226602321f34301George Mount			setState(221);
1951ae7cb82316e351c488ee3b9c7226602321f34301George Mount			switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
1952ae7cb82316e351c488ee3b9c7226602321f34301George Mount			case 1:
1953ae7cb82316e351c488ee3b9c7226602321f34301George Mount				{
19548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				setState(220);
19558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount				resourceParameters();
1956ae7cb82316e351c488ee3b9c7226602321f34301George Mount				}
1957ae7cb82316e351c488ee3b9c7226602321f34301George Mount				break;
1958ae7cb82316e351c488ee3b9c7226602321f34301George Mount			}
1959ae7cb82316e351c488ee3b9c7226602321f34301George Mount			}
1960ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1961ae7cb82316e351c488ee3b9c7226602321f34301George Mount		catch (RecognitionException re) {
1962ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_localctx.exception = re;
1963ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_errHandler.reportError(this, re);
1964ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_errHandler.recover(this, re);
1965ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1966ae7cb82316e351c488ee3b9c7226602321f34301George Mount		finally {
1967ae7cb82316e351c488ee3b9c7226602321f34301George Mount			exitRule();
1968ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1969ae7cb82316e351c488ee3b9c7226602321f34301George Mount		return _localctx;
1970ae7cb82316e351c488ee3b9c7226602321f34301George Mount	}
1971ae7cb82316e351c488ee3b9c7226602321f34301George Mount
1972ae7cb82316e351c488ee3b9c7226602321f34301George Mount	public static class ResourceParametersContext extends ParserRuleContext {
1973ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public ExpressionListContext expressionList() {
1974ae7cb82316e351c488ee3b9c7226602321f34301George Mount			return getRuleContext(ExpressionListContext.class,0);
1975ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1976ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public ResourceParametersContext(ParserRuleContext parent, int invokingState) {
1977ae7cb82316e351c488ee3b9c7226602321f34301George Mount			super(parent, invokingState);
1978ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1979ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override public int getRuleIndex() { return RULE_resourceParameters; }
1980ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1981ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public void enterRule(ParseTreeListener listener) {
1982ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).enterResourceParameters(this);
1983ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1984ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1985ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public void exitRule(ParseTreeListener listener) {
1986ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( listener instanceof BindingExpressionListener ) ((BindingExpressionListener)listener).exitResourceParameters(this);
1987ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1988ae7cb82316e351c488ee3b9c7226602321f34301George Mount		@Override
1989ae7cb82316e351c488ee3b9c7226602321f34301George Mount		public <Result> Result accept(ParseTreeVisitor<? extends Result> visitor) {
1990ae7cb82316e351c488ee3b9c7226602321f34301George Mount			if ( visitor instanceof BindingExpressionVisitor<?> ) return ((BindingExpressionVisitor<? extends Result>)visitor).visitResourceParameters(this);
1991ae7cb82316e351c488ee3b9c7226602321f34301George Mount			else return visitor.visitChildren(this);
1992ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
1993ae7cb82316e351c488ee3b9c7226602321f34301George Mount	}
1994ae7cb82316e351c488ee3b9c7226602321f34301George Mount
1995ae7cb82316e351c488ee3b9c7226602321f34301George Mount	@RuleVersion(0)
1996ae7cb82316e351c488ee3b9c7226602321f34301George Mount	public final ResourceParametersContext resourceParameters() throws RecognitionException {
1997ae7cb82316e351c488ee3b9c7226602321f34301George Mount		ResourceParametersContext _localctx = new ResourceParametersContext(_ctx, getState());
1998ae7cb82316e351c488ee3b9c7226602321f34301George Mount		enterRule(_localctx, 36, RULE_resourceParameters);
1999ae7cb82316e351c488ee3b9c7226602321f34301George Mount		try {
2000ae7cb82316e351c488ee3b9c7226602321f34301George Mount			enterOuterAlt(_localctx, 1);
2001ae7cb82316e351c488ee3b9c7226602321f34301George Mount			{
20028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(223);
20038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__3);
20048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(224);
20058d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			expressionList();
20068d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			setState(225);
20078d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			match(T__4);
2008ae7cb82316e351c488ee3b9c7226602321f34301George Mount			}
2009ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
2010ae7cb82316e351c488ee3b9c7226602321f34301George Mount		catch (RecognitionException re) {
2011ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_localctx.exception = re;
2012ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_errHandler.reportError(this, re);
2013ae7cb82316e351c488ee3b9c7226602321f34301George Mount			_errHandler.recover(this, re);
2014ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
2015ae7cb82316e351c488ee3b9c7226602321f34301George Mount		finally {
2016ae7cb82316e351c488ee3b9c7226602321f34301George Mount			exitRule();
2017ae7cb82316e351c488ee3b9c7226602321f34301George Mount		}
2018ae7cb82316e351c488ee3b9c7226602321f34301George Mount		return _localctx;
2019ae7cb82316e351c488ee3b9c7226602321f34301George Mount	}
2020ae7cb82316e351c488ee3b9c7226602321f34301George Mount
2021c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
2022c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		switch (ruleIndex) {
20238d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 3:
20248d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return expression_sempred((ExpressionContext)_localctx, predIndex);
2025c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
2026c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return true;
2027c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
2028c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
2029c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		switch (predIndex) {
20308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 0:
20318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 13);
2032c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20338d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 1:
20348d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 12);
2035c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 2:
20378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 11);
2038c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 3:
20408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 10);
2041c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 4:
20438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 8);
2044c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 5:
20468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 7);
2047c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 6:
20498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 6);
2050c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 7:
20528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 5);
2053c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 8:
20558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 4);
2056c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 9:
20588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 3);
2059c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20608d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 10:
20618d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 2);
2062c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20638d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 11:
20648d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 1);
2065c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20668d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 12:
20678d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 19);
2068c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20698d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 13:
20708d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 18);
2071c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20728d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 14:
20738d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 17);
2074c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
20758d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		case 15:
20768d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount			return precpred(_ctx, 9);
2077c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		}
2078c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		return true;
2079c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
2080c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount
2081c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static final String _serializedATN =
2082ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\3\uaf6f\u8320\u479d\ub75c\u4880\u1605\u191c\uab37\3:\u00e6\4\2\t\2\4"+
2083c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
2084c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
2085ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\4\23\t\23\4\24\t\24\3\2\3\2\5\2+\n\2\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4"+
2086ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\5\4\65\n\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+
2087ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\5\3\5\3\5\3\5\5\5I\n\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+
2088d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		"\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5"+
2089d071769a3dc21fa36b55eb727d1f54474fb76b00George Mount		"\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3"+
2090ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\5\3\5\3\5\3\5\3\5\3\5\5\5\177\n\5\3\5\3\5\3\5\3\5\7\5\u0085\n\5\f\5\16"+
2091ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\5\u0088\13\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\5\6\u0091\n\6\3\7\3\7\3\7\7"+
2092ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\7\u0096\n\7\f\7\16\7\u0099\13\7\3\b\3\b\5\b\u009d\n\b\3\t\3\t\3\n\3\n"+
2093ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\3\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3\r\7\r\u00ac\n\r\f\r\16\r\u00af\13"+
2094ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b6\n\16\f\16\16\16\u00b9\13\16\3\16"+
2095ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\3\16\3\16\7\16\u00be\n\16\f\16\16\16\u00c1\13\16\5\16\u00c3\n\16\3\17"+
2096ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\3\17\3\17\3\20\3\20\5\20\u00ca\n\20\3\20\3\20\3\21\3\21\5\21\u00d0\n"+
2097ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\21\3\21\3\21\3\21\5\21\u00d5\n\21\7\21\u00d7\n\21\f\21\16\21\u00da\13"+
2098ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\21\3\22\3\22\3\23\3\23\5\23\u00e0\n\23\3\24\3\24\3\24\3\24\3\24\2\2\3"+
2099ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\b\25\2\2\4\2\6\2\b\2\n\2\f\2\16\2\20\2\22\2\24\2\26\2\30\2\32\2\34\2"+
21008d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\36\2 \2\"\2$\2&\2\2\13\3\2\13\f\3\2\r\16\3\2\17\21\3\2\22\24\3\2\25\30"+
21018d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\3\2\32\33\4\2/\62\65\65\3\2\63\64\3\2&-\u00f9\2(\3\2\2\2\4,\3\2\2\2\6"+
21028d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\64\3\2\2\2\bH\3\2\2\2\n\u0090\3\2\2\2\f\u0092\3\2\2\2\16\u009c\3\2\2"+
21038d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\20\u009e\3\2\2\2\22\u00a0\3\2\2\2\24\u00a2\3\2\2\2\26\u00a4\3\2\2\2"+
21048d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\30\u00a7\3\2\2\2\32\u00c2\3\2\2\2\34\u00c4\3\2\2\2\36\u00c7\3\2\2\2 "+
21058d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00cd\3\2\2\2\"\u00db\3\2\2\2$\u00dd\3\2\2\2&\u00e1\3\2\2\2(*\5\b\5\2"+
21068d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		")+\5\4\3\2*)\3\2\2\2*+\3\2\2\2+\3\3\2\2\2,-\7\3\2\2-.\7\4\2\2./\7\5\2"+
21078d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2/\60\5\6\4\2\60\5\3\2\2\2\61\65\5\16\b\2\62\65\78\2\2\63\65\5\20\t\2"+
21088d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\64\61\3\2\2\2\64\62\3\2\2\2\64\63\3\2\2\2\65\7\3\2\2\2\66\67\b\5\1\2"+
21098d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\678\7\6\2\289\5\32\16\29:\7\7\2\2:;\5\b\5\22;I\3\2\2\2<=\t\2\2\2=I\5"+
21108d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\b\5\21>?\t\3\2\2?I\5\b\5\20@A\7\6\2\2AB\5\b\5\2BC\7\7\2\2CI\3\2\2\2D"+
21118d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"I\5\16\b\2EI\5\20\t\2FI\5\n\6\2GI\5$\23\2H\66\3\2\2\2H<\3\2\2\2H>\3\2"+
21128d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2H@\3\2\2\2HD\3\2\2\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2I\u0086\3\2\2\2"+
21138d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"JK\f\17\2\2KL\t\4\2\2L\u0085\5\b\5\20MN\f\16\2\2NO\t\2\2\2O\u0085\5\b"+
21148d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5\17PQ\f\r\2\2QR\t\5\2\2R\u0085\5\b\5\16ST\f\f\2\2TU\t\6\2\2U\u0085\5"+
21158d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\b\5\rVW\f\n\2\2WX\t\7\2\2X\u0085\5\b\5\13YZ\f\t\2\2Z[\7\34\2\2[\u0085"+
21168d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5\b\5\n\\]\f\b\2\2]^\7\35\2\2^\u0085\5\b\5\t_`\f\7\2\2`a\7\36\2\2a\u0085"+
21178d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5\b\5\bbc\f\6\2\2cd\7\37\2\2d\u0085\5\b\5\7ef\f\5\2\2fg\7 \2\2g\u0085"+
21188d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5\b\5\6hi\f\4\2\2ij\7!\2\2jk\5\b\5\2kl\7\"\2\2lm\5\b\5\4m\u0085\3\2\2"+
21198d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2no\f\3\2\2op\7#\2\2p\u0085\5\b\5\4qr\f\25\2\2rs\7\b\2\2s\u0085\7\66"+
21208d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2tu\f\24\2\2uv\7\t\2\2vw\5\b\5\2wx\7\n\2\2x\u0085\3\2\2\2yz\f\23\2"+
21218d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2z{\7\b\2\2{|\7\66\2\2|~\7\6\2\2}\177\5\f\7\2~}\3\2\2\2~\177\3\2\2\2"+
21228d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\177\u0080\3\2\2\2\u0080\u0085\7\7\2\2\u0081\u0082\f\13\2\2\u0082\u0083"+
21238d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\7\31\2\2\u0083\u0085\5\32\16\2\u0084J\3\2\2\2\u0084M\3\2\2\2\u0084P\3"+
21248d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\2\u0084S\3\2\2\2\u0084V\3\2\2\2\u0084Y\3\2\2\2\u0084\\\3\2\2\2\u0084"+
2125ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"_\3\2\2\2\u0084b\3\2\2\2\u0084e\3\2\2\2\u0084h\3\2\2\2\u0084n\3\2\2\2"+
2126ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\u0084q\3\2\2\2\u0084t\3\2\2\2\u0084y\3\2\2\2\u0084\u0081\3\2\2\2\u0085"+
2127ae7cb82316e351c488ee3b9c7226602321f34301George Mount		"\u0088\3\2\2\2\u0086\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\t\3\2\2\2"+
21288d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u0088\u0086\3\2\2\2\u0089\u008a\5\32\16\2\u008a\u008b\7\b\2\2\u008b\u008c"+
21298d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\7$\2\2\u008c\u0091\3\2\2\2\u008d\u008e\7%\2\2\u008e\u008f\7\b\2\2\u008f"+
21308d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u0091\7$\2\2\u0090\u0089\3\2\2\2\u0090\u008d\3\2\2\2\u0091\13\3\2\2\2"+
21318d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u0092\u0097\5\b\5\2\u0093\u0094\7\3\2\2\u0094\u0096\5\b\5\2\u0095\u0093"+
21328d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\3\2\2\2\u0096\u0099\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098"+
21338d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\r\3\2\2\2\u0099\u0097\3\2\2\2\u009a\u009d\5\22\n\2\u009b\u009d\5\24\13"+
21348d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\u009c\u009a\3\2\2\2\u009c\u009b\3\2\2\2\u009d\17\3\2\2\2\u009e\u009f"+
21358d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\7\66\2\2\u009f\21\3\2\2\2\u00a0\u00a1\t\b\2\2\u00a1\23\3\2\2\2\u00a2"+
21368d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00a3\t\t\2\2\u00a3\25\3\2\2\2\u00a4\u00a5\5\30\r\2\u00a5\u00a6\5\34"+
21378d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\17\2\u00a6\27\3\2\2\2\u00a7\u00a8\7\30\2\2\u00a8\u00ad\5\32\16\2\u00a9"+
21388d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00aa\7\3\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00a9\3\2\2\2\u00ac\u00af\3"+
21398d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\2\u00ad\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af"+
21408d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00ad\3\2\2\2\u00b0\u00b1\7\27\2\2\u00b1\31\3\2\2\2\u00b2\u00b7\5 \21"+
21418d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\u00b3\u00b4\7\t\2\2\u00b4\u00b6\7\n\2\2\u00b5\u00b3\3\2\2\2\u00b6\u00b9"+
21428d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00c3\3\2\2\2\u00b9"+
21438d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00b7\3\2\2\2\u00ba\u00bf\5\"\22\2\u00bb\u00bc\7\t\2\2\u00bc\u00be\7"+
21448d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\n\2\2\u00bd\u00bb\3\2\2\2\u00be\u00c1\3\2\2\2\u00bf\u00bd\3\2\2\2\u00bf"+
21458d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00c0\3\2\2\2\u00c0\u00c3\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c2\u00b2\3\2"+
21468d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\u00c2\u00ba\3\2\2\2\u00c3\33\3\2\2\2\u00c4\u00c5\7\66\2\2\u00c5\u00c6"+
21478d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5\36\20\2\u00c6\35\3\2\2\2\u00c7\u00c9\7\6\2\2\u00c8\u00ca\5\f\7\2\u00c9"+
21488d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00c8\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\7\7"+
21498d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\u00cc\37\3\2\2\2\u00cd\u00cf\5\20\t\2\u00ce\u00d0\5\30\r\2\u00cf"+
21508d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00ce\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d8\3\2\2\2\u00d1\u00d2\7\b"+
21518d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\u00d2\u00d4\7\66\2\2\u00d3\u00d5\5\30\r\2\u00d4\u00d3\3\2\2\2\u00d4"+
21528d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00d5\3\2\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00d1\3\2\2\2\u00d7\u00da\3\2"+
21538d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\2\2\u00d8\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9!\3\2\2\2\u00da\u00d8"+
21548d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\3\2\2\2\u00db\u00dc\t\n\2\2\u00dc#\3\2\2\2\u00dd\u00df\78\2\2\u00de\u00e0"+
21558d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\5&\24\2\u00df\u00de\3\2\2\2\u00df\u00e0\3\2\2\2\u00e0%\3\2\2\2\u00e1"+
21568d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00e2\7\6\2\2\u00e2\u00e3\5\f\7\2\u00e3\u00e4\7\7\2\2\u00e4\'\3\2\2\2"+
21578d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\24*\64H~\u0084\u0086\u0090\u0097\u009c\u00ad\u00b7\u00bf\u00c2\u00c9"+
21588d89ffbe003c2b51522e56ae64b48d5398c9837bGeorge Mount		"\u00cf\u00d4\u00d8\u00df";
2159c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	public static final ATN _ATN =
2160c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
2161c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	static {
2162c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount	}
2163c09acd410cdf8399b43f5e4a77313337a0c9a178George Mount}