gdx-studio

#libgdx#java#desktop

git clone https://git.pyrossh.dev/gdx-studio

An IDE for creating Games using libgdx and Java supported on all platforms Android, iOS, Desktop


src/gdxstudio/parser/JavaParser.java
a9b2a64 1
package gdxstudio.parser;
a62d533 2
// Generated from Java.g4 by ANTLR 4.2
a62d533 3
import org.antlr.v4.runtime.atn.*;
a62d533 4
import org.antlr.v4.runtime.dfa.DFA;
a62d533 5
import org.antlr.v4.runtime.*;
a62d533 6
import org.antlr.v4.runtime.misc.*;
a62d533 7
import org.antlr.v4.runtime.tree.*;
a62d533 8
import java.util.List;
a62d533 9
import java.util.Iterator;
a62d533 10
import java.util.ArrayList;
a62d533 11
a62d533 12
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
a62d533 13
public class JavaParser extends Parser {
a62d533 14
	protected static final DFA[] _decisionToDFA;
a62d533 15
	protected static final PredictionContextCache _sharedContextCache =
a62d533 16
		new PredictionContextCache();
a62d533 17
	public static final int
a62d533 18
		ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, 
a62d533 19
		CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, 
a62d533 20
		ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, 
a62d533 21
		IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, 
a62d533 22
		NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, 
a62d533 23
		SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, 
a62d533 24
		THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, 
a62d533 25
		WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53, 
a62d533 26
		CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58, 
a62d533 27
		LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65, 
a62d533 28
		ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73, 
a62d533 29
		LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82, 
a62d533 30
		MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ADD_ASSIGN=89, 
a62d533 31
		SUB_ASSIGN=90, MUL_ASSIGN=91, DIV_ASSIGN=92, AND_ASSIGN=93, OR_ASSIGN=94, 
a62d533 32
		XOR_ASSIGN=95, MOD_ASSIGN=96, LSHIFT_ASSIGN=97, RSHIFT_ASSIGN=98, URSHIFT_ASSIGN=99, 
a62d533 33
		Identifier=100, AT=101, ELLIPSIS=102, WS=103, COMMENT=104, LINE_COMMENT=105;
a62d533 34
	public static final String[] tokenNames = {
a62d533 35
		"<INVALID>", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", 
a62d533 36
		"'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", 
a62d533 37
		"'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", 
a62d533 38
		"'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", 
a62d533 39
		"'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", 
a62d533 40
		"'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", 
a62d533 41
		"'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", 
a62d533 42
		"'transient'", "'try'", "'void'", "'volatile'", "'while'", "IntegerLiteral", 
a62d533 43
		"FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", 
a62d533 44
		"'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", "','", "'.'", 
a62d533 45
		"'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", 
a62d533 46
		"'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", 
a62d533 47
		"'|'", "'^'", "'%'", "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", 
a62d533 48
		"'%='", "'<<='", "'>>='", "'>>>='", "Identifier", "'@'", "'...'", "WS", 
a62d533 49
		"COMMENT", "LINE_COMMENT"
a62d533 50
	};
a62d533 51
	public static final int
a62d533 52
		RULE_compilationUnit = 0, RULE_packageDeclaration = 1, RULE_importDeclaration = 2, 
a62d533 53
		RULE_typeDeclaration = 3, RULE_modifier = 4, RULE_classOrInterfaceModifier = 5, 
a62d533 54
		RULE_variableModifier = 6, RULE_classDeclaration = 7, RULE_typeParameters = 8, 
a62d533 55
		RULE_typeParameter = 9, RULE_typeBound = 10, RULE_enumDeclaration = 11, 
a62d533 56
		RULE_enumConstants = 12, RULE_enumConstant = 13, RULE_enumBodyDeclarations = 14, 
a62d533 57
		RULE_interfaceDeclaration = 15, RULE_typeList = 16, RULE_classBody = 17, 
a62d533 58
		RULE_interfaceBody = 18, RULE_classBodyDeclaration = 19, RULE_memberDeclaration = 20, 
a62d533 59
		RULE_methodDeclaration = 21, RULE_genericMethodDeclaration = 22, RULE_constructorDeclaration = 23, 
a62d533 60
		RULE_genericConstructorDeclaration = 24, RULE_fieldDeclaration = 25, RULE_interfaceBodyDeclaration = 26, 
a62d533 61
		RULE_interfaceMemberDeclaration = 27, RULE_constDeclaration = 28, RULE_constantDeclarator = 29, 
a62d533 62
		RULE_interfaceMethodDeclaration = 30, RULE_genericInterfaceMethodDeclaration = 31, 
a62d533 63
		RULE_variableDeclarators = 32, RULE_variableDeclarator = 33, RULE_variableDeclaratorId = 34, 
a62d533 64
		RULE_variableInitializer = 35, RULE_arrayInitializer = 36, RULE_enumConstantName = 37, 
a62d533 65
		RULE_type = 38, RULE_classOrInterfaceType = 39, RULE_primitiveType = 40, 
a62d533 66
		RULE_typeArguments = 41, RULE_typeArgument = 42, RULE_qualifiedNameList = 43, 
a62d533 67
		RULE_formalParameters = 44, RULE_formalParameterList = 45, RULE_formalParameter = 46, 
a62d533 68
		RULE_lastFormalParameter = 47, RULE_methodBody = 48, RULE_constructorBody = 49, 
a62d533 69
		RULE_qualifiedName = 50, RULE_literal = 51, RULE_annotation = 52, RULE_annotationName = 53, 
a62d533 70
		RULE_elementValuePairs = 54, RULE_elementValuePair = 55, RULE_elementValue = 56, 
a62d533 71
		RULE_elementValueArrayInitializer = 57, RULE_annotationTypeDeclaration = 58, 
a62d533 72
		RULE_annotationTypeBody = 59, RULE_annotationTypeElementDeclaration = 60, 
a62d533 73
		RULE_annotationTypeElementRest = 61, RULE_annotationMethodOrConstantRest = 62, 
a62d533 74
		RULE_annotationMethodRest = 63, RULE_annotationConstantRest = 64, RULE_defaultValue = 65, 
a62d533 75
		RULE_block = 66, RULE_blockStatement = 67, RULE_localVariableDeclarationStatement = 68, 
a62d533 76
		RULE_localVariableDeclaration = 69, RULE_statement = 70, RULE_catchClause = 71, 
a62d533 77
		RULE_catchType = 72, RULE_finallyBlock = 73, RULE_resourceSpecification = 74, 
a62d533 78
		RULE_resources = 75, RULE_resource = 76, RULE_switchBlockStatementGroup = 77, 
a62d533 79
		RULE_switchLabel = 78, RULE_forControl = 79, RULE_forInit = 80, RULE_enhancedForControl = 81, 
a62d533 80
		RULE_forUpdate = 82, RULE_parExpression = 83, RULE_expressionList = 84, 
a62d533 81
		RULE_statementExpression = 85, RULE_constantExpression = 86, RULE_expression = 87, 
a62d533 82
		RULE_primary = 88, RULE_creator = 89, RULE_createdName = 90, RULE_innerCreator = 91, 
a62d533 83
		RULE_arrayCreatorRest = 92, RULE_classCreatorRest = 93, RULE_explicitGenericInvocation = 94, 
a62d533 84
		RULE_nonWildcardTypeArguments = 95, RULE_typeArgumentsOrDiamond = 96, 
a62d533 85
		RULE_nonWildcardTypeArgumentsOrDiamond = 97, RULE_superSuffix = 98, RULE_explicitGenericInvocationSuffix = 99, 
a62d533 86
		RULE_arguments = 100;
a62d533 87
	public static final String[] ruleNames = {
a62d533 88
		"compilationUnit", "packageDeclaration", "importDeclaration", "typeDeclaration", 
a62d533 89
		"modifier", "classOrInterfaceModifier", "variableModifier", "classDeclaration", 
a62d533 90
		"typeParameters", "typeParameter", "typeBound", "enumDeclaration", "enumConstants", 
a62d533 91
		"enumConstant", "enumBodyDeclarations", "interfaceDeclaration", "typeList", 
a62d533 92
		"classBody", "interfaceBody", "classBodyDeclaration", "memberDeclaration", 
a62d533 93
		"methodDeclaration", "genericMethodDeclaration", "constructorDeclaration", 
a62d533 94
		"genericConstructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", 
a62d533 95
		"interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", 
a62d533 96
		"interfaceMethodDeclaration", "genericInterfaceMethodDeclaration", "variableDeclarators", 
a62d533 97
		"variableDeclarator", "variableDeclaratorId", "variableInitializer", "arrayInitializer", 
a62d533 98
		"enumConstantName", "type", "classOrInterfaceType", "primitiveType", "typeArguments", 
a62d533 99
		"typeArgument", "qualifiedNameList", "formalParameters", "formalParameterList", 
a62d533 100
		"formalParameter", "lastFormalParameter", "methodBody", "constructorBody", 
a62d533 101
		"qualifiedName", "literal", "annotation", "annotationName", "elementValuePairs", 
a62d533 102
		"elementValuePair", "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", 
a62d533 103
		"annotationTypeBody", "annotationTypeElementDeclaration", "annotationTypeElementRest", 
a62d533 104
		"annotationMethodOrConstantRest", "annotationMethodRest", "annotationConstantRest", 
a62d533 105
		"defaultValue", "block", "blockStatement", "localVariableDeclarationStatement", 
a62d533 106
		"localVariableDeclaration", "statement", "catchClause", "catchType", "finallyBlock", 
a62d533 107
		"resourceSpecification", "resources", "resource", "switchBlockStatementGroup", 
a62d533 108
		"switchLabel", "forControl", "forInit", "enhancedForControl", "forUpdate", 
a62d533 109
		"parExpression", "expressionList", "statementExpression", "constantExpression", 
a62d533 110
		"expression", "primary", "creator", "createdName", "innerCreator", "arrayCreatorRest", 
a62d533 111
		"classCreatorRest", "explicitGenericInvocation", "nonWildcardTypeArguments", 
a62d533 112
		"typeArgumentsOrDiamond", "nonWildcardTypeArgumentsOrDiamond", "superSuffix", 
a62d533 113
		"explicitGenericInvocationSuffix", "arguments"
a62d533 114
	};
a62d533 115
a62d533 116
	@Override
a62d533 117
	public String getGrammarFileName() { return "Java.g4"; }
a62d533 118
a62d533 119
	@Override
a62d533 120
	public String[] getTokenNames() { return tokenNames; }
a62d533 121
a62d533 122
	@Override
a62d533 123
	public String[] getRuleNames() { return ruleNames; }
a62d533 124
a62d533 125
	@Override
a62d533 126
	public String getSerializedATN() { return _serializedATN; }
a62d533 127
a62d533 128
	@Override
a62d533 129
	public ATN getATN() { return _ATN; }
a62d533 130
a62d533 131
	public JavaParser(TokenStream input) {
a62d533 132
		super(input);
a62d533 133
		_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
a62d533 134
	}
a62d533 135
	public static class CompilationUnitContext extends ParserRuleContext {
a62d533 136
		public List<ImportDeclarationContext> importDeclaration() {
a62d533 137
			return getRuleContexts(ImportDeclarationContext.class);
a62d533 138
		}
a62d533 139
		public TerminalNode EOF() { return getToken(JavaParser.EOF, 0); }
a62d533 140
		public PackageDeclarationContext packageDeclaration() {
a62d533 141
			return getRuleContext(PackageDeclarationContext.class,0);
a62d533 142
		}
a62d533 143
		public ImportDeclarationContext importDeclaration(int i) {
a62d533 144
			return getRuleContext(ImportDeclarationContext.class,i);
a62d533 145
		}
a62d533 146
		public List<TypeDeclarationContext> typeDeclaration() {
a62d533 147
			return getRuleContexts(TypeDeclarationContext.class);
a62d533 148
		}
a62d533 149
		public TypeDeclarationContext typeDeclaration(int i) {
a62d533 150
			return getRuleContext(TypeDeclarationContext.class,i);
a62d533 151
		}
a62d533 152
		public CompilationUnitContext(ParserRuleContext parent, int invokingState) {
a62d533 153
			super(parent, invokingState);
a62d533 154
		}
a62d533 155
		@Override public int getRuleIndex() { return RULE_compilationUnit; }
a62d533 156
		@Override
a62d533 157
		public void enterRule(ParseTreeListener listener) {
a62d533 158
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCompilationUnit(this);
a62d533 159
		}
a62d533 160
		@Override
a62d533 161
		public void exitRule(ParseTreeListener listener) {
a62d533 162
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCompilationUnit(this);
a62d533 163
		}
a62d533 164
	}
a62d533 165
a62d533 166
	public final CompilationUnitContext compilationUnit() throws RecognitionException {
a62d533 167
		CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState());
a62d533 168
		enterRule(_localctx, 0, RULE_compilationUnit);
a62d533 169
		int _la;
a62d533 170
		try {
a62d533 171
			enterOuterAlt(_localctx, 1);
a62d533 172
			{
a62d533 173
			setState(203);
a62d533 174
			switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) {
a62d533 175
			case 1:
a62d533 176
				{
a62d533 177
				setState(202); packageDeclaration();
a62d533 178
				}
a62d533 179
				break;
a62d533 180
			}
a62d533 181
			setState(208);
a62d533 182
			_errHandler.sync(this);
a62d533 183
			_la = _input.LA(1);
a62d533 184
			while (_la==IMPORT) {
a62d533 185
				{
a62d533 186
				{
a62d533 187
				setState(205); importDeclaration();
a62d533 188
				}
a62d533 189
				}
a62d533 190
				setState(210);
a62d533 191
				_errHandler.sync(this);
a62d533 192
				_la = _input.LA(1);
a62d533 193
			}
a62d533 194
			setState(214);
a62d533 195
			_errHandler.sync(this);
a62d533 196
			_la = _input.LA(1);
a62d533 197
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SEMI))) != 0) || _la==AT) {
a62d533 198
				{
a62d533 199
				{
a62d533 200
				setState(211); typeDeclaration();
a62d533 201
				}
a62d533 202
				}
a62d533 203
				setState(216);
a62d533 204
				_errHandler.sync(this);
a62d533 205
				_la = _input.LA(1);
a62d533 206
			}
a62d533 207
			setState(217); match(EOF);
a62d533 208
			}
a62d533 209
		}
a62d533 210
		catch (RecognitionException re) {
a62d533 211
			_localctx.exception = re;
a62d533 212
			_errHandler.reportError(this, re);
a62d533 213
			_errHandler.recover(this, re);
a62d533 214
		}
a62d533 215
		finally {
a62d533 216
			exitRule();
a62d533 217
		}
a62d533 218
		return _localctx;
a62d533 219
	}
a62d533 220
a62d533 221
	public static class PackageDeclarationContext extends ParserRuleContext {
a62d533 222
		public AnnotationContext annotation(int i) {
a62d533 223
			return getRuleContext(AnnotationContext.class,i);
a62d533 224
		}
a62d533 225
		public QualifiedNameContext qualifiedName() {
a62d533 226
			return getRuleContext(QualifiedNameContext.class,0);
a62d533 227
		}
a62d533 228
		public List<AnnotationContext> annotation() {
a62d533 229
			return getRuleContexts(AnnotationContext.class);
a62d533 230
		}
a62d533 231
		public PackageDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 232
			super(parent, invokingState);
a62d533 233
		}
a62d533 234
		@Override public int getRuleIndex() { return RULE_packageDeclaration; }
a62d533 235
		@Override
a62d533 236
		public void enterRule(ParseTreeListener listener) {
a62d533 237
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPackageDeclaration(this);
a62d533 238
		}
a62d533 239
		@Override
a62d533 240
		public void exitRule(ParseTreeListener listener) {
a62d533 241
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPackageDeclaration(this);
a62d533 242
		}
a62d533 243
	}
a62d533 244
a62d533 245
	public final PackageDeclarationContext packageDeclaration() throws RecognitionException {
a62d533 246
		PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState());
a62d533 247
		enterRule(_localctx, 2, RULE_packageDeclaration);
a62d533 248
		int _la;
a62d533 249
		try {
a62d533 250
			enterOuterAlt(_localctx, 1);
a62d533 251
			{
a62d533 252
			setState(222);
a62d533 253
			_errHandler.sync(this);
a62d533 254
			_la = _input.LA(1);
a62d533 255
			while (_la==AT) {
a62d533 256
				{
a62d533 257
				{
a62d533 258
				setState(219); annotation();
a62d533 259
				}
a62d533 260
				}
a62d533 261
				setState(224);
a62d533 262
				_errHandler.sync(this);
a62d533 263
				_la = _input.LA(1);
a62d533 264
			}
a62d533 265
			setState(225); match(PACKAGE);
a62d533 266
			setState(226); qualifiedName();
a62d533 267
			setState(227); match(SEMI);
a62d533 268
			}
a62d533 269
		}
a62d533 270
		catch (RecognitionException re) {
a62d533 271
			_localctx.exception = re;
a62d533 272
			_errHandler.reportError(this, re);
a62d533 273
			_errHandler.recover(this, re);
a62d533 274
		}
a62d533 275
		finally {
a62d533 276
			exitRule();
a62d533 277
		}
a62d533 278
		return _localctx;
a62d533 279
	}
a62d533 280
a62d533 281
	public static class ImportDeclarationContext extends ParserRuleContext {
a62d533 282
		public QualifiedNameContext qualifiedName() {
a62d533 283
			return getRuleContext(QualifiedNameContext.class,0);
a62d533 284
		}
a62d533 285
		public ImportDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 286
			super(parent, invokingState);
a62d533 287
		}
a62d533 288
		@Override public int getRuleIndex() { return RULE_importDeclaration; }
a62d533 289
		@Override
a62d533 290
		public void enterRule(ParseTreeListener listener) {
a62d533 291
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterImportDeclaration(this);
a62d533 292
		}
a62d533 293
		@Override
a62d533 294
		public void exitRule(ParseTreeListener listener) {
a62d533 295
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitImportDeclaration(this);
a62d533 296
		}
a62d533 297
	}
a62d533 298
a62d533 299
	public final ImportDeclarationContext importDeclaration() throws RecognitionException {
a62d533 300
		ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState());
a62d533 301
		enterRule(_localctx, 4, RULE_importDeclaration);
a62d533 302
		int _la;
a62d533 303
		try {
a62d533 304
			enterOuterAlt(_localctx, 1);
a62d533 305
			{
a62d533 306
			setState(229); match(IMPORT);
a62d533 307
			setState(231);
a62d533 308
			_la = _input.LA(1);
a62d533 309
			if (_la==STATIC) {
a62d533 310
				{
a62d533 311
				setState(230); match(STATIC);
a62d533 312
				}
a62d533 313
			}
a62d533 314
a62d533 315
			setState(233); qualifiedName();
a62d533 316
			setState(236);
a62d533 317
			_la = _input.LA(1);
a62d533 318
			if (_la==DOT) {
a62d533 319
				{
a62d533 320
				setState(234); match(DOT);
a62d533 321
				setState(235); match(MUL);
a62d533 322
				}
a62d533 323
			}
a62d533 324
a62d533 325
			setState(238); match(SEMI);
a62d533 326
			}
a62d533 327
		}
a62d533 328
		catch (RecognitionException re) {
a62d533 329
			_localctx.exception = re;
a62d533 330
			_errHandler.reportError(this, re);
a62d533 331
			_errHandler.recover(this, re);
a62d533 332
		}
a62d533 333
		finally {
a62d533 334
			exitRule();
a62d533 335
		}
a62d533 336
		return _localctx;
a62d533 337
	}
a62d533 338
a62d533 339
	public static class TypeDeclarationContext extends ParserRuleContext {
a62d533 340
		public InterfaceDeclarationContext interfaceDeclaration() {
a62d533 341
			return getRuleContext(InterfaceDeclarationContext.class,0);
a62d533 342
		}
a62d533 343
		public AnnotationTypeDeclarationContext annotationTypeDeclaration() {
a62d533 344
			return getRuleContext(AnnotationTypeDeclarationContext.class,0);
a62d533 345
		}
a62d533 346
		public ClassOrInterfaceModifierContext classOrInterfaceModifier(int i) {
a62d533 347
			return getRuleContext(ClassOrInterfaceModifierContext.class,i);
a62d533 348
		}
a62d533 349
		public EnumDeclarationContext enumDeclaration() {
a62d533 350
			return getRuleContext(EnumDeclarationContext.class,0);
a62d533 351
		}
a62d533 352
		public List<ClassOrInterfaceModifierContext> classOrInterfaceModifier() {
a62d533 353
			return getRuleContexts(ClassOrInterfaceModifierContext.class);
a62d533 354
		}
a62d533 355
		public ClassDeclarationContext classDeclaration() {
a62d533 356
			return getRuleContext(ClassDeclarationContext.class,0);
a62d533 357
		}
a62d533 358
		public TypeDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 359
			super(parent, invokingState);
a62d533 360
		}
a62d533 361
		@Override public int getRuleIndex() { return RULE_typeDeclaration; }
a62d533 362
		@Override
a62d533 363
		public void enterRule(ParseTreeListener listener) {
a62d533 364
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeDeclaration(this);
a62d533 365
		}
a62d533 366
		@Override
a62d533 367
		public void exitRule(ParseTreeListener listener) {
a62d533 368
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeDeclaration(this);
a62d533 369
		}
a62d533 370
	}
a62d533 371
a62d533 372
	public final TypeDeclarationContext typeDeclaration() throws RecognitionException {
a62d533 373
		TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState());
a62d533 374
		enterRule(_localctx, 6, RULE_typeDeclaration);
a62d533 375
		int _la;
a62d533 376
		try {
a62d533 377
			int _alt;
a62d533 378
			setState(269);
a62d533 379
			switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) {
a62d533 380
			case 1:
a62d533 381
				enterOuterAlt(_localctx, 1);
a62d533 382
				{
a62d533 383
				setState(243);
a62d533 384
				_errHandler.sync(this);
a62d533 385
				_la = _input.LA(1);
a62d533 386
				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) {
a62d533 387
					{
a62d533 388
					{
a62d533 389
					setState(240); classOrInterfaceModifier();
a62d533 390
					}
a62d533 391
					}
a62d533 392
					setState(245);
a62d533 393
					_errHandler.sync(this);
a62d533 394
					_la = _input.LA(1);
a62d533 395
				}
a62d533 396
				setState(246); classDeclaration();
a62d533 397
				}
a62d533 398
				break;
a62d533 399
a62d533 400
			case 2:
a62d533 401
				enterOuterAlt(_localctx, 2);
a62d533 402
				{
a62d533 403
				setState(250);
a62d533 404
				_errHandler.sync(this);
a62d533 405
				_la = _input.LA(1);
a62d533 406
				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) {
a62d533 407
					{
a62d533 408
					{
a62d533 409
					setState(247); classOrInterfaceModifier();
a62d533 410
					}
a62d533 411
					}
a62d533 412
					setState(252);
a62d533 413
					_errHandler.sync(this);
a62d533 414
					_la = _input.LA(1);
a62d533 415
				}
a62d533 416
				setState(253); enumDeclaration();
a62d533 417
				}
a62d533 418
				break;
a62d533 419
a62d533 420
			case 3:
a62d533 421
				enterOuterAlt(_localctx, 3);
a62d533 422
				{
a62d533 423
				setState(257);
a62d533 424
				_errHandler.sync(this);
a62d533 425
				_la = _input.LA(1);
a62d533 426
				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) {
a62d533 427
					{
a62d533 428
					{
a62d533 429
					setState(254); classOrInterfaceModifier();
a62d533 430
					}
a62d533 431
					}
a62d533 432
					setState(259);
a62d533 433
					_errHandler.sync(this);
a62d533 434
					_la = _input.LA(1);
a62d533 435
				}
a62d533 436
				setState(260); interfaceDeclaration();
a62d533 437
				}
a62d533 438
				break;
a62d533 439
a62d533 440
			case 4:
a62d533 441
				enterOuterAlt(_localctx, 4);
a62d533 442
				{
a62d533 443
				setState(264);
a62d533 444
				_errHandler.sync(this);
a62d533 445
				_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
a62d533 446
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 447
					if ( _alt==1 ) {
a62d533 448
						{
a62d533 449
						{
a62d533 450
						setState(261); classOrInterfaceModifier();
a62d533 451
						}
a62d533 452
						} 
a62d533 453
					}
a62d533 454
					setState(266);
a62d533 455
					_errHandler.sync(this);
a62d533 456
					_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
a62d533 457
				}
a62d533 458
				setState(267); annotationTypeDeclaration();
a62d533 459
				}
a62d533 460
				break;
a62d533 461
a62d533 462
			case 5:
a62d533 463
				enterOuterAlt(_localctx, 5);
a62d533 464
				{
a62d533 465
				setState(268); match(SEMI);
a62d533 466
				}
a62d533 467
				break;
a62d533 468
			}
a62d533 469
		}
a62d533 470
		catch (RecognitionException re) {
a62d533 471
			_localctx.exception = re;
a62d533 472
			_errHandler.reportError(this, re);
a62d533 473
			_errHandler.recover(this, re);
a62d533 474
		}
a62d533 475
		finally {
a62d533 476
			exitRule();
a62d533 477
		}
a62d533 478
		return _localctx;
a62d533 479
	}
a62d533 480
a62d533 481
	public static class ModifierContext extends ParserRuleContext {
a62d533 482
		public ClassOrInterfaceModifierContext classOrInterfaceModifier() {
a62d533 483
			return getRuleContext(ClassOrInterfaceModifierContext.class,0);
a62d533 484
		}
a62d533 485
		public ModifierContext(ParserRuleContext parent, int invokingState) {
a62d533 486
			super(parent, invokingState);
a62d533 487
		}
a62d533 488
		@Override public int getRuleIndex() { return RULE_modifier; }
a62d533 489
		@Override
a62d533 490
		public void enterRule(ParseTreeListener listener) {
a62d533 491
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterModifier(this);
a62d533 492
		}
a62d533 493
		@Override
a62d533 494
		public void exitRule(ParseTreeListener listener) {
a62d533 495
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitModifier(this);
a62d533 496
		}
a62d533 497
	}
a62d533 498
a62d533 499
	public final ModifierContext modifier() throws RecognitionException {
a62d533 500
		ModifierContext _localctx = new ModifierContext(_ctx, getState());
a62d533 501
		enterRule(_localctx, 8, RULE_modifier);
a62d533 502
		int _la;
a62d533 503
		try {
a62d533 504
			setState(273);
a62d533 505
			switch (_input.LA(1)) {
a62d533 506
			case ABSTRACT:
a62d533 507
			case FINAL:
a62d533 508
			case PRIVATE:
a62d533 509
			case PROTECTED:
a62d533 510
			case PUBLIC:
a62d533 511
			case STATIC:
a62d533 512
			case STRICTFP:
a62d533 513
			case AT:
a62d533 514
				enterOuterAlt(_localctx, 1);
a62d533 515
				{
a62d533 516
				setState(271); classOrInterfaceModifier();
a62d533 517
				}
a62d533 518
				break;
a62d533 519
			case NATIVE:
a62d533 520
			case SYNCHRONIZED:
a62d533 521
			case TRANSIENT:
a62d533 522
			case VOLATILE:
a62d533 523
				enterOuterAlt(_localctx, 2);
a62d533 524
				{
a62d533 525
				setState(272);
a62d533 526
				_la = _input.LA(1);
a62d533 527
				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NATIVE) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0)) ) {
a62d533 528
				_errHandler.recoverInline(this);
a62d533 529
				}
a62d533 530
				consume();
a62d533 531
				}
a62d533 532
				break;
a62d533 533
			default:
a62d533 534
				throw new NoViableAltException(this);
a62d533 535
			}
a62d533 536
		}
a62d533 537
		catch (RecognitionException re) {
a62d533 538
			_localctx.exception = re;
a62d533 539
			_errHandler.reportError(this, re);
a62d533 540
			_errHandler.recover(this, re);
a62d533 541
		}
a62d533 542
		finally {
a62d533 543
			exitRule();
a62d533 544
		}
a62d533 545
		return _localctx;
a62d533 546
	}
a62d533 547
a62d533 548
	public static class ClassOrInterfaceModifierContext extends ParserRuleContext {
a62d533 549
		public AnnotationContext annotation() {
a62d533 550
			return getRuleContext(AnnotationContext.class,0);
a62d533 551
		}
a62d533 552
		public ClassOrInterfaceModifierContext(ParserRuleContext parent, int invokingState) {
a62d533 553
			super(parent, invokingState);
a62d533 554
		}
a62d533 555
		@Override public int getRuleIndex() { return RULE_classOrInterfaceModifier; }
a62d533 556
		@Override
a62d533 557
		public void enterRule(ParseTreeListener listener) {
a62d533 558
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassOrInterfaceModifier(this);
a62d533 559
		}
a62d533 560
		@Override
a62d533 561
		public void exitRule(ParseTreeListener listener) {
a62d533 562
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassOrInterfaceModifier(this);
a62d533 563
		}
a62d533 564
	}
a62d533 565
a62d533 566
	public final ClassOrInterfaceModifierContext classOrInterfaceModifier() throws RecognitionException {
a62d533 567
		ClassOrInterfaceModifierContext _localctx = new ClassOrInterfaceModifierContext(_ctx, getState());
a62d533 568
		enterRule(_localctx, 10, RULE_classOrInterfaceModifier);
a62d533 569
		int _la;
a62d533 570
		try {
a62d533 571
			setState(277);
a62d533 572
			switch (_input.LA(1)) {
a62d533 573
			case AT:
a62d533 574
				enterOuterAlt(_localctx, 1);
a62d533 575
				{
a62d533 576
				setState(275); annotation();
a62d533 577
				}
a62d533 578
				break;
a62d533 579
			case ABSTRACT:
a62d533 580
			case FINAL:
a62d533 581
			case PRIVATE:
a62d533 582
			case PROTECTED:
a62d533 583
			case PUBLIC:
a62d533 584
			case STATIC:
a62d533 585
			case STRICTFP:
a62d533 586
				enterOuterAlt(_localctx, 2);
a62d533 587
				{
a62d533 588
				setState(276);
a62d533 589
				_la = _input.LA(1);
a62d533 590
				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0)) ) {
a62d533 591
				_errHandler.recoverInline(this);
a62d533 592
				}
a62d533 593
				consume();
a62d533 594
				}
a62d533 595
				break;
a62d533 596
			default:
a62d533 597
				throw new NoViableAltException(this);
a62d533 598
			}
a62d533 599
		}
a62d533 600
		catch (RecognitionException re) {
a62d533 601
			_localctx.exception = re;
a62d533 602
			_errHandler.reportError(this, re);
a62d533 603
			_errHandler.recover(this, re);
a62d533 604
		}
a62d533 605
		finally {
a62d533 606
			exitRule();
a62d533 607
		}
a62d533 608
		return _localctx;
a62d533 609
	}
a62d533 610
a62d533 611
	public static class VariableModifierContext extends ParserRuleContext {
a62d533 612
		public AnnotationContext annotation() {
a62d533 613
			return getRuleContext(AnnotationContext.class,0);
a62d533 614
		}
a62d533 615
		public VariableModifierContext(ParserRuleContext parent, int invokingState) {
a62d533 616
			super(parent, invokingState);
a62d533 617
		}
a62d533 618
		@Override public int getRuleIndex() { return RULE_variableModifier; }
a62d533 619
		@Override
a62d533 620
		public void enterRule(ParseTreeListener listener) {
a62d533 621
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableModifier(this);
a62d533 622
		}
a62d533 623
		@Override
a62d533 624
		public void exitRule(ParseTreeListener listener) {
a62d533 625
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableModifier(this);
a62d533 626
		}
a62d533 627
	}
a62d533 628
a62d533 629
	public final VariableModifierContext variableModifier() throws RecognitionException {
a62d533 630
		VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState());
a62d533 631
		enterRule(_localctx, 12, RULE_variableModifier);
a62d533 632
		try {
a62d533 633
			setState(281);
a62d533 634
			switch (_input.LA(1)) {
a62d533 635
			case FINAL:
a62d533 636
				enterOuterAlt(_localctx, 1);
a62d533 637
				{
a62d533 638
				setState(279); match(FINAL);
a62d533 639
				}
a62d533 640
				break;
a62d533 641
			case AT:
a62d533 642
				enterOuterAlt(_localctx, 2);
a62d533 643
				{
a62d533 644
				setState(280); annotation();
a62d533 645
				}
a62d533 646
				break;
a62d533 647
			default:
a62d533 648
				throw new NoViableAltException(this);
a62d533 649
			}
a62d533 650
		}
a62d533 651
		catch (RecognitionException re) {
a62d533 652
			_localctx.exception = re;
a62d533 653
			_errHandler.reportError(this, re);
a62d533 654
			_errHandler.recover(this, re);
a62d533 655
		}
a62d533 656
		finally {
a62d533 657
			exitRule();
a62d533 658
		}
a62d533 659
		return _localctx;
a62d533 660
	}
a62d533 661
a62d533 662
	public static class ClassDeclarationContext extends ParserRuleContext {
a62d533 663
		public TypeParametersContext typeParameters() {
a62d533 664
			return getRuleContext(TypeParametersContext.class,0);
a62d533 665
		}
a62d533 666
		public ClassBodyContext classBody() {
a62d533 667
			return getRuleContext(ClassBodyContext.class,0);
a62d533 668
		}
a62d533 669
		public TypeListContext typeList() {
a62d533 670
			return getRuleContext(TypeListContext.class,0);
a62d533 671
		}
a62d533 672
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 673
		public TypeContext type() {
a62d533 674
			return getRuleContext(TypeContext.class,0);
a62d533 675
		}
a62d533 676
		public ClassDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 677
			super(parent, invokingState);
a62d533 678
		}
a62d533 679
		@Override public int getRuleIndex() { return RULE_classDeclaration; }
a62d533 680
		@Override
a62d533 681
		public void enterRule(ParseTreeListener listener) {
a62d533 682
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassDeclaration(this);
a62d533 683
		}
a62d533 684
		@Override
a62d533 685
		public void exitRule(ParseTreeListener listener) {
a62d533 686
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassDeclaration(this);
a62d533 687
		}
a62d533 688
	}
a62d533 689
a62d533 690
	public final ClassDeclarationContext classDeclaration() throws RecognitionException {
a62d533 691
		ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState());
a62d533 692
		enterRule(_localctx, 14, RULE_classDeclaration);
a62d533 693
		int _la;
a62d533 694
		try {
a62d533 695
			enterOuterAlt(_localctx, 1);
a62d533 696
			{
a62d533 697
			setState(283); match(CLASS);
a62d533 698
			setState(284); match(Identifier);
a62d533 699
			setState(286);
a62d533 700
			_la = _input.LA(1);
a62d533 701
			if (_la==LT) {
a62d533 702
				{
a62d533 703
				setState(285); typeParameters();
a62d533 704
				}
a62d533 705
			}
a62d533 706
a62d533 707
			setState(290);
a62d533 708
			_la = _input.LA(1);
a62d533 709
			if (_la==EXTENDS) {
a62d533 710
				{
a62d533 711
				setState(288); match(EXTENDS);
a62d533 712
				setState(289); type();
a62d533 713
				}
a62d533 714
			}
a62d533 715
a62d533 716
			setState(294);
a62d533 717
			_la = _input.LA(1);
a62d533 718
			if (_la==IMPLEMENTS) {
a62d533 719
				{
a62d533 720
				setState(292); match(IMPLEMENTS);
a62d533 721
				setState(293); typeList();
a62d533 722
				}
a62d533 723
			}
a62d533 724
a62d533 725
			setState(296); classBody();
a62d533 726
			}
a62d533 727
		}
a62d533 728
		catch (RecognitionException re) {
a62d533 729
			_localctx.exception = re;
a62d533 730
			_errHandler.reportError(this, re);
a62d533 731
			_errHandler.recover(this, re);
a62d533 732
		}
a62d533 733
		finally {
a62d533 734
			exitRule();
a62d533 735
		}
a62d533 736
		return _localctx;
a62d533 737
	}
a62d533 738
a62d533 739
	public static class TypeParametersContext extends ParserRuleContext {
a62d533 740
		public List<TypeParameterContext> typeParameter() {
a62d533 741
			return getRuleContexts(TypeParameterContext.class);
a62d533 742
		}
a62d533 743
		public TypeParameterContext typeParameter(int i) {
a62d533 744
			return getRuleContext(TypeParameterContext.class,i);
a62d533 745
		}
a62d533 746
		public TypeParametersContext(ParserRuleContext parent, int invokingState) {
a62d533 747
			super(parent, invokingState);
a62d533 748
		}
a62d533 749
		@Override public int getRuleIndex() { return RULE_typeParameters; }
a62d533 750
		@Override
a62d533 751
		public void enterRule(ParseTreeListener listener) {
a62d533 752
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeParameters(this);
a62d533 753
		}
a62d533 754
		@Override
a62d533 755
		public void exitRule(ParseTreeListener listener) {
a62d533 756
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeParameters(this);
a62d533 757
		}
a62d533 758
	}
a62d533 759
a62d533 760
	public final TypeParametersContext typeParameters() throws RecognitionException {
a62d533 761
		TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState());
a62d533 762
		enterRule(_localctx, 16, RULE_typeParameters);
a62d533 763
		int _la;
a62d533 764
		try {
a62d533 765
			enterOuterAlt(_localctx, 1);
a62d533 766
			{
a62d533 767
			setState(298); match(LT);
a62d533 768
			setState(299); typeParameter();
a62d533 769
			setState(304);
a62d533 770
			_errHandler.sync(this);
a62d533 771
			_la = _input.LA(1);
a62d533 772
			while (_la==COMMA) {
a62d533 773
				{
a62d533 774
				{
a62d533 775
				setState(300); match(COMMA);
a62d533 776
				setState(301); typeParameter();
a62d533 777
				}
a62d533 778
				}
a62d533 779
				setState(306);
a62d533 780
				_errHandler.sync(this);
a62d533 781
				_la = _input.LA(1);
a62d533 782
			}
a62d533 783
			setState(307); match(GT);
a62d533 784
			}
a62d533 785
		}
a62d533 786
		catch (RecognitionException re) {
a62d533 787
			_localctx.exception = re;
a62d533 788
			_errHandler.reportError(this, re);
a62d533 789
			_errHandler.recover(this, re);
a62d533 790
		}
a62d533 791
		finally {
a62d533 792
			exitRule();
a62d533 793
		}
a62d533 794
		return _localctx;
a62d533 795
	}
a62d533 796
a62d533 797
	public static class TypeParameterContext extends ParserRuleContext {
a62d533 798
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 799
		public TypeBoundContext typeBound() {
a62d533 800
			return getRuleContext(TypeBoundContext.class,0);
a62d533 801
		}
a62d533 802
		public TypeParameterContext(ParserRuleContext parent, int invokingState) {
a62d533 803
			super(parent, invokingState);
a62d533 804
		}
a62d533 805
		@Override public int getRuleIndex() { return RULE_typeParameter; }
a62d533 806
		@Override
a62d533 807
		public void enterRule(ParseTreeListener listener) {
a62d533 808
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeParameter(this);
a62d533 809
		}
a62d533 810
		@Override
a62d533 811
		public void exitRule(ParseTreeListener listener) {
a62d533 812
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeParameter(this);
a62d533 813
		}
a62d533 814
	}
a62d533 815
a62d533 816
	public final TypeParameterContext typeParameter() throws RecognitionException {
a62d533 817
		TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState());
a62d533 818
		enterRule(_localctx, 18, RULE_typeParameter);
a62d533 819
		int _la;
a62d533 820
		try {
a62d533 821
			enterOuterAlt(_localctx, 1);
a62d533 822
			{
a62d533 823
			setState(309); match(Identifier);
a62d533 824
			setState(312);
a62d533 825
			_la = _input.LA(1);
a62d533 826
			if (_la==EXTENDS) {
a62d533 827
				{
a62d533 828
				setState(310); match(EXTENDS);
a62d533 829
				setState(311); typeBound();
a62d533 830
				}
a62d533 831
			}
a62d533 832
a62d533 833
			}
a62d533 834
		}
a62d533 835
		catch (RecognitionException re) {
a62d533 836
			_localctx.exception = re;
a62d533 837
			_errHandler.reportError(this, re);
a62d533 838
			_errHandler.recover(this, re);
a62d533 839
		}
a62d533 840
		finally {
a62d533 841
			exitRule();
a62d533 842
		}
a62d533 843
		return _localctx;
a62d533 844
	}
a62d533 845
a62d533 846
	public static class TypeBoundContext extends ParserRuleContext {
a62d533 847
		public TypeContext type(int i) {
a62d533 848
			return getRuleContext(TypeContext.class,i);
a62d533 849
		}
a62d533 850
		public List<TypeContext> type() {
a62d533 851
			return getRuleContexts(TypeContext.class);
a62d533 852
		}
a62d533 853
		public TypeBoundContext(ParserRuleContext parent, int invokingState) {
a62d533 854
			super(parent, invokingState);
a62d533 855
		}
a62d533 856
		@Override public int getRuleIndex() { return RULE_typeBound; }
a62d533 857
		@Override
a62d533 858
		public void enterRule(ParseTreeListener listener) {
a62d533 859
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeBound(this);
a62d533 860
		}
a62d533 861
		@Override
a62d533 862
		public void exitRule(ParseTreeListener listener) {
a62d533 863
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeBound(this);
a62d533 864
		}
a62d533 865
	}
a62d533 866
a62d533 867
	public final TypeBoundContext typeBound() throws RecognitionException {
a62d533 868
		TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState());
a62d533 869
		enterRule(_localctx, 20, RULE_typeBound);
a62d533 870
		int _la;
a62d533 871
		try {
a62d533 872
			enterOuterAlt(_localctx, 1);
a62d533 873
			{
a62d533 874
			setState(314); type();
a62d533 875
			setState(319);
a62d533 876
			_errHandler.sync(this);
a62d533 877
			_la = _input.LA(1);
a62d533 878
			while (_la==BITAND) {
a62d533 879
				{
a62d533 880
				{
a62d533 881
				setState(315); match(BITAND);
a62d533 882
				setState(316); type();
a62d533 883
				}
a62d533 884
				}
a62d533 885
				setState(321);
a62d533 886
				_errHandler.sync(this);
a62d533 887
				_la = _input.LA(1);
a62d533 888
			}
a62d533 889
			}
a62d533 890
		}
a62d533 891
		catch (RecognitionException re) {
a62d533 892
			_localctx.exception = re;
a62d533 893
			_errHandler.reportError(this, re);
a62d533 894
			_errHandler.recover(this, re);
a62d533 895
		}
a62d533 896
		finally {
a62d533 897
			exitRule();
a62d533 898
		}
a62d533 899
		return _localctx;
a62d533 900
	}
a62d533 901
a62d533 902
	public static class EnumDeclarationContext extends ParserRuleContext {
a62d533 903
		public TerminalNode ENUM() { return getToken(JavaParser.ENUM, 0); }
a62d533 904
		public TypeListContext typeList() {
a62d533 905
			return getRuleContext(TypeListContext.class,0);
a62d533 906
		}
a62d533 907
		public EnumConstantsContext enumConstants() {
a62d533 908
			return getRuleContext(EnumConstantsContext.class,0);
a62d533 909
		}
a62d533 910
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 911
		public EnumBodyDeclarationsContext enumBodyDeclarations() {
a62d533 912
			return getRuleContext(EnumBodyDeclarationsContext.class,0);
a62d533 913
		}
a62d533 914
		public EnumDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 915
			super(parent, invokingState);
a62d533 916
		}
a62d533 917
		@Override public int getRuleIndex() { return RULE_enumDeclaration; }
a62d533 918
		@Override
a62d533 919
		public void enterRule(ParseTreeListener listener) {
a62d533 920
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumDeclaration(this);
a62d533 921
		}
a62d533 922
		@Override
a62d533 923
		public void exitRule(ParseTreeListener listener) {
a62d533 924
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumDeclaration(this);
a62d533 925
		}
a62d533 926
	}
a62d533 927
a62d533 928
	public final EnumDeclarationContext enumDeclaration() throws RecognitionException {
a62d533 929
		EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState());
a62d533 930
		enterRule(_localctx, 22, RULE_enumDeclaration);
a62d533 931
		int _la;
a62d533 932
		try {
a62d533 933
			enterOuterAlt(_localctx, 1);
a62d533 934
			{
a62d533 935
			setState(322); match(ENUM);
a62d533 936
			setState(323); match(Identifier);
a62d533 937
			setState(326);
a62d533 938
			_la = _input.LA(1);
a62d533 939
			if (_la==IMPLEMENTS) {
a62d533 940
				{
a62d533 941
				setState(324); match(IMPLEMENTS);
a62d533 942
				setState(325); typeList();
a62d533 943
				}
a62d533 944
			}
a62d533 945
a62d533 946
			setState(328); match(LBRACE);
a62d533 947
			setState(330);
a62d533 948
			_la = _input.LA(1);
a62d533 949
			if (_la==Identifier || _la==AT) {
a62d533 950
				{
a62d533 951
				setState(329); enumConstants();
a62d533 952
				}
a62d533 953
			}
a62d533 954
a62d533 955
			setState(333);
a62d533 956
			_la = _input.LA(1);
a62d533 957
			if (_la==COMMA) {
a62d533 958
				{
a62d533 959
				setState(332); match(COMMA);
a62d533 960
				}
a62d533 961
			}
a62d533 962
a62d533 963
			setState(336);
a62d533 964
			_la = _input.LA(1);
a62d533 965
			if (_la==SEMI) {
a62d533 966
				{
a62d533 967
				setState(335); enumBodyDeclarations();
a62d533 968
				}
a62d533 969
			}
a62d533 970
a62d533 971
			setState(338); match(RBRACE);
a62d533 972
			}
a62d533 973
		}
a62d533 974
		catch (RecognitionException re) {
a62d533 975
			_localctx.exception = re;
a62d533 976
			_errHandler.reportError(this, re);
a62d533 977
			_errHandler.recover(this, re);
a62d533 978
		}
a62d533 979
		finally {
a62d533 980
			exitRule();
a62d533 981
		}
a62d533 982
		return _localctx;
a62d533 983
	}
a62d533 984
a62d533 985
	public static class EnumConstantsContext extends ParserRuleContext {
a62d533 986
		public List<EnumConstantContext> enumConstant() {
a62d533 987
			return getRuleContexts(EnumConstantContext.class);
a62d533 988
		}
a62d533 989
		public EnumConstantContext enumConstant(int i) {
a62d533 990
			return getRuleContext(EnumConstantContext.class,i);
a62d533 991
		}
a62d533 992
		public EnumConstantsContext(ParserRuleContext parent, int invokingState) {
a62d533 993
			super(parent, invokingState);
a62d533 994
		}
a62d533 995
		@Override public int getRuleIndex() { return RULE_enumConstants; }
a62d533 996
		@Override
a62d533 997
		public void enterRule(ParseTreeListener listener) {
a62d533 998
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstants(this);
a62d533 999
		}
a62d533 1000
		@Override
a62d533 1001
		public void exitRule(ParseTreeListener listener) {
a62d533 1002
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstants(this);
a62d533 1003
		}
a62d533 1004
	}
a62d533 1005
a62d533 1006
	public final EnumConstantsContext enumConstants() throws RecognitionException {
a62d533 1007
		EnumConstantsContext _localctx = new EnumConstantsContext(_ctx, getState());
a62d533 1008
		enterRule(_localctx, 24, RULE_enumConstants);
a62d533 1009
		try {
a62d533 1010
			int _alt;
a62d533 1011
			enterOuterAlt(_localctx, 1);
a62d533 1012
			{
a62d533 1013
			setState(340); enumConstant();
a62d533 1014
			setState(345);
a62d533 1015
			_errHandler.sync(this);
a62d533 1016
			_alt = getInterpreter().adaptivePredict(_input,24,_ctx);
a62d533 1017
			while ( _alt!=2 && _alt!=-1 ) {
a62d533 1018
				if ( _alt==1 ) {
a62d533 1019
					{
a62d533 1020
					{
a62d533 1021
					setState(341); match(COMMA);
a62d533 1022
					setState(342); enumConstant();
a62d533 1023
					}
a62d533 1024
					} 
a62d533 1025
				}
a62d533 1026
				setState(347);
a62d533 1027
				_errHandler.sync(this);
a62d533 1028
				_alt = getInterpreter().adaptivePredict(_input,24,_ctx);
a62d533 1029
			}
a62d533 1030
			}
a62d533 1031
		}
a62d533 1032
		catch (RecognitionException re) {
a62d533 1033
			_localctx.exception = re;
a62d533 1034
			_errHandler.reportError(this, re);
a62d533 1035
			_errHandler.recover(this, re);
a62d533 1036
		}
a62d533 1037
		finally {
a62d533 1038
			exitRule();
a62d533 1039
		}
a62d533 1040
		return _localctx;
a62d533 1041
	}
a62d533 1042
a62d533 1043
	public static class EnumConstantContext extends ParserRuleContext {
a62d533 1044
		public AnnotationContext annotation(int i) {
a62d533 1045
			return getRuleContext(AnnotationContext.class,i);
a62d533 1046
		}
a62d533 1047
		public ClassBodyContext classBody() {
a62d533 1048
			return getRuleContext(ClassBodyContext.class,0);
a62d533 1049
		}
a62d533 1050
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 1051
		public List<AnnotationContext> annotation() {
a62d533 1052
			return getRuleContexts(AnnotationContext.class);
a62d533 1053
		}
a62d533 1054
		public ArgumentsContext arguments() {
a62d533 1055
			return getRuleContext(ArgumentsContext.class,0);
a62d533 1056
		}
a62d533 1057
		public EnumConstantContext(ParserRuleContext parent, int invokingState) {
a62d533 1058
			super(parent, invokingState);
a62d533 1059
		}
a62d533 1060
		@Override public int getRuleIndex() { return RULE_enumConstant; }
a62d533 1061
		@Override
a62d533 1062
		public void enterRule(ParseTreeListener listener) {
a62d533 1063
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstant(this);
a62d533 1064
		}
a62d533 1065
		@Override
a62d533 1066
		public void exitRule(ParseTreeListener listener) {
a62d533 1067
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstant(this);
a62d533 1068
		}
a62d533 1069
	}
a62d533 1070
a62d533 1071
	public final EnumConstantContext enumConstant() throws RecognitionException {
a62d533 1072
		EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState());
a62d533 1073
		enterRule(_localctx, 26, RULE_enumConstant);
a62d533 1074
		int _la;
a62d533 1075
		try {
a62d533 1076
			enterOuterAlt(_localctx, 1);
a62d533 1077
			{
a62d533 1078
			setState(351);
a62d533 1079
			_errHandler.sync(this);
a62d533 1080
			_la = _input.LA(1);
a62d533 1081
			while (_la==AT) {
a62d533 1082
				{
a62d533 1083
				{
a62d533 1084
				setState(348); annotation();
a62d533 1085
				}
a62d533 1086
				}
a62d533 1087
				setState(353);
a62d533 1088
				_errHandler.sync(this);
a62d533 1089
				_la = _input.LA(1);
a62d533 1090
			}
a62d533 1091
			setState(354); match(Identifier);
a62d533 1092
			setState(356);
a62d533 1093
			_la = _input.LA(1);
a62d533 1094
			if (_la==LPAREN) {
a62d533 1095
				{
a62d533 1096
				setState(355); arguments();
a62d533 1097
				}
a62d533 1098
			}
a62d533 1099
a62d533 1100
			setState(359);
a62d533 1101
			_la = _input.LA(1);
a62d533 1102
			if (_la==LBRACE) {
a62d533 1103
				{
a62d533 1104
				setState(358); classBody();
a62d533 1105
				}
a62d533 1106
			}
a62d533 1107
a62d533 1108
			}
a62d533 1109
		}
a62d533 1110
		catch (RecognitionException re) {
a62d533 1111
			_localctx.exception = re;
a62d533 1112
			_errHandler.reportError(this, re);
a62d533 1113
			_errHandler.recover(this, re);
a62d533 1114
		}
a62d533 1115
		finally {
a62d533 1116
			exitRule();
a62d533 1117
		}
a62d533 1118
		return _localctx;
a62d533 1119
	}
a62d533 1120
a62d533 1121
	public static class EnumBodyDeclarationsContext extends ParserRuleContext {
a62d533 1122
		public ClassBodyDeclarationContext classBodyDeclaration(int i) {
a62d533 1123
			return getRuleContext(ClassBodyDeclarationContext.class,i);
a62d533 1124
		}
a62d533 1125
		public List<ClassBodyDeclarationContext> classBodyDeclaration() {
a62d533 1126
			return getRuleContexts(ClassBodyDeclarationContext.class);
a62d533 1127
		}
a62d533 1128
		public EnumBodyDeclarationsContext(ParserRuleContext parent, int invokingState) {
a62d533 1129
			super(parent, invokingState);
a62d533 1130
		}
a62d533 1131
		@Override public int getRuleIndex() { return RULE_enumBodyDeclarations; }
a62d533 1132
		@Override
a62d533 1133
		public void enterRule(ParseTreeListener listener) {
a62d533 1134
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumBodyDeclarations(this);
a62d533 1135
		}
a62d533 1136
		@Override
a62d533 1137
		public void exitRule(ParseTreeListener listener) {
a62d533 1138
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumBodyDeclarations(this);
a62d533 1139
		}
a62d533 1140
	}
a62d533 1141
a62d533 1142
	public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException {
a62d533 1143
		EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState());
a62d533 1144
		enterRule(_localctx, 28, RULE_enumBodyDeclarations);
a62d533 1145
		int _la;
a62d533 1146
		try {
a62d533 1147
			enterOuterAlt(_localctx, 1);
a62d533 1148
			{
a62d533 1149
			setState(361); match(SEMI);
a62d533 1150
			setState(365);
a62d533 1151
			_errHandler.sync(this);
a62d533 1152
			_la = _input.LA(1);
a62d533 1153
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 1154
				{
a62d533 1155
				{
a62d533 1156
				setState(362); classBodyDeclaration();
a62d533 1157
				}
a62d533 1158
				}
a62d533 1159
				setState(367);
a62d533 1160
				_errHandler.sync(this);
a62d533 1161
				_la = _input.LA(1);
a62d533 1162
			}
a62d533 1163
			}
a62d533 1164
		}
a62d533 1165
		catch (RecognitionException re) {
a62d533 1166
			_localctx.exception = re;
a62d533 1167
			_errHandler.reportError(this, re);
a62d533 1168
			_errHandler.recover(this, re);
a62d533 1169
		}
a62d533 1170
		finally {
a62d533 1171
			exitRule();
a62d533 1172
		}
a62d533 1173
		return _localctx;
a62d533 1174
	}
a62d533 1175
a62d533 1176
	public static class InterfaceDeclarationContext extends ParserRuleContext {
a62d533 1177
		public TypeParametersContext typeParameters() {
a62d533 1178
			return getRuleContext(TypeParametersContext.class,0);
a62d533 1179
		}
a62d533 1180
		public TypeListContext typeList() {
a62d533 1181
			return getRuleContext(TypeListContext.class,0);
a62d533 1182
		}
a62d533 1183
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 1184
		public InterfaceBodyContext interfaceBody() {
a62d533 1185
			return getRuleContext(InterfaceBodyContext.class,0);
a62d533 1186
		}
a62d533 1187
		public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1188
			super(parent, invokingState);
a62d533 1189
		}
a62d533 1190
		@Override public int getRuleIndex() { return RULE_interfaceDeclaration; }
a62d533 1191
		@Override
a62d533 1192
		public void enterRule(ParseTreeListener listener) {
a62d533 1193
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceDeclaration(this);
a62d533 1194
		}
a62d533 1195
		@Override
a62d533 1196
		public void exitRule(ParseTreeListener listener) {
a62d533 1197
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceDeclaration(this);
a62d533 1198
		}
a62d533 1199
	}
a62d533 1200
a62d533 1201
	public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException {
a62d533 1202
		InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState());
a62d533 1203
		enterRule(_localctx, 30, RULE_interfaceDeclaration);
a62d533 1204
		int _la;
a62d533 1205
		try {
a62d533 1206
			enterOuterAlt(_localctx, 1);
a62d533 1207
			{
a62d533 1208
			setState(368); match(INTERFACE);
a62d533 1209
			setState(369); match(Identifier);
a62d533 1210
			setState(371);
a62d533 1211
			_la = _input.LA(1);
a62d533 1212
			if (_la==LT) {
a62d533 1213
				{
a62d533 1214
				setState(370); typeParameters();
a62d533 1215
				}
a62d533 1216
			}
a62d533 1217
a62d533 1218
			setState(375);
a62d533 1219
			_la = _input.LA(1);
a62d533 1220
			if (_la==EXTENDS) {
a62d533 1221
				{
a62d533 1222
				setState(373); match(EXTENDS);
a62d533 1223
				setState(374); typeList();
a62d533 1224
				}
a62d533 1225
			}
a62d533 1226
a62d533 1227
			setState(377); interfaceBody();
a62d533 1228
			}
a62d533 1229
		}
a62d533 1230
		catch (RecognitionException re) {
a62d533 1231
			_localctx.exception = re;
a62d533 1232
			_errHandler.reportError(this, re);
a62d533 1233
			_errHandler.recover(this, re);
a62d533 1234
		}
a62d533 1235
		finally {
a62d533 1236
			exitRule();
a62d533 1237
		}
a62d533 1238
		return _localctx;
a62d533 1239
	}
a62d533 1240
a62d533 1241
	public static class TypeListContext extends ParserRuleContext {
a62d533 1242
		public TypeContext type(int i) {
a62d533 1243
			return getRuleContext(TypeContext.class,i);
a62d533 1244
		}
a62d533 1245
		public List<TypeContext> type() {
a62d533 1246
			return getRuleContexts(TypeContext.class);
a62d533 1247
		}
a62d533 1248
		public TypeListContext(ParserRuleContext parent, int invokingState) {
a62d533 1249
			super(parent, invokingState);
a62d533 1250
		}
a62d533 1251
		@Override public int getRuleIndex() { return RULE_typeList; }
a62d533 1252
		@Override
a62d533 1253
		public void enterRule(ParseTreeListener listener) {
a62d533 1254
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeList(this);
a62d533 1255
		}
a62d533 1256
		@Override
a62d533 1257
		public void exitRule(ParseTreeListener listener) {
a62d533 1258
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeList(this);
a62d533 1259
		}
a62d533 1260
	}
a62d533 1261
a62d533 1262
	public final TypeListContext typeList() throws RecognitionException {
a62d533 1263
		TypeListContext _localctx = new TypeListContext(_ctx, getState());
a62d533 1264
		enterRule(_localctx, 32, RULE_typeList);
a62d533 1265
		int _la;
a62d533 1266
		try {
a62d533 1267
			enterOuterAlt(_localctx, 1);
a62d533 1268
			{
a62d533 1269
			setState(379); type();
a62d533 1270
			setState(384);
a62d533 1271
			_errHandler.sync(this);
a62d533 1272
			_la = _input.LA(1);
a62d533 1273
			while (_la==COMMA) {
a62d533 1274
				{
a62d533 1275
				{
a62d533 1276
				setState(380); match(COMMA);
a62d533 1277
				setState(381); type();
a62d533 1278
				}
a62d533 1279
				}
a62d533 1280
				setState(386);
a62d533 1281
				_errHandler.sync(this);
a62d533 1282
				_la = _input.LA(1);
a62d533 1283
			}
a62d533 1284
			}
a62d533 1285
		}
a62d533 1286
		catch (RecognitionException re) {
a62d533 1287
			_localctx.exception = re;
a62d533 1288
			_errHandler.reportError(this, re);
a62d533 1289
			_errHandler.recover(this, re);
a62d533 1290
		}
a62d533 1291
		finally {
a62d533 1292
			exitRule();
a62d533 1293
		}
a62d533 1294
		return _localctx;
a62d533 1295
	}
a62d533 1296
a62d533 1297
	public static class ClassBodyContext extends ParserRuleContext {
a62d533 1298
		public ClassBodyDeclarationContext classBodyDeclaration(int i) {
a62d533 1299
			return getRuleContext(ClassBodyDeclarationContext.class,i);
a62d533 1300
		}
a62d533 1301
		public List<ClassBodyDeclarationContext> classBodyDeclaration() {
a62d533 1302
			return getRuleContexts(ClassBodyDeclarationContext.class);
a62d533 1303
		}
a62d533 1304
		public ClassBodyContext(ParserRuleContext parent, int invokingState) {
a62d533 1305
			super(parent, invokingState);
a62d533 1306
		}
a62d533 1307
		@Override public int getRuleIndex() { return RULE_classBody; }
a62d533 1308
		@Override
a62d533 1309
		public void enterRule(ParseTreeListener listener) {
a62d533 1310
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassBody(this);
a62d533 1311
		}
a62d533 1312
		@Override
a62d533 1313
		public void exitRule(ParseTreeListener listener) {
a62d533 1314
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassBody(this);
a62d533 1315
		}
a62d533 1316
	}
a62d533 1317
a62d533 1318
	public final ClassBodyContext classBody() throws RecognitionException {
a62d533 1319
		ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState());
a62d533 1320
		enterRule(_localctx, 34, RULE_classBody);
a62d533 1321
		int _la;
a62d533 1322
		try {
a62d533 1323
			enterOuterAlt(_localctx, 1);
a62d533 1324
			{
a62d533 1325
			setState(387); match(LBRACE);
a62d533 1326
			setState(391);
a62d533 1327
			_errHandler.sync(this);
a62d533 1328
			_la = _input.LA(1);
a62d533 1329
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 1330
				{
a62d533 1331
				{
a62d533 1332
				setState(388); classBodyDeclaration();
a62d533 1333
				}
a62d533 1334
				}
a62d533 1335
				setState(393);
a62d533 1336
				_errHandler.sync(this);
a62d533 1337
				_la = _input.LA(1);
a62d533 1338
			}
a62d533 1339
			setState(394); match(RBRACE);
a62d533 1340
			}
a62d533 1341
		}
a62d533 1342
		catch (RecognitionException re) {
a62d533 1343
			_localctx.exception = re;
a62d533 1344
			_errHandler.reportError(this, re);
a62d533 1345
			_errHandler.recover(this, re);
a62d533 1346
		}
a62d533 1347
		finally {
a62d533 1348
			exitRule();
a62d533 1349
		}
a62d533 1350
		return _localctx;
a62d533 1351
	}
a62d533 1352
a62d533 1353
	public static class InterfaceBodyContext extends ParserRuleContext {
a62d533 1354
		public InterfaceBodyDeclarationContext interfaceBodyDeclaration(int i) {
a62d533 1355
			return getRuleContext(InterfaceBodyDeclarationContext.class,i);
a62d533 1356
		}
a62d533 1357
		public List<InterfaceBodyDeclarationContext> interfaceBodyDeclaration() {
a62d533 1358
			return getRuleContexts(InterfaceBodyDeclarationContext.class);
a62d533 1359
		}
a62d533 1360
		public InterfaceBodyContext(ParserRuleContext parent, int invokingState) {
a62d533 1361
			super(parent, invokingState);
a62d533 1362
		}
a62d533 1363
		@Override public int getRuleIndex() { return RULE_interfaceBody; }
a62d533 1364
		@Override
a62d533 1365
		public void enterRule(ParseTreeListener listener) {
a62d533 1366
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceBody(this);
a62d533 1367
		}
a62d533 1368
		@Override
a62d533 1369
		public void exitRule(ParseTreeListener listener) {
a62d533 1370
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceBody(this);
a62d533 1371
		}
a62d533 1372
	}
a62d533 1373
a62d533 1374
	public final InterfaceBodyContext interfaceBody() throws RecognitionException {
a62d533 1375
		InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState());
a62d533 1376
		enterRule(_localctx, 36, RULE_interfaceBody);
a62d533 1377
		int _la;
a62d533 1378
		try {
a62d533 1379
			enterOuterAlt(_localctx, 1);
a62d533 1380
			{
a62d533 1381
			setState(396); match(LBRACE);
a62d533 1382
			setState(400);
a62d533 1383
			_errHandler.sync(this);
a62d533 1384
			_la = _input.LA(1);
a62d533 1385
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 1386
				{
a62d533 1387
				{
a62d533 1388
				setState(397); interfaceBodyDeclaration();
a62d533 1389
				}
a62d533 1390
				}
a62d533 1391
				setState(402);
a62d533 1392
				_errHandler.sync(this);
a62d533 1393
				_la = _input.LA(1);
a62d533 1394
			}
a62d533 1395
			setState(403); match(RBRACE);
a62d533 1396
			}
a62d533 1397
		}
a62d533 1398
		catch (RecognitionException re) {
a62d533 1399
			_localctx.exception = re;
a62d533 1400
			_errHandler.reportError(this, re);
a62d533 1401
			_errHandler.recover(this, re);
a62d533 1402
		}
a62d533 1403
		finally {
a62d533 1404
			exitRule();
a62d533 1405
		}
a62d533 1406
		return _localctx;
a62d533 1407
	}
a62d533 1408
a62d533 1409
	public static class ClassBodyDeclarationContext extends ParserRuleContext {
a62d533 1410
		public MemberDeclarationContext memberDeclaration() {
a62d533 1411
			return getRuleContext(MemberDeclarationContext.class,0);
a62d533 1412
		}
a62d533 1413
		public List<ModifierContext> modifier() {
a62d533 1414
			return getRuleContexts(ModifierContext.class);
a62d533 1415
		}
a62d533 1416
		public BlockContext block() {
a62d533 1417
			return getRuleContext(BlockContext.class,0);
a62d533 1418
		}
a62d533 1419
		public ModifierContext modifier(int i) {
a62d533 1420
			return getRuleContext(ModifierContext.class,i);
a62d533 1421
		}
a62d533 1422
		public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1423
			super(parent, invokingState);
a62d533 1424
		}
a62d533 1425
		@Override public int getRuleIndex() { return RULE_classBodyDeclaration; }
a62d533 1426
		@Override
a62d533 1427
		public void enterRule(ParseTreeListener listener) {
a62d533 1428
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassBodyDeclaration(this);
a62d533 1429
		}
a62d533 1430
		@Override
a62d533 1431
		public void exitRule(ParseTreeListener listener) {
a62d533 1432
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassBodyDeclaration(this);
a62d533 1433
		}
a62d533 1434
	}
a62d533 1435
a62d533 1436
	public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException {
a62d533 1437
		ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState());
a62d533 1438
		enterRule(_localctx, 38, RULE_classBodyDeclaration);
a62d533 1439
		int _la;
a62d533 1440
		try {
a62d533 1441
			int _alt;
a62d533 1442
			setState(417);
a62d533 1443
			switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) {
a62d533 1444
			case 1:
a62d533 1445
				enterOuterAlt(_localctx, 1);
a62d533 1446
				{
a62d533 1447
				setState(405); match(SEMI);
a62d533 1448
				}
a62d533 1449
				break;
a62d533 1450
a62d533 1451
			case 2:
a62d533 1452
				enterOuterAlt(_localctx, 2);
a62d533 1453
				{
a62d533 1454
				setState(407);
a62d533 1455
				_la = _input.LA(1);
a62d533 1456
				if (_la==STATIC) {
a62d533 1457
					{
a62d533 1458
					setState(406); match(STATIC);
a62d533 1459
					}
a62d533 1460
				}
a62d533 1461
a62d533 1462
				setState(409); block();
a62d533 1463
				}
a62d533 1464
				break;
a62d533 1465
a62d533 1466
			case 3:
a62d533 1467
				enterOuterAlt(_localctx, 3);
a62d533 1468
				{
a62d533 1469
				setState(413);
a62d533 1470
				_errHandler.sync(this);
a62d533 1471
				_alt = getInterpreter().adaptivePredict(_input,35,_ctx);
a62d533 1472
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 1473
					if ( _alt==1 ) {
a62d533 1474
						{
a62d533 1475
						{
a62d533 1476
						setState(410); modifier();
a62d533 1477
						}
a62d533 1478
						} 
a62d533 1479
					}
a62d533 1480
					setState(415);
a62d533 1481
					_errHandler.sync(this);
a62d533 1482
					_alt = getInterpreter().adaptivePredict(_input,35,_ctx);
a62d533 1483
				}
a62d533 1484
				setState(416); memberDeclaration();
a62d533 1485
				}
a62d533 1486
				break;
a62d533 1487
			}
a62d533 1488
		}
a62d533 1489
		catch (RecognitionException re) {
a62d533 1490
			_localctx.exception = re;
a62d533 1491
			_errHandler.reportError(this, re);
a62d533 1492
			_errHandler.recover(this, re);
a62d533 1493
		}
a62d533 1494
		finally {
a62d533 1495
			exitRule();
a62d533 1496
		}
a62d533 1497
		return _localctx;
a62d533 1498
	}
a62d533 1499
a62d533 1500
	public static class MemberDeclarationContext extends ParserRuleContext {
a62d533 1501
		public InterfaceDeclarationContext interfaceDeclaration() {
a62d533 1502
			return getRuleContext(InterfaceDeclarationContext.class,0);
a62d533 1503
		}
a62d533 1504
		public AnnotationTypeDeclarationContext annotationTypeDeclaration() {
a62d533 1505
			return getRuleContext(AnnotationTypeDeclarationContext.class,0);
a62d533 1506
		}
a62d533 1507
		public ConstructorDeclarationContext constructorDeclaration() {
a62d533 1508
			return getRuleContext(ConstructorDeclarationContext.class,0);
a62d533 1509
		}
a62d533 1510
		public FieldDeclarationContext fieldDeclaration() {
a62d533 1511
			return getRuleContext(FieldDeclarationContext.class,0);
a62d533 1512
		}
a62d533 1513
		public EnumDeclarationContext enumDeclaration() {
a62d533 1514
			return getRuleContext(EnumDeclarationContext.class,0);
a62d533 1515
		}
a62d533 1516
		public GenericMethodDeclarationContext genericMethodDeclaration() {
a62d533 1517
			return getRuleContext(GenericMethodDeclarationContext.class,0);
a62d533 1518
		}
a62d533 1519
		public MethodDeclarationContext methodDeclaration() {
a62d533 1520
			return getRuleContext(MethodDeclarationContext.class,0);
a62d533 1521
		}
a62d533 1522
		public GenericConstructorDeclarationContext genericConstructorDeclaration() {
a62d533 1523
			return getRuleContext(GenericConstructorDeclarationContext.class,0);
a62d533 1524
		}
a62d533 1525
		public ClassDeclarationContext classDeclaration() {
a62d533 1526
			return getRuleContext(ClassDeclarationContext.class,0);
a62d533 1527
		}
a62d533 1528
		public MemberDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1529
			super(parent, invokingState);
a62d533 1530
		}
a62d533 1531
		@Override public int getRuleIndex() { return RULE_memberDeclaration; }
a62d533 1532
		@Override
a62d533 1533
		public void enterRule(ParseTreeListener listener) {
a62d533 1534
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMemberDeclaration(this);
a62d533 1535
		}
a62d533 1536
		@Override
a62d533 1537
		public void exitRule(ParseTreeListener listener) {
a62d533 1538
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMemberDeclaration(this);
a62d533 1539
		}
a62d533 1540
	}
a62d533 1541
a62d533 1542
	public final MemberDeclarationContext memberDeclaration() throws RecognitionException {
a62d533 1543
		MemberDeclarationContext _localctx = new MemberDeclarationContext(_ctx, getState());
a62d533 1544
		enterRule(_localctx, 40, RULE_memberDeclaration);
a62d533 1545
		try {
a62d533 1546
			setState(428);
a62d533 1547
			switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) {
a62d533 1548
			case 1:
a62d533 1549
				enterOuterAlt(_localctx, 1);
a62d533 1550
				{
a62d533 1551
				setState(419); methodDeclaration();
a62d533 1552
				}
a62d533 1553
				break;
a62d533 1554
a62d533 1555
			case 2:
a62d533 1556
				enterOuterAlt(_localctx, 2);
a62d533 1557
				{
a62d533 1558
				setState(420); genericMethodDeclaration();
a62d533 1559
				}
a62d533 1560
				break;
a62d533 1561
a62d533 1562
			case 3:
a62d533 1563
				enterOuterAlt(_localctx, 3);
a62d533 1564
				{
a62d533 1565
				setState(421); fieldDeclaration();
a62d533 1566
				}
a62d533 1567
				break;
a62d533 1568
a62d533 1569
			case 4:
a62d533 1570
				enterOuterAlt(_localctx, 4);
a62d533 1571
				{
a62d533 1572
				setState(422); constructorDeclaration();
a62d533 1573
				}
a62d533 1574
				break;
a62d533 1575
a62d533 1576
			case 5:
a62d533 1577
				enterOuterAlt(_localctx, 5);
a62d533 1578
				{
a62d533 1579
				setState(423); genericConstructorDeclaration();
a62d533 1580
				}
a62d533 1581
				break;
a62d533 1582
a62d533 1583
			case 6:
a62d533 1584
				enterOuterAlt(_localctx, 6);
a62d533 1585
				{
a62d533 1586
				setState(424); interfaceDeclaration();
a62d533 1587
				}
a62d533 1588
				break;
a62d533 1589
a62d533 1590
			case 7:
a62d533 1591
				enterOuterAlt(_localctx, 7);
a62d533 1592
				{
a62d533 1593
				setState(425); annotationTypeDeclaration();
a62d533 1594
				}
a62d533 1595
				break;
a62d533 1596
a62d533 1597
			case 8:
a62d533 1598
				enterOuterAlt(_localctx, 8);
a62d533 1599
				{
a62d533 1600
				setState(426); classDeclaration();
a62d533 1601
				}
a62d533 1602
				break;
a62d533 1603
a62d533 1604
			case 9:
a62d533 1605
				enterOuterAlt(_localctx, 9);
a62d533 1606
				{
a62d533 1607
				setState(427); enumDeclaration();
a62d533 1608
				}
a62d533 1609
				break;
a62d533 1610
			}
a62d533 1611
		}
a62d533 1612
		catch (RecognitionException re) {
a62d533 1613
			_localctx.exception = re;
a62d533 1614
			_errHandler.reportError(this, re);
a62d533 1615
			_errHandler.recover(this, re);
a62d533 1616
		}
a62d533 1617
		finally {
a62d533 1618
			exitRule();
a62d533 1619
		}
a62d533 1620
		return _localctx;
a62d533 1621
	}
a62d533 1622
a62d533 1623
	public static class MethodDeclarationContext extends ParserRuleContext {
a62d533 1624
		public MethodBodyContext methodBody() {
a62d533 1625
			return getRuleContext(MethodBodyContext.class,0);
a62d533 1626
		}
a62d533 1627
		public FormalParametersContext formalParameters() {
a62d533 1628
			return getRuleContext(FormalParametersContext.class,0);
a62d533 1629
		}
a62d533 1630
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 1631
		public TypeContext type() {
a62d533 1632
			return getRuleContext(TypeContext.class,0);
a62d533 1633
		}
a62d533 1634
		public QualifiedNameListContext qualifiedNameList() {
a62d533 1635
			return getRuleContext(QualifiedNameListContext.class,0);
a62d533 1636
		}
a62d533 1637
		public MethodDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1638
			super(parent, invokingState);
a62d533 1639
		}
a62d533 1640
		@Override public int getRuleIndex() { return RULE_methodDeclaration; }
a62d533 1641
		@Override
a62d533 1642
		public void enterRule(ParseTreeListener listener) {
a62d533 1643
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMethodDeclaration(this);
a62d533 1644
		}
a62d533 1645
		@Override
a62d533 1646
		public void exitRule(ParseTreeListener listener) {
a62d533 1647
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMethodDeclaration(this);
a62d533 1648
		}
a62d533 1649
	}
a62d533 1650
a62d533 1651
	public final MethodDeclarationContext methodDeclaration() throws RecognitionException {
a62d533 1652
		MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState());
a62d533 1653
		enterRule(_localctx, 42, RULE_methodDeclaration);
a62d533 1654
		int _la;
a62d533 1655
		try {
a62d533 1656
			enterOuterAlt(_localctx, 1);
a62d533 1657
			{
a62d533 1658
			setState(432);
a62d533 1659
			switch (_input.LA(1)) {
a62d533 1660
			case BOOLEAN:
a62d533 1661
			case BYTE:
a62d533 1662
			case CHAR:
a62d533 1663
			case DOUBLE:
a62d533 1664
			case FLOAT:
a62d533 1665
			case INT:
a62d533 1666
			case LONG:
a62d533 1667
			case SHORT:
a62d533 1668
			case Identifier:
a62d533 1669
				{
a62d533 1670
				setState(430); type();
a62d533 1671
				}
a62d533 1672
				break;
a62d533 1673
			case VOID:
a62d533 1674
				{
a62d533 1675
				setState(431); match(VOID);
a62d533 1676
				}
a62d533 1677
				break;
a62d533 1678
			default:
a62d533 1679
				throw new NoViableAltException(this);
a62d533 1680
			}
a62d533 1681
			setState(434); match(Identifier);
a62d533 1682
			setState(435); formalParameters();
a62d533 1683
			setState(440);
a62d533 1684
			_errHandler.sync(this);
a62d533 1685
			_la = _input.LA(1);
a62d533 1686
			while (_la==LBRACK) {
a62d533 1687
				{
a62d533 1688
				{
a62d533 1689
				setState(436); match(LBRACK);
a62d533 1690
				setState(437); match(RBRACK);
a62d533 1691
				}
a62d533 1692
				}
a62d533 1693
				setState(442);
a62d533 1694
				_errHandler.sync(this);
a62d533 1695
				_la = _input.LA(1);
a62d533 1696
			}
a62d533 1697
			setState(445);
a62d533 1698
			_la = _input.LA(1);
a62d533 1699
			if (_la==THROWS) {
a62d533 1700
				{
a62d533 1701
				setState(443); match(THROWS);
a62d533 1702
				setState(444); qualifiedNameList();
a62d533 1703
				}
a62d533 1704
			}
a62d533 1705
a62d533 1706
			setState(449);
a62d533 1707
			switch (_input.LA(1)) {
a62d533 1708
			case LBRACE:
a62d533 1709
				{
a62d533 1710
				setState(447); methodBody();
a62d533 1711
				}
a62d533 1712
				break;
a62d533 1713
			case SEMI:
a62d533 1714
				{
a62d533 1715
				setState(448); match(SEMI);
a62d533 1716
				}
a62d533 1717
				break;
a62d533 1718
			default:
a62d533 1719
				throw new NoViableAltException(this);
a62d533 1720
			}
a62d533 1721
			}
a62d533 1722
		}
a62d533 1723
		catch (RecognitionException re) {
a62d533 1724
			_localctx.exception = re;
a62d533 1725
			_errHandler.reportError(this, re);
a62d533 1726
			_errHandler.recover(this, re);
a62d533 1727
		}
a62d533 1728
		finally {
a62d533 1729
			exitRule();
a62d533 1730
		}
a62d533 1731
		return _localctx;
a62d533 1732
	}
a62d533 1733
a62d533 1734
	public static class GenericMethodDeclarationContext extends ParserRuleContext {
a62d533 1735
		public TypeParametersContext typeParameters() {
a62d533 1736
			return getRuleContext(TypeParametersContext.class,0);
a62d533 1737
		}
a62d533 1738
		public MethodDeclarationContext methodDeclaration() {
a62d533 1739
			return getRuleContext(MethodDeclarationContext.class,0);
a62d533 1740
		}
a62d533 1741
		public GenericMethodDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1742
			super(parent, invokingState);
a62d533 1743
		}
a62d533 1744
		@Override public int getRuleIndex() { return RULE_genericMethodDeclaration; }
a62d533 1745
		@Override
a62d533 1746
		public void enterRule(ParseTreeListener listener) {
a62d533 1747
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericMethodDeclaration(this);
a62d533 1748
		}
a62d533 1749
		@Override
a62d533 1750
		public void exitRule(ParseTreeListener listener) {
a62d533 1751
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericMethodDeclaration(this);
a62d533 1752
		}
a62d533 1753
	}
a62d533 1754
a62d533 1755
	public final GenericMethodDeclarationContext genericMethodDeclaration() throws RecognitionException {
a62d533 1756
		GenericMethodDeclarationContext _localctx = new GenericMethodDeclarationContext(_ctx, getState());
a62d533 1757
		enterRule(_localctx, 44, RULE_genericMethodDeclaration);
a62d533 1758
		try {
a62d533 1759
			enterOuterAlt(_localctx, 1);
a62d533 1760
			{
a62d533 1761
			setState(451); typeParameters();
a62d533 1762
			setState(452); methodDeclaration();
a62d533 1763
			}
a62d533 1764
		}
a62d533 1765
		catch (RecognitionException re) {
a62d533 1766
			_localctx.exception = re;
a62d533 1767
			_errHandler.reportError(this, re);
a62d533 1768
			_errHandler.recover(this, re);
a62d533 1769
		}
a62d533 1770
		finally {
a62d533 1771
			exitRule();
a62d533 1772
		}
a62d533 1773
		return _localctx;
a62d533 1774
	}
a62d533 1775
a62d533 1776
	public static class ConstructorDeclarationContext extends ParserRuleContext {
a62d533 1777
		public FormalParametersContext formalParameters() {
a62d533 1778
			return getRuleContext(FormalParametersContext.class,0);
a62d533 1779
		}
a62d533 1780
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 1781
		public ConstructorBodyContext constructorBody() {
a62d533 1782
			return getRuleContext(ConstructorBodyContext.class,0);
a62d533 1783
		}
a62d533 1784
		public QualifiedNameListContext qualifiedNameList() {
a62d533 1785
			return getRuleContext(QualifiedNameListContext.class,0);
a62d533 1786
		}
a62d533 1787
		public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1788
			super(parent, invokingState);
a62d533 1789
		}
a62d533 1790
		@Override public int getRuleIndex() { return RULE_constructorDeclaration; }
a62d533 1791
		@Override
a62d533 1792
		public void enterRule(ParseTreeListener listener) {
a62d533 1793
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstructorDeclaration(this);
a62d533 1794
		}
a62d533 1795
		@Override
a62d533 1796
		public void exitRule(ParseTreeListener listener) {
a62d533 1797
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstructorDeclaration(this);
a62d533 1798
		}
a62d533 1799
	}
a62d533 1800
a62d533 1801
	public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException {
a62d533 1802
		ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState());
a62d533 1803
		enterRule(_localctx, 46, RULE_constructorDeclaration);
a62d533 1804
		int _la;
a62d533 1805
		try {
a62d533 1806
			enterOuterAlt(_localctx, 1);
a62d533 1807
			{
a62d533 1808
			setState(454); match(Identifier);
a62d533 1809
			setState(455); formalParameters();
a62d533 1810
			setState(458);
a62d533 1811
			_la = _input.LA(1);
a62d533 1812
			if (_la==THROWS) {
a62d533 1813
				{
a62d533 1814
				setState(456); match(THROWS);
a62d533 1815
				setState(457); qualifiedNameList();
a62d533 1816
				}
a62d533 1817
			}
a62d533 1818
a62d533 1819
			setState(460); constructorBody();
a62d533 1820
			}
a62d533 1821
		}
a62d533 1822
		catch (RecognitionException re) {
a62d533 1823
			_localctx.exception = re;
a62d533 1824
			_errHandler.reportError(this, re);
a62d533 1825
			_errHandler.recover(this, re);
a62d533 1826
		}
a62d533 1827
		finally {
a62d533 1828
			exitRule();
a62d533 1829
		}
a62d533 1830
		return _localctx;
a62d533 1831
	}
a62d533 1832
a62d533 1833
	public static class GenericConstructorDeclarationContext extends ParserRuleContext {
a62d533 1834
		public TypeParametersContext typeParameters() {
a62d533 1835
			return getRuleContext(TypeParametersContext.class,0);
a62d533 1836
		}
a62d533 1837
		public ConstructorDeclarationContext constructorDeclaration() {
a62d533 1838
			return getRuleContext(ConstructorDeclarationContext.class,0);
a62d533 1839
		}
a62d533 1840
		public GenericConstructorDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1841
			super(parent, invokingState);
a62d533 1842
		}
a62d533 1843
		@Override public int getRuleIndex() { return RULE_genericConstructorDeclaration; }
a62d533 1844
		@Override
a62d533 1845
		public void enterRule(ParseTreeListener listener) {
a62d533 1846
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericConstructorDeclaration(this);
a62d533 1847
		}
a62d533 1848
		@Override
a62d533 1849
		public void exitRule(ParseTreeListener listener) {
a62d533 1850
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericConstructorDeclaration(this);
a62d533 1851
		}
a62d533 1852
	}
a62d533 1853
a62d533 1854
	public final GenericConstructorDeclarationContext genericConstructorDeclaration() throws RecognitionException {
a62d533 1855
		GenericConstructorDeclarationContext _localctx = new GenericConstructorDeclarationContext(_ctx, getState());
a62d533 1856
		enterRule(_localctx, 48, RULE_genericConstructorDeclaration);
a62d533 1857
		try {
a62d533 1858
			enterOuterAlt(_localctx, 1);
a62d533 1859
			{
a62d533 1860
			setState(462); typeParameters();
a62d533 1861
			setState(463); constructorDeclaration();
a62d533 1862
			}
a62d533 1863
		}
a62d533 1864
		catch (RecognitionException re) {
a62d533 1865
			_localctx.exception = re;
a62d533 1866
			_errHandler.reportError(this, re);
a62d533 1867
			_errHandler.recover(this, re);
a62d533 1868
		}
a62d533 1869
		finally {
a62d533 1870
			exitRule();
a62d533 1871
		}
a62d533 1872
		return _localctx;
a62d533 1873
	}
a62d533 1874
a62d533 1875
	public static class FieldDeclarationContext extends ParserRuleContext {
a62d533 1876
		public VariableDeclaratorsContext variableDeclarators() {
a62d533 1877
			return getRuleContext(VariableDeclaratorsContext.class,0);
a62d533 1878
		}
a62d533 1879
		public TypeContext type() {
a62d533 1880
			return getRuleContext(TypeContext.class,0);
a62d533 1881
		}
a62d533 1882
		public FieldDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1883
			super(parent, invokingState);
a62d533 1884
		}
a62d533 1885
		@Override public int getRuleIndex() { return RULE_fieldDeclaration; }
a62d533 1886
		@Override
a62d533 1887
		public void enterRule(ParseTreeListener listener) {
a62d533 1888
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFieldDeclaration(this);
a62d533 1889
		}
a62d533 1890
		@Override
a62d533 1891
		public void exitRule(ParseTreeListener listener) {
a62d533 1892
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFieldDeclaration(this);
a62d533 1893
		}
a62d533 1894
	}
a62d533 1895
a62d533 1896
	public final FieldDeclarationContext fieldDeclaration() throws RecognitionException {
a62d533 1897
		FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState());
a62d533 1898
		enterRule(_localctx, 50, RULE_fieldDeclaration);
a62d533 1899
		try {
a62d533 1900
			enterOuterAlt(_localctx, 1);
a62d533 1901
			{
a62d533 1902
			setState(465); type();
a62d533 1903
			setState(466); variableDeclarators();
a62d533 1904
			setState(467); match(SEMI);
a62d533 1905
			}
a62d533 1906
		}
a62d533 1907
		catch (RecognitionException re) {
a62d533 1908
			_localctx.exception = re;
a62d533 1909
			_errHandler.reportError(this, re);
a62d533 1910
			_errHandler.recover(this, re);
a62d533 1911
		}
a62d533 1912
		finally {
a62d533 1913
			exitRule();
a62d533 1914
		}
a62d533 1915
		return _localctx;
a62d533 1916
	}
a62d533 1917
a62d533 1918
	public static class InterfaceBodyDeclarationContext extends ParserRuleContext {
a62d533 1919
		public InterfaceMemberDeclarationContext interfaceMemberDeclaration() {
a62d533 1920
			return getRuleContext(InterfaceMemberDeclarationContext.class,0);
a62d533 1921
		}
a62d533 1922
		public List<ModifierContext> modifier() {
a62d533 1923
			return getRuleContexts(ModifierContext.class);
a62d533 1924
		}
a62d533 1925
		public ModifierContext modifier(int i) {
a62d533 1926
			return getRuleContext(ModifierContext.class,i);
a62d533 1927
		}
a62d533 1928
		public InterfaceBodyDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 1929
			super(parent, invokingState);
a62d533 1930
		}
a62d533 1931
		@Override public int getRuleIndex() { return RULE_interfaceBodyDeclaration; }
a62d533 1932
		@Override
a62d533 1933
		public void enterRule(ParseTreeListener listener) {
a62d533 1934
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceBodyDeclaration(this);
a62d533 1935
		}
a62d533 1936
		@Override
a62d533 1937
		public void exitRule(ParseTreeListener listener) {
a62d533 1938
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceBodyDeclaration(this);
a62d533 1939
		}
a62d533 1940
	}
a62d533 1941
a62d533 1942
	public final InterfaceBodyDeclarationContext interfaceBodyDeclaration() throws RecognitionException {
a62d533 1943
		InterfaceBodyDeclarationContext _localctx = new InterfaceBodyDeclarationContext(_ctx, getState());
a62d533 1944
		enterRule(_localctx, 52, RULE_interfaceBodyDeclaration);
a62d533 1945
		try {
a62d533 1946
			int _alt;
a62d533 1947
			setState(477);
a62d533 1948
			switch (_input.LA(1)) {
a62d533 1949
			case ABSTRACT:
a62d533 1950
			case BOOLEAN:
a62d533 1951
			case BYTE:
a62d533 1952
			case CHAR:
a62d533 1953
			case CLASS:
a62d533 1954
			case DOUBLE:
a62d533 1955
			case ENUM:
a62d533 1956
			case FINAL:
a62d533 1957
			case FLOAT:
a62d533 1958
			case INT:
a62d533 1959
			case INTERFACE:
a62d533 1960
			case LONG:
a62d533 1961
			case NATIVE:
a62d533 1962
			case PRIVATE:
a62d533 1963
			case PROTECTED:
a62d533 1964
			case PUBLIC:
a62d533 1965
			case SHORT:
a62d533 1966
			case STATIC:
a62d533 1967
			case STRICTFP:
a62d533 1968
			case SYNCHRONIZED:
a62d533 1969
			case TRANSIENT:
a62d533 1970
			case VOID:
a62d533 1971
			case VOLATILE:
a62d533 1972
			case LT:
a62d533 1973
			case Identifier:
a62d533 1974
			case AT:
a62d533 1975
				enterOuterAlt(_localctx, 1);
a62d533 1976
				{
a62d533 1977
				setState(472);
a62d533 1978
				_errHandler.sync(this);
a62d533 1979
				_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
a62d533 1980
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 1981
					if ( _alt==1 ) {
a62d533 1982
						{
a62d533 1983
						{
a62d533 1984
						setState(469); modifier();
a62d533 1985
						}
a62d533 1986
						} 
a62d533 1987
					}
a62d533 1988
					setState(474);
a62d533 1989
					_errHandler.sync(this);
a62d533 1990
					_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
a62d533 1991
				}
a62d533 1992
				setState(475); interfaceMemberDeclaration();
a62d533 1993
				}
a62d533 1994
				break;
a62d533 1995
			case SEMI:
a62d533 1996
				enterOuterAlt(_localctx, 2);
a62d533 1997
				{
a62d533 1998
				setState(476); match(SEMI);
a62d533 1999
				}
a62d533 2000
				break;
a62d533 2001
			default:
a62d533 2002
				throw new NoViableAltException(this);
a62d533 2003
			}
a62d533 2004
		}
a62d533 2005
		catch (RecognitionException re) {
a62d533 2006
			_localctx.exception = re;
a62d533 2007
			_errHandler.reportError(this, re);
a62d533 2008
			_errHandler.recover(this, re);
a62d533 2009
		}
a62d533 2010
		finally {
a62d533 2011
			exitRule();
a62d533 2012
		}
a62d533 2013
		return _localctx;
a62d533 2014
	}
a62d533 2015
a62d533 2016
	public static class InterfaceMemberDeclarationContext extends ParserRuleContext {
a62d533 2017
		public GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() {
a62d533 2018
			return getRuleContext(GenericInterfaceMethodDeclarationContext.class,0);
a62d533 2019
		}
a62d533 2020
		public InterfaceMethodDeclarationContext interfaceMethodDeclaration() {
a62d533 2021
			return getRuleContext(InterfaceMethodDeclarationContext.class,0);
a62d533 2022
		}
a62d533 2023
		public InterfaceDeclarationContext interfaceDeclaration() {
a62d533 2024
			return getRuleContext(InterfaceDeclarationContext.class,0);
a62d533 2025
		}
a62d533 2026
		public AnnotationTypeDeclarationContext annotationTypeDeclaration() {
a62d533 2027
			return getRuleContext(AnnotationTypeDeclarationContext.class,0);
a62d533 2028
		}
a62d533 2029
		public EnumDeclarationContext enumDeclaration() {
a62d533 2030
			return getRuleContext(EnumDeclarationContext.class,0);
a62d533 2031
		}
a62d533 2032
		public ConstDeclarationContext constDeclaration() {
a62d533 2033
			return getRuleContext(ConstDeclarationContext.class,0);
a62d533 2034
		}
a62d533 2035
		public ClassDeclarationContext classDeclaration() {
a62d533 2036
			return getRuleContext(ClassDeclarationContext.class,0);
a62d533 2037
		}
a62d533 2038
		public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 2039
			super(parent, invokingState);
a62d533 2040
		}
a62d533 2041
		@Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; }
a62d533 2042
		@Override
a62d533 2043
		public void enterRule(ParseTreeListener listener) {
a62d533 2044
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceMemberDeclaration(this);
a62d533 2045
		}
a62d533 2046
		@Override
a62d533 2047
		public void exitRule(ParseTreeListener listener) {
a62d533 2048
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceMemberDeclaration(this);
a62d533 2049
		}
a62d533 2050
	}
a62d533 2051
a62d533 2052
	public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException {
a62d533 2053
		InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState());
a62d533 2054
		enterRule(_localctx, 54, RULE_interfaceMemberDeclaration);
a62d533 2055
		try {
a62d533 2056
			setState(486);
a62d533 2057
			switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
a62d533 2058
			case 1:
a62d533 2059
				enterOuterAlt(_localctx, 1);
a62d533 2060
				{
a62d533 2061
				setState(479); constDeclaration();
a62d533 2062
				}
a62d533 2063
				break;
a62d533 2064
a62d533 2065
			case 2:
a62d533 2066
				enterOuterAlt(_localctx, 2);
a62d533 2067
				{
a62d533 2068
				setState(480); interfaceMethodDeclaration();
a62d533 2069
				}
a62d533 2070
				break;
a62d533 2071
a62d533 2072
			case 3:
a62d533 2073
				enterOuterAlt(_localctx, 3);
a62d533 2074
				{
a62d533 2075
				setState(481); genericInterfaceMethodDeclaration();
a62d533 2076
				}
a62d533 2077
				break;
a62d533 2078
a62d533 2079
			case 4:
a62d533 2080
				enterOuterAlt(_localctx, 4);
a62d533 2081
				{
a62d533 2082
				setState(482); interfaceDeclaration();
a62d533 2083
				}
a62d533 2084
				break;
a62d533 2085
a62d533 2086
			case 5:
a62d533 2087
				enterOuterAlt(_localctx, 5);
a62d533 2088
				{
a62d533 2089
				setState(483); annotationTypeDeclaration();
a62d533 2090
				}
a62d533 2091
				break;
a62d533 2092
a62d533 2093
			case 6:
a62d533 2094
				enterOuterAlt(_localctx, 6);
a62d533 2095
				{
a62d533 2096
				setState(484); classDeclaration();
a62d533 2097
				}
a62d533 2098
				break;
a62d533 2099
a62d533 2100
			case 7:
a62d533 2101
				enterOuterAlt(_localctx, 7);
a62d533 2102
				{
a62d533 2103
				setState(485); enumDeclaration();
a62d533 2104
				}
a62d533 2105
				break;
a62d533 2106
			}
a62d533 2107
		}
a62d533 2108
		catch (RecognitionException re) {
a62d533 2109
			_localctx.exception = re;
a62d533 2110
			_errHandler.reportError(this, re);
a62d533 2111
			_errHandler.recover(this, re);
a62d533 2112
		}
a62d533 2113
		finally {
a62d533 2114
			exitRule();
a62d533 2115
		}
a62d533 2116
		return _localctx;
a62d533 2117
	}
a62d533 2118
a62d533 2119
	public static class ConstDeclarationContext extends ParserRuleContext {
a62d533 2120
		public List<ConstantDeclaratorContext> constantDeclarator() {
a62d533 2121
			return getRuleContexts(ConstantDeclaratorContext.class);
a62d533 2122
		}
a62d533 2123
		public ConstantDeclaratorContext constantDeclarator(int i) {
a62d533 2124
			return getRuleContext(ConstantDeclaratorContext.class,i);
a62d533 2125
		}
a62d533 2126
		public TypeContext type() {
a62d533 2127
			return getRuleContext(TypeContext.class,0);
a62d533 2128
		}
a62d533 2129
		public ConstDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 2130
			super(parent, invokingState);
a62d533 2131
		}
a62d533 2132
		@Override public int getRuleIndex() { return RULE_constDeclaration; }
a62d533 2133
		@Override
a62d533 2134
		public void enterRule(ParseTreeListener listener) {
a62d533 2135
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstDeclaration(this);
a62d533 2136
		}
a62d533 2137
		@Override
a62d533 2138
		public void exitRule(ParseTreeListener listener) {
a62d533 2139
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstDeclaration(this);
a62d533 2140
		}
a62d533 2141
	}
a62d533 2142
a62d533 2143
	public final ConstDeclarationContext constDeclaration() throws RecognitionException {
a62d533 2144
		ConstDeclarationContext _localctx = new ConstDeclarationContext(_ctx, getState());
a62d533 2145
		enterRule(_localctx, 56, RULE_constDeclaration);
a62d533 2146
		int _la;
a62d533 2147
		try {
a62d533 2148
			enterOuterAlt(_localctx, 1);
a62d533 2149
			{
a62d533 2150
			setState(488); type();
a62d533 2151
			setState(489); constantDeclarator();
a62d533 2152
			setState(494);
a62d533 2153
			_errHandler.sync(this);
a62d533 2154
			_la = _input.LA(1);
a62d533 2155
			while (_la==COMMA) {
a62d533 2156
				{
a62d533 2157
				{
a62d533 2158
				setState(490); match(COMMA);
a62d533 2159
				setState(491); constantDeclarator();
a62d533 2160
				}
a62d533 2161
				}
a62d533 2162
				setState(496);
a62d533 2163
				_errHandler.sync(this);
a62d533 2164
				_la = _input.LA(1);
a62d533 2165
			}
a62d533 2166
			setState(497); match(SEMI);
a62d533 2167
			}
a62d533 2168
		}
a62d533 2169
		catch (RecognitionException re) {
a62d533 2170
			_localctx.exception = re;
a62d533 2171
			_errHandler.reportError(this, re);
a62d533 2172
			_errHandler.recover(this, re);
a62d533 2173
		}
a62d533 2174
		finally {
a62d533 2175
			exitRule();
a62d533 2176
		}
a62d533 2177
		return _localctx;
a62d533 2178
	}
a62d533 2179
a62d533 2180
	public static class ConstantDeclaratorContext extends ParserRuleContext {
a62d533 2181
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 2182
		public VariableInitializerContext variableInitializer() {
a62d533 2183
			return getRuleContext(VariableInitializerContext.class,0);
a62d533 2184
		}
a62d533 2185
		public ConstantDeclaratorContext(ParserRuleContext parent, int invokingState) {
a62d533 2186
			super(parent, invokingState);
a62d533 2187
		}
a62d533 2188
		@Override public int getRuleIndex() { return RULE_constantDeclarator; }
a62d533 2189
		@Override
a62d533 2190
		public void enterRule(ParseTreeListener listener) {
a62d533 2191
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstantDeclarator(this);
a62d533 2192
		}
a62d533 2193
		@Override
a62d533 2194
		public void exitRule(ParseTreeListener listener) {
a62d533 2195
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstantDeclarator(this);
a62d533 2196
		}
a62d533 2197
	}
a62d533 2198
a62d533 2199
	public final ConstantDeclaratorContext constantDeclarator() throws RecognitionException {
a62d533 2200
		ConstantDeclaratorContext _localctx = new ConstantDeclaratorContext(_ctx, getState());
a62d533 2201
		enterRule(_localctx, 58, RULE_constantDeclarator);
a62d533 2202
		int _la;
a62d533 2203
		try {
a62d533 2204
			enterOuterAlt(_localctx, 1);
a62d533 2205
			{
a62d533 2206
			setState(499); match(Identifier);
a62d533 2207
			setState(504);
a62d533 2208
			_errHandler.sync(this);
a62d533 2209
			_la = _input.LA(1);
a62d533 2210
			while (_la==LBRACK) {
a62d533 2211
				{
a62d533 2212
				{
a62d533 2213
				setState(500); match(LBRACK);
a62d533 2214
				setState(501); match(RBRACK);
a62d533 2215
				}
a62d533 2216
				}
a62d533 2217
				setState(506);
a62d533 2218
				_errHandler.sync(this);
a62d533 2219
				_la = _input.LA(1);
a62d533 2220
			}
a62d533 2221
			setState(507); match(ASSIGN);
a62d533 2222
			setState(508); variableInitializer();
a62d533 2223
			}
a62d533 2224
		}
a62d533 2225
		catch (RecognitionException re) {
a62d533 2226
			_localctx.exception = re;
a62d533 2227
			_errHandler.reportError(this, re);
a62d533 2228
			_errHandler.recover(this, re);
a62d533 2229
		}
a62d533 2230
		finally {
a62d533 2231
			exitRule();
a62d533 2232
		}
a62d533 2233
		return _localctx;
a62d533 2234
	}
a62d533 2235
a62d533 2236
	public static class InterfaceMethodDeclarationContext extends ParserRuleContext {
a62d533 2237
		public FormalParametersContext formalParameters() {
a62d533 2238
			return getRuleContext(FormalParametersContext.class,0);
a62d533 2239
		}
a62d533 2240
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 2241
		public TypeContext type() {
a62d533 2242
			return getRuleContext(TypeContext.class,0);
a62d533 2243
		}
a62d533 2244
		public QualifiedNameListContext qualifiedNameList() {
a62d533 2245
			return getRuleContext(QualifiedNameListContext.class,0);
a62d533 2246
		}
a62d533 2247
		public InterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 2248
			super(parent, invokingState);
a62d533 2249
		}
a62d533 2250
		@Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; }
a62d533 2251
		@Override
a62d533 2252
		public void enterRule(ParseTreeListener listener) {
a62d533 2253
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInterfaceMethodDeclaration(this);
a62d533 2254
		}
a62d533 2255
		@Override
a62d533 2256
		public void exitRule(ParseTreeListener listener) {
a62d533 2257
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInterfaceMethodDeclaration(this);
a62d533 2258
		}
a62d533 2259
	}
a62d533 2260
a62d533 2261
	public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException {
a62d533 2262
		InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState());
a62d533 2263
		enterRule(_localctx, 60, RULE_interfaceMethodDeclaration);
a62d533 2264
		int _la;
a62d533 2265
		try {
a62d533 2266
			enterOuterAlt(_localctx, 1);
a62d533 2267
			{
a62d533 2268
			setState(512);
a62d533 2269
			switch (_input.LA(1)) {
a62d533 2270
			case BOOLEAN:
a62d533 2271
			case BYTE:
a62d533 2272
			case CHAR:
a62d533 2273
			case DOUBLE:
a62d533 2274
			case FLOAT:
a62d533 2275
			case INT:
a62d533 2276
			case LONG:
a62d533 2277
			case SHORT:
a62d533 2278
			case Identifier:
a62d533 2279
				{
a62d533 2280
				setState(510); type();
a62d533 2281
				}
a62d533 2282
				break;
a62d533 2283
			case VOID:
a62d533 2284
				{
a62d533 2285
				setState(511); match(VOID);
a62d533 2286
				}
a62d533 2287
				break;
a62d533 2288
			default:
a62d533 2289
				throw new NoViableAltException(this);
a62d533 2290
			}
a62d533 2291
			setState(514); match(Identifier);
a62d533 2292
			setState(515); formalParameters();
a62d533 2293
			setState(520);
a62d533 2294
			_errHandler.sync(this);
a62d533 2295
			_la = _input.LA(1);
a62d533 2296
			while (_la==LBRACK) {
a62d533 2297
				{
a62d533 2298
				{
a62d533 2299
				setState(516); match(LBRACK);
a62d533 2300
				setState(517); match(RBRACK);
a62d533 2301
				}
a62d533 2302
				}
a62d533 2303
				setState(522);
a62d533 2304
				_errHandler.sync(this);
a62d533 2305
				_la = _input.LA(1);
a62d533 2306
			}
a62d533 2307
			setState(525);
a62d533 2308
			_la = _input.LA(1);
a62d533 2309
			if (_la==THROWS) {
a62d533 2310
				{
a62d533 2311
				setState(523); match(THROWS);
a62d533 2312
				setState(524); qualifiedNameList();
a62d533 2313
				}
a62d533 2314
			}
a62d533 2315
a62d533 2316
			setState(527); match(SEMI);
a62d533 2317
			}
a62d533 2318
		}
a62d533 2319
		catch (RecognitionException re) {
a62d533 2320
			_localctx.exception = re;
a62d533 2321
			_errHandler.reportError(this, re);
a62d533 2322
			_errHandler.recover(this, re);
a62d533 2323
		}
a62d533 2324
		finally {
a62d533 2325
			exitRule();
a62d533 2326
		}
a62d533 2327
		return _localctx;
a62d533 2328
	}
a62d533 2329
a62d533 2330
	public static class GenericInterfaceMethodDeclarationContext extends ParserRuleContext {
a62d533 2331
		public InterfaceMethodDeclarationContext interfaceMethodDeclaration() {
a62d533 2332
			return getRuleContext(InterfaceMethodDeclarationContext.class,0);
a62d533 2333
		}
a62d533 2334
		public TypeParametersContext typeParameters() {
a62d533 2335
			return getRuleContext(TypeParametersContext.class,0);
a62d533 2336
		}
a62d533 2337
		public GenericInterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 2338
			super(parent, invokingState);
a62d533 2339
		}
a62d533 2340
		@Override public int getRuleIndex() { return RULE_genericInterfaceMethodDeclaration; }
a62d533 2341
		@Override
a62d533 2342
		public void enterRule(ParseTreeListener listener) {
a62d533 2343
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterGenericInterfaceMethodDeclaration(this);
a62d533 2344
		}
a62d533 2345
		@Override
a62d533 2346
		public void exitRule(ParseTreeListener listener) {
a62d533 2347
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitGenericInterfaceMethodDeclaration(this);
a62d533 2348
		}
a62d533 2349
	}
a62d533 2350
a62d533 2351
	public final GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() throws RecognitionException {
a62d533 2352
		GenericInterfaceMethodDeclarationContext _localctx = new GenericInterfaceMethodDeclarationContext(_ctx, getState());
a62d533 2353
		enterRule(_localctx, 62, RULE_genericInterfaceMethodDeclaration);
a62d533 2354
		try {
a62d533 2355
			enterOuterAlt(_localctx, 1);
a62d533 2356
			{
a62d533 2357
			setState(529); typeParameters();
a62d533 2358
			setState(530); interfaceMethodDeclaration();
a62d533 2359
			}
a62d533 2360
		}
a62d533 2361
		catch (RecognitionException re) {
a62d533 2362
			_localctx.exception = re;
a62d533 2363
			_errHandler.reportError(this, re);
a62d533 2364
			_errHandler.recover(this, re);
a62d533 2365
		}
a62d533 2366
		finally {
a62d533 2367
			exitRule();
a62d533 2368
		}
a62d533 2369
		return _localctx;
a62d533 2370
	}
a62d533 2371
a62d533 2372
	public static class VariableDeclaratorsContext extends ParserRuleContext {
a62d533 2373
		public VariableDeclaratorContext variableDeclarator(int i) {
a62d533 2374
			return getRuleContext(VariableDeclaratorContext.class,i);
a62d533 2375
		}
a62d533 2376
		public List<VariableDeclaratorContext> variableDeclarator() {
a62d533 2377
			return getRuleContexts(VariableDeclaratorContext.class);
a62d533 2378
		}
a62d533 2379
		public VariableDeclaratorsContext(ParserRuleContext parent, int invokingState) {
a62d533 2380
			super(parent, invokingState);
a62d533 2381
		}
a62d533 2382
		@Override public int getRuleIndex() { return RULE_variableDeclarators; }
a62d533 2383
		@Override
a62d533 2384
		public void enterRule(ParseTreeListener listener) {
a62d533 2385
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclarators(this);
a62d533 2386
		}
a62d533 2387
		@Override
a62d533 2388
		public void exitRule(ParseTreeListener listener) {
a62d533 2389
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclarators(this);
a62d533 2390
		}
a62d533 2391
	}
a62d533 2392
a62d533 2393
	public final VariableDeclaratorsContext variableDeclarators() throws RecognitionException {
a62d533 2394
		VariableDeclaratorsContext _localctx = new VariableDeclaratorsContext(_ctx, getState());
a62d533 2395
		enterRule(_localctx, 64, RULE_variableDeclarators);
a62d533 2396
		int _la;
a62d533 2397
		try {
a62d533 2398
			enterOuterAlt(_localctx, 1);
a62d533 2399
			{
a62d533 2400
			setState(532); variableDeclarator();
a62d533 2401
			setState(537);
a62d533 2402
			_errHandler.sync(this);
a62d533 2403
			_la = _input.LA(1);
a62d533 2404
			while (_la==COMMA) {
a62d533 2405
				{
a62d533 2406
				{
a62d533 2407
				setState(533); match(COMMA);
a62d533 2408
				setState(534); variableDeclarator();
a62d533 2409
				}
a62d533 2410
				}
a62d533 2411
				setState(539);
a62d533 2412
				_errHandler.sync(this);
a62d533 2413
				_la = _input.LA(1);
a62d533 2414
			}
a62d533 2415
			}
a62d533 2416
		}
a62d533 2417
		catch (RecognitionException re) {
a62d533 2418
			_localctx.exception = re;
a62d533 2419
			_errHandler.reportError(this, re);
a62d533 2420
			_errHandler.recover(this, re);
a62d533 2421
		}
a62d533 2422
		finally {
a62d533 2423
			exitRule();
a62d533 2424
		}
a62d533 2425
		return _localctx;
a62d533 2426
	}
a62d533 2427
a62d533 2428
	public static class VariableDeclaratorContext extends ParserRuleContext {
a62d533 2429
		public VariableDeclaratorIdContext variableDeclaratorId() {
a62d533 2430
			return getRuleContext(VariableDeclaratorIdContext.class,0);
a62d533 2431
		}
a62d533 2432
		public VariableInitializerContext variableInitializer() {
a62d533 2433
			return getRuleContext(VariableInitializerContext.class,0);
a62d533 2434
		}
a62d533 2435
		public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) {
a62d533 2436
			super(parent, invokingState);
a62d533 2437
		}
a62d533 2438
		@Override public int getRuleIndex() { return RULE_variableDeclarator; }
a62d533 2439
		@Override
a62d533 2440
		public void enterRule(ParseTreeListener listener) {
a62d533 2441
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclarator(this);
a62d533 2442
		}
a62d533 2443
		@Override
a62d533 2444
		public void exitRule(ParseTreeListener listener) {
a62d533 2445
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclarator(this);
a62d533 2446
		}
a62d533 2447
	}
a62d533 2448
a62d533 2449
	public final VariableDeclaratorContext variableDeclarator() throws RecognitionException {
a62d533 2450
		VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState());
a62d533 2451
		enterRule(_localctx, 66, RULE_variableDeclarator);
a62d533 2452
		int _la;
a62d533 2453
		try {
a62d533 2454
			enterOuterAlt(_localctx, 1);
a62d533 2455
			{
a62d533 2456
			setState(540); variableDeclaratorId();
a62d533 2457
			setState(543);
a62d533 2458
			_la = _input.LA(1);
a62d533 2459
			if (_la==ASSIGN) {
a62d533 2460
				{
a62d533 2461
				setState(541); match(ASSIGN);
a62d533 2462
				setState(542); variableInitializer();
a62d533 2463
				}
a62d533 2464
			}
a62d533 2465
a62d533 2466
			}
a62d533 2467
		}
a62d533 2468
		catch (RecognitionException re) {
a62d533 2469
			_localctx.exception = re;
a62d533 2470
			_errHandler.reportError(this, re);
a62d533 2471
			_errHandler.recover(this, re);
a62d533 2472
		}
a62d533 2473
		finally {
a62d533 2474
			exitRule();
a62d533 2475
		}
a62d533 2476
		return _localctx;
a62d533 2477
	}
a62d533 2478
a62d533 2479
	public static class VariableDeclaratorIdContext extends ParserRuleContext {
a62d533 2480
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 2481
		public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) {
a62d533 2482
			super(parent, invokingState);
a62d533 2483
		}
a62d533 2484
		@Override public int getRuleIndex() { return RULE_variableDeclaratorId; }
a62d533 2485
		@Override
a62d533 2486
		public void enterRule(ParseTreeListener listener) {
a62d533 2487
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableDeclaratorId(this);
a62d533 2488
		}
a62d533 2489
		@Override
a62d533 2490
		public void exitRule(ParseTreeListener listener) {
a62d533 2491
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableDeclaratorId(this);
a62d533 2492
		}
a62d533 2493
	}
a62d533 2494
a62d533 2495
	public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException {
a62d533 2496
		VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState());
a62d533 2497
		enterRule(_localctx, 68, RULE_variableDeclaratorId);
a62d533 2498
		int _la;
a62d533 2499
		try {
a62d533 2500
			enterOuterAlt(_localctx, 1);
a62d533 2501
			{
a62d533 2502
			setState(545); match(Identifier);
a62d533 2503
			setState(550);
a62d533 2504
			_errHandler.sync(this);
a62d533 2505
			_la = _input.LA(1);
a62d533 2506
			while (_la==LBRACK) {
a62d533 2507
				{
a62d533 2508
				{
a62d533 2509
				setState(546); match(LBRACK);
a62d533 2510
				setState(547); match(RBRACK);
a62d533 2511
				}
a62d533 2512
				}
a62d533 2513
				setState(552);
a62d533 2514
				_errHandler.sync(this);
a62d533 2515
				_la = _input.LA(1);
a62d533 2516
			}
a62d533 2517
			}
a62d533 2518
		}
a62d533 2519
		catch (RecognitionException re) {
a62d533 2520
			_localctx.exception = re;
a62d533 2521
			_errHandler.reportError(this, re);
a62d533 2522
			_errHandler.recover(this, re);
a62d533 2523
		}
a62d533 2524
		finally {
a62d533 2525
			exitRule();
a62d533 2526
		}
a62d533 2527
		return _localctx;
a62d533 2528
	}
a62d533 2529
a62d533 2530
	public static class VariableInitializerContext extends ParserRuleContext {
a62d533 2531
		public ExpressionContext expression() {
a62d533 2532
			return getRuleContext(ExpressionContext.class,0);
a62d533 2533
		}
a62d533 2534
		public ArrayInitializerContext arrayInitializer() {
a62d533 2535
			return getRuleContext(ArrayInitializerContext.class,0);
a62d533 2536
		}
a62d533 2537
		public VariableInitializerContext(ParserRuleContext parent, int invokingState) {
a62d533 2538
			super(parent, invokingState);
a62d533 2539
		}
a62d533 2540
		@Override public int getRuleIndex() { return RULE_variableInitializer; }
a62d533 2541
		@Override
a62d533 2542
		public void enterRule(ParseTreeListener listener) {
a62d533 2543
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterVariableInitializer(this);
a62d533 2544
		}
a62d533 2545
		@Override
a62d533 2546
		public void exitRule(ParseTreeListener listener) {
a62d533 2547
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitVariableInitializer(this);
a62d533 2548
		}
a62d533 2549
	}
a62d533 2550
a62d533 2551
	public final VariableInitializerContext variableInitializer() throws RecognitionException {
a62d533 2552
		VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState());
a62d533 2553
		enterRule(_localctx, 70, RULE_variableInitializer);
a62d533 2554
		try {
a62d533 2555
			setState(555);
a62d533 2556
			switch (_input.LA(1)) {
a62d533 2557
			case LBRACE:
a62d533 2558
				enterOuterAlt(_localctx, 1);
a62d533 2559
				{
a62d533 2560
				setState(553); arrayInitializer();
a62d533 2561
				}
a62d533 2562
				break;
a62d533 2563
			case BOOLEAN:
a62d533 2564
			case BYTE:
a62d533 2565
			case CHAR:
a62d533 2566
			case DOUBLE:
a62d533 2567
			case FLOAT:
a62d533 2568
			case INT:
a62d533 2569
			case LONG:
a62d533 2570
			case NEW:
a62d533 2571
			case SHORT:
a62d533 2572
			case SUPER:
a62d533 2573
			case THIS:
a62d533 2574
			case VOID:
a62d533 2575
			case IntegerLiteral:
a62d533 2576
			case FloatingPointLiteral:
a62d533 2577
			case BooleanLiteral:
a62d533 2578
			case CharacterLiteral:
a62d533 2579
			case StringLiteral:
a62d533 2580
			case NullLiteral:
a62d533 2581
			case LPAREN:
a62d533 2582
			case LT:
a62d533 2583
			case BANG:
a62d533 2584
			case TILDE:
a62d533 2585
			case INC:
a62d533 2586
			case DEC:
a62d533 2587
			case ADD:
a62d533 2588
			case SUB:
a62d533 2589
			case Identifier:
a62d533 2590
				enterOuterAlt(_localctx, 2);
a62d533 2591
				{
a62d533 2592
				setState(554); expression(0);
a62d533 2593
				}
a62d533 2594
				break;
a62d533 2595
			default:
a62d533 2596
				throw new NoViableAltException(this);
a62d533 2597
			}
a62d533 2598
		}
a62d533 2599
		catch (RecognitionException re) {
a62d533 2600
			_localctx.exception = re;
a62d533 2601
			_errHandler.reportError(this, re);
a62d533 2602
			_errHandler.recover(this, re);
a62d533 2603
		}
a62d533 2604
		finally {
a62d533 2605
			exitRule();
a62d533 2606
		}
a62d533 2607
		return _localctx;
a62d533 2608
	}
a62d533 2609
a62d533 2610
	public static class ArrayInitializerContext extends ParserRuleContext {
a62d533 2611
		public VariableInitializerContext variableInitializer(int i) {
a62d533 2612
			return getRuleContext(VariableInitializerContext.class,i);
a62d533 2613
		}
a62d533 2614
		public List<VariableInitializerContext> variableInitializer() {
a62d533 2615
			return getRuleContexts(VariableInitializerContext.class);
a62d533 2616
		}
a62d533 2617
		public ArrayInitializerContext(ParserRuleContext parent, int invokingState) {
a62d533 2618
			super(parent, invokingState);
a62d533 2619
		}
a62d533 2620
		@Override public int getRuleIndex() { return RULE_arrayInitializer; }
a62d533 2621
		@Override
a62d533 2622
		public void enterRule(ParseTreeListener listener) {
a62d533 2623
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArrayInitializer(this);
a62d533 2624
		}
a62d533 2625
		@Override
a62d533 2626
		public void exitRule(ParseTreeListener listener) {
a62d533 2627
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArrayInitializer(this);
a62d533 2628
		}
a62d533 2629
	}
a62d533 2630
a62d533 2631
	public final ArrayInitializerContext arrayInitializer() throws RecognitionException {
a62d533 2632
		ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState());
a62d533 2633
		enterRule(_localctx, 72, RULE_arrayInitializer);
a62d533 2634
		int _la;
a62d533 2635
		try {
a62d533 2636
			int _alt;
a62d533 2637
			enterOuterAlt(_localctx, 1);
a62d533 2638
			{
a62d533 2639
			setState(557); match(LBRACE);
a62d533 2640
			setState(569);
a62d533 2641
			_la = _input.LA(1);
a62d533 2642
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 2643
				{
a62d533 2644
				setState(558); variableInitializer();
a62d533 2645
				setState(563);
a62d533 2646
				_errHandler.sync(this);
a62d533 2647
				_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
a62d533 2648
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 2649
					if ( _alt==1 ) {
a62d533 2650
						{
a62d533 2651
						{
a62d533 2652
						setState(559); match(COMMA);
a62d533 2653
						setState(560); variableInitializer();
a62d533 2654
						}
a62d533 2655
						} 
a62d533 2656
					}
a62d533 2657
					setState(565);
a62d533 2658
					_errHandler.sync(this);
a62d533 2659
					_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
a62d533 2660
				}
a62d533 2661
				setState(567);
a62d533 2662
				_la = _input.LA(1);
a62d533 2663
				if (_la==COMMA) {
a62d533 2664
					{
a62d533 2665
					setState(566); match(COMMA);
a62d533 2666
					}
a62d533 2667
				}
a62d533 2668
a62d533 2669
				}
a62d533 2670
			}
a62d533 2671
a62d533 2672
			setState(571); match(RBRACE);
a62d533 2673
			}
a62d533 2674
		}
a62d533 2675
		catch (RecognitionException re) {
a62d533 2676
			_localctx.exception = re;
a62d533 2677
			_errHandler.reportError(this, re);
a62d533 2678
			_errHandler.recover(this, re);
a62d533 2679
		}
a62d533 2680
		finally {
a62d533 2681
			exitRule();
a62d533 2682
		}
a62d533 2683
		return _localctx;
a62d533 2684
	}
a62d533 2685
a62d533 2686
	public static class EnumConstantNameContext extends ParserRuleContext {
a62d533 2687
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 2688
		public EnumConstantNameContext(ParserRuleContext parent, int invokingState) {
a62d533 2689
			super(parent, invokingState);
a62d533 2690
		}
a62d533 2691
		@Override public int getRuleIndex() { return RULE_enumConstantName; }
a62d533 2692
		@Override
a62d533 2693
		public void enterRule(ParseTreeListener listener) {
a62d533 2694
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnumConstantName(this);
a62d533 2695
		}
a62d533 2696
		@Override
a62d533 2697
		public void exitRule(ParseTreeListener listener) {
a62d533 2698
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnumConstantName(this);
a62d533 2699
		}
a62d533 2700
	}
a62d533 2701
a62d533 2702
	public final EnumConstantNameContext enumConstantName() throws RecognitionException {
a62d533 2703
		EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState());
a62d533 2704
		enterRule(_localctx, 74, RULE_enumConstantName);
a62d533 2705
		try {
a62d533 2706
			enterOuterAlt(_localctx, 1);
a62d533 2707
			{
a62d533 2708
			setState(573); match(Identifier);
a62d533 2709
			}
a62d533 2710
		}
a62d533 2711
		catch (RecognitionException re) {
a62d533 2712
			_localctx.exception = re;
a62d533 2713
			_errHandler.reportError(this, re);
a62d533 2714
			_errHandler.recover(this, re);
a62d533 2715
		}
a62d533 2716
		finally {
a62d533 2717
			exitRule();
a62d533 2718
		}
a62d533 2719
		return _localctx;
a62d533 2720
	}
a62d533 2721
a62d533 2722
	public static class TypeContext extends ParserRuleContext {
a62d533 2723
		public PrimitiveTypeContext primitiveType() {
a62d533 2724
			return getRuleContext(PrimitiveTypeContext.class,0);
a62d533 2725
		}
a62d533 2726
		public ClassOrInterfaceTypeContext classOrInterfaceType() {
a62d533 2727
			return getRuleContext(ClassOrInterfaceTypeContext.class,0);
a62d533 2728
		}
a62d533 2729
		public TypeContext(ParserRuleContext parent, int invokingState) {
a62d533 2730
			super(parent, invokingState);
a62d533 2731
		}
a62d533 2732
		@Override public int getRuleIndex() { return RULE_type; }
a62d533 2733
		@Override
a62d533 2734
		public void enterRule(ParseTreeListener listener) {
a62d533 2735
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterType(this);
a62d533 2736
		}
a62d533 2737
		@Override
a62d533 2738
		public void exitRule(ParseTreeListener listener) {
a62d533 2739
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitType(this);
a62d533 2740
		}
a62d533 2741
	}
a62d533 2742
a62d533 2743
	public final TypeContext type() throws RecognitionException {
a62d533 2744
		TypeContext _localctx = new TypeContext(_ctx, getState());
a62d533 2745
		enterRule(_localctx, 76, RULE_type);
a62d533 2746
		try {
a62d533 2747
			int _alt;
a62d533 2748
			setState(591);
a62d533 2749
			switch (_input.LA(1)) {
a62d533 2750
			case Identifier:
a62d533 2751
				enterOuterAlt(_localctx, 1);
a62d533 2752
				{
a62d533 2753
				setState(575); classOrInterfaceType();
a62d533 2754
				setState(580);
a62d533 2755
				_errHandler.sync(this);
a62d533 2756
				_alt = getInterpreter().adaptivePredict(_input,58,_ctx);
a62d533 2757
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 2758
					if ( _alt==1 ) {
a62d533 2759
						{
a62d533 2760
						{
a62d533 2761
						setState(576); match(LBRACK);
a62d533 2762
						setState(577); match(RBRACK);
a62d533 2763
						}
a62d533 2764
						} 
a62d533 2765
					}
a62d533 2766
					setState(582);
a62d533 2767
					_errHandler.sync(this);
a62d533 2768
					_alt = getInterpreter().adaptivePredict(_input,58,_ctx);
a62d533 2769
				}
a62d533 2770
				}
a62d533 2771
				break;
a62d533 2772
			case BOOLEAN:
a62d533 2773
			case BYTE:
a62d533 2774
			case CHAR:
a62d533 2775
			case DOUBLE:
a62d533 2776
			case FLOAT:
a62d533 2777
			case INT:
a62d533 2778
			case LONG:
a62d533 2779
			case SHORT:
a62d533 2780
				enterOuterAlt(_localctx, 2);
a62d533 2781
				{
a62d533 2782
				setState(583); primitiveType();
a62d533 2783
				setState(588);
a62d533 2784
				_errHandler.sync(this);
a62d533 2785
				_alt = getInterpreter().adaptivePredict(_input,59,_ctx);
a62d533 2786
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 2787
					if ( _alt==1 ) {
a62d533 2788
						{
a62d533 2789
						{
a62d533 2790
						setState(584); match(LBRACK);
a62d533 2791
						setState(585); match(RBRACK);
a62d533 2792
						}
a62d533 2793
						} 
a62d533 2794
					}
a62d533 2795
					setState(590);
a62d533 2796
					_errHandler.sync(this);
a62d533 2797
					_alt = getInterpreter().adaptivePredict(_input,59,_ctx);
a62d533 2798
				}
a62d533 2799
				}
a62d533 2800
				break;
a62d533 2801
			default:
a62d533 2802
				throw new NoViableAltException(this);
a62d533 2803
			}
a62d533 2804
		}
a62d533 2805
		catch (RecognitionException re) {
a62d533 2806
			_localctx.exception = re;
a62d533 2807
			_errHandler.reportError(this, re);
a62d533 2808
			_errHandler.recover(this, re);
a62d533 2809
		}
a62d533 2810
		finally {
a62d533 2811
			exitRule();
a62d533 2812
		}
a62d533 2813
		return _localctx;
a62d533 2814
	}
a62d533 2815
a62d533 2816
	public static class ClassOrInterfaceTypeContext extends ParserRuleContext {
a62d533 2817
		public TypeArgumentsContext typeArguments(int i) {
a62d533 2818
			return getRuleContext(TypeArgumentsContext.class,i);
a62d533 2819
		}
a62d533 2820
		public TerminalNode Identifier(int i) {
a62d533 2821
			return getToken(JavaParser.Identifier, i);
a62d533 2822
		}
a62d533 2823
		public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); }
a62d533 2824
		public List<TypeArgumentsContext> typeArguments() {
a62d533 2825
			return getRuleContexts(TypeArgumentsContext.class);
a62d533 2826
		}
a62d533 2827
		public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) {
a62d533 2828
			super(parent, invokingState);
a62d533 2829
		}
a62d533 2830
		@Override public int getRuleIndex() { return RULE_classOrInterfaceType; }
a62d533 2831
		@Override
a62d533 2832
		public void enterRule(ParseTreeListener listener) {
a62d533 2833
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassOrInterfaceType(this);
a62d533 2834
		}
a62d533 2835
		@Override
a62d533 2836
		public void exitRule(ParseTreeListener listener) {
a62d533 2837
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassOrInterfaceType(this);
a62d533 2838
		}
a62d533 2839
	}
a62d533 2840
a62d533 2841
	public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException {
a62d533 2842
		ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState());
a62d533 2843
		enterRule(_localctx, 78, RULE_classOrInterfaceType);
a62d533 2844
		try {
a62d533 2845
			int _alt;
a62d533 2846
			enterOuterAlt(_localctx, 1);
a62d533 2847
			{
a62d533 2848
			setState(593); match(Identifier);
a62d533 2849
			setState(595);
a62d533 2850
			switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) {
a62d533 2851
			case 1:
a62d533 2852
				{
a62d533 2853
				setState(594); typeArguments();
a62d533 2854
				}
a62d533 2855
				break;
a62d533 2856
			}
a62d533 2857
			setState(604);
a62d533 2858
			_errHandler.sync(this);
a62d533 2859
			_alt = getInterpreter().adaptivePredict(_input,63,_ctx);
a62d533 2860
			while ( _alt!=2 && _alt!=-1 ) {
a62d533 2861
				if ( _alt==1 ) {
a62d533 2862
					{
a62d533 2863
					{
a62d533 2864
					setState(597); match(DOT);
a62d533 2865
					setState(598); match(Identifier);
a62d533 2866
					setState(600);
a62d533 2867
					switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) {
a62d533 2868
					case 1:
a62d533 2869
						{
a62d533 2870
						setState(599); typeArguments();
a62d533 2871
						}
a62d533 2872
						break;
a62d533 2873
					}
a62d533 2874
					}
a62d533 2875
					} 
a62d533 2876
				}
a62d533 2877
				setState(606);
a62d533 2878
				_errHandler.sync(this);
a62d533 2879
				_alt = getInterpreter().adaptivePredict(_input,63,_ctx);
a62d533 2880
			}
a62d533 2881
			}
a62d533 2882
		}
a62d533 2883
		catch (RecognitionException re) {
a62d533 2884
			_localctx.exception = re;
a62d533 2885
			_errHandler.reportError(this, re);
a62d533 2886
			_errHandler.recover(this, re);
a62d533 2887
		}
a62d533 2888
		finally {
a62d533 2889
			exitRule();
a62d533 2890
		}
a62d533 2891
		return _localctx;
a62d533 2892
	}
a62d533 2893
a62d533 2894
	public static class PrimitiveTypeContext extends ParserRuleContext {
a62d533 2895
		public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
a62d533 2896
			super(parent, invokingState);
a62d533 2897
		}
a62d533 2898
		@Override public int getRuleIndex() { return RULE_primitiveType; }
a62d533 2899
		@Override
a62d533 2900
		public void enterRule(ParseTreeListener listener) {
a62d533 2901
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPrimitiveType(this);
a62d533 2902
		}
a62d533 2903
		@Override
a62d533 2904
		public void exitRule(ParseTreeListener listener) {
a62d533 2905
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPrimitiveType(this);
a62d533 2906
		}
a62d533 2907
	}
a62d533 2908
a62d533 2909
	public final PrimitiveTypeContext primitiveType() throws RecognitionException {
a62d533 2910
		PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
a62d533 2911
		enterRule(_localctx, 80, RULE_primitiveType);
a62d533 2912
		int _la;
a62d533 2913
		try {
a62d533 2914
			enterOuterAlt(_localctx, 1);
a62d533 2915
			{
a62d533 2916
			setState(607);
a62d533 2917
			_la = _input.LA(1);
a62d533 2918
			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0)) ) {
a62d533 2919
			_errHandler.recoverInline(this);
a62d533 2920
			}
a62d533 2921
			consume();
a62d533 2922
			}
a62d533 2923
		}
a62d533 2924
		catch (RecognitionException re) {
a62d533 2925
			_localctx.exception = re;
a62d533 2926
			_errHandler.reportError(this, re);
a62d533 2927
			_errHandler.recover(this, re);
a62d533 2928
		}
a62d533 2929
		finally {
a62d533 2930
			exitRule();
a62d533 2931
		}
a62d533 2932
		return _localctx;
a62d533 2933
	}
a62d533 2934
a62d533 2935
	public static class TypeArgumentsContext extends ParserRuleContext {
a62d533 2936
		public List<TypeArgumentContext> typeArgument() {
a62d533 2937
			return getRuleContexts(TypeArgumentContext.class);
a62d533 2938
		}
a62d533 2939
		public TypeArgumentContext typeArgument(int i) {
a62d533 2940
			return getRuleContext(TypeArgumentContext.class,i);
a62d533 2941
		}
a62d533 2942
		public TypeArgumentsContext(ParserRuleContext parent, int invokingState) {
a62d533 2943
			super(parent, invokingState);
a62d533 2944
		}
a62d533 2945
		@Override public int getRuleIndex() { return RULE_typeArguments; }
a62d533 2946
		@Override
a62d533 2947
		public void enterRule(ParseTreeListener listener) {
a62d533 2948
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArguments(this);
a62d533 2949
		}
a62d533 2950
		@Override
a62d533 2951
		public void exitRule(ParseTreeListener listener) {
a62d533 2952
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArguments(this);
a62d533 2953
		}
a62d533 2954
	}
a62d533 2955
a62d533 2956
	public final TypeArgumentsContext typeArguments() throws RecognitionException {
a62d533 2957
		TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState());
a62d533 2958
		enterRule(_localctx, 82, RULE_typeArguments);
a62d533 2959
		int _la;
a62d533 2960
		try {
a62d533 2961
			enterOuterAlt(_localctx, 1);
a62d533 2962
			{
a62d533 2963
			setState(609); match(LT);
a62d533 2964
			setState(610); typeArgument();
a62d533 2965
			setState(615);
a62d533 2966
			_errHandler.sync(this);
a62d533 2967
			_la = _input.LA(1);
a62d533 2968
			while (_la==COMMA) {
a62d533 2969
				{
a62d533 2970
				{
a62d533 2971
				setState(611); match(COMMA);
a62d533 2972
				setState(612); typeArgument();
a62d533 2973
				}
a62d533 2974
				}
a62d533 2975
				setState(617);
a62d533 2976
				_errHandler.sync(this);
a62d533 2977
				_la = _input.LA(1);
a62d533 2978
			}
a62d533 2979
			setState(618); match(GT);
a62d533 2980
			}
a62d533 2981
		}
a62d533 2982
		catch (RecognitionException re) {
a62d533 2983
			_localctx.exception = re;
a62d533 2984
			_errHandler.reportError(this, re);
a62d533 2985
			_errHandler.recover(this, re);
a62d533 2986
		}
a62d533 2987
		finally {
a62d533 2988
			exitRule();
a62d533 2989
		}
a62d533 2990
		return _localctx;
a62d533 2991
	}
a62d533 2992
a62d533 2993
	public static class TypeArgumentContext extends ParserRuleContext {
a62d533 2994
		public TypeContext type() {
a62d533 2995
			return getRuleContext(TypeContext.class,0);
a62d533 2996
		}
a62d533 2997
		public TypeArgumentContext(ParserRuleContext parent, int invokingState) {
a62d533 2998
			super(parent, invokingState);
a62d533 2999
		}
a62d533 3000
		@Override public int getRuleIndex() { return RULE_typeArgument; }
a62d533 3001
		@Override
a62d533 3002
		public void enterRule(ParseTreeListener listener) {
a62d533 3003
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArgument(this);
a62d533 3004
		}
a62d533 3005
		@Override
a62d533 3006
		public void exitRule(ParseTreeListener listener) {
a62d533 3007
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArgument(this);
a62d533 3008
		}
a62d533 3009
	}
a62d533 3010
a62d533 3011
	public final TypeArgumentContext typeArgument() throws RecognitionException {
a62d533 3012
		TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState());
a62d533 3013
		enterRule(_localctx, 84, RULE_typeArgument);
a62d533 3014
		int _la;
a62d533 3015
		try {
a62d533 3016
			setState(626);
a62d533 3017
			switch (_input.LA(1)) {
a62d533 3018
			case BOOLEAN:
a62d533 3019
			case BYTE:
a62d533 3020
			case CHAR:
a62d533 3021
			case DOUBLE:
a62d533 3022
			case FLOAT:
a62d533 3023
			case INT:
a62d533 3024
			case LONG:
a62d533 3025
			case SHORT:
a62d533 3026
			case Identifier:
a62d533 3027
				enterOuterAlt(_localctx, 1);
a62d533 3028
				{
a62d533 3029
				setState(620); type();
a62d533 3030
				}
a62d533 3031
				break;
a62d533 3032
			case QUESTION:
a62d533 3033
				enterOuterAlt(_localctx, 2);
a62d533 3034
				{
a62d533 3035
				setState(621); match(QUESTION);
a62d533 3036
				setState(624);
a62d533 3037
				_la = _input.LA(1);
a62d533 3038
				if (_la==EXTENDS || _la==SUPER) {
a62d533 3039
					{
a62d533 3040
					setState(622);
a62d533 3041
					_la = _input.LA(1);
a62d533 3042
					if ( !(_la==EXTENDS || _la==SUPER) ) {
a62d533 3043
					_errHandler.recoverInline(this);
a62d533 3044
					}
a62d533 3045
					consume();
a62d533 3046
					setState(623); type();
a62d533 3047
					}
a62d533 3048
				}
a62d533 3049
a62d533 3050
				}
a62d533 3051
				break;
a62d533 3052
			default:
a62d533 3053
				throw new NoViableAltException(this);
a62d533 3054
			}
a62d533 3055
		}
a62d533 3056
		catch (RecognitionException re) {
a62d533 3057
			_localctx.exception = re;
a62d533 3058
			_errHandler.reportError(this, re);
a62d533 3059
			_errHandler.recover(this, re);
a62d533 3060
		}
a62d533 3061
		finally {
a62d533 3062
			exitRule();
a62d533 3063
		}
a62d533 3064
		return _localctx;
a62d533 3065
	}
a62d533 3066
a62d533 3067
	public static class QualifiedNameListContext extends ParserRuleContext {
a62d533 3068
		public QualifiedNameContext qualifiedName(int i) {
a62d533 3069
			return getRuleContext(QualifiedNameContext.class,i);
a62d533 3070
		}
a62d533 3071
		public List<QualifiedNameContext> qualifiedName() {
a62d533 3072
			return getRuleContexts(QualifiedNameContext.class);
a62d533 3073
		}
a62d533 3074
		public QualifiedNameListContext(ParserRuleContext parent, int invokingState) {
a62d533 3075
			super(parent, invokingState);
a62d533 3076
		}
a62d533 3077
		@Override public int getRuleIndex() { return RULE_qualifiedNameList; }
a62d533 3078
		@Override
a62d533 3079
		public void enterRule(ParseTreeListener listener) {
a62d533 3080
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterQualifiedNameList(this);
a62d533 3081
		}
a62d533 3082
		@Override
a62d533 3083
		public void exitRule(ParseTreeListener listener) {
a62d533 3084
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitQualifiedNameList(this);
a62d533 3085
		}
a62d533 3086
	}
a62d533 3087
a62d533 3088
	public final QualifiedNameListContext qualifiedNameList() throws RecognitionException {
a62d533 3089
		QualifiedNameListContext _localctx = new QualifiedNameListContext(_ctx, getState());
a62d533 3090
		enterRule(_localctx, 86, RULE_qualifiedNameList);
a62d533 3091
		int _la;
a62d533 3092
		try {
a62d533 3093
			enterOuterAlt(_localctx, 1);
a62d533 3094
			{
a62d533 3095
			setState(628); qualifiedName();
a62d533 3096
			setState(633);
a62d533 3097
			_errHandler.sync(this);
a62d533 3098
			_la = _input.LA(1);
a62d533 3099
			while (_la==COMMA) {
a62d533 3100
				{
a62d533 3101
				{
a62d533 3102
				setState(629); match(COMMA);
a62d533 3103
				setState(630); qualifiedName();
a62d533 3104
				}
a62d533 3105
				}
a62d533 3106
				setState(635);
a62d533 3107
				_errHandler.sync(this);
a62d533 3108
				_la = _input.LA(1);
a62d533 3109
			}
a62d533 3110
			}
a62d533 3111
		}
a62d533 3112
		catch (RecognitionException re) {
a62d533 3113
			_localctx.exception = re;
a62d533 3114
			_errHandler.reportError(this, re);
a62d533 3115
			_errHandler.recover(this, re);
a62d533 3116
		}
a62d533 3117
		finally {
a62d533 3118
			exitRule();
a62d533 3119
		}
a62d533 3120
		return _localctx;
a62d533 3121
	}
a62d533 3122
a62d533 3123
	public static class FormalParametersContext extends ParserRuleContext {
a62d533 3124
		public FormalParameterListContext formalParameterList() {
a62d533 3125
			return getRuleContext(FormalParameterListContext.class,0);
a62d533 3126
		}
a62d533 3127
		public FormalParametersContext(ParserRuleContext parent, int invokingState) {
a62d533 3128
			super(parent, invokingState);
a62d533 3129
		}
a62d533 3130
		@Override public int getRuleIndex() { return RULE_formalParameters; }
a62d533 3131
		@Override
a62d533 3132
		public void enterRule(ParseTreeListener listener) {
a62d533 3133
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameters(this);
a62d533 3134
		}
a62d533 3135
		@Override
a62d533 3136
		public void exitRule(ParseTreeListener listener) {
a62d533 3137
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameters(this);
a62d533 3138
		}
a62d533 3139
	}
a62d533 3140
a62d533 3141
	public final FormalParametersContext formalParameters() throws RecognitionException {
a62d533 3142
		FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState());
a62d533 3143
		enterRule(_localctx, 88, RULE_formalParameters);
a62d533 3144
		int _la;
a62d533 3145
		try {
a62d533 3146
			enterOuterAlt(_localctx, 1);
a62d533 3147
			{
a62d533 3148
			setState(636); match(LPAREN);
a62d533 3149
			setState(638);
a62d533 3150
			_la = _input.LA(1);
a62d533 3151
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) {
a62d533 3152
				{
a62d533 3153
				setState(637); formalParameterList();
a62d533 3154
				}
a62d533 3155
			}
a62d533 3156
a62d533 3157
			setState(640); match(RPAREN);
a62d533 3158
			}
a62d533 3159
		}
a62d533 3160
		catch (RecognitionException re) {
a62d533 3161
			_localctx.exception = re;
a62d533 3162
			_errHandler.reportError(this, re);
a62d533 3163
			_errHandler.recover(this, re);
a62d533 3164
		}
a62d533 3165
		finally {
a62d533 3166
			exitRule();
a62d533 3167
		}
a62d533 3168
		return _localctx;
a62d533 3169
	}
a62d533 3170
a62d533 3171
	public static class FormalParameterListContext extends ParserRuleContext {
a62d533 3172
		public List<FormalParameterContext> formalParameter() {
a62d533 3173
			return getRuleContexts(FormalParameterContext.class);
a62d533 3174
		}
a62d533 3175
		public LastFormalParameterContext lastFormalParameter() {
a62d533 3176
			return getRuleContext(LastFormalParameterContext.class,0);
a62d533 3177
		}
a62d533 3178
		public FormalParameterContext formalParameter(int i) {
a62d533 3179
			return getRuleContext(FormalParameterContext.class,i);
a62d533 3180
		}
a62d533 3181
		public FormalParameterListContext(ParserRuleContext parent, int invokingState) {
a62d533 3182
			super(parent, invokingState);
a62d533 3183
		}
a62d533 3184
		@Override public int getRuleIndex() { return RULE_formalParameterList; }
a62d533 3185
		@Override
a62d533 3186
		public void enterRule(ParseTreeListener listener) {
a62d533 3187
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameterList(this);
a62d533 3188
		}
a62d533 3189
		@Override
a62d533 3190
		public void exitRule(ParseTreeListener listener) {
a62d533 3191
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameterList(this);
a62d533 3192
		}
a62d533 3193
	}
a62d533 3194
a62d533 3195
	public final FormalParameterListContext formalParameterList() throws RecognitionException {
a62d533 3196
		FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState());
a62d533 3197
		enterRule(_localctx, 90, RULE_formalParameterList);
a62d533 3198
		int _la;
a62d533 3199
		try {
a62d533 3200
			int _alt;
a62d533 3201
			setState(655);
a62d533 3202
			switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) {
a62d533 3203
			case 1:
a62d533 3204
				enterOuterAlt(_localctx, 1);
a62d533 3205
				{
a62d533 3206
				setState(642); formalParameter();
a62d533 3207
				setState(647);
a62d533 3208
				_errHandler.sync(this);
a62d533 3209
				_alt = getInterpreter().adaptivePredict(_input,69,_ctx);
a62d533 3210
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 3211
					if ( _alt==1 ) {
a62d533 3212
						{
a62d533 3213
						{
a62d533 3214
						setState(643); match(COMMA);
a62d533 3215
						setState(644); formalParameter();
a62d533 3216
						}
a62d533 3217
						} 
a62d533 3218
					}
a62d533 3219
					setState(649);
a62d533 3220
					_errHandler.sync(this);
a62d533 3221
					_alt = getInterpreter().adaptivePredict(_input,69,_ctx);
a62d533 3222
				}
a62d533 3223
				setState(652);
a62d533 3224
				_la = _input.LA(1);
a62d533 3225
				if (_la==COMMA) {
a62d533 3226
					{
a62d533 3227
					setState(650); match(COMMA);
a62d533 3228
					setState(651); lastFormalParameter();
a62d533 3229
					}
a62d533 3230
				}
a62d533 3231
a62d533 3232
				}
a62d533 3233
				break;
a62d533 3234
a62d533 3235
			case 2:
a62d533 3236
				enterOuterAlt(_localctx, 2);
a62d533 3237
				{
a62d533 3238
				setState(654); lastFormalParameter();
a62d533 3239
				}
a62d533 3240
				break;
a62d533 3241
			}
a62d533 3242
		}
a62d533 3243
		catch (RecognitionException re) {
a62d533 3244
			_localctx.exception = re;
a62d533 3245
			_errHandler.reportError(this, re);
a62d533 3246
			_errHandler.recover(this, re);
a62d533 3247
		}
a62d533 3248
		finally {
a62d533 3249
			exitRule();
a62d533 3250
		}
a62d533 3251
		return _localctx;
a62d533 3252
	}
a62d533 3253
a62d533 3254
	public static class FormalParameterContext extends ParserRuleContext {
a62d533 3255
		public List<VariableModifierContext> variableModifier() {
a62d533 3256
			return getRuleContexts(VariableModifierContext.class);
a62d533 3257
		}
a62d533 3258
		public VariableModifierContext variableModifier(int i) {
a62d533 3259
			return getRuleContext(VariableModifierContext.class,i);
a62d533 3260
		}
a62d533 3261
		public TypeContext type() {
a62d533 3262
			return getRuleContext(TypeContext.class,0);
a62d533 3263
		}
a62d533 3264
		public VariableDeclaratorIdContext variableDeclaratorId() {
a62d533 3265
			return getRuleContext(VariableDeclaratorIdContext.class,0);
a62d533 3266
		}
a62d533 3267
		public FormalParameterContext(ParserRuleContext parent, int invokingState) {
a62d533 3268
			super(parent, invokingState);
a62d533 3269
		}
a62d533 3270
		@Override public int getRuleIndex() { return RULE_formalParameter; }
a62d533 3271
		@Override
a62d533 3272
		public void enterRule(ParseTreeListener listener) {
a62d533 3273
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFormalParameter(this);
a62d533 3274
		}
a62d533 3275
		@Override
a62d533 3276
		public void exitRule(ParseTreeListener listener) {
a62d533 3277
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFormalParameter(this);
a62d533 3278
		}
a62d533 3279
	}
a62d533 3280
a62d533 3281
	public final FormalParameterContext formalParameter() throws RecognitionException {
a62d533 3282
		FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState());
a62d533 3283
		enterRule(_localctx, 92, RULE_formalParameter);
a62d533 3284
		int _la;
a62d533 3285
		try {
a62d533 3286
			enterOuterAlt(_localctx, 1);
a62d533 3287
			{
a62d533 3288
			setState(660);
a62d533 3289
			_errHandler.sync(this);
a62d533 3290
			_la = _input.LA(1);
a62d533 3291
			while (_la==FINAL || _la==AT) {
a62d533 3292
				{
a62d533 3293
				{
a62d533 3294
				setState(657); variableModifier();
a62d533 3295
				}
a62d533 3296
				}
a62d533 3297
				setState(662);
a62d533 3298
				_errHandler.sync(this);
a62d533 3299
				_la = _input.LA(1);
a62d533 3300
			}
a62d533 3301
			setState(663); type();
a62d533 3302
			setState(664); variableDeclaratorId();
a62d533 3303
			}
a62d533 3304
		}
a62d533 3305
		catch (RecognitionException re) {
a62d533 3306
			_localctx.exception = re;
a62d533 3307
			_errHandler.reportError(this, re);
a62d533 3308
			_errHandler.recover(this, re);
a62d533 3309
		}
a62d533 3310
		finally {
a62d533 3311
			exitRule();
a62d533 3312
		}
a62d533 3313
		return _localctx;
a62d533 3314
	}
a62d533 3315
a62d533 3316
	public static class LastFormalParameterContext extends ParserRuleContext {
a62d533 3317
		public List<VariableModifierContext> variableModifier() {
a62d533 3318
			return getRuleContexts(VariableModifierContext.class);
a62d533 3319
		}
a62d533 3320
		public VariableModifierContext variableModifier(int i) {
a62d533 3321
			return getRuleContext(VariableModifierContext.class,i);
a62d533 3322
		}
a62d533 3323
		public TypeContext type() {
a62d533 3324
			return getRuleContext(TypeContext.class,0);
a62d533 3325
		}
a62d533 3326
		public VariableDeclaratorIdContext variableDeclaratorId() {
a62d533 3327
			return getRuleContext(VariableDeclaratorIdContext.class,0);
a62d533 3328
		}
a62d533 3329
		public LastFormalParameterContext(ParserRuleContext parent, int invokingState) {
a62d533 3330
			super(parent, invokingState);
a62d533 3331
		}
a62d533 3332
		@Override public int getRuleIndex() { return RULE_lastFormalParameter; }
a62d533 3333
		@Override
a62d533 3334
		public void enterRule(ParseTreeListener listener) {
a62d533 3335
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLastFormalParameter(this);
a62d533 3336
		}
a62d533 3337
		@Override
a62d533 3338
		public void exitRule(ParseTreeListener listener) {
a62d533 3339
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLastFormalParameter(this);
a62d533 3340
		}
a62d533 3341
	}
a62d533 3342
a62d533 3343
	public final LastFormalParameterContext lastFormalParameter() throws RecognitionException {
a62d533 3344
		LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState());
a62d533 3345
		enterRule(_localctx, 94, RULE_lastFormalParameter);
a62d533 3346
		int _la;
a62d533 3347
		try {
a62d533 3348
			enterOuterAlt(_localctx, 1);
a62d533 3349
			{
a62d533 3350
			setState(669);
a62d533 3351
			_errHandler.sync(this);
a62d533 3352
			_la = _input.LA(1);
a62d533 3353
			while (_la==FINAL || _la==AT) {
a62d533 3354
				{
a62d533 3355
				{
a62d533 3356
				setState(666); variableModifier();
a62d533 3357
				}
a62d533 3358
				}
a62d533 3359
				setState(671);
a62d533 3360
				_errHandler.sync(this);
a62d533 3361
				_la = _input.LA(1);
a62d533 3362
			}
a62d533 3363
			setState(672); type();
a62d533 3364
			setState(673); match(ELLIPSIS);
a62d533 3365
			setState(674); variableDeclaratorId();
a62d533 3366
			}
a62d533 3367
		}
a62d533 3368
		catch (RecognitionException re) {
a62d533 3369
			_localctx.exception = re;
a62d533 3370
			_errHandler.reportError(this, re);
a62d533 3371
			_errHandler.recover(this, re);
a62d533 3372
		}
a62d533 3373
		finally {
a62d533 3374
			exitRule();
a62d533 3375
		}
a62d533 3376
		return _localctx;
a62d533 3377
	}
a62d533 3378
a62d533 3379
	public static class MethodBodyContext extends ParserRuleContext {
a62d533 3380
		public BlockContext block() {
a62d533 3381
			return getRuleContext(BlockContext.class,0);
a62d533 3382
		}
a62d533 3383
		public MethodBodyContext(ParserRuleContext parent, int invokingState) {
a62d533 3384
			super(parent, invokingState);
a62d533 3385
		}
a62d533 3386
		@Override public int getRuleIndex() { return RULE_methodBody; }
a62d533 3387
		@Override
a62d533 3388
		public void enterRule(ParseTreeListener listener) {
a62d533 3389
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterMethodBody(this);
a62d533 3390
		}
a62d533 3391
		@Override
a62d533 3392
		public void exitRule(ParseTreeListener listener) {
a62d533 3393
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitMethodBody(this);
a62d533 3394
		}
a62d533 3395
	}
a62d533 3396
a62d533 3397
	public final MethodBodyContext methodBody() throws RecognitionException {
a62d533 3398
		MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState());
a62d533 3399
		enterRule(_localctx, 96, RULE_methodBody);
a62d533 3400
		try {
a62d533 3401
			enterOuterAlt(_localctx, 1);
a62d533 3402
			{
a62d533 3403
			setState(676); block();
a62d533 3404
			}
a62d533 3405
		}
a62d533 3406
		catch (RecognitionException re) {
a62d533 3407
			_localctx.exception = re;
a62d533 3408
			_errHandler.reportError(this, re);
a62d533 3409
			_errHandler.recover(this, re);
a62d533 3410
		}
a62d533 3411
		finally {
a62d533 3412
			exitRule();
a62d533 3413
		}
a62d533 3414
		return _localctx;
a62d533 3415
	}
a62d533 3416
a62d533 3417
	public static class ConstructorBodyContext extends ParserRuleContext {
a62d533 3418
		public BlockContext block() {
a62d533 3419
			return getRuleContext(BlockContext.class,0);
a62d533 3420
		}
a62d533 3421
		public ConstructorBodyContext(ParserRuleContext parent, int invokingState) {
a62d533 3422
			super(parent, invokingState);
a62d533 3423
		}
a62d533 3424
		@Override public int getRuleIndex() { return RULE_constructorBody; }
a62d533 3425
		@Override
a62d533 3426
		public void enterRule(ParseTreeListener listener) {
a62d533 3427
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstructorBody(this);
a62d533 3428
		}
a62d533 3429
		@Override
a62d533 3430
		public void exitRule(ParseTreeListener listener) {
a62d533 3431
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstructorBody(this);
a62d533 3432
		}
a62d533 3433
	}
a62d533 3434
a62d533 3435
	public final ConstructorBodyContext constructorBody() throws RecognitionException {
a62d533 3436
		ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState());
a62d533 3437
		enterRule(_localctx, 98, RULE_constructorBody);
a62d533 3438
		try {
a62d533 3439
			enterOuterAlt(_localctx, 1);
a62d533 3440
			{
a62d533 3441
			setState(678); block();
a62d533 3442
			}
a62d533 3443
		}
a62d533 3444
		catch (RecognitionException re) {
a62d533 3445
			_localctx.exception = re;
a62d533 3446
			_errHandler.reportError(this, re);
a62d533 3447
			_errHandler.recover(this, re);
a62d533 3448
		}
a62d533 3449
		finally {
a62d533 3450
			exitRule();
a62d533 3451
		}
a62d533 3452
		return _localctx;
a62d533 3453
	}
a62d533 3454
a62d533 3455
	public static class QualifiedNameContext extends ParserRuleContext {
a62d533 3456
		public TerminalNode Identifier(int i) {
a62d533 3457
			return getToken(JavaParser.Identifier, i);
a62d533 3458
		}
a62d533 3459
		public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); }
a62d533 3460
		public QualifiedNameContext(ParserRuleContext parent, int invokingState) {
a62d533 3461
			super(parent, invokingState);
a62d533 3462
		}
a62d533 3463
		@Override public int getRuleIndex() { return RULE_qualifiedName; }
a62d533 3464
		@Override
a62d533 3465
		public void enterRule(ParseTreeListener listener) {
a62d533 3466
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterQualifiedName(this);
a62d533 3467
		}
a62d533 3468
		@Override
a62d533 3469
		public void exitRule(ParseTreeListener listener) {
a62d533 3470
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitQualifiedName(this);
a62d533 3471
		}
a62d533 3472
	}
a62d533 3473
a62d533 3474
	public final QualifiedNameContext qualifiedName() throws RecognitionException {
a62d533 3475
		QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState());
a62d533 3476
		enterRule(_localctx, 100, RULE_qualifiedName);
a62d533 3477
		try {
a62d533 3478
			int _alt;
a62d533 3479
			enterOuterAlt(_localctx, 1);
a62d533 3480
			{
a62d533 3481
			setState(680); match(Identifier);
a62d533 3482
			setState(685);
a62d533 3483
			_errHandler.sync(this);
a62d533 3484
			_alt = getInterpreter().adaptivePredict(_input,74,_ctx);
a62d533 3485
			while ( _alt!=2 && _alt!=-1 ) {
a62d533 3486
				if ( _alt==1 ) {
a62d533 3487
					{
a62d533 3488
					{
a62d533 3489
					setState(681); match(DOT);
a62d533 3490
					setState(682); match(Identifier);
a62d533 3491
					}
a62d533 3492
					} 
a62d533 3493
				}
a62d533 3494
				setState(687);
a62d533 3495
				_errHandler.sync(this);
a62d533 3496
				_alt = getInterpreter().adaptivePredict(_input,74,_ctx);
a62d533 3497
			}
a62d533 3498
			}
a62d533 3499
		}
a62d533 3500
		catch (RecognitionException re) {
a62d533 3501
			_localctx.exception = re;
a62d533 3502
			_errHandler.reportError(this, re);
a62d533 3503
			_errHandler.recover(this, re);
a62d533 3504
		}
a62d533 3505
		finally {
a62d533 3506
			exitRule();
a62d533 3507
		}
a62d533 3508
		return _localctx;
a62d533 3509
	}
a62d533 3510
a62d533 3511
	public static class LiteralContext extends ParserRuleContext {
a62d533 3512
		public TerminalNode CharacterLiteral() { return getToken(JavaParser.CharacterLiteral, 0); }
a62d533 3513
		public TerminalNode IntegerLiteral() { return getToken(JavaParser.IntegerLiteral, 0); }
a62d533 3514
		public TerminalNode StringLiteral() { return getToken(JavaParser.StringLiteral, 0); }
a62d533 3515
		public TerminalNode FloatingPointLiteral() { return getToken(JavaParser.FloatingPointLiteral, 0); }
a62d533 3516
		public TerminalNode BooleanLiteral() { return getToken(JavaParser.BooleanLiteral, 0); }
a62d533 3517
		public LiteralContext(ParserRuleContext parent, int invokingState) {
a62d533 3518
			super(parent, invokingState);
a62d533 3519
		}
a62d533 3520
		@Override public int getRuleIndex() { return RULE_literal; }
a62d533 3521
		@Override
a62d533 3522
		public void enterRule(ParseTreeListener listener) {
a62d533 3523
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLiteral(this);
a62d533 3524
		}
a62d533 3525
		@Override
a62d533 3526
		public void exitRule(ParseTreeListener listener) {
a62d533 3527
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLiteral(this);
a62d533 3528
		}
a62d533 3529
	}
a62d533 3530
a62d533 3531
	public final LiteralContext literal() throws RecognitionException {
a62d533 3532
		LiteralContext _localctx = new LiteralContext(_ctx, getState());
a62d533 3533
		enterRule(_localctx, 102, RULE_literal);
a62d533 3534
		int _la;
a62d533 3535
		try {
a62d533 3536
			enterOuterAlt(_localctx, 1);
a62d533 3537
			{
a62d533 3538
			setState(688);
a62d533 3539
			_la = _input.LA(1);
a62d533 3540
			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral))) != 0)) ) {
a62d533 3541
			_errHandler.recoverInline(this);
a62d533 3542
			}
a62d533 3543
			consume();
a62d533 3544
			}
a62d533 3545
		}
a62d533 3546
		catch (RecognitionException re) {
a62d533 3547
			_localctx.exception = re;
a62d533 3548
			_errHandler.reportError(this, re);
a62d533 3549
			_errHandler.recover(this, re);
a62d533 3550
		}
a62d533 3551
		finally {
a62d533 3552
			exitRule();
a62d533 3553
		}
a62d533 3554
		return _localctx;
a62d533 3555
	}
a62d533 3556
a62d533 3557
	public static class AnnotationContext extends ParserRuleContext {
a62d533 3558
		public ElementValueContext elementValue() {
a62d533 3559
			return getRuleContext(ElementValueContext.class,0);
a62d533 3560
		}
a62d533 3561
		public ElementValuePairsContext elementValuePairs() {
a62d533 3562
			return getRuleContext(ElementValuePairsContext.class,0);
a62d533 3563
		}
a62d533 3564
		public AnnotationNameContext annotationName() {
a62d533 3565
			return getRuleContext(AnnotationNameContext.class,0);
a62d533 3566
		}
a62d533 3567
		public AnnotationContext(ParserRuleContext parent, int invokingState) {
a62d533 3568
			super(parent, invokingState);
a62d533 3569
		}
a62d533 3570
		@Override public int getRuleIndex() { return RULE_annotation; }
a62d533 3571
		@Override
a62d533 3572
		public void enterRule(ParseTreeListener listener) {
a62d533 3573
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotation(this);
a62d533 3574
		}
a62d533 3575
		@Override
a62d533 3576
		public void exitRule(ParseTreeListener listener) {
a62d533 3577
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotation(this);
a62d533 3578
		}
a62d533 3579
	}
a62d533 3580
a62d533 3581
	public final AnnotationContext annotation() throws RecognitionException {
a62d533 3582
		AnnotationContext _localctx = new AnnotationContext(_ctx, getState());
a62d533 3583
		enterRule(_localctx, 104, RULE_annotation);
a62d533 3584
		int _la;
a62d533 3585
		try {
a62d533 3586
			enterOuterAlt(_localctx, 1);
a62d533 3587
			{
a62d533 3588
			setState(690); match(AT);
a62d533 3589
			setState(691); annotationName();
a62d533 3590
			setState(698);
a62d533 3591
			_la = _input.LA(1);
a62d533 3592
			if (_la==LPAREN) {
a62d533 3593
				{
a62d533 3594
				setState(692); match(LPAREN);
a62d533 3595
				setState(695);
a62d533 3596
				switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) {
a62d533 3597
				case 1:
a62d533 3598
					{
a62d533 3599
					setState(693); elementValuePairs();
a62d533 3600
					}
a62d533 3601
					break;
a62d533 3602
a62d533 3603
				case 2:
a62d533 3604
					{
a62d533 3605
					setState(694); elementValue();
a62d533 3606
					}
a62d533 3607
					break;
a62d533 3608
				}
a62d533 3609
				setState(697); match(RPAREN);
a62d533 3610
				}
a62d533 3611
			}
a62d533 3612
a62d533 3613
			}
a62d533 3614
		}
a62d533 3615
		catch (RecognitionException re) {
a62d533 3616
			_localctx.exception = re;
a62d533 3617
			_errHandler.reportError(this, re);
a62d533 3618
			_errHandler.recover(this, re);
a62d533 3619
		}
a62d533 3620
		finally {
a62d533 3621
			exitRule();
a62d533 3622
		}
a62d533 3623
		return _localctx;
a62d533 3624
	}
a62d533 3625
a62d533 3626
	public static class AnnotationNameContext extends ParserRuleContext {
a62d533 3627
		public QualifiedNameContext qualifiedName() {
a62d533 3628
			return getRuleContext(QualifiedNameContext.class,0);
a62d533 3629
		}
a62d533 3630
		public AnnotationNameContext(ParserRuleContext parent, int invokingState) {
a62d533 3631
			super(parent, invokingState);
a62d533 3632
		}
a62d533 3633
		@Override public int getRuleIndex() { return RULE_annotationName; }
a62d533 3634
		@Override
a62d533 3635
		public void enterRule(ParseTreeListener listener) {
a62d533 3636
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationName(this);
a62d533 3637
		}
a62d533 3638
		@Override
a62d533 3639
		public void exitRule(ParseTreeListener listener) {
a62d533 3640
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationName(this);
a62d533 3641
		}
a62d533 3642
	}
a62d533 3643
a62d533 3644
	public final AnnotationNameContext annotationName() throws RecognitionException {
a62d533 3645
		AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, getState());
a62d533 3646
		enterRule(_localctx, 106, RULE_annotationName);
a62d533 3647
		try {
a62d533 3648
			enterOuterAlt(_localctx, 1);
a62d533 3649
			{
a62d533 3650
			setState(700); qualifiedName();
a62d533 3651
			}
a62d533 3652
		}
a62d533 3653
		catch (RecognitionException re) {
a62d533 3654
			_localctx.exception = re;
a62d533 3655
			_errHandler.reportError(this, re);
a62d533 3656
			_errHandler.recover(this, re);
a62d533 3657
		}
a62d533 3658
		finally {
a62d533 3659
			exitRule();
a62d533 3660
		}
a62d533 3661
		return _localctx;
a62d533 3662
	}
a62d533 3663
a62d533 3664
	public static class ElementValuePairsContext extends ParserRuleContext {
a62d533 3665
		public List<ElementValuePairContext> elementValuePair() {
a62d533 3666
			return getRuleContexts(ElementValuePairContext.class);
a62d533 3667
		}
a62d533 3668
		public ElementValuePairContext elementValuePair(int i) {
a62d533 3669
			return getRuleContext(ElementValuePairContext.class,i);
a62d533 3670
		}
a62d533 3671
		public ElementValuePairsContext(ParserRuleContext parent, int invokingState) {
a62d533 3672
			super(parent, invokingState);
a62d533 3673
		}
a62d533 3674
		@Override public int getRuleIndex() { return RULE_elementValuePairs; }
a62d533 3675
		@Override
a62d533 3676
		public void enterRule(ParseTreeListener listener) {
a62d533 3677
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValuePairs(this);
a62d533 3678
		}
a62d533 3679
		@Override
a62d533 3680
		public void exitRule(ParseTreeListener listener) {
a62d533 3681
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValuePairs(this);
a62d533 3682
		}
a62d533 3683
	}
a62d533 3684
a62d533 3685
	public final ElementValuePairsContext elementValuePairs() throws RecognitionException {
a62d533 3686
		ElementValuePairsContext _localctx = new ElementValuePairsContext(_ctx, getState());
a62d533 3687
		enterRule(_localctx, 108, RULE_elementValuePairs);
a62d533 3688
		int _la;
a62d533 3689
		try {
a62d533 3690
			enterOuterAlt(_localctx, 1);
a62d533 3691
			{
a62d533 3692
			setState(702); elementValuePair();
a62d533 3693
			setState(707);
a62d533 3694
			_errHandler.sync(this);
a62d533 3695
			_la = _input.LA(1);
a62d533 3696
			while (_la==COMMA) {
a62d533 3697
				{
a62d533 3698
				{
a62d533 3699
				setState(703); match(COMMA);
a62d533 3700
				setState(704); elementValuePair();
a62d533 3701
				}
a62d533 3702
				}
a62d533 3703
				setState(709);
a62d533 3704
				_errHandler.sync(this);
a62d533 3705
				_la = _input.LA(1);
a62d533 3706
			}
a62d533 3707
			}
a62d533 3708
		}
a62d533 3709
		catch (RecognitionException re) {
a62d533 3710
			_localctx.exception = re;
a62d533 3711
			_errHandler.reportError(this, re);
a62d533 3712
			_errHandler.recover(this, re);
a62d533 3713
		}
a62d533 3714
		finally {
a62d533 3715
			exitRule();
a62d533 3716
		}
a62d533 3717
		return _localctx;
a62d533 3718
	}
a62d533 3719
a62d533 3720
	public static class ElementValuePairContext extends ParserRuleContext {
a62d533 3721
		public ElementValueContext elementValue() {
a62d533 3722
			return getRuleContext(ElementValueContext.class,0);
a62d533 3723
		}
a62d533 3724
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 3725
		public ElementValuePairContext(ParserRuleContext parent, int invokingState) {
a62d533 3726
			super(parent, invokingState);
a62d533 3727
		}
a62d533 3728
		@Override public int getRuleIndex() { return RULE_elementValuePair; }
a62d533 3729
		@Override
a62d533 3730
		public void enterRule(ParseTreeListener listener) {
a62d533 3731
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValuePair(this);
a62d533 3732
		}
a62d533 3733
		@Override
a62d533 3734
		public void exitRule(ParseTreeListener listener) {
a62d533 3735
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValuePair(this);
a62d533 3736
		}
a62d533 3737
	}
a62d533 3738
a62d533 3739
	public final ElementValuePairContext elementValuePair() throws RecognitionException {
a62d533 3740
		ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState());
a62d533 3741
		enterRule(_localctx, 110, RULE_elementValuePair);
a62d533 3742
		try {
a62d533 3743
			enterOuterAlt(_localctx, 1);
a62d533 3744
			{
a62d533 3745
			setState(710); match(Identifier);
a62d533 3746
			setState(711); match(ASSIGN);
a62d533 3747
			setState(712); elementValue();
a62d533 3748
			}
a62d533 3749
		}
a62d533 3750
		catch (RecognitionException re) {
a62d533 3751
			_localctx.exception = re;
a62d533 3752
			_errHandler.reportError(this, re);
a62d533 3753
			_errHandler.recover(this, re);
a62d533 3754
		}
a62d533 3755
		finally {
a62d533 3756
			exitRule();
a62d533 3757
		}
a62d533 3758
		return _localctx;
a62d533 3759
	}
a62d533 3760
a62d533 3761
	public static class ElementValueContext extends ParserRuleContext {
a62d533 3762
		public ElementValueArrayInitializerContext elementValueArrayInitializer() {
a62d533 3763
			return getRuleContext(ElementValueArrayInitializerContext.class,0);
a62d533 3764
		}
a62d533 3765
		public AnnotationContext annotation() {
a62d533 3766
			return getRuleContext(AnnotationContext.class,0);
a62d533 3767
		}
a62d533 3768
		public ExpressionContext expression() {
a62d533 3769
			return getRuleContext(ExpressionContext.class,0);
a62d533 3770
		}
a62d533 3771
		public ElementValueContext(ParserRuleContext parent, int invokingState) {
a62d533 3772
			super(parent, invokingState);
a62d533 3773
		}
a62d533 3774
		@Override public int getRuleIndex() { return RULE_elementValue; }
a62d533 3775
		@Override
a62d533 3776
		public void enterRule(ParseTreeListener listener) {
a62d533 3777
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValue(this);
a62d533 3778
		}
a62d533 3779
		@Override
a62d533 3780
		public void exitRule(ParseTreeListener listener) {
a62d533 3781
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValue(this);
a62d533 3782
		}
a62d533 3783
	}
a62d533 3784
a62d533 3785
	public final ElementValueContext elementValue() throws RecognitionException {
a62d533 3786
		ElementValueContext _localctx = new ElementValueContext(_ctx, getState());
a62d533 3787
		enterRule(_localctx, 112, RULE_elementValue);
a62d533 3788
		try {
a62d533 3789
			setState(717);
a62d533 3790
			switch (_input.LA(1)) {
a62d533 3791
			case BOOLEAN:
a62d533 3792
			case BYTE:
a62d533 3793
			case CHAR:
a62d533 3794
			case DOUBLE:
a62d533 3795
			case FLOAT:
a62d533 3796
			case INT:
a62d533 3797
			case LONG:
a62d533 3798
			case NEW:
a62d533 3799
			case SHORT:
a62d533 3800
			case SUPER:
a62d533 3801
			case THIS:
a62d533 3802
			case VOID:
a62d533 3803
			case IntegerLiteral:
a62d533 3804
			case FloatingPointLiteral:
a62d533 3805
			case BooleanLiteral:
a62d533 3806
			case CharacterLiteral:
a62d533 3807
			case StringLiteral:
a62d533 3808
			case NullLiteral:
a62d533 3809
			case LPAREN:
a62d533 3810
			case LT:
a62d533 3811
			case BANG:
a62d533 3812
			case TILDE:
a62d533 3813
			case INC:
a62d533 3814
			case DEC:
a62d533 3815
			case ADD:
a62d533 3816
			case SUB:
a62d533 3817
			case Identifier:
a62d533 3818
				enterOuterAlt(_localctx, 1);
a62d533 3819
				{
a62d533 3820
				setState(714); expression(0);
a62d533 3821
				}
a62d533 3822
				break;
a62d533 3823
			case AT:
a62d533 3824
				enterOuterAlt(_localctx, 2);
a62d533 3825
				{
a62d533 3826
				setState(715); annotation();
a62d533 3827
				}
a62d533 3828
				break;
a62d533 3829
			case LBRACE:
a62d533 3830
				enterOuterAlt(_localctx, 3);
a62d533 3831
				{
a62d533 3832
				setState(716); elementValueArrayInitializer();
a62d533 3833
				}
a62d533 3834
				break;
a62d533 3835
			default:
a62d533 3836
				throw new NoViableAltException(this);
a62d533 3837
			}
a62d533 3838
		}
a62d533 3839
		catch (RecognitionException re) {
a62d533 3840
			_localctx.exception = re;
a62d533 3841
			_errHandler.reportError(this, re);
a62d533 3842
			_errHandler.recover(this, re);
a62d533 3843
		}
a62d533 3844
		finally {
a62d533 3845
			exitRule();
a62d533 3846
		}
a62d533 3847
		return _localctx;
a62d533 3848
	}
a62d533 3849
a62d533 3850
	public static class ElementValueArrayInitializerContext extends ParserRuleContext {
a62d533 3851
		public ElementValueContext elementValue(int i) {
a62d533 3852
			return getRuleContext(ElementValueContext.class,i);
a62d533 3853
		}
a62d533 3854
		public List<ElementValueContext> elementValue() {
a62d533 3855
			return getRuleContexts(ElementValueContext.class);
a62d533 3856
		}
a62d533 3857
		public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) {
a62d533 3858
			super(parent, invokingState);
a62d533 3859
		}
a62d533 3860
		@Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; }
a62d533 3861
		@Override
a62d533 3862
		public void enterRule(ParseTreeListener listener) {
a62d533 3863
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterElementValueArrayInitializer(this);
a62d533 3864
		}
a62d533 3865
		@Override
a62d533 3866
		public void exitRule(ParseTreeListener listener) {
a62d533 3867
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitElementValueArrayInitializer(this);
a62d533 3868
		}
a62d533 3869
	}
a62d533 3870
a62d533 3871
	public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException {
a62d533 3872
		ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState());
a62d533 3873
		enterRule(_localctx, 114, RULE_elementValueArrayInitializer);
a62d533 3874
		int _la;
a62d533 3875
		try {
a62d533 3876
			int _alt;
a62d533 3877
			enterOuterAlt(_localctx, 1);
a62d533 3878
			{
a62d533 3879
			setState(719); match(LBRACE);
a62d533 3880
			setState(728);
a62d533 3881
			_la = _input.LA(1);
a62d533 3882
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 3883
				{
a62d533 3884
				setState(720); elementValue();
a62d533 3885
				setState(725);
a62d533 3886
				_errHandler.sync(this);
a62d533 3887
				_alt = getInterpreter().adaptivePredict(_input,79,_ctx);
a62d533 3888
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 3889
					if ( _alt==1 ) {
a62d533 3890
						{
a62d533 3891
						{
a62d533 3892
						setState(721); match(COMMA);
a62d533 3893
						setState(722); elementValue();
a62d533 3894
						}
a62d533 3895
						} 
a62d533 3896
					}
a62d533 3897
					setState(727);
a62d533 3898
					_errHandler.sync(this);
a62d533 3899
					_alt = getInterpreter().adaptivePredict(_input,79,_ctx);
a62d533 3900
				}
a62d533 3901
				}
a62d533 3902
			}
a62d533 3903
a62d533 3904
			setState(731);
a62d533 3905
			_la = _input.LA(1);
a62d533 3906
			if (_la==COMMA) {
a62d533 3907
				{
a62d533 3908
				setState(730); match(COMMA);
a62d533 3909
				}
a62d533 3910
			}
a62d533 3911
a62d533 3912
			setState(733); match(RBRACE);
a62d533 3913
			}
a62d533 3914
		}
a62d533 3915
		catch (RecognitionException re) {
a62d533 3916
			_localctx.exception = re;
a62d533 3917
			_errHandler.reportError(this, re);
a62d533 3918
			_errHandler.recover(this, re);
a62d533 3919
		}
a62d533 3920
		finally {
a62d533 3921
			exitRule();
a62d533 3922
		}
a62d533 3923
		return _localctx;
a62d533 3924
	}
a62d533 3925
a62d533 3926
	public static class AnnotationTypeDeclarationContext extends ParserRuleContext {
a62d533 3927
		public AnnotationTypeBodyContext annotationTypeBody() {
a62d533 3928
			return getRuleContext(AnnotationTypeBodyContext.class,0);
a62d533 3929
		}
a62d533 3930
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 3931
		public AnnotationTypeDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 3932
			super(parent, invokingState);
a62d533 3933
		}
a62d533 3934
		@Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; }
a62d533 3935
		@Override
a62d533 3936
		public void enterRule(ParseTreeListener listener) {
a62d533 3937
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeDeclaration(this);
a62d533 3938
		}
a62d533 3939
		@Override
a62d533 3940
		public void exitRule(ParseTreeListener listener) {
a62d533 3941
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeDeclaration(this);
a62d533 3942
		}
a62d533 3943
	}
a62d533 3944
a62d533 3945
	public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException {
a62d533 3946
		AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState());
a62d533 3947
		enterRule(_localctx, 116, RULE_annotationTypeDeclaration);
a62d533 3948
		try {
a62d533 3949
			enterOuterAlt(_localctx, 1);
a62d533 3950
			{
a62d533 3951
			setState(735); match(AT);
a62d533 3952
			setState(736); match(INTERFACE);
a62d533 3953
			setState(737); match(Identifier);
a62d533 3954
			setState(738); annotationTypeBody();
a62d533 3955
			}
a62d533 3956
		}
a62d533 3957
		catch (RecognitionException re) {
a62d533 3958
			_localctx.exception = re;
a62d533 3959
			_errHandler.reportError(this, re);
a62d533 3960
			_errHandler.recover(this, re);
a62d533 3961
		}
a62d533 3962
		finally {
a62d533 3963
			exitRule();
a62d533 3964
		}
a62d533 3965
		return _localctx;
a62d533 3966
	}
a62d533 3967
a62d533 3968
	public static class AnnotationTypeBodyContext extends ParserRuleContext {
a62d533 3969
		public List<AnnotationTypeElementDeclarationContext> annotationTypeElementDeclaration() {
a62d533 3970
			return getRuleContexts(AnnotationTypeElementDeclarationContext.class);
a62d533 3971
		}
a62d533 3972
		public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration(int i) {
a62d533 3973
			return getRuleContext(AnnotationTypeElementDeclarationContext.class,i);
a62d533 3974
		}
a62d533 3975
		public AnnotationTypeBodyContext(ParserRuleContext parent, int invokingState) {
a62d533 3976
			super(parent, invokingState);
a62d533 3977
		}
a62d533 3978
		@Override public int getRuleIndex() { return RULE_annotationTypeBody; }
a62d533 3979
		@Override
a62d533 3980
		public void enterRule(ParseTreeListener listener) {
a62d533 3981
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeBody(this);
a62d533 3982
		}
a62d533 3983
		@Override
a62d533 3984
		public void exitRule(ParseTreeListener listener) {
a62d533 3985
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeBody(this);
a62d533 3986
		}
a62d533 3987
	}
a62d533 3988
a62d533 3989
	public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException {
a62d533 3990
		AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState());
a62d533 3991
		enterRule(_localctx, 118, RULE_annotationTypeBody);
a62d533 3992
		int _la;
a62d533 3993
		try {
a62d533 3994
			enterOuterAlt(_localctx, 1);
a62d533 3995
			{
a62d533 3996
			setState(740); match(LBRACE);
a62d533 3997
			setState(744);
a62d533 3998
			_errHandler.sync(this);
a62d533 3999
			_la = _input.LA(1);
a62d533 4000
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOLATILE) | (1L << SEMI))) != 0) || _la==Identifier || _la==AT) {
a62d533 4001
				{
a62d533 4002
				{
a62d533 4003
				setState(741); annotationTypeElementDeclaration();
a62d533 4004
				}
a62d533 4005
				}
a62d533 4006
				setState(746);
a62d533 4007
				_errHandler.sync(this);
a62d533 4008
				_la = _input.LA(1);
a62d533 4009
			}
a62d533 4010
			setState(747); match(RBRACE);
a62d533 4011
			}
a62d533 4012
		}
a62d533 4013
		catch (RecognitionException re) {
a62d533 4014
			_localctx.exception = re;
a62d533 4015
			_errHandler.reportError(this, re);
a62d533 4016
			_errHandler.recover(this, re);
a62d533 4017
		}
a62d533 4018
		finally {
a62d533 4019
			exitRule();
a62d533 4020
		}
a62d533 4021
		return _localctx;
a62d533 4022
	}
a62d533 4023
a62d533 4024
	public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext {
a62d533 4025
		public List<ModifierContext> modifier() {
a62d533 4026
			return getRuleContexts(ModifierContext.class);
a62d533 4027
		}
a62d533 4028
		public AnnotationTypeElementRestContext annotationTypeElementRest() {
a62d533 4029
			return getRuleContext(AnnotationTypeElementRestContext.class,0);
a62d533 4030
		}
a62d533 4031
		public ModifierContext modifier(int i) {
a62d533 4032
			return getRuleContext(ModifierContext.class,i);
a62d533 4033
		}
a62d533 4034
		public AnnotationTypeElementDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 4035
			super(parent, invokingState);
a62d533 4036
		}
a62d533 4037
		@Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; }
a62d533 4038
		@Override
a62d533 4039
		public void enterRule(ParseTreeListener listener) {
a62d533 4040
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeElementDeclaration(this);
a62d533 4041
		}
a62d533 4042
		@Override
a62d533 4043
		public void exitRule(ParseTreeListener listener) {
a62d533 4044
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeElementDeclaration(this);
a62d533 4045
		}
a62d533 4046
	}
a62d533 4047
a62d533 4048
	public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException {
a62d533 4049
		AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState());
a62d533 4050
		enterRule(_localctx, 120, RULE_annotationTypeElementDeclaration);
a62d533 4051
		try {
a62d533 4052
			int _alt;
a62d533 4053
			setState(757);
a62d533 4054
			switch (_input.LA(1)) {
a62d533 4055
			case ABSTRACT:
a62d533 4056
			case BOOLEAN:
a62d533 4057
			case BYTE:
a62d533 4058
			case CHAR:
a62d533 4059
			case CLASS:
a62d533 4060
			case DOUBLE:
a62d533 4061
			case ENUM:
a62d533 4062
			case FINAL:
a62d533 4063
			case FLOAT:
a62d533 4064
			case INT:
a62d533 4065
			case INTERFACE:
a62d533 4066
			case LONG:
a62d533 4067
			case NATIVE:
a62d533 4068
			case PRIVATE:
a62d533 4069
			case PROTECTED:
a62d533 4070
			case PUBLIC:
a62d533 4071
			case SHORT:
a62d533 4072
			case STATIC:
a62d533 4073
			case STRICTFP:
a62d533 4074
			case SYNCHRONIZED:
a62d533 4075
			case TRANSIENT:
a62d533 4076
			case VOLATILE:
a62d533 4077
			case Identifier:
a62d533 4078
			case AT:
a62d533 4079
				enterOuterAlt(_localctx, 1);
a62d533 4080
				{
a62d533 4081
				setState(752);
a62d533 4082
				_errHandler.sync(this);
a62d533 4083
				_alt = getInterpreter().adaptivePredict(_input,83,_ctx);
a62d533 4084
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 4085
					if ( _alt==1 ) {
a62d533 4086
						{
a62d533 4087
						{
a62d533 4088
						setState(749); modifier();
a62d533 4089
						}
a62d533 4090
						} 
a62d533 4091
					}
a62d533 4092
					setState(754);
a62d533 4093
					_errHandler.sync(this);
a62d533 4094
					_alt = getInterpreter().adaptivePredict(_input,83,_ctx);
a62d533 4095
				}
a62d533 4096
				setState(755); annotationTypeElementRest();
a62d533 4097
				}
a62d533 4098
				break;
a62d533 4099
			case SEMI:
a62d533 4100
				enterOuterAlt(_localctx, 2);
a62d533 4101
				{
a62d533 4102
				setState(756); match(SEMI);
a62d533 4103
				}
a62d533 4104
				break;
a62d533 4105
			default:
a62d533 4106
				throw new NoViableAltException(this);
a62d533 4107
			}
a62d533 4108
		}
a62d533 4109
		catch (RecognitionException re) {
a62d533 4110
			_localctx.exception = re;
a62d533 4111
			_errHandler.reportError(this, re);
a62d533 4112
			_errHandler.recover(this, re);
a62d533 4113
		}
a62d533 4114
		finally {
a62d533 4115
			exitRule();
a62d533 4116
		}
a62d533 4117
		return _localctx;
a62d533 4118
	}
a62d533 4119
a62d533 4120
	public static class AnnotationTypeElementRestContext extends ParserRuleContext {
a62d533 4121
		public InterfaceDeclarationContext interfaceDeclaration() {
a62d533 4122
			return getRuleContext(InterfaceDeclarationContext.class,0);
a62d533 4123
		}
a62d533 4124
		public AnnotationTypeDeclarationContext annotationTypeDeclaration() {
a62d533 4125
			return getRuleContext(AnnotationTypeDeclarationContext.class,0);
a62d533 4126
		}
a62d533 4127
		public AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() {
a62d533 4128
			return getRuleContext(AnnotationMethodOrConstantRestContext.class,0);
a62d533 4129
		}
a62d533 4130
		public TypeContext type() {
a62d533 4131
			return getRuleContext(TypeContext.class,0);
a62d533 4132
		}
a62d533 4133
		public EnumDeclarationContext enumDeclaration() {
a62d533 4134
			return getRuleContext(EnumDeclarationContext.class,0);
a62d533 4135
		}
a62d533 4136
		public ClassDeclarationContext classDeclaration() {
a62d533 4137
			return getRuleContext(ClassDeclarationContext.class,0);
a62d533 4138
		}
a62d533 4139
		public AnnotationTypeElementRestContext(ParserRuleContext parent, int invokingState) {
a62d533 4140
			super(parent, invokingState);
a62d533 4141
		}
a62d533 4142
		@Override public int getRuleIndex() { return RULE_annotationTypeElementRest; }
a62d533 4143
		@Override
a62d533 4144
		public void enterRule(ParseTreeListener listener) {
a62d533 4145
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationTypeElementRest(this);
a62d533 4146
		}
a62d533 4147
		@Override
a62d533 4148
		public void exitRule(ParseTreeListener listener) {
a62d533 4149
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationTypeElementRest(this);
a62d533 4150
		}
a62d533 4151
	}
a62d533 4152
a62d533 4153
	public final AnnotationTypeElementRestContext annotationTypeElementRest() throws RecognitionException {
a62d533 4154
		AnnotationTypeElementRestContext _localctx = new AnnotationTypeElementRestContext(_ctx, getState());
a62d533 4155
		enterRule(_localctx, 122, RULE_annotationTypeElementRest);
a62d533 4156
		try {
a62d533 4157
			setState(779);
a62d533 4158
			switch (_input.LA(1)) {
a62d533 4159
			case BOOLEAN:
a62d533 4160
			case BYTE:
a62d533 4161
			case CHAR:
a62d533 4162
			case DOUBLE:
a62d533 4163
			case FLOAT:
a62d533 4164
			case INT:
a62d533 4165
			case LONG:
a62d533 4166
			case SHORT:
a62d533 4167
			case Identifier:
a62d533 4168
				enterOuterAlt(_localctx, 1);
a62d533 4169
				{
a62d533 4170
				setState(759); type();
a62d533 4171
				setState(760); annotationMethodOrConstantRest();
a62d533 4172
				setState(761); match(SEMI);
a62d533 4173
				}
a62d533 4174
				break;
a62d533 4175
			case CLASS:
a62d533 4176
				enterOuterAlt(_localctx, 2);
a62d533 4177
				{
a62d533 4178
				setState(763); classDeclaration();
a62d533 4179
				setState(765);
a62d533 4180
				switch ( getInterpreter().adaptivePredict(_input,85,_ctx) ) {
a62d533 4181
				case 1:
a62d533 4182
					{
a62d533 4183
					setState(764); match(SEMI);
a62d533 4184
					}
a62d533 4185
					break;
a62d533 4186
				}
a62d533 4187
				}
a62d533 4188
				break;
a62d533 4189
			case INTERFACE:
a62d533 4190
				enterOuterAlt(_localctx, 3);
a62d533 4191
				{
a62d533 4192
				setState(767); interfaceDeclaration();
a62d533 4193
				setState(769);
a62d533 4194
				switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) {
a62d533 4195
				case 1:
a62d533 4196
					{
a62d533 4197
					setState(768); match(SEMI);
a62d533 4198
					}
a62d533 4199
					break;
a62d533 4200
				}
a62d533 4201
				}
a62d533 4202
				break;
a62d533 4203
			case ENUM:
a62d533 4204
				enterOuterAlt(_localctx, 4);
a62d533 4205
				{
a62d533 4206
				setState(771); enumDeclaration();
a62d533 4207
				setState(773);
a62d533 4208
				switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) {
a62d533 4209
				case 1:
a62d533 4210
					{
a62d533 4211
					setState(772); match(SEMI);
a62d533 4212
					}
a62d533 4213
					break;
a62d533 4214
				}
a62d533 4215
				}
a62d533 4216
				break;
a62d533 4217
			case AT:
a62d533 4218
				enterOuterAlt(_localctx, 5);
a62d533 4219
				{
a62d533 4220
				setState(775); annotationTypeDeclaration();
a62d533 4221
				setState(777);
a62d533 4222
				switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) {
a62d533 4223
				case 1:
a62d533 4224
					{
a62d533 4225
					setState(776); match(SEMI);
a62d533 4226
					}
a62d533 4227
					break;
a62d533 4228
				}
a62d533 4229
				}
a62d533 4230
				break;
a62d533 4231
			default:
a62d533 4232
				throw new NoViableAltException(this);
a62d533 4233
			}
a62d533 4234
		}
a62d533 4235
		catch (RecognitionException re) {
a62d533 4236
			_localctx.exception = re;
a62d533 4237
			_errHandler.reportError(this, re);
a62d533 4238
			_errHandler.recover(this, re);
a62d533 4239
		}
a62d533 4240
		finally {
a62d533 4241
			exitRule();
a62d533 4242
		}
a62d533 4243
		return _localctx;
a62d533 4244
	}
a62d533 4245
a62d533 4246
	public static class AnnotationMethodOrConstantRestContext extends ParserRuleContext {
a62d533 4247
		public AnnotationConstantRestContext annotationConstantRest() {
a62d533 4248
			return getRuleContext(AnnotationConstantRestContext.class,0);
a62d533 4249
		}
a62d533 4250
		public AnnotationMethodRestContext annotationMethodRest() {
a62d533 4251
			return getRuleContext(AnnotationMethodRestContext.class,0);
a62d533 4252
		}
a62d533 4253
		public AnnotationMethodOrConstantRestContext(ParserRuleContext parent, int invokingState) {
a62d533 4254
			super(parent, invokingState);
a62d533 4255
		}
a62d533 4256
		@Override public int getRuleIndex() { return RULE_annotationMethodOrConstantRest; }
a62d533 4257
		@Override
a62d533 4258
		public void enterRule(ParseTreeListener listener) {
a62d533 4259
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationMethodOrConstantRest(this);
a62d533 4260
		}
a62d533 4261
		@Override
a62d533 4262
		public void exitRule(ParseTreeListener listener) {
a62d533 4263
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationMethodOrConstantRest(this);
a62d533 4264
		}
a62d533 4265
	}
a62d533 4266
a62d533 4267
	public final AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() throws RecognitionException {
a62d533 4268
		AnnotationMethodOrConstantRestContext _localctx = new AnnotationMethodOrConstantRestContext(_ctx, getState());
a62d533 4269
		enterRule(_localctx, 124, RULE_annotationMethodOrConstantRest);
a62d533 4270
		try {
a62d533 4271
			setState(783);
a62d533 4272
			switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) {
a62d533 4273
			case 1:
a62d533 4274
				enterOuterAlt(_localctx, 1);
a62d533 4275
				{
a62d533 4276
				setState(781); annotationMethodRest();
a62d533 4277
				}
a62d533 4278
				break;
a62d533 4279
a62d533 4280
			case 2:
a62d533 4281
				enterOuterAlt(_localctx, 2);
a62d533 4282
				{
a62d533 4283
				setState(782); annotationConstantRest();
a62d533 4284
				}
a62d533 4285
				break;
a62d533 4286
			}
a62d533 4287
		}
a62d533 4288
		catch (RecognitionException re) {
a62d533 4289
			_localctx.exception = re;
a62d533 4290
			_errHandler.reportError(this, re);
a62d533 4291
			_errHandler.recover(this, re);
a62d533 4292
		}
a62d533 4293
		finally {
a62d533 4294
			exitRule();
a62d533 4295
		}
a62d533 4296
		return _localctx;
a62d533 4297
	}
a62d533 4298
a62d533 4299
	public static class AnnotationMethodRestContext extends ParserRuleContext {
a62d533 4300
		public DefaultValueContext defaultValue() {
a62d533 4301
			return getRuleContext(DefaultValueContext.class,0);
a62d533 4302
		}
a62d533 4303
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 4304
		public AnnotationMethodRestContext(ParserRuleContext parent, int invokingState) {
a62d533 4305
			super(parent, invokingState);
a62d533 4306
		}
a62d533 4307
		@Override public int getRuleIndex() { return RULE_annotationMethodRest; }
a62d533 4308
		@Override
a62d533 4309
		public void enterRule(ParseTreeListener listener) {
a62d533 4310
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationMethodRest(this);
a62d533 4311
		}
a62d533 4312
		@Override
a62d533 4313
		public void exitRule(ParseTreeListener listener) {
a62d533 4314
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationMethodRest(this);
a62d533 4315
		}
a62d533 4316
	}
a62d533 4317
a62d533 4318
	public final AnnotationMethodRestContext annotationMethodRest() throws RecognitionException {
a62d533 4319
		AnnotationMethodRestContext _localctx = new AnnotationMethodRestContext(_ctx, getState());
a62d533 4320
		enterRule(_localctx, 126, RULE_annotationMethodRest);
a62d533 4321
		int _la;
a62d533 4322
		try {
a62d533 4323
			enterOuterAlt(_localctx, 1);
a62d533 4324
			{
a62d533 4325
			setState(785); match(Identifier);
a62d533 4326
			setState(786); match(LPAREN);
a62d533 4327
			setState(787); match(RPAREN);
a62d533 4328
			setState(789);
a62d533 4329
			_la = _input.LA(1);
a62d533 4330
			if (_la==DEFAULT) {
a62d533 4331
				{
a62d533 4332
				setState(788); defaultValue();
a62d533 4333
				}
a62d533 4334
			}
a62d533 4335
a62d533 4336
			}
a62d533 4337
		}
a62d533 4338
		catch (RecognitionException re) {
a62d533 4339
			_localctx.exception = re;
a62d533 4340
			_errHandler.reportError(this, re);
a62d533 4341
			_errHandler.recover(this, re);
a62d533 4342
		}
a62d533 4343
		finally {
a62d533 4344
			exitRule();
a62d533 4345
		}
a62d533 4346
		return _localctx;
a62d533 4347
	}
a62d533 4348
a62d533 4349
	public static class AnnotationConstantRestContext extends ParserRuleContext {
a62d533 4350
		public VariableDeclaratorsContext variableDeclarators() {
a62d533 4351
			return getRuleContext(VariableDeclaratorsContext.class,0);
a62d533 4352
		}
a62d533 4353
		public AnnotationConstantRestContext(ParserRuleContext parent, int invokingState) {
a62d533 4354
			super(parent, invokingState);
a62d533 4355
		}
a62d533 4356
		@Override public int getRuleIndex() { return RULE_annotationConstantRest; }
a62d533 4357
		@Override
a62d533 4358
		public void enterRule(ParseTreeListener listener) {
a62d533 4359
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterAnnotationConstantRest(this);
a62d533 4360
		}
a62d533 4361
		@Override
a62d533 4362
		public void exitRule(ParseTreeListener listener) {
a62d533 4363
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitAnnotationConstantRest(this);
a62d533 4364
		}
a62d533 4365
	}
a62d533 4366
a62d533 4367
	public final AnnotationConstantRestContext annotationConstantRest() throws RecognitionException {
a62d533 4368
		AnnotationConstantRestContext _localctx = new AnnotationConstantRestContext(_ctx, getState());
a62d533 4369
		enterRule(_localctx, 128, RULE_annotationConstantRest);
a62d533 4370
		try {
a62d533 4371
			enterOuterAlt(_localctx, 1);
a62d533 4372
			{
a62d533 4373
			setState(791); variableDeclarators();
a62d533 4374
			}
a62d533 4375
		}
a62d533 4376
		catch (RecognitionException re) {
a62d533 4377
			_localctx.exception = re;
a62d533 4378
			_errHandler.reportError(this, re);
a62d533 4379
			_errHandler.recover(this, re);
a62d533 4380
		}
a62d533 4381
		finally {
a62d533 4382
			exitRule();
a62d533 4383
		}
a62d533 4384
		return _localctx;
a62d533 4385
	}
a62d533 4386
a62d533 4387
	public static class DefaultValueContext extends ParserRuleContext {
a62d533 4388
		public ElementValueContext elementValue() {
a62d533 4389
			return getRuleContext(ElementValueContext.class,0);
a62d533 4390
		}
a62d533 4391
		public DefaultValueContext(ParserRuleContext parent, int invokingState) {
a62d533 4392
			super(parent, invokingState);
a62d533 4393
		}
a62d533 4394
		@Override public int getRuleIndex() { return RULE_defaultValue; }
a62d533 4395
		@Override
a62d533 4396
		public void enterRule(ParseTreeListener listener) {
a62d533 4397
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterDefaultValue(this);
a62d533 4398
		}
a62d533 4399
		@Override
a62d533 4400
		public void exitRule(ParseTreeListener listener) {
a62d533 4401
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitDefaultValue(this);
a62d533 4402
		}
a62d533 4403
	}
a62d533 4404
a62d533 4405
	public final DefaultValueContext defaultValue() throws RecognitionException {
a62d533 4406
		DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState());
a62d533 4407
		enterRule(_localctx, 130, RULE_defaultValue);
a62d533 4408
		try {
a62d533 4409
			enterOuterAlt(_localctx, 1);
a62d533 4410
			{
a62d533 4411
			setState(793); match(DEFAULT);
a62d533 4412
			setState(794); elementValue();
a62d533 4413
			}
a62d533 4414
		}
a62d533 4415
		catch (RecognitionException re) {
a62d533 4416
			_localctx.exception = re;
a62d533 4417
			_errHandler.reportError(this, re);
a62d533 4418
			_errHandler.recover(this, re);
a62d533 4419
		}
a62d533 4420
		finally {
a62d533 4421
			exitRule();
a62d533 4422
		}
a62d533 4423
		return _localctx;
a62d533 4424
	}
a62d533 4425
a62d533 4426
	public static class BlockContext extends ParserRuleContext {
a62d533 4427
		public List<BlockStatementContext> blockStatement() {
a62d533 4428
			return getRuleContexts(BlockStatementContext.class);
a62d533 4429
		}
a62d533 4430
		public BlockStatementContext blockStatement(int i) {
a62d533 4431
			return getRuleContext(BlockStatementContext.class,i);
a62d533 4432
		}
a62d533 4433
		public BlockContext(ParserRuleContext parent, int invokingState) {
a62d533 4434
			super(parent, invokingState);
a62d533 4435
		}
a62d533 4436
		@Override public int getRuleIndex() { return RULE_block; }
a62d533 4437
		@Override
a62d533 4438
		public void enterRule(ParseTreeListener listener) {
a62d533 4439
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterBlock(this);
a62d533 4440
		}
a62d533 4441
		@Override
a62d533 4442
		public void exitRule(ParseTreeListener listener) {
a62d533 4443
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitBlock(this);
a62d533 4444
		}
a62d533 4445
	}
a62d533 4446
a62d533 4447
	public final BlockContext block() throws RecognitionException {
a62d533 4448
		BlockContext _localctx = new BlockContext(_ctx, getState());
a62d533 4449
		enterRule(_localctx, 132, RULE_block);
a62d533 4450
		int _la;
a62d533 4451
		try {
a62d533 4452
			enterOuterAlt(_localctx, 1);
a62d533 4453
			{
a62d533 4454
			setState(796); match(LBRACE);
a62d533 4455
			setState(800);
a62d533 4456
			_errHandler.sync(this);
a62d533 4457
			_la = _input.LA(1);
a62d533 4458
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 4459
				{
a62d533 4460
				{
a62d533 4461
				setState(797); blockStatement();
a62d533 4462
				}
a62d533 4463
				}
a62d533 4464
				setState(802);
a62d533 4465
				_errHandler.sync(this);
a62d533 4466
				_la = _input.LA(1);
a62d533 4467
			}
a62d533 4468
			setState(803); match(RBRACE);
a62d533 4469
			}
a62d533 4470
		}
a62d533 4471
		catch (RecognitionException re) {
a62d533 4472
			_localctx.exception = re;
a62d533 4473
			_errHandler.reportError(this, re);
a62d533 4474
			_errHandler.recover(this, re);
a62d533 4475
		}
a62d533 4476
		finally {
a62d533 4477
			exitRule();
a62d533 4478
		}
a62d533 4479
		return _localctx;
a62d533 4480
	}
a62d533 4481
a62d533 4482
	public static class BlockStatementContext extends ParserRuleContext {
a62d533 4483
		public StatementContext statement() {
a62d533 4484
			return getRuleContext(StatementContext.class,0);
a62d533 4485
		}
a62d533 4486
		public TypeDeclarationContext typeDeclaration() {
a62d533 4487
			return getRuleContext(TypeDeclarationContext.class,0);
a62d533 4488
		}
a62d533 4489
		public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() {
a62d533 4490
			return getRuleContext(LocalVariableDeclarationStatementContext.class,0);
a62d533 4491
		}
a62d533 4492
		public BlockStatementContext(ParserRuleContext parent, int invokingState) {
a62d533 4493
			super(parent, invokingState);
a62d533 4494
		}
a62d533 4495
		@Override public int getRuleIndex() { return RULE_blockStatement; }
a62d533 4496
		@Override
a62d533 4497
		public void enterRule(ParseTreeListener listener) {
a62d533 4498
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterBlockStatement(this);
a62d533 4499
		}
a62d533 4500
		@Override
a62d533 4501
		public void exitRule(ParseTreeListener listener) {
a62d533 4502
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitBlockStatement(this);
a62d533 4503
		}
a62d533 4504
	}
a62d533 4505
a62d533 4506
	public final BlockStatementContext blockStatement() throws RecognitionException {
a62d533 4507
		BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState());
a62d533 4508
		enterRule(_localctx, 134, RULE_blockStatement);
a62d533 4509
		try {
a62d533 4510
			setState(808);
a62d533 4511
			switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) {
a62d533 4512
			case 1:
a62d533 4513
				enterOuterAlt(_localctx, 1);
a62d533 4514
				{
a62d533 4515
				setState(805); localVariableDeclarationStatement();
a62d533 4516
				}
a62d533 4517
				break;
a62d533 4518
a62d533 4519
			case 2:
a62d533 4520
				enterOuterAlt(_localctx, 2);
a62d533 4521
				{
a62d533 4522
				setState(806); statement();
a62d533 4523
				}
a62d533 4524
				break;
a62d533 4525
a62d533 4526
			case 3:
a62d533 4527
				enterOuterAlt(_localctx, 3);
a62d533 4528
				{
a62d533 4529
				setState(807); typeDeclaration();
a62d533 4530
				}
a62d533 4531
				break;
a62d533 4532
			}
a62d533 4533
		}
a62d533 4534
		catch (RecognitionException re) {
a62d533 4535
			_localctx.exception = re;
a62d533 4536
			_errHandler.reportError(this, re);
a62d533 4537
			_errHandler.recover(this, re);
a62d533 4538
		}
a62d533 4539
		finally {
a62d533 4540
			exitRule();
a62d533 4541
		}
a62d533 4542
		return _localctx;
a62d533 4543
	}
a62d533 4544
a62d533 4545
	public static class LocalVariableDeclarationStatementContext extends ParserRuleContext {
a62d533 4546
		public LocalVariableDeclarationContext localVariableDeclaration() {
a62d533 4547
			return getRuleContext(LocalVariableDeclarationContext.class,0);
a62d533 4548
		}
a62d533 4549
		public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) {
a62d533 4550
			super(parent, invokingState);
a62d533 4551
		}
a62d533 4552
		@Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; }
a62d533 4553
		@Override
a62d533 4554
		public void enterRule(ParseTreeListener listener) {
a62d533 4555
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLocalVariableDeclarationStatement(this);
a62d533 4556
		}
a62d533 4557
		@Override
a62d533 4558
		public void exitRule(ParseTreeListener listener) {
a62d533 4559
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLocalVariableDeclarationStatement(this);
a62d533 4560
		}
a62d533 4561
	}
a62d533 4562
a62d533 4563
	public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException {
a62d533 4564
		LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState());
a62d533 4565
		enterRule(_localctx, 136, RULE_localVariableDeclarationStatement);
a62d533 4566
		try {
a62d533 4567
			enterOuterAlt(_localctx, 1);
a62d533 4568
			{
a62d533 4569
			setState(810); localVariableDeclaration();
a62d533 4570
			setState(811); match(SEMI);
a62d533 4571
			}
a62d533 4572
		}
a62d533 4573
		catch (RecognitionException re) {
a62d533 4574
			_localctx.exception = re;
a62d533 4575
			_errHandler.reportError(this, re);
a62d533 4576
			_errHandler.recover(this, re);
a62d533 4577
		}
a62d533 4578
		finally {
a62d533 4579
			exitRule();
a62d533 4580
		}
a62d533 4581
		return _localctx;
a62d533 4582
	}
a62d533 4583
a62d533 4584
	public static class LocalVariableDeclarationContext extends ParserRuleContext {
a62d533 4585
		public List<VariableModifierContext> variableModifier() {
a62d533 4586
			return getRuleContexts(VariableModifierContext.class);
a62d533 4587
		}
a62d533 4588
		public VariableDeclaratorsContext variableDeclarators() {
a62d533 4589
			return getRuleContext(VariableDeclaratorsContext.class,0);
a62d533 4590
		}
a62d533 4591
		public VariableModifierContext variableModifier(int i) {
a62d533 4592
			return getRuleContext(VariableModifierContext.class,i);
a62d533 4593
		}
a62d533 4594
		public TypeContext type() {
a62d533 4595
			return getRuleContext(TypeContext.class,0);
a62d533 4596
		}
a62d533 4597
		public LocalVariableDeclarationContext(ParserRuleContext parent, int invokingState) {
a62d533 4598
			super(parent, invokingState);
a62d533 4599
		}
a62d533 4600
		@Override public int getRuleIndex() { return RULE_localVariableDeclaration; }
a62d533 4601
		@Override
a62d533 4602
		public void enterRule(ParseTreeListener listener) {
a62d533 4603
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterLocalVariableDeclaration(this);
a62d533 4604
		}
a62d533 4605
		@Override
a62d533 4606
		public void exitRule(ParseTreeListener listener) {
a62d533 4607
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitLocalVariableDeclaration(this);
a62d533 4608
		}
a62d533 4609
	}
a62d533 4610
a62d533 4611
	public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException {
a62d533 4612
		LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState());
a62d533 4613
		enterRule(_localctx, 138, RULE_localVariableDeclaration);
a62d533 4614
		int _la;
a62d533 4615
		try {
a62d533 4616
			enterOuterAlt(_localctx, 1);
a62d533 4617
			{
a62d533 4618
			setState(816);
a62d533 4619
			_errHandler.sync(this);
a62d533 4620
			_la = _input.LA(1);
a62d533 4621
			while (_la==FINAL || _la==AT) {
a62d533 4622
				{
a62d533 4623
				{
a62d533 4624
				setState(813); variableModifier();
a62d533 4625
				}
a62d533 4626
				}
a62d533 4627
				setState(818);
a62d533 4628
				_errHandler.sync(this);
a62d533 4629
				_la = _input.LA(1);
a62d533 4630
			}
a62d533 4631
			setState(819); type();
a62d533 4632
			setState(820); variableDeclarators();
a62d533 4633
			}
a62d533 4634
		}
a62d533 4635
		catch (RecognitionException re) {
a62d533 4636
			_localctx.exception = re;
a62d533 4637
			_errHandler.reportError(this, re);
a62d533 4638
			_errHandler.recover(this, re);
a62d533 4639
		}
a62d533 4640
		finally {
a62d533 4641
			exitRule();
a62d533 4642
		}
a62d533 4643
		return _localctx;
a62d533 4644
	}
a62d533 4645
a62d533 4646
	public static class StatementContext extends ParserRuleContext {
a62d533 4647
		public List<StatementContext> statement() {
a62d533 4648
			return getRuleContexts(StatementContext.class);
a62d533 4649
		}
a62d533 4650
		public SwitchLabelContext switchLabel(int i) {
a62d533 4651
			return getRuleContext(SwitchLabelContext.class,i);
a62d533 4652
		}
a62d533 4653
		public ForControlContext forControl() {
a62d533 4654
			return getRuleContext(ForControlContext.class,0);
a62d533 4655
		}
a62d533 4656
		public List<SwitchLabelContext> switchLabel() {
a62d533 4657
			return getRuleContexts(SwitchLabelContext.class);
a62d533 4658
		}
a62d533 4659
		public ParExpressionContext parExpression() {
a62d533 4660
			return getRuleContext(ParExpressionContext.class,0);
a62d533 4661
		}
a62d533 4662
		public ResourceSpecificationContext resourceSpecification() {
a62d533 4663
			return getRuleContext(ResourceSpecificationContext.class,0);
a62d533 4664
		}
a62d533 4665
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 4666
		public List<ExpressionContext> expression() {
a62d533 4667
			return getRuleContexts(ExpressionContext.class);
a62d533 4668
		}
a62d533 4669
		public CatchClauseContext catchClause(int i) {
a62d533 4670
			return getRuleContext(CatchClauseContext.class,i);
a62d533 4671
		}
a62d533 4672
		public FinallyBlockContext finallyBlock() {
a62d533 4673
			return getRuleContext(FinallyBlockContext.class,0);
a62d533 4674
		}
a62d533 4675
		public ExpressionContext expression(int i) {
a62d533 4676
			return getRuleContext(ExpressionContext.class,i);
a62d533 4677
		}
a62d533 4678
		public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) {
a62d533 4679
			return getRuleContext(SwitchBlockStatementGroupContext.class,i);
a62d533 4680
		}
a62d533 4681
		public StatementExpressionContext statementExpression() {
a62d533 4682
			return getRuleContext(StatementExpressionContext.class,0);
a62d533 4683
		}
a62d533 4684
		public List<CatchClauseContext> catchClause() {
a62d533 4685
			return getRuleContexts(CatchClauseContext.class);
a62d533 4686
		}
a62d533 4687
		public BlockContext block() {
a62d533 4688
			return getRuleContext(BlockContext.class,0);
a62d533 4689
		}
a62d533 4690
		public StatementContext statement(int i) {
a62d533 4691
			return getRuleContext(StatementContext.class,i);
a62d533 4692
		}
a62d533 4693
		public List<SwitchBlockStatementGroupContext> switchBlockStatementGroup() {
a62d533 4694
			return getRuleContexts(SwitchBlockStatementGroupContext.class);
a62d533 4695
		}
a62d533 4696
		public TerminalNode ASSERT() { return getToken(JavaParser.ASSERT, 0); }
a62d533 4697
		public StatementContext(ParserRuleContext parent, int invokingState) {
a62d533 4698
			super(parent, invokingState);
a62d533 4699
		}
a62d533 4700
		@Override public int getRuleIndex() { return RULE_statement; }
a62d533 4701
		@Override
a62d533 4702
		public void enterRule(ParseTreeListener listener) {
a62d533 4703
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterStatement(this);
a62d533 4704
		}
a62d533 4705
		@Override
a62d533 4706
		public void exitRule(ParseTreeListener listener) {
a62d533 4707
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitStatement(this);
a62d533 4708
		}
a62d533 4709
	}
a62d533 4710
a62d533 4711
	public final StatementContext statement() throws RecognitionException {
a62d533 4712
		StatementContext _localctx = new StatementContext(_ctx, getState());
a62d533 4713
		enterRule(_localctx, 140, RULE_statement);
a62d533 4714
		int _la;
a62d533 4715
		try {
a62d533 4716
			int _alt;
a62d533 4717
			setState(926);
a62d533 4718
			switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) {
a62d533 4719
			case 1:
a62d533 4720
				enterOuterAlt(_localctx, 1);
a62d533 4721
				{
a62d533 4722
				setState(822); block();
a62d533 4723
				}
a62d533 4724
				break;
a62d533 4725
a62d533 4726
			case 2:
a62d533 4727
				enterOuterAlt(_localctx, 2);
a62d533 4728
				{
a62d533 4729
				setState(823); match(ASSERT);
a62d533 4730
				setState(824); expression(0);
a62d533 4731
				setState(827);
a62d533 4732
				_la = _input.LA(1);
a62d533 4733
				if (_la==COLON) {
a62d533 4734
					{
a62d533 4735
					setState(825); match(COLON);
a62d533 4736
					setState(826); expression(0);
a62d533 4737
					}
a62d533 4738
				}
a62d533 4739
a62d533 4740
				setState(829); match(SEMI);
a62d533 4741
				}
a62d533 4742
				break;
a62d533 4743
a62d533 4744
			case 3:
a62d533 4745
				enterOuterAlt(_localctx, 3);
a62d533 4746
				{
a62d533 4747
				setState(831); match(IF);
a62d533 4748
				setState(832); parExpression();
a62d533 4749
				setState(833); statement();
a62d533 4750
				setState(836);
a62d533 4751
				switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) {
a62d533 4752
				case 1:
a62d533 4753
					{
a62d533 4754
					setState(834); match(ELSE);
a62d533 4755
					setState(835); statement();
a62d533 4756
					}
a62d533 4757
					break;
a62d533 4758
				}
a62d533 4759
				}
a62d533 4760
				break;
a62d533 4761
a62d533 4762
			case 4:
a62d533 4763
				enterOuterAlt(_localctx, 4);
a62d533 4764
				{
a62d533 4765
				setState(838); match(FOR);
a62d533 4766
				setState(839); match(LPAREN);
a62d533 4767
				setState(840); forControl();
a62d533 4768
				setState(841); match(RPAREN);
a62d533 4769
				setState(842); statement();
a62d533 4770
				}
a62d533 4771
				break;
a62d533 4772
a62d533 4773
			case 5:
a62d533 4774
				enterOuterAlt(_localctx, 5);
a62d533 4775
				{
a62d533 4776
				setState(844); match(WHILE);
a62d533 4777
				setState(845); parExpression();
a62d533 4778
				setState(846); statement();
a62d533 4779
				}
a62d533 4780
				break;
a62d533 4781
a62d533 4782
			case 6:
a62d533 4783
				enterOuterAlt(_localctx, 6);
a62d533 4784
				{
a62d533 4785
				setState(848); match(DO);
a62d533 4786
				setState(849); statement();
a62d533 4787
				setState(850); match(WHILE);
a62d533 4788
				setState(851); parExpression();
a62d533 4789
				setState(852); match(SEMI);
a62d533 4790
				}
a62d533 4791
				break;
a62d533 4792
a62d533 4793
			case 7:
a62d533 4794
				enterOuterAlt(_localctx, 7);
a62d533 4795
				{
a62d533 4796
				setState(854); match(TRY);
a62d533 4797
				setState(855); block();
a62d533 4798
				setState(865);
a62d533 4799
				switch (_input.LA(1)) {
a62d533 4800
				case CATCH:
a62d533 4801
					{
a62d533 4802
					setState(857); 
a62d533 4803
					_errHandler.sync(this);
a62d533 4804
					_la = _input.LA(1);
a62d533 4805
					do {
a62d533 4806
						{
a62d533 4807
						{
a62d533 4808
						setState(856); catchClause();
a62d533 4809
						}
a62d533 4810
						}
a62d533 4811
						setState(859); 
a62d533 4812
						_errHandler.sync(this);
a62d533 4813
						_la = _input.LA(1);
a62d533 4814
					} while ( _la==CATCH );
a62d533 4815
					setState(862);
a62d533 4816
					_la = _input.LA(1);
a62d533 4817
					if (_la==FINALLY) {
a62d533 4818
						{
a62d533 4819
						setState(861); finallyBlock();
a62d533 4820
						}
a62d533 4821
					}
a62d533 4822
a62d533 4823
					}
a62d533 4824
					break;
a62d533 4825
				case FINALLY:
a62d533 4826
					{
a62d533 4827
					setState(864); finallyBlock();
a62d533 4828
					}
a62d533 4829
					break;
a62d533 4830
				default:
a62d533 4831
					throw new NoViableAltException(this);
a62d533 4832
				}
a62d533 4833
				}
a62d533 4834
				break;
a62d533 4835
a62d533 4836
			case 8:
a62d533 4837
				enterOuterAlt(_localctx, 8);
a62d533 4838
				{
a62d533 4839
				setState(867); match(TRY);
a62d533 4840
				setState(868); resourceSpecification();
a62d533 4841
				setState(869); block();
a62d533 4842
				setState(873);
a62d533 4843
				_errHandler.sync(this);
a62d533 4844
				_la = _input.LA(1);
a62d533 4845
				while (_la==CATCH) {
a62d533 4846
					{
a62d533 4847
					{
a62d533 4848
					setState(870); catchClause();
a62d533 4849
					}
a62d533 4850
					}
a62d533 4851
					setState(875);
a62d533 4852
					_errHandler.sync(this);
a62d533 4853
					_la = _input.LA(1);
a62d533 4854
				}
a62d533 4855
				setState(877);
a62d533 4856
				_la = _input.LA(1);
a62d533 4857
				if (_la==FINALLY) {
a62d533 4858
					{
a62d533 4859
					setState(876); finallyBlock();
a62d533 4860
					}
a62d533 4861
				}
a62d533 4862
a62d533 4863
				}
a62d533 4864
				break;
a62d533 4865
a62d533 4866
			case 9:
a62d533 4867
				enterOuterAlt(_localctx, 9);
a62d533 4868
				{
a62d533 4869
				setState(879); match(SWITCH);
a62d533 4870
				setState(880); parExpression();
a62d533 4871
				setState(881); match(LBRACE);
a62d533 4872
				setState(885);
a62d533 4873
				_errHandler.sync(this);
a62d533 4874
				_alt = getInterpreter().adaptivePredict(_input,102,_ctx);
a62d533 4875
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 4876
					if ( _alt==1 ) {
a62d533 4877
						{
a62d533 4878
						{
a62d533 4879
						setState(882); switchBlockStatementGroup();
a62d533 4880
						}
a62d533 4881
						} 
a62d533 4882
					}
a62d533 4883
					setState(887);
a62d533 4884
					_errHandler.sync(this);
a62d533 4885
					_alt = getInterpreter().adaptivePredict(_input,102,_ctx);
a62d533 4886
				}
a62d533 4887
				setState(891);
a62d533 4888
				_errHandler.sync(this);
a62d533 4889
				_la = _input.LA(1);
a62d533 4890
				while (_la==CASE || _la==DEFAULT) {
a62d533 4891
					{
a62d533 4892
					{
a62d533 4893
					setState(888); switchLabel();
a62d533 4894
					}
a62d533 4895
					}
a62d533 4896
					setState(893);
a62d533 4897
					_errHandler.sync(this);
a62d533 4898
					_la = _input.LA(1);
a62d533 4899
				}
a62d533 4900
				setState(894); match(RBRACE);
a62d533 4901
				}
a62d533 4902
				break;
a62d533 4903
a62d533 4904
			case 10:
a62d533 4905
				enterOuterAlt(_localctx, 10);
a62d533 4906
				{
a62d533 4907
				setState(896); match(SYNCHRONIZED);
a62d533 4908
				setState(897); parExpression();
a62d533 4909
				setState(898); block();
a62d533 4910
				}
a62d533 4911
				break;
a62d533 4912
a62d533 4913
			case 11:
a62d533 4914
				enterOuterAlt(_localctx, 11);
a62d533 4915
				{
a62d533 4916
				setState(900); match(RETURN);
a62d533 4917
				setState(902);
a62d533 4918
				_la = _input.LA(1);
a62d533 4919
				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 4920
					{
a62d533 4921
					setState(901); expression(0);
a62d533 4922
					}
a62d533 4923
				}
a62d533 4924
a62d533 4925
				setState(904); match(SEMI);
a62d533 4926
				}
a62d533 4927
				break;
a62d533 4928
a62d533 4929
			case 12:
a62d533 4930
				enterOuterAlt(_localctx, 12);
a62d533 4931
				{
a62d533 4932
				setState(905); match(THROW);
a62d533 4933
				setState(906); expression(0);
a62d533 4934
				setState(907); match(SEMI);
a62d533 4935
				}
a62d533 4936
				break;
a62d533 4937
a62d533 4938
			case 13:
a62d533 4939
				enterOuterAlt(_localctx, 13);
a62d533 4940
				{
a62d533 4941
				setState(909); match(BREAK);
a62d533 4942
				setState(911);
a62d533 4943
				_la = _input.LA(1);
a62d533 4944
				if (_la==Identifier) {
a62d533 4945
					{
a62d533 4946
					setState(910); match(Identifier);
a62d533 4947
					}
a62d533 4948
				}
a62d533 4949
a62d533 4950
				setState(913); match(SEMI);
a62d533 4951
				}
a62d533 4952
				break;
a62d533 4953
a62d533 4954
			case 14:
a62d533 4955
				enterOuterAlt(_localctx, 14);
a62d533 4956
				{
a62d533 4957
				setState(914); match(CONTINUE);
a62d533 4958
				setState(916);
a62d533 4959
				_la = _input.LA(1);
a62d533 4960
				if (_la==Identifier) {
a62d533 4961
					{
a62d533 4962
					setState(915); match(Identifier);
a62d533 4963
					}
a62d533 4964
				}
a62d533 4965
a62d533 4966
				setState(918); match(SEMI);
a62d533 4967
				}
a62d533 4968
				break;
a62d533 4969
a62d533 4970
			case 15:
a62d533 4971
				enterOuterAlt(_localctx, 15);
a62d533 4972
				{
a62d533 4973
				setState(919); match(SEMI);
a62d533 4974
				}
a62d533 4975
				break;
a62d533 4976
a62d533 4977
			case 16:
a62d533 4978
				enterOuterAlt(_localctx, 16);
a62d533 4979
				{
a62d533 4980
				setState(920); statementExpression();
a62d533 4981
				setState(921); match(SEMI);
a62d533 4982
				}
a62d533 4983
				break;
a62d533 4984
a62d533 4985
			case 17:
a62d533 4986
				enterOuterAlt(_localctx, 17);
a62d533 4987
				{
a62d533 4988
				setState(923); match(Identifier);
a62d533 4989
				setState(924); match(COLON);
a62d533 4990
				setState(925); statement();
a62d533 4991
				}
a62d533 4992
				break;
a62d533 4993
			}
a62d533 4994
		}
a62d533 4995
		catch (RecognitionException re) {
a62d533 4996
			_localctx.exception = re;
a62d533 4997
			_errHandler.reportError(this, re);
a62d533 4998
			_errHandler.recover(this, re);
a62d533 4999
		}
a62d533 5000
		finally {
a62d533 5001
			exitRule();
a62d533 5002
		}
a62d533 5003
		return _localctx;
a62d533 5004
	}
a62d533 5005
a62d533 5006
	public static class CatchClauseContext extends ParserRuleContext {
a62d533 5007
		public List<VariableModifierContext> variableModifier() {
a62d533 5008
			return getRuleContexts(VariableModifierContext.class);
a62d533 5009
		}
a62d533 5010
		public VariableModifierContext variableModifier(int i) {
a62d533 5011
			return getRuleContext(VariableModifierContext.class,i);
a62d533 5012
		}
a62d533 5013
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 5014
		public BlockContext block() {
a62d533 5015
			return getRuleContext(BlockContext.class,0);
a62d533 5016
		}
a62d533 5017
		public CatchTypeContext catchType() {
a62d533 5018
			return getRuleContext(CatchTypeContext.class,0);
a62d533 5019
		}
a62d533 5020
		public CatchClauseContext(ParserRuleContext parent, int invokingState) {
a62d533 5021
			super(parent, invokingState);
a62d533 5022
		}
a62d533 5023
		@Override public int getRuleIndex() { return RULE_catchClause; }
a62d533 5024
		@Override
a62d533 5025
		public void enterRule(ParseTreeListener listener) {
a62d533 5026
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCatchClause(this);
a62d533 5027
		}
a62d533 5028
		@Override
a62d533 5029
		public void exitRule(ParseTreeListener listener) {
a62d533 5030
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCatchClause(this);
a62d533 5031
		}
a62d533 5032
	}
a62d533 5033
a62d533 5034
	public final CatchClauseContext catchClause() throws RecognitionException {
a62d533 5035
		CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState());
a62d533 5036
		enterRule(_localctx, 142, RULE_catchClause);
a62d533 5037
		int _la;
a62d533 5038
		try {
a62d533 5039
			enterOuterAlt(_localctx, 1);
a62d533 5040
			{
a62d533 5041
			setState(928); match(CATCH);
a62d533 5042
			setState(929); match(LPAREN);
a62d533 5043
			setState(933);
a62d533 5044
			_errHandler.sync(this);
a62d533 5045
			_la = _input.LA(1);
a62d533 5046
			while (_la==FINAL || _la==AT) {
a62d533 5047
				{
a62d533 5048
				{
a62d533 5049
				setState(930); variableModifier();
a62d533 5050
				}
a62d533 5051
				}
a62d533 5052
				setState(935);
a62d533 5053
				_errHandler.sync(this);
a62d533 5054
				_la = _input.LA(1);
a62d533 5055
			}
a62d533 5056
			setState(936); catchType();
a62d533 5057
			setState(937); match(Identifier);
a62d533 5058
			setState(938); match(RPAREN);
a62d533 5059
			setState(939); block();
a62d533 5060
			}
a62d533 5061
		}
a62d533 5062
		catch (RecognitionException re) {
a62d533 5063
			_localctx.exception = re;
a62d533 5064
			_errHandler.reportError(this, re);
a62d533 5065
			_errHandler.recover(this, re);
a62d533 5066
		}
a62d533 5067
		finally {
a62d533 5068
			exitRule();
a62d533 5069
		}
a62d533 5070
		return _localctx;
a62d533 5071
	}
a62d533 5072
a62d533 5073
	public static class CatchTypeContext extends ParserRuleContext {
a62d533 5074
		public QualifiedNameContext qualifiedName(int i) {
a62d533 5075
			return getRuleContext(QualifiedNameContext.class,i);
a62d533 5076
		}
a62d533 5077
		public List<QualifiedNameContext> qualifiedName() {
a62d533 5078
			return getRuleContexts(QualifiedNameContext.class);
a62d533 5079
		}
a62d533 5080
		public CatchTypeContext(ParserRuleContext parent, int invokingState) {
a62d533 5081
			super(parent, invokingState);
a62d533 5082
		}
a62d533 5083
		@Override public int getRuleIndex() { return RULE_catchType; }
a62d533 5084
		@Override
a62d533 5085
		public void enterRule(ParseTreeListener listener) {
a62d533 5086
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCatchType(this);
a62d533 5087
		}
a62d533 5088
		@Override
a62d533 5089
		public void exitRule(ParseTreeListener listener) {
a62d533 5090
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCatchType(this);
a62d533 5091
		}
a62d533 5092
	}
a62d533 5093
a62d533 5094
	public final CatchTypeContext catchType() throws RecognitionException {
a62d533 5095
		CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState());
a62d533 5096
		enterRule(_localctx, 144, RULE_catchType);
a62d533 5097
		int _la;
a62d533 5098
		try {
a62d533 5099
			enterOuterAlt(_localctx, 1);
a62d533 5100
			{
a62d533 5101
			setState(941); qualifiedName();
a62d533 5102
			setState(946);
a62d533 5103
			_errHandler.sync(this);
a62d533 5104
			_la = _input.LA(1);
a62d533 5105
			while (_la==BITOR) {
a62d533 5106
				{
a62d533 5107
				{
a62d533 5108
				setState(942); match(BITOR);
a62d533 5109
				setState(943); qualifiedName();
a62d533 5110
				}
a62d533 5111
				}
a62d533 5112
				setState(948);
a62d533 5113
				_errHandler.sync(this);
a62d533 5114
				_la = _input.LA(1);
a62d533 5115
			}
a62d533 5116
			}
a62d533 5117
		}
a62d533 5118
		catch (RecognitionException re) {
a62d533 5119
			_localctx.exception = re;
a62d533 5120
			_errHandler.reportError(this, re);
a62d533 5121
			_errHandler.recover(this, re);
a62d533 5122
		}
a62d533 5123
		finally {
a62d533 5124
			exitRule();
a62d533 5125
		}
a62d533 5126
		return _localctx;
a62d533 5127
	}
a62d533 5128
a62d533 5129
	public static class FinallyBlockContext extends ParserRuleContext {
a62d533 5130
		public BlockContext block() {
a62d533 5131
			return getRuleContext(BlockContext.class,0);
a62d533 5132
		}
a62d533 5133
		public FinallyBlockContext(ParserRuleContext parent, int invokingState) {
a62d533 5134
			super(parent, invokingState);
a62d533 5135
		}
a62d533 5136
		@Override public int getRuleIndex() { return RULE_finallyBlock; }
a62d533 5137
		@Override
a62d533 5138
		public void enterRule(ParseTreeListener listener) {
a62d533 5139
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterFinallyBlock(this);
a62d533 5140
		}
a62d533 5141
		@Override
a62d533 5142
		public void exitRule(ParseTreeListener listener) {
a62d533 5143
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitFinallyBlock(this);
a62d533 5144
		}
a62d533 5145
	}
a62d533 5146
a62d533 5147
	public final FinallyBlockContext finallyBlock() throws RecognitionException {
a62d533 5148
		FinallyBlockContext _localctx = new FinallyBlockContext(_ctx, getState());
a62d533 5149
		enterRule(_localctx, 146, RULE_finallyBlock);
a62d533 5150
		try {
a62d533 5151
			enterOuterAlt(_localctx, 1);
a62d533 5152
			{
a62d533 5153
			setState(949); match(FINALLY);
a62d533 5154
			setState(950); block();
a62d533 5155
			}
a62d533 5156
		}
a62d533 5157
		catch (RecognitionException re) {
a62d533 5158
			_localctx.exception = re;
a62d533 5159
			_errHandler.reportError(this, re);
a62d533 5160
			_errHandler.recover(this, re);
a62d533 5161
		}
a62d533 5162
		finally {
a62d533 5163
			exitRule();
a62d533 5164
		}
a62d533 5165
		return _localctx;
a62d533 5166
	}
a62d533 5167
a62d533 5168
	public static class ResourceSpecificationContext extends ParserRuleContext {
a62d533 5169
		public ResourcesContext resources() {
a62d533 5170
			return getRuleContext(ResourcesContext.class,0);
a62d533 5171
		}
a62d533 5172
		public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) {
a62d533 5173
			super(parent, invokingState);
a62d533 5174
		}
a62d533 5175
		@Override public int getRuleIndex() { return RULE_resourceSpecification; }
a62d533 5176
		@Override
a62d533 5177
		public void enterRule(ParseTreeListener listener) {
a62d533 5178
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResourceSpecification(this);
a62d533 5179
		}
a62d533 5180
		@Override
a62d533 5181
		public void exitRule(ParseTreeListener listener) {
a62d533 5182
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResourceSpecification(this);
a62d533 5183
		}
a62d533 5184
	}
a62d533 5185
a62d533 5186
	public final ResourceSpecificationContext resourceSpecification() throws RecognitionException {
a62d533 5187
		ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState());
a62d533 5188
		enterRule(_localctx, 148, RULE_resourceSpecification);
a62d533 5189
		int _la;
a62d533 5190
		try {
a62d533 5191
			enterOuterAlt(_localctx, 1);
a62d533 5192
			{
a62d533 5193
			setState(952); match(LPAREN);
a62d533 5194
			setState(953); resources();
a62d533 5195
			setState(955);
a62d533 5196
			_la = _input.LA(1);
a62d533 5197
			if (_la==SEMI) {
a62d533 5198
				{
a62d533 5199
				setState(954); match(SEMI);
a62d533 5200
				}
a62d533 5201
			}
a62d533 5202
a62d533 5203
			setState(957); match(RPAREN);
a62d533 5204
			}
a62d533 5205
		}
a62d533 5206
		catch (RecognitionException re) {
a62d533 5207
			_localctx.exception = re;
a62d533 5208
			_errHandler.reportError(this, re);
a62d533 5209
			_errHandler.recover(this, re);
a62d533 5210
		}
a62d533 5211
		finally {
a62d533 5212
			exitRule();
a62d533 5213
		}
a62d533 5214
		return _localctx;
a62d533 5215
	}
a62d533 5216
a62d533 5217
	public static class ResourcesContext extends ParserRuleContext {
a62d533 5218
		public List<ResourceContext> resource() {
a62d533 5219
			return getRuleContexts(ResourceContext.class);
a62d533 5220
		}
a62d533 5221
		public ResourceContext resource(int i) {
a62d533 5222
			return getRuleContext(ResourceContext.class,i);
a62d533 5223
		}
a62d533 5224
		public ResourcesContext(ParserRuleContext parent, int invokingState) {
a62d533 5225
			super(parent, invokingState);
a62d533 5226
		}
a62d533 5227
		@Override public int getRuleIndex() { return RULE_resources; }
a62d533 5228
		@Override
a62d533 5229
		public void enterRule(ParseTreeListener listener) {
a62d533 5230
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResources(this);
a62d533 5231
		}
a62d533 5232
		@Override
a62d533 5233
		public void exitRule(ParseTreeListener listener) {
a62d533 5234
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResources(this);
a62d533 5235
		}
a62d533 5236
	}
a62d533 5237
a62d533 5238
	public final ResourcesContext resources() throws RecognitionException {
a62d533 5239
		ResourcesContext _localctx = new ResourcesContext(_ctx, getState());
a62d533 5240
		enterRule(_localctx, 150, RULE_resources);
a62d533 5241
		try {
a62d533 5242
			int _alt;
a62d533 5243
			enterOuterAlt(_localctx, 1);
a62d533 5244
			{
a62d533 5245
			setState(959); resource();
a62d533 5246
			setState(964);
a62d533 5247
			_errHandler.sync(this);
a62d533 5248
			_alt = getInterpreter().adaptivePredict(_input,111,_ctx);
a62d533 5249
			while ( _alt!=2 && _alt!=-1 ) {
a62d533 5250
				if ( _alt==1 ) {
a62d533 5251
					{
a62d533 5252
					{
a62d533 5253
					setState(960); match(SEMI);
a62d533 5254
					setState(961); resource();
a62d533 5255
					}
a62d533 5256
					} 
a62d533 5257
				}
a62d533 5258
				setState(966);
a62d533 5259
				_errHandler.sync(this);
a62d533 5260
				_alt = getInterpreter().adaptivePredict(_input,111,_ctx);
a62d533 5261
			}
a62d533 5262
			}
a62d533 5263
		}
a62d533 5264
		catch (RecognitionException re) {
a62d533 5265
			_localctx.exception = re;
a62d533 5266
			_errHandler.reportError(this, re);
a62d533 5267
			_errHandler.recover(this, re);
a62d533 5268
		}
a62d533 5269
		finally {
a62d533 5270
			exitRule();
a62d533 5271
		}
a62d533 5272
		return _localctx;
a62d533 5273
	}
a62d533 5274
a62d533 5275
	public static class ResourceContext extends ParserRuleContext {
a62d533 5276
		public List<VariableModifierContext> variableModifier() {
a62d533 5277
			return getRuleContexts(VariableModifierContext.class);
a62d533 5278
		}
a62d533 5279
		public VariableModifierContext variableModifier(int i) {
a62d533 5280
			return getRuleContext(VariableModifierContext.class,i);
a62d533 5281
		}
a62d533 5282
		public ExpressionContext expression() {
a62d533 5283
			return getRuleContext(ExpressionContext.class,0);
a62d533 5284
		}
a62d533 5285
		public VariableDeclaratorIdContext variableDeclaratorId() {
a62d533 5286
			return getRuleContext(VariableDeclaratorIdContext.class,0);
a62d533 5287
		}
a62d533 5288
		public ClassOrInterfaceTypeContext classOrInterfaceType() {
a62d533 5289
			return getRuleContext(ClassOrInterfaceTypeContext.class,0);
a62d533 5290
		}
a62d533 5291
		public ResourceContext(ParserRuleContext parent, int invokingState) {
a62d533 5292
			super(parent, invokingState);
a62d533 5293
		}
a62d533 5294
		@Override public int getRuleIndex() { return RULE_resource; }
a62d533 5295
		@Override
a62d533 5296
		public void enterRule(ParseTreeListener listener) {
a62d533 5297
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterResource(this);
a62d533 5298
		}
a62d533 5299
		@Override
a62d533 5300
		public void exitRule(ParseTreeListener listener) {
a62d533 5301
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitResource(this);
a62d533 5302
		}
a62d533 5303
	}
a62d533 5304
a62d533 5305
	public final ResourceContext resource() throws RecognitionException {
a62d533 5306
		ResourceContext _localctx = new ResourceContext(_ctx, getState());
a62d533 5307
		enterRule(_localctx, 152, RULE_resource);
a62d533 5308
		int _la;
a62d533 5309
		try {
a62d533 5310
			enterOuterAlt(_localctx, 1);
a62d533 5311
			{
a62d533 5312
			setState(970);
a62d533 5313
			_errHandler.sync(this);
a62d533 5314
			_la = _input.LA(1);
a62d533 5315
			while (_la==FINAL || _la==AT) {
a62d533 5316
				{
a62d533 5317
				{
a62d533 5318
				setState(967); variableModifier();
a62d533 5319
				}
a62d533 5320
				}
a62d533 5321
				setState(972);
a62d533 5322
				_errHandler.sync(this);
a62d533 5323
				_la = _input.LA(1);
a62d533 5324
			}
a62d533 5325
			setState(973); classOrInterfaceType();
a62d533 5326
			setState(974); variableDeclaratorId();
a62d533 5327
			setState(975); match(ASSIGN);
a62d533 5328
			setState(976); expression(0);
a62d533 5329
			}
a62d533 5330
		}
a62d533 5331
		catch (RecognitionException re) {
a62d533 5332
			_localctx.exception = re;
a62d533 5333
			_errHandler.reportError(this, re);
a62d533 5334
			_errHandler.recover(this, re);
a62d533 5335
		}
a62d533 5336
		finally {
a62d533 5337
			exitRule();
a62d533 5338
		}
a62d533 5339
		return _localctx;
a62d533 5340
	}
a62d533 5341
a62d533 5342
	public static class SwitchBlockStatementGroupContext extends ParserRuleContext {
a62d533 5343
		public List<BlockStatementContext> blockStatement() {
a62d533 5344
			return getRuleContexts(BlockStatementContext.class);
a62d533 5345
		}
a62d533 5346
		public SwitchLabelContext switchLabel(int i) {
a62d533 5347
			return getRuleContext(SwitchLabelContext.class,i);
a62d533 5348
		}
a62d533 5349
		public List<SwitchLabelContext> switchLabel() {
a62d533 5350
			return getRuleContexts(SwitchLabelContext.class);
a62d533 5351
		}
a62d533 5352
		public BlockStatementContext blockStatement(int i) {
a62d533 5353
			return getRuleContext(BlockStatementContext.class,i);
a62d533 5354
		}
a62d533 5355
		public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) {
a62d533 5356
			super(parent, invokingState);
a62d533 5357
		}
a62d533 5358
		@Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; }
a62d533 5359
		@Override
a62d533 5360
		public void enterRule(ParseTreeListener listener) {
a62d533 5361
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSwitchBlockStatementGroup(this);
a62d533 5362
		}
a62d533 5363
		@Override
a62d533 5364
		public void exitRule(ParseTreeListener listener) {
a62d533 5365
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSwitchBlockStatementGroup(this);
a62d533 5366
		}
a62d533 5367
	}
a62d533 5368
a62d533 5369
	public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException {
a62d533 5370
		SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState());
a62d533 5371
		enterRule(_localctx, 154, RULE_switchBlockStatementGroup);
a62d533 5372
		int _la;
a62d533 5373
		try {
a62d533 5374
			enterOuterAlt(_localctx, 1);
a62d533 5375
			{
a62d533 5376
			setState(979); 
a62d533 5377
			_errHandler.sync(this);
a62d533 5378
			_la = _input.LA(1);
a62d533 5379
			do {
a62d533 5380
				{
a62d533 5381
				{
a62d533 5382
				setState(978); switchLabel();
a62d533 5383
				}
a62d533 5384
				}
a62d533 5385
				setState(981); 
a62d533 5386
				_errHandler.sync(this);
a62d533 5387
				_la = _input.LA(1);
a62d533 5388
			} while ( _la==CASE || _la==DEFAULT );
a62d533 5389
			setState(984); 
a62d533 5390
			_errHandler.sync(this);
a62d533 5391
			_la = _input.LA(1);
a62d533 5392
			do {
a62d533 5393
				{
a62d533 5394
				{
a62d533 5395
				setState(983); blockStatement();
a62d533 5396
				}
a62d533 5397
				}
a62d533 5398
				setState(986); 
a62d533 5399
				_errHandler.sync(this);
a62d533 5400
				_la = _input.LA(1);
a62d533 5401
			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0) );
a62d533 5402
			}
a62d533 5403
		}
a62d533 5404
		catch (RecognitionException re) {
a62d533 5405
			_localctx.exception = re;
a62d533 5406
			_errHandler.reportError(this, re);
a62d533 5407
			_errHandler.recover(this, re);
a62d533 5408
		}
a62d533 5409
		finally {
a62d533 5410
			exitRule();
a62d533 5411
		}
a62d533 5412
		return _localctx;
a62d533 5413
	}
a62d533 5414
a62d533 5415
	public static class SwitchLabelContext extends ParserRuleContext {
a62d533 5416
		public ConstantExpressionContext constantExpression() {
a62d533 5417
			return getRuleContext(ConstantExpressionContext.class,0);
a62d533 5418
		}
a62d533 5419
		public EnumConstantNameContext enumConstantName() {
a62d533 5420
			return getRuleContext(EnumConstantNameContext.class,0);
a62d533 5421
		}
a62d533 5422
		public SwitchLabelContext(ParserRuleContext parent, int invokingState) {
a62d533 5423
			super(parent, invokingState);
a62d533 5424
		}
a62d533 5425
		@Override public int getRuleIndex() { return RULE_switchLabel; }
a62d533 5426
		@Override
a62d533 5427
		public void enterRule(ParseTreeListener listener) {
a62d533 5428
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSwitchLabel(this);
a62d533 5429
		}
a62d533 5430
		@Override
a62d533 5431
		public void exitRule(ParseTreeListener listener) {
a62d533 5432
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSwitchLabel(this);
a62d533 5433
		}
a62d533 5434
	}
a62d533 5435
a62d533 5436
	public final SwitchLabelContext switchLabel() throws RecognitionException {
a62d533 5437
		SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState());
a62d533 5438
		enterRule(_localctx, 156, RULE_switchLabel);
a62d533 5439
		try {
a62d533 5440
			setState(998);
a62d533 5441
			switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) {
a62d533 5442
			case 1:
a62d533 5443
				enterOuterAlt(_localctx, 1);
a62d533 5444
				{
a62d533 5445
				setState(988); match(CASE);
a62d533 5446
				setState(989); constantExpression();
a62d533 5447
				setState(990); match(COLON);
a62d533 5448
				}
a62d533 5449
				break;
a62d533 5450
a62d533 5451
			case 2:
a62d533 5452
				enterOuterAlt(_localctx, 2);
a62d533 5453
				{
a62d533 5454
				setState(992); match(CASE);
a62d533 5455
				setState(993); enumConstantName();
a62d533 5456
				setState(994); match(COLON);
a62d533 5457
				}
a62d533 5458
				break;
a62d533 5459
a62d533 5460
			case 3:
a62d533 5461
				enterOuterAlt(_localctx, 3);
a62d533 5462
				{
a62d533 5463
				setState(996); match(DEFAULT);
a62d533 5464
				setState(997); match(COLON);
a62d533 5465
				}
a62d533 5466
				break;
a62d533 5467
			}
a62d533 5468
		}
a62d533 5469
		catch (RecognitionException re) {
a62d533 5470
			_localctx.exception = re;
a62d533 5471
			_errHandler.reportError(this, re);
a62d533 5472
			_errHandler.recover(this, re);
a62d533 5473
		}
a62d533 5474
		finally {
a62d533 5475
			exitRule();
a62d533 5476
		}
a62d533 5477
		return _localctx;
a62d533 5478
	}
a62d533 5479
a62d533 5480
	public static class ForControlContext extends ParserRuleContext {
a62d533 5481
		public ForInitContext forInit() {
a62d533 5482
			return getRuleContext(ForInitContext.class,0);
a62d533 5483
		}
a62d533 5484
		public EnhancedForControlContext enhancedForControl() {
a62d533 5485
			return getRuleContext(EnhancedForControlContext.class,0);
a62d533 5486
		}
a62d533 5487
		public ExpressionContext expression() {
a62d533 5488
			return getRuleContext(ExpressionContext.class,0);
a62d533 5489
		}
a62d533 5490
		public ForUpdateContext forUpdate() {
a62d533 5491
			return getRuleContext(ForUpdateContext.class,0);
a62d533 5492
		}
a62d533 5493
		public ForControlContext(ParserRuleContext parent, int invokingState) {
a62d533 5494
			super(parent, invokingState);
a62d533 5495
		}
a62d533 5496
		@Override public int getRuleIndex() { return RULE_forControl; }
a62d533 5497
		@Override
a62d533 5498
		public void enterRule(ParseTreeListener listener) {
a62d533 5499
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForControl(this);
a62d533 5500
		}
a62d533 5501
		@Override
a62d533 5502
		public void exitRule(ParseTreeListener listener) {
a62d533 5503
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForControl(this);
a62d533 5504
		}
a62d533 5505
	}
a62d533 5506
a62d533 5507
	public final ForControlContext forControl() throws RecognitionException {
a62d533 5508
		ForControlContext _localctx = new ForControlContext(_ctx, getState());
a62d533 5509
		enterRule(_localctx, 158, RULE_forControl);
a62d533 5510
		int _la;
a62d533 5511
		try {
a62d533 5512
			setState(1012);
a62d533 5513
			switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) {
a62d533 5514
			case 1:
a62d533 5515
				enterOuterAlt(_localctx, 1);
a62d533 5516
				{
a62d533 5517
				setState(1000); enhancedForControl();
a62d533 5518
				}
a62d533 5519
				break;
a62d533 5520
a62d533 5521
			case 2:
a62d533 5522
				enterOuterAlt(_localctx, 2);
a62d533 5523
				{
a62d533 5524
				setState(1002);
a62d533 5525
				_la = _input.LA(1);
a62d533 5526
				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) {
a62d533 5527
					{
a62d533 5528
					setState(1001); forInit();
a62d533 5529
					}
a62d533 5530
				}
a62d533 5531
a62d533 5532
				setState(1004); match(SEMI);
a62d533 5533
				setState(1006);
a62d533 5534
				_la = _input.LA(1);
a62d533 5535
				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 5536
					{
a62d533 5537
					setState(1005); expression(0);
a62d533 5538
					}
a62d533 5539
				}
a62d533 5540
a62d533 5541
				setState(1008); match(SEMI);
a62d533 5542
				setState(1010);
a62d533 5543
				_la = _input.LA(1);
a62d533 5544
				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 5545
					{
a62d533 5546
					setState(1009); forUpdate();
a62d533 5547
					}
a62d533 5548
				}
a62d533 5549
a62d533 5550
				}
a62d533 5551
				break;
a62d533 5552
			}
a62d533 5553
		}
a62d533 5554
		catch (RecognitionException re) {
a62d533 5555
			_localctx.exception = re;
a62d533 5556
			_errHandler.reportError(this, re);
a62d533 5557
			_errHandler.recover(this, re);
a62d533 5558
		}
a62d533 5559
		finally {
a62d533 5560
			exitRule();
a62d533 5561
		}
a62d533 5562
		return _localctx;
a62d533 5563
	}
a62d533 5564
a62d533 5565
	public static class ForInitContext extends ParserRuleContext {
a62d533 5566
		public ExpressionListContext expressionList() {
a62d533 5567
			return getRuleContext(ExpressionListContext.class,0);
a62d533 5568
		}
a62d533 5569
		public LocalVariableDeclarationContext localVariableDeclaration() {
a62d533 5570
			return getRuleContext(LocalVariableDeclarationContext.class,0);
a62d533 5571
		}
a62d533 5572
		public ForInitContext(ParserRuleContext parent, int invokingState) {
a62d533 5573
			super(parent, invokingState);
a62d533 5574
		}
a62d533 5575
		@Override public int getRuleIndex() { return RULE_forInit; }
a62d533 5576
		@Override
a62d533 5577
		public void enterRule(ParseTreeListener listener) {
a62d533 5578
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForInit(this);
a62d533 5579
		}
a62d533 5580
		@Override
a62d533 5581
		public void exitRule(ParseTreeListener listener) {
a62d533 5582
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForInit(this);
a62d533 5583
		}
a62d533 5584
	}
a62d533 5585
a62d533 5586
	public final ForInitContext forInit() throws RecognitionException {
a62d533 5587
		ForInitContext _localctx = new ForInitContext(_ctx, getState());
a62d533 5588
		enterRule(_localctx, 160, RULE_forInit);
a62d533 5589
		try {
a62d533 5590
			setState(1016);
a62d533 5591
			switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) {
a62d533 5592
			case 1:
a62d533 5593
				enterOuterAlt(_localctx, 1);
a62d533 5594
				{
a62d533 5595
				setState(1014); localVariableDeclaration();
a62d533 5596
				}
a62d533 5597
				break;
a62d533 5598
a62d533 5599
			case 2:
a62d533 5600
				enterOuterAlt(_localctx, 2);
a62d533 5601
				{
a62d533 5602
				setState(1015); expressionList();
a62d533 5603
				}
a62d533 5604
				break;
a62d533 5605
			}
a62d533 5606
		}
a62d533 5607
		catch (RecognitionException re) {
a62d533 5608
			_localctx.exception = re;
a62d533 5609
			_errHandler.reportError(this, re);
a62d533 5610
			_errHandler.recover(this, re);
a62d533 5611
		}
a62d533 5612
		finally {
a62d533 5613
			exitRule();
a62d533 5614
		}
a62d533 5615
		return _localctx;
a62d533 5616
	}
a62d533 5617
a62d533 5618
	public static class EnhancedForControlContext extends ParserRuleContext {
a62d533 5619
		public List<VariableModifierContext> variableModifier() {
a62d533 5620
			return getRuleContexts(VariableModifierContext.class);
a62d533 5621
		}
a62d533 5622
		public VariableModifierContext variableModifier(int i) {
a62d533 5623
			return getRuleContext(VariableModifierContext.class,i);
a62d533 5624
		}
a62d533 5625
		public TypeContext type() {
a62d533 5626
			return getRuleContext(TypeContext.class,0);
a62d533 5627
		}
a62d533 5628
		public ExpressionContext expression() {
a62d533 5629
			return getRuleContext(ExpressionContext.class,0);
a62d533 5630
		}
a62d533 5631
		public VariableDeclaratorIdContext variableDeclaratorId() {
a62d533 5632
			return getRuleContext(VariableDeclaratorIdContext.class,0);
a62d533 5633
		}
a62d533 5634
		public EnhancedForControlContext(ParserRuleContext parent, int invokingState) {
a62d533 5635
			super(parent, invokingState);
a62d533 5636
		}
a62d533 5637
		@Override public int getRuleIndex() { return RULE_enhancedForControl; }
a62d533 5638
		@Override
a62d533 5639
		public void enterRule(ParseTreeListener listener) {
a62d533 5640
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterEnhancedForControl(this);
a62d533 5641
		}
a62d533 5642
		@Override
a62d533 5643
		public void exitRule(ParseTreeListener listener) {
a62d533 5644
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitEnhancedForControl(this);
a62d533 5645
		}
a62d533 5646
	}
a62d533 5647
a62d533 5648
	public final EnhancedForControlContext enhancedForControl() throws RecognitionException {
a62d533 5649
		EnhancedForControlContext _localctx = new EnhancedForControlContext(_ctx, getState());
a62d533 5650
		enterRule(_localctx, 162, RULE_enhancedForControl);
a62d533 5651
		int _la;
a62d533 5652
		try {
a62d533 5653
			enterOuterAlt(_localctx, 1);
a62d533 5654
			{
a62d533 5655
			setState(1021);
a62d533 5656
			_errHandler.sync(this);
a62d533 5657
			_la = _input.LA(1);
a62d533 5658
			while (_la==FINAL || _la==AT) {
a62d533 5659
				{
a62d533 5660
				{
a62d533 5661
				setState(1018); variableModifier();
a62d533 5662
				}
a62d533 5663
				}
a62d533 5664
				setState(1023);
a62d533 5665
				_errHandler.sync(this);
a62d533 5666
				_la = _input.LA(1);
a62d533 5667
			}
a62d533 5668
			setState(1024); type();
a62d533 5669
			setState(1025); variableDeclaratorId();
a62d533 5670
			setState(1026); match(COLON);
a62d533 5671
			setState(1027); expression(0);
a62d533 5672
			}
a62d533 5673
		}
a62d533 5674
		catch (RecognitionException re) {
a62d533 5675
			_localctx.exception = re;
a62d533 5676
			_errHandler.reportError(this, re);
a62d533 5677
			_errHandler.recover(this, re);
a62d533 5678
		}
a62d533 5679
		finally {
a62d533 5680
			exitRule();
a62d533 5681
		}
a62d533 5682
		return _localctx;
a62d533 5683
	}
a62d533 5684
a62d533 5685
	public static class ForUpdateContext extends ParserRuleContext {
a62d533 5686
		public ExpressionListContext expressionList() {
a62d533 5687
			return getRuleContext(ExpressionListContext.class,0);
a62d533 5688
		}
a62d533 5689
		public ForUpdateContext(ParserRuleContext parent, int invokingState) {
a62d533 5690
			super(parent, invokingState);
a62d533 5691
		}
a62d533 5692
		@Override public int getRuleIndex() { return RULE_forUpdate; }
a62d533 5693
		@Override
a62d533 5694
		public void enterRule(ParseTreeListener listener) {
a62d533 5695
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterForUpdate(this);
a62d533 5696
		}
a62d533 5697
		@Override
a62d533 5698
		public void exitRule(ParseTreeListener listener) {
a62d533 5699
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitForUpdate(this);
a62d533 5700
		}
a62d533 5701
	}
a62d533 5702
a62d533 5703
	public final ForUpdateContext forUpdate() throws RecognitionException {
a62d533 5704
		ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState());
a62d533 5705
		enterRule(_localctx, 164, RULE_forUpdate);
a62d533 5706
		try {
a62d533 5707
			enterOuterAlt(_localctx, 1);
a62d533 5708
			{
a62d533 5709
			setState(1029); expressionList();
a62d533 5710
			}
a62d533 5711
		}
a62d533 5712
		catch (RecognitionException re) {
a62d533 5713
			_localctx.exception = re;
a62d533 5714
			_errHandler.reportError(this, re);
a62d533 5715
			_errHandler.recover(this, re);
a62d533 5716
		}
a62d533 5717
		finally {
a62d533 5718
			exitRule();
a62d533 5719
		}
a62d533 5720
		return _localctx;
a62d533 5721
	}
a62d533 5722
a62d533 5723
	public static class ParExpressionContext extends ParserRuleContext {
a62d533 5724
		public ExpressionContext expression() {
a62d533 5725
			return getRuleContext(ExpressionContext.class,0);
a62d533 5726
		}
a62d533 5727
		public ParExpressionContext(ParserRuleContext parent, int invokingState) {
a62d533 5728
			super(parent, invokingState);
a62d533 5729
		}
a62d533 5730
		@Override public int getRuleIndex() { return RULE_parExpression; }
a62d533 5731
		@Override
a62d533 5732
		public void enterRule(ParseTreeListener listener) {
a62d533 5733
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterParExpression(this);
a62d533 5734
		}
a62d533 5735
		@Override
a62d533 5736
		public void exitRule(ParseTreeListener listener) {
a62d533 5737
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitParExpression(this);
a62d533 5738
		}
a62d533 5739
	}
a62d533 5740
a62d533 5741
	public final ParExpressionContext parExpression() throws RecognitionException {
a62d533 5742
		ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState());
a62d533 5743
		enterRule(_localctx, 166, RULE_parExpression);
a62d533 5744
		try {
a62d533 5745
			enterOuterAlt(_localctx, 1);
a62d533 5746
			{
a62d533 5747
			setState(1031); match(LPAREN);
a62d533 5748
			setState(1032); expression(0);
a62d533 5749
			setState(1033); match(RPAREN);
a62d533 5750
			}
a62d533 5751
		}
a62d533 5752
		catch (RecognitionException re) {
a62d533 5753
			_localctx.exception = re;
a62d533 5754
			_errHandler.reportError(this, re);
a62d533 5755
			_errHandler.recover(this, re);
a62d533 5756
		}
a62d533 5757
		finally {
a62d533 5758
			exitRule();
a62d533 5759
		}
a62d533 5760
		return _localctx;
a62d533 5761
	}
a62d533 5762
a62d533 5763
	public static class ExpressionListContext extends ParserRuleContext {
a62d533 5764
		public ExpressionContext expression(int i) {
a62d533 5765
			return getRuleContext(ExpressionContext.class,i);
a62d533 5766
		}
a62d533 5767
		public List<ExpressionContext> expression() {
a62d533 5768
			return getRuleContexts(ExpressionContext.class);
a62d533 5769
		}
a62d533 5770
		public ExpressionListContext(ParserRuleContext parent, int invokingState) {
a62d533 5771
			super(parent, invokingState);
a62d533 5772
		}
a62d533 5773
		@Override public int getRuleIndex() { return RULE_expressionList; }
a62d533 5774
		@Override
a62d533 5775
		public void enterRule(ParseTreeListener listener) {
a62d533 5776
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExpressionList(this);
a62d533 5777
		}
a62d533 5778
		@Override
a62d533 5779
		public void exitRule(ParseTreeListener listener) {
a62d533 5780
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExpressionList(this);
a62d533 5781
		}
a62d533 5782
	}
a62d533 5783
a62d533 5784
	public final ExpressionListContext expressionList() throws RecognitionException {
a62d533 5785
		ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState());
a62d533 5786
		enterRule(_localctx, 168, RULE_expressionList);
a62d533 5787
		int _la;
a62d533 5788
		try {
a62d533 5789
			enterOuterAlt(_localctx, 1);
a62d533 5790
			{
a62d533 5791
			setState(1035); expression(0);
a62d533 5792
			setState(1040);
a62d533 5793
			_errHandler.sync(this);
a62d533 5794
			_la = _input.LA(1);
a62d533 5795
			while (_la==COMMA) {
a62d533 5796
				{
a62d533 5797
				{
a62d533 5798
				setState(1036); match(COMMA);
a62d533 5799
				setState(1037); expression(0);
a62d533 5800
				}
a62d533 5801
				}
a62d533 5802
				setState(1042);
a62d533 5803
				_errHandler.sync(this);
a62d533 5804
				_la = _input.LA(1);
a62d533 5805
			}
a62d533 5806
			}
a62d533 5807
		}
a62d533 5808
		catch (RecognitionException re) {
a62d533 5809
			_localctx.exception = re;
a62d533 5810
			_errHandler.reportError(this, re);
a62d533 5811
			_errHandler.recover(this, re);
a62d533 5812
		}
a62d533 5813
		finally {
a62d533 5814
			exitRule();
a62d533 5815
		}
a62d533 5816
		return _localctx;
a62d533 5817
	}
a62d533 5818
a62d533 5819
	public static class StatementExpressionContext extends ParserRuleContext {
a62d533 5820
		public ExpressionContext expression() {
a62d533 5821
			return getRuleContext(ExpressionContext.class,0);
a62d533 5822
		}
a62d533 5823
		public StatementExpressionContext(ParserRuleContext parent, int invokingState) {
a62d533 5824
			super(parent, invokingState);
a62d533 5825
		}
a62d533 5826
		@Override public int getRuleIndex() { return RULE_statementExpression; }
a62d533 5827
		@Override
a62d533 5828
		public void enterRule(ParseTreeListener listener) {
a62d533 5829
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterStatementExpression(this);
a62d533 5830
		}
a62d533 5831
		@Override
a62d533 5832
		public void exitRule(ParseTreeListener listener) {
a62d533 5833
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitStatementExpression(this);
a62d533 5834
		}
a62d533 5835
	}
a62d533 5836
a62d533 5837
	public final StatementExpressionContext statementExpression() throws RecognitionException {
a62d533 5838
		StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState());
a62d533 5839
		enterRule(_localctx, 170, RULE_statementExpression);
a62d533 5840
		try {
a62d533 5841
			enterOuterAlt(_localctx, 1);
a62d533 5842
			{
a62d533 5843
			setState(1043); expression(0);
a62d533 5844
			}
a62d533 5845
		}
a62d533 5846
		catch (RecognitionException re) {
a62d533 5847
			_localctx.exception = re;
a62d533 5848
			_errHandler.reportError(this, re);
a62d533 5849
			_errHandler.recover(this, re);
a62d533 5850
		}
a62d533 5851
		finally {
a62d533 5852
			exitRule();
a62d533 5853
		}
a62d533 5854
		return _localctx;
a62d533 5855
	}
a62d533 5856
a62d533 5857
	public static class ConstantExpressionContext extends ParserRuleContext {
a62d533 5858
		public ExpressionContext expression() {
a62d533 5859
			return getRuleContext(ExpressionContext.class,0);
a62d533 5860
		}
a62d533 5861
		public ConstantExpressionContext(ParserRuleContext parent, int invokingState) {
a62d533 5862
			super(parent, invokingState);
a62d533 5863
		}
a62d533 5864
		@Override public int getRuleIndex() { return RULE_constantExpression; }
a62d533 5865
		@Override
a62d533 5866
		public void enterRule(ParseTreeListener listener) {
a62d533 5867
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterConstantExpression(this);
a62d533 5868
		}
a62d533 5869
		@Override
a62d533 5870
		public void exitRule(ParseTreeListener listener) {
a62d533 5871
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitConstantExpression(this);
a62d533 5872
		}
a62d533 5873
	}
a62d533 5874
a62d533 5875
	public final ConstantExpressionContext constantExpression() throws RecognitionException {
a62d533 5876
		ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState());
a62d533 5877
		enterRule(_localctx, 172, RULE_constantExpression);
a62d533 5878
		try {
a62d533 5879
			enterOuterAlt(_localctx, 1);
a62d533 5880
			{
a62d533 5881
			setState(1045); expression(0);
a62d533 5882
			}
a62d533 5883
		}
a62d533 5884
		catch (RecognitionException re) {
a62d533 5885
			_localctx.exception = re;
a62d533 5886
			_errHandler.reportError(this, re);
a62d533 5887
			_errHandler.recover(this, re);
a62d533 5888
		}
a62d533 5889
		finally {
a62d533 5890
			exitRule();
a62d533 5891
		}
a62d533 5892
		return _localctx;
a62d533 5893
	}
a62d533 5894
a62d533 5895
	public static class ExpressionContext extends ParserRuleContext {
a62d533 5896
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
a62d533 5897
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
a62d533 5898
		}
a62d533 5899
		public ExpressionContext expression(int i) {
a62d533 5900
			return getRuleContext(ExpressionContext.class,i);
a62d533 5901
		}
a62d533 5902
		public ExplicitGenericInvocationContext explicitGenericInvocation() {
a62d533 5903
			return getRuleContext(ExplicitGenericInvocationContext.class,0);
a62d533 5904
		}
a62d533 5905
		public PrimaryContext primary() {
a62d533 5906
			return getRuleContext(PrimaryContext.class,0);
a62d533 5907
		}
a62d533 5908
		public ExpressionListContext expressionList() {
a62d533 5909
			return getRuleContext(ExpressionListContext.class,0);
a62d533 5910
		}
a62d533 5911
		public SuperSuffixContext superSuffix() {
a62d533 5912
			return getRuleContext(SuperSuffixContext.class,0);
a62d533 5913
		}
a62d533 5914
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 5915
		public TypeContext type() {
a62d533 5916
			return getRuleContext(TypeContext.class,0);
a62d533 5917
		}
a62d533 5918
		public List<ExpressionContext> expression() {
a62d533 5919
			return getRuleContexts(ExpressionContext.class);
a62d533 5920
		}
a62d533 5921
		public InnerCreatorContext innerCreator() {
a62d533 5922
			return getRuleContext(InnerCreatorContext.class,0);
a62d533 5923
		}
a62d533 5924
		public CreatorContext creator() {
a62d533 5925
			return getRuleContext(CreatorContext.class,0);
a62d533 5926
		}
a62d533 5927
		public ExpressionContext(ParserRuleContext parent, int invokingState) {
a62d533 5928
			super(parent, invokingState);
a62d533 5929
		}
a62d533 5930
		@Override public int getRuleIndex() { return RULE_expression; }
a62d533 5931
		@Override
a62d533 5932
		public void enterRule(ParseTreeListener listener) {
a62d533 5933
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExpression(this);
a62d533 5934
		}
a62d533 5935
		@Override
a62d533 5936
		public void exitRule(ParseTreeListener listener) {
a62d533 5937
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExpression(this);
a62d533 5938
		}
a62d533 5939
	}
a62d533 5940
a62d533 5941
	public final ExpressionContext expression() throws RecognitionException {
a62d533 5942
		return expression(0);
a62d533 5943
	}
a62d533 5944
a62d533 5945
	private ExpressionContext expression(int _p) throws RecognitionException {
a62d533 5946
		ParserRuleContext _parentctx = _ctx;
a62d533 5947
		int _parentState = getState();
a62d533 5948
		ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
a62d533 5949
		ExpressionContext _prevctx = _localctx;
a62d533 5950
		int _startState = 174;
a62d533 5951
		enterRecursionRule(_localctx, 174, RULE_expression, _p);
a62d533 5952
		int _la;
a62d533 5953
		try {
a62d533 5954
			int _alt;
a62d533 5955
			enterOuterAlt(_localctx, 1);
a62d533 5956
			{
a62d533 5957
			setState(1060);
a62d533 5958
			switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) {
a62d533 5959
			case 1:
a62d533 5960
				{
a62d533 5961
				setState(1048); match(LPAREN);
a62d533 5962
				setState(1049); type();
a62d533 5963
				setState(1050); match(RPAREN);
a62d533 5964
				setState(1051); expression(17);
a62d533 5965
				}
a62d533 5966
				break;
a62d533 5967
a62d533 5968
			case 2:
a62d533 5969
				{
a62d533 5970
				setState(1053);
a62d533 5971
				_la = _input.LA(1);
a62d533 5972
				if ( !(((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (ADD - 79)) | (1L << (SUB - 79)))) != 0)) ) {
a62d533 5973
				_errHandler.recoverInline(this);
a62d533 5974
				}
a62d533 5975
				consume();
a62d533 5976
				setState(1054); expression(15);
a62d533 5977
				}
a62d533 5978
				break;
a62d533 5979
a62d533 5980
			case 3:
a62d533 5981
				{
a62d533 5982
				setState(1055);
a62d533 5983
				_la = _input.LA(1);
a62d533 5984
				if ( !(_la==BANG || _la==TILDE) ) {
a62d533 5985
				_errHandler.recoverInline(this);
a62d533 5986
				}
a62d533 5987
				consume();
a62d533 5988
				setState(1056); expression(14);
a62d533 5989
				}
a62d533 5990
				break;
a62d533 5991
a62d533 5992
			case 4:
a62d533 5993
				{
a62d533 5994
				setState(1057); primary();
a62d533 5995
				}
a62d533 5996
				break;
a62d533 5997
a62d533 5998
			case 5:
a62d533 5999
				{
a62d533 6000
				setState(1058); match(NEW);
a62d533 6001
				setState(1059); creator();
a62d533 6002
				}
a62d533 6003
				break;
a62d533 6004
			}
a62d533 6005
			_ctx.stop = _input.LT(-1);
a62d533 6006
			setState(1160);
a62d533 6007
			_errHandler.sync(this);
a62d533 6008
			_alt = getInterpreter().adaptivePredict(_input,129,_ctx);
a62d533 6009
			while ( _alt!=2 && _alt!=-1 ) {
a62d533 6010
				if ( _alt==1 ) {
a62d533 6011
					if ( _parseListeners!=null ) triggerExitRuleEvent();
a62d533 6012
					_prevctx = _localctx;
a62d533 6013
					{
a62d533 6014
					setState(1158);
a62d533 6015
					switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) {
a62d533 6016
					case 1:
a62d533 6017
						{
a62d533 6018
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6019
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6020
						setState(1062);
a62d533 6021
						if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
a62d533 6022
						setState(1063);
a62d533 6023
						_la = _input.LA(1);
a62d533 6024
						if ( !(((((_la - 83)) & ~0x3f) == 0 && ((1L << (_la - 83)) & ((1L << (MUL - 83)) | (1L << (DIV - 83)) | (1L << (MOD - 83)))) != 0)) ) {
a62d533 6025
						_errHandler.recoverInline(this);
a62d533 6026
						}
a62d533 6027
						consume();
a62d533 6028
						setState(1064); expression(14);
a62d533 6029
						}
a62d533 6030
						break;
a62d533 6031
a62d533 6032
					case 2:
a62d533 6033
						{
a62d533 6034
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6035
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6036
						setState(1065);
a62d533 6037
						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
a62d533 6038
						setState(1066);
a62d533 6039
						_la = _input.LA(1);
a62d533 6040
						if ( !(_la==ADD || _la==SUB) ) {
a62d533 6041
						_errHandler.recoverInline(this);
a62d533 6042
						}
a62d533 6043
						consume();
a62d533 6044
						setState(1067); expression(13);
a62d533 6045
						}
a62d533 6046
						break;
a62d533 6047
a62d533 6048
					case 3:
a62d533 6049
						{
a62d533 6050
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6051
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6052
						setState(1068);
a62d533 6053
						if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
a62d533 6054
						setState(1076);
a62d533 6055
						switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) {
a62d533 6056
						case 1:
a62d533 6057
							{
a62d533 6058
							setState(1069); match(LT);
a62d533 6059
							setState(1070); match(LT);
a62d533 6060
							}
a62d533 6061
							break;
a62d533 6062
a62d533 6063
						case 2:
a62d533 6064
							{
a62d533 6065
							setState(1071); match(GT);
a62d533 6066
							setState(1072); match(GT);
a62d533 6067
							setState(1073); match(GT);
a62d533 6068
							}
a62d533 6069
							break;
a62d533 6070
a62d533 6071
						case 3:
a62d533 6072
							{
a62d533 6073
							setState(1074); match(GT);
a62d533 6074
							setState(1075); match(GT);
a62d533 6075
							}
a62d533 6076
							break;
a62d533 6077
						}
a62d533 6078
						setState(1078); expression(12);
a62d533 6079
						}
a62d533 6080
						break;
a62d533 6081
a62d533 6082
					case 4:
a62d533 6083
						{
a62d533 6084
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6085
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6086
						setState(1079);
a62d533 6087
						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
a62d533 6088
						setState(1080);
a62d533 6089
						_la = _input.LA(1);
a62d533 6090
						if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (GT - 67)) | (1L << (LT - 67)) | (1L << (LE - 67)) | (1L << (GE - 67)))) != 0)) ) {
a62d533 6091
						_errHandler.recoverInline(this);
a62d533 6092
						}
a62d533 6093
						consume();
a62d533 6094
						setState(1081); expression(11);
a62d533 6095
						}
a62d533 6096
						break;
a62d533 6097
a62d533 6098
					case 5:
a62d533 6099
						{
a62d533 6100
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6101
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6102
						setState(1082);
a62d533 6103
						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
a62d533 6104
						setState(1083);
a62d533 6105
						_la = _input.LA(1);
a62d533 6106
						if ( !(_la==EQUAL || _la==NOTEQUAL) ) {
a62d533 6107
						_errHandler.recoverInline(this);
a62d533 6108
						}
a62d533 6109
						consume();
a62d533 6110
						setState(1084); expression(9);
a62d533 6111
						}
a62d533 6112
						break;
a62d533 6113
a62d533 6114
					case 6:
a62d533 6115
						{
a62d533 6116
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6117
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6118
						setState(1085);
a62d533 6119
						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
a62d533 6120
						setState(1086); match(BITAND);
a62d533 6121
						setState(1087); expression(8);
a62d533 6122
						}
a62d533 6123
						break;
a62d533 6124
a62d533 6125
					case 7:
a62d533 6126
						{
a62d533 6127
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6128
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6129
						setState(1088);
a62d533 6130
						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
a62d533 6131
						setState(1089); match(CARET);
a62d533 6132
						setState(1090); expression(7);
a62d533 6133
						}
a62d533 6134
						break;
a62d533 6135
a62d533 6136
					case 8:
a62d533 6137
						{
a62d533 6138
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6139
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6140
						setState(1091);
a62d533 6141
						if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
a62d533 6142
						setState(1092); match(BITOR);
a62d533 6143
						setState(1093); expression(6);
a62d533 6144
						}
a62d533 6145
						break;
a62d533 6146
a62d533 6147
					case 9:
a62d533 6148
						{
a62d533 6149
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6150
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6151
						setState(1094);
a62d533 6152
						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
a62d533 6153
						setState(1095); match(AND);
a62d533 6154
						setState(1096); expression(5);
a62d533 6155
						}
a62d533 6156
						break;
a62d533 6157
a62d533 6158
					case 10:
a62d533 6159
						{
a62d533 6160
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6161
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6162
						setState(1097);
a62d533 6163
						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
a62d533 6164
						setState(1098); match(OR);
a62d533 6165
						setState(1099); expression(4);
a62d533 6166
						}
a62d533 6167
						break;
a62d533 6168
a62d533 6169
					case 11:
a62d533 6170
						{
a62d533 6171
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6172
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6173
						setState(1100);
a62d533 6174
						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
a62d533 6175
						setState(1101); match(QUESTION);
a62d533 6176
						setState(1102); expression(0);
a62d533 6177
						setState(1103); match(COLON);
a62d533 6178
						setState(1104); expression(3);
a62d533 6179
						}
a62d533 6180
						break;
a62d533 6181
a62d533 6182
					case 12:
a62d533 6183
						{
a62d533 6184
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6185
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6186
						setState(1106);
a62d533 6187
						if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
a62d533 6188
						setState(1119);
a62d533 6189
						switch (_input.LA(1)) {
a62d533 6190
						case ASSIGN:
a62d533 6191
							{
a62d533 6192
							setState(1107); match(ASSIGN);
a62d533 6193
							}
a62d533 6194
							break;
a62d533 6195
						case ADD_ASSIGN:
a62d533 6196
							{
a62d533 6197
							setState(1108); match(ADD_ASSIGN);
a62d533 6198
							}
a62d533 6199
							break;
a62d533 6200
						case SUB_ASSIGN:
a62d533 6201
							{
a62d533 6202
							setState(1109); match(SUB_ASSIGN);
a62d533 6203
							}
a62d533 6204
							break;
a62d533 6205
						case MUL_ASSIGN:
a62d533 6206
							{
a62d533 6207
							setState(1110); match(MUL_ASSIGN);
a62d533 6208
							}
a62d533 6209
							break;
a62d533 6210
						case DIV_ASSIGN:
a62d533 6211
							{
a62d533 6212
							setState(1111); match(DIV_ASSIGN);
a62d533 6213
							}
a62d533 6214
							break;
a62d533 6215
						case AND_ASSIGN:
a62d533 6216
							{
a62d533 6217
							setState(1112); match(AND_ASSIGN);
a62d533 6218
							}
a62d533 6219
							break;
a62d533 6220
						case OR_ASSIGN:
a62d533 6221
							{
a62d533 6222
							setState(1113); match(OR_ASSIGN);
a62d533 6223
							}
a62d533 6224
							break;
a62d533 6225
						case XOR_ASSIGN:
a62d533 6226
							{
a62d533 6227
							setState(1114); match(XOR_ASSIGN);
a62d533 6228
							}
a62d533 6229
							break;
a62d533 6230
						case RSHIFT_ASSIGN:
a62d533 6231
							{
a62d533 6232
							setState(1115); match(RSHIFT_ASSIGN);
a62d533 6233
							}
a62d533 6234
							break;
a62d533 6235
						case URSHIFT_ASSIGN:
a62d533 6236
							{
a62d533 6237
							setState(1116); match(URSHIFT_ASSIGN);
a62d533 6238
							}
a62d533 6239
							break;
a62d533 6240
						case LSHIFT_ASSIGN:
a62d533 6241
							{
a62d533 6242
							setState(1117); match(LSHIFT_ASSIGN);
a62d533 6243
							}
a62d533 6244
							break;
a62d533 6245
						case MOD_ASSIGN:
a62d533 6246
							{
a62d533 6247
							setState(1118); match(MOD_ASSIGN);
a62d533 6248
							}
a62d533 6249
							break;
a62d533 6250
						default:
a62d533 6251
							throw new NoViableAltException(this);
a62d533 6252
						}
a62d533 6253
						setState(1121); expression(2);
a62d533 6254
						}
a62d533 6255
						break;
a62d533 6256
a62d533 6257
					case 13:
a62d533 6258
						{
a62d533 6259
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6260
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6261
						setState(1122);
a62d533 6262
						if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)");
a62d533 6263
						setState(1123); match(DOT);
a62d533 6264
						setState(1124); match(Identifier);
a62d533 6265
						}
a62d533 6266
						break;
a62d533 6267
a62d533 6268
					case 14:
a62d533 6269
						{
a62d533 6270
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6271
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6272
						setState(1125);
a62d533 6273
						if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)");
a62d533 6274
						setState(1126); match(DOT);
a62d533 6275
						setState(1127); match(THIS);
a62d533 6276
						}
a62d533 6277
						break;
a62d533 6278
a62d533 6279
					case 15:
a62d533 6280
						{
a62d533 6281
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6282
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6283
						setState(1128);
a62d533 6284
						if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)");
a62d533 6285
						setState(1129); match(DOT);
a62d533 6286
						setState(1130); match(NEW);
a62d533 6287
						setState(1132);
a62d533 6288
						_la = _input.LA(1);
a62d533 6289
						if (_la==LT) {
a62d533 6290
							{
a62d533 6291
							setState(1131); nonWildcardTypeArguments();
a62d533 6292
							}
a62d533 6293
						}
a62d533 6294
a62d533 6295
						setState(1134); innerCreator();
a62d533 6296
						}
a62d533 6297
						break;
a62d533 6298
a62d533 6299
					case 16:
a62d533 6300
						{
a62d533 6301
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6302
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6303
						setState(1135);
a62d533 6304
						if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)");
a62d533 6305
						setState(1136); match(DOT);
a62d533 6306
						setState(1137); match(SUPER);
a62d533 6307
						setState(1138); superSuffix();
a62d533 6308
						}
a62d533 6309
						break;
a62d533 6310
a62d533 6311
					case 17:
a62d533 6312
						{
a62d533 6313
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6314
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6315
						setState(1139);
a62d533 6316
						if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)");
a62d533 6317
						setState(1140); match(DOT);
a62d533 6318
						setState(1141); explicitGenericInvocation();
a62d533 6319
						}
a62d533 6320
						break;
a62d533 6321
a62d533 6322
					case 18:
a62d533 6323
						{
a62d533 6324
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6325
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6326
						setState(1142);
a62d533 6327
						if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)");
a62d533 6328
						setState(1143); match(LBRACK);
a62d533 6329
						setState(1144); expression(0);
a62d533 6330
						setState(1145); match(RBRACK);
a62d533 6331
						}
a62d533 6332
						break;
a62d533 6333
a62d533 6334
					case 19:
a62d533 6335
						{
a62d533 6336
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6337
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6338
						setState(1147);
a62d533 6339
						if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)");
a62d533 6340
						setState(1148); match(LPAREN);
a62d533 6341
						setState(1150);
a62d533 6342
						_la = _input.LA(1);
a62d533 6343
						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 6344
							{
a62d533 6345
							setState(1149); expressionList();
a62d533 6346
							}
a62d533 6347
						}
a62d533 6348
a62d533 6349
						setState(1152); match(RPAREN);
a62d533 6350
						}
a62d533 6351
						break;
a62d533 6352
a62d533 6353
					case 20:
a62d533 6354
						{
a62d533 6355
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6356
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6357
						setState(1153);
a62d533 6358
						if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)");
a62d533 6359
						setState(1154);
a62d533 6360
						_la = _input.LA(1);
a62d533 6361
						if ( !(_la==INC || _la==DEC) ) {
a62d533 6362
						_errHandler.recoverInline(this);
a62d533 6363
						}
a62d533 6364
						consume();
a62d533 6365
						}
a62d533 6366
						break;
a62d533 6367
a62d533 6368
					case 21:
a62d533 6369
						{
a62d533 6370
						_localctx = new ExpressionContext(_parentctx, _parentState);
a62d533 6371
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
a62d533 6372
						setState(1155);
a62d533 6373
						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
a62d533 6374
						setState(1156); match(INSTANCEOF);
a62d533 6375
						setState(1157); type();
a62d533 6376
						}
a62d533 6377
						break;
a62d533 6378
					}
a62d533 6379
					} 
a62d533 6380
				}
a62d533 6381
				setState(1162);
a62d533 6382
				_errHandler.sync(this);
a62d533 6383
				_alt = getInterpreter().adaptivePredict(_input,129,_ctx);
a62d533 6384
			}
a62d533 6385
			}
a62d533 6386
		}
a62d533 6387
		catch (RecognitionException re) {
a62d533 6388
			_localctx.exception = re;
a62d533 6389
			_errHandler.reportError(this, re);
a62d533 6390
			_errHandler.recover(this, re);
a62d533 6391
		}
a62d533 6392
		finally {
a62d533 6393
			unrollRecursionContexts(_parentctx);
a62d533 6394
		}
a62d533 6395
		return _localctx;
a62d533 6396
	}
a62d533 6397
a62d533 6398
	public static class PrimaryContext extends ParserRuleContext {
a62d533 6399
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
a62d533 6400
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
a62d533 6401
		}
a62d533 6402
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 6403
		public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
a62d533 6404
			return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
a62d533 6405
		}
a62d533 6406
		public TypeContext type() {
a62d533 6407
			return getRuleContext(TypeContext.class,0);
a62d533 6408
		}
a62d533 6409
		public ExpressionContext expression() {
a62d533 6410
			return getRuleContext(ExpressionContext.class,0);
a62d533 6411
		}
a62d533 6412
		public ArgumentsContext arguments() {
a62d533 6413
			return getRuleContext(ArgumentsContext.class,0);
a62d533 6414
		}
a62d533 6415
		public LiteralContext literal() {
a62d533 6416
			return getRuleContext(LiteralContext.class,0);
a62d533 6417
		}
a62d533 6418
		public PrimaryContext(ParserRuleContext parent, int invokingState) {
a62d533 6419
			super(parent, invokingState);
a62d533 6420
		}
a62d533 6421
		@Override public int getRuleIndex() { return RULE_primary; }
a62d533 6422
		@Override
a62d533 6423
		public void enterRule(ParseTreeListener listener) {
a62d533 6424
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterPrimary(this);
a62d533 6425
		}
a62d533 6426
		@Override
a62d533 6427
		public void exitRule(ParseTreeListener listener) {
a62d533 6428
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitPrimary(this);
a62d533 6429
		}
a62d533 6430
	}
a62d533 6431
a62d533 6432
	public final PrimaryContext primary() throws RecognitionException {
a62d533 6433
		PrimaryContext _localctx = new PrimaryContext(_ctx, getState());
a62d533 6434
		enterRule(_localctx, 176, RULE_primary);
a62d533 6435
		try {
a62d533 6436
			setState(1184);
a62d533 6437
			switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) {
a62d533 6438
			case 1:
a62d533 6439
				enterOuterAlt(_localctx, 1);
a62d533 6440
				{
a62d533 6441
				setState(1163); match(LPAREN);
a62d533 6442
				setState(1164); expression(0);
a62d533 6443
				setState(1165); match(RPAREN);
a62d533 6444
				}
a62d533 6445
				break;
a62d533 6446
a62d533 6447
			case 2:
a62d533 6448
				enterOuterAlt(_localctx, 2);
a62d533 6449
				{
a62d533 6450
				setState(1167); match(THIS);
a62d533 6451
				}
a62d533 6452
				break;
a62d533 6453
a62d533 6454
			case 3:
a62d533 6455
				enterOuterAlt(_localctx, 3);
a62d533 6456
				{
a62d533 6457
				setState(1168); match(SUPER);
a62d533 6458
				}
a62d533 6459
				break;
a62d533 6460
a62d533 6461
			case 4:
a62d533 6462
				enterOuterAlt(_localctx, 4);
a62d533 6463
				{
a62d533 6464
				setState(1169); literal();
a62d533 6465
				}
a62d533 6466
				break;
a62d533 6467
a62d533 6468
			case 5:
a62d533 6469
				enterOuterAlt(_localctx, 5);
a62d533 6470
				{
a62d533 6471
				setState(1170); match(Identifier);
a62d533 6472
				}
a62d533 6473
				break;
a62d533 6474
a62d533 6475
			case 6:
a62d533 6476
				enterOuterAlt(_localctx, 6);
a62d533 6477
				{
a62d533 6478
				setState(1171); type();
a62d533 6479
				setState(1172); match(DOT);
a62d533 6480
				setState(1173); match(CLASS);
a62d533 6481
				}
a62d533 6482
				break;
a62d533 6483
a62d533 6484
			case 7:
a62d533 6485
				enterOuterAlt(_localctx, 7);
a62d533 6486
				{
a62d533 6487
				setState(1175); match(VOID);
a62d533 6488
				setState(1176); match(DOT);
a62d533 6489
				setState(1177); match(CLASS);
a62d533 6490
				}
a62d533 6491
				break;
a62d533 6492
a62d533 6493
			case 8:
a62d533 6494
				enterOuterAlt(_localctx, 8);
a62d533 6495
				{
a62d533 6496
				setState(1178); nonWildcardTypeArguments();
a62d533 6497
				setState(1182);
a62d533 6498
				switch (_input.LA(1)) {
a62d533 6499
				case SUPER:
a62d533 6500
				case Identifier:
a62d533 6501
					{
a62d533 6502
					setState(1179); explicitGenericInvocationSuffix();
a62d533 6503
					}
a62d533 6504
					break;
a62d533 6505
				case THIS:
a62d533 6506
					{
a62d533 6507
					setState(1180); match(THIS);
a62d533 6508
					setState(1181); arguments();
a62d533 6509
					}
a62d533 6510
					break;
a62d533 6511
				default:
a62d533 6512
					throw new NoViableAltException(this);
a62d533 6513
				}
a62d533 6514
				}
a62d533 6515
				break;
a62d533 6516
			}
a62d533 6517
		}
a62d533 6518
		catch (RecognitionException re) {
a62d533 6519
			_localctx.exception = re;
a62d533 6520
			_errHandler.reportError(this, re);
a62d533 6521
			_errHandler.recover(this, re);
a62d533 6522
		}
a62d533 6523
		finally {
a62d533 6524
			exitRule();
a62d533 6525
		}
a62d533 6526
		return _localctx;
a62d533 6527
	}
a62d533 6528
a62d533 6529
	public static class CreatorContext extends ParserRuleContext {
a62d533 6530
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
a62d533 6531
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
a62d533 6532
		}
a62d533 6533
		public ArrayCreatorRestContext arrayCreatorRest() {
a62d533 6534
			return getRuleContext(ArrayCreatorRestContext.class,0);
a62d533 6535
		}
a62d533 6536
		public ClassCreatorRestContext classCreatorRest() {
a62d533 6537
			return getRuleContext(ClassCreatorRestContext.class,0);
a62d533 6538
		}
a62d533 6539
		public CreatedNameContext createdName() {
a62d533 6540
			return getRuleContext(CreatedNameContext.class,0);
a62d533 6541
		}
a62d533 6542
		public CreatorContext(ParserRuleContext parent, int invokingState) {
a62d533 6543
			super(parent, invokingState);
a62d533 6544
		}
a62d533 6545
		@Override public int getRuleIndex() { return RULE_creator; }
a62d533 6546
		@Override
a62d533 6547
		public void enterRule(ParseTreeListener listener) {
a62d533 6548
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCreator(this);
a62d533 6549
		}
a62d533 6550
		@Override
a62d533 6551
		public void exitRule(ParseTreeListener listener) {
a62d533 6552
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCreator(this);
a62d533 6553
		}
a62d533 6554
	}
a62d533 6555
a62d533 6556
	public final CreatorContext creator() throws RecognitionException {
a62d533 6557
		CreatorContext _localctx = new CreatorContext(_ctx, getState());
a62d533 6558
		enterRule(_localctx, 178, RULE_creator);
a62d533 6559
		try {
a62d533 6560
			setState(1195);
a62d533 6561
			switch (_input.LA(1)) {
a62d533 6562
			case LT:
a62d533 6563
				enterOuterAlt(_localctx, 1);
a62d533 6564
				{
a62d533 6565
				setState(1186); nonWildcardTypeArguments();
a62d533 6566
				setState(1187); createdName();
a62d533 6567
				setState(1188); classCreatorRest();
a62d533 6568
				}
a62d533 6569
				break;
a62d533 6570
			case BOOLEAN:
a62d533 6571
			case BYTE:
a62d533 6572
			case CHAR:
a62d533 6573
			case DOUBLE:
a62d533 6574
			case FLOAT:
a62d533 6575
			case INT:
a62d533 6576
			case LONG:
a62d533 6577
			case SHORT:
a62d533 6578
			case Identifier:
a62d533 6579
				enterOuterAlt(_localctx, 2);
a62d533 6580
				{
a62d533 6581
				setState(1190); createdName();
a62d533 6582
				setState(1193);
a62d533 6583
				switch (_input.LA(1)) {
a62d533 6584
				case LBRACK:
a62d533 6585
					{
a62d533 6586
					setState(1191); arrayCreatorRest();
a62d533 6587
					}
a62d533 6588
					break;
a62d533 6589
				case LPAREN:
a62d533 6590
					{
a62d533 6591
					setState(1192); classCreatorRest();
a62d533 6592
					}
a62d533 6593
					break;
a62d533 6594
				default:
a62d533 6595
					throw new NoViableAltException(this);
a62d533 6596
				}
a62d533 6597
				}
a62d533 6598
				break;
a62d533 6599
			default:
a62d533 6600
				throw new NoViableAltException(this);
a62d533 6601
			}
a62d533 6602
		}
a62d533 6603
		catch (RecognitionException re) {
a62d533 6604
			_localctx.exception = re;
a62d533 6605
			_errHandler.reportError(this, re);
a62d533 6606
			_errHandler.recover(this, re);
a62d533 6607
		}
a62d533 6608
		finally {
a62d533 6609
			exitRule();
a62d533 6610
		}
a62d533 6611
		return _localctx;
a62d533 6612
	}
a62d533 6613
a62d533 6614
	public static class CreatedNameContext extends ParserRuleContext {
a62d533 6615
		public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond(int i) {
a62d533 6616
			return getRuleContext(TypeArgumentsOrDiamondContext.class,i);
a62d533 6617
		}
a62d533 6618
		public TerminalNode Identifier(int i) {
a62d533 6619
			return getToken(JavaParser.Identifier, i);
a62d533 6620
		}
a62d533 6621
		public List<TerminalNode> Identifier() { return getTokens(JavaParser.Identifier); }
a62d533 6622
		public List<TypeArgumentsOrDiamondContext> typeArgumentsOrDiamond() {
a62d533 6623
			return getRuleContexts(TypeArgumentsOrDiamondContext.class);
a62d533 6624
		}
a62d533 6625
		public PrimitiveTypeContext primitiveType() {
a62d533 6626
			return getRuleContext(PrimitiveTypeContext.class,0);
a62d533 6627
		}
a62d533 6628
		public CreatedNameContext(ParserRuleContext parent, int invokingState) {
a62d533 6629
			super(parent, invokingState);
a62d533 6630
		}
a62d533 6631
		@Override public int getRuleIndex() { return RULE_createdName; }
a62d533 6632
		@Override
a62d533 6633
		public void enterRule(ParseTreeListener listener) {
a62d533 6634
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterCreatedName(this);
a62d533 6635
		}
a62d533 6636
		@Override
a62d533 6637
		public void exitRule(ParseTreeListener listener) {
a62d533 6638
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitCreatedName(this);
a62d533 6639
		}
a62d533 6640
	}
a62d533 6641
a62d533 6642
	public final CreatedNameContext createdName() throws RecognitionException {
a62d533 6643
		CreatedNameContext _localctx = new CreatedNameContext(_ctx, getState());
a62d533 6644
		enterRule(_localctx, 180, RULE_createdName);
a62d533 6645
		int _la;
a62d533 6646
		try {
a62d533 6647
			setState(1212);
a62d533 6648
			switch (_input.LA(1)) {
a62d533 6649
			case Identifier:
a62d533 6650
				enterOuterAlt(_localctx, 1);
a62d533 6651
				{
a62d533 6652
				setState(1197); match(Identifier);
a62d533 6653
				setState(1199);
a62d533 6654
				_la = _input.LA(1);
a62d533 6655
				if (_la==LT) {
a62d533 6656
					{
a62d533 6657
					setState(1198); typeArgumentsOrDiamond();
a62d533 6658
					}
a62d533 6659
				}
a62d533 6660
a62d533 6661
				setState(1208);
a62d533 6662
				_errHandler.sync(this);
a62d533 6663
				_la = _input.LA(1);
a62d533 6664
				while (_la==DOT) {
a62d533 6665
					{
a62d533 6666
					{
a62d533 6667
					setState(1201); match(DOT);
a62d533 6668
					setState(1202); match(Identifier);
a62d533 6669
					setState(1204);
a62d533 6670
					_la = _input.LA(1);
a62d533 6671
					if (_la==LT) {
a62d533 6672
						{
a62d533 6673
						setState(1203); typeArgumentsOrDiamond();
a62d533 6674
						}
a62d533 6675
					}
a62d533 6676
a62d533 6677
					}
a62d533 6678
					}
a62d533 6679
					setState(1210);
a62d533 6680
					_errHandler.sync(this);
a62d533 6681
					_la = _input.LA(1);
a62d533 6682
				}
a62d533 6683
				}
a62d533 6684
				break;
a62d533 6685
			case BOOLEAN:
a62d533 6686
			case BYTE:
a62d533 6687
			case CHAR:
a62d533 6688
			case DOUBLE:
a62d533 6689
			case FLOAT:
a62d533 6690
			case INT:
a62d533 6691
			case LONG:
a62d533 6692
			case SHORT:
a62d533 6693
				enterOuterAlt(_localctx, 2);
a62d533 6694
				{
a62d533 6695
				setState(1211); primitiveType();
a62d533 6696
				}
a62d533 6697
				break;
a62d533 6698
			default:
a62d533 6699
				throw new NoViableAltException(this);
a62d533 6700
			}
a62d533 6701
		}
a62d533 6702
		catch (RecognitionException re) {
a62d533 6703
			_localctx.exception = re;
a62d533 6704
			_errHandler.reportError(this, re);
a62d533 6705
			_errHandler.recover(this, re);
a62d533 6706
		}
a62d533 6707
		finally {
a62d533 6708
			exitRule();
a62d533 6709
		}
a62d533 6710
		return _localctx;
a62d533 6711
	}
a62d533 6712
a62d533 6713
	public static class InnerCreatorContext extends ParserRuleContext {
a62d533 6714
		public NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() {
a62d533 6715
			return getRuleContext(NonWildcardTypeArgumentsOrDiamondContext.class,0);
a62d533 6716
		}
a62d533 6717
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 6718
		public ClassCreatorRestContext classCreatorRest() {
a62d533 6719
			return getRuleContext(ClassCreatorRestContext.class,0);
a62d533 6720
		}
a62d533 6721
		public InnerCreatorContext(ParserRuleContext parent, int invokingState) {
a62d533 6722
			super(parent, invokingState);
a62d533 6723
		}
a62d533 6724
		@Override public int getRuleIndex() { return RULE_innerCreator; }
a62d533 6725
		@Override
a62d533 6726
		public void enterRule(ParseTreeListener listener) {
a62d533 6727
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterInnerCreator(this);
a62d533 6728
		}
a62d533 6729
		@Override
a62d533 6730
		public void exitRule(ParseTreeListener listener) {
a62d533 6731
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitInnerCreator(this);
a62d533 6732
		}
a62d533 6733
	}
a62d533 6734
a62d533 6735
	public final InnerCreatorContext innerCreator() throws RecognitionException {
a62d533 6736
		InnerCreatorContext _localctx = new InnerCreatorContext(_ctx, getState());
a62d533 6737
		enterRule(_localctx, 182, RULE_innerCreator);
a62d533 6738
		int _la;
a62d533 6739
		try {
a62d533 6740
			enterOuterAlt(_localctx, 1);
a62d533 6741
			{
a62d533 6742
			setState(1214); match(Identifier);
a62d533 6743
			setState(1216);
a62d533 6744
			_la = _input.LA(1);
a62d533 6745
			if (_la==LT) {
a62d533 6746
				{
a62d533 6747
				setState(1215); nonWildcardTypeArgumentsOrDiamond();
a62d533 6748
				}
a62d533 6749
			}
a62d533 6750
a62d533 6751
			setState(1218); classCreatorRest();
a62d533 6752
			}
a62d533 6753
		}
a62d533 6754
		catch (RecognitionException re) {
a62d533 6755
			_localctx.exception = re;
a62d533 6756
			_errHandler.reportError(this, re);
a62d533 6757
			_errHandler.recover(this, re);
a62d533 6758
		}
a62d533 6759
		finally {
a62d533 6760
			exitRule();
a62d533 6761
		}
a62d533 6762
		return _localctx;
a62d533 6763
	}
a62d533 6764
a62d533 6765
	public static class ArrayCreatorRestContext extends ParserRuleContext {
a62d533 6766
		public ExpressionContext expression(int i) {
a62d533 6767
			return getRuleContext(ExpressionContext.class,i);
a62d533 6768
		}
a62d533 6769
		public List<ExpressionContext> expression() {
a62d533 6770
			return getRuleContexts(ExpressionContext.class);
a62d533 6771
		}
a62d533 6772
		public ArrayInitializerContext arrayInitializer() {
a62d533 6773
			return getRuleContext(ArrayInitializerContext.class,0);
a62d533 6774
		}
a62d533 6775
		public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) {
a62d533 6776
			super(parent, invokingState);
a62d533 6777
		}
a62d533 6778
		@Override public int getRuleIndex() { return RULE_arrayCreatorRest; }
a62d533 6779
		@Override
a62d533 6780
		public void enterRule(ParseTreeListener listener) {
a62d533 6781
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArrayCreatorRest(this);
a62d533 6782
		}
a62d533 6783
		@Override
a62d533 6784
		public void exitRule(ParseTreeListener listener) {
a62d533 6785
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArrayCreatorRest(this);
a62d533 6786
		}
a62d533 6787
	}
a62d533 6788
a62d533 6789
	public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException {
a62d533 6790
		ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState());
a62d533 6791
		enterRule(_localctx, 184, RULE_arrayCreatorRest);
a62d533 6792
		int _la;
a62d533 6793
		try {
a62d533 6794
			int _alt;
a62d533 6795
			enterOuterAlt(_localctx, 1);
a62d533 6796
			{
a62d533 6797
			setState(1220); match(LBRACK);
a62d533 6798
			setState(1248);
a62d533 6799
			switch (_input.LA(1)) {
a62d533 6800
			case RBRACK:
a62d533 6801
				{
a62d533 6802
				setState(1221); match(RBRACK);
a62d533 6803
				setState(1226);
a62d533 6804
				_errHandler.sync(this);
a62d533 6805
				_la = _input.LA(1);
a62d533 6806
				while (_la==LBRACK) {
a62d533 6807
					{
a62d533 6808
					{
a62d533 6809
					setState(1222); match(LBRACK);
a62d533 6810
					setState(1223); match(RBRACK);
a62d533 6811
					}
a62d533 6812
					}
a62d533 6813
					setState(1228);
a62d533 6814
					_errHandler.sync(this);
a62d533 6815
					_la = _input.LA(1);
a62d533 6816
				}
a62d533 6817
				setState(1229); arrayInitializer();
a62d533 6818
				}
a62d533 6819
				break;
a62d533 6820
			case BOOLEAN:
a62d533 6821
			case BYTE:
a62d533 6822
			case CHAR:
a62d533 6823
			case DOUBLE:
a62d533 6824
			case FLOAT:
a62d533 6825
			case INT:
a62d533 6826
			case LONG:
a62d533 6827
			case NEW:
a62d533 6828
			case SHORT:
a62d533 6829
			case SUPER:
a62d533 6830
			case THIS:
a62d533 6831
			case VOID:
a62d533 6832
			case IntegerLiteral:
a62d533 6833
			case FloatingPointLiteral:
a62d533 6834
			case BooleanLiteral:
a62d533 6835
			case CharacterLiteral:
a62d533 6836
			case StringLiteral:
a62d533 6837
			case NullLiteral:
a62d533 6838
			case LPAREN:
a62d533 6839
			case LT:
a62d533 6840
			case BANG:
a62d533 6841
			case TILDE:
a62d533 6842
			case INC:
a62d533 6843
			case DEC:
a62d533 6844
			case ADD:
a62d533 6845
			case SUB:
a62d533 6846
			case Identifier:
a62d533 6847
				{
a62d533 6848
				setState(1230); expression(0);
a62d533 6849
				setState(1231); match(RBRACK);
a62d533 6850
				setState(1238);
a62d533 6851
				_errHandler.sync(this);
a62d533 6852
				_alt = getInterpreter().adaptivePredict(_input,140,_ctx);
a62d533 6853
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 6854
					if ( _alt==1 ) {
a62d533 6855
						{
a62d533 6856
						{
a62d533 6857
						setState(1232); match(LBRACK);
a62d533 6858
						setState(1233); expression(0);
a62d533 6859
						setState(1234); match(RBRACK);
a62d533 6860
						}
a62d533 6861
						} 
a62d533 6862
					}
a62d533 6863
					setState(1240);
a62d533 6864
					_errHandler.sync(this);
a62d533 6865
					_alt = getInterpreter().adaptivePredict(_input,140,_ctx);
a62d533 6866
				}
a62d533 6867
				setState(1245);
a62d533 6868
				_errHandler.sync(this);
a62d533 6869
				_alt = getInterpreter().adaptivePredict(_input,141,_ctx);
a62d533 6870
				while ( _alt!=2 && _alt!=-1 ) {
a62d533 6871
					if ( _alt==1 ) {
a62d533 6872
						{
a62d533 6873
						{
a62d533 6874
						setState(1241); match(LBRACK);
a62d533 6875
						setState(1242); match(RBRACK);
a62d533 6876
						}
a62d533 6877
						} 
a62d533 6878
					}
a62d533 6879
					setState(1247);
a62d533 6880
					_errHandler.sync(this);
a62d533 6881
					_alt = getInterpreter().adaptivePredict(_input,141,_ctx);
a62d533 6882
				}
a62d533 6883
				}
a62d533 6884
				break;
a62d533 6885
			default:
a62d533 6886
				throw new NoViableAltException(this);
a62d533 6887
			}
a62d533 6888
			}
a62d533 6889
		}
a62d533 6890
		catch (RecognitionException re) {
a62d533 6891
			_localctx.exception = re;
a62d533 6892
			_errHandler.reportError(this, re);
a62d533 6893
			_errHandler.recover(this, re);
a62d533 6894
		}
a62d533 6895
		finally {
a62d533 6896
			exitRule();
a62d533 6897
		}
a62d533 6898
		return _localctx;
a62d533 6899
	}
a62d533 6900
a62d533 6901
	public static class ClassCreatorRestContext extends ParserRuleContext {
a62d533 6902
		public ClassBodyContext classBody() {
a62d533 6903
			return getRuleContext(ClassBodyContext.class,0);
a62d533 6904
		}
a62d533 6905
		public ArgumentsContext arguments() {
a62d533 6906
			return getRuleContext(ArgumentsContext.class,0);
a62d533 6907
		}
a62d533 6908
		public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) {
a62d533 6909
			super(parent, invokingState);
a62d533 6910
		}
a62d533 6911
		@Override public int getRuleIndex() { return RULE_classCreatorRest; }
a62d533 6912
		@Override
a62d533 6913
		public void enterRule(ParseTreeListener listener) {
a62d533 6914
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterClassCreatorRest(this);
a62d533 6915
		}
a62d533 6916
		@Override
a62d533 6917
		public void exitRule(ParseTreeListener listener) {
a62d533 6918
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitClassCreatorRest(this);
a62d533 6919
		}
a62d533 6920
	}
a62d533 6921
a62d533 6922
	public final ClassCreatorRestContext classCreatorRest() throws RecognitionException {
a62d533 6923
		ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState());
a62d533 6924
		enterRule(_localctx, 186, RULE_classCreatorRest);
a62d533 6925
		try {
a62d533 6926
			enterOuterAlt(_localctx, 1);
a62d533 6927
			{
a62d533 6928
			setState(1250); arguments();
a62d533 6929
			setState(1252);
a62d533 6930
			switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) {
a62d533 6931
			case 1:
a62d533 6932
				{
a62d533 6933
				setState(1251); classBody();
a62d533 6934
				}
a62d533 6935
				break;
a62d533 6936
			}
a62d533 6937
			}
a62d533 6938
		}
a62d533 6939
		catch (RecognitionException re) {
a62d533 6940
			_localctx.exception = re;
a62d533 6941
			_errHandler.reportError(this, re);
a62d533 6942
			_errHandler.recover(this, re);
a62d533 6943
		}
a62d533 6944
		finally {
a62d533 6945
			exitRule();
a62d533 6946
		}
a62d533 6947
		return _localctx;
a62d533 6948
	}
a62d533 6949
a62d533 6950
	public static class ExplicitGenericInvocationContext extends ParserRuleContext {
a62d533 6951
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
a62d533 6952
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
a62d533 6953
		}
a62d533 6954
		public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
a62d533 6955
			return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
a62d533 6956
		}
a62d533 6957
		public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) {
a62d533 6958
			super(parent, invokingState);
a62d533 6959
		}
a62d533 6960
		@Override public int getRuleIndex() { return RULE_explicitGenericInvocation; }
a62d533 6961
		@Override
a62d533 6962
		public void enterRule(ParseTreeListener listener) {
a62d533 6963
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExplicitGenericInvocation(this);
a62d533 6964
		}
a62d533 6965
		@Override
a62d533 6966
		public void exitRule(ParseTreeListener listener) {
a62d533 6967
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExplicitGenericInvocation(this);
a62d533 6968
		}
a62d533 6969
	}
a62d533 6970
a62d533 6971
	public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException {
a62d533 6972
		ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState());
a62d533 6973
		enterRule(_localctx, 188, RULE_explicitGenericInvocation);
a62d533 6974
		try {
a62d533 6975
			enterOuterAlt(_localctx, 1);
a62d533 6976
			{
a62d533 6977
			setState(1254); nonWildcardTypeArguments();
a62d533 6978
			setState(1255); explicitGenericInvocationSuffix();
a62d533 6979
			}
a62d533 6980
		}
a62d533 6981
		catch (RecognitionException re) {
a62d533 6982
			_localctx.exception = re;
a62d533 6983
			_errHandler.reportError(this, re);
a62d533 6984
			_errHandler.recover(this, re);
a62d533 6985
		}
a62d533 6986
		finally {
a62d533 6987
			exitRule();
a62d533 6988
		}
a62d533 6989
		return _localctx;
a62d533 6990
	}
a62d533 6991
a62d533 6992
	public static class NonWildcardTypeArgumentsContext extends ParserRuleContext {
a62d533 6993
		public TypeListContext typeList() {
a62d533 6994
			return getRuleContext(TypeListContext.class,0);
a62d533 6995
		}
a62d533 6996
		public NonWildcardTypeArgumentsContext(ParserRuleContext parent, int invokingState) {
a62d533 6997
			super(parent, invokingState);
a62d533 6998
		}
a62d533 6999
		@Override public int getRuleIndex() { return RULE_nonWildcardTypeArguments; }
a62d533 7000
		@Override
a62d533 7001
		public void enterRule(ParseTreeListener listener) {
a62d533 7002
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterNonWildcardTypeArguments(this);
a62d533 7003
		}
a62d533 7004
		@Override
a62d533 7005
		public void exitRule(ParseTreeListener listener) {
a62d533 7006
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitNonWildcardTypeArguments(this);
a62d533 7007
		}
a62d533 7008
	}
a62d533 7009
a62d533 7010
	public final NonWildcardTypeArgumentsContext nonWildcardTypeArguments() throws RecognitionException {
a62d533 7011
		NonWildcardTypeArgumentsContext _localctx = new NonWildcardTypeArgumentsContext(_ctx, getState());
a62d533 7012
		enterRule(_localctx, 190, RULE_nonWildcardTypeArguments);
a62d533 7013
		try {
a62d533 7014
			enterOuterAlt(_localctx, 1);
a62d533 7015
			{
a62d533 7016
			setState(1257); match(LT);
a62d533 7017
			setState(1258); typeList();
a62d533 7018
			setState(1259); match(GT);
a62d533 7019
			}
a62d533 7020
		}
a62d533 7021
		catch (RecognitionException re) {
a62d533 7022
			_localctx.exception = re;
a62d533 7023
			_errHandler.reportError(this, re);
a62d533 7024
			_errHandler.recover(this, re);
a62d533 7025
		}
a62d533 7026
		finally {
a62d533 7027
			exitRule();
a62d533 7028
		}
a62d533 7029
		return _localctx;
a62d533 7030
	}
a62d533 7031
a62d533 7032
	public static class TypeArgumentsOrDiamondContext extends ParserRuleContext {
a62d533 7033
		public TypeArgumentsContext typeArguments() {
a62d533 7034
			return getRuleContext(TypeArgumentsContext.class,0);
a62d533 7035
		}
a62d533 7036
		public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) {
a62d533 7037
			super(parent, invokingState);
a62d533 7038
		}
a62d533 7039
		@Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; }
a62d533 7040
		@Override
a62d533 7041
		public void enterRule(ParseTreeListener listener) {
a62d533 7042
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterTypeArgumentsOrDiamond(this);
a62d533 7043
		}
a62d533 7044
		@Override
a62d533 7045
		public void exitRule(ParseTreeListener listener) {
a62d533 7046
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitTypeArgumentsOrDiamond(this);
a62d533 7047
		}
a62d533 7048
	}
a62d533 7049
a62d533 7050
	public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException {
a62d533 7051
		TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState());
a62d533 7052
		enterRule(_localctx, 192, RULE_typeArgumentsOrDiamond);
a62d533 7053
		try {
a62d533 7054
			setState(1264);
a62d533 7055
			switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) {
a62d533 7056
			case 1:
a62d533 7057
				enterOuterAlt(_localctx, 1);
a62d533 7058
				{
a62d533 7059
				setState(1261); match(LT);
a62d533 7060
				setState(1262); match(GT);
a62d533 7061
				}
a62d533 7062
				break;
a62d533 7063
a62d533 7064
			case 2:
a62d533 7065
				enterOuterAlt(_localctx, 2);
a62d533 7066
				{
a62d533 7067
				setState(1263); typeArguments();
a62d533 7068
				}
a62d533 7069
				break;
a62d533 7070
			}
a62d533 7071
		}
a62d533 7072
		catch (RecognitionException re) {
a62d533 7073
			_localctx.exception = re;
a62d533 7074
			_errHandler.reportError(this, re);
a62d533 7075
			_errHandler.recover(this, re);
a62d533 7076
		}
a62d533 7077
		finally {
a62d533 7078
			exitRule();
a62d533 7079
		}
a62d533 7080
		return _localctx;
a62d533 7081
	}
a62d533 7082
a62d533 7083
	public static class NonWildcardTypeArgumentsOrDiamondContext extends ParserRuleContext {
a62d533 7084
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
a62d533 7085
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
a62d533 7086
		}
a62d533 7087
		public NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) {
a62d533 7088
			super(parent, invokingState);
a62d533 7089
		}
a62d533 7090
		@Override public int getRuleIndex() { return RULE_nonWildcardTypeArgumentsOrDiamond; }
a62d533 7091
		@Override
a62d533 7092
		public void enterRule(ParseTreeListener listener) {
a62d533 7093
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterNonWildcardTypeArgumentsOrDiamond(this);
a62d533 7094
		}
a62d533 7095
		@Override
a62d533 7096
		public void exitRule(ParseTreeListener listener) {
a62d533 7097
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitNonWildcardTypeArgumentsOrDiamond(this);
a62d533 7098
		}
a62d533 7099
	}
a62d533 7100
a62d533 7101
	public final NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() throws RecognitionException {
a62d533 7102
		NonWildcardTypeArgumentsOrDiamondContext _localctx = new NonWildcardTypeArgumentsOrDiamondContext(_ctx, getState());
a62d533 7103
		enterRule(_localctx, 194, RULE_nonWildcardTypeArgumentsOrDiamond);
a62d533 7104
		try {
a62d533 7105
			setState(1269);
a62d533 7106
			switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) {
a62d533 7107
			case 1:
a62d533 7108
				enterOuterAlt(_localctx, 1);
a62d533 7109
				{
a62d533 7110
				setState(1266); match(LT);
a62d533 7111
				setState(1267); match(GT);
a62d533 7112
				}
a62d533 7113
				break;
a62d533 7114
a62d533 7115
			case 2:
a62d533 7116
				enterOuterAlt(_localctx, 2);
a62d533 7117
				{
a62d533 7118
				setState(1268); nonWildcardTypeArguments();
a62d533 7119
				}
a62d533 7120
				break;
a62d533 7121
			}
a62d533 7122
		}
a62d533 7123
		catch (RecognitionException re) {
a62d533 7124
			_localctx.exception = re;
a62d533 7125
			_errHandler.reportError(this, re);
a62d533 7126
			_errHandler.recover(this, re);
a62d533 7127
		}
a62d533 7128
		finally {
a62d533 7129
			exitRule();
a62d533 7130
		}
a62d533 7131
		return _localctx;
a62d533 7132
	}
a62d533 7133
a62d533 7134
	public static class SuperSuffixContext extends ParserRuleContext {
a62d533 7135
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 7136
		public ArgumentsContext arguments() {
a62d533 7137
			return getRuleContext(ArgumentsContext.class,0);
a62d533 7138
		}
a62d533 7139
		public SuperSuffixContext(ParserRuleContext parent, int invokingState) {
a62d533 7140
			super(parent, invokingState);
a62d533 7141
		}
a62d533 7142
		@Override public int getRuleIndex() { return RULE_superSuffix; }
a62d533 7143
		@Override
a62d533 7144
		public void enterRule(ParseTreeListener listener) {
a62d533 7145
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterSuperSuffix(this);
a62d533 7146
		}
a62d533 7147
		@Override
a62d533 7148
		public void exitRule(ParseTreeListener listener) {
a62d533 7149
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitSuperSuffix(this);
a62d533 7150
		}
a62d533 7151
	}
a62d533 7152
a62d533 7153
	public final SuperSuffixContext superSuffix() throws RecognitionException {
a62d533 7154
		SuperSuffixContext _localctx = new SuperSuffixContext(_ctx, getState());
a62d533 7155
		enterRule(_localctx, 196, RULE_superSuffix);
a62d533 7156
		try {
a62d533 7157
			setState(1277);
a62d533 7158
			switch (_input.LA(1)) {
a62d533 7159
			case LPAREN:
a62d533 7160
				enterOuterAlt(_localctx, 1);
a62d533 7161
				{
a62d533 7162
				setState(1271); arguments();
a62d533 7163
				}
a62d533 7164
				break;
a62d533 7165
			case DOT:
a62d533 7166
				enterOuterAlt(_localctx, 2);
a62d533 7167
				{
a62d533 7168
				setState(1272); match(DOT);
a62d533 7169
				setState(1273); match(Identifier);
a62d533 7170
				setState(1275);
a62d533 7171
				switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) {
a62d533 7172
				case 1:
a62d533 7173
					{
a62d533 7174
					setState(1274); arguments();
a62d533 7175
					}
a62d533 7176
					break;
a62d533 7177
				}
a62d533 7178
				}
a62d533 7179
				break;
a62d533 7180
			default:
a62d533 7181
				throw new NoViableAltException(this);
a62d533 7182
			}
a62d533 7183
		}
a62d533 7184
		catch (RecognitionException re) {
a62d533 7185
			_localctx.exception = re;
a62d533 7186
			_errHandler.reportError(this, re);
a62d533 7187
			_errHandler.recover(this, re);
a62d533 7188
		}
a62d533 7189
		finally {
a62d533 7190
			exitRule();
a62d533 7191
		}
a62d533 7192
		return _localctx;
a62d533 7193
	}
a62d533 7194
a62d533 7195
	public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext {
a62d533 7196
		public SuperSuffixContext superSuffix() {
a62d533 7197
			return getRuleContext(SuperSuffixContext.class,0);
a62d533 7198
		}
a62d533 7199
		public TerminalNode Identifier() { return getToken(JavaParser.Identifier, 0); }
a62d533 7200
		public ArgumentsContext arguments() {
a62d533 7201
			return getRuleContext(ArgumentsContext.class,0);
a62d533 7202
		}
a62d533 7203
		public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) {
a62d533 7204
			super(parent, invokingState);
a62d533 7205
		}
a62d533 7206
		@Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; }
a62d533 7207
		@Override
a62d533 7208
		public void enterRule(ParseTreeListener listener) {
a62d533 7209
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterExplicitGenericInvocationSuffix(this);
a62d533 7210
		}
a62d533 7211
		@Override
a62d533 7212
		public void exitRule(ParseTreeListener listener) {
a62d533 7213
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitExplicitGenericInvocationSuffix(this);
a62d533 7214
		}
a62d533 7215
	}
a62d533 7216
a62d533 7217
	public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException {
a62d533 7218
		ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState());
a62d533 7219
		enterRule(_localctx, 198, RULE_explicitGenericInvocationSuffix);
a62d533 7220
		try {
a62d533 7221
			setState(1283);
a62d533 7222
			switch (_input.LA(1)) {
a62d533 7223
			case SUPER:
a62d533 7224
				enterOuterAlt(_localctx, 1);
a62d533 7225
				{
a62d533 7226
				setState(1279); match(SUPER);
a62d533 7227
				setState(1280); superSuffix();
a62d533 7228
				}
a62d533 7229
				break;
a62d533 7230
			case Identifier:
a62d533 7231
				enterOuterAlt(_localctx, 2);
a62d533 7232
				{
a62d533 7233
				setState(1281); match(Identifier);
a62d533 7234
				setState(1282); arguments();
a62d533 7235
				}
a62d533 7236
				break;
a62d533 7237
			default:
a62d533 7238
				throw new NoViableAltException(this);
a62d533 7239
			}
a62d533 7240
		}
a62d533 7241
		catch (RecognitionException re) {
a62d533 7242
			_localctx.exception = re;
a62d533 7243
			_errHandler.reportError(this, re);
a62d533 7244
			_errHandler.recover(this, re);
a62d533 7245
		}
a62d533 7246
		finally {
a62d533 7247
			exitRule();
a62d533 7248
		}
a62d533 7249
		return _localctx;
a62d533 7250
	}
a62d533 7251
a62d533 7252
	public static class ArgumentsContext extends ParserRuleContext {
a62d533 7253
		public ExpressionListContext expressionList() {
a62d533 7254
			return getRuleContext(ExpressionListContext.class,0);
a62d533 7255
		}
a62d533 7256
		public ArgumentsContext(ParserRuleContext parent, int invokingState) {
a62d533 7257
			super(parent, invokingState);
a62d533 7258
		}
a62d533 7259
		@Override public int getRuleIndex() { return RULE_arguments; }
a62d533 7260
		@Override
a62d533 7261
		public void enterRule(ParseTreeListener listener) {
a62d533 7262
			if ( listener instanceof JavaListener ) ((JavaListener)listener).enterArguments(this);
a62d533 7263
		}
a62d533 7264
		@Override
a62d533 7265
		public void exitRule(ParseTreeListener listener) {
a62d533 7266
			if ( listener instanceof JavaListener ) ((JavaListener)listener).exitArguments(this);
a62d533 7267
		}
a62d533 7268
	}
a62d533 7269
a62d533 7270
	public final ArgumentsContext arguments() throws RecognitionException {
a62d533 7271
		ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
a62d533 7272
		enterRule(_localctx, 200, RULE_arguments);
a62d533 7273
		int _la;
a62d533 7274
		try {
a62d533 7275
			enterOuterAlt(_localctx, 1);
a62d533 7276
			{
a62d533 7277
			setState(1285); match(LPAREN);
a62d533 7278
			setState(1287);
a62d533 7279
			_la = _input.LA(1);
a62d533 7280
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (BANG - 68)) | (1L << (TILDE - 68)) | (1L << (INC - 68)) | (1L << (DEC - 68)) | (1L << (ADD - 68)) | (1L << (SUB - 68)) | (1L << (Identifier - 68)))) != 0)) {
a62d533 7281
				{
a62d533 7282
				setState(1286); expressionList();
a62d533 7283
				}
a62d533 7284
			}
a62d533 7285
a62d533 7286
			setState(1289); match(RPAREN);
a62d533 7287
			}
a62d533 7288
		}
a62d533 7289
		catch (RecognitionException re) {
a62d533 7290
			_localctx.exception = re;
a62d533 7291
			_errHandler.reportError(this, re);
a62d533 7292
			_errHandler.recover(this, re);
a62d533 7293
		}
a62d533 7294
		finally {
a62d533 7295
			exitRule();
a62d533 7296
		}
a62d533 7297
		return _localctx;
a62d533 7298
	}
a62d533 7299
a62d533 7300
	public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
a62d533 7301
		switch (ruleIndex) {
a62d533 7302
		case 87: return expression_sempred((ExpressionContext)_localctx, predIndex);
a62d533 7303
		}
a62d533 7304
		return true;
a62d533 7305
	}
a62d533 7306
	private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
a62d533 7307
		switch (predIndex) {
a62d533 7308
		case 0: return precpred(_ctx, 13);
a62d533 7309
a62d533 7310
		case 1: return precpred(_ctx, 12);
a62d533 7311
a62d533 7312
		case 2: return precpred(_ctx, 11);
a62d533 7313
a62d533 7314
		case 3: return precpred(_ctx, 10);
a62d533 7315
a62d533 7316
		case 4: return precpred(_ctx, 8);
a62d533 7317
a62d533 7318
		case 5: return precpred(_ctx, 7);
a62d533 7319
a62d533 7320
		case 6: return precpred(_ctx, 6);
a62d533 7321
a62d533 7322
		case 7: return precpred(_ctx, 5);
a62d533 7323
a62d533 7324
		case 8: return precpred(_ctx, 4);
a62d533 7325
a62d533 7326
		case 9: return precpred(_ctx, 3);
a62d533 7327
a62d533 7328
		case 10: return precpred(_ctx, 2);
a62d533 7329
a62d533 7330
		case 11: return precpred(_ctx, 1);
a62d533 7331
a62d533 7332
		case 12: return precpred(_ctx, 25);
a62d533 7333
a62d533 7334
		case 13: return precpred(_ctx, 24);
a62d533 7335
a62d533 7336
		case 14: return precpred(_ctx, 23);
a62d533 7337
a62d533 7338
		case 15: return precpred(_ctx, 22);
a62d533 7339
a62d533 7340
		case 17: return precpred(_ctx, 20);
a62d533 7341
a62d533 7342
		case 16: return precpred(_ctx, 21);
a62d533 7343
a62d533 7344
		case 19: return precpred(_ctx, 16);
a62d533 7345
a62d533 7346
		case 18: return precpred(_ctx, 19);
a62d533 7347
a62d533 7348
		case 20: return precpred(_ctx, 9);
a62d533 7349
		}
a62d533 7350
		return true;
a62d533 7351
	}
a62d533 7352
a62d533 7353
	public static final String _serializedATN =
a62d533 7354
		"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3k\u050e\4\2\t\2\4"+
a62d533 7355
		"\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"+
a62d533 7356
		"\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"+
a62d533 7357
		"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
a62d533 7358
		"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
a62d533 7359
		"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
a62d533 7360
		",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
a62d533 7361
		"\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
a62d533 7362
		"\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
a62d533 7363
		"\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
a62d533 7364
		"\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
a62d533 7365
		"`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\3\2\5\2\u00ce\n\2\3\2\7\2\u00d1"+
a62d533 7366
		"\n\2\f\2\16\2\u00d4\13\2\3\2\7\2\u00d7\n\2\f\2\16\2\u00da\13\2\3\2\3\2"+
a62d533 7367
		"\3\3\7\3\u00df\n\3\f\3\16\3\u00e2\13\3\3\3\3\3\3\3\3\3\3\4\3\4\5\4\u00ea"+
a62d533 7368
		"\n\4\3\4\3\4\3\4\5\4\u00ef\n\4\3\4\3\4\3\5\7\5\u00f4\n\5\f\5\16\5\u00f7"+
a62d533 7369
		"\13\5\3\5\3\5\7\5\u00fb\n\5\f\5\16\5\u00fe\13\5\3\5\3\5\7\5\u0102\n\5"+
a62d533 7370
		"\f\5\16\5\u0105\13\5\3\5\3\5\7\5\u0109\n\5\f\5\16\5\u010c\13\5\3\5\3\5"+
a62d533 7371
		"\5\5\u0110\n\5\3\6\3\6\5\6\u0114\n\6\3\7\3\7\5\7\u0118\n\7\3\b\3\b\5\b"+
a62d533 7372
		"\u011c\n\b\3\t\3\t\3\t\5\t\u0121\n\t\3\t\3\t\5\t\u0125\n\t\3\t\3\t\5\t"+
a62d533 7373
		"\u0129\n\t\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u0131\n\n\f\n\16\n\u0134\13\n\3"+
a62d533 7374
		"\n\3\n\3\13\3\13\3\13\5\13\u013b\n\13\3\f\3\f\3\f\7\f\u0140\n\f\f\f\16"+
a62d533 7375
		"\f\u0143\13\f\3\r\3\r\3\r\3\r\5\r\u0149\n\r\3\r\3\r\5\r\u014d\n\r\3\r"+
a62d533 7376
		"\5\r\u0150\n\r\3\r\5\r\u0153\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u015a\n\16"+
a62d533 7377
		"\f\16\16\16\u015d\13\16\3\17\7\17\u0160\n\17\f\17\16\17\u0163\13\17\3"+
a62d533 7378
		"\17\3\17\5\17\u0167\n\17\3\17\5\17\u016a\n\17\3\20\3\20\7\20\u016e\n\20"+
a62d533 7379
		"\f\20\16\20\u0171\13\20\3\21\3\21\3\21\5\21\u0176\n\21\3\21\3\21\5\21"+
a62d533 7380
		"\u017a\n\21\3\21\3\21\3\22\3\22\3\22\7\22\u0181\n\22\f\22\16\22\u0184"+
a62d533 7381
		"\13\22\3\23\3\23\7\23\u0188\n\23\f\23\16\23\u018b\13\23\3\23\3\23\3\24"+
a62d533 7382
		"\3\24\7\24\u0191\n\24\f\24\16\24\u0194\13\24\3\24\3\24\3\25\3\25\5\25"+
a62d533 7383
		"\u019a\n\25\3\25\3\25\7\25\u019e\n\25\f\25\16\25\u01a1\13\25\3\25\5\25"+
a62d533 7384
		"\u01a4\n\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\5\26\u01af\n"+
a62d533 7385
		"\26\3\27\3\27\5\27\u01b3\n\27\3\27\3\27\3\27\3\27\7\27\u01b9\n\27\f\27"+
a62d533 7386
		"\16\27\u01bc\13\27\3\27\3\27\5\27\u01c0\n\27\3\27\3\27\5\27\u01c4\n\27"+
a62d533 7387
		"\3\30\3\30\3\30\3\31\3\31\3\31\3\31\5\31\u01cd\n\31\3\31\3\31\3\32\3\32"+
a62d533 7388
		"\3\32\3\33\3\33\3\33\3\33\3\34\7\34\u01d9\n\34\f\34\16\34\u01dc\13\34"+
a62d533 7389
		"\3\34\3\34\5\34\u01e0\n\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u01e9"+
a62d533 7390
		"\n\35\3\36\3\36\3\36\3\36\7\36\u01ef\n\36\f\36\16\36\u01f2\13\36\3\36"+
a62d533 7391
		"\3\36\3\37\3\37\3\37\7\37\u01f9\n\37\f\37\16\37\u01fc\13\37\3\37\3\37"+
a62d533 7392
		"\3\37\3 \3 \5 \u0203\n \3 \3 \3 \3 \7 \u0209\n \f \16 \u020c\13 \3 \3"+
a62d533 7393
		" \5 \u0210\n \3 \3 \3!\3!\3!\3\"\3\"\3\"\7\"\u021a\n\"\f\"\16\"\u021d"+
a62d533 7394
		"\13\"\3#\3#\3#\5#\u0222\n#\3$\3$\3$\7$\u0227\n$\f$\16$\u022a\13$\3%\3"+
a62d533 7395
		"%\5%\u022e\n%\3&\3&\3&\3&\7&\u0234\n&\f&\16&\u0237\13&\3&\5&\u023a\n&"+
a62d533 7396
		"\5&\u023c\n&\3&\3&\3\'\3\'\3(\3(\3(\7(\u0245\n(\f(\16(\u0248\13(\3(\3"+
a62d533 7397
		"(\3(\7(\u024d\n(\f(\16(\u0250\13(\5(\u0252\n(\3)\3)\5)\u0256\n)\3)\3)"+
a62d533 7398
		"\3)\5)\u025b\n)\7)\u025d\n)\f)\16)\u0260\13)\3*\3*\3+\3+\3+\3+\7+\u0268"+
a62d533 7399
		"\n+\f+\16+\u026b\13+\3+\3+\3,\3,\3,\3,\5,\u0273\n,\5,\u0275\n,\3-\3-\3"+
a62d533 7400
		"-\7-\u027a\n-\f-\16-\u027d\13-\3.\3.\5.\u0281\n.\3.\3.\3/\3/\3/\7/\u0288"+
a62d533 7401
		"\n/\f/\16/\u028b\13/\3/\3/\5/\u028f\n/\3/\5/\u0292\n/\3\60\7\60\u0295"+
a62d533 7402
		"\n\60\f\60\16\60\u0298\13\60\3\60\3\60\3\60\3\61\7\61\u029e\n\61\f\61"+
a62d533 7403
		"\16\61\u02a1\13\61\3\61\3\61\3\61\3\61\3\62\3\62\3\63\3\63\3\64\3\64\3"+
a62d533 7404
		"\64\7\64\u02ae\n\64\f\64\16\64\u02b1\13\64\3\65\3\65\3\66\3\66\3\66\3"+
a62d533 7405
		"\66\3\66\5\66\u02ba\n\66\3\66\5\66\u02bd\n\66\3\67\3\67\38\38\38\78\u02c4"+
a62d533 7406
		"\n8\f8\168\u02c7\138\39\39\39\39\3:\3:\3:\5:\u02d0\n:\3;\3;\3;\3;\7;\u02d6"+
a62d533 7407
		"\n;\f;\16;\u02d9\13;\5;\u02db\n;\3;\5;\u02de\n;\3;\3;\3<\3<\3<\3<\3<\3"+
a62d533 7408
		"=\3=\7=\u02e9\n=\f=\16=\u02ec\13=\3=\3=\3>\7>\u02f1\n>\f>\16>\u02f4\13"+
a62d533 7409
		">\3>\3>\5>\u02f8\n>\3?\3?\3?\3?\3?\3?\5?\u0300\n?\3?\3?\5?\u0304\n?\3"+
a62d533 7410
		"?\3?\5?\u0308\n?\3?\3?\5?\u030c\n?\5?\u030e\n?\3@\3@\5@\u0312\n@\3A\3"+
a62d533 7411
		"A\3A\3A\5A\u0318\nA\3B\3B\3C\3C\3C\3D\3D\7D\u0321\nD\fD\16D\u0324\13D"+
a62d533 7412
		"\3D\3D\3E\3E\3E\5E\u032b\nE\3F\3F\3F\3G\7G\u0331\nG\fG\16G\u0334\13G\3"+
a62d533 7413
		"G\3G\3G\3H\3H\3H\3H\3H\5H\u033e\nH\3H\3H\3H\3H\3H\3H\3H\5H\u0347\nH\3"+
a62d533 7414
		"H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\6H\u035c\nH\r"+
a62d533 7415
		"H\16H\u035d\3H\5H\u0361\nH\3H\5H\u0364\nH\3H\3H\3H\3H\7H\u036a\nH\fH\16"+
a62d533 7416
		"H\u036d\13H\3H\5H\u0370\nH\3H\3H\3H\3H\7H\u0376\nH\fH\16H\u0379\13H\3"+
a62d533 7417
		"H\7H\u037c\nH\fH\16H\u037f\13H\3H\3H\3H\3H\3H\3H\3H\3H\5H\u0389\nH\3H"+
a62d533 7418
		"\3H\3H\3H\3H\3H\3H\5H\u0392\nH\3H\3H\3H\5H\u0397\nH\3H\3H\3H\3H\3H\3H"+
a62d533 7419
		"\3H\3H\5H\u03a1\nH\3I\3I\3I\7I\u03a6\nI\fI\16I\u03a9\13I\3I\3I\3I\3I\3"+
a62d533 7420
		"I\3J\3J\3J\7J\u03b3\nJ\fJ\16J\u03b6\13J\3K\3K\3K\3L\3L\3L\5L\u03be\nL"+
a62d533 7421
		"\3L\3L\3M\3M\3M\7M\u03c5\nM\fM\16M\u03c8\13M\3N\7N\u03cb\nN\fN\16N\u03ce"+
a62d533 7422
		"\13N\3N\3N\3N\3N\3N\3O\6O\u03d6\nO\rO\16O\u03d7\3O\6O\u03db\nO\rO\16O"+
a62d533 7423
		"\u03dc\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\5P\u03e9\nP\3Q\3Q\5Q\u03ed\nQ\3Q"+
a62d533 7424
		"\3Q\5Q\u03f1\nQ\3Q\3Q\5Q\u03f5\nQ\5Q\u03f7\nQ\3R\3R\5R\u03fb\nR\3S\7S"+
a62d533 7425
		"\u03fe\nS\fS\16S\u0401\13S\3S\3S\3S\3S\3S\3T\3T\3U\3U\3U\3U\3V\3V\3V\7"+
a62d533 7426
		"V\u0411\nV\fV\16V\u0414\13V\3W\3W\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+
a62d533 7427
		"\3Y\3Y\3Y\5Y\u0427\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0437"+
a62d533 7428
		"\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+
a62d533 7429
		"\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0462\nY"+
a62d533 7430
		"\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u046f\nY\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y"+
a62d533 7431
		"\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0481\nY\3Y\3Y\3Y\3Y\3Y\3Y\7Y\u0489\nY\fY"+
a62d533 7432
		"\16Y\u048c\13Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3"+
a62d533 7433
		"Z\5Z\u04a1\nZ\5Z\u04a3\nZ\3[\3[\3[\3[\3[\3[\3[\5[\u04ac\n[\5[\u04ae\n"+
a62d533 7434
		"[\3\\\3\\\5\\\u04b2\n\\\3\\\3\\\3\\\5\\\u04b7\n\\\7\\\u04b9\n\\\f\\\16"+
a62d533 7435
		"\\\u04bc\13\\\3\\\5\\\u04bf\n\\\3]\3]\5]\u04c3\n]\3]\3]\3^\3^\3^\3^\7"+
a62d533 7436
		"^\u04cb\n^\f^\16^\u04ce\13^\3^\3^\3^\3^\3^\3^\3^\7^\u04d7\n^\f^\16^\u04da"+
a62d533 7437
		"\13^\3^\3^\7^\u04de\n^\f^\16^\u04e1\13^\5^\u04e3\n^\3_\3_\5_\u04e7\n_"+
a62d533 7438
		"\3`\3`\3`\3a\3a\3a\3a\3b\3b\3b\5b\u04f3\nb\3c\3c\3c\5c\u04f8\nc\3d\3d"+
a62d533 7439
		"\3d\3d\5d\u04fe\nd\5d\u0500\nd\3e\3e\3e\3e\5e\u0506\ne\3f\3f\5f\u050a"+
a62d533 7440
		"\nf\3f\3f\3f\2\3\u00b0g\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*"+
a62d533 7441
		",.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084"+
a62d533 7442
		"\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c"+
a62d533 7443
		"\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4"+
a62d533 7444
		"\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\2\16"+
a62d533 7445
		"\6\2  ,,\60\60\63\63\6\2\3\3\24\24#%()\n\2\5\5\7\7\n\n\20\20\26\26\35"+
a62d533 7446
		"\35\37\37\'\'\4\2\23\23**\3\2\65:\3\2QT\3\2GH\4\2UVZZ\3\2ST\4\2EFLM\4"+
a62d533 7447
		"\2KKNN\3\2QR\u058b\2\u00cd\3\2\2\2\4\u00e0\3\2\2\2\6\u00e7\3\2\2\2\b\u010f"+
a62d533 7448
		"\3\2\2\2\n\u0113\3\2\2\2\f\u0117\3\2\2\2\16\u011b\3\2\2\2\20\u011d\3\2"+
a62d533 7449
		"\2\2\22\u012c\3\2\2\2\24\u0137\3\2\2\2\26\u013c\3\2\2\2\30\u0144\3\2\2"+
a62d533 7450
		"\2\32\u0156\3\2\2\2\34\u0161\3\2\2\2\36\u016b\3\2\2\2 \u0172\3\2\2\2\""+
a62d533 7451
		"\u017d\3\2\2\2$\u0185\3\2\2\2&\u018e\3\2\2\2(\u01a3\3\2\2\2*\u01ae\3\2"+
a62d533 7452
		"\2\2,\u01b2\3\2\2\2.\u01c5\3\2\2\2\60\u01c8\3\2\2\2\62\u01d0\3\2\2\2\64"+
a62d533 7453
		"\u01d3\3\2\2\2\66\u01df\3\2\2\28\u01e8\3\2\2\2:\u01ea\3\2\2\2<\u01f5\3"+
a62d533 7454
		"\2\2\2>\u0202\3\2\2\2@\u0213\3\2\2\2B\u0216\3\2\2\2D\u021e\3\2\2\2F\u0223"+
a62d533 7455
		"\3\2\2\2H\u022d\3\2\2\2J\u022f\3\2\2\2L\u023f\3\2\2\2N\u0251\3\2\2\2P"+
a62d533 7456
		"\u0253\3\2\2\2R\u0261\3\2\2\2T\u0263\3\2\2\2V\u0274\3\2\2\2X\u0276\3\2"+
a62d533 7457
		"\2\2Z\u027e\3\2\2\2\\\u0291\3\2\2\2^\u0296\3\2\2\2`\u029f\3\2\2\2b\u02a6"+
a62d533 7458
		"\3\2\2\2d\u02a8\3\2\2\2f\u02aa\3\2\2\2h\u02b2\3\2\2\2j\u02b4\3\2\2\2l"+
a62d533 7459
		"\u02be\3\2\2\2n\u02c0\3\2\2\2p\u02c8\3\2\2\2r\u02cf\3\2\2\2t\u02d1\3\2"+
a62d533 7460
		"\2\2v\u02e1\3\2\2\2x\u02e6\3\2\2\2z\u02f7\3\2\2\2|\u030d\3\2\2\2~\u0311"+
a62d533 7461
		"\3\2\2\2\u0080\u0313\3\2\2\2\u0082\u0319\3\2\2\2\u0084\u031b\3\2\2\2\u0086"+
a62d533 7462
		"\u031e\3\2\2\2\u0088\u032a\3\2\2\2\u008a\u032c\3\2\2\2\u008c\u0332\3\2"+
a62d533 7463
		"\2\2\u008e\u03a0\3\2\2\2\u0090\u03a2\3\2\2\2\u0092\u03af\3\2\2\2\u0094"+
a62d533 7464
		"\u03b7\3\2\2\2\u0096\u03ba\3\2\2\2\u0098\u03c1\3\2\2\2\u009a\u03cc\3\2"+
a62d533 7465
		"\2\2\u009c\u03d5\3\2\2\2\u009e\u03e8\3\2\2\2\u00a0\u03f6\3\2\2\2\u00a2"+
a62d533 7466
		"\u03fa\3\2\2\2\u00a4\u03ff\3\2\2\2\u00a6\u0407\3\2\2\2\u00a8\u0409\3\2"+
a62d533 7467
		"\2\2\u00aa\u040d\3\2\2\2\u00ac\u0415\3\2\2\2\u00ae\u0417\3\2\2\2\u00b0"+
a62d533 7468
		"\u0426\3\2\2\2\u00b2\u04a2\3\2\2\2\u00b4\u04ad\3\2\2\2\u00b6\u04be\3\2"+
a62d533 7469
		"\2\2\u00b8\u04c0\3\2\2\2\u00ba\u04c6\3\2\2\2\u00bc\u04e4\3\2\2\2\u00be"+
a62d533 7470
		"\u04e8\3\2\2\2\u00c0\u04eb\3\2\2\2\u00c2\u04f2\3\2\2\2\u00c4\u04f7\3\2"+
a62d533 7471
		"\2\2\u00c6\u04ff\3\2\2\2\u00c8\u0505\3\2\2\2\u00ca\u0507\3\2\2\2\u00cc"+
a62d533 7472
		"\u00ce\5\4\3\2\u00cd\u00cc\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce\u00d2\3\2"+
a62d533 7473
		"\2\2\u00cf\u00d1\5\6\4\2\u00d0\u00cf\3\2\2\2\u00d1\u00d4\3\2\2\2\u00d2"+
a62d533 7474
		"\u00d0\3\2\2\2\u00d2\u00d3\3\2\2\2\u00d3\u00d8\3\2\2\2\u00d4\u00d2\3\2"+
a62d533 7475
		"\2\2\u00d5\u00d7\5\b\5\2\u00d6\u00d5\3\2\2\2\u00d7\u00da\3\2\2\2\u00d8"+
a62d533 7476
		"\u00d6\3\2\2\2\u00d8\u00d9\3\2\2\2\u00d9\u00db\3\2\2\2\u00da\u00d8\3\2"+
a62d533 7477
		"\2\2\u00db\u00dc\7\2\2\3\u00dc\3\3\2\2\2\u00dd\u00df\5j\66\2\u00de\u00dd"+
a62d533 7478
		"\3\2\2\2\u00df\u00e2\3\2\2\2\u00e0\u00de\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1"+
a62d533 7479
		"\u00e3\3\2\2\2\u00e2\u00e0\3\2\2\2\u00e3\u00e4\7\"\2\2\u00e4\u00e5\5f"+
a62d533 7480
		"\64\2\u00e5\u00e6\7A\2\2\u00e6\5\3\2\2\2\u00e7\u00e9\7\33\2\2\u00e8\u00ea"+
a62d533 7481
		"\7(\2\2\u00e9\u00e8\3\2\2\2\u00e9\u00ea\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb"+
a62d533 7482
		"\u00ee\5f\64\2\u00ec\u00ed\7C\2\2\u00ed\u00ef\7U\2\2\u00ee\u00ec\3\2\2"+
a62d533 7483
		"\2\u00ee\u00ef\3\2\2\2\u00ef\u00f0\3\2\2\2\u00f0\u00f1\7A\2\2\u00f1\7"+
a62d533 7484
		"\3\2\2\2\u00f2\u00f4\5\f\7\2\u00f3\u00f2\3\2\2\2\u00f4\u00f7\3\2\2\2\u00f5"+
a62d533 7485
		"\u00f3\3\2\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f8\3\2\2\2\u00f7\u00f5\3\2"+
a62d533 7486
		"\2\2\u00f8\u0110\5\20\t\2\u00f9\u00fb\5\f\7\2\u00fa\u00f9\3\2\2\2\u00fb"+
a62d533 7487
		"\u00fe\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u00ff\3\2"+
a62d533 7488
		"\2\2\u00fe\u00fc\3\2\2\2\u00ff\u0110\5\30\r\2\u0100\u0102\5\f\7\2\u0101"+
a62d533 7489
		"\u0100\3\2\2\2\u0102\u0105\3\2\2\2\u0103\u0101\3\2\2\2\u0103\u0104\3\2"+
a62d533 7490
		"\2\2\u0104\u0106\3\2\2\2\u0105\u0103\3\2\2\2\u0106\u0110\5 \21\2\u0107"+
a62d533 7491
		"\u0109\5\f\7\2\u0108\u0107\3\2\2\2\u0109\u010c\3\2\2\2\u010a\u0108\3\2"+
a62d533 7492
		"\2\2\u010a\u010b\3\2\2\2\u010b\u010d\3\2\2\2\u010c\u010a\3\2\2\2\u010d"+
a62d533 7493
		"\u0110\5v<\2\u010e\u0110\7A\2\2\u010f\u00f5\3\2\2\2\u010f\u00fc\3\2\2"+
a62d533 7494
		"\2\u010f\u0103\3\2\2\2\u010f\u010a\3\2\2\2\u010f\u010e\3\2\2\2\u0110\t"+
a62d533 7495
		"\3\2\2\2\u0111\u0114\5\f\7\2\u0112\u0114\t\2\2\2\u0113\u0111\3\2\2\2\u0113"+
a62d533 7496
		"\u0112\3\2\2\2\u0114\13\3\2\2\2\u0115\u0118\5j\66\2\u0116\u0118\t\3\2"+
a62d533 7497
		"\2\u0117\u0115\3\2\2\2\u0117\u0116\3\2\2\2\u0118\r\3\2\2\2\u0119\u011c"+
a62d533 7498
		"\7\24\2\2\u011a\u011c\5j\66\2\u011b\u0119\3\2\2\2\u011b\u011a\3\2\2\2"+
a62d533 7499
		"\u011c\17\3\2\2\2\u011d\u011e\7\13\2\2\u011e\u0120\7f\2\2\u011f\u0121"+
a62d533 7500
		"\5\22\n\2\u0120\u011f\3\2\2\2\u0120\u0121\3\2\2\2\u0121\u0124\3\2\2\2"+
a62d533 7501
		"\u0122\u0123\7\23\2\2\u0123\u0125\5N(\2\u0124\u0122\3\2\2\2\u0124\u0125"+
a62d533 7502
		"\3\2\2\2\u0125\u0128\3\2\2\2\u0126\u0127\7\32\2\2\u0127\u0129\5\"\22\2"+
a62d533 7503
		"\u0128\u0126\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u012a\3\2\2\2\u012a\u012b"+
a62d533 7504
		"\5$\23\2\u012b\21\3\2\2\2\u012c\u012d\7F\2\2\u012d\u0132\5\24\13\2\u012e"+
a62d533 7505
		"\u012f\7B\2\2\u012f\u0131\5\24\13\2\u0130\u012e\3\2\2\2\u0131\u0134\3"+
a62d533 7506
		"\2\2\2\u0132\u0130\3\2\2\2\u0132\u0133\3\2\2\2\u0133\u0135\3\2\2\2\u0134"+
a62d533 7507
		"\u0132\3\2\2\2\u0135\u0136\7E\2\2\u0136\23\3\2\2\2\u0137\u013a\7f\2\2"+
a62d533 7508
		"\u0138\u0139\7\23\2\2\u0139\u013b\5\26\f\2\u013a\u0138\3\2\2\2\u013a\u013b"+
a62d533 7509
		"\3\2\2\2\u013b\25\3\2\2\2\u013c\u0141\5N(\2\u013d\u013e\7W\2\2\u013e\u0140"+
a62d533 7510
		"\5N(\2\u013f\u013d\3\2\2\2\u0140\u0143\3\2\2\2\u0141\u013f\3\2\2\2\u0141"+
a62d533 7511
		"\u0142\3\2\2\2\u0142\27\3\2\2\2\u0143\u0141\3\2\2\2\u0144\u0145\7\22\2"+
a62d533 7512
		"\2\u0145\u0148\7f\2\2\u0146\u0147\7\32\2\2\u0147\u0149\5\"\22\2\u0148"+
a62d533 7513
		"\u0146\3\2\2\2\u0148\u0149\3\2\2\2\u0149\u014a\3\2\2\2\u014a\u014c\7="+
a62d533 7514
		"\2\2\u014b\u014d\5\32\16\2\u014c\u014b\3\2\2\2\u014c\u014d\3\2\2\2\u014d"+
a62d533 7515
		"\u014f\3\2\2\2\u014e\u0150\7B\2\2\u014f\u014e\3\2\2\2\u014f\u0150\3\2"+
a62d533 7516
		"\2\2\u0150\u0152\3\2\2\2\u0151\u0153\5\36\20\2\u0152\u0151\3\2\2\2\u0152"+
a62d533 7517
		"\u0153\3\2\2\2\u0153\u0154\3\2\2\2\u0154\u0155\7>\2\2\u0155\31\3\2\2\2"+
a62d533 7518
		"\u0156\u015b\5\34\17\2\u0157\u0158\7B\2\2\u0158\u015a\5\34\17\2\u0159"+
a62d533 7519
		"\u0157\3\2\2\2\u015a\u015d\3\2\2\2\u015b\u0159\3\2\2\2\u015b\u015c\3\2"+
a62d533 7520
		"\2\2\u015c\33\3\2\2\2\u015d\u015b\3\2\2\2\u015e\u0160\5j\66\2\u015f\u015e"+
a62d533 7521
		"\3\2\2\2\u0160\u0163\3\2\2\2\u0161\u015f\3\2\2\2\u0161\u0162\3\2\2\2\u0162"+
a62d533 7522
		"\u0164\3\2\2\2\u0163\u0161\3\2\2\2\u0164\u0166\7f\2\2\u0165\u0167\5\u00ca"+
a62d533 7523
		"f\2\u0166\u0165\3\2\2\2\u0166\u0167\3\2\2\2\u0167\u0169\3\2\2\2\u0168"+
a62d533 7524
		"\u016a\5$\23\2\u0169\u0168\3\2\2\2\u0169\u016a\3\2\2\2\u016a\35\3\2\2"+
a62d533 7525
		"\2\u016b\u016f\7A\2\2\u016c\u016e\5(\25\2\u016d\u016c\3\2\2\2\u016e\u0171"+
a62d533 7526
		"\3\2\2\2\u016f\u016d\3\2\2\2\u016f\u0170\3\2\2\2\u0170\37\3\2\2\2\u0171"+
a62d533 7527
		"\u016f\3\2\2\2\u0172\u0173\7\36\2\2\u0173\u0175\7f\2\2\u0174\u0176\5\22"+
a62d533 7528
		"\n\2\u0175\u0174\3\2\2\2\u0175\u0176\3\2\2\2\u0176\u0179\3\2\2\2\u0177"+
a62d533 7529
		"\u0178\7\23\2\2\u0178\u017a\5\"\22\2\u0179\u0177\3\2\2\2\u0179\u017a\3"+
a62d533 7530
		"\2\2\2\u017a\u017b\3\2\2\2\u017b\u017c\5&\24\2\u017c!\3\2\2\2\u017d\u0182"+
a62d533 7531
		"\5N(\2\u017e\u017f\7B\2\2\u017f\u0181\5N(\2\u0180\u017e\3\2\2\2\u0181"+
a62d533 7532
		"\u0184\3\2\2\2\u0182\u0180\3\2\2\2\u0182\u0183\3\2\2\2\u0183#\3\2\2\2"+
a62d533 7533
		"\u0184\u0182\3\2\2\2\u0185\u0189\7=\2\2\u0186\u0188\5(\25\2\u0187\u0186"+
a62d533 7534
		"\3\2\2\2\u0188\u018b\3\2\2\2\u0189\u0187\3\2\2\2\u0189\u018a\3\2\2\2\u018a"+
a62d533 7535
		"\u018c\3\2\2\2\u018b\u0189\3\2\2\2\u018c\u018d\7>\2\2\u018d%\3\2\2\2\u018e"+
a62d533 7536
		"\u0192\7=\2\2\u018f\u0191\5\66\34\2\u0190\u018f\3\2\2\2\u0191\u0194\3"+
a62d533 7537
		"\2\2\2\u0192\u0190\3\2\2\2\u0192\u0193\3\2\2\2\u0193\u0195\3\2\2\2\u0194"+
a62d533 7538
		"\u0192\3\2\2\2\u0195\u0196\7>\2\2\u0196\'\3\2\2\2\u0197\u01a4\7A\2\2\u0198"+
a62d533 7539
		"\u019a\7(\2\2\u0199\u0198\3\2\2\2\u0199\u019a\3\2\2\2\u019a\u019b\3\2"+
a62d533 7540
		"\2\2\u019b\u01a4\5\u0086D\2\u019c\u019e\5\n\6\2\u019d\u019c\3\2\2\2\u019e"+
a62d533 7541
		"\u01a1\3\2\2\2\u019f\u019d\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0\u01a2\3\2"+
a62d533 7542
		"\2\2\u01a1\u019f\3\2\2\2\u01a2\u01a4\5*\26\2\u01a3\u0197\3\2\2\2\u01a3"+
a62d533 7543
		"\u0199\3\2\2\2\u01a3\u019f\3\2\2\2\u01a4)\3\2\2\2\u01a5\u01af\5,\27\2"+
a62d533 7544
		"\u01a6\u01af\5.\30\2\u01a7\u01af\5\64\33\2\u01a8\u01af\5\60\31\2\u01a9"+
a62d533 7545
		"\u01af\5\62\32\2\u01aa\u01af\5 \21\2\u01ab\u01af\5v<\2\u01ac\u01af\5\20"+
a62d533 7546
		"\t\2\u01ad\u01af\5\30\r\2\u01ae\u01a5\3\2\2\2\u01ae\u01a6\3\2\2\2\u01ae"+
a62d533 7547
		"\u01a7\3\2\2\2\u01ae\u01a8\3\2\2\2\u01ae\u01a9\3\2\2\2\u01ae\u01aa\3\2"+
a62d533 7548
		"\2\2\u01ae\u01ab\3\2\2\2\u01ae\u01ac\3\2\2\2\u01ae\u01ad\3\2\2\2\u01af"+
a62d533 7549
		"+\3\2\2\2\u01b0\u01b3\5N(\2\u01b1\u01b3\7\62\2\2\u01b2\u01b0\3\2\2\2\u01b2"+
a62d533 7550
		"\u01b1\3\2\2\2\u01b3\u01b4\3\2\2\2\u01b4\u01b5\7f\2\2\u01b5\u01ba\5Z."+
a62d533 7551
		"\2\u01b6\u01b7\7?\2\2\u01b7\u01b9\7@\2\2\u01b8\u01b6\3\2\2\2\u01b9\u01bc"+
a62d533 7552
		"\3\2\2\2\u01ba\u01b8\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bb\u01bf\3\2\2\2\u01bc"+
a62d533 7553
		"\u01ba\3\2\2\2\u01bd\u01be\7/\2\2\u01be\u01c0\5X-\2\u01bf\u01bd\3\2\2"+
a62d533 7554
		"\2\u01bf\u01c0\3\2\2\2\u01c0\u01c3\3\2\2\2\u01c1\u01c4\5b\62\2\u01c2\u01c4"+
a62d533 7555
		"\7A\2\2\u01c3\u01c1\3\2\2\2\u01c3\u01c2\3\2\2\2\u01c4-\3\2\2\2\u01c5\u01c6"+
a62d533 7556
		"\5\22\n\2\u01c6\u01c7\5,\27\2\u01c7/\3\2\2\2\u01c8\u01c9\7f\2\2\u01c9"+
a62d533 7557
		"\u01cc\5Z.\2\u01ca\u01cb\7/\2\2\u01cb\u01cd\5X-\2\u01cc\u01ca\3\2\2\2"+
a62d533 7558
		"\u01cc\u01cd\3\2\2\2\u01cd\u01ce\3\2\2\2\u01ce\u01cf\5d\63\2\u01cf\61"+
a62d533 7559
		"\3\2\2\2\u01d0\u01d1\5\22\n\2\u01d1\u01d2\5\60\31\2\u01d2\63\3\2\2\2\u01d3"+
a62d533 7560
		"\u01d4\5N(\2\u01d4\u01d5\5B\"\2\u01d5\u01d6\7A\2\2\u01d6\65\3\2\2\2\u01d7"+
a62d533 7561
		"\u01d9\5\n\6\2\u01d8\u01d7\3\2\2\2\u01d9\u01dc\3\2\2\2\u01da\u01d8\3\2"+
a62d533 7562
		"\2\2\u01da\u01db\3\2\2\2\u01db\u01dd\3\2\2\2\u01dc\u01da\3\2\2\2\u01dd"+
a62d533 7563
		"\u01e0\58\35\2\u01de\u01e0\7A\2\2\u01df\u01da\3\2\2\2\u01df\u01de\3\2"+
a62d533 7564
		"\2\2\u01e0\67\3\2\2\2\u01e1\u01e9\5:\36\2\u01e2\u01e9\5> \2\u01e3\u01e9"+
a62d533 7565
		"\5@!\2\u01e4\u01e9\5 \21\2\u01e5\u01e9\5v<\2\u01e6\u01e9\5\20\t\2\u01e7"+
a62d533 7566
		"\u01e9\5\30\r\2\u01e8\u01e1\3\2\2\2\u01e8\u01e2\3\2\2\2\u01e8\u01e3\3"+
a62d533 7567
		"\2\2\2\u01e8\u01e4\3\2\2\2\u01e8\u01e5\3\2\2\2\u01e8\u01e6\3\2\2\2\u01e8"+
a62d533 7568
		"\u01e7\3\2\2\2\u01e99\3\2\2\2\u01ea\u01eb\5N(\2\u01eb\u01f0\5<\37\2\u01ec"+
a62d533 7569
		"\u01ed\7B\2\2\u01ed\u01ef\5<\37\2\u01ee\u01ec\3\2\2\2\u01ef\u01f2\3\2"+
a62d533 7570
		"\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f3\3\2\2\2\u01f2"+
a62d533 7571
		"\u01f0\3\2\2\2\u01f3\u01f4\7A\2\2\u01f4;\3\2\2\2\u01f5\u01fa\7f\2\2\u01f6"+
a62d533 7572
		"\u01f7\7?\2\2\u01f7\u01f9\7@\2\2\u01f8\u01f6\3\2\2\2\u01f9\u01fc\3\2\2"+
a62d533 7573
		"\2\u01fa\u01f8\3\2\2\2\u01fa\u01fb\3\2\2\2\u01fb\u01fd\3\2\2\2\u01fc\u01fa"+
a62d533 7574
		"\3\2\2\2\u01fd\u01fe\7D\2\2\u01fe\u01ff\5H%\2\u01ff=\3\2\2\2\u0200\u0203"+
a62d533 7575
		"\5N(\2\u0201\u0203\7\62\2\2\u0202\u0200\3\2\2\2\u0202\u0201\3\2\2\2\u0203"+
a62d533 7576
		"\u0204\3\2\2\2\u0204\u0205\7f\2\2\u0205\u020a\5Z.\2\u0206\u0207\7?\2\2"+
a62d533 7577
		"\u0207\u0209\7@\2\2\u0208\u0206\3\2\2\2\u0209\u020c\3\2\2\2\u020a\u0208"+
a62d533 7578
		"\3\2\2\2\u020a\u020b\3\2\2\2\u020b\u020f\3\2\2\2\u020c\u020a\3\2\2\2\u020d"+
a62d533 7579
		"\u020e\7/\2\2\u020e\u0210\5X-\2\u020f\u020d\3\2\2\2\u020f\u0210\3\2\2"+
a62d533 7580
		"\2\u0210\u0211\3\2\2\2\u0211\u0212\7A\2\2\u0212?\3\2\2\2\u0213\u0214\5"+
a62d533 7581
		"\22\n\2\u0214\u0215\5> \2\u0215A\3\2\2\2\u0216\u021b\5D#\2\u0217\u0218"+
a62d533 7582
		"\7B\2\2\u0218\u021a\5D#\2\u0219\u0217\3\2\2\2\u021a\u021d\3\2\2\2\u021b"+
a62d533 7583
		"\u0219\3\2\2\2\u021b\u021c\3\2\2\2\u021cC\3\2\2\2\u021d\u021b\3\2\2\2"+
a62d533 7584
		"\u021e\u0221\5F$\2\u021f\u0220\7D\2\2\u0220\u0222\5H%\2\u0221\u021f\3"+
a62d533 7585
		"\2\2\2\u0221\u0222\3\2\2\2\u0222E\3\2\2\2\u0223\u0228\7f\2\2\u0224\u0225"+
a62d533 7586
		"\7?\2\2\u0225\u0227\7@\2\2\u0226\u0224\3\2\2\2\u0227\u022a\3\2\2\2\u0228"+
a62d533 7587
		"\u0226\3\2\2\2\u0228\u0229\3\2\2\2\u0229G\3\2\2\2\u022a\u0228\3\2\2\2"+
a62d533 7588
		"\u022b\u022e\5J&\2\u022c\u022e\5\u00b0Y\2\u022d\u022b\3\2\2\2\u022d\u022c"+
a62d533 7589
		"\3\2\2\2\u022eI\3\2\2\2\u022f\u023b\7=\2\2\u0230\u0235\5H%\2\u0231\u0232"+
a62d533 7590
		"\7B\2\2\u0232\u0234\5H%\2\u0233\u0231\3\2\2\2\u0234\u0237\3\2\2\2\u0235"+
a62d533 7591
		"\u0233\3\2\2\2\u0235\u0236\3\2\2\2\u0236\u0239\3\2\2\2\u0237\u0235\3\2"+
a62d533 7592
		"\2\2\u0238\u023a\7B\2\2\u0239\u0238\3\2\2\2\u0239\u023a\3\2\2\2\u023a"+
a62d533 7593
		"\u023c\3\2\2\2\u023b\u0230\3\2\2\2\u023b\u023c\3\2\2\2\u023c\u023d\3\2"+
a62d533 7594
		"\2\2\u023d\u023e\7>\2\2\u023eK\3\2\2\2\u023f\u0240\7f\2\2\u0240M\3\2\2"+
a62d533 7595
		"\2\u0241\u0246\5P)\2\u0242\u0243\7?\2\2\u0243\u0245\7@\2\2\u0244\u0242"+
a62d533 7596
		"\3\2\2\2\u0245\u0248\3\2\2\2\u0246\u0244\3\2\2\2\u0246\u0247\3\2\2\2\u0247"+
a62d533 7597
		"\u0252\3\2\2\2\u0248\u0246\3\2\2\2\u0249\u024e\5R*\2\u024a\u024b\7?\2"+
a62d533 7598
		"\2\u024b\u024d\7@\2\2\u024c\u024a\3\2\2\2\u024d\u0250\3\2\2\2\u024e\u024c"+
a62d533 7599
		"\3\2\2\2\u024e\u024f\3\2\2\2\u024f\u0252\3\2\2\2\u0250\u024e\3\2\2\2\u0251"+
a62d533 7600
		"\u0241\3\2\2\2\u0251\u0249\3\2\2\2\u0252O\3\2\2\2\u0253\u0255\7f\2\2\u0254"+
a62d533 7601
		"\u0256\5T+\2\u0255\u0254\3\2\2\2\u0255\u0256\3\2\2\2\u0256\u025e\3\2\2"+
a62d533 7602
		"\2\u0257\u0258\7C\2\2\u0258\u025a\7f\2\2\u0259\u025b\5T+\2\u025a\u0259"+
a62d533 7603
		"\3\2\2\2\u025a\u025b\3\2\2\2\u025b\u025d\3\2\2\2\u025c\u0257\3\2\2\2\u025d"+
a62d533 7604
		"\u0260\3\2\2\2\u025e\u025c\3\2\2\2\u025e\u025f\3\2\2\2\u025fQ\3\2\2\2"+
a62d533 7605
		"\u0260\u025e\3\2\2\2\u0261\u0262\t\4\2\2\u0262S\3\2\2\2\u0263\u0264\7"+
a62d533 7606
		"F\2\2\u0264\u0269\5V,\2\u0265\u0266\7B\2\2\u0266\u0268\5V,\2\u0267\u0265"+
a62d533 7607
		"\3\2\2\2\u0268\u026b\3\2\2\2\u0269\u0267\3\2\2\2\u0269\u026a\3\2\2\2\u026a"+
a62d533 7608
		"\u026c\3\2\2\2\u026b\u0269\3\2\2\2\u026c\u026d\7E\2\2\u026dU\3\2\2\2\u026e"+
a62d533 7609
		"\u0275\5N(\2\u026f\u0272\7I\2\2\u0270\u0271\t\5\2\2\u0271\u0273\5N(\2"+
a62d533 7610
		"\u0272\u0270\3\2\2\2\u0272\u0273\3\2\2\2\u0273\u0275\3\2\2\2\u0274\u026e"+
a62d533 7611
		"\3\2\2\2\u0274\u026f\3\2\2\2\u0275W\3\2\2\2\u0276\u027b\5f\64\2\u0277"+
a62d533 7612
		"\u0278\7B\2\2\u0278\u027a\5f\64\2\u0279\u0277\3\2\2\2\u027a\u027d\3\2"+
a62d533 7613
		"\2\2\u027b\u0279\3\2\2\2\u027b\u027c\3\2\2\2\u027cY\3\2\2\2\u027d\u027b"+
a62d533 7614
		"\3\2\2\2\u027e\u0280\7;\2\2\u027f\u0281\5\\/\2\u0280\u027f\3\2\2\2\u0280"+
a62d533 7615
		"\u0281\3\2\2\2\u0281\u0282\3\2\2\2\u0282\u0283\7<\2\2\u0283[\3\2\2\2\u0284"+
a62d533 7616
		"\u0289\5^\60\2\u0285\u0286\7B\2\2\u0286\u0288\5^\60\2\u0287\u0285\3\2"+
a62d533 7617
		"\2\2\u0288\u028b\3\2\2\2\u0289\u0287\3\2\2\2\u0289\u028a\3\2\2\2\u028a"+
a62d533 7618
		"\u028e\3\2\2\2\u028b\u0289\3\2\2\2\u028c\u028d\7B\2\2\u028d\u028f\5`\61"+
a62d533 7619
		"\2\u028e\u028c\3\2\2\2\u028e\u028f\3\2\2\2\u028f\u0292\3\2\2\2\u0290\u0292"+
a62d533 7620
		"\5`\61\2\u0291\u0284\3\2\2\2\u0291\u0290\3\2\2\2\u0292]\3\2\2\2\u0293"+
a62d533 7621
		"\u0295\5\16\b\2\u0294\u0293\3\2\2\2\u0295\u0298\3\2\2\2\u0296\u0294\3"+
a62d533 7622
		"\2\2\2\u0296\u0297\3\2\2\2\u0297\u0299\3\2\2\2\u0298\u0296\3\2\2\2\u0299"+
a62d533 7623
		"\u029a\5N(\2\u029a\u029b\5F$\2\u029b_\3\2\2\2\u029c\u029e\5\16\b\2\u029d"+
a62d533 7624
		"\u029c\3\2\2\2\u029e\u02a1\3\2\2\2\u029f\u029d\3\2\2\2\u029f\u02a0\3\2"+
a62d533 7625
		"\2\2\u02a0\u02a2\3\2\2\2\u02a1\u029f\3\2\2\2\u02a2\u02a3\5N(\2\u02a3\u02a4"+
a62d533 7626
		"\7h\2\2\u02a4\u02a5\5F$\2\u02a5a\3\2\2\2\u02a6\u02a7\5\u0086D\2\u02a7"+
a62d533 7627
		"c\3\2\2\2\u02a8\u02a9\5\u0086D\2\u02a9e\3\2\2\2\u02aa\u02af\7f\2\2\u02ab"+
a62d533 7628
		"\u02ac\7C\2\2\u02ac\u02ae\7f\2\2\u02ad\u02ab\3\2\2\2\u02ae\u02b1\3\2\2"+
a62d533 7629
		"\2\u02af\u02ad\3\2\2\2\u02af\u02b0\3\2\2\2\u02b0g\3\2\2\2\u02b1\u02af"+
a62d533 7630
		"\3\2\2\2\u02b2\u02b3\t\6\2\2\u02b3i\3\2\2\2\u02b4\u02b5\7g\2\2\u02b5\u02bc"+
a62d533 7631
		"\5l\67\2\u02b6\u02b9\7;\2\2\u02b7\u02ba\5n8\2\u02b8\u02ba\5r:\2\u02b9"+
a62d533 7632
		"\u02b7\3\2\2\2\u02b9\u02b8\3\2\2\2\u02b9\u02ba\3\2\2\2\u02ba\u02bb\3\2"+
a62d533 7633
		"\2\2\u02bb\u02bd\7<\2\2\u02bc\u02b6\3\2\2\2\u02bc\u02bd\3\2\2\2\u02bd"+
a62d533 7634
		"k\3\2\2\2\u02be\u02bf\5f\64\2\u02bfm\3\2\2\2\u02c0\u02c5\5p9\2\u02c1\u02c2"+
a62d533 7635
		"\7B\2\2\u02c2\u02c4\5p9\2\u02c3\u02c1\3\2\2\2\u02c4\u02c7\3\2\2\2\u02c5"+
a62d533 7636
		"\u02c3\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6o\3\2\2\2\u02c7\u02c5\3\2\2\2"+
a62d533 7637
		"\u02c8\u02c9\7f\2\2\u02c9\u02ca\7D\2\2\u02ca\u02cb\5r:\2\u02cbq\3\2\2"+
a62d533 7638
		"\2\u02cc\u02d0\5\u00b0Y\2\u02cd\u02d0\5j\66\2\u02ce\u02d0\5t;\2\u02cf"+
a62d533 7639
		"\u02cc\3\2\2\2\u02cf\u02cd\3\2\2\2\u02cf\u02ce\3\2\2\2\u02d0s\3\2\2\2"+
a62d533 7640
		"\u02d1\u02da\7=\2\2\u02d2\u02d7\5r:\2\u02d3\u02d4\7B\2\2\u02d4\u02d6\5"+
a62d533 7641
		"r:\2\u02d5\u02d3\3\2\2\2\u02d6\u02d9\3\2\2\2\u02d7\u02d5\3\2\2\2\u02d7"+
a62d533 7642
		"\u02d8\3\2\2\2\u02d8\u02db\3\2\2\2\u02d9\u02d7\3\2\2\2\u02da\u02d2\3\2"+
a62d533 7643
		"\2\2\u02da\u02db\3\2\2\2\u02db\u02dd\3\2\2\2\u02dc\u02de\7B\2\2\u02dd"+
a62d533 7644
		"\u02dc\3\2\2\2\u02dd\u02de\3\2\2\2\u02de\u02df\3\2\2\2\u02df\u02e0\7>"+
a62d533 7645
		"\2\2\u02e0u\3\2\2\2\u02e1\u02e2\7g\2\2\u02e2\u02e3\7\36\2\2\u02e3\u02e4"+
a62d533 7646
		"\7f\2\2\u02e4\u02e5\5x=\2\u02e5w\3\2\2\2\u02e6\u02ea\7=\2\2\u02e7\u02e9"+
a62d533 7647
		"\5z>\2\u02e8\u02e7\3\2\2\2\u02e9\u02ec\3\2\2\2\u02ea\u02e8\3\2\2\2\u02ea"+
a62d533 7648
		"\u02eb\3\2\2\2\u02eb\u02ed\3\2\2\2\u02ec\u02ea\3\2\2\2\u02ed\u02ee\7>"+
a62d533 7649
		"\2\2\u02eey\3\2\2\2\u02ef\u02f1\5\n\6\2\u02f0\u02ef\3\2\2\2\u02f1\u02f4"+
a62d533 7650
		"\3\2\2\2\u02f2\u02f0\3\2\2\2\u02f2\u02f3\3\2\2\2\u02f3\u02f5\3\2\2\2\u02f4"+
a62d533 7651
		"\u02f2\3\2\2\2\u02f5\u02f8\5|?\2\u02f6\u02f8\7A\2\2\u02f7\u02f2\3\2\2"+
a62d533 7652
		"\2\u02f7\u02f6\3\2\2\2\u02f8{\3\2\2\2\u02f9\u02fa\5N(\2\u02fa\u02fb\5"+
a62d533 7653
		"~@\2\u02fb\u02fc\7A\2\2\u02fc\u030e\3\2\2\2\u02fd\u02ff\5\20\t\2\u02fe"+
a62d533 7654
		"\u0300\7A\2\2\u02ff\u02fe\3\2\2\2\u02ff\u0300\3\2\2\2\u0300\u030e\3\2"+
a62d533 7655
		"\2\2\u0301\u0303\5 \21\2\u0302\u0304\7A\2\2\u0303\u0302\3\2\2\2\u0303"+
a62d533 7656
		"\u0304\3\2\2\2\u0304\u030e\3\2\2\2\u0305\u0307\5\30\r\2\u0306\u0308\7"+
a62d533 7657
		"A\2\2\u0307\u0306\3\2\2\2\u0307\u0308\3\2\2\2\u0308\u030e\3\2\2\2\u0309"+
a62d533 7658
		"\u030b\5v<\2\u030a\u030c\7A\2\2\u030b\u030a\3\2\2\2\u030b\u030c\3\2\2"+
a62d533 7659
		"\2\u030c\u030e\3\2\2\2\u030d\u02f9\3\2\2\2\u030d\u02fd\3\2\2\2\u030d\u0301"+
a62d533 7660
		"\3\2\2\2\u030d\u0305\3\2\2\2\u030d\u0309\3\2\2\2\u030e}\3\2\2\2\u030f"+
a62d533 7661
		"\u0312\5\u0080A\2\u0310\u0312\5\u0082B\2\u0311\u030f\3\2\2\2\u0311\u0310"+
a62d533 7662
		"\3\2\2\2\u0312\177\3\2\2\2\u0313\u0314\7f\2\2\u0314\u0315\7;\2\2\u0315"+
a62d533 7663
		"\u0317\7<\2\2\u0316\u0318\5\u0084C\2\u0317\u0316\3\2\2\2\u0317\u0318\3"+
a62d533 7664
		"\2\2\2\u0318\u0081\3\2\2\2\u0319\u031a\5B\"\2\u031a\u0083\3\2\2\2\u031b"+
a62d533 7665
		"\u031c\7\16\2\2\u031c\u031d\5r:\2\u031d\u0085\3\2\2\2\u031e\u0322\7=\2"+
a62d533 7666
		"\2\u031f\u0321\5\u0088E\2\u0320\u031f\3\2\2\2\u0321\u0324\3\2\2\2\u0322"+
a62d533 7667
		"\u0320\3\2\2\2\u0322\u0323\3\2\2\2\u0323\u0325\3\2\2\2\u0324\u0322\3\2"+
a62d533 7668
		"\2\2\u0325\u0326\7>\2\2\u0326\u0087\3\2\2\2\u0327\u032b\5\u008aF\2\u0328"+
a62d533 7669
		"\u032b\5\u008eH\2\u0329\u032b\5\b\5\2\u032a\u0327\3\2\2\2\u032a\u0328"+
a62d533 7670
		"\3\2\2\2\u032a\u0329\3\2\2\2\u032b\u0089\3\2\2\2\u032c\u032d\5\u008cG"+
a62d533 7671
		"\2\u032d\u032e\7A\2\2\u032e\u008b\3\2\2\2\u032f\u0331\5\16\b\2\u0330\u032f"+
a62d533 7672
		"\3\2\2\2\u0331\u0334\3\2\2\2\u0332\u0330\3\2\2\2\u0332\u0333\3\2\2\2\u0333"+
a62d533 7673
		"\u0335\3\2\2\2\u0334\u0332\3\2\2\2\u0335\u0336\5N(\2\u0336\u0337\5B\""+
a62d533 7674
		"\2\u0337\u008d\3\2\2\2\u0338\u03a1\5\u0086D\2\u0339\u033a\7\4\2\2\u033a"+
a62d533 7675
		"\u033d\5\u00b0Y\2\u033b\u033c\7J\2\2\u033c\u033e\5\u00b0Y\2\u033d\u033b"+
a62d533 7676
		"\3\2\2\2\u033d\u033e\3\2\2\2\u033e\u033f\3\2\2\2\u033f\u0340\7A\2\2\u0340"+
a62d533 7677
		"\u03a1\3\2\2\2\u0341\u0342\7\30\2\2\u0342\u0343\5\u00a8U\2\u0343\u0346"+
a62d533 7678
		"\5\u008eH\2\u0344\u0345\7\21\2\2\u0345\u0347\5\u008eH\2\u0346\u0344\3"+
a62d533 7679
		"\2\2\2\u0346\u0347\3\2\2\2\u0347\u03a1\3\2\2\2\u0348\u0349\7\27\2\2\u0349"+
a62d533 7680
		"\u034a\7;\2\2\u034a\u034b\5\u00a0Q\2\u034b\u034c\7<\2\2\u034c\u034d\5"+
a62d533 7681
		"\u008eH\2\u034d\u03a1\3\2\2\2\u034e\u034f\7\64\2\2\u034f\u0350\5\u00a8"+
a62d533 7682
		"U\2\u0350\u0351\5\u008eH\2\u0351\u03a1\3\2\2\2\u0352\u0353\7\17\2\2\u0353"+
a62d533 7683
		"\u0354\5\u008eH\2\u0354\u0355\7\64\2\2\u0355\u0356\5\u00a8U\2\u0356\u0357"+
a62d533 7684
		"\7A\2\2\u0357\u03a1\3\2\2\2\u0358\u0359\7\61\2\2\u0359\u0363\5\u0086D"+
a62d533 7685
		"\2\u035a\u035c\5\u0090I\2\u035b\u035a\3\2\2\2\u035c\u035d\3\2\2\2\u035d"+
a62d533 7686
		"\u035b\3\2\2\2\u035d\u035e\3\2\2\2\u035e\u0360\3\2\2\2\u035f\u0361\5\u0094"+
a62d533 7687
		"K\2\u0360\u035f\3\2\2\2\u0360\u0361\3\2\2\2\u0361\u0364\3\2\2\2\u0362"+
a62d533 7688
		"\u0364\5\u0094K\2\u0363\u035b\3\2\2\2\u0363\u0362\3\2\2\2\u0364\u03a1"+
a62d533 7689
		"\3\2\2\2\u0365\u0366\7\61\2\2\u0366\u0367\5\u0096L\2\u0367\u036b\5\u0086"+
a62d533 7690
		"D\2\u0368\u036a\5\u0090I\2\u0369\u0368\3\2\2\2\u036a\u036d\3\2\2\2\u036b"+
a62d533 7691
		"\u0369\3\2\2\2\u036b\u036c\3\2\2\2\u036c\u036f\3\2\2\2\u036d\u036b\3\2"+
a62d533 7692
		"\2\2\u036e\u0370\5\u0094K\2\u036f\u036e\3\2\2\2\u036f\u0370\3\2\2\2\u0370"+
a62d533 7693
		"\u03a1\3\2\2\2\u0371\u0372\7+\2\2\u0372\u0373\5\u00a8U\2\u0373\u0377\7"+
a62d533 7694
		"=\2\2\u0374\u0376\5\u009cO\2\u0375\u0374\3\2\2\2\u0376\u0379\3\2\2\2\u0377"+
a62d533 7695
		"\u0375\3\2\2\2\u0377\u0378\3\2\2\2\u0378\u037d\3\2\2\2\u0379\u0377\3\2"+
a62d533 7696
		"\2\2\u037a\u037c\5\u009eP\2\u037b\u037a\3\2\2\2\u037c\u037f\3\2\2\2\u037d"+
a62d533 7697
		"\u037b\3\2\2\2\u037d\u037e\3\2\2\2\u037e\u0380\3\2\2\2\u037f\u037d\3\2"+
a62d533 7698
		"\2\2\u0380\u0381\7>\2\2\u0381\u03a1\3\2\2\2\u0382\u0383\7,\2\2\u0383\u0384"+
a62d533 7699
		"\5\u00a8U\2\u0384\u0385\5\u0086D\2\u0385\u03a1\3\2\2\2\u0386\u0388\7&"+
a62d533 7700
		"\2\2\u0387\u0389\5\u00b0Y\2\u0388\u0387\3\2\2\2\u0388\u0389\3\2\2\2\u0389"+
a62d533 7701
		"\u038a\3\2\2\2\u038a\u03a1\7A\2\2\u038b\u038c\7.\2\2\u038c\u038d\5\u00b0"+
a62d533 7702
		"Y\2\u038d\u038e\7A\2\2\u038e\u03a1\3\2\2\2\u038f\u0391\7\6\2\2\u0390\u0392"+
a62d533 7703
		"\7f\2\2\u0391\u0390\3\2\2\2\u0391\u0392\3\2\2\2\u0392\u0393\3\2\2\2\u0393"+
a62d533 7704
		"\u03a1\7A\2\2\u0394\u0396\7\r\2\2\u0395\u0397\7f\2\2\u0396\u0395\3\2\2"+
a62d533 7705
		"\2\u0396\u0397\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u03a1\7A\2\2\u0399\u03a1"+
a62d533 7706
		"\7A\2\2\u039a\u039b\5\u00acW\2\u039b\u039c\7A\2\2\u039c\u03a1\3\2\2\2"+
a62d533 7707
		"\u039d\u039e\7f\2\2\u039e\u039f\7J\2\2\u039f\u03a1\5\u008eH\2\u03a0\u0338"+
a62d533 7708
		"\3\2\2\2\u03a0\u0339\3\2\2\2\u03a0\u0341\3\2\2\2\u03a0\u0348\3\2\2\2\u03a0"+
a62d533 7709
		"\u034e\3\2\2\2\u03a0\u0352\3\2\2\2\u03a0\u0358\3\2\2\2\u03a0\u0365\3\2"+
a62d533 7710
		"\2\2\u03a0\u0371\3\2\2\2\u03a0\u0382\3\2\2\2\u03a0\u0386\3\2\2\2\u03a0"+
a62d533 7711
		"\u038b\3\2\2\2\u03a0\u038f\3\2\2\2\u03a0\u0394\3\2\2\2\u03a0\u0399\3\2"+
a62d533 7712
		"\2\2\u03a0\u039a\3\2\2\2\u03a0\u039d\3\2\2\2\u03a1\u008f\3\2\2\2\u03a2"+
a62d533 7713
		"\u03a3\7\t\2\2\u03a3\u03a7\7;\2\2\u03a4\u03a6\5\16\b\2\u03a5\u03a4\3\2"+
a62d533 7714
		"\2\2\u03a6\u03a9\3\2\2\2\u03a7\u03a5\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8"+
a62d533 7715
		"\u03aa\3\2\2\2\u03a9\u03a7\3\2\2\2\u03aa\u03ab\5\u0092J\2\u03ab\u03ac"+
a62d533 7716
		"\7f\2\2\u03ac\u03ad\7<\2\2\u03ad\u03ae\5\u0086D\2\u03ae\u0091\3\2\2\2"+
a62d533 7717
		"\u03af\u03b4\5f\64\2\u03b0\u03b1\7X\2\2\u03b1\u03b3\5f\64\2\u03b2\u03b0"+
a62d533 7718
		"\3\2\2\2\u03b3\u03b6\3\2\2\2\u03b4\u03b2\3\2\2\2\u03b4\u03b5\3\2\2\2\u03b5"+
a62d533 7719
		"\u0093\3\2\2\2\u03b6\u03b4\3\2\2\2\u03b7\u03b8\7\25\2\2\u03b8\u03b9\5"+
a62d533 7720
		"\u0086D\2\u03b9\u0095\3\2\2\2\u03ba\u03bb\7;\2\2\u03bb\u03bd\5\u0098M"+
a62d533 7721
		"\2\u03bc\u03be\7A\2\2\u03bd\u03bc\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03bf"+
a62d533 7722
		"\3\2\2\2\u03bf\u03c0\7<\2\2\u03c0\u0097\3\2\2\2\u03c1\u03c6\5\u009aN\2"+
a62d533 7723
		"\u03c2\u03c3\7A\2\2\u03c3\u03c5\5\u009aN\2\u03c4\u03c2\3\2\2\2\u03c5\u03c8"+
a62d533 7724
		"\3\2\2\2\u03c6\u03c4\3\2\2\2\u03c6\u03c7\3\2\2\2\u03c7\u0099\3\2\2\2\u03c8"+
a62d533 7725
		"\u03c6\3\2\2\2\u03c9\u03cb\5\16\b\2\u03ca\u03c9\3\2\2\2\u03cb\u03ce\3"+
a62d533 7726
		"\2\2\2\u03cc\u03ca\3\2\2\2\u03cc\u03cd\3\2\2\2\u03cd\u03cf\3\2\2\2\u03ce"+
a62d533 7727
		"\u03cc\3\2\2\2\u03cf\u03d0\5P)\2\u03d0\u03d1\5F$\2\u03d1\u03d2\7D\2\2"+
a62d533 7728
		"\u03d2\u03d3\5\u00b0Y\2\u03d3\u009b\3\2\2\2\u03d4\u03d6\5\u009eP\2\u03d5"+
a62d533 7729
		"\u03d4\3\2\2\2\u03d6\u03d7\3\2\2\2\u03d7\u03d5\3\2\2\2\u03d7\u03d8\3\2"+
a62d533 7730
		"\2\2\u03d8\u03da\3\2\2\2\u03d9\u03db\5\u0088E\2\u03da\u03d9\3\2\2\2\u03db"+
a62d533 7731
		"\u03dc\3\2\2\2\u03dc\u03da\3\2\2\2\u03dc\u03dd\3\2\2\2\u03dd\u009d\3\2"+
a62d533 7732
		"\2\2\u03de\u03df\7\b\2\2\u03df\u03e0\5\u00aeX\2\u03e0\u03e1\7J\2\2\u03e1"+
a62d533 7733
		"\u03e9\3\2\2\2\u03e2\u03e3\7\b\2\2\u03e3\u03e4\5L\'\2\u03e4\u03e5\7J\2"+
a62d533 7734
		"\2\u03e5\u03e9\3\2\2\2\u03e6\u03e7\7\16\2\2\u03e7\u03e9\7J\2\2\u03e8\u03de"+
a62d533 7735
		"\3\2\2\2\u03e8\u03e2\3\2\2\2\u03e8\u03e6\3\2\2\2\u03e9\u009f\3\2\2\2\u03ea"+
a62d533 7736
		"\u03f7\5\u00a4S\2\u03eb\u03ed\5\u00a2R\2\u03ec\u03eb\3\2\2\2\u03ec\u03ed"+
a62d533 7737
		"\3\2\2\2\u03ed\u03ee\3\2\2\2\u03ee\u03f0\7A\2\2\u03ef\u03f1\5\u00b0Y\2"+
a62d533 7738
		"\u03f0\u03ef\3\2\2\2\u03f0\u03f1\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f4"+
a62d533 7739
		"\7A\2\2\u03f3\u03f5\5\u00a6T\2\u03f4\u03f3\3\2\2\2\u03f4\u03f5\3\2\2\2"+
a62d533 7740
		"\u03f5\u03f7\3\2\2\2\u03f6\u03ea\3\2\2\2\u03f6\u03ec\3\2\2\2\u03f7\u00a1"+
a62d533 7741
		"\3\2\2\2\u03f8\u03fb\5\u008cG\2\u03f9\u03fb\5\u00aaV\2\u03fa\u03f8\3\2"+
a62d533 7742
		"\2\2\u03fa\u03f9\3\2\2\2\u03fb\u00a3\3\2\2\2\u03fc\u03fe\5\16\b\2\u03fd"+
a62d533 7743
		"\u03fc\3\2\2\2\u03fe\u0401\3\2\2\2\u03ff\u03fd\3\2\2\2\u03ff\u0400\3\2"+
a62d533 7744
		"\2\2\u0400\u0402\3\2\2\2\u0401\u03ff\3\2\2\2\u0402\u0403\5N(\2\u0403\u0404"+
a62d533 7745
		"\5F$\2\u0404\u0405\7J\2\2\u0405\u0406\5\u00b0Y\2\u0406\u00a5\3\2\2\2\u0407"+
a62d533 7746
		"\u0408\5\u00aaV\2\u0408\u00a7\3\2\2\2\u0409\u040a\7;\2\2\u040a\u040b\5"+
a62d533 7747
		"\u00b0Y\2\u040b\u040c\7<\2\2\u040c\u00a9\3\2\2\2\u040d\u0412\5\u00b0Y"+
a62d533 7748
		"\2\u040e\u040f\7B\2\2\u040f\u0411\5\u00b0Y\2\u0410\u040e\3\2\2\2\u0411"+
a62d533 7749
		"\u0414\3\2\2\2\u0412\u0410\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u00ab\3\2"+
a62d533 7750
		"\2\2\u0414\u0412\3\2\2\2\u0415\u0416\5\u00b0Y\2\u0416\u00ad\3\2\2\2\u0417"+
a62d533 7751
		"\u0418\5\u00b0Y\2\u0418\u00af\3\2\2\2\u0419\u041a\bY\1\2\u041a\u041b\7"+
a62d533 7752
		";\2\2\u041b\u041c\5N(\2\u041c\u041d\7<\2\2\u041d\u041e\5\u00b0Y\23\u041e"+
a62d533 7753
		"\u0427\3\2\2\2\u041f\u0420\t\7\2\2\u0420\u0427\5\u00b0Y\21\u0421\u0422"+
a62d533 7754
		"\t\b\2\2\u0422\u0427\5\u00b0Y\20\u0423\u0427\5\u00b2Z\2\u0424\u0425\7"+
a62d533 7755
		"!\2\2\u0425\u0427\5\u00b4[\2\u0426\u0419\3\2\2\2\u0426\u041f\3\2\2\2\u0426"+
a62d533 7756
		"\u0421\3\2\2\2\u0426\u0423\3\2\2\2\u0426\u0424\3\2\2\2\u0427\u048a\3\2"+
a62d533 7757
		"\2\2\u0428\u0429\f\17\2\2\u0429\u042a\t\t\2\2\u042a\u0489\5\u00b0Y\20"+
a62d533 7758
		"\u042b\u042c\f\16\2\2\u042c\u042d\t\n\2\2\u042d\u0489\5\u00b0Y\17\u042e"+
a62d533 7759
		"\u0436\f\r\2\2\u042f\u0430\7F\2\2\u0430\u0437\7F\2\2\u0431\u0432\7E\2"+
a62d533 7760
		"\2\u0432\u0433\7E\2\2\u0433\u0437\7E\2\2\u0434\u0435\7E\2\2\u0435\u0437"+
a62d533 7761
		"\7E\2\2\u0436\u042f\3\2\2\2\u0436\u0431\3\2\2\2\u0436\u0434\3\2\2\2\u0437"+
a62d533 7762
		"\u0438\3\2\2\2\u0438\u0489\5\u00b0Y\16\u0439\u043a\f\f\2\2\u043a\u043b"+
a62d533 7763
		"\t\13\2\2\u043b\u0489\5\u00b0Y\r\u043c\u043d\f\n\2\2\u043d\u043e\t\f\2"+
a62d533 7764
		"\2\u043e\u0489\5\u00b0Y\13\u043f\u0440\f\t\2\2\u0440\u0441\7W\2\2\u0441"+
a62d533 7765
		"\u0489\5\u00b0Y\n\u0442\u0443\f\b\2\2\u0443\u0444\7Y\2\2\u0444\u0489\5"+
a62d533 7766
		"\u00b0Y\t\u0445\u0446\f\7\2\2\u0446\u0447\7X\2\2\u0447\u0489\5\u00b0Y"+
a62d533 7767
		"\b\u0448\u0449\f\6\2\2\u0449\u044a\7O\2\2\u044a\u0489\5\u00b0Y\7\u044b"+
a62d533 7768
		"\u044c\f\5\2\2\u044c\u044d\7P\2\2\u044d\u0489\5\u00b0Y\6\u044e\u044f\f"+
a62d533 7769
		"\4\2\2\u044f\u0450\7I\2\2\u0450\u0451\5\u00b0Y\2\u0451\u0452\7J\2\2\u0452"+
a62d533 7770
		"\u0453\5\u00b0Y\5\u0453\u0489\3\2\2\2\u0454\u0461\f\3\2\2\u0455\u0462"+
a62d533 7771
		"\7D\2\2\u0456\u0462\7[\2\2\u0457\u0462\7\\\2\2\u0458\u0462\7]\2\2\u0459"+
a62d533 7772
		"\u0462\7^\2\2\u045a\u0462\7_\2\2\u045b\u0462\7`\2\2\u045c\u0462\7a\2\2"+
a62d533 7773
		"\u045d\u0462\7d\2\2\u045e\u0462\7e\2\2\u045f\u0462\7c\2\2\u0460\u0462"+
a62d533 7774
		"\7b\2\2\u0461\u0455\3\2\2\2\u0461\u0456\3\2\2\2\u0461\u0457\3\2\2\2\u0461"+
a62d533 7775
		"\u0458\3\2\2\2\u0461\u0459\3\2\2\2\u0461\u045a\3\2\2\2\u0461\u045b\3\2"+
a62d533 7776
		"\2\2\u0461\u045c\3\2\2\2\u0461\u045d\3\2\2\2\u0461\u045e\3\2\2\2\u0461"+
a62d533 7777
		"\u045f\3\2\2\2\u0461\u0460\3\2\2\2\u0462\u0463\3\2\2\2\u0463\u0489\5\u00b0"+
a62d533 7778
		"Y\4\u0464\u0465\f\33\2\2\u0465\u0466\7C\2\2\u0466\u0489\7f\2\2\u0467\u0468"+
a62d533 7779
		"\f\32\2\2\u0468\u0469\7C\2\2\u0469\u0489\7-\2\2\u046a\u046b\f\31\2\2\u046b"+
a62d533 7780
		"\u046c\7C\2\2\u046c\u046e\7!\2\2\u046d\u046f\5\u00c0a\2\u046e\u046d\3"+
a62d533 7781
		"\2\2\2\u046e\u046f\3\2\2\2\u046f\u0470\3\2\2\2\u0470\u0489\5\u00b8]\2"+
a62d533 7782
		"\u0471\u0472\f\30\2\2\u0472\u0473\7C\2\2\u0473\u0474\7*\2\2\u0474\u0489"+
a62d533 7783
		"\5\u00c6d\2\u0475\u0476\f\27\2\2\u0476\u0477\7C\2\2\u0477\u0489\5\u00be"+
a62d533 7784
		"`\2\u0478\u0479\f\26\2\2\u0479\u047a\7?\2\2\u047a\u047b\5\u00b0Y\2\u047b"+
a62d533 7785
		"\u047c\7@\2\2\u047c\u0489\3\2\2\2\u047d\u047e\f\25\2\2\u047e\u0480\7;"+
a62d533 7786
		"\2\2\u047f\u0481\5\u00aaV\2\u0480\u047f\3\2\2\2\u0480\u0481\3\2\2\2\u0481"+
a62d533 7787
		"\u0482\3\2\2\2\u0482\u0489\7<\2\2\u0483\u0484\f\22\2\2\u0484\u0489\t\r"+
a62d533 7788
		"\2\2\u0485\u0486\f\13\2\2\u0486\u0487\7\34\2\2\u0487\u0489\5N(\2\u0488"+
a62d533 7789
		"\u0428\3\2\2\2\u0488\u042b\3\2\2\2\u0488\u042e\3\2\2\2\u0488\u0439\3\2"+
a62d533 7790
		"\2\2\u0488\u043c\3\2\2\2\u0488\u043f\3\2\2\2\u0488\u0442\3\2\2\2\u0488"+
a62d533 7791
		"\u0445\3\2\2\2\u0488\u0448\3\2\2\2\u0488\u044b\3\2\2\2\u0488\u044e\3\2"+
a62d533 7792
		"\2\2\u0488\u0454\3\2\2\2\u0488\u0464\3\2\2\2\u0488\u0467\3\2\2\2\u0488"+
a62d533 7793
		"\u046a\3\2\2\2\u0488\u0471\3\2\2\2\u0488\u0475\3\2\2\2\u0488\u0478\3\2"+
a62d533 7794
		"\2\2\u0488\u047d\3\2\2\2\u0488\u0483\3\2\2\2\u0488\u0485\3\2\2\2\u0489"+
a62d533 7795
		"\u048c\3\2\2\2\u048a\u0488\3\2\2\2\u048a\u048b\3\2\2\2\u048b\u00b1\3\2"+
a62d533 7796
		"\2\2\u048c\u048a\3\2\2\2\u048d\u048e\7;\2\2\u048e\u048f\5\u00b0Y\2\u048f"+
a62d533 7797
		"\u0490\7<\2\2\u0490\u04a3\3\2\2\2\u0491\u04a3\7-\2\2\u0492\u04a3\7*\2"+
a62d533 7798
		"\2\u0493\u04a3\5h\65\2\u0494\u04a3\7f\2\2\u0495\u0496\5N(\2\u0496\u0497"+
a62d533 7799
		"\7C\2\2\u0497\u0498\7\13\2\2\u0498\u04a3\3\2\2\2\u0499\u049a\7\62\2\2"+
a62d533 7800
		"\u049a\u049b\7C\2\2\u049b\u04a3\7\13\2\2\u049c\u04a0\5\u00c0a\2\u049d"+
a62d533 7801
		"\u04a1\5\u00c8e\2\u049e\u049f\7-\2\2\u049f\u04a1\5\u00caf\2\u04a0\u049d"+
a62d533 7802
		"\3\2\2\2\u04a0\u049e\3\2\2\2\u04a1\u04a3\3\2\2\2\u04a2\u048d\3\2\2\2\u04a2"+
a62d533 7803
		"\u0491\3\2\2\2\u04a2\u0492\3\2\2\2\u04a2\u0493\3\2\2\2\u04a2\u0494\3\2"+
a62d533 7804
		"\2\2\u04a2\u0495\3\2\2\2\u04a2\u0499\3\2\2\2\u04a2\u049c\3\2\2\2\u04a3"+
a62d533 7805
		"\u00b3\3\2\2\2\u04a4\u04a5\5\u00c0a\2\u04a5\u04a6\5\u00b6\\\2\u04a6\u04a7"+
a62d533 7806
		"\5\u00bc_\2\u04a7\u04ae\3\2\2\2\u04a8\u04ab\5\u00b6\\\2\u04a9\u04ac\5"+
a62d533 7807
		"\u00ba^\2\u04aa\u04ac\5\u00bc_\2\u04ab\u04a9\3\2\2\2\u04ab\u04aa\3\2\2"+
a62d533 7808
		"\2\u04ac\u04ae\3\2\2\2\u04ad\u04a4\3\2\2\2\u04ad\u04a8\3\2\2\2\u04ae\u00b5"+
a62d533 7809
		"\3\2\2\2\u04af\u04b1\7f\2\2\u04b0\u04b2\5\u00c2b\2\u04b1\u04b0\3\2\2\2"+
a62d533 7810
		"\u04b1\u04b2\3\2\2\2\u04b2\u04ba\3\2\2\2\u04b3\u04b4\7C\2\2\u04b4\u04b6"+
a62d533 7811
		"\7f\2\2\u04b5\u04b7\5\u00c2b\2\u04b6\u04b5\3\2\2\2\u04b6\u04b7\3\2\2\2"+
a62d533 7812
		"\u04b7\u04b9\3\2\2\2\u04b8\u04b3\3\2\2\2\u04b9\u04bc\3\2\2\2\u04ba\u04b8"+
a62d533 7813
		"\3\2\2\2\u04ba\u04bb\3\2\2\2\u04bb\u04bf\3\2\2\2\u04bc\u04ba\3\2\2\2\u04bd"+
a62d533 7814
		"\u04bf\5R*\2\u04be\u04af\3\2\2\2\u04be\u04bd\3\2\2\2\u04bf\u00b7\3\2\2"+
a62d533 7815
		"\2\u04c0\u04c2\7f\2\2\u04c1\u04c3\5\u00c4c\2\u04c2\u04c1\3\2\2\2\u04c2"+
a62d533 7816
		"\u04c3\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\5\u00bc_\2\u04c5\u00b9"+
a62d533 7817
		"\3\2\2\2\u04c6\u04e2\7?\2\2\u04c7\u04cc\7@\2\2\u04c8\u04c9\7?\2\2\u04c9"+
a62d533 7818
		"\u04cb\7@\2\2\u04ca\u04c8\3\2\2\2\u04cb\u04ce\3\2\2\2\u04cc\u04ca\3\2"+
a62d533 7819
		"\2\2\u04cc\u04cd\3\2\2\2\u04cd\u04cf\3\2\2\2\u04ce\u04cc\3\2\2\2\u04cf"+
a62d533 7820
		"\u04e3\5J&\2\u04d0\u04d1\5\u00b0Y\2\u04d1\u04d8\7@\2\2\u04d2\u04d3\7?"+
a62d533 7821
		"\2\2\u04d3\u04d4\5\u00b0Y\2\u04d4\u04d5\7@\2\2\u04d5\u04d7\3\2\2\2\u04d6"+
a62d533 7822
		"\u04d2\3\2\2\2\u04d7\u04da\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d8\u04d9\3\2"+
a62d533 7823
		"\2\2\u04d9\u04df\3\2\2\2\u04da\u04d8\3\2\2\2\u04db\u04dc\7?\2\2\u04dc"+
a62d533 7824
		"\u04de\7@\2\2\u04dd\u04db\3\2\2\2\u04de\u04e1\3\2\2\2\u04df\u04dd\3\2"+
a62d533 7825
		"\2\2\u04df\u04e0\3\2\2\2\u04e0\u04e3\3\2\2\2\u04e1\u04df\3\2\2\2\u04e2"+
a62d533 7826
		"\u04c7\3\2\2\2\u04e2\u04d0\3\2\2\2\u04e3\u00bb\3\2\2\2\u04e4\u04e6\5\u00ca"+
a62d533 7827
		"f\2\u04e5\u04e7\5$\23\2\u04e6\u04e5\3\2\2\2\u04e6\u04e7\3\2\2\2\u04e7"+
a62d533 7828
		"\u00bd\3\2\2\2\u04e8\u04e9\5\u00c0a\2\u04e9\u04ea\5\u00c8e\2\u04ea\u00bf"+
a62d533 7829
		"\3\2\2\2\u04eb\u04ec\7F\2\2\u04ec\u04ed\5\"\22\2\u04ed\u04ee\7E\2\2\u04ee"+
a62d533 7830
		"\u00c1\3\2\2\2\u04ef\u04f0\7F\2\2\u04f0\u04f3\7E\2\2\u04f1\u04f3\5T+\2"+
a62d533 7831
		"\u04f2\u04ef\3\2\2\2\u04f2\u04f1\3\2\2\2\u04f3\u00c3\3\2\2\2\u04f4\u04f5"+
a62d533 7832
		"\7F\2\2\u04f5\u04f8\7E\2\2\u04f6\u04f8\5\u00c0a\2\u04f7\u04f4\3\2\2\2"+
a62d533 7833
		"\u04f7\u04f6\3\2\2\2\u04f8\u00c5\3\2\2\2\u04f9\u0500\5\u00caf\2\u04fa"+
a62d533 7834
		"\u04fb\7C\2\2\u04fb\u04fd\7f\2\2\u04fc\u04fe\5\u00caf\2\u04fd\u04fc\3"+
a62d533 7835
		"\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u0500\3\2\2\2\u04ff\u04f9\3\2\2\2\u04ff"+
a62d533 7836
		"\u04fa\3\2\2\2\u0500\u00c7\3\2\2\2\u0501\u0502\7*\2\2\u0502\u0506\5\u00c6"+
a62d533 7837
		"d\2\u0503\u0504\7f\2\2\u0504\u0506\5\u00caf\2\u0505\u0501\3\2\2\2\u0505"+
a62d533 7838
		"\u0503\3\2\2\2\u0506\u00c9\3\2\2\2\u0507\u0509\7;\2\2\u0508\u050a\5\u00aa"+
a62d533 7839
		"V\2\u0509\u0508\3\2\2\2\u0509\u050a\3\2\2\2\u050a\u050b\3\2\2\2\u050b"+
a62d533 7840
		"\u050c\7<\2\2\u050c\u00cb\3\2\2\2\u0098\u00cd\u00d2\u00d8\u00e0\u00e9"+
a62d533 7841
		"\u00ee\u00f5\u00fc\u0103\u010a\u010f\u0113\u0117\u011b\u0120\u0124\u0128"+
a62d533 7842
		"\u0132\u013a\u0141\u0148\u014c\u014f\u0152\u015b\u0161\u0166\u0169\u016f"+
a62d533 7843
		"\u0175\u0179\u0182\u0189\u0192\u0199\u019f\u01a3\u01ae\u01b2\u01ba\u01bf"+
a62d533 7844
		"\u01c3\u01cc\u01da\u01df\u01e8\u01f0\u01fa\u0202\u020a\u020f\u021b\u0221"+
a62d533 7845
		"\u0228\u022d\u0235\u0239\u023b\u0246\u024e\u0251\u0255\u025a\u025e\u0269"+
a62d533 7846
		"\u0272\u0274\u027b\u0280\u0289\u028e\u0291\u0296\u029f\u02af\u02b9\u02bc"+
a62d533 7847
		"\u02c5\u02cf\u02d7\u02da\u02dd\u02ea\u02f2\u02f7\u02ff\u0303\u0307\u030b"+
a62d533 7848
		"\u030d\u0311\u0317\u0322\u032a\u0332\u033d\u0346\u035d\u0360\u0363\u036b"+
a62d533 7849
		"\u036f\u0377\u037d\u0388\u0391\u0396\u03a0\u03a7\u03b4\u03bd\u03c6\u03cc"+
a62d533 7850
		"\u03d7\u03dc\u03e8\u03ec\u03f0\u03f4\u03f6\u03fa\u03ff\u0412\u0426\u0436"+
a62d533 7851
		"\u0461\u046e\u0480\u0488\u048a\u04a0\u04a2\u04ab\u04ad\u04b1\u04b6\u04ba"+
a62d533 7852
		"\u04be\u04c2\u04cc\u04d8\u04df\u04e2\u04e6\u04f2\u04f7\u04fd\u04ff\u0505"+
a62d533 7853
		"\u0509";
a62d533 7854
	public static final ATN _ATN =
a62d533 7855
		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
a62d533 7856
	static {
a62d533 7857
		_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
a62d533 7858
		for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
a62d533 7859
			_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
a62d533 7860
		}
a62d533 7861
	}
a62d533 7862
}