Files

6063 lines
196 KiB
Java
Raw Permalink Normal View History

2025-09-27 23:07:32 -06:00
// Generated from /Users/mannpatel/Desktop/CPSC-499/ExprParser.g4 by ANTLR 4.13.1
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"})
public class ExprParser extends Parser {
static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
WhiteSpace=1, Comment=2, Abstract=3, Assert=4, Boolean=5, Break=6, Byte=7,
Case=8, Catch=9, Char=10, Class=11, Const=12, Continue=13, Default=14,
Do=15, Double=16, Else=17, Extends=18, Final=19, Finally=20, Float=21,
For=22, Goto=23, If=24, Implements=25, Import=26, InstanceOf=27, Int=28,
Interface=29, Long=30, Native=31, New=32, Package=33, Private=34, Protected=35,
Public=36, Return=37, Short=38, Static=39, Strictfp=40, Super=41, Switch=42,
Synchronized=43, This=44, Throw=45, Throws=46, Transient=47, Try=48, Void=49,
Volatile=50, While=51, Dot=52, IntegerLiteral=53, FloatingPointLiteral=54,
CharacterLiteral=55, StringLiteral=56, BooleanLiteral=57, NullLiteral=58,
ParenthesesLeft=59, ParenthesesRight=60, CurlyBracketLeft=61, CurlyBracketRight=62,
SquareBracketLeft=63, SquareBracketRight=64, Semicolon=65, Comma=66, UnsignedRightShiftAssign=67,
EqualTo=68, NotEqualTo=69, LessThanEqualTo=70, GreaterThanEqualTo=71,
ConditionalAND=72, ConditionalOR=73, Increment=74, Decrement=75, LeftShift=76,
SignedRightShift=77, UnsignedRightShift=78, AddAssign=79, SubtractAssign=80,
MultiplyAssign=81, DivideAssign=82, BitwiseANDAssign=83, BitwiseORAssign=84,
BitwiseXORAssign=85, RemainderAssign=86, LeftShiftAssign=87, SignedRightShiftAssign=88,
Assignment=89, BitwiseComplement=90, LessThan=91, GreaterThan=92, LogicalComplement=93,
Question=94, Colon=95, Addition=96, Subtraction=97, Multiplication=98,
Division=99, BitwiseAND=100, BitwiseOR=101, BitwiseXOR=102, Remainder=103,
IDENTIFIER=104;
public static final int
RULE_prog = 0, RULE_identifier = 1, RULE_qualifiedIdentifier = 2, RULE_literal = 3,
RULE_expression = 4, RULE_conditionalExpr = 5, RULE_logicalOrExpr = 6,
RULE_logicalAndExpr = 7, RULE_equalityExpr = 8, RULE_relationalExpr = 9,
RULE_additiveExpr = 10, RULE_multiplicativeExpr = 11, RULE_unaryExpr = 12,
RULE_postfixExpr = 13, RULE_primaryExpr = 14, RULE_assignmentOperator = 15,
RULE_type = 16, RULE_statementExpression = 17, RULE_constantExpression = 18,
RULE_identifierSuffix = 19, RULE_postfixOp = 20, RULE_primitiveType = 21,
RULE_argumentsOpt = 22, RULE_arguments = 23, RULE_bracketsOpt = 24, RULE_creator = 25,
RULE_innerCreator = 26, RULE_arrayCreatorRest = 27, RULE_classCreatorRest = 28,
RULE_arrayInitializer = 29, RULE_variableInitializer = 30, RULE_parExpression = 31,
RULE_block = 32, RULE_blockStatements = 33, RULE_blockStatement = 34,
RULE_localVariableDeclarationStatement = 35, RULE_statement = 36, RULE_statementIncompleteIf = 37,
RULE_completeIf = 38, RULE_catches = 39, RULE_catchClause = 40, RULE_switchStatement = 41,
RULE_switchBlockStatementGroups = 42, RULE_switchBlockStatementGroup = 43,
RULE_switchLabel = 44, RULE_moreStatementExpressions = 45, RULE_forInit = 46,
RULE_forUpdate = 47, RULE_modifiersOpt = 48, RULE_modifier = 49, RULE_variableDeclarators = 50,
RULE_variableDeclaratorsRest = 51, RULE_constantDeclaratorsRest = 52,
RULE_variableDeclarator = 53, RULE_constantDeclarator = 54, RULE_variableDeclaratorRest = 55,
RULE_constantDeclaratorRest = 56, RULE_variableDeclaratorId = 57, RULE_compilationUnit = 58,
RULE_importDeclaration = 59, RULE_typeDeclaration = 60, RULE_classOrInterfaceDeclaration = 61,
RULE_classDeclaration = 62, RULE_interfaceDeclaration = 63, RULE_typeList = 64,
RULE_classBody = 65, RULE_interfaceBody = 66, RULE_classBodyDeclaration = 67,
RULE_memberDecl = 68, RULE_methodOrFieldDecl = 69, RULE_methodOrFieldRest = 70,
RULE_interfaceBodyDeclaration = 71, RULE_interfaceMemberDecl = 72, RULE_interfaceMethodOrFieldDecl = 73,
RULE_interfaceMethodOrFieldRest = 74, RULE_methodDeclaratorRest = 75,
RULE_voidMethodDeclaratorRest = 76, RULE_interfaceMethodDeclaratorRest = 77,
RULE_voidInterfaceMethodDeclaratorRest = 78, RULE_constructorDeclaratorRest = 79,
RULE_qualifiedIdentifierList = 80, RULE_formalParameters = 81, RULE_formalParameter = 82,
RULE_methodBody = 83;
private static String[] makeRuleNames() {
return new String[] {
"prog", "identifier", "qualifiedIdentifier", "literal", "expression",
"conditionalExpr", "logicalOrExpr", "logicalAndExpr", "equalityExpr",
"relationalExpr", "additiveExpr", "multiplicativeExpr", "unaryExpr",
"postfixExpr", "primaryExpr", "assignmentOperator", "type", "statementExpression",
"constantExpression", "identifierSuffix", "postfixOp", "primitiveType",
"argumentsOpt", "arguments", "bracketsOpt", "creator", "innerCreator",
"arrayCreatorRest", "classCreatorRest", "arrayInitializer", "variableInitializer",
"parExpression", "block", "blockStatements", "blockStatement", "localVariableDeclarationStatement",
"statement", "statementIncompleteIf", "completeIf", "catches", "catchClause",
"switchStatement", "switchBlockStatementGroups", "switchBlockStatementGroup",
"switchLabel", "moreStatementExpressions", "forInit", "forUpdate", "modifiersOpt",
"modifier", "variableDeclarators", "variableDeclaratorsRest", "constantDeclaratorsRest",
"variableDeclarator", "constantDeclarator", "variableDeclaratorRest",
"constantDeclaratorRest", "variableDeclaratorId", "compilationUnit",
"importDeclaration", "typeDeclaration", "classOrInterfaceDeclaration",
"classDeclaration", "interfaceDeclaration", "typeList", "classBody",
"interfaceBody", "classBodyDeclaration", "memberDecl", "methodOrFieldDecl",
"methodOrFieldRest", "interfaceBodyDeclaration", "interfaceMemberDecl",
"interfaceMethodOrFieldDecl", "interfaceMethodOrFieldRest", "methodDeclaratorRest",
"voidMethodDeclaratorRest", "interfaceMethodDeclaratorRest", "voidInterfaceMethodDeclaratorRest",
"constructorDeclaratorRest", "qualifiedIdentifierList", "formalParameters",
"formalParameter", "methodBody"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'",
"'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'",
"'do'", "'double'", "'else'", "'extends'", "'final'", "'finally'", "'float'",
"'for'", "'goto'", "'if'", "'implements'", "'import'", "'instanceof'",
"'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'",
"'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'",
"'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'",
"'transient'", "'try'", "'void'", "'volatile'", "'while'", "'.'", null,
null, null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['",
"']'", "';'", "','", "'>>>='", "'=='", "'!='", "'<='", "'>='", "'&&'",
"'||'", "'++'", "'--'", "'<<'", "'>>'", "'>>>'", "'+='", "'-='", "'*='",
"'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'='", "'~'",
"'<'", "'>'", "'!'", "'?'", "':'", "'+'", "'-'", "'*'", "'/'", "'&'",
"'|'", "'^'", "'%'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "WhiteSpace", "Comment", "Abstract", "Assert", "Boolean", "Break",
"Byte", "Case", "Catch", "Char", "Class", "Const", "Continue", "Default",
"Do", "Double", "Else", "Extends", "Final", "Finally", "Float", "For",
"Goto", "If", "Implements", "Import", "InstanceOf", "Int", "Interface",
"Long", "Native", "New", "Package", "Private", "Protected", "Public",
"Return", "Short", "Static", "Strictfp", "Super", "Switch", "Synchronized",
"This", "Throw", "Throws", "Transient", "Try", "Void", "Volatile", "While",
"Dot", "IntegerLiteral", "FloatingPointLiteral", "CharacterLiteral",
"StringLiteral", "BooleanLiteral", "NullLiteral", "ParenthesesLeft",
"ParenthesesRight", "CurlyBracketLeft", "CurlyBracketRight", "SquareBracketLeft",
"SquareBracketRight", "Semicolon", "Comma", "UnsignedRightShiftAssign",
"EqualTo", "NotEqualTo", "LessThanEqualTo", "GreaterThanEqualTo", "ConditionalAND",
"ConditionalOR", "Increment", "Decrement", "LeftShift", "SignedRightShift",
"UnsignedRightShift", "AddAssign", "SubtractAssign", "MultiplyAssign",
"DivideAssign", "BitwiseANDAssign", "BitwiseORAssign", "BitwiseXORAssign",
"RemainderAssign", "LeftShiftAssign", "SignedRightShiftAssign", "Assignment",
"BitwiseComplement", "LessThan", "GreaterThan", "LogicalComplement",
"Question", "Colon", "Addition", "Subtraction", "Multiplication", "Division",
"BitwiseAND", "BitwiseOR", "BitwiseXOR", "Remainder", "IDENTIFIER"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "ExprParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public ExprParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@SuppressWarnings("CheckReturnValue")
public static class ProgContext extends ParserRuleContext {
public CompilationUnitContext compilationUnit() {
return getRuleContext(CompilationUnitContext.class,0);
}
public TerminalNode EOF() { return getToken(ExprParser.EOF, 0); }
public ProgContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_prog; }
}
public final ProgContext prog() throws RecognitionException {
ProgContext _localctx = new ProgContext(_ctx, getState());
enterRule(_localctx, 0, RULE_prog);
try {
enterOuterAlt(_localctx, 1);
{
setState(168);
compilationUnit();
setState(169);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class IdentifierContext extends ParserRuleContext {
public TerminalNode IDENTIFIER() { return getToken(ExprParser.IDENTIFIER, 0); }
public IdentifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_identifier; }
}
public final IdentifierContext identifier() throws RecognitionException {
IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
enterRule(_localctx, 2, RULE_identifier);
try {
enterOuterAlt(_localctx, 1);
{
setState(171);
match(IDENTIFIER);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class QualifiedIdentifierContext extends ParserRuleContext {
public List<IdentifierContext> identifier() {
return getRuleContexts(IdentifierContext.class);
}
public IdentifierContext identifier(int i) {
return getRuleContext(IdentifierContext.class,i);
}
public List<TerminalNode> Dot() { return getTokens(ExprParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(ExprParser.Dot, i);
}
public QualifiedIdentifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_qualifiedIdentifier; }
}
public final QualifiedIdentifierContext qualifiedIdentifier() throws RecognitionException {
QualifiedIdentifierContext _localctx = new QualifiedIdentifierContext(_ctx, getState());
enterRule(_localctx, 4, RULE_qualifiedIdentifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(173);
identifier();
setState(178);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Dot) {
{
{
setState(174);
match(Dot);
setState(175);
identifier();
}
}
setState(180);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LiteralContext extends ParserRuleContext {
public TerminalNode IntegerLiteral() { return getToken(ExprParser.IntegerLiteral, 0); }
public TerminalNode FloatingPointLiteral() { return getToken(ExprParser.FloatingPointLiteral, 0); }
public TerminalNode CharacterLiteral() { return getToken(ExprParser.CharacterLiteral, 0); }
public TerminalNode StringLiteral() { return getToken(ExprParser.StringLiteral, 0); }
public TerminalNode BooleanLiteral() { return getToken(ExprParser.BooleanLiteral, 0); }
public TerminalNode NullLiteral() { return getToken(ExprParser.NullLiteral, 0); }
public LiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_literal; }
}
public final LiteralContext literal() throws RecognitionException {
LiteralContext _localctx = new LiteralContext(_ctx, getState());
enterRule(_localctx, 6, RULE_literal);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(181);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 567453553048682496L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ExpressionContext extends ParserRuleContext {
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public AssignmentOperatorContext assignmentOperator() {
return getRuleContext(AssignmentOperatorContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ConditionalExprContext conditionalExpr() {
return getRuleContext(ConditionalExprContext.class,0);
}
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
}
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
enterRule(_localctx, 8, RULE_expression);
try {
setState(188);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(183);
unaryExpr();
setState(184);
assignmentOperator();
setState(185);
expression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(187);
conditionalExpr();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConditionalExprContext extends ParserRuleContext {
public LogicalOrExprContext logicalOrExpr() {
return getRuleContext(LogicalOrExprContext.class,0);
}
public TerminalNode Question() { return getToken(ExprParser.Question, 0); }
public List<ConditionalExprContext> conditionalExpr() {
return getRuleContexts(ConditionalExprContext.class);
}
public ConditionalExprContext conditionalExpr(int i) {
return getRuleContext(ConditionalExprContext.class,i);
}
public TerminalNode Colon() { return getToken(ExprParser.Colon, 0); }
public ConditionalExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_conditionalExpr; }
}
public final ConditionalExprContext conditionalExpr() throws RecognitionException {
ConditionalExprContext _localctx = new ConditionalExprContext(_ctx, getState());
enterRule(_localctx, 10, RULE_conditionalExpr);
try {
setState(197);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(190);
logicalOrExpr();
setState(191);
match(Question);
setState(192);
conditionalExpr();
setState(193);
match(Colon);
setState(194);
conditionalExpr();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(196);
logicalOrExpr();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LogicalOrExprContext extends ParserRuleContext {
public List<LogicalAndExprContext> logicalAndExpr() {
return getRuleContexts(LogicalAndExprContext.class);
}
public LogicalAndExprContext logicalAndExpr(int i) {
return getRuleContext(LogicalAndExprContext.class,i);
}
public List<TerminalNode> ConditionalOR() { return getTokens(ExprParser.ConditionalOR); }
public TerminalNode ConditionalOR(int i) {
return getToken(ExprParser.ConditionalOR, i);
}
public LogicalOrExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_logicalOrExpr; }
}
public final LogicalOrExprContext logicalOrExpr() throws RecognitionException {
LogicalOrExprContext _localctx = new LogicalOrExprContext(_ctx, getState());
enterRule(_localctx, 12, RULE_logicalOrExpr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(199);
logicalAndExpr();
setState(204);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==ConditionalOR) {
{
{
setState(200);
match(ConditionalOR);
setState(201);
logicalAndExpr();
}
}
setState(206);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LogicalAndExprContext extends ParserRuleContext {
public List<EqualityExprContext> equalityExpr() {
return getRuleContexts(EqualityExprContext.class);
}
public EqualityExprContext equalityExpr(int i) {
return getRuleContext(EqualityExprContext.class,i);
}
public List<TerminalNode> ConditionalAND() { return getTokens(ExprParser.ConditionalAND); }
public TerminalNode ConditionalAND(int i) {
return getToken(ExprParser.ConditionalAND, i);
}
public LogicalAndExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_logicalAndExpr; }
}
public final LogicalAndExprContext logicalAndExpr() throws RecognitionException {
LogicalAndExprContext _localctx = new LogicalAndExprContext(_ctx, getState());
enterRule(_localctx, 14, RULE_logicalAndExpr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(207);
equalityExpr();
setState(212);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==ConditionalAND) {
{
{
setState(208);
match(ConditionalAND);
setState(209);
equalityExpr();
}
}
setState(214);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class EqualityExprContext extends ParserRuleContext {
public List<RelationalExprContext> relationalExpr() {
return getRuleContexts(RelationalExprContext.class);
}
public RelationalExprContext relationalExpr(int i) {
return getRuleContext(RelationalExprContext.class,i);
}
public List<TerminalNode> EqualTo() { return getTokens(ExprParser.EqualTo); }
public TerminalNode EqualTo(int i) {
return getToken(ExprParser.EqualTo, i);
}
public List<TerminalNode> NotEqualTo() { return getTokens(ExprParser.NotEqualTo); }
public TerminalNode NotEqualTo(int i) {
return getToken(ExprParser.NotEqualTo, i);
}
public EqualityExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_equalityExpr; }
}
public final EqualityExprContext equalityExpr() throws RecognitionException {
EqualityExprContext _localctx = new EqualityExprContext(_ctx, getState());
enterRule(_localctx, 16, RULE_equalityExpr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(215);
relationalExpr();
setState(220);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==EqualTo || _la==NotEqualTo) {
{
{
setState(216);
_la = _input.LA(1);
if ( !(_la==EqualTo || _la==NotEqualTo) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(217);
relationalExpr();
}
}
setState(222);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class RelationalExprContext extends ParserRuleContext {
public List<AdditiveExprContext> additiveExpr() {
return getRuleContexts(AdditiveExprContext.class);
}
public AdditiveExprContext additiveExpr(int i) {
return getRuleContext(AdditiveExprContext.class,i);
}
public List<TerminalNode> InstanceOf() { return getTokens(ExprParser.InstanceOf); }
public TerminalNode InstanceOf(int i) {
return getToken(ExprParser.InstanceOf, i);
}
public List<TypeContext> type() {
return getRuleContexts(TypeContext.class);
}
public TypeContext type(int i) {
return getRuleContext(TypeContext.class,i);
}
public List<TerminalNode> LessThan() { return getTokens(ExprParser.LessThan); }
public TerminalNode LessThan(int i) {
return getToken(ExprParser.LessThan, i);
}
public List<TerminalNode> GreaterThan() { return getTokens(ExprParser.GreaterThan); }
public TerminalNode GreaterThan(int i) {
return getToken(ExprParser.GreaterThan, i);
}
public List<TerminalNode> LessThanEqualTo() { return getTokens(ExprParser.LessThanEqualTo); }
public TerminalNode LessThanEqualTo(int i) {
return getToken(ExprParser.LessThanEqualTo, i);
}
public List<TerminalNode> GreaterThanEqualTo() { return getTokens(ExprParser.GreaterThanEqualTo); }
public TerminalNode GreaterThanEqualTo(int i) {
return getToken(ExprParser.GreaterThanEqualTo, i);
}
public RelationalExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_relationalExpr; }
}
public final RelationalExprContext relationalExpr() throws RecognitionException {
RelationalExprContext _localctx = new RelationalExprContext(_ctx, getState());
enterRule(_localctx, 18, RULE_relationalExpr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(223);
additiveExpr();
setState(230);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==InstanceOf || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 6291459L) != 0)) {
{
setState(228);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LessThanEqualTo:
case GreaterThanEqualTo:
case LessThan:
case GreaterThan:
{
setState(224);
_la = _input.LA(1);
if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 6291459L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(225);
additiveExpr();
}
break;
case InstanceOf:
{
setState(226);
match(InstanceOf);
setState(227);
type();
}
break;
default:
throw new NoViableAltException(this);
}
}
setState(232);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AdditiveExprContext extends ParserRuleContext {
public List<MultiplicativeExprContext> multiplicativeExpr() {
return getRuleContexts(MultiplicativeExprContext.class);
}
public MultiplicativeExprContext multiplicativeExpr(int i) {
return getRuleContext(MultiplicativeExprContext.class,i);
}
public List<TerminalNode> Addition() { return getTokens(ExprParser.Addition); }
public TerminalNode Addition(int i) {
return getToken(ExprParser.Addition, i);
}
public List<TerminalNode> Subtraction() { return getTokens(ExprParser.Subtraction); }
public TerminalNode Subtraction(int i) {
return getToken(ExprParser.Subtraction, i);
}
public AdditiveExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_additiveExpr; }
}
public final AdditiveExprContext additiveExpr() throws RecognitionException {
AdditiveExprContext _localctx = new AdditiveExprContext(_ctx, getState());
enterRule(_localctx, 20, RULE_additiveExpr);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(233);
multiplicativeExpr();
setState(238);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(234);
_la = _input.LA(1);
if ( !(_la==Addition || _la==Subtraction) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(235);
multiplicativeExpr();
}
}
}
setState(240);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MultiplicativeExprContext extends ParserRuleContext {
public List<UnaryExprContext> unaryExpr() {
return getRuleContexts(UnaryExprContext.class);
}
public UnaryExprContext unaryExpr(int i) {
return getRuleContext(UnaryExprContext.class,i);
}
public List<TerminalNode> Multiplication() { return getTokens(ExprParser.Multiplication); }
public TerminalNode Multiplication(int i) {
return getToken(ExprParser.Multiplication, i);
}
public List<TerminalNode> Division() { return getTokens(ExprParser.Division); }
public TerminalNode Division(int i) {
return getToken(ExprParser.Division, i);
}
public List<TerminalNode> Remainder() { return getTokens(ExprParser.Remainder); }
public TerminalNode Remainder(int i) {
return getToken(ExprParser.Remainder, i);
}
public MultiplicativeExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiplicativeExpr; }
}
public final MultiplicativeExprContext multiplicativeExpr() throws RecognitionException {
MultiplicativeExprContext _localctx = new MultiplicativeExprContext(_ctx, getState());
enterRule(_localctx, 22, RULE_multiplicativeExpr);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(241);
unaryExpr();
setState(246);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 98)) & ~0x3f) == 0 && ((1L << (_la - 98)) & 35L) != 0)) {
{
{
setState(242);
_la = _input.LA(1);
if ( !(((((_la - 98)) & ~0x3f) == 0 && ((1L << (_la - 98)) & 35L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(243);
unaryExpr();
}
}
setState(248);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class UnaryExprContext extends ParserRuleContext {
public PostfixExprContext postfixExpr() {
return getRuleContext(PostfixExprContext.class,0);
}
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public TerminalNode Addition() { return getToken(ExprParser.Addition, 0); }
public TerminalNode Subtraction() { return getToken(ExprParser.Subtraction, 0); }
public TerminalNode LogicalComplement() { return getToken(ExprParser.LogicalComplement, 0); }
public TerminalNode BitwiseComplement() { return getToken(ExprParser.BitwiseComplement, 0); }
public TerminalNode Increment() { return getToken(ExprParser.Increment, 0); }
public TerminalNode Decrement() { return getToken(ExprParser.Decrement, 0); }
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public UnaryExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unaryExpr; }
}
public final UnaryExprContext unaryExpr() throws RecognitionException {
UnaryExprContext _localctx = new UnaryExprContext(_ctx, getState());
enterRule(_localctx, 24, RULE_unaryExpr);
int _la;
try {
setState(256);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(249);
postfixExpr();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(250);
_la = _input.LA(1);
if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 13172739L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(251);
unaryExpr();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(252);
parExpression();
setState(253);
type();
setState(254);
unaryExpr();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PostfixExprContext extends ParserRuleContext {
public PrimaryExprContext primaryExpr() {
return getRuleContext(PrimaryExprContext.class,0);
}
public List<TerminalNode> Increment() { return getTokens(ExprParser.Increment); }
public TerminalNode Increment(int i) {
return getToken(ExprParser.Increment, i);
}
public List<TerminalNode> Decrement() { return getTokens(ExprParser.Decrement); }
public TerminalNode Decrement(int i) {
return getToken(ExprParser.Decrement, i);
}
public List<TerminalNode> Dot() { return getTokens(ExprParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(ExprParser.Dot, i);
}
public List<TerminalNode> IDENTIFIER() { return getTokens(ExprParser.IDENTIFIER); }
public TerminalNode IDENTIFIER(int i) {
return getToken(ExprParser.IDENTIFIER, i);
}
public List<TerminalNode> SquareBracketLeft() { return getTokens(ExprParser.SquareBracketLeft); }
public TerminalNode SquareBracketLeft(int i) {
return getToken(ExprParser.SquareBracketLeft, i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<TerminalNode> SquareBracketRight() { return getTokens(ExprParser.SquareBracketRight); }
public TerminalNode SquareBracketRight(int i) {
return getToken(ExprParser.SquareBracketRight, i);
}
public List<ArgumentsContext> arguments() {
return getRuleContexts(ArgumentsContext.class);
}
public ArgumentsContext arguments(int i) {
return getRuleContext(ArgumentsContext.class,i);
}
public PostfixExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_postfixExpr; }
}
public final PostfixExprContext postfixExpr() throws RecognitionException {
PostfixExprContext _localctx = new PostfixExprContext(_ctx, getState());
enterRule(_localctx, 26, RULE_postfixExpr);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(258);
primaryExpr();
setState(270);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
setState(268);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Increment:
{
setState(259);
match(Increment);
}
break;
case Decrement:
{
setState(260);
match(Decrement);
}
break;
case Dot:
{
setState(261);
match(Dot);
setState(262);
match(IDENTIFIER);
}
break;
case SquareBracketLeft:
{
setState(263);
match(SquareBracketLeft);
setState(264);
expression();
setState(265);
match(SquareBracketRight);
}
break;
case ParenthesesLeft:
{
setState(267);
arguments();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
setState(272);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PrimaryExprContext extends ParserRuleContext {
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public TerminalNode IntegerLiteral() { return getToken(ExprParser.IntegerLiteral, 0); }
public TerminalNode FloatingPointLiteral() { return getToken(ExprParser.FloatingPointLiteral, 0); }
public TerminalNode StringLiteral() { return getToken(ExprParser.StringLiteral, 0); }
public TerminalNode CharacterLiteral() { return getToken(ExprParser.CharacterLiteral, 0); }
public TerminalNode BooleanLiteral() { return getToken(ExprParser.BooleanLiteral, 0); }
public TerminalNode NullLiteral() { return getToken(ExprParser.NullLiteral, 0); }
public TerminalNode IDENTIFIER() { return getToken(ExprParser.IDENTIFIER, 0); }
public TerminalNode This() { return getToken(ExprParser.This, 0); }
public TerminalNode Super() { return getToken(ExprParser.Super, 0); }
public TerminalNode Dot() { return getToken(ExprParser.Dot, 0); }
public TerminalNode New() { return getToken(ExprParser.New, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public ArgumentsContext arguments() {
return getRuleContext(ArgumentsContext.class,0);
}
public PrimitiveTypeContext primitiveType() {
return getRuleContext(PrimitiveTypeContext.class,0);
}
public TerminalNode Class() { return getToken(ExprParser.Class, 0); }
public List<TerminalNode> SquareBracketLeft() { return getTokens(ExprParser.SquareBracketLeft); }
public TerminalNode SquareBracketLeft(int i) {
return getToken(ExprParser.SquareBracketLeft, i);
}
public List<TerminalNode> SquareBracketRight() { return getTokens(ExprParser.SquareBracketRight); }
public TerminalNode SquareBracketRight(int i) {
return getToken(ExprParser.SquareBracketRight, i);
}
public PrimaryExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_primaryExpr; }
}
public final PrimaryExprContext primaryExpr() throws RecognitionException {
PrimaryExprContext _localctx = new PrimaryExprContext(_ctx, getState());
enterRule(_localctx, 28, RULE_primaryExpr);
int _la;
try {
setState(306);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(273);
parExpression();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(274);
match(IntegerLiteral);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(275);
match(FloatingPointLiteral);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(276);
match(StringLiteral);
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(277);
match(CharacterLiteral);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(278);
match(BooleanLiteral);
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(279);
match(NullLiteral);
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(280);
match(IDENTIFIER);
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(281);
match(This);
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(282);
match(Super);
setState(285);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) {
case 1:
{
setState(283);
match(Dot);
setState(284);
match(IDENTIFIER);
}
break;
}
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(287);
match(New);
setState(288);
type();
setState(289);
arguments();
}
break;
case 12:
enterOuterAlt(_localctx, 12);
{
setState(291);
primitiveType();
setState(296);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SquareBracketLeft) {
{
{
setState(292);
match(SquareBracketLeft);
setState(293);
match(SquareBracketRight);
}
}
setState(298);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(299);
match(Dot);
setState(300);
match(Class);
}
break;
case 13:
enterOuterAlt(_localctx, 13);
{
setState(302);
type();
setState(303);
match(Dot);
setState(304);
match(Class);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AssignmentOperatorContext extends ParserRuleContext {
public TerminalNode Assignment() { return getToken(ExprParser.Assignment, 0); }
public TerminalNode AddAssign() { return getToken(ExprParser.AddAssign, 0); }
public TerminalNode SubtractAssign() { return getToken(ExprParser.SubtractAssign, 0); }
public TerminalNode MultiplyAssign() { return getToken(ExprParser.MultiplyAssign, 0); }
public TerminalNode DivideAssign() { return getToken(ExprParser.DivideAssign, 0); }
public TerminalNode BitwiseANDAssign() { return getToken(ExprParser.BitwiseANDAssign, 0); }
public TerminalNode BitwiseORAssign() { return getToken(ExprParser.BitwiseORAssign, 0); }
public TerminalNode BitwiseXORAssign() { return getToken(ExprParser.BitwiseXORAssign, 0); }
public TerminalNode RemainderAssign() { return getToken(ExprParser.RemainderAssign, 0); }
public TerminalNode LeftShiftAssign() { return getToken(ExprParser.LeftShiftAssign, 0); }
public TerminalNode SignedRightShiftAssign() { return getToken(ExprParser.SignedRightShiftAssign, 0); }
public TerminalNode UnsignedRightShiftAssign() { return getToken(ExprParser.UnsignedRightShiftAssign, 0); }
public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_assignmentOperator; }
}
public final AssignmentOperatorContext assignmentOperator() throws RecognitionException {
AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState());
enterRule(_localctx, 30, RULE_assignmentOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(308);
_la = _input.LA(1);
if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 8384513L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeContext extends ParserRuleContext {
public List<IdentifierContext> identifier() {
return getRuleContexts(IdentifierContext.class);
}
public IdentifierContext identifier(int i) {
return getRuleContext(IdentifierContext.class,i);
}
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public List<TerminalNode> Dot() { return getTokens(ExprParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(ExprParser.Dot, i);
}
public PrimitiveTypeContext primitiveType() {
return getRuleContext(PrimitiveTypeContext.class,0);
}
public TypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_type; }
}
public final TypeContext type() throws RecognitionException {
TypeContext _localctx = new TypeContext(_ctx, getState());
enterRule(_localctx, 32, RULE_type);
try {
int _alt;
setState(321);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IDENTIFIER:
enterOuterAlt(_localctx, 1);
{
setState(310);
identifier();
setState(315);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(311);
match(Dot);
setState(312);
identifier();
}
}
}
setState(317);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,16,_ctx);
}
setState(318);
bracketsOpt();
}
break;
case Boolean:
case Byte:
case Char:
case Double:
case Float:
case Int:
case Long:
case Short:
enterOuterAlt(_localctx, 2);
{
setState(320);
primitiveType();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class StatementExpressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public StatementExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statementExpression; }
}
public final StatementExpressionContext statementExpression() throws RecognitionException {
StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState());
enterRule(_localctx, 34, RULE_statementExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(323);
expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstantExpressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ConstantExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constantExpression; }
}
public final ConstantExpressionContext constantExpression() throws RecognitionException {
ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState());
enterRule(_localctx, 36, RULE_constantExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(325);
expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class IdentifierSuffixContext extends ParserRuleContext {
public TerminalNode SquareBracketLeft() { return getToken(ExprParser.SquareBracketLeft, 0); }
public TerminalNode SquareBracketRight() { return getToken(ExprParser.SquareBracketRight, 0); }
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public TerminalNode Dot() { return getToken(ExprParser.Dot, 0); }
public TerminalNode Class() { return getToken(ExprParser.Class, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ArgumentsContext arguments() {
return getRuleContext(ArgumentsContext.class,0);
}
public TerminalNode This() { return getToken(ExprParser.This, 0); }
public TerminalNode Super() { return getToken(ExprParser.Super, 0); }
public TerminalNode New() { return getToken(ExprParser.New, 0); }
public InnerCreatorContext innerCreator() {
return getRuleContext(InnerCreatorContext.class,0);
}
public IdentifierSuffixContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_identifierSuffix; }
}
public final IdentifierSuffixContext identifierSuffix() throws RecognitionException {
IdentifierSuffixContext _localctx = new IdentifierSuffixContext(_ctx, getState());
enterRule(_localctx, 38, RULE_identifierSuffix);
try {
setState(348);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(327);
match(SquareBracketLeft);
setState(328);
match(SquareBracketRight);
setState(329);
bracketsOpt();
setState(330);
match(Dot);
setState(331);
match(Class);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(333);
match(SquareBracketLeft);
setState(334);
expression();
setState(335);
match(SquareBracketRight);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(337);
arguments();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(338);
match(Dot);
setState(346);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Class:
{
setState(339);
match(Class);
}
break;
case This:
{
setState(340);
match(This);
}
break;
case Super:
{
setState(341);
match(Super);
setState(342);
arguments();
setState(343);
match(New);
setState(344);
innerCreator();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PostfixOpContext extends ParserRuleContext {
public TerminalNode Increment() { return getToken(ExprParser.Increment, 0); }
public TerminalNode Decrement() { return getToken(ExprParser.Decrement, 0); }
public PostfixOpContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_postfixOp; }
}
public final PostfixOpContext postfixOp() throws RecognitionException {
PostfixOpContext _localctx = new PostfixOpContext(_ctx, getState());
enterRule(_localctx, 40, RULE_postfixOp);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(350);
_la = _input.LA(1);
if ( !(_la==Increment || _la==Decrement) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PrimitiveTypeContext extends ParserRuleContext {
public TerminalNode Byte() { return getToken(ExprParser.Byte, 0); }
public TerminalNode Short() { return getToken(ExprParser.Short, 0); }
public TerminalNode Char() { return getToken(ExprParser.Char, 0); }
public TerminalNode Int() { return getToken(ExprParser.Int, 0); }
public TerminalNode Long() { return getToken(ExprParser.Long, 0); }
public TerminalNode Float() { return getToken(ExprParser.Float, 0); }
public TerminalNode Double() { return getToken(ExprParser.Double, 0); }
public TerminalNode Boolean() { return getToken(ExprParser.Boolean, 0); }
public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_primitiveType; }
}
public final PrimitiveTypeContext primitiveType() throws RecognitionException {
PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
enterRule(_localctx, 42, RULE_primitiveType);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(352);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 276222248096L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ArgumentsOptContext extends ParserRuleContext {
public ArgumentsContext arguments() {
return getRuleContext(ArgumentsContext.class,0);
}
public ArgumentsOptContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_argumentsOpt; }
}
public final ArgumentsOptContext argumentsOpt() throws RecognitionException {
ArgumentsOptContext _localctx = new ArgumentsOptContext(_ctx, getState());
enterRule(_localctx, 44, RULE_argumentsOpt);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(355);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==ParenthesesLeft) {
{
setState(354);
arguments();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ArgumentsContext extends ParserRuleContext {
public TerminalNode ParenthesesLeft() { return getToken(ExprParser.ParenthesesLeft, 0); }
public TerminalNode ParenthesesRight() { return getToken(ExprParser.ParenthesesRight, 0); }
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public ArgumentsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_arguments; }
}
public final ArgumentsContext arguments() throws RecognitionException {
ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
enterRule(_localctx, 46, RULE_arguments);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(357);
match(ParenthesesLeft);
setState(366);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1143934377078621344L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(358);
expression();
setState(363);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(359);
match(Comma);
setState(360);
expression();
}
}
setState(365);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(368);
match(ParenthesesRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class BracketsOptContext extends ParserRuleContext {
public List<TerminalNode> SquareBracketLeft() { return getTokens(ExprParser.SquareBracketLeft); }
public TerminalNode SquareBracketLeft(int i) {
return getToken(ExprParser.SquareBracketLeft, i);
}
public List<TerminalNode> SquareBracketRight() { return getTokens(ExprParser.SquareBracketRight); }
public TerminalNode SquareBracketRight(int i) {
return getToken(ExprParser.SquareBracketRight, i);
}
public BracketsOptContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_bracketsOpt; }
}
public final BracketsOptContext bracketsOpt() throws RecognitionException {
BracketsOptContext _localctx = new BracketsOptContext(_ctx, getState());
enterRule(_localctx, 48, RULE_bracketsOpt);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(374);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SquareBracketLeft) {
{
{
setState(370);
match(SquareBracketLeft);
setState(371);
match(SquareBracketRight);
}
}
setState(376);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CreatorContext extends ParserRuleContext {
public QualifiedIdentifierContext qualifiedIdentifier() {
return getRuleContext(QualifiedIdentifierContext.class,0);
}
public ArrayCreatorRestContext arrayCreatorRest() {
return getRuleContext(ArrayCreatorRestContext.class,0);
}
public ClassCreatorRestContext classCreatorRest() {
return getRuleContext(ClassCreatorRestContext.class,0);
}
public CreatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_creator; }
}
public final CreatorContext creator() throws RecognitionException {
CreatorContext _localctx = new CreatorContext(_ctx, getState());
enterRule(_localctx, 50, RULE_creator);
try {
enterOuterAlt(_localctx, 1);
{
setState(377);
qualifiedIdentifier();
setState(380);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SquareBracketLeft:
{
setState(378);
arrayCreatorRest();
}
break;
case ParenthesesLeft:
{
setState(379);
classCreatorRest();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InnerCreatorContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public ClassCreatorRestContext classCreatorRest() {
return getRuleContext(ClassCreatorRestContext.class,0);
}
public InnerCreatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_innerCreator; }
}
public final InnerCreatorContext innerCreator() throws RecognitionException {
InnerCreatorContext _localctx = new InnerCreatorContext(_ctx, getState());
enterRule(_localctx, 52, RULE_innerCreator);
try {
enterOuterAlt(_localctx, 1);
{
setState(382);
identifier();
setState(383);
classCreatorRest();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ArrayCreatorRestContext extends ParserRuleContext {
public List<TerminalNode> SquareBracketLeft() { return getTokens(ExprParser.SquareBracketLeft); }
public TerminalNode SquareBracketLeft(int i) {
return getToken(ExprParser.SquareBracketLeft, i);
}
public List<TerminalNode> SquareBracketRight() { return getTokens(ExprParser.SquareBracketRight); }
public TerminalNode SquareBracketRight(int i) {
return getToken(ExprParser.SquareBracketRight, i);
}
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public ArrayInitializerContext arrayInitializer() {
return getRuleContext(ArrayInitializerContext.class,0);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_arrayCreatorRest; }
}
public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException {
ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState());
enterRule(_localctx, 54, RULE_arrayCreatorRest);
int _la;
try {
setState(402);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(385);
match(SquareBracketLeft);
setState(386);
match(SquareBracketRight);
setState(387);
bracketsOpt();
setState(388);
arrayInitializer();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(390);
match(SquareBracketLeft);
setState(391);
expression();
setState(392);
match(SquareBracketRight);
setState(399);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SquareBracketLeft) {
{
{
setState(393);
match(SquareBracketLeft);
setState(394);
expression();
setState(395);
match(SquareBracketRight);
}
}
setState(401);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassCreatorRestContext extends ParserRuleContext {
public ArgumentsContext arguments() {
return getRuleContext(ArgumentsContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classCreatorRest; }
}
public final ClassCreatorRestContext classCreatorRest() throws RecognitionException {
ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState());
enterRule(_localctx, 56, RULE_classCreatorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(404);
arguments();
setState(406);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==CurlyBracketLeft) {
{
setState(405);
classBody();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ArrayInitializerContext extends ParserRuleContext {
public TerminalNode CurlyBracketLeft() { return getToken(ExprParser.CurlyBracketLeft, 0); }
public TerminalNode CurlyBracketRight() { return getToken(ExprParser.CurlyBracketRight, 0); }
public List<VariableInitializerContext> variableInitializer() {
return getRuleContexts(VariableInitializerContext.class);
}
public VariableInitializerContext variableInitializer(int i) {
return getRuleContext(VariableInitializerContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public ArrayInitializerContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_arrayInitializer; }
}
public final ArrayInitializerContext arrayInitializer() throws RecognitionException {
ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState());
enterRule(_localctx, 58, RULE_arrayInitializer);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(408);
match(CurlyBracketLeft);
setState(420);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 3449777386292315296L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(409);
variableInitializer();
setState(414);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,28,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(410);
match(Comma);
setState(411);
variableInitializer();
}
}
}
setState(416);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,28,_ctx);
}
setState(418);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Comma) {
{
setState(417);
match(Comma);
}
}
}
}
setState(422);
match(CurlyBracketRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableInitializerContext extends ParserRuleContext {
public ArrayInitializerContext arrayInitializer() {
return getRuleContext(ArrayInitializerContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public VariableInitializerContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableInitializer; }
}
public final VariableInitializerContext variableInitializer() throws RecognitionException {
VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState());
enterRule(_localctx, 60, RULE_variableInitializer);
try {
setState(426);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CurlyBracketLeft:
enterOuterAlt(_localctx, 1);
{
setState(424);
arrayInitializer();
}
break;
case Boolean:
case Byte:
case Char:
case Double:
case Float:
case Int:
case Long:
case New:
case Short:
case Super:
case This:
case IntegerLiteral:
case FloatingPointLiteral:
case CharacterLiteral:
case StringLiteral:
case BooleanLiteral:
case NullLiteral:
case ParenthesesLeft:
case Increment:
case Decrement:
case BitwiseComplement:
case LogicalComplement:
case Addition:
case Subtraction:
case IDENTIFIER:
enterOuterAlt(_localctx, 2);
{
setState(425);
expression();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ParExpressionContext extends ParserRuleContext {
public TerminalNode ParenthesesLeft() { return getToken(ExprParser.ParenthesesLeft, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode ParenthesesRight() { return getToken(ExprParser.ParenthesesRight, 0); }
public ParExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parExpression; }
}
public final ParExpressionContext parExpression() throws RecognitionException {
ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState());
enterRule(_localctx, 62, RULE_parExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(428);
match(ParenthesesLeft);
setState(429);
expression();
setState(430);
match(ParenthesesRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class BlockContext extends ParserRuleContext {
public TerminalNode CurlyBracketLeft() { return getToken(ExprParser.CurlyBracketLeft, 0); }
public BlockStatementsContext blockStatements() {
return getRuleContext(BlockStatementsContext.class,0);
}
public TerminalNode CurlyBracketRight() { return getToken(ExprParser.CurlyBracketRight, 0); }
public BlockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_block; }
}
public final BlockContext block() throws RecognitionException {
BlockContext _localctx = new BlockContext(_ctx, getState());
enterRule(_localctx, 64, RULE_block);
try {
enterOuterAlt(_localctx, 1);
{
setState(432);
match(CurlyBracketLeft);
setState(433);
blockStatements();
setState(434);
match(CurlyBracketRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class BlockStatementsContext extends ParserRuleContext {
public List<BlockStatementContext> blockStatement() {
return getRuleContexts(BlockStatementContext.class);
}
public BlockStatementContext blockStatement(int i) {
return getRuleContext(BlockStatementContext.class,i);
}
public BlockStatementsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_blockStatements; }
}
public final BlockStatementsContext blockStatements() throws RecognitionException {
BlockStatementsContext _localctx = new BlockStatementsContext(_ctx, getState());
enterRule(_localctx, 66, RULE_blockStatements);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(439);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 3453627586660904168L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & 556500256257L) != 0)) {
{
{
setState(436);
blockStatement();
}
}
setState(441);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class BlockStatementContext extends ParserRuleContext {
public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() {
return getRuleContext(LocalVariableDeclarationStatementContext.class,0);
}
public ClassOrInterfaceDeclarationContext classOrInterfaceDeclaration() {
return getRuleContext(ClassOrInterfaceDeclarationContext.class,0);
}
public StatementContext statement() {
return getRuleContext(StatementContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TerminalNode Colon() { return getToken(ExprParser.Colon, 0); }
public BlockStatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_blockStatement; }
}
public final BlockStatementContext blockStatement() throws RecognitionException {
BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState());
enterRule(_localctx, 68, RULE_blockStatement);
try {
setState(450);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(442);
localVariableDeclarationStatement();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(443);
classOrInterfaceDeclaration();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(447);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) {
case 1:
{
setState(444);
identifier();
setState(445);
match(Colon);
}
break;
}
setState(449);
statement();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LocalVariableDeclarationStatementContext extends ParserRuleContext {
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public VariableDeclaratorsContext variableDeclarators() {
return getRuleContext(VariableDeclaratorsContext.class,0);
}
public TerminalNode Final() { return getToken(ExprParser.Final, 0); }
public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; }
}
public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException {
LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState());
enterRule(_localctx, 70, RULE_localVariableDeclarationStatement);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(453);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Final) {
{
setState(452);
match(Final);
}
}
setState(455);
type();
setState(456);
variableDeclarators();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class StatementContext extends ParserRuleContext {
public CompleteIfContext completeIf() {
return getRuleContext(CompleteIfContext.class,0);
}
public TerminalNode If() { return getToken(ExprParser.If, 0); }
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public StatementIncompleteIfContext statementIncompleteIf() {
return getRuleContext(StatementIncompleteIfContext.class,0);
}
public StatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statement; }
}
public final StatementContext statement() throws RecognitionException {
StatementContext _localctx = new StatementContext(_ctx, getState());
enterRule(_localctx, 72, RULE_statement);
try {
setState(463);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(458);
completeIf();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(459);
match(If);
setState(460);
parExpression();
setState(461);
statementIncompleteIf();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class StatementIncompleteIfContext extends ParserRuleContext {
public List<BlockContext> block() {
return getRuleContexts(BlockContext.class);
}
public BlockContext block(int i) {
return getRuleContext(BlockContext.class,i);
}
public TerminalNode If() { return getToken(ExprParser.If, 0); }
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public CompleteIfContext completeIf() {
return getRuleContext(CompleteIfContext.class,0);
}
public TerminalNode Else() { return getToken(ExprParser.Else, 0); }
public StatementIncompleteIfContext statementIncompleteIf() {
return getRuleContext(StatementIncompleteIfContext.class,0);
}
public TerminalNode For() { return getToken(ExprParser.For, 0); }
public TerminalNode ParenthesesLeft() { return getToken(ExprParser.ParenthesesLeft, 0); }
public List<TerminalNode> Semicolon() { return getTokens(ExprParser.Semicolon); }
public TerminalNode Semicolon(int i) {
return getToken(ExprParser.Semicolon, i);
}
public TerminalNode ParenthesesRight() { return getToken(ExprParser.ParenthesesRight, 0); }
public StatementContext statement() {
return getRuleContext(StatementContext.class,0);
}
public ForInitContext forInit() {
return getRuleContext(ForInitContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ForUpdateContext forUpdate() {
return getRuleContext(ForUpdateContext.class,0);
}
public TerminalNode While() { return getToken(ExprParser.While, 0); }
public TerminalNode Do() { return getToken(ExprParser.Do, 0); }
public TerminalNode Try() { return getToken(ExprParser.Try, 0); }
public CatchesContext catches() {
return getRuleContext(CatchesContext.class,0);
}
public TerminalNode Finally() { return getToken(ExprParser.Finally, 0); }
public SwitchStatementContext switchStatement() {
return getRuleContext(SwitchStatementContext.class,0);
}
public TerminalNode Synchronized() { return getToken(ExprParser.Synchronized, 0); }
public TerminalNode Return() { return getToken(ExprParser.Return, 0); }
public TerminalNode Throw() { return getToken(ExprParser.Throw, 0); }
public TerminalNode Break() { return getToken(ExprParser.Break, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TerminalNode Continue() { return getToken(ExprParser.Continue, 0); }
public StatementExpressionContext statementExpression() {
return getRuleContext(StatementExpressionContext.class,0);
}
public StatementIncompleteIfContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statementIncompleteIf; }
}
public final StatementIncompleteIfContext statementIncompleteIf() throws RecognitionException {
StatementIncompleteIfContext _localctx = new StatementIncompleteIfContext(_ctx, getState());
enterRule(_localctx, 74, RULE_statementIncompleteIf);
int _la;
try {
setState(540);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(465);
block();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(466);
match(If);
setState(467);
parExpression();
setState(468);
completeIf();
setState(469);
match(Else);
setState(470);
statementIncompleteIf();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(472);
match(For);
setState(473);
match(ParenthesesLeft);
setState(475);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1143934377079145632L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(474);
forInit();
}
}
setState(477);
match(Semicolon);
setState(479);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1143934377078621344L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(478);
expression();
}
}
setState(481);
match(Semicolon);
setState(483);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1143934377078621344L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(482);
forUpdate();
}
}
setState(485);
match(ParenthesesRight);
setState(486);
statement();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(487);
match(While);
setState(488);
parExpression();
setState(489);
statement();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(491);
match(Do);
setState(492);
statement();
setState(493);
match(While);
setState(494);
parExpression();
setState(495);
match(Semicolon);
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(497);
match(Try);
setState(498);
block();
setState(499);
catches();
}
break;
case 7:
enterOuterAlt(_localctx, 7);
{
setState(501);
match(Try);
setState(502);
block();
setState(503);
match(Finally);
setState(504);
block();
}
break;
case 8:
enterOuterAlt(_localctx, 8);
{
setState(506);
match(Try);
setState(507);
block();
setState(508);
catches();
setState(509);
match(Finally);
setState(510);
block();
}
break;
case 9:
enterOuterAlt(_localctx, 9);
{
setState(512);
switchStatement();
}
break;
case 10:
enterOuterAlt(_localctx, 10);
{
setState(513);
match(Synchronized);
setState(514);
parExpression();
setState(515);
block();
}
break;
case 11:
enterOuterAlt(_localctx, 11);
{
setState(517);
match(Return);
setState(519);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1143934377078621344L) != 0) || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 1086914563L) != 0)) {
{
setState(518);
expression();
}
}
setState(521);
match(Semicolon);
}
break;
case 12:
enterOuterAlt(_localctx, 12);
{
setState(522);
match(Throw);
setState(523);
expression();
setState(524);
match(Semicolon);
}
break;
case 13:
enterOuterAlt(_localctx, 13);
{
setState(526);
match(Break);
setState(528);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==IDENTIFIER) {
{
setState(527);
identifier();
}
}
setState(530);
match(Semicolon);
}
break;
case 14:
enterOuterAlt(_localctx, 14);
{
setState(531);
match(Continue);
setState(533);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==IDENTIFIER) {
{
setState(532);
identifier();
}
}
setState(535);
match(Semicolon);
}
break;
case 15:
enterOuterAlt(_localctx, 15);
{
setState(536);
statementExpression();
setState(537);
match(Semicolon);
}
break;
case 16:
enterOuterAlt(_localctx, 16);
{
setState(539);
match(Semicolon);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CompleteIfContext extends ParserRuleContext {
public TerminalNode If() { return getToken(ExprParser.If, 0); }
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public List<CompleteIfContext> completeIf() {
return getRuleContexts(CompleteIfContext.class);
}
public CompleteIfContext completeIf(int i) {
return getRuleContext(CompleteIfContext.class,i);
}
public TerminalNode Else() { return getToken(ExprParser.Else, 0); }
public StatementIncompleteIfContext statementIncompleteIf() {
return getRuleContext(StatementIncompleteIfContext.class,0);
}
public CompleteIfContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_completeIf; }
}
public final CompleteIfContext completeIf() throws RecognitionException {
CompleteIfContext _localctx = new CompleteIfContext(_ctx, getState());
enterRule(_localctx, 76, RULE_completeIf);
try {
setState(549);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(542);
match(If);
setState(543);
parExpression();
setState(544);
completeIf();
setState(545);
match(Else);
setState(546);
completeIf();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(548);
statementIncompleteIf();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CatchesContext extends ParserRuleContext {
public List<CatchClauseContext> catchClause() {
return getRuleContexts(CatchClauseContext.class);
}
public CatchClauseContext catchClause(int i) {
return getRuleContext(CatchClauseContext.class,i);
}
public CatchesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_catches; }
}
public final CatchesContext catches() throws RecognitionException {
CatchesContext _localctx = new CatchesContext(_ctx, getState());
enterRule(_localctx, 78, RULE_catches);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(551);
catchClause();
setState(555);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Catch) {
{
{
setState(552);
catchClause();
}
}
setState(557);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CatchClauseContext extends ParserRuleContext {
public TerminalNode Catch() { return getToken(ExprParser.Catch, 0); }
public TerminalNode ParenthesesLeft() { return getToken(ExprParser.ParenthesesLeft, 0); }
public FormalParameterContext formalParameter() {
return getRuleContext(FormalParameterContext.class,0);
}
public TerminalNode ParenthesesRight() { return getToken(ExprParser.ParenthesesRight, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public CatchClauseContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_catchClause; }
}
public final CatchClauseContext catchClause() throws RecognitionException {
CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState());
enterRule(_localctx, 80, RULE_catchClause);
try {
enterOuterAlt(_localctx, 1);
{
setState(558);
match(Catch);
setState(559);
match(ParenthesesLeft);
setState(560);
formalParameter();
setState(561);
match(ParenthesesRight);
setState(562);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SwitchStatementContext extends ParserRuleContext {
public TerminalNode Switch() { return getToken(ExprParser.Switch, 0); }
public ParExpressionContext parExpression() {
return getRuleContext(ParExpressionContext.class,0);
}
public TerminalNode CurlyBracketLeft() { return getToken(ExprParser.CurlyBracketLeft, 0); }
public TerminalNode CurlyBracketRight() { return getToken(ExprParser.CurlyBracketRight, 0); }
public SwitchBlockStatementGroupsContext switchBlockStatementGroups() {
return getRuleContext(SwitchBlockStatementGroupsContext.class,0);
}
public SwitchStatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switchStatement; }
}
public final SwitchStatementContext switchStatement() throws RecognitionException {
SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState());
enterRule(_localctx, 82, RULE_switchStatement);
try {
setState(577);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(564);
match(Switch);
setState(565);
parExpression();
setState(566);
match(CurlyBracketLeft);
setState(567);
match(CurlyBracketRight);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(569);
match(Switch);
setState(570);
parExpression();
setState(571);
match(CurlyBracketLeft);
setState(573);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,46,_ctx) ) {
case 1:
{
setState(572);
switchBlockStatementGroups();
}
break;
}
setState(575);
match(CurlyBracketRight);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SwitchBlockStatementGroupsContext extends ParserRuleContext {
public List<SwitchBlockStatementGroupContext> switchBlockStatementGroup() {
return getRuleContexts(SwitchBlockStatementGroupContext.class);
}
public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) {
return getRuleContext(SwitchBlockStatementGroupContext.class,i);
}
public SwitchBlockStatementGroupsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switchBlockStatementGroups; }
}
public final SwitchBlockStatementGroupsContext switchBlockStatementGroups() throws RecognitionException {
SwitchBlockStatementGroupsContext _localctx = new SwitchBlockStatementGroupsContext(_ctx, getState());
enterRule(_localctx, 84, RULE_switchBlockStatementGroups);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(582);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Case || _la==Default) {
{
{
setState(579);
switchBlockStatementGroup();
}
}
setState(584);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SwitchBlockStatementGroupContext extends ParserRuleContext {
public SwitchLabelContext switchLabel() {
return getRuleContext(SwitchLabelContext.class,0);
}
public BlockStatementsContext blockStatements() {
return getRuleContext(BlockStatementsContext.class,0);
}
public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; }
}
public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException {
SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState());
enterRule(_localctx, 86, RULE_switchBlockStatementGroup);
try {
enterOuterAlt(_localctx, 1);
{
setState(585);
switchLabel();
setState(586);
blockStatements();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SwitchLabelContext extends ParserRuleContext {
public TerminalNode Case() { return getToken(ExprParser.Case, 0); }
public ConstantExpressionContext constantExpression() {
return getRuleContext(ConstantExpressionContext.class,0);
}
public TerminalNode Colon() { return getToken(ExprParser.Colon, 0); }
public TerminalNode Default() { return getToken(ExprParser.Default, 0); }
public SwitchLabelContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_switchLabel; }
}
public final SwitchLabelContext switchLabel() throws RecognitionException {
SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState());
enterRule(_localctx, 88, RULE_switchLabel);
try {
setState(594);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Case:
enterOuterAlt(_localctx, 1);
{
setState(588);
match(Case);
setState(589);
constantExpression();
setState(590);
match(Colon);
}
break;
case Default:
enterOuterAlt(_localctx, 2);
{
setState(592);
match(Default);
setState(593);
match(Colon);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MoreStatementExpressionsContext extends ParserRuleContext {
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public List<StatementExpressionContext> statementExpression() {
return getRuleContexts(StatementExpressionContext.class);
}
public StatementExpressionContext statementExpression(int i) {
return getRuleContext(StatementExpressionContext.class,i);
}
public MoreStatementExpressionsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_moreStatementExpressions; }
}
public final MoreStatementExpressionsContext moreStatementExpressions() throws RecognitionException {
MoreStatementExpressionsContext _localctx = new MoreStatementExpressionsContext(_ctx, getState());
enterRule(_localctx, 90, RULE_moreStatementExpressions);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(600);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(596);
match(Comma);
setState(597);
statementExpression();
}
}
setState(602);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ForInitContext extends ParserRuleContext {
public StatementExpressionContext statementExpression() {
return getRuleContext(StatementExpressionContext.class,0);
}
public MoreStatementExpressionsContext moreStatementExpressions() {
return getRuleContext(MoreStatementExpressionsContext.class,0);
}
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public VariableDeclaratorsContext variableDeclarators() {
return getRuleContext(VariableDeclaratorsContext.class,0);
}
public TerminalNode Final() { return getToken(ExprParser.Final, 0); }
public ForInitContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_forInit; }
}
public final ForInitContext forInit() throws RecognitionException {
ForInitContext _localctx = new ForInitContext(_ctx, getState());
enterRule(_localctx, 92, RULE_forInit);
int _la;
try {
setState(612);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(603);
statementExpression();
setState(604);
moreStatementExpressions();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(607);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Final) {
{
setState(606);
match(Final);
}
}
setState(609);
type();
setState(610);
variableDeclarators();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ForUpdateContext extends ParserRuleContext {
public StatementExpressionContext statementExpression() {
return getRuleContext(StatementExpressionContext.class,0);
}
public MoreStatementExpressionsContext moreStatementExpressions() {
return getRuleContext(MoreStatementExpressionsContext.class,0);
}
public ForUpdateContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_forUpdate; }
}
public final ForUpdateContext forUpdate() throws RecognitionException {
ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState());
enterRule(_localctx, 94, RULE_forUpdate);
try {
enterOuterAlt(_localctx, 1);
{
setState(614);
statementExpression();
setState(615);
moreStatementExpressions();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ModifiersOptContext extends ParserRuleContext {
public List<ModifierContext> modifier() {
return getRuleContexts(ModifierContext.class);
}
public ModifierContext modifier(int i) {
return getRuleContext(ModifierContext.class,i);
}
public ModifiersOptContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_modifiersOpt; }
}
public final ModifiersOptContext modifiersOpt() throws RecognitionException {
ModifiersOptContext _localctx = new ModifiersOptContext(_ctx, getState());
enterRule(_localctx, 96, RULE_modifiersOpt);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(620);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,53,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(617);
modifier();
}
}
}
setState(622);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,53,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ModifierContext extends ParserRuleContext {
public TerminalNode Public() { return getToken(ExprParser.Public, 0); }
public TerminalNode Protected() { return getToken(ExprParser.Protected, 0); }
public TerminalNode Private() { return getToken(ExprParser.Private, 0); }
public TerminalNode Static() { return getToken(ExprParser.Static, 0); }
public TerminalNode Abstract() { return getToken(ExprParser.Abstract, 0); }
public TerminalNode Final() { return getToken(ExprParser.Final, 0); }
public TerminalNode Native() { return getToken(ExprParser.Native, 0); }
public TerminalNode Synchronized() { return getToken(ExprParser.Synchronized, 0); }
public TerminalNode Transient() { return getToken(ExprParser.Transient, 0); }
public TerminalNode Volatile() { return getToken(ExprParser.Volatile, 0); }
public TerminalNode Strictfp() { return getToken(ExprParser.Strictfp, 0); }
public ModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_modifier; }
}
public final ModifierContext modifier() throws RecognitionException {
ModifierContext _localctx = new ModifierContext(_ctx, getState());
enterRule(_localctx, 98, RULE_modifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(623);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1277205162754056L) != 0)) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclaratorsContext extends ParserRuleContext {
public List<VariableDeclaratorContext> variableDeclarator() {
return getRuleContexts(VariableDeclaratorContext.class);
}
public VariableDeclaratorContext variableDeclarator(int i) {
return getRuleContext(VariableDeclaratorContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public VariableDeclaratorsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclarators; }
}
public final VariableDeclaratorsContext variableDeclarators() throws RecognitionException {
VariableDeclaratorsContext _localctx = new VariableDeclaratorsContext(_ctx, getState());
enterRule(_localctx, 100, RULE_variableDeclarators);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(625);
variableDeclarator();
setState(630);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(626);
match(Comma);
setState(627);
variableDeclarator();
}
}
setState(632);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclaratorsRestContext extends ParserRuleContext {
public VariableDeclaratorRestContext variableDeclaratorRest() {
return getRuleContext(VariableDeclaratorRestContext.class,0);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public List<VariableDeclaratorContext> variableDeclarator() {
return getRuleContexts(VariableDeclaratorContext.class);
}
public VariableDeclaratorContext variableDeclarator(int i) {
return getRuleContext(VariableDeclaratorContext.class,i);
}
public VariableDeclaratorsRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclaratorsRest; }
}
public final VariableDeclaratorsRestContext variableDeclaratorsRest() throws RecognitionException {
VariableDeclaratorsRestContext _localctx = new VariableDeclaratorsRestContext(_ctx, getState());
enterRule(_localctx, 102, RULE_variableDeclaratorsRest);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(633);
variableDeclaratorRest();
setState(638);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(634);
match(Comma);
setState(635);
variableDeclarator();
}
}
}
setState(640);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstantDeclaratorsRestContext extends ParserRuleContext {
public ConstantDeclaratorRestContext constantDeclaratorRest() {
return getRuleContext(ConstantDeclaratorRestContext.class,0);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public List<ConstantDeclaratorContext> constantDeclarator() {
return getRuleContexts(ConstantDeclaratorContext.class);
}
public ConstantDeclaratorContext constantDeclarator(int i) {
return getRuleContext(ConstantDeclaratorContext.class,i);
}
public ConstantDeclaratorsRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constantDeclaratorsRest; }
}
public final ConstantDeclaratorsRestContext constantDeclaratorsRest() throws RecognitionException {
ConstantDeclaratorsRestContext _localctx = new ConstantDeclaratorsRestContext(_ctx, getState());
enterRule(_localctx, 104, RULE_constantDeclaratorsRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(641);
constantDeclaratorRest();
setState(646);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(642);
match(Comma);
setState(643);
constantDeclarator();
}
}
setState(648);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclaratorContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public VariableDeclaratorsRestContext variableDeclaratorsRest() {
return getRuleContext(VariableDeclaratorsRestContext.class,0);
}
public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclarator; }
}
public final VariableDeclaratorContext variableDeclarator() throws RecognitionException {
VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState());
enterRule(_localctx, 106, RULE_variableDeclarator);
try {
enterOuterAlt(_localctx, 1);
{
setState(649);
identifier();
setState(650);
variableDeclaratorsRest();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstantDeclaratorContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public ConstantDeclaratorRestContext constantDeclaratorRest() {
return getRuleContext(ConstantDeclaratorRestContext.class,0);
}
public ConstantDeclaratorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constantDeclarator; }
}
public final ConstantDeclaratorContext constantDeclarator() throws RecognitionException {
ConstantDeclaratorContext _localctx = new ConstantDeclaratorContext(_ctx, getState());
enterRule(_localctx, 108, RULE_constantDeclarator);
try {
enterOuterAlt(_localctx, 1);
{
setState(652);
identifier();
setState(653);
constantDeclaratorRest();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclaratorRestContext extends ParserRuleContext {
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public TerminalNode Assignment() { return getToken(ExprParser.Assignment, 0); }
public VariableInitializerContext variableInitializer() {
return getRuleContext(VariableInitializerContext.class,0);
}
public VariableDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclaratorRest; }
}
public final VariableDeclaratorRestContext variableDeclaratorRest() throws RecognitionException {
VariableDeclaratorRestContext _localctx = new VariableDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 110, RULE_variableDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(655);
bracketsOpt();
setState(658);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Assignment) {
{
setState(656);
match(Assignment);
setState(657);
variableInitializer();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstantDeclaratorRestContext extends ParserRuleContext {
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public TerminalNode Assignment() { return getToken(ExprParser.Assignment, 0); }
public VariableInitializerContext variableInitializer() {
return getRuleContext(VariableInitializerContext.class,0);
}
public ConstantDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constantDeclaratorRest; }
}
public final ConstantDeclaratorRestContext constantDeclaratorRest() throws RecognitionException {
ConstantDeclaratorRestContext _localctx = new ConstantDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 112, RULE_constantDeclaratorRest);
try {
enterOuterAlt(_localctx, 1);
{
setState(660);
bracketsOpt();
setState(661);
match(Assignment);
setState(662);
variableInitializer();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclaratorIdContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclaratorId; }
}
public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException {
VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState());
enterRule(_localctx, 114, RULE_variableDeclaratorId);
try {
enterOuterAlt(_localctx, 1);
{
setState(664);
identifier();
setState(665);
bracketsOpt();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CompilationUnitContext extends ParserRuleContext {
public TerminalNode Package() { return getToken(ExprParser.Package, 0); }
public QualifiedIdentifierContext qualifiedIdentifier() {
return getRuleContext(QualifiedIdentifierContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public List<ImportDeclarationContext> importDeclaration() {
return getRuleContexts(ImportDeclarationContext.class);
}
public ImportDeclarationContext importDeclaration(int i) {
return getRuleContext(ImportDeclarationContext.class,i);
}
public List<TypeDeclarationContext> typeDeclaration() {
return getRuleContexts(TypeDeclarationContext.class);
}
public TypeDeclarationContext typeDeclaration(int i) {
return getRuleContext(TypeDeclarationContext.class,i);
}
public CompilationUnitContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_compilationUnit; }
}
public final CompilationUnitContext compilationUnit() throws RecognitionException {
CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState());
enterRule(_localctx, 116, RULE_compilationUnit);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(671);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Package) {
{
setState(667);
match(Package);
setState(668);
qualifiedIdentifier();
setState(669);
match(Semicolon);
}
}
setState(676);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Import) {
{
{
setState(673);
importDeclaration();
}
}
setState(678);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(682);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 4611845669139841281L) != 0)) {
{
{
setState(679);
typeDeclaration();
}
}
setState(684);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ImportDeclarationContext extends ParserRuleContext {
public TerminalNode Import() { return getToken(ExprParser.Import, 0); }
public List<IdentifierContext> identifier() {
return getRuleContexts(IdentifierContext.class);
}
public IdentifierContext identifier(int i) {
return getRuleContext(IdentifierContext.class,i);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public List<TerminalNode> Dot() { return getTokens(ExprParser.Dot); }
public TerminalNode Dot(int i) {
return getToken(ExprParser.Dot, i);
}
public TerminalNode Multiplication() { return getToken(ExprParser.Multiplication, 0); }
public ImportDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_importDeclaration; }
}
public final ImportDeclarationContext importDeclaration() throws RecognitionException {
ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState());
enterRule(_localctx, 118, RULE_importDeclaration);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(685);
match(Import);
setState(686);
identifier();
setState(691);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,61,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(687);
match(Dot);
setState(688);
identifier();
}
}
}
setState(693);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,61,_ctx);
}
setState(696);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Dot) {
{
setState(694);
match(Dot);
setState(695);
match(Multiplication);
}
}
setState(698);
match(Semicolon);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeDeclarationContext extends ParserRuleContext {
public ClassOrInterfaceDeclarationContext classOrInterfaceDeclaration() {
return getRuleContext(ClassOrInterfaceDeclarationContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public TypeDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeDeclaration; }
}
public final TypeDeclarationContext typeDeclaration() throws RecognitionException {
TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState());
enterRule(_localctx, 120, RULE_typeDeclaration);
try {
setState(702);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Abstract:
case Class:
case Final:
case Interface:
case Native:
case Private:
case Protected:
case Public:
case Static:
case Strictfp:
case Synchronized:
case Transient:
case Volatile:
enterOuterAlt(_localctx, 1);
{
setState(700);
classOrInterfaceDeclaration();
}
break;
case Semicolon:
enterOuterAlt(_localctx, 2);
{
setState(701);
match(Semicolon);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassOrInterfaceDeclarationContext extends ParserRuleContext {
public ModifiersOptContext modifiersOpt() {
return getRuleContext(ModifiersOptContext.class,0);
}
public ClassDeclarationContext classDeclaration() {
return getRuleContext(ClassDeclarationContext.class,0);
}
public InterfaceDeclarationContext interfaceDeclaration() {
return getRuleContext(InterfaceDeclarationContext.class,0);
}
public ClassOrInterfaceDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classOrInterfaceDeclaration; }
}
public final ClassOrInterfaceDeclarationContext classOrInterfaceDeclaration() throws RecognitionException {
ClassOrInterfaceDeclarationContext _localctx = new ClassOrInterfaceDeclarationContext(_ctx, getState());
enterRule(_localctx, 122, RULE_classOrInterfaceDeclaration);
try {
enterOuterAlt(_localctx, 1);
{
setState(704);
modifiersOpt();
setState(707);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Class:
{
setState(705);
classDeclaration();
}
break;
case Interface:
{
setState(706);
interfaceDeclaration();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassDeclarationContext extends ParserRuleContext {
public TerminalNode Class() { return getToken(ExprParser.Class, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public TerminalNode Extends() { return getToken(ExprParser.Extends, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TerminalNode Implements() { return getToken(ExprParser.Implements, 0); }
public TypeListContext typeList() {
return getRuleContext(TypeListContext.class,0);
}
public ClassDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classDeclaration; }
}
public final ClassDeclarationContext classDeclaration() throws RecognitionException {
ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState());
enterRule(_localctx, 124, RULE_classDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(709);
match(Class);
setState(710);
identifier();
setState(713);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Extends) {
{
setState(711);
match(Extends);
setState(712);
type();
}
}
setState(717);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Implements) {
{
setState(715);
match(Implements);
setState(716);
typeList();
}
}
setState(719);
classBody();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceDeclarationContext extends ParserRuleContext {
public TerminalNode Interface() { return getToken(ExprParser.Interface, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public InterfaceBodyContext interfaceBody() {
return getRuleContext(InterfaceBodyContext.class,0);
}
public TerminalNode Extends() { return getToken(ExprParser.Extends, 0); }
public TypeListContext typeList() {
return getRuleContext(TypeListContext.class,0);
}
public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceDeclaration; }
}
public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException {
InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState());
enterRule(_localctx, 126, RULE_interfaceDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(721);
match(Interface);
setState(722);
identifier();
setState(725);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Extends) {
{
setState(723);
match(Extends);
setState(724);
typeList();
}
}
setState(727);
interfaceBody();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeListContext extends ParserRuleContext {
public List<TypeContext> type() {
return getRuleContexts(TypeContext.class);
}
public TypeContext type(int i) {
return getRuleContext(TypeContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public TypeListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeList; }
}
public final TypeListContext typeList() throws RecognitionException {
TypeListContext _localctx = new TypeListContext(_ctx, getState());
enterRule(_localctx, 128, RULE_typeList);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(729);
type();
setState(734);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(730);
match(Comma);
setState(731);
type();
}
}
setState(736);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassBodyContext extends ParserRuleContext {
public TerminalNode CurlyBracketLeft() { return getToken(ExprParser.CurlyBracketLeft, 0); }
public TerminalNode CurlyBracketRight() { return getToken(ExprParser.CurlyBracketRight, 0); }
public List<ClassBodyDeclarationContext> classBodyDeclaration() {
return getRuleContexts(ClassBodyDeclarationContext.class);
}
public ClassBodyDeclarationContext classBodyDeclaration(int i) {
return getRuleContext(ClassBodyDeclarationContext.class,i);
}
public ClassBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classBody; }
}
public final ClassBodyContext classBody() throws RecognitionException {
ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState());
enterRule(_localctx, 130, RULE_classBody);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(737);
match(CurlyBracketLeft);
setState(741);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 2307683441088990376L) != 0) || _la==Semicolon || _la==IDENTIFIER) {
{
{
setState(738);
classBodyDeclaration();
}
}
setState(743);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(744);
match(CurlyBracketRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceBodyContext extends ParserRuleContext {
public TerminalNode CurlyBracketLeft() { return getToken(ExprParser.CurlyBracketLeft, 0); }
public TerminalNode CurlyBracketRight() { return getToken(ExprParser.CurlyBracketRight, 0); }
public List<InterfaceBodyDeclarationContext> interfaceBodyDeclaration() {
return getRuleContexts(InterfaceBodyDeclarationContext.class);
}
public InterfaceBodyDeclarationContext interfaceBodyDeclaration(int i) {
return getRuleContext(InterfaceBodyDeclarationContext.class,i);
}
public InterfaceBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceBody; }
}
public final InterfaceBodyContext interfaceBody() throws RecognitionException {
InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState());
enterRule(_localctx, 132, RULE_interfaceBody);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(746);
match(CurlyBracketLeft);
setState(750);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1840431875296424L) != 0) || _la==Semicolon || _la==IDENTIFIER) {
{
{
setState(747);
interfaceBodyDeclaration();
}
}
setState(752);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(753);
match(CurlyBracketRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassBodyDeclarationContext extends ParserRuleContext {
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode Static() { return getToken(ExprParser.Static, 0); }
public ModifiersOptContext modifiersOpt() {
return getRuleContext(ModifiersOptContext.class,0);
}
public MemberDeclContext memberDecl() {
return getRuleContext(MemberDeclContext.class,0);
}
public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classBodyDeclaration; }
}
public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException {
ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState());
enterRule(_localctx, 134, RULE_classBodyDeclaration);
int _la;
try {
setState(763);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(755);
match(Semicolon);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(757);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Static) {
{
setState(756);
match(Static);
}
}
setState(759);
block();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(760);
modifiersOpt();
setState(761);
memberDecl();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MemberDeclContext extends ParserRuleContext {
public MethodOrFieldDeclContext methodOrFieldDecl() {
return getRuleContext(MethodOrFieldDeclContext.class,0);
}
public TerminalNode Void() { return getToken(ExprParser.Void, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public MethodDeclaratorRestContext methodDeclaratorRest() {
return getRuleContext(MethodDeclaratorRestContext.class,0);
}
public ConstructorDeclaratorRestContext constructorDeclaratorRest() {
return getRuleContext(ConstructorDeclaratorRestContext.class,0);
}
public ClassOrInterfaceDeclarationContext classOrInterfaceDeclaration() {
return getRuleContext(ClassOrInterfaceDeclarationContext.class,0);
}
public MemberDeclContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_memberDecl; }
}
public final MemberDeclContext memberDecl() throws RecognitionException {
MemberDeclContext _localctx = new MemberDeclContext(_ctx, getState());
enterRule(_localctx, 136, RULE_memberDecl);
try {
setState(774);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(765);
methodOrFieldDecl();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(766);
match(Void);
setState(767);
identifier();
setState(768);
methodDeclaratorRest();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(770);
identifier();
setState(771);
constructorDeclaratorRest();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(773);
classOrInterfaceDeclaration();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MethodOrFieldDeclContext extends ParserRuleContext {
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public MethodOrFieldRestContext methodOrFieldRest() {
return getRuleContext(MethodOrFieldRestContext.class,0);
}
public MethodOrFieldDeclContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_methodOrFieldDecl; }
}
public final MethodOrFieldDeclContext methodOrFieldDecl() throws RecognitionException {
MethodOrFieldDeclContext _localctx = new MethodOrFieldDeclContext(_ctx, getState());
enterRule(_localctx, 138, RULE_methodOrFieldDecl);
try {
enterOuterAlt(_localctx, 1);
{
setState(776);
type();
setState(777);
identifier();
setState(778);
methodOrFieldRest();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MethodOrFieldRestContext extends ParserRuleContext {
public VariableDeclaratorRestContext variableDeclaratorRest() {
return getRuleContext(VariableDeclaratorRestContext.class,0);
}
public MethodDeclaratorRestContext methodDeclaratorRest() {
return getRuleContext(MethodDeclaratorRestContext.class,0);
}
public MethodOrFieldRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_methodOrFieldRest; }
}
public final MethodOrFieldRestContext methodOrFieldRest() throws RecognitionException {
MethodOrFieldRestContext _localctx = new MethodOrFieldRestContext(_ctx, getState());
enterRule(_localctx, 140, RULE_methodOrFieldRest);
try {
setState(782);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Abstract:
case Boolean:
case Byte:
case Char:
case Class:
case Double:
case Final:
case Float:
case Int:
case Interface:
case Long:
case Native:
case Private:
case Protected:
case Public:
case Short:
case Static:
case Strictfp:
case Synchronized:
case Transient:
case Void:
case Volatile:
case CurlyBracketLeft:
case CurlyBracketRight:
case SquareBracketLeft:
case Semicolon:
case Assignment:
case IDENTIFIER:
enterOuterAlt(_localctx, 1);
{
setState(780);
variableDeclaratorRest();
}
break;
case ParenthesesLeft:
enterOuterAlt(_localctx, 2);
{
setState(781);
methodDeclaratorRest();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceBodyDeclarationContext extends ParserRuleContext {
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public ModifiersOptContext modifiersOpt() {
return getRuleContext(ModifiersOptContext.class,0);
}
public InterfaceMemberDeclContext interfaceMemberDecl() {
return getRuleContext(InterfaceMemberDeclContext.class,0);
}
public InterfaceBodyDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceBodyDeclaration; }
}
public final InterfaceBodyDeclarationContext interfaceBodyDeclaration() throws RecognitionException {
InterfaceBodyDeclarationContext _localctx = new InterfaceBodyDeclarationContext(_ctx, getState());
enterRule(_localctx, 142, RULE_interfaceBodyDeclaration);
try {
setState(788);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Semicolon:
enterOuterAlt(_localctx, 1);
{
setState(784);
match(Semicolon);
}
break;
case Abstract:
case Boolean:
case Byte:
case Char:
case Class:
case Double:
case Final:
case Float:
case Int:
case Interface:
case Long:
case Native:
case Private:
case Protected:
case Public:
case Short:
case Static:
case Strictfp:
case Synchronized:
case Transient:
case Void:
case Volatile:
case IDENTIFIER:
enterOuterAlt(_localctx, 2);
{
setState(785);
modifiersOpt();
setState(786);
interfaceMemberDecl();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceMemberDeclContext extends ParserRuleContext {
public InterfaceMethodOrFieldDeclContext interfaceMethodOrFieldDecl() {
return getRuleContext(InterfaceMethodOrFieldDeclContext.class,0);
}
public TerminalNode Void() { return getToken(ExprParser.Void, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public VoidInterfaceMethodDeclaratorRestContext voidInterfaceMethodDeclaratorRest() {
return getRuleContext(VoidInterfaceMethodDeclaratorRestContext.class,0);
}
public ClassOrInterfaceDeclarationContext classOrInterfaceDeclaration() {
return getRuleContext(ClassOrInterfaceDeclarationContext.class,0);
}
public InterfaceMemberDeclContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceMemberDecl; }
}
public final InterfaceMemberDeclContext interfaceMemberDecl() throws RecognitionException {
InterfaceMemberDeclContext _localctx = new InterfaceMemberDeclContext(_ctx, getState());
enterRule(_localctx, 144, RULE_interfaceMemberDecl);
try {
setState(796);
_errHandler.sync(this);
switch (_input.LA(1)) {
case Boolean:
case Byte:
case Char:
case Double:
case Float:
case Int:
case Long:
case Short:
case IDENTIFIER:
enterOuterAlt(_localctx, 1);
{
setState(790);
interfaceMethodOrFieldDecl();
}
break;
case Void:
enterOuterAlt(_localctx, 2);
{
setState(791);
match(Void);
setState(792);
identifier();
setState(793);
voidInterfaceMethodDeclaratorRest();
}
break;
case Abstract:
case Class:
case Final:
case Interface:
case Native:
case Private:
case Protected:
case Public:
case Static:
case Strictfp:
case Synchronized:
case Transient:
case Volatile:
enterOuterAlt(_localctx, 3);
{
setState(795);
classOrInterfaceDeclaration();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceMethodOrFieldDeclContext extends ParserRuleContext {
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public InterfaceMethodOrFieldRestContext interfaceMethodOrFieldRest() {
return getRuleContext(InterfaceMethodOrFieldRestContext.class,0);
}
public InterfaceMethodOrFieldDeclContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceMethodOrFieldDecl; }
}
public final InterfaceMethodOrFieldDeclContext interfaceMethodOrFieldDecl() throws RecognitionException {
InterfaceMethodOrFieldDeclContext _localctx = new InterfaceMethodOrFieldDeclContext(_ctx, getState());
enterRule(_localctx, 146, RULE_interfaceMethodOrFieldDecl);
try {
enterOuterAlt(_localctx, 1);
{
setState(798);
type();
setState(799);
identifier();
setState(800);
interfaceMethodOrFieldRest();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceMethodOrFieldRestContext extends ParserRuleContext {
public ConstantDeclaratorRestContext constantDeclaratorRest() {
return getRuleContext(ConstantDeclaratorRestContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public InterfaceMethodDeclaratorRestContext interfaceMethodDeclaratorRest() {
return getRuleContext(InterfaceMethodDeclaratorRestContext.class,0);
}
public InterfaceMethodOrFieldRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceMethodOrFieldRest; }
}
public final InterfaceMethodOrFieldRestContext interfaceMethodOrFieldRest() throws RecognitionException {
InterfaceMethodOrFieldRestContext _localctx = new InterfaceMethodOrFieldRestContext(_ctx, getState());
enterRule(_localctx, 148, RULE_interfaceMethodOrFieldRest);
try {
setState(806);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SquareBracketLeft:
case Assignment:
enterOuterAlt(_localctx, 1);
{
setState(802);
constantDeclaratorRest();
setState(803);
match(Semicolon);
}
break;
case ParenthesesLeft:
enterOuterAlt(_localctx, 2);
{
setState(805);
interfaceMethodDeclaratorRest();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MethodDeclaratorRestContext extends ParserRuleContext {
public FormalParametersContext formalParameters() {
return getRuleContext(FormalParametersContext.class,0);
}
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public MethodBodyContext methodBody() {
return getRuleContext(MethodBodyContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public TerminalNode Throws() { return getToken(ExprParser.Throws, 0); }
public QualifiedIdentifierListContext qualifiedIdentifierList() {
return getRuleContext(QualifiedIdentifierListContext.class,0);
}
public MethodDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_methodDeclaratorRest; }
}
public final MethodDeclaratorRestContext methodDeclaratorRest() throws RecognitionException {
MethodDeclaratorRestContext _localctx = new MethodDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 150, RULE_methodDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(808);
formalParameters();
setState(809);
bracketsOpt();
setState(812);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Throws) {
{
setState(810);
match(Throws);
setState(811);
qualifiedIdentifierList();
}
}
setState(816);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CurlyBracketLeft:
{
setState(814);
methodBody();
}
break;
case Semicolon:
{
setState(815);
match(Semicolon);
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VoidMethodDeclaratorRestContext extends ParserRuleContext {
public FormalParametersContext formalParameters() {
return getRuleContext(FormalParametersContext.class,0);
}
public MethodBodyContext methodBody() {
return getRuleContext(MethodBodyContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public TerminalNode Throws() { return getToken(ExprParser.Throws, 0); }
public QualifiedIdentifierListContext qualifiedIdentifierList() {
return getRuleContext(QualifiedIdentifierListContext.class,0);
}
public VoidMethodDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_voidMethodDeclaratorRest; }
}
public final VoidMethodDeclaratorRestContext voidMethodDeclaratorRest() throws RecognitionException {
VoidMethodDeclaratorRestContext _localctx = new VoidMethodDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 152, RULE_voidMethodDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(818);
formalParameters();
setState(821);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Throws) {
{
setState(819);
match(Throws);
setState(820);
qualifiedIdentifierList();
}
}
setState(825);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CurlyBracketLeft:
{
setState(823);
methodBody();
}
break;
case Semicolon:
{
setState(824);
match(Semicolon);
}
break;
default:
throw new NoViableAltException(this);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InterfaceMethodDeclaratorRestContext extends ParserRuleContext {
public FormalParametersContext formalParameters() {
return getRuleContext(FormalParametersContext.class,0);
}
public BracketsOptContext bracketsOpt() {
return getRuleContext(BracketsOptContext.class,0);
}
public TerminalNode Semicolon() { return getToken(ExprParser.Semicolon, 0); }
public TerminalNode Throws() { return getToken(ExprParser.Throws, 0); }
public QualifiedIdentifierListContext qualifiedIdentifierList() {
return getRuleContext(QualifiedIdentifierListContext.class,0);
}
public InterfaceMethodDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_interfaceMethodDeclaratorRest; }
}
public final InterfaceMethodDeclaratorRestContext interfaceMethodDeclaratorRest() throws RecognitionException {
InterfaceMethodDeclaratorRestContext _localctx = new InterfaceMethodDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 154, RULE_interfaceMethodDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(827);
formalParameters();
setState(828);
bracketsOpt();
setState(831);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Throws) {
{
setState(829);
match(Throws);
setState(830);
qualifiedIdentifierList();
}
}
setState(833);
match(Semicolon);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VoidInterfaceMethodDeclaratorRestContext extends ParserRuleContext {
public FormalParametersContext formalParameters() {
return getRuleContext(FormalParametersContext.class,0);
}
public TerminalNode Throws() { return getToken(ExprParser.Throws, 0); }
public QualifiedIdentifierListContext qualifiedIdentifierList() {
return getRuleContext(QualifiedIdentifierListContext.class,0);
}
public VoidInterfaceMethodDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_voidInterfaceMethodDeclaratorRest; }
}
public final VoidInterfaceMethodDeclaratorRestContext voidInterfaceMethodDeclaratorRest() throws RecognitionException {
VoidInterfaceMethodDeclaratorRestContext _localctx = new VoidInterfaceMethodDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 156, RULE_voidInterfaceMethodDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(835);
formalParameters();
setState(838);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Throws) {
{
setState(836);
match(Throws);
setState(837);
qualifiedIdentifierList();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstructorDeclaratorRestContext extends ParserRuleContext {
public FormalParametersContext formalParameters() {
return getRuleContext(FormalParametersContext.class,0);
}
public MethodBodyContext methodBody() {
return getRuleContext(MethodBodyContext.class,0);
}
public TerminalNode Throws() { return getToken(ExprParser.Throws, 0); }
public QualifiedIdentifierListContext qualifiedIdentifierList() {
return getRuleContext(QualifiedIdentifierListContext.class,0);
}
public ConstructorDeclaratorRestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constructorDeclaratorRest; }
}
public final ConstructorDeclaratorRestContext constructorDeclaratorRest() throws RecognitionException {
ConstructorDeclaratorRestContext _localctx = new ConstructorDeclaratorRestContext(_ctx, getState());
enterRule(_localctx, 158, RULE_constructorDeclaratorRest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(840);
formalParameters();
setState(843);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Throws) {
{
setState(841);
match(Throws);
setState(842);
qualifiedIdentifierList();
}
}
setState(845);
methodBody();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class QualifiedIdentifierListContext extends ParserRuleContext {
public List<QualifiedIdentifierContext> qualifiedIdentifier() {
return getRuleContexts(QualifiedIdentifierContext.class);
}
public QualifiedIdentifierContext qualifiedIdentifier(int i) {
return getRuleContext(QualifiedIdentifierContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public QualifiedIdentifierListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_qualifiedIdentifierList; }
}
public final QualifiedIdentifierListContext qualifiedIdentifierList() throws RecognitionException {
QualifiedIdentifierListContext _localctx = new QualifiedIdentifierListContext(_ctx, getState());
enterRule(_localctx, 160, RULE_qualifiedIdentifierList);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(847);
qualifiedIdentifier();
setState(852);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(848);
match(Comma);
setState(849);
qualifiedIdentifier();
}
}
setState(854);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FormalParametersContext extends ParserRuleContext {
public TerminalNode ParenthesesLeft() { return getToken(ExprParser.ParenthesesLeft, 0); }
public TerminalNode ParenthesesRight() { return getToken(ExprParser.ParenthesesRight, 0); }
public List<FormalParameterContext> formalParameter() {
return getRuleContexts(FormalParameterContext.class);
}
public FormalParameterContext formalParameter(int i) {
return getRuleContext(FormalParameterContext.class,i);
}
public List<TerminalNode> Comma() { return getTokens(ExprParser.Comma); }
public TerminalNode Comma(int i) {
return getToken(ExprParser.Comma, i);
}
public FormalParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_formalParameters; }
}
public final FormalParametersContext formalParameters() throws RecognitionException {
FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState());
enterRule(_localctx, 162, RULE_formalParameters);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(855);
match(ParenthesesLeft);
setState(864);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 276222772384L) != 0) || _la==IDENTIFIER) {
{
setState(856);
formalParameter();
setState(861);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==Comma) {
{
{
setState(857);
match(Comma);
setState(858);
formalParameter();
}
}
setState(863);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(866);
match(ParenthesesRight);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FormalParameterContext extends ParserRuleContext {
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public VariableDeclaratorIdContext variableDeclaratorId() {
return getRuleContext(VariableDeclaratorIdContext.class,0);
}
public TerminalNode Final() { return getToken(ExprParser.Final, 0); }
public FormalParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_formalParameter; }
}
public final FormalParameterContext formalParameter() throws RecognitionException {
FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState());
enterRule(_localctx, 164, RULE_formalParameter);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(869);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==Final) {
{
setState(868);
match(Final);
}
}
setState(871);
type();
setState(872);
variableDeclaratorId();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MethodBodyContext extends ParserRuleContext {
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public MethodBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_methodBody; }
}
public final MethodBodyContext methodBody() throws RecognitionException {
MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState());
enterRule(_localctx, 166, RULE_methodBody);
try {
enterOuterAlt(_localctx, 1);
{
setState(874);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static final String _serializedATN =
"\u0004\u0001h\u036d\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+
"\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002"+
"\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007\u0002"+
"\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b\u0002"+
"\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007\u000f"+
"\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007\u0012"+
"\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007\u0015"+
"\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007\u0018"+
"\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007\u001b"+
"\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007\u001e"+
"\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007\"\u0002"+
"#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007\'\u0002"+
"(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007,\u0002"+
"-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u00071\u0002"+
"2\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u00076\u0002"+
"7\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007;\u0002"+
"<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007@\u0002"+
"A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007E\u0002"+
"F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007J\u0002"+
"K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007O\u0002"+
"P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0001\u0000\u0001\u0000"+
"\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002"+
"\u0005\u0002\u00b1\b\u0002\n\u0002\f\u0002\u00b4\t\u0002\u0001\u0003\u0001"+
"\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0003"+
"\u0004\u00bd\b\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+
"\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u00c6\b\u0005\u0001\u0006\u0001"+
"\u0006\u0001\u0006\u0005\u0006\u00cb\b\u0006\n\u0006\f\u0006\u00ce\t\u0006"+
"\u0001\u0007\u0001\u0007\u0001\u0007\u0005\u0007\u00d3\b\u0007\n\u0007"+
"\f\u0007\u00d6\t\u0007\u0001\b\u0001\b\u0001\b\u0005\b\u00db\b\b\n\b\f"+
"\b\u00de\t\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0005\t\u00e5\b\t"+
"\n\t\f\t\u00e8\t\t\u0001\n\u0001\n\u0001\n\u0005\n\u00ed\b\n\n\n\f\n\u00f0"+
"\t\n\u0001\u000b\u0001\u000b\u0001\u000b\u0005\u000b\u00f5\b\u000b\n\u000b"+
"\f\u000b\u00f8\t\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f"+
"\u0001\f\u0003\f\u0101\b\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+
"\r\u0001\r\u0001\r\u0001\r\u0001\r\u0005\r\u010d\b\r\n\r\f\r\u0110\t\r"+
"\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
"\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
"\u0003\u000e\u011e\b\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
"\u0001\u000e\u0001\u000e\u0001\u000e\u0005\u000e\u0127\b\u000e\n\u000e"+
"\f\u000e\u012a\t\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
"\u0001\u000e\u0001\u000e\u0001\u000e\u0003\u000e\u0133\b\u000e\u0001\u000f"+
"\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0005\u0010\u013a\b\u0010"+
"\n\u0010\f\u0010\u013d\t\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0003"+
"\u0010\u0142\b\u0010\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001"+
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+
"\u0013\u0003\u0013\u015b\b\u0013\u0003\u0013\u015d\b\u0013\u0001\u0014"+
"\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0016\u0003\u0016\u0164\b\u0016"+
"\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0005\u0017\u016a\b\u0017"+
"\n\u0017\f\u0017\u016d\t\u0017\u0003\u0017\u016f\b\u0017\u0001\u0017\u0001"+
"\u0017\u0001\u0018\u0001\u0018\u0005\u0018\u0175\b\u0018\n\u0018\f\u0018"+
"\u0178\t\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0003\u0019\u017d\b"+
"\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001"+
"\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
"\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0005\u001b\u018e\b\u001b\n"+
"\u001b\f\u001b\u0191\t\u001b\u0003\u001b\u0193\b\u001b\u0001\u001c\u0001"+
"\u001c\u0003\u001c\u0197\b\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001"+
"\u001d\u0005\u001d\u019d\b\u001d\n\u001d\f\u001d\u01a0\t\u001d\u0001\u001d"+
"\u0003\u001d\u01a3\b\u001d\u0003\u001d\u01a5\b\u001d\u0001\u001d\u0001"+
"\u001d\u0001\u001e\u0001\u001e\u0003\u001e\u01ab\b\u001e\u0001\u001f\u0001"+
"\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001!\u0005"+
"!\u01b6\b!\n!\f!\u01b9\t!\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0003"+
"\"\u01c0\b\"\u0001\"\u0003\"\u01c3\b\"\u0001#\u0003#\u01c6\b#\u0001#\u0001"+
"#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0003$\u01d0\b$\u0001%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0003%\u01dc"+
"\b%\u0001%\u0001%\u0003%\u01e0\b%\u0001%\u0001%\u0003%\u01e4\b%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0001%\u0003%\u0208\b%\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0003%\u0211\b%\u0001%\u0001%\u0001%\u0003%\u0216\b%\u0001"+
"%\u0001%\u0001%\u0001%\u0001%\u0003%\u021d\b%\u0001&\u0001&\u0001&\u0001"+
"&\u0001&\u0001&\u0001&\u0003&\u0226\b&\u0001\'\u0001\'\u0005\'\u022a\b"+
"\'\n\'\f\'\u022d\t\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001)"+
"\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0003)\u023e"+
"\b)\u0001)\u0001)\u0003)\u0242\b)\u0001*\u0005*\u0245\b*\n*\f*\u0248\t"+
"*\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0003"+
",\u0253\b,\u0001-\u0001-\u0005-\u0257\b-\n-\f-\u025a\t-\u0001.\u0001."+
"\u0001.\u0001.\u0003.\u0260\b.\u0001.\u0001.\u0001.\u0003.\u0265\b.\u0001"+
"/\u0001/\u0001/\u00010\u00050\u026b\b0\n0\f0\u026e\t0\u00011\u00011\u0001"+
"2\u00012\u00012\u00052\u0275\b2\n2\f2\u0278\t2\u00013\u00013\u00013\u0005"+
"3\u027d\b3\n3\f3\u0280\t3\u00014\u00014\u00014\u00054\u0285\b4\n4\f4\u0288"+
"\t4\u00015\u00015\u00015\u00016\u00016\u00016\u00017\u00017\u00017\u0003"+
"7\u0293\b7\u00018\u00018\u00018\u00018\u00019\u00019\u00019\u0001:\u0001"+
":\u0001:\u0001:\u0003:\u02a0\b:\u0001:\u0005:\u02a3\b:\n:\f:\u02a6\t:"+
"\u0001:\u0005:\u02a9\b:\n:\f:\u02ac\t:\u0001;\u0001;\u0001;\u0001;\u0005"+
";\u02b2\b;\n;\f;\u02b5\t;\u0001;\u0001;\u0003;\u02b9\b;\u0001;\u0001;"+
"\u0001<\u0001<\u0003<\u02bf\b<\u0001=\u0001=\u0001=\u0003=\u02c4\b=\u0001"+
">\u0001>\u0001>\u0001>\u0003>\u02ca\b>\u0001>\u0001>\u0003>\u02ce\b>\u0001"+
">\u0001>\u0001?\u0001?\u0001?\u0001?\u0003?\u02d6\b?\u0001?\u0001?\u0001"+
"@\u0001@\u0001@\u0005@\u02dd\b@\n@\f@\u02e0\t@\u0001A\u0001A\u0005A\u02e4"+
"\bA\nA\fA\u02e7\tA\u0001A\u0001A\u0001B\u0001B\u0005B\u02ed\bB\nB\fB\u02f0"+
"\tB\u0001B\u0001B\u0001C\u0001C\u0003C\u02f6\bC\u0001C\u0001C\u0001C\u0001"+
"C\u0003C\u02fc\bC\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001"+
"D\u0001D\u0003D\u0307\bD\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0003"+
"F\u030f\bF\u0001G\u0001G\u0001G\u0001G\u0003G\u0315\bG\u0001H\u0001H\u0001"+
"H\u0001H\u0001H\u0001H\u0003H\u031d\bH\u0001I\u0001I\u0001I\u0001I\u0001"+
"J\u0001J\u0001J\u0001J\u0003J\u0327\bJ\u0001K\u0001K\u0001K\u0001K\u0003"+
"K\u032d\bK\u0001K\u0001K\u0003K\u0331\bK\u0001L\u0001L\u0001L\u0003L\u0336"+
"\bL\u0001L\u0001L\u0003L\u033a\bL\u0001M\u0001M\u0001M\u0001M\u0003M\u0340"+
"\bM\u0001M\u0001M\u0001N\u0001N\u0001N\u0003N\u0347\bN\u0001O\u0001O\u0001"+
"O\u0003O\u034c\bO\u0001O\u0001O\u0001P\u0001P\u0001P\u0005P\u0353\bP\n"+
"P\fP\u0356\tP\u0001Q\u0001Q\u0001Q\u0001Q\u0005Q\u035c\bQ\nQ\fQ\u035f"+
"\tQ\u0003Q\u0361\bQ\u0001Q\u0001Q\u0001R\u0003R\u0366\bR\u0001R\u0001"+
"R\u0001R\u0001S\u0001S\u0001S\u0000\u0000T\u0000\u0002\u0004\u0006\b\n"+
"\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.0246"+
"8:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a"+
"\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2"+
"\u00a4\u00a6\u0000\n\u0001\u00005:\u0001\u0000DE\u0002\u0000FG[\\\u0001"+
"\u0000`a\u0002\u0000bcgg\u0004\u0000JKZZ]]`a\u0002\u0000CCOY\u0001\u0000"+
"JK\b\u0000\u0005\u0005\u0007\u0007\n\n\u0010\u0010\u0015\u0015\u001c\u001c"+
"\u001e\u001e&&\b\u0000\u0003\u0003\u0013\u0013\u001f\u001f\"$\'(++//2"+
"2\u0396\u0000\u00a8\u0001\u0000\u0000\u0000\u0002\u00ab\u0001\u0000\u0000"+
"\u0000\u0004\u00ad\u0001\u0000\u0000\u0000\u0006\u00b5\u0001\u0000\u0000"+
"\u0000\b\u00bc\u0001\u0000\u0000\u0000\n\u00c5\u0001\u0000\u0000\u0000"+
"\f\u00c7\u0001\u0000\u0000\u0000\u000e\u00cf\u0001\u0000\u0000\u0000\u0010"+
"\u00d7\u0001\u0000\u0000\u0000\u0012\u00df\u0001\u0000\u0000\u0000\u0014"+
"\u00e9\u0001\u0000\u0000\u0000\u0016\u00f1\u0001\u0000\u0000\u0000\u0018"+
"\u0100\u0001\u0000\u0000\u0000\u001a\u0102\u0001\u0000\u0000\u0000\u001c"+
"\u0132\u0001\u0000\u0000\u0000\u001e\u0134\u0001\u0000\u0000\u0000 \u0141"+
"\u0001\u0000\u0000\u0000\"\u0143\u0001\u0000\u0000\u0000$\u0145\u0001"+
"\u0000\u0000\u0000&\u015c\u0001\u0000\u0000\u0000(\u015e\u0001\u0000\u0000"+
"\u0000*\u0160\u0001\u0000\u0000\u0000,\u0163\u0001\u0000\u0000\u0000."+
"\u0165\u0001\u0000\u0000\u00000\u0176\u0001\u0000\u0000\u00002\u0179\u0001"+
"\u0000\u0000\u00004\u017e\u0001\u0000\u0000\u00006\u0192\u0001\u0000\u0000"+
"\u00008\u0194\u0001\u0000\u0000\u0000:\u0198\u0001\u0000\u0000\u0000<"+
"\u01aa\u0001\u0000\u0000\u0000>\u01ac\u0001\u0000\u0000\u0000@\u01b0\u0001"+
"\u0000\u0000\u0000B\u01b7\u0001\u0000\u0000\u0000D\u01c2\u0001\u0000\u0000"+
"\u0000F\u01c5\u0001\u0000\u0000\u0000H\u01cf\u0001\u0000\u0000\u0000J"+
"\u021c\u0001\u0000\u0000\u0000L\u0225\u0001\u0000\u0000\u0000N\u0227\u0001"+
"\u0000\u0000\u0000P\u022e\u0001\u0000\u0000\u0000R\u0241\u0001\u0000\u0000"+
"\u0000T\u0246\u0001\u0000\u0000\u0000V\u0249\u0001\u0000\u0000\u0000X"+
"\u0252\u0001\u0000\u0000\u0000Z\u0258\u0001\u0000\u0000\u0000\\\u0264"+
"\u0001\u0000\u0000\u0000^\u0266\u0001\u0000\u0000\u0000`\u026c\u0001\u0000"+
"\u0000\u0000b\u026f\u0001\u0000\u0000\u0000d\u0271\u0001\u0000\u0000\u0000"+
"f\u0279\u0001\u0000\u0000\u0000h\u0281\u0001\u0000\u0000\u0000j\u0289"+
"\u0001\u0000\u0000\u0000l\u028c\u0001\u0000\u0000\u0000n\u028f\u0001\u0000"+
"\u0000\u0000p\u0294\u0001\u0000\u0000\u0000r\u0298\u0001\u0000\u0000\u0000"+
"t\u029f\u0001\u0000\u0000\u0000v\u02ad\u0001\u0000\u0000\u0000x\u02be"+
"\u0001\u0000\u0000\u0000z\u02c0\u0001\u0000\u0000\u0000|\u02c5\u0001\u0000"+
"\u0000\u0000~\u02d1\u0001\u0000\u0000\u0000\u0080\u02d9\u0001\u0000\u0000"+
"\u0000\u0082\u02e1\u0001\u0000\u0000\u0000\u0084\u02ea\u0001\u0000\u0000"+
"\u0000\u0086\u02fb\u0001\u0000\u0000\u0000\u0088\u0306\u0001\u0000\u0000"+
"\u0000\u008a\u0308\u0001\u0000\u0000\u0000\u008c\u030e\u0001\u0000\u0000"+
"\u0000\u008e\u0314\u0001\u0000\u0000\u0000\u0090\u031c\u0001\u0000\u0000"+
"\u0000\u0092\u031e\u0001\u0000\u0000\u0000\u0094\u0326\u0001\u0000\u0000"+
"\u0000\u0096\u0328\u0001\u0000\u0000\u0000\u0098\u0332\u0001\u0000\u0000"+
"\u0000\u009a\u033b\u0001\u0000\u0000\u0000\u009c\u0343\u0001\u0000\u0000"+
"\u0000\u009e\u0348\u0001\u0000\u0000\u0000\u00a0\u034f\u0001\u0000\u0000"+
"\u0000\u00a2\u0357\u0001\u0000\u0000\u0000\u00a4\u0365\u0001\u0000\u0000"+
"\u0000\u00a6\u036a\u0001\u0000\u0000\u0000\u00a8\u00a9\u0003t:\u0000\u00a9"+
"\u00aa\u0005\u0000\u0000\u0001\u00aa\u0001\u0001\u0000\u0000\u0000\u00ab"+
"\u00ac\u0005h\u0000\u0000\u00ac\u0003\u0001\u0000\u0000\u0000\u00ad\u00b2"+
"\u0003\u0002\u0001\u0000\u00ae\u00af\u00054\u0000\u0000\u00af\u00b1\u0003"+
"\u0002\u0001\u0000\u00b0\u00ae\u0001\u0000\u0000\u0000\u00b1\u00b4\u0001"+
"\u0000\u0000\u0000\u00b2\u00b0\u0001\u0000\u0000\u0000\u00b2\u00b3\u0001"+
"\u0000\u0000\u0000\u00b3\u0005\u0001\u0000\u0000\u0000\u00b4\u00b2\u0001"+
"\u0000\u0000\u0000\u00b5\u00b6\u0007\u0000\u0000\u0000\u00b6\u0007\u0001"+
"\u0000\u0000\u0000\u00b7\u00b8\u0003\u0018\f\u0000\u00b8\u00b9\u0003\u001e"+
"\u000f\u0000\u00b9\u00ba\u0003\b\u0004\u0000\u00ba\u00bd\u0001\u0000\u0000"+
"\u0000\u00bb\u00bd\u0003\n\u0005\u0000\u00bc\u00b7\u0001\u0000\u0000\u0000"+
"\u00bc\u00bb\u0001\u0000\u0000\u0000\u00bd\t\u0001\u0000\u0000\u0000\u00be"+
"\u00bf\u0003\f\u0006\u0000\u00bf\u00c0\u0005^\u0000\u0000\u00c0\u00c1"+
"\u0003\n\u0005\u0000\u00c1\u00c2\u0005_\u0000\u0000\u00c2\u00c3\u0003"+
"\n\u0005\u0000\u00c3\u00c6\u0001\u0000\u0000\u0000\u00c4\u00c6\u0003\f"+
"\u0006\u0000\u00c5\u00be\u0001\u0000\u0000\u0000\u00c5\u00c4\u0001\u0000"+
"\u0000\u0000\u00c6\u000b\u0001\u0000\u0000\u0000\u00c7\u00cc\u0003\u000e"+
"\u0007\u0000\u00c8\u00c9\u0005I\u0000\u0000\u00c9\u00cb\u0003\u000e\u0007"+
"\u0000\u00ca\u00c8\u0001\u0000\u0000\u0000\u00cb\u00ce\u0001\u0000\u0000"+
"\u0000\u00cc\u00ca\u0001\u0000\u0000\u0000\u00cc\u00cd\u0001\u0000\u0000"+
"\u0000\u00cd\r\u0001\u0000\u0000\u0000\u00ce\u00cc\u0001\u0000\u0000\u0000"+
"\u00cf\u00d4\u0003\u0010\b\u0000\u00d0\u00d1\u0005H\u0000\u0000\u00d1"+
"\u00d3\u0003\u0010\b\u0000\u00d2\u00d0\u0001\u0000\u0000\u0000\u00d3\u00d6"+
"\u0001\u0000\u0000\u0000\u00d4\u00d2\u0001\u0000\u0000\u0000\u00d4\u00d5"+
"\u0001\u0000\u0000\u0000\u00d5\u000f\u0001\u0000\u0000\u0000\u00d6\u00d4"+
"\u0001\u0000\u0000\u0000\u00d7\u00dc\u0003\u0012\t\u0000\u00d8\u00d9\u0007"+
"\u0001\u0000\u0000\u00d9\u00db\u0003\u0012\t\u0000\u00da\u00d8\u0001\u0000"+
"\u0000\u0000\u00db\u00de\u0001\u0000\u0000\u0000\u00dc\u00da\u0001\u0000"+
"\u0000\u0000\u00dc\u00dd\u0001\u0000\u0000\u0000\u00dd\u0011\u0001\u0000"+
"\u0000\u0000\u00de\u00dc\u0001\u0000\u0000\u0000\u00df\u00e6\u0003\u0014"+
"\n\u0000\u00e0\u00e1\u0007\u0002\u0000\u0000\u00e1\u00e5\u0003\u0014\n"+
"\u0000\u00e2\u00e3\u0005\u001b\u0000\u0000\u00e3\u00e5\u0003 \u0010\u0000"+
"\u00e4\u00e0\u0001\u0000\u0000\u0000\u00e4\u00e2\u0001\u0000\u0000\u0000"+
"\u00e5\u00e8\u0001\u0000\u0000\u0000\u00e6\u00e4\u0001\u0000\u0000\u0000"+
"\u00e6\u00e7\u0001\u0000\u0000\u0000\u00e7\u0013\u0001\u0000\u0000\u0000"+
"\u00e8\u00e6\u0001\u0000\u0000\u0000\u00e9\u00ee\u0003\u0016\u000b\u0000"+
"\u00ea\u00eb\u0007\u0003\u0000\u0000\u00eb\u00ed\u0003\u0016\u000b\u0000"+
"\u00ec\u00ea\u0001\u0000\u0000\u0000\u00ed\u00f0\u0001\u0000\u0000\u0000"+
"\u00ee\u00ec\u0001\u0000\u0000\u0000\u00ee\u00ef\u0001\u0000\u0000\u0000"+
"\u00ef\u0015\u0001\u0000\u0000\u0000\u00f0\u00ee\u0001\u0000\u0000\u0000"+
"\u00f1\u00f6\u0003\u0018\f\u0000\u00f2\u00f3\u0007\u0004\u0000\u0000\u00f3"+
"\u00f5\u0003\u0018\f\u0000\u00f4\u00f2\u0001\u0000\u0000\u0000\u00f5\u00f8"+
"\u0001\u0000\u0000\u0000\u00f6\u00f4\u0001\u0000\u0000\u0000\u00f6\u00f7"+
"\u0001\u0000\u0000\u0000\u00f7\u0017\u0001\u0000\u0000\u0000\u00f8\u00f6"+
"\u0001\u0000\u0000\u0000\u00f9\u0101\u0003\u001a\r\u0000\u00fa\u00fb\u0007"+
"\u0005\u0000\u0000\u00fb\u0101\u0003\u0018\f\u0000\u00fc\u00fd\u0003>"+
"\u001f\u0000\u00fd\u00fe\u0003 \u0010\u0000\u00fe\u00ff\u0003\u0018\f"+
"\u0000\u00ff\u0101\u0001\u0000\u0000\u0000\u0100\u00f9\u0001\u0000\u0000"+
"\u0000\u0100\u00fa\u0001\u0000\u0000\u0000\u0100\u00fc\u0001\u0000\u0000"+
"\u0000\u0101\u0019\u0001\u0000\u0000\u0000\u0102\u010e\u0003\u001c\u000e"+
"\u0000\u0103\u010d\u0005J\u0000\u0000\u0104\u010d\u0005K\u0000\u0000\u0105"+
"\u0106\u00054\u0000\u0000\u0106\u010d\u0005h\u0000\u0000\u0107\u0108\u0005"+
"?\u0000\u0000\u0108\u0109\u0003\b\u0004\u0000\u0109\u010a\u0005@\u0000"+
"\u0000\u010a\u010d\u0001\u0000\u0000\u0000\u010b\u010d\u0003.\u0017\u0000"+
"\u010c\u0103\u0001\u0000\u0000\u0000\u010c\u0104\u0001\u0000\u0000\u0000"+
"\u010c\u0105\u0001\u0000\u0000\u0000\u010c\u0107\u0001\u0000\u0000\u0000"+
"\u010c\u010b\u0001\u0000\u0000\u0000\u010d\u0110\u0001\u0000\u0000\u0000"+
"\u010e\u010c\u0001\u0000\u0000\u0000\u010e\u010f\u0001\u0000\u0000\u0000"+
"\u010f\u001b\u0001\u0000\u0000\u0000\u0110\u010e\u0001\u0000\u0000\u0000"+
"\u0111\u0133\u0003>\u001f\u0000\u0112\u0133\u00055\u0000\u0000\u0113\u0133"+
"\u00056\u0000\u0000\u0114\u0133\u00058\u0000\u0000\u0115\u0133\u00057"+
"\u0000\u0000\u0116\u0133\u00059\u0000\u0000\u0117\u0133\u0005:\u0000\u0000"+
"\u0118\u0133\u0005h\u0000\u0000\u0119\u0133\u0005,\u0000\u0000\u011a\u011d"+
"\u0005)\u0000\u0000\u011b\u011c\u00054\u0000\u0000\u011c\u011e\u0005h"+
"\u0000\u0000\u011d\u011b\u0001\u0000\u0000\u0000\u011d\u011e\u0001\u0000"+
"\u0000\u0000\u011e\u0133\u0001\u0000\u0000\u0000\u011f\u0120\u0005 \u0000"+
"\u0000\u0120\u0121\u0003 \u0010\u0000\u0121\u0122\u0003.\u0017\u0000\u0122"+
"\u0133\u0001\u0000\u0000\u0000\u0123\u0128\u0003*\u0015\u0000\u0124\u0125"+
"\u0005?\u0000\u0000\u0125\u0127\u0005@\u0000\u0000\u0126\u0124\u0001\u0000"+
"\u0000\u0000\u0127\u012a\u0001\u0000\u0000\u0000\u0128\u0126\u0001\u0000"+
"\u0000\u0000\u0128\u0129\u0001\u0000\u0000\u0000\u0129\u012b\u0001\u0000"+
"\u0000\u0000\u012a\u0128\u0001\u0000\u0000\u0000\u012b\u012c\u00054\u0000"+
"\u0000\u012c\u012d\u0005\u000b\u0000\u0000\u012d\u0133\u0001\u0000\u0000"+
"\u0000\u012e\u012f\u0003 \u0010\u0000\u012f\u0130\u00054\u0000\u0000\u0130"+
"\u0131\u0005\u000b\u0000\u0000\u0131\u0133\u0001\u0000\u0000\u0000\u0132"+
"\u0111\u0001\u0000\u0000\u0000\u0132\u0112\u0001\u0000\u0000\u0000\u0132"+
"\u0113\u0001\u0000\u0000\u0000\u0132\u0114\u0001\u0000\u0000\u0000\u0132"+
"\u0115\u0001\u0000\u0000\u0000\u0132\u0116\u0001\u0000\u0000\u0000\u0132"+
"\u0117\u0001\u0000\u0000\u0000\u0132\u0118\u0001\u0000\u0000\u0000\u0132"+
"\u0119\u0001\u0000\u0000\u0000\u0132\u011a\u0001\u0000\u0000\u0000\u0132"+
"\u011f\u0001\u0000\u0000\u0000\u0132\u0123\u0001\u0000\u0000\u0000\u0132"+
"\u012e\u0001\u0000\u0000\u0000\u0133\u001d\u0001\u0000\u0000\u0000\u0134"+
"\u0135\u0007\u0006\u0000\u0000\u0135\u001f\u0001\u0000\u0000\u0000\u0136"+
"\u013b\u0003\u0002\u0001\u0000\u0137\u0138\u00054\u0000\u0000\u0138\u013a"+
"\u0003\u0002\u0001\u0000\u0139\u0137\u0001\u0000\u0000\u0000\u013a\u013d"+
"\u0001\u0000\u0000\u0000\u013b\u0139\u0001\u0000\u0000\u0000\u013b\u013c"+
"\u0001\u0000\u0000\u0000\u013c\u013e\u0001\u0000\u0000\u0000\u013d\u013b"+
"\u0001\u0000\u0000\u0000\u013e\u013f\u00030\u0018\u0000\u013f\u0142\u0001"+
"\u0000\u0000\u0000\u0140\u0142\u0003*\u0015\u0000\u0141\u0136\u0001\u0000"+
"\u0000\u0000\u0141\u0140\u0001\u0000\u0000\u0000\u0142!\u0001\u0000\u0000"+
"\u0000\u0143\u0144\u0003\b\u0004\u0000\u0144#\u0001\u0000\u0000\u0000"+
"\u0145\u0146\u0003\b\u0004\u0000\u0146%\u0001\u0000\u0000\u0000\u0147"+
"\u0148\u0005?\u0000\u0000\u0148\u0149\u0005@\u0000\u0000\u0149\u014a\u0003"+
"0\u0018\u0000\u014a\u014b\u00054\u0000\u0000\u014b\u014c\u0005\u000b\u0000"+
"\u0000\u014c\u015d\u0001\u0000\u0000\u0000\u014d\u014e\u0005?\u0000\u0000"+
"\u014e\u014f\u0003\b\u0004\u0000\u014f\u0150\u0005@\u0000\u0000\u0150"+
"\u015d\u0001\u0000\u0000\u0000\u0151\u015d\u0003.\u0017\u0000\u0152\u015a"+
"\u00054\u0000\u0000\u0153\u015b\u0005\u000b\u0000\u0000\u0154\u015b\u0005"+
",\u0000\u0000\u0155\u0156\u0005)\u0000\u0000\u0156\u0157\u0003.\u0017"+
"\u0000\u0157\u0158\u0005 \u0000\u0000\u0158\u0159\u00034\u001a\u0000\u0159"+
"\u015b\u0001\u0000\u0000\u0000\u015a\u0153\u0001\u0000\u0000\u0000\u015a"+
"\u0154\u0001\u0000\u0000\u0000\u015a\u0155\u0001\u0000\u0000\u0000\u015b"+
"\u015d\u0001\u0000\u0000\u0000\u015c\u0147\u0001\u0000\u0000\u0000\u015c"+
"\u014d\u0001\u0000\u0000\u0000\u015c\u0151\u0001\u0000\u0000\u0000\u015c"+
"\u0152\u0001\u0000\u0000\u0000\u015d\'\u0001\u0000\u0000\u0000\u015e\u015f"+
"\u0007\u0007\u0000\u0000\u015f)\u0001\u0000\u0000\u0000\u0160\u0161\u0007"+
"\b\u0000\u0000\u0161+\u0001\u0000\u0000\u0000\u0162\u0164\u0003.\u0017"+
"\u0000\u0163\u0162\u0001\u0000\u0000\u0000\u0163\u0164\u0001\u0000\u0000"+
"\u0000\u0164-\u0001\u0000\u0000\u0000\u0165\u016e\u0005;\u0000\u0000\u0166"+
"\u016b\u0003\b\u0004\u0000\u0167\u0168\u0005B\u0000\u0000\u0168\u016a"+
"\u0003\b\u0004\u0000\u0169\u0167\u0001\u0000\u0000\u0000\u016a\u016d\u0001"+
"\u0000\u0000\u0000\u016b\u0169\u0001\u0000\u0000\u0000\u016b\u016c\u0001"+
"\u0000\u0000\u0000\u016c\u016f\u0001\u0000\u0000\u0000\u016d\u016b\u0001"+
"\u0000\u0000\u0000\u016e\u0166\u0001\u0000\u0000\u0000\u016e\u016f\u0001"+
"\u0000\u0000\u0000\u016f\u0170\u0001\u0000\u0000\u0000\u0170\u0171\u0005"+
"<\u0000\u0000\u0171/\u0001\u0000\u0000\u0000\u0172\u0173\u0005?\u0000"+
"\u0000\u0173\u0175\u0005@\u0000\u0000\u0174\u0172\u0001\u0000\u0000\u0000"+
"\u0175\u0178\u0001\u0000\u0000\u0000\u0176\u0174\u0001\u0000\u0000\u0000"+
"\u0176\u0177\u0001\u0000\u0000\u0000\u01771\u0001\u0000\u0000\u0000\u0178"+
"\u0176\u0001\u0000\u0000\u0000\u0179\u017c\u0003\u0004\u0002\u0000\u017a"+
"\u017d\u00036\u001b\u0000\u017b\u017d\u00038\u001c\u0000\u017c\u017a\u0001"+
"\u0000\u0000\u0000\u017c\u017b\u0001\u0000\u0000\u0000\u017d3\u0001\u0000"+
"\u0000\u0000\u017e\u017f\u0003\u0002\u0001\u0000\u017f\u0180\u00038\u001c"+
"\u0000\u01805\u0001\u0000\u0000\u0000\u0181\u0182\u0005?\u0000\u0000\u0182"+
"\u0183\u0005@\u0000\u0000\u0183\u0184\u00030\u0018\u0000\u0184\u0185\u0003"+
":\u001d\u0000\u0185\u0193\u0001\u0000\u0000\u0000\u0186\u0187\u0005?\u0000"+
"\u0000\u0187\u0188\u0003\b\u0004\u0000\u0188\u018f\u0005@\u0000\u0000"+
"\u0189\u018a\u0005?\u0000\u0000\u018a\u018b\u0003\b\u0004\u0000\u018b"+
"\u018c\u0005@\u0000\u0000\u018c\u018e\u0001\u0000\u0000\u0000\u018d\u0189"+
"\u0001\u0000\u0000\u0000\u018e\u0191\u0001\u0000\u0000\u0000\u018f\u018d"+
"\u0001\u0000\u0000\u0000\u018f\u0190\u0001\u0000\u0000\u0000\u0190\u0193"+
"\u0001\u0000\u0000\u0000\u0191\u018f\u0001\u0000\u0000\u0000\u0192\u0181"+
"\u0001\u0000\u0000\u0000\u0192\u0186\u0001\u0000\u0000\u0000\u01937\u0001"+
"\u0000\u0000\u0000\u0194\u0196\u0003.\u0017\u0000\u0195\u0197\u0003\u0082"+
"A\u0000\u0196\u0195\u0001\u0000\u0000\u0000\u0196\u0197\u0001\u0000\u0000"+
"\u0000\u01979\u0001\u0000\u0000\u0000\u0198\u01a4\u0005=\u0000\u0000\u0199"+
"\u019e\u0003<\u001e\u0000\u019a\u019b\u0005B\u0000\u0000\u019b\u019d\u0003"+
"<\u001e\u0000\u019c\u019a\u0001\u0000\u0000\u0000\u019d\u01a0\u0001\u0000"+
"\u0000\u0000\u019e\u019c\u0001\u0000\u0000\u0000\u019e\u019f\u0001\u0000"+
"\u0000\u0000\u019f\u01a2\u0001\u0000\u0000\u0000\u01a0\u019e\u0001\u0000"+
"\u0000\u0000\u01a1\u01a3\u0005B\u0000\u0000\u01a2\u01a1\u0001\u0000\u0000"+
"\u0000\u01a2\u01a3\u0001\u0000\u0000\u0000\u01a3\u01a5\u0001\u0000\u0000"+
"\u0000\u01a4\u0199\u0001\u0000\u0000\u0000\u01a4\u01a5\u0001\u0000\u0000"+
"\u0000\u01a5\u01a6\u0001\u0000\u0000\u0000\u01a6\u01a7\u0005>\u0000\u0000"+
"\u01a7;\u0001\u0000\u0000\u0000\u01a8\u01ab\u0003:\u001d\u0000\u01a9\u01ab"+
"\u0003\b\u0004\u0000\u01aa\u01a8\u0001\u0000\u0000\u0000\u01aa\u01a9\u0001"+
"\u0000\u0000\u0000\u01ab=\u0001\u0000\u0000\u0000\u01ac\u01ad\u0005;\u0000"+
"\u0000\u01ad\u01ae\u0003\b\u0004\u0000\u01ae\u01af\u0005<\u0000\u0000"+
"\u01af?\u0001\u0000\u0000\u0000\u01b0\u01b1\u0005=\u0000\u0000\u01b1\u01b2"+
"\u0003B!\u0000\u01b2\u01b3\u0005>\u0000\u0000\u01b3A\u0001\u0000\u0000"+
"\u0000\u01b4\u01b6\u0003D\"\u0000\u01b5\u01b4\u0001\u0000\u0000\u0000"+
"\u01b6\u01b9\u0001\u0000\u0000\u0000\u01b7\u01b5\u0001\u0000\u0000\u0000"+
"\u01b7\u01b8\u0001\u0000\u0000\u0000\u01b8C\u0001\u0000\u0000\u0000\u01b9"+
"\u01b7\u0001\u0000\u0000\u0000\u01ba\u01c3\u0003F#\u0000\u01bb\u01c3\u0003"+
"z=\u0000\u01bc\u01bd\u0003\u0002\u0001\u0000\u01bd\u01be\u0005_\u0000"+
"\u0000\u01be\u01c0\u0001\u0000\u0000\u0000\u01bf\u01bc\u0001\u0000\u0000"+
"\u0000\u01bf\u01c0\u0001\u0000\u0000\u0000\u01c0\u01c1\u0001\u0000\u0000"+
"\u0000\u01c1\u01c3\u0003H$\u0000\u01c2\u01ba\u0001\u0000\u0000\u0000\u01c2"+
"\u01bb\u0001\u0000\u0000\u0000\u01c2\u01bf\u0001\u0000\u0000\u0000\u01c3"+
"E\u0001\u0000\u0000\u0000\u01c4\u01c6\u0005\u0013\u0000\u0000\u01c5\u01c4"+
"\u0001\u0000\u0000\u0000\u01c5\u01c6\u0001\u0000\u0000\u0000\u01c6\u01c7"+
"\u0001\u0000\u0000\u0000\u01c7\u01c8\u0003 \u0010\u0000\u01c8\u01c9\u0003"+
"d2\u0000\u01c9G\u0001\u0000\u0000\u0000\u01ca\u01d0\u0003L&\u0000\u01cb"+
"\u01cc\u0005\u0018\u0000\u0000\u01cc\u01cd\u0003>\u001f\u0000\u01cd\u01ce"+
"\u0003J%\u0000\u01ce\u01d0\u0001\u0000\u0000\u0000\u01cf\u01ca\u0001\u0000"+
"\u0000\u0000\u01cf\u01cb\u0001\u0000\u0000\u0000\u01d0I\u0001\u0000\u0000"+
"\u0000\u01d1\u021d\u0003@ \u0000\u01d2\u01d3\u0005\u0018\u0000\u0000\u01d3"+
"\u01d4\u0003>\u001f\u0000\u01d4\u01d5\u0003L&\u0000\u01d5\u01d6\u0005"+
"\u0011\u0000\u0000\u01d6\u01d7\u0003J%\u0000\u01d7\u021d\u0001\u0000\u0000"+
"\u0000\u01d8\u01d9\u0005\u0016\u0000\u0000\u01d9\u01db\u0005;\u0000\u0000"+
"\u01da\u01dc\u0003\\.\u0000\u01db\u01da\u0001\u0000\u0000\u0000\u01db"+
"\u01dc\u0001\u0000\u0000\u0000\u01dc\u01dd\u0001\u0000\u0000\u0000\u01dd"+
"\u01df\u0005A\u0000\u0000\u01de\u01e0\u0003\b\u0004\u0000\u01df\u01de"+
"\u0001\u0000\u0000\u0000\u01df\u01e0\u0001\u0000\u0000\u0000\u01e0\u01e1"+
"\u0001\u0000\u0000\u0000\u01e1\u01e3\u0005A\u0000\u0000\u01e2\u01e4\u0003"+
"^/\u0000\u01e3\u01e2\u0001\u0000\u0000\u0000\u01e3\u01e4\u0001\u0000\u0000"+
"\u0000\u01e4\u01e5\u0001\u0000\u0000\u0000\u01e5\u01e6\u0005<\u0000\u0000"+
"\u01e6\u021d\u0003H$\u0000\u01e7\u01e8\u00053\u0000\u0000\u01e8\u01e9"+
"\u0003>\u001f\u0000\u01e9\u01ea\u0003H$\u0000\u01ea\u021d\u0001\u0000"+
"\u0000\u0000\u01eb\u01ec\u0005\u000f\u0000\u0000\u01ec\u01ed\u0003H$\u0000"+
"\u01ed\u01ee\u00053\u0000\u0000\u01ee\u01ef\u0003>\u001f\u0000\u01ef\u01f0"+
"\u0005A\u0000\u0000\u01f0\u021d\u0001\u0000\u0000\u0000\u01f1\u01f2\u0005"+
"0\u0000\u0000\u01f2\u01f3\u0003@ \u0000\u01f3\u01f4\u0003N\'\u0000\u01f4"+
"\u021d\u0001\u0000\u0000\u0000\u01f5\u01f6\u00050\u0000\u0000\u01f6\u01f7"+
"\u0003@ \u0000\u01f7\u01f8\u0005\u0014\u0000\u0000\u01f8\u01f9\u0003@"+
" \u0000\u01f9\u021d\u0001\u0000\u0000\u0000\u01fa\u01fb\u00050\u0000\u0000"+
"\u01fb\u01fc\u0003@ \u0000\u01fc\u01fd\u0003N\'\u0000\u01fd\u01fe\u0005"+
"\u0014\u0000\u0000\u01fe\u01ff\u0003@ \u0000\u01ff\u021d\u0001\u0000\u0000"+
"\u0000\u0200\u021d\u0003R)\u0000\u0201\u0202\u0005+\u0000\u0000\u0202"+
"\u0203\u0003>\u001f\u0000\u0203\u0204\u0003@ \u0000\u0204\u021d\u0001"+
"\u0000\u0000\u0000\u0205\u0207\u0005%\u0000\u0000\u0206\u0208\u0003\b"+
"\u0004\u0000\u0207\u0206\u0001\u0000\u0000\u0000\u0207\u0208\u0001\u0000"+
"\u0000\u0000\u0208\u0209\u0001\u0000\u0000\u0000\u0209\u021d\u0005A\u0000"+
"\u0000\u020a\u020b\u0005-\u0000\u0000\u020b\u020c\u0003\b\u0004\u0000"+
"\u020c\u020d\u0005A\u0000\u0000\u020d\u021d\u0001\u0000\u0000\u0000\u020e"+
"\u0210\u0005\u0006\u0000\u0000\u020f\u0211\u0003\u0002\u0001\u0000\u0210"+
"\u020f\u0001\u0000\u0000\u0000\u0210\u0211\u0001\u0000\u0000\u0000\u0211"+
"\u0212\u0001\u0000\u0000\u0000\u0212\u021d\u0005A\u0000\u0000\u0213\u0215"+
"\u0005\r\u0000\u0000\u0214\u0216\u0003\u0002\u0001\u0000\u0215\u0214\u0001"+
"\u0000\u0000\u0000\u0215\u0216\u0001\u0000\u0000\u0000\u0216\u0217\u0001"+
"\u0000\u0000\u0000\u0217\u021d\u0005A\u0000\u0000\u0218\u0219\u0003\""+
"\u0011\u0000\u0219\u021a\u0005A\u0000\u0000\u021a\u021d\u0001\u0000\u0000"+
"\u0000\u021b\u021d\u0005A\u0000\u0000\u021c\u01d1\u0001\u0000\u0000\u0000"+
"\u021c\u01d2\u0001\u0000\u0000\u0000\u021c\u01d8\u0001\u0000\u0000\u0000"+
"\u021c\u01e7\u0001\u0000\u0000\u0000\u021c\u01eb\u0001\u0000\u0000\u0000"+
"\u021c\u01f1\u0001\u0000\u0000\u0000\u021c\u01f5\u0001\u0000\u0000\u0000"+
"\u021c\u01fa\u0001\u0000\u0000\u0000\u021c\u0200\u0001\u0000\u0000\u0000"+
"\u021c\u0201\u0001\u0000\u0000\u0000\u021c\u0205\u0001\u0000\u0000\u0000"+
"\u021c\u020a\u0001\u0000\u0000\u0000\u021c\u020e\u0001\u0000\u0000\u0000"+
"\u021c\u0213\u0001\u0000\u0000\u0000\u021c\u0218\u0001\u0000\u0000\u0000"+
"\u021c\u021b\u0001\u0000\u0000\u0000\u021dK\u0001\u0000\u0000\u0000\u021e"+
"\u021f\u0005\u0018\u0000\u0000\u021f\u0220\u0003>\u001f\u0000\u0220\u0221"+
"\u0003L&\u0000\u0221\u0222\u0005\u0011\u0000\u0000\u0222\u0223\u0003L"+
"&\u0000\u0223\u0226\u0001\u0000\u0000\u0000\u0224\u0226\u0003J%\u0000"+
"\u0225\u021e\u0001\u0000\u0000\u0000\u0225\u0224\u0001\u0000\u0000\u0000"+
"\u0226M\u0001\u0000\u0000\u0000\u0227\u022b\u0003P(\u0000\u0228\u022a"+
"\u0003P(\u0000\u0229\u0228\u0001\u0000\u0000\u0000\u022a\u022d\u0001\u0000"+
"\u0000\u0000\u022b\u0229\u0001\u0000\u0000\u0000\u022b\u022c\u0001\u0000"+
"\u0000\u0000\u022cO\u0001\u0000\u0000\u0000\u022d\u022b\u0001\u0000\u0000"+
"\u0000\u022e\u022f\u0005\t\u0000\u0000\u022f\u0230\u0005;\u0000\u0000"+
"\u0230\u0231\u0003\u00a4R\u0000\u0231\u0232\u0005<\u0000\u0000\u0232\u0233"+
"\u0003@ \u0000\u0233Q\u0001\u0000\u0000\u0000\u0234\u0235\u0005*\u0000"+
"\u0000\u0235\u0236\u0003>\u001f\u0000\u0236\u0237\u0005=\u0000\u0000\u0237"+
"\u0238\u0005>\u0000\u0000\u0238\u0242\u0001\u0000\u0000\u0000\u0239\u023a"+
"\u0005*\u0000\u0000\u023a\u023b\u0003>\u001f\u0000\u023b\u023d\u0005="+
"\u0000\u0000\u023c\u023e\u0003T*\u0000\u023d\u023c\u0001\u0000\u0000\u0000"+
"\u023d\u023e\u0001\u0000\u0000\u0000\u023e\u023f\u0001\u0000\u0000\u0000"+
"\u023f\u0240\u0005>\u0000\u0000\u0240\u0242\u0001\u0000\u0000\u0000\u0241"+
"\u0234\u0001\u0000\u0000\u0000\u0241\u0239\u0001\u0000\u0000\u0000\u0242"+
"S\u0001\u0000\u0000\u0000\u0243\u0245\u0003V+\u0000\u0244\u0243\u0001"+
"\u0000\u0000\u0000\u0245\u0248\u0001\u0000\u0000\u0000\u0246\u0244\u0001"+
"\u0000\u0000\u0000\u0246\u0247\u0001\u0000\u0000\u0000\u0247U\u0001\u0000"+
"\u0000\u0000\u0248\u0246\u0001\u0000\u0000\u0000\u0249\u024a\u0003X,\u0000"+
"\u024a\u024b\u0003B!\u0000\u024bW\u0001\u0000\u0000\u0000\u024c\u024d"+
"\u0005\b\u0000\u0000\u024d\u024e\u0003$\u0012\u0000\u024e\u024f\u0005"+
"_\u0000\u0000\u024f\u0253\u0001\u0000\u0000\u0000\u0250\u0251\u0005\u000e"+
"\u0000\u0000\u0251\u0253\u0005_\u0000\u0000\u0252\u024c\u0001\u0000\u0000"+
"\u0000\u0252\u0250\u0001\u0000\u0000\u0000\u0253Y\u0001\u0000\u0000\u0000"+
"\u0254\u0255\u0005B\u0000\u0000\u0255\u0257\u0003\"\u0011\u0000\u0256"+
"\u0254\u0001\u0000\u0000\u0000\u0257\u025a\u0001\u0000\u0000\u0000\u0258"+
"\u0256\u0001\u0000\u0000\u0000\u0258\u0259\u0001\u0000\u0000\u0000\u0259"+
"[\u0001\u0000\u0000\u0000\u025a\u0258\u0001\u0000\u0000\u0000\u025b\u025c"+
"\u0003\"\u0011\u0000\u025c\u025d\u0003Z-\u0000\u025d\u0265\u0001\u0000"+
"\u0000\u0000\u025e\u0260\u0005\u0013\u0000\u0000\u025f\u025e\u0001\u0000"+
"\u0000\u0000\u025f\u0260\u0001\u0000\u0000\u0000\u0260\u0261\u0001\u0000"+
"\u0000\u0000\u0261\u0262\u0003 \u0010\u0000\u0262\u0263\u0003d2\u0000"+
"\u0263\u0265\u0001\u0000\u0000\u0000\u0264\u025b\u0001\u0000\u0000\u0000"+
"\u0264\u025f\u0001\u0000\u0000\u0000\u0265]\u0001\u0000\u0000\u0000\u0266"+
"\u0267\u0003\"\u0011\u0000\u0267\u0268\u0003Z-\u0000\u0268_\u0001\u0000"+
"\u0000\u0000\u0269\u026b\u0003b1\u0000\u026a\u0269\u0001\u0000\u0000\u0000"+
"\u026b\u026e\u0001\u0000\u0000\u0000\u026c\u026a\u0001\u0000\u0000\u0000"+
"\u026c\u026d\u0001\u0000\u0000\u0000\u026da\u0001\u0000\u0000\u0000\u026e"+
"\u026c\u0001\u0000\u0000\u0000\u026f\u0270\u0007\t\u0000\u0000\u0270c"+
"\u0001\u0000\u0000\u0000\u0271\u0276\u0003j5\u0000\u0272\u0273\u0005B"+
"\u0000\u0000\u0273\u0275\u0003j5\u0000\u0274\u0272\u0001\u0000\u0000\u0000"+
"\u0275\u0278\u0001\u0000\u0000\u0000\u0276\u0274\u0001\u0000\u0000\u0000"+
"\u0276\u0277\u0001\u0000\u0000\u0000\u0277e\u0001\u0000\u0000\u0000\u0278"+
"\u0276\u0001\u0000\u0000\u0000\u0279\u027e\u0003n7\u0000\u027a\u027b\u0005"+
"B\u0000\u0000\u027b\u027d\u0003j5\u0000\u027c\u027a\u0001\u0000\u0000"+
"\u0000\u027d\u0280\u0001\u0000\u0000\u0000\u027e\u027c\u0001\u0000\u0000"+
"\u0000\u027e\u027f\u0001\u0000\u0000\u0000\u027fg\u0001\u0000\u0000\u0000"+
"\u0280\u027e\u0001\u0000\u0000\u0000\u0281\u0286\u0003p8\u0000\u0282\u0283"+
"\u0005B\u0000\u0000\u0283\u0285\u0003l6\u0000\u0284\u0282\u0001\u0000"+
"\u0000\u0000\u0285\u0288\u0001\u0000\u0000\u0000\u0286\u0284\u0001\u0000"+
"\u0000\u0000\u0286\u0287\u0001\u0000\u0000\u0000\u0287i\u0001\u0000\u0000"+
"\u0000\u0288\u0286\u0001\u0000\u0000\u0000\u0289\u028a\u0003\u0002\u0001"+
"\u0000\u028a\u028b\u0003f3\u0000\u028bk\u0001\u0000\u0000\u0000\u028c"+
"\u028d\u0003\u0002\u0001\u0000\u028d\u028e\u0003p8\u0000\u028em\u0001"+
"\u0000\u0000\u0000\u028f\u0292\u00030\u0018\u0000\u0290\u0291\u0005Y\u0000"+
"\u0000\u0291\u0293\u0003<\u001e\u0000\u0292\u0290\u0001\u0000\u0000\u0000"+
"\u0292\u0293\u0001\u0000\u0000\u0000\u0293o\u0001\u0000\u0000\u0000\u0294"+
"\u0295\u00030\u0018\u0000\u0295\u0296\u0005Y\u0000\u0000\u0296\u0297\u0003"+
"<\u001e\u0000\u0297q\u0001\u0000\u0000\u0000\u0298\u0299\u0003\u0002\u0001"+
"\u0000\u0299\u029a\u00030\u0018\u0000\u029as\u0001\u0000\u0000\u0000\u029b"+
"\u029c\u0005!\u0000\u0000\u029c\u029d\u0003\u0004\u0002\u0000\u029d\u029e"+
"\u0005A\u0000\u0000\u029e\u02a0\u0001\u0000\u0000\u0000\u029f\u029b\u0001"+
"\u0000\u0000\u0000\u029f\u02a0\u0001\u0000\u0000\u0000\u02a0\u02a4\u0001"+
"\u0000\u0000\u0000\u02a1\u02a3\u0003v;\u0000\u02a2\u02a1\u0001\u0000\u0000"+
"\u0000\u02a3\u02a6\u0001\u0000\u0000\u0000\u02a4\u02a2\u0001\u0000\u0000"+
"\u0000\u02a4\u02a5\u0001\u0000\u0000\u0000\u02a5\u02aa\u0001\u0000\u0000"+
"\u0000\u02a6\u02a4\u0001\u0000\u0000\u0000\u02a7\u02a9\u0003x<\u0000\u02a8"+
"\u02a7\u0001\u0000\u0000\u0000\u02a9\u02ac\u0001\u0000\u0000\u0000\u02aa"+
"\u02a8\u0001\u0000\u0000\u0000\u02aa\u02ab\u0001\u0000\u0000\u0000\u02ab"+
"u\u0001\u0000\u0000\u0000\u02ac\u02aa\u0001\u0000\u0000\u0000\u02ad\u02ae"+
"\u0005\u001a\u0000\u0000\u02ae\u02b3\u0003\u0002\u0001\u0000\u02af\u02b0"+
"\u00054\u0000\u0000\u02b0\u02b2\u0003\u0002\u0001\u0000\u02b1\u02af\u0001"+
"\u0000\u0000\u0000\u02b2\u02b5\u0001\u0000\u0000\u0000\u02b3\u02b1\u0001"+
"\u0000\u0000\u0000\u02b3\u02b4\u0001\u0000\u0000\u0000\u02b4\u02b8\u0001"+
"\u0000\u0000\u0000\u02b5\u02b3\u0001\u0000\u0000\u0000\u02b6\u02b7\u0005"+
"4\u0000\u0000\u02b7\u02b9\u0005b\u0000\u0000\u02b8\u02b6\u0001\u0000\u0000"+
"\u0000\u02b8\u02b9\u0001\u0000\u0000\u0000\u02b9\u02ba\u0001\u0000\u0000"+
"\u0000\u02ba\u02bb\u0005A\u0000\u0000\u02bbw\u0001\u0000\u0000\u0000\u02bc"+
"\u02bf\u0003z=\u0000\u02bd\u02bf\u0005A\u0000\u0000\u02be\u02bc\u0001"+
"\u0000\u0000\u0000\u02be\u02bd\u0001\u0000\u0000\u0000\u02bfy\u0001\u0000"+
"\u0000\u0000\u02c0\u02c3\u0003`0\u0000\u02c1\u02c4\u0003|>\u0000\u02c2"+
"\u02c4\u0003~?\u0000\u02c3\u02c1\u0001\u0000\u0000\u0000\u02c3\u02c2\u0001"+
"\u0000\u0000\u0000\u02c4{\u0001\u0000\u0000\u0000\u02c5\u02c6\u0005\u000b"+
"\u0000\u0000\u02c6\u02c9\u0003\u0002\u0001\u0000\u02c7\u02c8\u0005\u0012"+
"\u0000\u0000\u02c8\u02ca\u0003 \u0010\u0000\u02c9\u02c7\u0001\u0000\u0000"+
"\u0000\u02c9\u02ca\u0001\u0000\u0000\u0000\u02ca\u02cd\u0001\u0000\u0000"+
"\u0000\u02cb\u02cc\u0005\u0019\u0000\u0000\u02cc\u02ce\u0003\u0080@\u0000"+
"\u02cd\u02cb\u0001\u0000\u0000\u0000\u02cd\u02ce\u0001\u0000\u0000\u0000"+
"\u02ce\u02cf\u0001\u0000\u0000\u0000\u02cf\u02d0\u0003\u0082A\u0000\u02d0"+
"}\u0001\u0000\u0000\u0000\u02d1\u02d2\u0005\u001d\u0000\u0000\u02d2\u02d5"+
"\u0003\u0002\u0001\u0000\u02d3\u02d4\u0005\u0012\u0000\u0000\u02d4\u02d6"+
"\u0003\u0080@\u0000\u02d5\u02d3\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001"+
"\u0000\u0000\u0000\u02d6\u02d7\u0001\u0000\u0000\u0000\u02d7\u02d8\u0003"+
"\u0084B\u0000\u02d8\u007f\u0001\u0000\u0000\u0000\u02d9\u02de\u0003 \u0010"+
"\u0000\u02da\u02db\u0005B\u0000\u0000\u02db\u02dd\u0003 \u0010\u0000\u02dc"+
"\u02da\u0001\u0000\u0000\u0000\u02dd\u02e0\u0001\u0000\u0000\u0000\u02de"+
"\u02dc\u0001\u0000\u0000\u0000\u02de\u02df\u0001\u0000\u0000\u0000\u02df"+
"\u0081\u0001\u0000\u0000\u0000\u02e0\u02de\u0001\u0000\u0000\u0000\u02e1"+
"\u02e5\u0005=\u0000\u0000\u02e2\u02e4\u0003\u0086C\u0000\u02e3\u02e2\u0001"+
"\u0000\u0000\u0000\u02e4\u02e7\u0001\u0000\u0000\u0000\u02e5\u02e3\u0001"+
"\u0000\u0000\u0000\u02e5\u02e6\u0001\u0000\u0000\u0000\u02e6\u02e8\u0001"+
"\u0000\u0000\u0000\u02e7\u02e5\u0001\u0000\u0000\u0000\u02e8\u02e9\u0005"+
">\u0000\u0000\u02e9\u0083\u0001\u0000\u0000\u0000\u02ea\u02ee\u0005=\u0000"+
"\u0000\u02eb\u02ed\u0003\u008eG\u0000\u02ec\u02eb\u0001\u0000\u0000\u0000"+
"\u02ed\u02f0\u0001\u0000\u0000\u0000\u02ee\u02ec\u0001\u0000\u0000\u0000"+
"\u02ee\u02ef\u0001\u0000\u0000\u0000\u02ef\u02f1\u0001\u0000\u0000\u0000"+
"\u02f0\u02ee\u0001\u0000\u0000\u0000\u02f1\u02f2\u0005>\u0000\u0000\u02f2"+
"\u0085\u0001\u0000\u0000\u0000\u02f3\u02fc\u0005A\u0000\u0000\u02f4\u02f6"+
"\u0005\'\u0000\u0000\u02f5\u02f4\u0001\u0000\u0000\u0000\u02f5\u02f6\u0001"+
"\u0000\u0000\u0000\u02f6\u02f7\u0001\u0000\u0000\u0000\u02f7\u02fc\u0003"+
"@ \u0000\u02f8\u02f9\u0003`0\u0000\u02f9\u02fa\u0003\u0088D\u0000\u02fa"+
"\u02fc\u0001\u0000\u0000\u0000\u02fb\u02f3\u0001\u0000\u0000\u0000\u02fb"+
"\u02f5\u0001\u0000\u0000\u0000\u02fb\u02f8\u0001\u0000\u0000\u0000\u02fc"+
"\u0087\u0001\u0000\u0000\u0000\u02fd\u0307\u0003\u008aE\u0000\u02fe\u02ff"+
"\u00051\u0000\u0000\u02ff\u0300\u0003\u0002\u0001\u0000\u0300\u0301\u0003"+
"\u0096K\u0000\u0301\u0307\u0001\u0000\u0000\u0000\u0302\u0303\u0003\u0002"+
"\u0001\u0000\u0303\u0304\u0003\u009eO\u0000\u0304\u0307\u0001\u0000\u0000"+
"\u0000\u0305\u0307\u0003z=\u0000\u0306\u02fd\u0001\u0000\u0000\u0000\u0306"+
"\u02fe\u0001\u0000\u0000\u0000\u0306\u0302\u0001\u0000\u0000\u0000\u0306"+
"\u0305\u0001\u0000\u0000\u0000\u0307\u0089\u0001\u0000\u0000\u0000\u0308"+
"\u0309\u0003 \u0010\u0000\u0309\u030a\u0003\u0002\u0001\u0000\u030a\u030b"+
"\u0003\u008cF\u0000\u030b\u008b\u0001\u0000\u0000\u0000\u030c\u030f\u0003"+
"n7\u0000\u030d\u030f\u0003\u0096K\u0000\u030e\u030c\u0001\u0000\u0000"+
"\u0000\u030e\u030d\u0001\u0000\u0000\u0000\u030f\u008d\u0001\u0000\u0000"+
"\u0000\u0310\u0315\u0005A\u0000\u0000\u0311\u0312\u0003`0\u0000\u0312"+
"\u0313\u0003\u0090H\u0000\u0313\u0315\u0001\u0000\u0000\u0000\u0314\u0310"+
"\u0001\u0000\u0000\u0000\u0314\u0311\u0001\u0000\u0000\u0000\u0315\u008f"+
"\u0001\u0000\u0000\u0000\u0316\u031d\u0003\u0092I\u0000\u0317\u0318\u0005"+
"1\u0000\u0000\u0318\u0319\u0003\u0002\u0001\u0000\u0319\u031a\u0003\u009c"+
"N\u0000\u031a\u031d\u0001\u0000\u0000\u0000\u031b\u031d\u0003z=\u0000"+
"\u031c\u0316\u0001\u0000\u0000\u0000\u031c\u0317\u0001\u0000\u0000\u0000"+
"\u031c\u031b\u0001\u0000\u0000\u0000\u031d\u0091\u0001\u0000\u0000\u0000"+
"\u031e\u031f\u0003 \u0010\u0000\u031f\u0320\u0003\u0002\u0001\u0000\u0320"+
"\u0321\u0003\u0094J\u0000\u0321\u0093\u0001\u0000\u0000\u0000\u0322\u0323"+
"\u0003p8\u0000\u0323\u0324\u0005A\u0000\u0000\u0324\u0327\u0001\u0000"+
"\u0000\u0000\u0325\u0327\u0003\u009aM\u0000\u0326\u0322\u0001\u0000\u0000"+
"\u0000\u0326\u0325\u0001\u0000\u0000\u0000\u0327\u0095\u0001\u0000\u0000"+
"\u0000\u0328\u0329\u0003\u00a2Q\u0000\u0329\u032c\u00030\u0018\u0000\u032a"+
"\u032b\u0005.\u0000\u0000\u032b\u032d\u0003\u00a0P\u0000\u032c\u032a\u0001"+
"\u0000\u0000\u0000\u032c\u032d\u0001\u0000\u0000\u0000\u032d\u0330\u0001"+
"\u0000\u0000\u0000\u032e\u0331\u0003\u00a6S\u0000\u032f\u0331\u0005A\u0000"+
"\u0000\u0330\u032e\u0001\u0000\u0000\u0000\u0330\u032f\u0001\u0000\u0000"+
"\u0000\u0331\u0097\u0001\u0000\u0000\u0000\u0332\u0335\u0003\u00a2Q\u0000"+
"\u0333\u0334\u0005.\u0000\u0000\u0334\u0336\u0003\u00a0P\u0000\u0335\u0333"+
"\u0001\u0000\u0000\u0000\u0335\u0336\u0001\u0000\u0000\u0000\u0336\u0339"+
"\u0001\u0000\u0000\u0000\u0337\u033a\u0003\u00a6S\u0000\u0338\u033a\u0005"+
"A\u0000\u0000\u0339\u0337\u0001\u0000\u0000\u0000\u0339\u0338\u0001\u0000"+
"\u0000\u0000\u033a\u0099\u0001\u0000\u0000\u0000\u033b\u033c\u0003\u00a2"+
"Q\u0000\u033c\u033f\u00030\u0018\u0000\u033d\u033e\u0005.\u0000\u0000"+
"\u033e\u0340\u0003\u00a0P\u0000\u033f\u033d\u0001\u0000\u0000\u0000\u033f"+
"\u0340\u0001\u0000\u0000\u0000\u0340\u0341\u0001\u0000\u0000\u0000\u0341"+
"\u0342\u0005A\u0000\u0000\u0342\u009b\u0001\u0000\u0000\u0000\u0343\u0346"+
"\u0003\u00a2Q\u0000\u0344\u0345\u0005.\u0000\u0000\u0345\u0347\u0003\u00a0"+
"P\u0000\u0346\u0344\u0001\u0000\u0000\u0000\u0346\u0347\u0001\u0000\u0000"+
"\u0000\u0347\u009d\u0001\u0000\u0000\u0000\u0348\u034b\u0003\u00a2Q\u0000"+
"\u0349\u034a\u0005.\u0000\u0000\u034a\u034c\u0003\u00a0P\u0000\u034b\u0349"+
"\u0001\u0000\u0000\u0000\u034b\u034c\u0001\u0000\u0000\u0000\u034c\u034d"+
"\u0001\u0000\u0000\u0000\u034d\u034e\u0003\u00a6S\u0000\u034e\u009f\u0001"+
"\u0000\u0000\u0000\u034f\u0354\u0003\u0004\u0002\u0000\u0350\u0351\u0005"+
"B\u0000\u0000\u0351\u0353\u0003\u0004\u0002\u0000\u0352\u0350\u0001\u0000"+
"\u0000\u0000\u0353\u0356\u0001\u0000\u0000\u0000\u0354\u0352\u0001\u0000"+
"\u0000\u0000\u0354\u0355\u0001\u0000\u0000\u0000\u0355\u00a1\u0001\u0000"+
"\u0000\u0000\u0356\u0354\u0001\u0000\u0000\u0000\u0357\u0360\u0005;\u0000"+
"\u0000\u0358\u035d\u0003\u00a4R\u0000\u0359\u035a\u0005B\u0000\u0000\u035a"+
"\u035c\u0003\u00a4R\u0000\u035b\u0359\u0001\u0000\u0000\u0000\u035c\u035f"+
"\u0001\u0000\u0000\u0000\u035d\u035b\u0001\u0000\u0000\u0000\u035d\u035e"+
"\u0001\u0000\u0000\u0000\u035e\u0361\u0001\u0000\u0000\u0000\u035f\u035d"+
"\u0001\u0000\u0000\u0000\u0360\u0358\u0001\u0000\u0000\u0000\u0360\u0361"+
"\u0001\u0000\u0000\u0000\u0361\u0362\u0001\u0000\u0000\u0000\u0362\u0363"+
"\u0005<\u0000\u0000\u0363\u00a3\u0001\u0000\u0000\u0000\u0364\u0366\u0005"+
"\u0013\u0000\u0000\u0365\u0364\u0001\u0000\u0000\u0000\u0365\u0366\u0001"+
"\u0000\u0000\u0000\u0366\u0367\u0001\u0000\u0000\u0000\u0367\u0368\u0003"+
" \u0010\u0000\u0368\u0369\u0003r9\u0000\u0369\u00a5\u0001\u0000\u0000"+
"\u0000\u036a\u036b\u0003@ \u0000\u036b\u00a7\u0001\u0000\u0000\u0000Y"+
"\u00b2\u00bc\u00c5\u00cc\u00d4\u00dc\u00e4\u00e6\u00ee\u00f6\u0100\u010c"+
"\u010e\u011d\u0128\u0132\u013b\u0141\u015a\u015c\u0163\u016b\u016e\u0176"+
"\u017c\u018f\u0192\u0196\u019e\u01a2\u01a4\u01aa\u01b7\u01bf\u01c2\u01c5"+
"\u01cf\u01db\u01df\u01e3\u0207\u0210\u0215\u021c\u0225\u022b\u023d\u0241"+
"\u0246\u0252\u0258\u025f\u0264\u026c\u0276\u027e\u0286\u0292\u029f\u02a4"+
"\u02aa\u02b3\u02b8\u02be\u02c3\u02c9\u02cd\u02d5\u02de\u02e5\u02ee\u02f5"+
"\u02fb\u0306\u030e\u0314\u031c\u0326\u032c\u0330\u0335\u0339\u033f\u0346"+
"\u034b\u0354\u035d\u0360\u0365";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}