
org.openapitools.codegen.antlr4.KotlinParser Maven / Gradle / Ivy
The newest version!
// Generated from org/openapitools/codegen/antlr4/KotlinParser.g4 by ANTLR 4.13.2
package org.openapitools.codegen.antlr4;
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", "this-escape"})
public class KotlinParser extends Parser {
static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
ShebangLine=1, DelimitedComment=2, LineComment=3, WS=4, NL=5, RESERVED=6,
DOT=7, COMMA=8, LPAREN=9, RPAREN=10, LSQUARE=11, RSQUARE=12, LCURL=13,
RCURL=14, MULT=15, MOD=16, DIV=17, ADD=18, SUB=19, INCR=20, DECR=21, CONJ=22,
DISJ=23, EXCL=24, COLON=25, SEMICOLON=26, ASSIGNMENT=27, ADD_ASSIGNMENT=28,
SUB_ASSIGNMENT=29, MULT_ASSIGNMENT=30, DIV_ASSIGNMENT=31, MOD_ASSIGNMENT=32,
ARROW=33, DOUBLE_ARROW=34, RANGE=35, COLONCOLON=36, Q_COLONCOLON=37, DOUBLE_SEMICOLON=38,
HASH=39, AT=40, QUEST=41, ELVIS=42, LANGLE=43, RANGLE=44, LE=45, GE=46,
EXCL_EQ=47, EXCL_EQEQ=48, AS_SAFE=49, EQEQ=50, EQEQEQ=51, SINGLE_QUOTE=52,
RETURN_AT=53, CONTINUE_AT=54, BREAK_AT=55, FILE=56, PACKAGE=57, IMPORT=58,
CLASS=59, INTERFACE=60, FUN=61, OBJECT=62, VAL=63, VAR=64, TYPE_ALIAS=65,
CONSTRUCTOR=66, BY=67, COMPANION=68, INIT=69, THIS=70, SUPER=71, TYPEOF=72,
WHERE=73, IF=74, ELSE=75, WHEN=76, TRY=77, CATCH=78, FINALLY=79, FOR=80,
DO=81, WHILE=82, THROW=83, RETURN=84, CONTINUE=85, BREAK=86, AS=87, IS=88,
IN=89, NOT_IS=90, NOT_IN=91, OUT=92, FIELD=93, PROPERTY=94, GET=95, SET=96,
GETTER=97, SETTER=98, RECEIVER=99, PARAM=100, SETPARAM=101, DELEGATE=102,
DYNAMIC=103, PUBLIC=104, PRIVATE=105, PROTECTED=106, INTERNAL=107, ENUM=108,
SEALED=109, ANNOTATION=110, DATA=111, INNER=112, TAILREC=113, OPERATOR=114,
INLINE=115, INFIX=116, EXTERNAL=117, SUSPEND=118, OVERRIDE=119, ABSTRACT=120,
FINAL=121, OPEN=122, CONST=123, LATEINIT=124, VARARG=125, NOINLINE=126,
CROSSINLINE=127, REIFIED=128, QUOTE_OPEN=129, TRIPLE_QUOTE_OPEN=130, RealLiteral=131,
FloatLiteral=132, DoubleLiteral=133, LongLiteral=134, IntegerLiteral=135,
HexLiteral=136, BinLiteral=137, BooleanLiteral=138, NullLiteral=139, Identifier=140,
LabelReference=141, LabelDefinition=142, FieldIdentifier=143, CharacterLiteral=144,
UNICODE_CLASS_LL=145, UNICODE_CLASS_LM=146, UNICODE_CLASS_LO=147, UNICODE_CLASS_LT=148,
UNICODE_CLASS_LU=149, UNICODE_CLASS_ND=150, UNICODE_CLASS_NL=151, Inside_Comment=152,
Inside_WS=153, Inside_NL=154, QUOTE_CLOSE=155, LineStrRef=156, LineStrText=157,
LineStrEscapedChar=158, LineStrExprStart=159, TRIPLE_QUOTE_CLOSE=160,
MultiLineStringQuote=161, MultiLineStrRef=162, MultiLineStrText=163, MultiLineStrEscapedChar=164,
MultiLineStrExprStart=165, MultiLineNL=166, StrExpr_IN=167, StrExpr_Comment=168,
StrExpr_WS=169, StrExpr_NL=170;
public static final int
RULE_kotlinFile = 0, RULE_script = 1, RULE_preamble = 2, RULE_fileAnnotations = 3,
RULE_fileAnnotation = 4, RULE_packageHeader = 5, RULE_importList = 6,
RULE_importHeader = 7, RULE_importAlias = 8, RULE_topLevelObject = 9,
RULE_classDeclaration = 10, RULE_primaryConstructor = 11, RULE_classParameters = 12,
RULE_classParameter = 13, RULE_delegationSpecifiers = 14, RULE_delegationSpecifier = 15,
RULE_constructorInvocation = 16, RULE_explicitDelegation = 17, RULE_classBody = 18,
RULE_classMemberDeclaration = 19, RULE_anonymousInitializer = 20, RULE_secondaryConstructor = 21,
RULE_constructorDelegationCall = 22, RULE_enumClassBody = 23, RULE_enumEntries = 24,
RULE_enumEntry = 25, RULE_functionDeclaration = 26, RULE_functionValueParameters = 27,
RULE_functionValueParameter = 28, RULE_parameter = 29, RULE_receiverType = 30,
RULE_functionBody = 31, RULE_objectDeclaration = 32, RULE_companionObject = 33,
RULE_propertyDeclaration = 34, RULE_multiVariableDeclaration = 35, RULE_variableDeclaration = 36,
RULE_getter = 37, RULE_setter = 38, RULE_typeAlias = 39, RULE_typeParameters = 40,
RULE_typeParameter = 41, RULE_type = 42, RULE_typeModifierList = 43, RULE_parenthesizedType = 44,
RULE_nullableType = 45, RULE_typeReference = 46, RULE_functionType = 47,
RULE_functionTypeReceiver = 48, RULE_userType = 49, RULE_simpleUserType = 50,
RULE_functionTypeParameters = 51, RULE_typeConstraints = 52, RULE_typeConstraint = 53,
RULE_block = 54, RULE_statements = 55, RULE_statement = 56, RULE_blockLevelExpression = 57,
RULE_declaration = 58, RULE_expression = 59, RULE_disjunction = 60, RULE_conjunction = 61,
RULE_equalityComparison = 62, RULE_comparison = 63, RULE_namedInfix = 64,
RULE_elvisExpression = 65, RULE_infixFunctionCall = 66, RULE_rangeExpression = 67,
RULE_additiveExpression = 68, RULE_multiplicativeExpression = 69, RULE_typeRHS = 70,
RULE_prefixUnaryExpression = 71, RULE_postfixUnaryExpression = 72, RULE_atomicExpression = 73,
RULE_parenthesizedExpression = 74, RULE_callSuffix = 75, RULE_annotatedLambda = 76,
RULE_arrayAccess = 77, RULE_valueArguments = 78, RULE_typeArguments = 79,
RULE_typeProjection = 80, RULE_typeProjectionModifierList = 81, RULE_valueArgument = 82,
RULE_literalConstant = 83, RULE_stringLiteral = 84, RULE_lineStringLiteral = 85,
RULE_multiLineStringLiteral = 86, RULE_lineStringContent = 87, RULE_lineStringExpression = 88,
RULE_multiLineStringContent = 89, RULE_multiLineStringExpression = 90,
RULE_functionLiteral = 91, RULE_lambdaParameters = 92, RULE_lambdaParameter = 93,
RULE_objectLiteral = 94, RULE_collectionLiteral = 95, RULE_thisExpression = 96,
RULE_superExpression = 97, RULE_conditionalExpression = 98, RULE_ifExpression = 99,
RULE_controlStructureBody = 100, RULE_whenExpression = 101, RULE_whenEntry = 102,
RULE_whenCondition = 103, RULE_rangeTest = 104, RULE_typeTest = 105, RULE_tryExpression = 106,
RULE_catchBlock = 107, RULE_finallyBlock = 108, RULE_loopExpression = 109,
RULE_forExpression = 110, RULE_whileExpression = 111, RULE_doWhileExpression = 112,
RULE_jumpExpression = 113, RULE_callableReference = 114, RULE_assignmentOperator = 115,
RULE_equalityOperation = 116, RULE_comparisonOperator = 117, RULE_inOperator = 118,
RULE_isOperator = 119, RULE_additiveOperator = 120, RULE_multiplicativeOperation = 121,
RULE_typeOperation = 122, RULE_prefixUnaryOperation = 123, RULE_postfixUnaryOperation = 124,
RULE_memberAccessOperator = 125, RULE_modifierList = 126, RULE_modifier = 127,
RULE_classModifier = 128, RULE_memberModifier = 129, RULE_visibilityModifier = 130,
RULE_varianceAnnotation = 131, RULE_functionModifier = 132, RULE_propertyModifier = 133,
RULE_inheritanceModifier = 134, RULE_parameterModifier = 135, RULE_typeParameterModifier = 136,
RULE_labelDefinition = 137, RULE_annotations = 138, RULE_annotation = 139,
RULE_annotationList = 140, RULE_annotationUseSiteTarget = 141, RULE_unescapedAnnotation = 142,
RULE_identifier = 143, RULE_simpleIdentifier = 144, RULE_semi = 145, RULE_anysemi = 146;
private static String[] makeRuleNames() {
return new String[] {
"kotlinFile", "script", "preamble", "fileAnnotations", "fileAnnotation",
"packageHeader", "importList", "importHeader", "importAlias", "topLevelObject",
"classDeclaration", "primaryConstructor", "classParameters", "classParameter",
"delegationSpecifiers", "delegationSpecifier", "constructorInvocation",
"explicitDelegation", "classBody", "classMemberDeclaration", "anonymousInitializer",
"secondaryConstructor", "constructorDelegationCall", "enumClassBody",
"enumEntries", "enumEntry", "functionDeclaration", "functionValueParameters",
"functionValueParameter", "parameter", "receiverType", "functionBody",
"objectDeclaration", "companionObject", "propertyDeclaration", "multiVariableDeclaration",
"variableDeclaration", "getter", "setter", "typeAlias", "typeParameters",
"typeParameter", "type", "typeModifierList", "parenthesizedType", "nullableType",
"typeReference", "functionType", "functionTypeReceiver", "userType",
"simpleUserType", "functionTypeParameters", "typeConstraints", "typeConstraint",
"block", "statements", "statement", "blockLevelExpression", "declaration",
"expression", "disjunction", "conjunction", "equalityComparison", "comparison",
"namedInfix", "elvisExpression", "infixFunctionCall", "rangeExpression",
"additiveExpression", "multiplicativeExpression", "typeRHS", "prefixUnaryExpression",
"postfixUnaryExpression", "atomicExpression", "parenthesizedExpression",
"callSuffix", "annotatedLambda", "arrayAccess", "valueArguments", "typeArguments",
"typeProjection", "typeProjectionModifierList", "valueArgument", "literalConstant",
"stringLiteral", "lineStringLiteral", "multiLineStringLiteral", "lineStringContent",
"lineStringExpression", "multiLineStringContent", "multiLineStringExpression",
"functionLiteral", "lambdaParameters", "lambdaParameter", "objectLiteral",
"collectionLiteral", "thisExpression", "superExpression", "conditionalExpression",
"ifExpression", "controlStructureBody", "whenExpression", "whenEntry",
"whenCondition", "rangeTest", "typeTest", "tryExpression", "catchBlock",
"finallyBlock", "loopExpression", "forExpression", "whileExpression",
"doWhileExpression", "jumpExpression", "callableReference", "assignmentOperator",
"equalityOperation", "comparisonOperator", "inOperator", "isOperator",
"additiveOperator", "multiplicativeOperation", "typeOperation", "prefixUnaryOperation",
"postfixUnaryOperation", "memberAccessOperator", "modifierList", "modifier",
"classModifier", "memberModifier", "visibilityModifier", "varianceAnnotation",
"functionModifier", "propertyModifier", "inheritanceModifier", "parameterModifier",
"typeParameterModifier", "labelDefinition", "annotations", "annotation",
"annotationList", "annotationUseSiteTarget", "unescapedAnnotation", "identifier",
"simpleIdentifier", "semi", "anysemi"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, null, "'...'", "'.'", "','", "'('", null,
"'['", null, "'{'", "'}'", "'*'", "'%'", "'/'", "'+'", "'-'", "'++'",
"'--'", "'&&'", "'||'", "'!'", "':'", "';'", "'='", "'+='", "'-='", "'*='",
"'/='", "'%='", "'->'", "'=>'", "'..'", "'::'", "'?::'", "';;'", "'#'",
"'@'", "'?'", "'?:'", "'<'", "'>'", "'<='", "'>='", "'!='", "'!=='",
"'as?'", "'=='", "'==='", "'''", null, null, null, "'@file'", "'package'",
"'import'", "'class'", "'interface'", "'fun'", "'object'", "'val'", "'var'",
"'typealias'", "'constructor'", "'by'", "'companion'", "'init'", "'this'",
"'super'", "'typeof'", "'where'", "'if'", "'else'", "'when'", "'try'",
"'catch'", "'finally'", "'for'", "'do'", "'while'", "'throw'", "'return'",
"'continue'", "'break'", "'as'", "'is'", "'in'", null, null, "'out'",
"'@field'", "'@property'", "'@get'", "'@set'", "'get'", "'set'", "'@receiver'",
"'@param'", "'@setparam'", "'@delegate'", "'dynamic'", "'public'", "'private'",
"'protected'", "'internal'", "'enum'", "'sealed'", "'annotation'", "'data'",
"'inner'", "'tailrec'", "'operator'", "'inline'", "'infix'", "'external'",
"'suspend'", "'override'", "'abstract'", "'final'", "'open'", "'const'",
"'lateinit'", "'vararg'", "'noinline'", "'crossinline'", "'reified'",
null, "'\"\"\"'", null, null, null, null, null, null, null, null, "'null'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "ShebangLine", "DelimitedComment", "LineComment", "WS", "NL", "RESERVED",
"DOT", "COMMA", "LPAREN", "RPAREN", "LSQUARE", "RSQUARE", "LCURL", "RCURL",
"MULT", "MOD", "DIV", "ADD", "SUB", "INCR", "DECR", "CONJ", "DISJ", "EXCL",
"COLON", "SEMICOLON", "ASSIGNMENT", "ADD_ASSIGNMENT", "SUB_ASSIGNMENT",
"MULT_ASSIGNMENT", "DIV_ASSIGNMENT", "MOD_ASSIGNMENT", "ARROW", "DOUBLE_ARROW",
"RANGE", "COLONCOLON", "Q_COLONCOLON", "DOUBLE_SEMICOLON", "HASH", "AT",
"QUEST", "ELVIS", "LANGLE", "RANGLE", "LE", "GE", "EXCL_EQ", "EXCL_EQEQ",
"AS_SAFE", "EQEQ", "EQEQEQ", "SINGLE_QUOTE", "RETURN_AT", "CONTINUE_AT",
"BREAK_AT", "FILE", "PACKAGE", "IMPORT", "CLASS", "INTERFACE", "FUN",
"OBJECT", "VAL", "VAR", "TYPE_ALIAS", "CONSTRUCTOR", "BY", "COMPANION",
"INIT", "THIS", "SUPER", "TYPEOF", "WHERE", "IF", "ELSE", "WHEN", "TRY",
"CATCH", "FINALLY", "FOR", "DO", "WHILE", "THROW", "RETURN", "CONTINUE",
"BREAK", "AS", "IS", "IN", "NOT_IS", "NOT_IN", "OUT", "FIELD", "PROPERTY",
"GET", "SET", "GETTER", "SETTER", "RECEIVER", "PARAM", "SETPARAM", "DELEGATE",
"DYNAMIC", "PUBLIC", "PRIVATE", "PROTECTED", "INTERNAL", "ENUM", "SEALED",
"ANNOTATION", "DATA", "INNER", "TAILREC", "OPERATOR", "INLINE", "INFIX",
"EXTERNAL", "SUSPEND", "OVERRIDE", "ABSTRACT", "FINAL", "OPEN", "CONST",
"LATEINIT", "VARARG", "NOINLINE", "CROSSINLINE", "REIFIED", "QUOTE_OPEN",
"TRIPLE_QUOTE_OPEN", "RealLiteral", "FloatLiteral", "DoubleLiteral",
"LongLiteral", "IntegerLiteral", "HexLiteral", "BinLiteral", "BooleanLiteral",
"NullLiteral", "Identifier", "LabelReference", "LabelDefinition", "FieldIdentifier",
"CharacterLiteral", "UNICODE_CLASS_LL", "UNICODE_CLASS_LM", "UNICODE_CLASS_LO",
"UNICODE_CLASS_LT", "UNICODE_CLASS_LU", "UNICODE_CLASS_ND", "UNICODE_CLASS_NL",
"Inside_Comment", "Inside_WS", "Inside_NL", "QUOTE_CLOSE", "LineStrRef",
"LineStrText", "LineStrEscapedChar", "LineStrExprStart", "TRIPLE_QUOTE_CLOSE",
"MultiLineStringQuote", "MultiLineStrRef", "MultiLineStrText", "MultiLineStrEscapedChar",
"MultiLineStrExprStart", "MultiLineNL", "StrExpr_IN", "StrExpr_Comment",
"StrExpr_WS", "StrExpr_NL"
};
}
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] = "";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "KotlinParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public KotlinParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@SuppressWarnings("CheckReturnValue")
public static class KotlinFileContext extends ParserRuleContext {
public PreambleContext preamble() {
return getRuleContext(PreambleContext.class,0);
}
public TerminalNode EOF() { return getToken(KotlinParser.EOF, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List anysemi() {
return getRuleContexts(AnysemiContext.class);
}
public AnysemiContext anysemi(int i) {
return getRuleContext(AnysemiContext.class,i);
}
public List topLevelObject() {
return getRuleContexts(TopLevelObjectContext.class);
}
public TopLevelObjectContext topLevelObject(int i) {
return getRuleContext(TopLevelObjectContext.class,i);
}
public KotlinFileContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_kotlinFile; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterKotlinFile(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitKotlinFile(this);
}
}
public final KotlinFileContext kotlinFile() throws RecognitionException {
KotlinFileContext _localctx = new KotlinFileContext(_ctx, getState());
enterRule(_localctx, 0, RULE_kotlinFile);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(297);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(294);
match(NL);
}
}
}
setState(299);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
}
setState(300);
preamble();
setState(304);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL || _la==SEMICOLON) {
{
{
setState(301);
anysemi();
}
}
setState(306);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(321);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & 8787085823019909121L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 137472507903L) != 0)) {
{
setState(307);
topLevelObject();
setState(318);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL || _la==SEMICOLON) {
{
{
setState(309);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(308);
anysemi();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(311);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(314);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & 8787085823019909121L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 137472507903L) != 0)) {
{
setState(313);
topLevelObject();
}
}
}
}
setState(320);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(323);
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 ScriptContext extends ParserRuleContext {
public PreambleContext preamble() {
return getRuleContext(PreambleContext.class,0);
}
public TerminalNode EOF() { return getToken(KotlinParser.EOF, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List anysemi() {
return getRuleContexts(AnysemiContext.class);
}
public AnysemiContext anysemi(int i) {
return getRuleContext(AnysemiContext.class,i);
}
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public ScriptContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_script; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterScript(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitScript(this);
}
}
public final ScriptContext script() throws RecognitionException {
ScriptContext _localctx = new ScriptContext(_ctx, getState());
enterRule(_localctx, 2, RULE_script);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(328);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,6,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(325);
match(NL);
}
}
}
setState(330);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,6,_ctx);
}
setState(331);
preamble();
setState(335);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(332);
anysemi();
}
}
}
setState(337);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
}
setState(352);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -4188346347763783136L) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & -65012289L) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 24563L) != 0)) {
{
setState(338);
expression();
setState(349);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL || _la==SEMICOLON) {
{
{
setState(340);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(339);
anysemi();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(342);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(345);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) {
case 1:
{
setState(344);
expression();
}
break;
}
}
}
setState(351);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(354);
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 PreambleContext extends ParserRuleContext {
public PackageHeaderContext packageHeader() {
return getRuleContext(PackageHeaderContext.class,0);
}
public ImportListContext importList() {
return getRuleContext(ImportListContext.class,0);
}
public FileAnnotationsContext fileAnnotations() {
return getRuleContext(FileAnnotationsContext.class,0);
}
public PreambleContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_preamble; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPreamble(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPreamble(this);
}
}
public final PreambleContext preamble() throws RecognitionException {
PreambleContext _localctx = new PreambleContext(_ctx, getState());
enterRule(_localctx, 4, RULE_preamble);
try {
enterOuterAlt(_localctx, 1);
{
setState(357);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) {
case 1:
{
setState(356);
fileAnnotations();
}
break;
}
setState(359);
packageHeader();
setState(360);
importList();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FileAnnotationsContext extends ParserRuleContext {
public List fileAnnotation() {
return getRuleContexts(FileAnnotationContext.class);
}
public FileAnnotationContext fileAnnotation(int i) {
return getRuleContext(FileAnnotationContext.class,i);
}
public FileAnnotationsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_fileAnnotations; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFileAnnotations(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFileAnnotations(this);
}
}
public final FileAnnotationsContext fileAnnotations() throws RecognitionException {
FileAnnotationsContext _localctx = new FileAnnotationsContext(_ctx, getState());
enterRule(_localctx, 6, RULE_fileAnnotations);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(363);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(362);
fileAnnotation();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(365);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,13,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FileAnnotationContext extends ParserRuleContext {
public List FILE() { return getTokens(KotlinParser.FILE); }
public TerminalNode FILE(int i) {
return getToken(KotlinParser.FILE, i);
}
public List COLON() { return getTokens(KotlinParser.COLON); }
public TerminalNode COLON(int i) {
return getToken(KotlinParser.COLON, i);
}
public List LSQUARE() { return getTokens(KotlinParser.LSQUARE); }
public TerminalNode LSQUARE(int i) {
return getToken(KotlinParser.LSQUARE, i);
}
public List RSQUARE() { return getTokens(KotlinParser.RSQUARE); }
public TerminalNode RSQUARE(int i) {
return getToken(KotlinParser.RSQUARE, i);
}
public List unescapedAnnotation() {
return getRuleContexts(UnescapedAnnotationContext.class);
}
public UnescapedAnnotationContext unescapedAnnotation(int i) {
return getRuleContext(UnescapedAnnotationContext.class,i);
}
public List semi() {
return getRuleContexts(SemiContext.class);
}
public SemiContext semi(int i) {
return getRuleContext(SemiContext.class,i);
}
public FileAnnotationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_fileAnnotation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFileAnnotation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFileAnnotation(this);
}
}
public final FileAnnotationContext fileAnnotation() throws RecognitionException {
FileAnnotationContext _localctx = new FileAnnotationContext(_ctx, getState());
enterRule(_localctx, 8, RULE_fileAnnotation);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(383);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(367);
match(FILE);
setState(368);
match(COLON);
setState(378);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LSQUARE:
{
setState(369);
match(LSQUARE);
setState(371);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(370);
unescapedAnnotation();
}
}
setState(373);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( ((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 0) );
setState(375);
match(RSQUARE);
}
break;
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
{
setState(377);
unescapedAnnotation();
}
break;
default:
throw new NoViableAltException(this);
}
setState(381);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) {
case 1:
{
setState(380);
semi();
}
break;
}
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(385);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,17,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PackageHeaderContext extends ParserRuleContext {
public TerminalNode PACKAGE() { return getToken(KotlinParser.PACKAGE, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public SemiContext semi() {
return getRuleContext(SemiContext.class,0);
}
public PackageHeaderContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_packageHeader; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPackageHeader(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPackageHeader(this);
}
}
public final PackageHeaderContext packageHeader() throws RecognitionException {
PackageHeaderContext _localctx = new PackageHeaderContext(_ctx, getState());
enterRule(_localctx, 10, RULE_packageHeader);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(395);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
case 1:
{
setState(388);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(387);
modifierList();
}
}
setState(390);
match(PACKAGE);
setState(391);
identifier();
setState(393);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
case 1:
{
setState(392);
semi();
}
break;
}
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ImportListContext extends ParserRuleContext {
public List importHeader() {
return getRuleContexts(ImportHeaderContext.class);
}
public ImportHeaderContext importHeader(int i) {
return getRuleContext(ImportHeaderContext.class,i);
}
public ImportListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_importList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterImportList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitImportList(this);
}
}
public final ImportListContext importList() throws RecognitionException {
ImportListContext _localctx = new ImportListContext(_ctx, getState());
enterRule(_localctx, 12, RULE_importList);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(400);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,21,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(397);
importHeader();
}
}
}
setState(402);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,21,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ImportHeaderContext extends ParserRuleContext {
public TerminalNode IMPORT() { return getToken(KotlinParser.IMPORT, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TerminalNode DOT() { return getToken(KotlinParser.DOT, 0); }
public TerminalNode MULT() { return getToken(KotlinParser.MULT, 0); }
public ImportAliasContext importAlias() {
return getRuleContext(ImportAliasContext.class,0);
}
public SemiContext semi() {
return getRuleContext(SemiContext.class,0);
}
public ImportHeaderContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_importHeader; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterImportHeader(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitImportHeader(this);
}
}
public final ImportHeaderContext importHeader() throws RecognitionException {
ImportHeaderContext _localctx = new ImportHeaderContext(_ctx, getState());
enterRule(_localctx, 14, RULE_importHeader);
try {
enterOuterAlt(_localctx, 1);
{
setState(403);
match(IMPORT);
setState(404);
identifier();
setState(408);
_errHandler.sync(this);
switch (_input.LA(1)) {
case DOT:
{
setState(405);
match(DOT);
setState(406);
match(MULT);
}
break;
case AS:
{
setState(407);
importAlias();
}
break;
case EOF:
case NL:
case LPAREN:
case LSQUARE:
case LCURL:
case ADD:
case SUB:
case INCR:
case DECR:
case EXCL:
case SEMICOLON:
case COLONCOLON:
case Q_COLONCOLON:
case AT:
case RETURN_AT:
case CONTINUE_AT:
case BREAK_AT:
case FILE:
case IMPORT:
case CLASS:
case INTERFACE:
case FUN:
case OBJECT:
case VAL:
case VAR:
case TYPE_ALIAS:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case THIS:
case SUPER:
case WHERE:
case IF:
case WHEN:
case TRY:
case CATCH:
case FINALLY:
case FOR:
case DO:
case WHILE:
case THROW:
case RETURN:
case CONTINUE:
case BREAK:
case IN:
case OUT:
case FIELD:
case PROPERTY:
case GET:
case SET:
case GETTER:
case SETTER:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case QUOTE_OPEN:
case TRIPLE_QUOTE_OPEN:
case RealLiteral:
case LongLiteral:
case IntegerLiteral:
case HexLiteral:
case BinLiteral:
case BooleanLiteral:
case NullLiteral:
case Identifier:
case LabelReference:
case LabelDefinition:
case CharacterLiteral:
break;
default:
break;
}
setState(411);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
case 1:
{
setState(410);
semi();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ImportAliasContext extends ParserRuleContext {
public TerminalNode AS() { return getToken(KotlinParser.AS, 0); }
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public ImportAliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_importAlias; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterImportAlias(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitImportAlias(this);
}
}
public final ImportAliasContext importAlias() throws RecognitionException {
ImportAliasContext _localctx = new ImportAliasContext(_ctx, getState());
enterRule(_localctx, 16, RULE_importAlias);
try {
enterOuterAlt(_localctx, 1);
{
setState(413);
match(AS);
setState(414);
simpleIdentifier();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TopLevelObjectContext extends ParserRuleContext {
public ClassDeclarationContext classDeclaration() {
return getRuleContext(ClassDeclarationContext.class,0);
}
public ObjectDeclarationContext objectDeclaration() {
return getRuleContext(ObjectDeclarationContext.class,0);
}
public FunctionDeclarationContext functionDeclaration() {
return getRuleContext(FunctionDeclarationContext.class,0);
}
public PropertyDeclarationContext propertyDeclaration() {
return getRuleContext(PropertyDeclarationContext.class,0);
}
public TypeAliasContext typeAlias() {
return getRuleContext(TypeAliasContext.class,0);
}
public TopLevelObjectContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_topLevelObject; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTopLevelObject(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTopLevelObject(this);
}
}
public final TopLevelObjectContext topLevelObject() throws RecognitionException {
TopLevelObjectContext _localctx = new TopLevelObjectContext(_ctx, getState());
enterRule(_localctx, 18, RULE_topLevelObject);
try {
setState(421);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(416);
classDeclaration();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(417);
objectDeclaration();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(418);
functionDeclaration();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(419);
propertyDeclaration();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(420);
typeAlias();
}
break;
}
}
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 SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode CLASS() { return getToken(KotlinParser.CLASS, 0); }
public TerminalNode INTERFACE() { return getToken(KotlinParser.INTERFACE, 0); }
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeParametersContext typeParameters() {
return getRuleContext(TypeParametersContext.class,0);
}
public PrimaryConstructorContext primaryConstructor() {
return getRuleContext(PrimaryConstructorContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public DelegationSpecifiersContext delegationSpecifiers() {
return getRuleContext(DelegationSpecifiersContext.class,0);
}
public TypeConstraintsContext typeConstraints() {
return getRuleContext(TypeConstraintsContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public EnumClassBodyContext enumClassBody() {
return getRuleContext(EnumClassBodyContext.class,0);
}
public ClassDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassDeclaration(this);
}
}
public final ClassDeclarationContext classDeclaration() throws RecognitionException {
ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState());
enterRule(_localctx, 20, RULE_classDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(424);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(423);
modifierList();
}
}
setState(426);
_la = _input.LA(1);
if ( !(_la==CLASS || _la==INTERFACE) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(430);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(427);
match(NL);
}
}
setState(432);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(433);
simpleIdentifier();
setState(441);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
case 1:
{
setState(437);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(434);
match(NL);
}
}
setState(439);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(440);
typeParameters();
}
break;
}
setState(450);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) {
case 1:
{
setState(446);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(443);
match(NL);
}
}
setState(448);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(449);
primaryConstructor();
}
break;
}
setState(466);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) {
case 1:
{
setState(455);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(452);
match(NL);
}
}
setState(457);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(458);
match(COLON);
setState(462);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(459);
match(NL);
}
}
setState(464);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(465);
delegationSpecifiers();
}
break;
}
setState(475);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) {
case 1:
{
setState(471);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(468);
match(NL);
}
}
setState(473);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(474);
typeConstraints();
}
break;
}
setState(491);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) {
case 1:
{
setState(480);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(477);
match(NL);
}
}
setState(482);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(483);
classBody();
}
break;
case 2:
{
setState(487);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(484);
match(NL);
}
}
setState(489);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(490);
enumClassBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PrimaryConstructorContext extends ParserRuleContext {
public ClassParametersContext classParameters() {
return getRuleContext(ClassParametersContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TerminalNode CONSTRUCTOR() { return getToken(KotlinParser.CONSTRUCTOR, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public PrimaryConstructorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_primaryConstructor; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPrimaryConstructor(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPrimaryConstructor(this);
}
}
public final PrimaryConstructorContext primaryConstructor() throws RecognitionException {
PrimaryConstructorContext _localctx = new PrimaryConstructorContext(_ctx, getState());
enterRule(_localctx, 22, RULE_primaryConstructor);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(494);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(493);
modifierList();
}
}
setState(503);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==CONSTRUCTOR) {
{
setState(496);
match(CONSTRUCTOR);
setState(500);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(497);
match(NL);
}
}
setState(502);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(505);
classParameters();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassParametersContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List classParameter() {
return getRuleContexts(ClassParameterContext.class);
}
public ClassParameterContext classParameter(int i) {
return getRuleContext(ClassParameterContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public ClassParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classParameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassParameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassParameters(this);
}
}
public final ClassParametersContext classParameters() throws RecognitionException {
ClassParametersContext _localctx = new ClassParametersContext(_ctx, getState());
enterRule(_localctx, 24, RULE_classParameters);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(507);
match(LPAREN);
setState(519);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & -3939815418167295L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 206191984639L) != 0)) {
{
setState(508);
classParameter();
setState(513);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,42,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(509);
match(COMMA);
setState(510);
classParameter();
}
}
}
setState(515);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,42,_ctx);
}
setState(517);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(516);
match(COMMA);
}
}
}
}
setState(521);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassParameterContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode VAL() { return getToken(KotlinParser.VAL, 0); }
public TerminalNode VAR() { return getToken(KotlinParser.VAR, 0); }
public ClassParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classParameter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassParameter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassParameter(this);
}
}
public final ClassParameterContext classParameter() throws RecognitionException {
ClassParameterContext _localctx = new ClassParameterContext(_ctx, getState());
enterRule(_localctx, 26, RULE_classParameter);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(524);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
case 1:
{
setState(523);
modifierList();
}
break;
}
setState(527);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==VAL || _la==VAR) {
{
setState(526);
_la = _input.LA(1);
if ( !(_la==VAL || _la==VAR) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
}
setState(529);
simpleIdentifier();
setState(530);
match(COLON);
setState(531);
type();
setState(534);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==ASSIGNMENT) {
{
setState(532);
match(ASSIGNMENT);
setState(533);
expression();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class DelegationSpecifiersContext extends ParserRuleContext {
public List delegationSpecifier() {
return getRuleContexts(DelegationSpecifierContext.class);
}
public DelegationSpecifierContext delegationSpecifier(int i) {
return getRuleContext(DelegationSpecifierContext.class,i);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public DelegationSpecifiersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_delegationSpecifiers; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterDelegationSpecifiers(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitDelegationSpecifiers(this);
}
}
public final DelegationSpecifiersContext delegationSpecifiers() throws RecognitionException {
DelegationSpecifiersContext _localctx = new DelegationSpecifiersContext(_ctx, getState());
enterRule(_localctx, 28, RULE_delegationSpecifiers);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(539);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(536);
annotations();
}
}
setState(541);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(542);
delegationSpecifier();
setState(565);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,52,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(546);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(543);
match(NL);
}
}
setState(548);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(549);
match(COMMA);
setState(553);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(550);
match(NL);
}
}
setState(555);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(559);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(556);
annotations();
}
}
setState(561);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(562);
delegationSpecifier();
}
}
}
setState(567);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,52,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class DelegationSpecifierContext extends ParserRuleContext {
public ConstructorInvocationContext constructorInvocation() {
return getRuleContext(ConstructorInvocationContext.class,0);
}
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public ExplicitDelegationContext explicitDelegation() {
return getRuleContext(ExplicitDelegationContext.class,0);
}
public DelegationSpecifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_delegationSpecifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterDelegationSpecifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitDelegationSpecifier(this);
}
}
public final DelegationSpecifierContext delegationSpecifier() throws RecognitionException {
DelegationSpecifierContext _localctx = new DelegationSpecifierContext(_ctx, getState());
enterRule(_localctx, 30, RULE_delegationSpecifier);
try {
setState(571);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(568);
constructorInvocation();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(569);
userType();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(570);
explicitDelegation();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstructorInvocationContext extends ParserRuleContext {
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public CallSuffixContext callSuffix() {
return getRuleContext(CallSuffixContext.class,0);
}
public ConstructorInvocationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constructorInvocation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterConstructorInvocation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitConstructorInvocation(this);
}
}
public final ConstructorInvocationContext constructorInvocation() throws RecognitionException {
ConstructorInvocationContext _localctx = new ConstructorInvocationContext(_ctx, getState());
enterRule(_localctx, 32, RULE_constructorInvocation);
try {
enterOuterAlt(_localctx, 1);
{
setState(573);
userType();
setState(574);
callSuffix();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ExplicitDelegationContext extends ParserRuleContext {
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public TerminalNode BY() { return getToken(KotlinParser.BY, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ExplicitDelegationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_explicitDelegation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterExplicitDelegation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitExplicitDelegation(this);
}
}
public final ExplicitDelegationContext explicitDelegation() throws RecognitionException {
ExplicitDelegationContext _localctx = new ExplicitDelegationContext(_ctx, getState());
enterRule(_localctx, 34, RULE_explicitDelegation);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(576);
userType();
setState(580);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(577);
match(NL);
}
}
setState(582);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(583);
match(BY);
setState(587);
_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(584);
match(NL);
}
}
}
setState(589);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,55,_ctx);
}
setState(590);
expression();
}
}
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 LCURL() { return getToken(KotlinParser.LCURL, 0); }
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List classMemberDeclaration() {
return getRuleContexts(ClassMemberDeclarationContext.class);
}
public ClassMemberDeclarationContext classMemberDeclaration(int i) {
return getRuleContext(ClassMemberDeclarationContext.class,i);
}
public ClassBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classBody; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassBody(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassBody(this);
}
}
public final ClassBodyContext classBody() throws RecognitionException {
ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState());
enterRule(_localctx, 36, RULE_classBody);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(592);
match(LCURL);
setState(596);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,56,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(593);
match(NL);
}
}
}
setState(598);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,56,_ctx);
}
setState(602);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & 8787085823892324353L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 137472507903L) != 0)) {
{
{
setState(599);
classMemberDeclaration();
}
}
setState(604);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(608);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(605);
match(NL);
}
}
setState(610);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(611);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassMemberDeclarationContext extends ParserRuleContext {
public ClassDeclarationContext classDeclaration() {
return getRuleContext(ClassDeclarationContext.class,0);
}
public FunctionDeclarationContext functionDeclaration() {
return getRuleContext(FunctionDeclarationContext.class,0);
}
public ObjectDeclarationContext objectDeclaration() {
return getRuleContext(ObjectDeclarationContext.class,0);
}
public CompanionObjectContext companionObject() {
return getRuleContext(CompanionObjectContext.class,0);
}
public PropertyDeclarationContext propertyDeclaration() {
return getRuleContext(PropertyDeclarationContext.class,0);
}
public AnonymousInitializerContext anonymousInitializer() {
return getRuleContext(AnonymousInitializerContext.class,0);
}
public SecondaryConstructorContext secondaryConstructor() {
return getRuleContext(SecondaryConstructorContext.class,0);
}
public TypeAliasContext typeAlias() {
return getRuleContext(TypeAliasContext.class,0);
}
public List anysemi() {
return getRuleContexts(AnysemiContext.class);
}
public AnysemiContext anysemi(int i) {
return getRuleContext(AnysemiContext.class,i);
}
public ClassMemberDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classMemberDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassMemberDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassMemberDeclaration(this);
}
}
public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException {
ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState());
enterRule(_localctx, 38, RULE_classMemberDeclaration);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(621);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) {
case 1:
{
setState(613);
classDeclaration();
}
break;
case 2:
{
setState(614);
functionDeclaration();
}
break;
case 3:
{
setState(615);
objectDeclaration();
}
break;
case 4:
{
setState(616);
companionObject();
}
break;
case 5:
{
setState(617);
propertyDeclaration();
}
break;
case 6:
{
setState(618);
anonymousInitializer();
}
break;
case 7:
{
setState(619);
secondaryConstructor();
}
break;
case 8:
{
setState(620);
typeAlias();
}
break;
}
setState(624);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(623);
anysemi();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(626);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,60,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AnonymousInitializerContext extends ParserRuleContext {
public TerminalNode INIT() { return getToken(KotlinParser.INIT, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public AnonymousInitializerContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_anonymousInitializer; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnonymousInitializer(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnonymousInitializer(this);
}
}
public final AnonymousInitializerContext anonymousInitializer() throws RecognitionException {
AnonymousInitializerContext _localctx = new AnonymousInitializerContext(_ctx, getState());
enterRule(_localctx, 40, RULE_anonymousInitializer);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(628);
match(INIT);
setState(632);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(629);
match(NL);
}
}
setState(634);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(635);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SecondaryConstructorContext extends ParserRuleContext {
public TerminalNode CONSTRUCTOR() { return getToken(KotlinParser.CONSTRUCTOR, 0); }
public FunctionValueParametersContext functionValueParameters() {
return getRuleContext(FunctionValueParametersContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public ConstructorDelegationCallContext constructorDelegationCall() {
return getRuleContext(ConstructorDelegationCallContext.class,0);
}
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public SecondaryConstructorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_secondaryConstructor; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSecondaryConstructor(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSecondaryConstructor(this);
}
}
public final SecondaryConstructorContext secondaryConstructor() throws RecognitionException {
SecondaryConstructorContext _localctx = new SecondaryConstructorContext(_ctx, getState());
enterRule(_localctx, 42, RULE_secondaryConstructor);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(638);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(637);
modifierList();
}
}
setState(640);
match(CONSTRUCTOR);
setState(644);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(641);
match(NL);
}
}
setState(646);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(647);
functionValueParameters();
setState(662);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,66,_ctx) ) {
case 1:
{
setState(651);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(648);
match(NL);
}
}
setState(653);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(654);
match(COLON);
setState(658);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(655);
match(NL);
}
}
setState(660);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(661);
constructorDelegationCall();
}
break;
}
setState(667);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,67,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(664);
match(NL);
}
}
}
setState(669);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,67,_ctx);
}
setState(671);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LCURL) {
{
setState(670);
block();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConstructorDelegationCallContext extends ParserRuleContext {
public TerminalNode THIS() { return getToken(KotlinParser.THIS, 0); }
public ValueArgumentsContext valueArguments() {
return getRuleContext(ValueArgumentsContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode SUPER() { return getToken(KotlinParser.SUPER, 0); }
public ConstructorDelegationCallContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_constructorDelegationCall; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterConstructorDelegationCall(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitConstructorDelegationCall(this);
}
}
public final ConstructorDelegationCallContext constructorDelegationCall() throws RecognitionException {
ConstructorDelegationCallContext _localctx = new ConstructorDelegationCallContext(_ctx, getState());
enterRule(_localctx, 44, RULE_constructorDelegationCall);
int _la;
try {
setState(689);
_errHandler.sync(this);
switch (_input.LA(1)) {
case THIS:
enterOuterAlt(_localctx, 1);
{
setState(673);
match(THIS);
setState(677);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(674);
match(NL);
}
}
setState(679);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(680);
valueArguments();
}
break;
case SUPER:
enterOuterAlt(_localctx, 2);
{
setState(681);
match(SUPER);
setState(685);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(682);
match(NL);
}
}
setState(687);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(688);
valueArguments();
}
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 EnumClassBodyContext extends ParserRuleContext {
public TerminalNode LCURL() { return getToken(KotlinParser.LCURL, 0); }
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public EnumEntriesContext enumEntries() {
return getRuleContext(EnumEntriesContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(KotlinParser.SEMICOLON, 0); }
public List classMemberDeclaration() {
return getRuleContexts(ClassMemberDeclarationContext.class);
}
public ClassMemberDeclarationContext classMemberDeclaration(int i) {
return getRuleContext(ClassMemberDeclarationContext.class,i);
}
public EnumClassBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_enumClassBody; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterEnumClassBody(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitEnumClassBody(this);
}
}
public final EnumClassBodyContext enumClassBody() throws RecognitionException {
EnumClassBodyContext _localctx = new EnumClassBodyContext(_ctx, getState());
enterRule(_localctx, 46, RULE_enumClassBody);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(691);
match(LCURL);
setState(695);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,72,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(692);
match(NL);
}
}
}
setState(697);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,72,_ctx);
}
setState(699);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & -4502765396754431L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 206191984639L) != 0)) {
{
setState(698);
enumEntries();
}
}
setState(720);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,77,_ctx) ) {
case 1:
{
setState(704);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(701);
match(NL);
}
}
setState(706);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(707);
match(SEMICOLON);
setState(711);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,75,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(708);
match(NL);
}
}
}
setState(713);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,75,_ctx);
}
setState(717);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & 8787085823892324353L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 137472507903L) != 0)) {
{
{
setState(714);
classMemberDeclaration();
}
}
setState(719);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
}
setState(725);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(722);
match(NL);
}
}
setState(727);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(728);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class EnumEntriesContext extends ParserRuleContext {
public List enumEntry() {
return getRuleContexts(EnumEntryContext.class);
}
public EnumEntryContext enumEntry(int i) {
return getRuleContext(EnumEntryContext.class,i);
}
public TerminalNode SEMICOLON() { return getToken(KotlinParser.SEMICOLON, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public EnumEntriesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_enumEntries; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterEnumEntries(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitEnumEntries(this);
}
}
public final EnumEntriesContext enumEntries() throws RecognitionException {
EnumEntriesContext _localctx = new EnumEntriesContext(_ctx, getState());
enterRule(_localctx, 48, RULE_enumEntries);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(737);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(730);
enumEntry();
setState(734);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,79,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(731);
match(NL);
}
}
}
setState(736);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,79,_ctx);
}
}
}
setState(739);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( ((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & -4502765396754431L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 206191984639L) != 0) );
setState(742);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,81,_ctx) ) {
case 1:
{
setState(741);
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 EnumEntryContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public ValueArgumentsContext valueArguments() {
return getRuleContext(ValueArgumentsContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public TerminalNode COMMA() { return getToken(KotlinParser.COMMA, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public EnumEntryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_enumEntry; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterEnumEntry(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitEnumEntry(this);
}
}
public final EnumEntryContext enumEntry() throws RecognitionException {
EnumEntryContext _localctx = new EnumEntryContext(_ctx, getState());
enterRule(_localctx, 50, RULE_enumEntry);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(747);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(744);
annotations();
}
}
setState(749);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(750);
simpleIdentifier();
setState(758);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) {
case 1:
{
setState(754);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(751);
match(NL);
}
}
setState(756);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(757);
valueArguments();
}
break;
}
setState(767);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) {
case 1:
{
setState(763);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(760);
match(NL);
}
}
setState(765);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(766);
classBody();
}
break;
}
setState(776);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) {
case 1:
{
setState(772);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(769);
match(NL);
}
}
setState(774);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(775);
match(COMMA);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionDeclarationContext extends ParserRuleContext {
public TerminalNode FUN() { return getToken(KotlinParser.FUN, 0); }
public FunctionValueParametersContext functionValueParameters() {
return getRuleContext(FunctionValueParametersContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List type() {
return getRuleContexts(TypeContext.class);
}
public TypeContext type(int i) {
return getRuleContext(TypeContext.class,i);
}
public List DOT() { return getTokens(KotlinParser.DOT); }
public TerminalNode DOT(int i) {
return getToken(KotlinParser.DOT, i);
}
public TypeParametersContext typeParameters() {
return getRuleContext(TypeParametersContext.class,0);
}
public ReceiverTypeContext receiverType() {
return getRuleContext(ReceiverTypeContext.class,0);
}
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeConstraintsContext typeConstraints() {
return getRuleContext(TypeConstraintsContext.class,0);
}
public FunctionBodyContext functionBody() {
return getRuleContext(FunctionBodyContext.class,0);
}
public FunctionDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionDeclaration(this);
}
}
public final FunctionDeclarationContext functionDeclaration() throws RecognitionException {
FunctionDeclarationContext _localctx = new FunctionDeclarationContext(_ctx, getState());
enterRule(_localctx, 52, RULE_functionDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(779);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(778);
modifierList();
}
}
setState(781);
match(FUN);
setState(797);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,92,_ctx) ) {
case 1:
{
setState(785);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(782);
match(NL);
}
}
setState(787);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(788);
type();
setState(792);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(789);
match(NL);
}
}
setState(794);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(795);
match(DOT);
}
break;
}
setState(806);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,94,_ctx) ) {
case 1:
{
setState(802);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(799);
match(NL);
}
}
setState(804);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(805);
typeParameters();
}
break;
}
setState(823);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,97,_ctx) ) {
case 1:
{
setState(811);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(808);
match(NL);
}
}
setState(813);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(814);
receiverType();
setState(818);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(815);
match(NL);
}
}
setState(820);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(821);
match(DOT);
}
break;
}
setState(832);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) {
case 1:
{
setState(828);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(825);
match(NL);
}
}
setState(830);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(831);
identifier();
}
break;
}
setState(837);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(834);
match(NL);
}
}
setState(839);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(840);
functionValueParameters();
setState(855);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,103,_ctx) ) {
case 1:
{
setState(844);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(841);
match(NL);
}
}
setState(846);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(847);
match(COLON);
setState(851);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(848);
match(NL);
}
}
setState(853);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(854);
type();
}
break;
}
setState(864);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,105,_ctx) ) {
case 1:
{
setState(860);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(857);
match(NL);
}
}
setState(862);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(863);
typeConstraints();
}
break;
}
setState(873);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) {
case 1:
{
setState(869);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(866);
match(NL);
}
}
setState(871);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(872);
functionBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionValueParametersContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List functionValueParameter() {
return getRuleContexts(FunctionValueParameterContext.class);
}
public FunctionValueParameterContext functionValueParameter(int i) {
return getRuleContext(FunctionValueParameterContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public FunctionValueParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionValueParameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionValueParameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionValueParameters(this);
}
}
public final FunctionValueParametersContext functionValueParameters() throws RecognitionException {
FunctionValueParametersContext _localctx = new FunctionValueParametersContext(_ctx, getState());
enterRule(_localctx, 54, RULE_functionValueParameters);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(875);
match(LPAREN);
setState(887);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 40)) & ~0x3f) == 0 && ((1L << (_la - 40)) & -3939815443333119L) != 0) || ((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 206191984639L) != 0)) {
{
setState(876);
functionValueParameter();
setState(881);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,108,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(877);
match(COMMA);
setState(878);
functionValueParameter();
}
}
}
setState(883);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,108,_ctx);
}
setState(885);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COMMA) {
{
setState(884);
match(COMMA);
}
}
}
}
setState(889);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionValueParameterContext extends ParserRuleContext {
public ParameterContext parameter() {
return getRuleContext(ParameterContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public FunctionValueParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionValueParameter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionValueParameter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionValueParameter(this);
}
}
public final FunctionValueParameterContext functionValueParameter() throws RecognitionException {
FunctionValueParameterContext _localctx = new FunctionValueParameterContext(_ctx, getState());
enterRule(_localctx, 56, RULE_functionValueParameter);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(892);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) {
case 1:
{
setState(891);
modifierList();
}
break;
}
setState(894);
parameter();
setState(897);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==ASSIGNMENT) {
{
setState(895);
match(ASSIGNMENT);
setState(896);
expression();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ParameterContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public ParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parameter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterParameter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitParameter(this);
}
}
public final ParameterContext parameter() throws RecognitionException {
ParameterContext _localctx = new ParameterContext(_ctx, getState());
enterRule(_localctx, 58, RULE_parameter);
try {
enterOuterAlt(_localctx, 1);
{
setState(899);
simpleIdentifier();
setState(900);
match(COLON);
setState(901);
type();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ReceiverTypeContext extends ParserRuleContext {
public ParenthesizedTypeContext parenthesizedType() {
return getRuleContext(ParenthesizedTypeContext.class,0);
}
public NullableTypeContext nullableType() {
return getRuleContext(NullableTypeContext.class,0);
}
public TypeReferenceContext typeReference() {
return getRuleContext(TypeReferenceContext.class,0);
}
public TypeModifierListContext typeModifierList() {
return getRuleContext(TypeModifierListContext.class,0);
}
public ReceiverTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_receiverType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterReceiverType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitReceiverType(this);
}
}
public final ReceiverTypeContext receiverType() throws RecognitionException {
ReceiverTypeContext _localctx = new ReceiverTypeContext(_ctx, getState());
enterRule(_localctx, 60, RULE_receiverType);
try {
enterOuterAlt(_localctx, 1);
{
setState(904);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,113,_ctx) ) {
case 1:
{
setState(903);
typeModifierList();
}
break;
}
setState(909);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,114,_ctx) ) {
case 1:
{
setState(906);
parenthesizedType();
}
break;
case 2:
{
setState(907);
nullableType();
}
break;
case 3:
{
setState(908);
typeReference();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionBodyContext extends ParserRuleContext {
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public FunctionBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionBody; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionBody(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionBody(this);
}
}
public final FunctionBodyContext functionBody() throws RecognitionException {
FunctionBodyContext _localctx = new FunctionBodyContext(_ctx, getState());
enterRule(_localctx, 62, RULE_functionBody);
try {
int _alt;
setState(920);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LCURL:
enterOuterAlt(_localctx, 1);
{
setState(911);
block();
}
break;
case ASSIGNMENT:
enterOuterAlt(_localctx, 2);
{
setState(912);
match(ASSIGNMENT);
setState(916);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,115,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(913);
match(NL);
}
}
}
setState(918);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,115,_ctx);
}
setState(919);
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 ObjectDeclarationContext extends ParserRuleContext {
public TerminalNode OBJECT() { return getToken(KotlinParser.OBJECT, 0); }
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public PrimaryConstructorContext primaryConstructor() {
return getRuleContext(PrimaryConstructorContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public DelegationSpecifiersContext delegationSpecifiers() {
return getRuleContext(DelegationSpecifiersContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public ObjectDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_objectDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterObjectDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitObjectDeclaration(this);
}
}
public final ObjectDeclarationContext objectDeclaration() throws RecognitionException {
ObjectDeclarationContext _localctx = new ObjectDeclarationContext(_ctx, getState());
enterRule(_localctx, 64, RULE_objectDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(923);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(922);
modifierList();
}
}
setState(925);
match(OBJECT);
setState(929);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(926);
match(NL);
}
}
setState(931);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(932);
simpleIdentifier();
setState(940);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) {
case 1:
{
setState(936);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(933);
match(NL);
}
}
setState(938);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(939);
primaryConstructor();
}
break;
}
setState(956);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) {
case 1:
{
setState(945);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(942);
match(NL);
}
}
setState(947);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(948);
match(COLON);
setState(952);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(949);
match(NL);
}
}
setState(954);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(955);
delegationSpecifiers();
}
break;
}
setState(965);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) {
case 1:
{
setState(961);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(958);
match(NL);
}
}
setState(963);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(964);
classBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CompanionObjectContext extends ParserRuleContext {
public TerminalNode COMPANION() { return getToken(KotlinParser.COMPANION, 0); }
public TerminalNode OBJECT() { return getToken(KotlinParser.OBJECT, 0); }
public List modifierList() {
return getRuleContexts(ModifierListContext.class);
}
public ModifierListContext modifierList(int i) {
return getRuleContext(ModifierListContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public DelegationSpecifiersContext delegationSpecifiers() {
return getRuleContext(DelegationSpecifiersContext.class,0);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public CompanionObjectContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_companionObject; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterCompanionObject(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitCompanionObject(this);
}
}
public final CompanionObjectContext companionObject() throws RecognitionException {
CompanionObjectContext _localctx = new CompanionObjectContext(_ctx, getState());
enterRule(_localctx, 66, RULE_companionObject);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(968);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(967);
modifierList();
}
}
setState(970);
match(COMPANION);
setState(974);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(971);
match(NL);
}
}
setState(976);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(978);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(977);
modifierList();
}
}
setState(980);
match(OBJECT);
setState(988);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) {
case 1:
{
setState(984);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(981);
match(NL);
}
}
setState(986);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(987);
simpleIdentifier();
}
break;
}
setState(1004);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) {
case 1:
{
setState(993);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(990);
match(NL);
}
}
setState(995);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(996);
match(COLON);
setState(1000);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(997);
match(NL);
}
}
setState(1002);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1003);
delegationSpecifiers();
}
break;
}
setState(1013);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) {
case 1:
{
setState(1009);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1006);
match(NL);
}
}
setState(1011);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1012);
classBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PropertyDeclarationContext extends ParserRuleContext {
public TerminalNode VAL() { return getToken(KotlinParser.VAL, 0); }
public TerminalNode VAR() { return getToken(KotlinParser.VAR, 0); }
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TypeParametersContext typeParameters() {
return getRuleContext(TypeParametersContext.class,0);
}
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TerminalNode DOT() { return getToken(KotlinParser.DOT, 0); }
public TypeConstraintsContext typeConstraints() {
return getRuleContext(TypeConstraintsContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public GetterContext getter() {
return getRuleContext(GetterContext.class,0);
}
public SetterContext setter() {
return getRuleContext(SetterContext.class,0);
}
public MultiVariableDeclarationContext multiVariableDeclaration() {
return getRuleContext(MultiVariableDeclarationContext.class,0);
}
public VariableDeclarationContext variableDeclaration() {
return getRuleContext(VariableDeclarationContext.class,0);
}
public TerminalNode BY() { return getToken(KotlinParser.BY, 0); }
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public SemiContext semi() {
return getRuleContext(SemiContext.class,0);
}
public PropertyDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_propertyDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPropertyDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPropertyDeclaration(this);
}
}
public final PropertyDeclarationContext propertyDeclaration() throws RecognitionException {
PropertyDeclarationContext _localctx = new PropertyDeclarationContext(_ctx, getState());
enterRule(_localctx, 68, RULE_propertyDeclaration);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1016);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1015);
modifierList();
}
}
setState(1018);
_la = _input.LA(1);
if ( !(_la==VAL || _la==VAR) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(1026);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,138,_ctx) ) {
case 1:
{
setState(1022);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1019);
match(NL);
}
}
setState(1024);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1025);
typeParameters();
}
break;
}
setState(1043);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) {
case 1:
{
setState(1031);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1028);
match(NL);
}
}
setState(1033);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1034);
type();
setState(1038);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1035);
match(NL);
}
}
setState(1040);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1041);
match(DOT);
}
break;
}
{
setState(1048);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1045);
match(NL);
}
}
setState(1050);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1053);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LPAREN:
{
setState(1051);
multiVariableDeclaration();
}
break;
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
{
setState(1052);
variableDeclaration();
}
break;
default:
throw new NoViableAltException(this);
}
}
setState(1062);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) {
case 1:
{
setState(1058);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1055);
match(NL);
}
}
setState(1060);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1061);
typeConstraints();
}
break;
}
setState(1078);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) {
case 1:
{
setState(1067);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1064);
match(NL);
}
}
setState(1069);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1070);
_la = _input.LA(1);
if ( !(_la==ASSIGNMENT || _la==BY) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(1074);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,147,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1071);
match(NL);
}
}
}
setState(1076);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,147,_ctx);
}
setState(1077);
expression();
}
break;
}
setState(1104);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) {
case 1:
{
setState(1083);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1080);
match(NL);
}
}
setState(1085);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1086);
getter();
setState(1090);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) {
case 1:
{
setState(1087);
semi();
setState(1088);
setter();
}
break;
}
}
break;
case 2:
{
setState(1095);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1092);
match(NL);
}
}
setState(1097);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1098);
setter();
setState(1102);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,152,_ctx) ) {
case 1:
{
setState(1099);
semi();
setState(1100);
getter();
}
break;
}
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MultiVariableDeclarationContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public List variableDeclaration() {
return getRuleContexts(VariableDeclarationContext.class);
}
public VariableDeclarationContext variableDeclaration(int i) {
return getRuleContext(VariableDeclarationContext.class,i);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public MultiVariableDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiVariableDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiVariableDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiVariableDeclaration(this);
}
}
public final MultiVariableDeclarationContext multiVariableDeclaration() throws RecognitionException {
MultiVariableDeclarationContext _localctx = new MultiVariableDeclarationContext(_ctx, getState());
enterRule(_localctx, 70, RULE_multiVariableDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1106);
match(LPAREN);
setState(1107);
variableDeclaration();
setState(1112);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1108);
match(COMMA);
setState(1109);
variableDeclaration();
}
}
setState(1114);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1115);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class VariableDeclarationContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public VariableDeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variableDeclaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterVariableDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitVariableDeclaration(this);
}
}
public final VariableDeclarationContext variableDeclaration() throws RecognitionException {
VariableDeclarationContext _localctx = new VariableDeclarationContext(_ctx, getState());
enterRule(_localctx, 72, RULE_variableDeclaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1117);
simpleIdentifier();
setState(1120);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==COLON) {
{
setState(1118);
match(COLON);
setState(1119);
type();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class GetterContext extends ParserRuleContext {
public TerminalNode GETTER() { return getToken(KotlinParser.GETTER, 0); }
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public GetterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_getter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterGetter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitGetter(this);
}
}
public final GetterContext getter() throws RecognitionException {
GetterContext _localctx = new GetterContext(_ctx, getState());
enterRule(_localctx, 74, RULE_getter);
int _la;
try {
int _alt;
setState(1171);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1123);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1122);
modifierList();
}
}
setState(1125);
match(GETTER);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1127);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1126);
modifierList();
}
}
setState(1129);
match(GETTER);
setState(1133);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1130);
match(NL);
}
}
setState(1135);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1136);
match(LPAREN);
setState(1137);
match(RPAREN);
setState(1152);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) {
case 1:
{
setState(1141);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1138);
match(NL);
}
}
setState(1143);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1144);
match(COLON);
setState(1148);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1145);
match(NL);
}
}
setState(1150);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1151);
type();
}
break;
}
setState(1157);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1154);
match(NL);
}
}
setState(1159);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1169);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LCURL:
{
setState(1160);
block();
}
break;
case ASSIGNMENT:
{
setState(1161);
match(ASSIGNMENT);
setState(1165);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,163,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1162);
match(NL);
}
}
}
setState(1167);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,163,_ctx);
}
setState(1168);
expression();
}
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 SetterContext extends ParserRuleContext {
public TerminalNode SETTER() { return getToken(KotlinParser.SETTER, 0); }
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public FunctionBodyContext functionBody() {
return getRuleContext(FunctionBodyContext.class,0);
}
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public ParameterContext parameter() {
return getRuleContext(ParameterContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List parameterModifier() {
return getRuleContexts(ParameterModifierContext.class);
}
public ParameterModifierContext parameterModifier(int i) {
return getRuleContext(ParameterModifierContext.class,i);
}
public SetterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_setter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSetter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSetter(this);
}
}
public final SetterContext setter() throws RecognitionException {
SetterContext _localctx = new SetterContext(_ctx, getState());
enterRule(_localctx, 76, RULE_setter);
int _la;
try {
int _alt;
setState(1208);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1174);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1173);
modifierList();
}
}
setState(1176);
match(SETTER);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1178);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1177);
modifierList();
}
}
setState(1180);
match(SETTER);
setState(1184);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1181);
match(NL);
}
}
setState(1186);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1187);
match(LPAREN);
setState(1192);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,170,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
setState(1190);
_errHandler.sync(this);
switch (_input.LA(1)) {
case AT:
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case LabelReference:
{
setState(1188);
annotations();
}
break;
case VARARG:
case NOINLINE:
case CROSSINLINE:
{
setState(1189);
parameterModifier();
}
break;
default:
throw new NoViableAltException(this);
}
}
}
setState(1194);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,170,_ctx);
}
setState(1197);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) {
case 1:
{
setState(1195);
simpleIdentifier();
}
break;
case 2:
{
setState(1196);
parameter();
}
break;
}
setState(1199);
match(RPAREN);
setState(1203);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1200);
match(NL);
}
}
setState(1205);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1206);
functionBody();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeAliasContext extends ParserRuleContext {
public TerminalNode TYPE_ALIAS() { return getToken(KotlinParser.TYPE_ALIAS, 0); }
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeParametersContext typeParameters() {
return getRuleContext(TypeParametersContext.class,0);
}
public TypeAliasContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeAlias; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeAlias(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeAlias(this);
}
}
public final TypeAliasContext typeAlias() throws RecognitionException {
TypeAliasContext _localctx = new TypeAliasContext(_ctx, getState());
enterRule(_localctx, 78, RULE_typeAlias);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1211);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==AT || _la==FILE || ((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & 4504699138981113L) != 0)) {
{
setState(1210);
modifierList();
}
}
setState(1213);
match(TYPE_ALIAS);
setState(1217);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1214);
match(NL);
}
}
setState(1219);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1220);
simpleIdentifier();
setState(1228);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) {
case 1:
{
setState(1224);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1221);
match(NL);
}
}
setState(1226);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1227);
typeParameters();
}
break;
}
setState(1233);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1230);
match(NL);
}
}
setState(1235);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1236);
match(ASSIGNMENT);
setState(1240);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1237);
match(NL);
}
}
setState(1242);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1243);
type();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeParametersContext extends ParserRuleContext {
public TerminalNode LANGLE() { return getToken(KotlinParser.LANGLE, 0); }
public List typeParameter() {
return getRuleContexts(TypeParameterContext.class);
}
public TypeParameterContext typeParameter(int i) {
return getRuleContext(TypeParameterContext.class,i);
}
public TerminalNode RANGLE() { return getToken(KotlinParser.RANGLE, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public TypeParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeParameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeParameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeParameters(this);
}
}
public final TypeParametersContext typeParameters() throws RecognitionException {
TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState());
enterRule(_localctx, 80, RULE_typeParameters);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1245);
match(LANGLE);
setState(1249);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,180,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1246);
match(NL);
}
}
}
setState(1251);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,180,_ctx);
}
setState(1252);
typeParameter();
setState(1269);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,183,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1256);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1253);
match(NL);
}
}
setState(1258);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1259);
match(COMMA);
setState(1263);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,182,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1260);
match(NL);
}
}
}
setState(1265);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,182,_ctx);
}
setState(1266);
typeParameter();
}
}
}
setState(1271);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,183,_ctx);
}
setState(1279);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) {
case 1:
{
setState(1275);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1272);
match(NL);
}
}
setState(1277);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1278);
match(COMMA);
}
break;
}
setState(1284);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1281);
match(NL);
}
}
setState(1286);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1287);
match(RANGLE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeParameterContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode MULT() { return getToken(KotlinParser.MULT, 0); }
public ModifierListContext modifierList() {
return getRuleContext(ModifierListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TypeParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeParameter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeParameter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeParameter(this);
}
}
public final TypeParameterContext typeParameter() throws RecognitionException {
TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState());
enterRule(_localctx, 82, RULE_typeParameter);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1290);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,187,_ctx) ) {
case 1:
{
setState(1289);
modifierList();
}
break;
}
setState(1295);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1292);
match(NL);
}
}
setState(1297);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1300);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
{
setState(1298);
simpleIdentifier();
}
break;
case MULT:
{
setState(1299);
match(MULT);
}
break;
default:
throw new NoViableAltException(this);
}
setState(1316);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) {
case 1:
{
setState(1305);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1302);
match(NL);
}
}
setState(1307);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1308);
match(COLON);
setState(1312);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1309);
match(NL);
}
}
setState(1314);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1315);
type();
}
break;
}
}
}
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 FunctionTypeContext functionType() {
return getRuleContext(FunctionTypeContext.class,0);
}
public ParenthesizedTypeContext parenthesizedType() {
return getRuleContext(ParenthesizedTypeContext.class,0);
}
public NullableTypeContext nullableType() {
return getRuleContext(NullableTypeContext.class,0);
}
public TypeReferenceContext typeReference() {
return getRuleContext(TypeReferenceContext.class,0);
}
public TypeModifierListContext typeModifierList() {
return getRuleContext(TypeModifierListContext.class,0);
}
public TypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_type; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitType(this);
}
}
public final TypeContext type() throws RecognitionException {
TypeContext _localctx = new TypeContext(_ctx, getState());
enterRule(_localctx, 84, RULE_type);
try {
enterOuterAlt(_localctx, 1);
{
setState(1319);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,193,_ctx) ) {
case 1:
{
setState(1318);
typeModifierList();
}
break;
}
setState(1325);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) {
case 1:
{
setState(1321);
functionType();
}
break;
case 2:
{
setState(1322);
parenthesizedType();
}
break;
case 3:
{
setState(1323);
nullableType();
}
break;
case 4:
{
setState(1324);
typeReference();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeModifierListContext extends ParserRuleContext {
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List SUSPEND() { return getTokens(KotlinParser.SUSPEND); }
public TerminalNode SUSPEND(int i) {
return getToken(KotlinParser.SUSPEND, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeModifierListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeModifierList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeModifierList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeModifierList(this);
}
}
public final TypeModifierListContext typeModifierList() throws RecognitionException {
TypeModifierListContext _localctx = new TypeModifierListContext(_ctx, getState());
enterRule(_localctx, 86, RULE_typeModifierList);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1335);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
setState(1335);
_errHandler.sync(this);
switch (_input.LA(1)) {
case AT:
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case LabelReference:
{
setState(1327);
annotations();
}
break;
case SUSPEND:
{
setState(1328);
match(SUSPEND);
setState(1332);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1329);
match(NL);
}
}
setState(1334);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1337);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,197,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ParenthesizedTypeContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public ParenthesizedTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parenthesizedType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterParenthesizedType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitParenthesizedType(this);
}
}
public final ParenthesizedTypeContext parenthesizedType() throws RecognitionException {
ParenthesizedTypeContext _localctx = new ParenthesizedTypeContext(_ctx, getState());
enterRule(_localctx, 88, RULE_parenthesizedType);
try {
enterOuterAlt(_localctx, 1);
{
setState(1339);
match(LPAREN);
setState(1340);
type();
setState(1341);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class NullableTypeContext extends ParserRuleContext {
public TypeReferenceContext typeReference() {
return getRuleContext(TypeReferenceContext.class,0);
}
public ParenthesizedTypeContext parenthesizedType() {
return getRuleContext(ParenthesizedTypeContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List QUEST() { return getTokens(KotlinParser.QUEST); }
public TerminalNode QUEST(int i) {
return getToken(KotlinParser.QUEST, i);
}
public NullableTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_nullableType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterNullableType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitNullableType(this);
}
}
public final NullableTypeContext nullableType() throws RecognitionException {
NullableTypeContext _localctx = new NullableTypeContext(_ctx, getState());
enterRule(_localctx, 90, RULE_nullableType);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1345);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) {
case 1:
{
setState(1343);
typeReference();
}
break;
case 2:
{
setState(1344);
parenthesizedType();
}
break;
}
setState(1350);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1347);
match(NL);
}
}
setState(1352);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1354);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1353);
match(QUEST);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1356);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,200,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeReferenceContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TypeReferenceContext typeReference() {
return getRuleContext(TypeReferenceContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public TerminalNode DYNAMIC() { return getToken(KotlinParser.DYNAMIC, 0); }
public TypeReferenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeReference; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeReference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeReference(this);
}
}
public final TypeReferenceContext typeReference() throws RecognitionException {
TypeReferenceContext _localctx = new TypeReferenceContext(_ctx, getState());
enterRule(_localctx, 92, RULE_typeReference);
try {
setState(1364);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1358);
match(LPAREN);
setState(1359);
typeReference();
setState(1360);
match(RPAREN);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1362);
userType();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1363);
match(DYNAMIC);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionTypeContext extends ParserRuleContext {
public FunctionTypeParametersContext functionTypeParameters() {
return getRuleContext(FunctionTypeParametersContext.class,0);
}
public TerminalNode ARROW() { return getToken(KotlinParser.ARROW, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public FunctionTypeReceiverContext functionTypeReceiver() {
return getRuleContext(FunctionTypeReceiverContext.class,0);
}
public TerminalNode DOT() { return getToken(KotlinParser.DOT, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public FunctionTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionType(this);
}
}
public final FunctionTypeContext functionType() throws RecognitionException {
FunctionTypeContext _localctx = new FunctionTypeContext(_ctx, getState());
enterRule(_localctx, 94, RULE_functionType);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1380);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,204,_ctx) ) {
case 1:
{
setState(1366);
functionTypeReceiver();
setState(1370);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1367);
match(NL);
}
}
setState(1372);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1373);
match(DOT);
setState(1377);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1374);
match(NL);
}
}
setState(1379);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
break;
}
setState(1382);
functionTypeParameters();
setState(1386);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1383);
match(NL);
}
}
setState(1388);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1389);
match(ARROW);
{
setState(1393);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1390);
match(NL);
}
}
setState(1395);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1396);
type();
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionTypeReceiverContext extends ParserRuleContext {
public ParenthesizedTypeContext parenthesizedType() {
return getRuleContext(ParenthesizedTypeContext.class,0);
}
public NullableTypeContext nullableType() {
return getRuleContext(NullableTypeContext.class,0);
}
public TypeReferenceContext typeReference() {
return getRuleContext(TypeReferenceContext.class,0);
}
public FunctionTypeReceiverContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionTypeReceiver; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionTypeReceiver(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionTypeReceiver(this);
}
}
public final FunctionTypeReceiverContext functionTypeReceiver() throws RecognitionException {
FunctionTypeReceiverContext _localctx = new FunctionTypeReceiverContext(_ctx, getState());
enterRule(_localctx, 96, RULE_functionTypeReceiver);
try {
setState(1401);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,207,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1398);
parenthesizedType();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1399);
nullableType();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(1400);
typeReference();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class UserTypeContext extends ParserRuleContext {
public List simpleUserType() {
return getRuleContexts(SimpleUserTypeContext.class);
}
public SimpleUserTypeContext simpleUserType(int i) {
return getRuleContext(SimpleUserTypeContext.class,i);
}
public List DOT() { return getTokens(KotlinParser.DOT); }
public TerminalNode DOT(int i) {
return getToken(KotlinParser.DOT, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public UserTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_userType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterUserType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitUserType(this);
}
}
public final UserTypeContext userType() throws RecognitionException {
UserTypeContext _localctx = new UserTypeContext(_ctx, getState());
enterRule(_localctx, 98, RULE_userType);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1403);
simpleUserType();
setState(1420);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,210,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1407);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1404);
match(NL);
}
}
setState(1409);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1410);
match(DOT);
setState(1414);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1411);
match(NL);
}
}
setState(1416);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1417);
simpleUserType();
}
}
}
setState(1422);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,210,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SimpleUserTypeContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TypeArgumentsContext typeArguments() {
return getRuleContext(TypeArgumentsContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public SimpleUserTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_simpleUserType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSimpleUserType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSimpleUserType(this);
}
}
public final SimpleUserTypeContext simpleUserType() throws RecognitionException {
SimpleUserTypeContext _localctx = new SimpleUserTypeContext(_ctx, getState());
enterRule(_localctx, 100, RULE_simpleUserType);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1423);
simpleIdentifier();
setState(1431);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,212,_ctx) ) {
case 1:
{
setState(1427);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1424);
match(NL);
}
}
setState(1429);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1430);
typeArguments();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionTypeParametersContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List parameter() {
return getRuleContexts(ParameterContext.class);
}
public ParameterContext parameter(int i) {
return getRuleContext(ParameterContext.class,i);
}
public List type() {
return getRuleContexts(TypeContext.class);
}
public TypeContext type(int i) {
return getRuleContext(TypeContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public FunctionTypeParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionTypeParameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionTypeParameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionTypeParameters(this);
}
}
public final FunctionTypeParametersContext functionTypeParameters() throws RecognitionException {
FunctionTypeParametersContext _localctx = new FunctionTypeParametersContext(_ctx, getState());
enterRule(_localctx, 102, RULE_functionTypeParameters);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1433);
match(LPAREN);
setState(1437);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,213,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1434);
match(NL);
}
}
}
setState(1439);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,213,_ctx);
}
setState(1442);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,214,_ctx) ) {
case 1:
{
setState(1440);
parameter();
}
break;
case 2:
{
setState(1441);
type();
}
break;
}
setState(1463);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,218,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1447);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1444);
match(NL);
}
}
setState(1449);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1450);
match(COMMA);
setState(1454);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1451);
match(NL);
}
}
setState(1456);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1459);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,217,_ctx) ) {
case 1:
{
setState(1457);
parameter();
}
break;
case 2:
{
setState(1458);
type();
}
break;
}
}
}
}
setState(1465);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,218,_ctx);
}
setState(1473);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) {
case 1:
{
setState(1469);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1466);
match(NL);
}
}
setState(1471);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1472);
match(COMMA);
}
break;
}
setState(1478);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1475);
match(NL);
}
}
setState(1480);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1481);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeConstraintsContext extends ParserRuleContext {
public TerminalNode WHERE() { return getToken(KotlinParser.WHERE, 0); }
public List typeConstraint() {
return getRuleContexts(TypeConstraintContext.class);
}
public TypeConstraintContext typeConstraint(int i) {
return getRuleContext(TypeConstraintContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public TypeConstraintsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeConstraints; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeConstraints(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeConstraints(this);
}
}
public final TypeConstraintsContext typeConstraints() throws RecognitionException {
TypeConstraintsContext _localctx = new TypeConstraintsContext(_ctx, getState());
enterRule(_localctx, 104, RULE_typeConstraints);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1483);
match(WHERE);
setState(1487);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1484);
match(NL);
}
}
setState(1489);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1490);
typeConstraint();
setState(1507);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,225,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1494);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1491);
match(NL);
}
}
setState(1496);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1497);
match(COMMA);
setState(1501);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1498);
match(NL);
}
}
setState(1503);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1504);
typeConstraint();
}
}
}
setState(1509);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,225,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeConstraintContext extends ParserRuleContext {
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeConstraintContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeConstraint; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeConstraint(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeConstraint(this);
}
}
public final TypeConstraintContext typeConstraint() throws RecognitionException {
TypeConstraintContext _localctx = new TypeConstraintContext(_ctx, getState());
enterRule(_localctx, 106, RULE_typeConstraint);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1513);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(1510);
annotations();
}
}
setState(1515);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1516);
simpleIdentifier();
setState(1520);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1517);
match(NL);
}
}
setState(1522);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1523);
match(COLON);
setState(1527);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1524);
match(NL);
}
}
setState(1529);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1530);
type();
}
}
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 LCURL() { return getToken(KotlinParser.LCURL, 0); }
public StatementsContext statements() {
return getRuleContext(StatementsContext.class,0);
}
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public BlockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_block; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterBlock(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitBlock(this);
}
}
public final BlockContext block() throws RecognitionException {
BlockContext _localctx = new BlockContext(_ctx, getState());
enterRule(_localctx, 108, RULE_block);
try {
enterOuterAlt(_localctx, 1);
{
setState(1532);
match(LCURL);
setState(1533);
statements();
setState(1534);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class StatementsContext extends ParserRuleContext {
public List anysemi() {
return getRuleContexts(AnysemiContext.class);
}
public AnysemiContext anysemi(int i) {
return getRuleContext(AnysemiContext.class,i);
}
public List statement() {
return getRuleContexts(StatementContext.class);
}
public StatementContext statement(int i) {
return getRuleContext(StatementContext.class,i);
}
public StatementsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statements; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterStatements(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitStatements(this);
}
}
public final StatementsContext statements() throws RecognitionException {
StatementsContext _localctx = new StatementsContext(_ctx, getState());
enterRule(_localctx, 110, RULE_statements);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1539);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,229,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1536);
anysemi();
}
}
}
setState(1541);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,229,_ctx);
}
setState(1556);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,233,_ctx) ) {
case 1:
{
setState(1542);
statement();
setState(1553);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,232,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1544);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1543);
anysemi();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1546);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,230,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(1549);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) {
case 1:
{
setState(1548);
statement();
}
break;
}
}
}
}
setState(1555);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,232,_ctx);
}
}
break;
}
}
}
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 DeclarationContext declaration() {
return getRuleContext(DeclarationContext.class,0);
}
public BlockLevelExpressionContext blockLevelExpression() {
return getRuleContext(BlockLevelExpressionContext.class,0);
}
public StatementContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_statement; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitStatement(this);
}
}
public final StatementContext statement() throws RecognitionException {
StatementContext _localctx = new StatementContext(_ctx, getState());
enterRule(_localctx, 112, RULE_statement);
try {
setState(1560);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,234,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(1558);
declaration();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(1559);
blockLevelExpression();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class BlockLevelExpressionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public BlockLevelExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_blockLevelExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterBlockLevelExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitBlockLevelExpression(this);
}
}
public final BlockLevelExpressionContext blockLevelExpression() throws RecognitionException {
BlockLevelExpressionContext _localctx = new BlockLevelExpressionContext(_ctx, getState());
enterRule(_localctx, 114, RULE_blockLevelExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1565);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,235,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1562);
annotations();
}
}
}
setState(1567);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,235,_ctx);
}
setState(1571);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,236,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1568);
match(NL);
}
}
}
setState(1573);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,236,_ctx);
}
setState(1574);
expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class DeclarationContext extends ParserRuleContext {
public ClassDeclarationContext classDeclaration() {
return getRuleContext(ClassDeclarationContext.class,0);
}
public FunctionDeclarationContext functionDeclaration() {
return getRuleContext(FunctionDeclarationContext.class,0);
}
public PropertyDeclarationContext propertyDeclaration() {
return getRuleContext(PropertyDeclarationContext.class,0);
}
public TypeAliasContext typeAlias() {
return getRuleContext(TypeAliasContext.class,0);
}
public List labelDefinition() {
return getRuleContexts(LabelDefinitionContext.class);
}
public LabelDefinitionContext labelDefinition(int i) {
return getRuleContext(LabelDefinitionContext.class,i);
}
public DeclarationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_declaration; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterDeclaration(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitDeclaration(this);
}
}
public final DeclarationContext declaration() throws RecognitionException {
DeclarationContext _localctx = new DeclarationContext(_ctx, getState());
enterRule(_localctx, 116, RULE_declaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1579);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==LabelDefinition) {
{
{
setState(1576);
labelDefinition();
}
}
setState(1581);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1586);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) {
case 1:
{
setState(1582);
classDeclaration();
}
break;
case 2:
{
setState(1583);
functionDeclaration();
}
break;
case 3:
{
setState(1584);
propertyDeclaration();
}
break;
case 4:
{
setState(1585);
typeAlias();
}
break;
}
}
}
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 List disjunction() {
return getRuleContexts(DisjunctionContext.class);
}
public DisjunctionContext disjunction(int i) {
return getRuleContext(DisjunctionContext.class,i);
}
public List assignmentOperator() {
return getRuleContexts(AssignmentOperatorContext.class);
}
public AssignmentOperatorContext assignmentOperator(int i) {
return getRuleContext(AssignmentOperatorContext.class,i);
}
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitExpression(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
enterRule(_localctx, 118, RULE_expression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1588);
disjunction();
setState(1594);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,239,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1589);
assignmentOperator();
setState(1590);
disjunction();
}
}
}
setState(1596);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,239,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class DisjunctionContext extends ParserRuleContext {
public List conjunction() {
return getRuleContexts(ConjunctionContext.class);
}
public ConjunctionContext conjunction(int i) {
return getRuleContext(ConjunctionContext.class,i);
}
public List DISJ() { return getTokens(KotlinParser.DISJ); }
public TerminalNode DISJ(int i) {
return getToken(KotlinParser.DISJ, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public DisjunctionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_disjunction; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterDisjunction(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitDisjunction(this);
}
}
public final DisjunctionContext disjunction() throws RecognitionException {
DisjunctionContext _localctx = new DisjunctionContext(_ctx, getState());
enterRule(_localctx, 120, RULE_disjunction);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1597);
conjunction();
setState(1614);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,242,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1601);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1598);
match(NL);
}
}
setState(1603);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1604);
match(DISJ);
setState(1608);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,241,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1605);
match(NL);
}
}
}
setState(1610);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,241,_ctx);
}
setState(1611);
conjunction();
}
}
}
setState(1616);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,242,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConjunctionContext extends ParserRuleContext {
public List equalityComparison() {
return getRuleContexts(EqualityComparisonContext.class);
}
public EqualityComparisonContext equalityComparison(int i) {
return getRuleContext(EqualityComparisonContext.class,i);
}
public List CONJ() { return getTokens(KotlinParser.CONJ); }
public TerminalNode CONJ(int i) {
return getToken(KotlinParser.CONJ, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ConjunctionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_conjunction; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterConjunction(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitConjunction(this);
}
}
public final ConjunctionContext conjunction() throws RecognitionException {
ConjunctionContext _localctx = new ConjunctionContext(_ctx, getState());
enterRule(_localctx, 122, RULE_conjunction);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1617);
equalityComparison();
setState(1634);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,245,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1621);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1618);
match(NL);
}
}
setState(1623);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1624);
match(CONJ);
setState(1628);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,244,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1625);
match(NL);
}
}
}
setState(1630);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,244,_ctx);
}
setState(1631);
equalityComparison();
}
}
}
setState(1636);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,245,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class EqualityComparisonContext extends ParserRuleContext {
public List comparison() {
return getRuleContexts(ComparisonContext.class);
}
public ComparisonContext comparison(int i) {
return getRuleContext(ComparisonContext.class,i);
}
public List equalityOperation() {
return getRuleContexts(EqualityOperationContext.class);
}
public EqualityOperationContext equalityOperation(int i) {
return getRuleContext(EqualityOperationContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public EqualityComparisonContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_equalityComparison; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterEqualityComparison(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitEqualityComparison(this);
}
}
public final EqualityComparisonContext equalityComparison() throws RecognitionException {
EqualityComparisonContext _localctx = new EqualityComparisonContext(_ctx, getState());
enterRule(_localctx, 124, RULE_equalityComparison);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1637);
comparison();
setState(1649);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,247,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1638);
equalityOperation();
setState(1642);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,246,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1639);
match(NL);
}
}
}
setState(1644);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,246,_ctx);
}
setState(1645);
comparison();
}
}
}
setState(1651);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,247,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ComparisonContext extends ParserRuleContext {
public List namedInfix() {
return getRuleContexts(NamedInfixContext.class);
}
public NamedInfixContext namedInfix(int i) {
return getRuleContext(NamedInfixContext.class,i);
}
public ComparisonOperatorContext comparisonOperator() {
return getRuleContext(ComparisonOperatorContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ComparisonContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_comparison; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterComparison(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitComparison(this);
}
}
public final ComparisonContext comparison() throws RecognitionException {
ComparisonContext _localctx = new ComparisonContext(_ctx, getState());
enterRule(_localctx, 126, RULE_comparison);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1652);
namedInfix();
setState(1662);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,249,_ctx) ) {
case 1:
{
setState(1653);
comparisonOperator();
setState(1657);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,248,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1654);
match(NL);
}
}
}
setState(1659);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,248,_ctx);
}
setState(1660);
namedInfix();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class NamedInfixContext extends ParserRuleContext {
public List elvisExpression() {
return getRuleContexts(ElvisExpressionContext.class);
}
public ElvisExpressionContext elvisExpression(int i) {
return getRuleContext(ElvisExpressionContext.class,i);
}
public IsOperatorContext isOperator() {
return getRuleContext(IsOperatorContext.class,0);
}
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public List inOperator() {
return getRuleContexts(InOperatorContext.class);
}
public InOperatorContext inOperator(int i) {
return getRuleContext(InOperatorContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public NamedInfixContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_namedInfix; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterNamedInfix(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitNamedInfix(this);
}
}
public final NamedInfixContext namedInfix() throws RecognitionException {
NamedInfixContext _localctx = new NamedInfixContext(_ctx, getState());
enterRule(_localctx, 128, RULE_namedInfix);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1664);
elvisExpression();
setState(1687);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,253,_ctx) ) {
case 1:
{
setState(1674);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1665);
inOperator();
setState(1669);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,250,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1666);
match(NL);
}
}
}
setState(1671);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,250,_ctx);
}
setState(1672);
elvisExpression();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1676);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,251,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
break;
case 2:
{
{
setState(1678);
isOperator();
setState(1682);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1679);
match(NL);
}
}
setState(1684);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1685);
type();
}
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ElvisExpressionContext extends ParserRuleContext {
public List infixFunctionCall() {
return getRuleContexts(InfixFunctionCallContext.class);
}
public InfixFunctionCallContext infixFunctionCall(int i) {
return getRuleContext(InfixFunctionCallContext.class,i);
}
public List ELVIS() { return getTokens(KotlinParser.ELVIS); }
public TerminalNode ELVIS(int i) {
return getToken(KotlinParser.ELVIS, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ElvisExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_elvisExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterElvisExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitElvisExpression(this);
}
}
public final ElvisExpressionContext elvisExpression() throws RecognitionException {
ElvisExpressionContext _localctx = new ElvisExpressionContext(_ctx, getState());
enterRule(_localctx, 130, RULE_elvisExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1689);
infixFunctionCall();
setState(1706);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,256,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1693);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1690);
match(NL);
}
}
setState(1695);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1696);
match(ELVIS);
setState(1700);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,255,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1697);
match(NL);
}
}
}
setState(1702);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,255,_ctx);
}
setState(1703);
infixFunctionCall();
}
}
}
setState(1708);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,256,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InfixFunctionCallContext extends ParserRuleContext {
public List rangeExpression() {
return getRuleContexts(RangeExpressionContext.class);
}
public RangeExpressionContext rangeExpression(int i) {
return getRuleContext(RangeExpressionContext.class,i);
}
public List simpleIdentifier() {
return getRuleContexts(SimpleIdentifierContext.class);
}
public SimpleIdentifierContext simpleIdentifier(int i) {
return getRuleContext(SimpleIdentifierContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public InfixFunctionCallContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_infixFunctionCall; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterInfixFunctionCall(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitInfixFunctionCall(this);
}
}
public final InfixFunctionCallContext infixFunctionCall() throws RecognitionException {
InfixFunctionCallContext _localctx = new InfixFunctionCallContext(_ctx, getState());
enterRule(_localctx, 132, RULE_infixFunctionCall);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1709);
rangeExpression();
setState(1721);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,258,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1710);
simpleIdentifier();
setState(1714);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,257,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1711);
match(NL);
}
}
}
setState(1716);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,257,_ctx);
}
setState(1717);
rangeExpression();
}
}
}
setState(1723);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,258,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class RangeExpressionContext extends ParserRuleContext {
public List additiveExpression() {
return getRuleContexts(AdditiveExpressionContext.class);
}
public AdditiveExpressionContext additiveExpression(int i) {
return getRuleContext(AdditiveExpressionContext.class,i);
}
public List RANGE() { return getTokens(KotlinParser.RANGE); }
public TerminalNode RANGE(int i) {
return getToken(KotlinParser.RANGE, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public RangeExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_rangeExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterRangeExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitRangeExpression(this);
}
}
public final RangeExpressionContext rangeExpression() throws RecognitionException {
RangeExpressionContext _localctx = new RangeExpressionContext(_ctx, getState());
enterRule(_localctx, 134, RULE_rangeExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1724);
additiveExpression();
setState(1735);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,260,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1725);
match(RANGE);
setState(1729);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,259,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1726);
match(NL);
}
}
}
setState(1731);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,259,_ctx);
}
setState(1732);
additiveExpression();
}
}
}
setState(1737);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,260,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AdditiveExpressionContext extends ParserRuleContext {
public List multiplicativeExpression() {
return getRuleContexts(MultiplicativeExpressionContext.class);
}
public MultiplicativeExpressionContext multiplicativeExpression(int i) {
return getRuleContext(MultiplicativeExpressionContext.class,i);
}
public List additiveOperator() {
return getRuleContexts(AdditiveOperatorContext.class);
}
public AdditiveOperatorContext additiveOperator(int i) {
return getRuleContext(AdditiveOperatorContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_additiveExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAdditiveExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAdditiveExpression(this);
}
}
public final AdditiveExpressionContext additiveExpression() throws RecognitionException {
AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, getState());
enterRule(_localctx, 136, RULE_additiveExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1738);
multiplicativeExpression();
setState(1750);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,262,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1739);
additiveOperator();
setState(1743);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,261,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1740);
match(NL);
}
}
}
setState(1745);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,261,_ctx);
}
setState(1746);
multiplicativeExpression();
}
}
}
setState(1752);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,262,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MultiplicativeExpressionContext extends ParserRuleContext {
public List typeRHS() {
return getRuleContexts(TypeRHSContext.class);
}
public TypeRHSContext typeRHS(int i) {
return getRuleContext(TypeRHSContext.class,i);
}
public List multiplicativeOperation() {
return getRuleContexts(MultiplicativeOperationContext.class);
}
public MultiplicativeOperationContext multiplicativeOperation(int i) {
return getRuleContext(MultiplicativeOperationContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public MultiplicativeExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiplicativeExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiplicativeExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiplicativeExpression(this);
}
}
public final MultiplicativeExpressionContext multiplicativeExpression() throws RecognitionException {
MultiplicativeExpressionContext _localctx = new MultiplicativeExpressionContext(_ctx, getState());
enterRule(_localctx, 138, RULE_multiplicativeExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1753);
typeRHS();
setState(1765);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,264,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1754);
multiplicativeOperation();
setState(1758);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,263,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1755);
match(NL);
}
}
}
setState(1760);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,263,_ctx);
}
setState(1761);
typeRHS();
}
}
}
setState(1767);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,264,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeRHSContext extends ParserRuleContext {
public List prefixUnaryExpression() {
return getRuleContexts(PrefixUnaryExpressionContext.class);
}
public PrefixUnaryExpressionContext prefixUnaryExpression(int i) {
return getRuleContext(PrefixUnaryExpressionContext.class,i);
}
public List typeOperation() {
return getRuleContexts(TypeOperationContext.class);
}
public TypeOperationContext typeOperation(int i) {
return getRuleContext(TypeOperationContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeRHSContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeRHS; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeRHS(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeRHS(this);
}
}
public final TypeRHSContext typeRHS() throws RecognitionException {
TypeRHSContext _localctx = new TypeRHSContext(_ctx, getState());
enterRule(_localctx, 140, RULE_typeRHS);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1768);
prefixUnaryExpression();
setState(1780);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,266,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1772);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1769);
match(NL);
}
}
setState(1774);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1775);
typeOperation();
setState(1776);
prefixUnaryExpression();
}
}
}
setState(1782);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,266,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PrefixUnaryExpressionContext extends ParserRuleContext {
public PostfixUnaryExpressionContext postfixUnaryExpression() {
return getRuleContext(PostfixUnaryExpressionContext.class,0);
}
public List prefixUnaryOperation() {
return getRuleContexts(PrefixUnaryOperationContext.class);
}
public PrefixUnaryOperationContext prefixUnaryOperation(int i) {
return getRuleContext(PrefixUnaryOperationContext.class,i);
}
public PrefixUnaryExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_prefixUnaryExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPrefixUnaryExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPrefixUnaryExpression(this);
}
}
public final PrefixUnaryExpressionContext prefixUnaryExpression() throws RecognitionException {
PrefixUnaryExpressionContext _localctx = new PrefixUnaryExpressionContext(_ctx, getState());
enterRule(_localctx, 142, RULE_prefixUnaryExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1786);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,267,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1783);
prefixUnaryOperation();
}
}
}
setState(1788);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,267,_ctx);
}
setState(1789);
postfixUnaryExpression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class PostfixUnaryExpressionContext extends ParserRuleContext {
public AtomicExpressionContext atomicExpression() {
return getRuleContext(AtomicExpressionContext.class,0);
}
public CallableReferenceContext callableReference() {
return getRuleContext(CallableReferenceContext.class,0);
}
public List postfixUnaryOperation() {
return getRuleContexts(PostfixUnaryOperationContext.class);
}
public PostfixUnaryOperationContext postfixUnaryOperation(int i) {
return getRuleContext(PostfixUnaryOperationContext.class,i);
}
public PostfixUnaryExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_postfixUnaryExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPostfixUnaryExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPostfixUnaryExpression(this);
}
}
public final PostfixUnaryExpressionContext postfixUnaryExpression() throws RecognitionException {
PostfixUnaryExpressionContext _localctx = new PostfixUnaryExpressionContext(_ctx, getState());
enterRule(_localctx, 144, RULE_postfixUnaryExpression);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1793);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,268,_ctx) ) {
case 1:
{
setState(1791);
atomicExpression();
}
break;
case 2:
{
setState(1792);
callableReference();
}
break;
}
setState(1798);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,269,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1795);
postfixUnaryOperation();
}
}
}
setState(1800);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,269,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AtomicExpressionContext extends ParserRuleContext {
public ParenthesizedExpressionContext parenthesizedExpression() {
return getRuleContext(ParenthesizedExpressionContext.class,0);
}
public LiteralConstantContext literalConstant() {
return getRuleContext(LiteralConstantContext.class,0);
}
public FunctionLiteralContext functionLiteral() {
return getRuleContext(FunctionLiteralContext.class,0);
}
public ThisExpressionContext thisExpression() {
return getRuleContext(ThisExpressionContext.class,0);
}
public SuperExpressionContext superExpression() {
return getRuleContext(SuperExpressionContext.class,0);
}
public ConditionalExpressionContext conditionalExpression() {
return getRuleContext(ConditionalExpressionContext.class,0);
}
public TryExpressionContext tryExpression() {
return getRuleContext(TryExpressionContext.class,0);
}
public ObjectLiteralContext objectLiteral() {
return getRuleContext(ObjectLiteralContext.class,0);
}
public JumpExpressionContext jumpExpression() {
return getRuleContext(JumpExpressionContext.class,0);
}
public LoopExpressionContext loopExpression() {
return getRuleContext(LoopExpressionContext.class,0);
}
public CollectionLiteralContext collectionLiteral() {
return getRuleContext(CollectionLiteralContext.class,0);
}
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode VAL() { return getToken(KotlinParser.VAL, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public AtomicExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_atomicExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAtomicExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAtomicExpression(this);
}
}
public final AtomicExpressionContext atomicExpression() throws RecognitionException {
AtomicExpressionContext _localctx = new AtomicExpressionContext(_ctx, getState());
enterRule(_localctx, 146, RULE_atomicExpression);
try {
setState(1815);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LPAREN:
enterOuterAlt(_localctx, 1);
{
setState(1801);
parenthesizedExpression();
}
break;
case QUOTE_OPEN:
case TRIPLE_QUOTE_OPEN:
case RealLiteral:
case LongLiteral:
case IntegerLiteral:
case HexLiteral:
case BinLiteral:
case BooleanLiteral:
case NullLiteral:
case CharacterLiteral:
enterOuterAlt(_localctx, 2);
{
setState(1802);
literalConstant();
}
break;
case LCURL:
case AT:
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case LabelReference:
enterOuterAlt(_localctx, 3);
{
setState(1803);
functionLiteral();
}
break;
case THIS:
enterOuterAlt(_localctx, 4);
{
setState(1804);
thisExpression();
}
break;
case SUPER:
enterOuterAlt(_localctx, 5);
{
setState(1805);
superExpression();
}
break;
case IF:
case WHEN:
enterOuterAlt(_localctx, 6);
{
setState(1806);
conditionalExpression();
}
break;
case TRY:
enterOuterAlt(_localctx, 7);
{
setState(1807);
tryExpression();
}
break;
case OBJECT:
enterOuterAlt(_localctx, 8);
{
setState(1808);
objectLiteral();
}
break;
case RETURN_AT:
case CONTINUE_AT:
case BREAK_AT:
case THROW:
case RETURN:
case CONTINUE:
case BREAK:
enterOuterAlt(_localctx, 9);
{
setState(1809);
jumpExpression();
}
break;
case FOR:
case DO:
case WHILE:
enterOuterAlt(_localctx, 10);
{
setState(1810);
loopExpression();
}
break;
case LSQUARE:
enterOuterAlt(_localctx, 11);
{
setState(1811);
collectionLiteral();
}
break;
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
enterOuterAlt(_localctx, 12);
{
setState(1812);
simpleIdentifier();
}
break;
case VAL:
enterOuterAlt(_localctx, 13);
{
setState(1813);
match(VAL);
setState(1814);
identifier();
}
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 ParenthesizedExpressionContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public ParenthesizedExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parenthesizedExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterParenthesizedExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitParenthesizedExpression(this);
}
}
public final ParenthesizedExpressionContext parenthesizedExpression() throws RecognitionException {
ParenthesizedExpressionContext _localctx = new ParenthesizedExpressionContext(_ctx, getState());
enterRule(_localctx, 148, RULE_parenthesizedExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(1817);
match(LPAREN);
setState(1818);
expression();
setState(1819);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CallSuffixContext extends ParserRuleContext {
public TypeArgumentsContext typeArguments() {
return getRuleContext(TypeArgumentsContext.class,0);
}
public ValueArgumentsContext valueArguments() {
return getRuleContext(ValueArgumentsContext.class,0);
}
public List annotatedLambda() {
return getRuleContexts(AnnotatedLambdaContext.class);
}
public AnnotatedLambdaContext annotatedLambda(int i) {
return getRuleContext(AnnotatedLambdaContext.class,i);
}
public CallSuffixContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_callSuffix; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterCallSuffix(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitCallSuffix(this);
}
}
public final CallSuffixContext callSuffix() throws RecognitionException {
CallSuffixContext _localctx = new CallSuffixContext(_ctx, getState());
enterRule(_localctx, 150, RULE_callSuffix);
try {
int _alt;
setState(1843);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LANGLE:
enterOuterAlt(_localctx, 1);
{
setState(1821);
typeArguments();
setState(1823);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,271,_ctx) ) {
case 1:
{
setState(1822);
valueArguments();
}
break;
}
setState(1828);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,272,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1825);
annotatedLambda();
}
}
}
setState(1830);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,272,_ctx);
}
}
break;
case LPAREN:
enterOuterAlt(_localctx, 2);
{
setState(1831);
valueArguments();
setState(1835);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,273,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1832);
annotatedLambda();
}
}
}
setState(1837);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,273,_ctx);
}
}
break;
case NL:
case LCURL:
case AT:
case FILE:
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case FIELD:
case PROPERTY:
case GET:
case SET:
case GETTER:
case SETTER:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
case LabelReference:
case LabelDefinition:
enterOuterAlt(_localctx, 3);
{
setState(1839);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1838);
annotatedLambda();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1841);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,274,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
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 AnnotatedLambdaContext extends ParserRuleContext {
public FunctionLiteralContext functionLiteral() {
return getRuleContext(FunctionLiteralContext.class,0);
}
public List unescapedAnnotation() {
return getRuleContexts(UnescapedAnnotationContext.class);
}
public UnescapedAnnotationContext unescapedAnnotation(int i) {
return getRuleContext(UnescapedAnnotationContext.class,i);
}
public TerminalNode LabelDefinition() { return getToken(KotlinParser.LabelDefinition, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public AnnotatedLambdaContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_annotatedLambda; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnnotatedLambda(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnnotatedLambda(this);
}
}
public final AnnotatedLambdaContext annotatedLambda() throws RecognitionException {
AnnotatedLambdaContext _localctx = new AnnotatedLambdaContext(_ctx, getState());
enterRule(_localctx, 152, RULE_annotatedLambda);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1848);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 0)) {
{
{
setState(1845);
unescapedAnnotation();
}
}
setState(1850);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1852);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LabelDefinition) {
{
setState(1851);
match(LabelDefinition);
}
}
setState(1857);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1854);
match(NL);
}
}
setState(1859);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1860);
functionLiteral();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ArrayAccessContext extends ParserRuleContext {
public TerminalNode LSQUARE() { return getToken(KotlinParser.LSQUARE, 0); }
public TerminalNode RSQUARE() { return getToken(KotlinParser.RSQUARE, 0); }
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public ArrayAccessContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_arrayAccess; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterArrayAccess(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitArrayAccess(this);
}
}
public final ArrayAccessContext arrayAccess() throws RecognitionException {
ArrayAccessContext _localctx = new ArrayAccessContext(_ctx, getState());
enterRule(_localctx, 154, RULE_arrayAccess);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1862);
match(LSQUARE);
setState(1871);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -4188346347763783136L) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & -65012289L) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 24563L) != 0)) {
{
setState(1863);
expression();
setState(1868);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(1864);
match(COMMA);
setState(1865);
expression();
}
}
setState(1870);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(1873);
match(RSQUARE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ValueArgumentsContext extends ParserRuleContext {
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List valueArgument() {
return getRuleContexts(ValueArgumentContext.class);
}
public ValueArgumentContext valueArgument(int i) {
return getRuleContext(ValueArgumentContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ValueArgumentsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_valueArguments; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterValueArguments(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitValueArguments(this);
}
}
public final ValueArgumentsContext valueArguments() throws RecognitionException {
ValueArgumentsContext _localctx = new ValueArgumentsContext(_ctx, getState());
enterRule(_localctx, 156, RULE_valueArguments);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1875);
match(LPAREN);
setState(1893);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -4188346347763750368L) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & -65012289L) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 24563L) != 0)) {
{
setState(1876);
valueArgument();
setState(1881);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,281,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1877);
match(COMMA);
setState(1878);
valueArgument();
}
}
}
setState(1883);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,281,_ctx);
}
setState(1891);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==NL || _la==COMMA) {
{
setState(1887);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1884);
match(NL);
}
}
setState(1889);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1890);
match(COMMA);
}
}
}
}
setState(1895);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeArgumentsContext extends ParserRuleContext {
public TerminalNode LANGLE() { return getToken(KotlinParser.LANGLE, 0); }
public List typeProjection() {
return getRuleContexts(TypeProjectionContext.class);
}
public TypeProjectionContext typeProjection(int i) {
return getRuleContext(TypeProjectionContext.class,i);
}
public TerminalNode RANGLE() { return getToken(KotlinParser.RANGLE, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public TerminalNode QUEST() { return getToken(KotlinParser.QUEST, 0); }
public TypeArgumentsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeArguments; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeArguments(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeArguments(this);
}
}
public final TypeArgumentsContext typeArguments() throws RecognitionException {
TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState());
enterRule(_localctx, 158, RULE_typeArguments);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1897);
match(LANGLE);
setState(1901);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1898);
match(NL);
}
}
setState(1903);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1904);
typeProjection();
setState(1915);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,287,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1908);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1905);
match(NL);
}
}
setState(1910);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1911);
match(COMMA);
setState(1912);
typeProjection();
}
}
}
setState(1917);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,287,_ctx);
}
setState(1925);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,289,_ctx) ) {
case 1:
{
setState(1921);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1918);
match(NL);
}
}
setState(1923);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1924);
match(COMMA);
}
break;
}
setState(1930);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1927);
match(NL);
}
}
setState(1932);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1933);
match(RANGLE);
setState(1935);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) {
case 1:
{
setState(1934);
match(QUEST);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeProjectionContext extends ParserRuleContext {
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TypeProjectionModifierListContext typeProjectionModifierList() {
return getRuleContext(TypeProjectionModifierListContext.class,0);
}
public TerminalNode MULT() { return getToken(KotlinParser.MULT, 0); }
public TypeProjectionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeProjection; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeProjection(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeProjection(this);
}
}
public final TypeProjectionContext typeProjection() throws RecognitionException {
TypeProjectionContext _localctx = new TypeProjectionContext(_ctx, getState());
enterRule(_localctx, 160, RULE_typeProjection);
try {
setState(1942);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LPAREN:
case AT:
case FILE:
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case IN:
case OUT:
case FIELD:
case PROPERTY:
case GET:
case SET:
case GETTER:
case SETTER:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
case LabelReference:
enterOuterAlt(_localctx, 1);
{
setState(1938);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) {
case 1:
{
setState(1937);
typeProjectionModifierList();
}
break;
}
setState(1940);
type();
}
break;
case MULT:
enterOuterAlt(_localctx, 2);
{
setState(1941);
match(MULT);
}
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 TypeProjectionModifierListContext extends ParserRuleContext {
public List varianceAnnotation() {
return getRuleContexts(VarianceAnnotationContext.class);
}
public VarianceAnnotationContext varianceAnnotation(int i) {
return getRuleContext(VarianceAnnotationContext.class,i);
}
public TypeProjectionModifierListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeProjectionModifierList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeProjectionModifierList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeProjectionModifierList(this);
}
}
public final TypeProjectionModifierListContext typeProjectionModifierList() throws RecognitionException {
TypeProjectionModifierListContext _localctx = new TypeProjectionModifierListContext(_ctx, getState());
enterRule(_localctx, 162, RULE_typeProjectionModifierList);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1945);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(1944);
varianceAnnotation();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(1947);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,294,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ValueArgumentContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public TerminalNode MULT() { return getToken(KotlinParser.MULT, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ValueArgumentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_valueArgument; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterValueArgument(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitValueArgument(this);
}
}
public final ValueArgumentContext valueArgument() throws RecognitionException {
ValueArgumentContext _localctx = new ValueArgumentContext(_ctx, getState());
enterRule(_localctx, 164, RULE_valueArgument);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(1963);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) {
case 1:
{
setState(1949);
simpleIdentifier();
setState(1953);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(1950);
match(NL);
}
}
setState(1955);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1956);
match(ASSIGNMENT);
setState(1960);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,296,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1957);
match(NL);
}
}
}
setState(1962);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,296,_ctx);
}
}
break;
}
setState(1966);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==MULT) {
{
setState(1965);
match(MULT);
}
}
setState(1971);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,299,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(1968);
match(NL);
}
}
}
setState(1973);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,299,_ctx);
}
setState(1974);
expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LiteralConstantContext extends ParserRuleContext {
public TerminalNode BooleanLiteral() { return getToken(KotlinParser.BooleanLiteral, 0); }
public TerminalNode IntegerLiteral() { return getToken(KotlinParser.IntegerLiteral, 0); }
public StringLiteralContext stringLiteral() {
return getRuleContext(StringLiteralContext.class,0);
}
public TerminalNode HexLiteral() { return getToken(KotlinParser.HexLiteral, 0); }
public TerminalNode BinLiteral() { return getToken(KotlinParser.BinLiteral, 0); }
public TerminalNode CharacterLiteral() { return getToken(KotlinParser.CharacterLiteral, 0); }
public TerminalNode RealLiteral() { return getToken(KotlinParser.RealLiteral, 0); }
public TerminalNode NullLiteral() { return getToken(KotlinParser.NullLiteral, 0); }
public TerminalNode LongLiteral() { return getToken(KotlinParser.LongLiteral, 0); }
public LiteralConstantContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_literalConstant; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLiteralConstant(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLiteralConstant(this);
}
}
public final LiteralConstantContext literalConstant() throws RecognitionException {
LiteralConstantContext _localctx = new LiteralConstantContext(_ctx, getState());
enterRule(_localctx, 166, RULE_literalConstant);
try {
setState(1985);
_errHandler.sync(this);
switch (_input.LA(1)) {
case BooleanLiteral:
enterOuterAlt(_localctx, 1);
{
setState(1976);
match(BooleanLiteral);
}
break;
case IntegerLiteral:
enterOuterAlt(_localctx, 2);
{
setState(1977);
match(IntegerLiteral);
}
break;
case QUOTE_OPEN:
case TRIPLE_QUOTE_OPEN:
enterOuterAlt(_localctx, 3);
{
setState(1978);
stringLiteral();
}
break;
case HexLiteral:
enterOuterAlt(_localctx, 4);
{
setState(1979);
match(HexLiteral);
}
break;
case BinLiteral:
enterOuterAlt(_localctx, 5);
{
setState(1980);
match(BinLiteral);
}
break;
case CharacterLiteral:
enterOuterAlt(_localctx, 6);
{
setState(1981);
match(CharacterLiteral);
}
break;
case RealLiteral:
enterOuterAlt(_localctx, 7);
{
setState(1982);
match(RealLiteral);
}
break;
case NullLiteral:
enterOuterAlt(_localctx, 8);
{
setState(1983);
match(NullLiteral);
}
break;
case LongLiteral:
enterOuterAlt(_localctx, 9);
{
setState(1984);
match(LongLiteral);
}
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 StringLiteralContext extends ParserRuleContext {
public LineStringLiteralContext lineStringLiteral() {
return getRuleContext(LineStringLiteralContext.class,0);
}
public MultiLineStringLiteralContext multiLineStringLiteral() {
return getRuleContext(MultiLineStringLiteralContext.class,0);
}
public StringLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_stringLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterStringLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitStringLiteral(this);
}
}
public final StringLiteralContext stringLiteral() throws RecognitionException {
StringLiteralContext _localctx = new StringLiteralContext(_ctx, getState());
enterRule(_localctx, 168, RULE_stringLiteral);
try {
setState(1989);
_errHandler.sync(this);
switch (_input.LA(1)) {
case QUOTE_OPEN:
enterOuterAlt(_localctx, 1);
{
setState(1987);
lineStringLiteral();
}
break;
case TRIPLE_QUOTE_OPEN:
enterOuterAlt(_localctx, 2);
{
setState(1988);
multiLineStringLiteral();
}
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 LineStringLiteralContext extends ParserRuleContext {
public TerminalNode QUOTE_OPEN() { return getToken(KotlinParser.QUOTE_OPEN, 0); }
public TerminalNode QUOTE_CLOSE() { return getToken(KotlinParser.QUOTE_CLOSE, 0); }
public List lineStringContent() {
return getRuleContexts(LineStringContentContext.class);
}
public LineStringContentContext lineStringContent(int i) {
return getRuleContext(LineStringContentContext.class,i);
}
public List lineStringExpression() {
return getRuleContexts(LineStringExpressionContext.class);
}
public LineStringExpressionContext lineStringExpression(int i) {
return getRuleContext(LineStringExpressionContext.class,i);
}
public LineStringLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lineStringLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLineStringLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLineStringLiteral(this);
}
}
public final LineStringLiteralContext lineStringLiteral() throws RecognitionException {
LineStringLiteralContext _localctx = new LineStringLiteralContext(_ctx, getState());
enterRule(_localctx, 170, RULE_lineStringLiteral);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(1991);
match(QUOTE_OPEN);
setState(1996);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 156)) & ~0x3f) == 0 && ((1L << (_la - 156)) & 15L) != 0)) {
{
setState(1994);
_errHandler.sync(this);
switch (_input.LA(1)) {
case LineStrRef:
case LineStrText:
case LineStrEscapedChar:
{
setState(1992);
lineStringContent();
}
break;
case LineStrExprStart:
{
setState(1993);
lineStringExpression();
}
break;
default:
throw new NoViableAltException(this);
}
}
setState(1998);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(1999);
match(QUOTE_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MultiLineStringLiteralContext extends ParserRuleContext {
public TerminalNode TRIPLE_QUOTE_OPEN() { return getToken(KotlinParser.TRIPLE_QUOTE_OPEN, 0); }
public TerminalNode TRIPLE_QUOTE_CLOSE() { return getToken(KotlinParser.TRIPLE_QUOTE_CLOSE, 0); }
public List multiLineStringContent() {
return getRuleContexts(MultiLineStringContentContext.class);
}
public MultiLineStringContentContext multiLineStringContent(int i) {
return getRuleContext(MultiLineStringContentContext.class,i);
}
public List multiLineStringExpression() {
return getRuleContexts(MultiLineStringExpressionContext.class);
}
public MultiLineStringExpressionContext multiLineStringExpression(int i) {
return getRuleContext(MultiLineStringExpressionContext.class,i);
}
public List lineStringLiteral() {
return getRuleContexts(LineStringLiteralContext.class);
}
public LineStringLiteralContext lineStringLiteral(int i) {
return getRuleContext(LineStringLiteralContext.class,i);
}
public List MultiLineStringQuote() { return getTokens(KotlinParser.MultiLineStringQuote); }
public TerminalNode MultiLineStringQuote(int i) {
return getToken(KotlinParser.MultiLineStringQuote, i);
}
public MultiLineStringLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiLineStringLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiLineStringLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiLineStringLiteral(this);
}
}
public final MultiLineStringLiteralContext multiLineStringLiteral() throws RecognitionException {
MultiLineStringLiteralContext _localctx = new MultiLineStringLiteralContext(_ctx, getState());
enterRule(_localctx, 172, RULE_multiLineStringLiteral);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2001);
match(TRIPLE_QUOTE_OPEN);
setState(2008);
_errHandler.sync(this);
_la = _input.LA(1);
while (((((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & 133143986177L) != 0)) {
{
setState(2006);
_errHandler.sync(this);
switch (_input.LA(1)) {
case MultiLineStrRef:
case MultiLineStrText:
case MultiLineStrEscapedChar:
{
setState(2002);
multiLineStringContent();
}
break;
case MultiLineStrExprStart:
{
setState(2003);
multiLineStringExpression();
}
break;
case QUOTE_OPEN:
{
setState(2004);
lineStringLiteral();
}
break;
case MultiLineStringQuote:
{
setState(2005);
match(MultiLineStringQuote);
}
break;
default:
throw new NoViableAltException(this);
}
}
setState(2010);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2011);
match(TRIPLE_QUOTE_CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LineStringContentContext extends ParserRuleContext {
public TerminalNode LineStrText() { return getToken(KotlinParser.LineStrText, 0); }
public TerminalNode LineStrEscapedChar() { return getToken(KotlinParser.LineStrEscapedChar, 0); }
public TerminalNode LineStrRef() { return getToken(KotlinParser.LineStrRef, 0); }
public LineStringContentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lineStringContent; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLineStringContent(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLineStringContent(this);
}
}
public final LineStringContentContext lineStringContent() throws RecognitionException {
LineStringContentContext _localctx = new LineStringContentContext(_ctx, getState());
enterRule(_localctx, 174, RULE_lineStringContent);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2013);
_la = _input.LA(1);
if ( !(((((_la - 156)) & ~0x3f) == 0 && ((1L << (_la - 156)) & 7L) != 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 LineStringExpressionContext extends ParserRuleContext {
public TerminalNode LineStrExprStart() { return getToken(KotlinParser.LineStrExprStart, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public LineStringExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lineStringExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLineStringExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLineStringExpression(this);
}
}
public final LineStringExpressionContext lineStringExpression() throws RecognitionException {
LineStringExpressionContext _localctx = new LineStringExpressionContext(_ctx, getState());
enterRule(_localctx, 176, RULE_lineStringExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(2015);
match(LineStrExprStart);
setState(2016);
expression();
setState(2017);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MultiLineStringContentContext extends ParserRuleContext {
public TerminalNode MultiLineStrText() { return getToken(KotlinParser.MultiLineStrText, 0); }
public TerminalNode MultiLineStrEscapedChar() { return getToken(KotlinParser.MultiLineStrEscapedChar, 0); }
public TerminalNode MultiLineStrRef() { return getToken(KotlinParser.MultiLineStrRef, 0); }
public MultiLineStringContentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiLineStringContent; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiLineStringContent(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiLineStringContent(this);
}
}
public final MultiLineStringContentContext multiLineStringContent() throws RecognitionException {
MultiLineStringContentContext _localctx = new MultiLineStringContentContext(_ctx, getState());
enterRule(_localctx, 178, RULE_multiLineStringContent);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2019);
_la = _input.LA(1);
if ( !(((((_la - 162)) & ~0x3f) == 0 && ((1L << (_la - 162)) & 7L) != 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 MultiLineStringExpressionContext extends ParserRuleContext {
public TerminalNode MultiLineStrExprStart() { return getToken(KotlinParser.MultiLineStrExprStart, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public MultiLineStringExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiLineStringExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiLineStringExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiLineStringExpression(this);
}
}
public final MultiLineStringExpressionContext multiLineStringExpression() throws RecognitionException {
MultiLineStringExpressionContext _localctx = new MultiLineStringExpressionContext(_ctx, getState());
enterRule(_localctx, 180, RULE_multiLineStringExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(2021);
match(MultiLineStrExprStart);
setState(2022);
expression();
setState(2023);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FunctionLiteralContext extends ParserRuleContext {
public TerminalNode LCURL() { return getToken(KotlinParser.LCURL, 0); }
public StatementsContext statements() {
return getRuleContext(StatementsContext.class,0);
}
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public LambdaParametersContext lambdaParameters() {
return getRuleContext(LambdaParametersContext.class,0);
}
public TerminalNode ARROW() { return getToken(KotlinParser.ARROW, 0); }
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public FunctionLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionLiteral(this);
}
}
public final FunctionLiteralContext functionLiteral() throws RecognitionException {
FunctionLiteralContext _localctx = new FunctionLiteralContext(_ctx, getState());
enterRule(_localctx, 182, RULE_functionLiteral);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2028);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(2025);
annotations();
}
}
setState(2030);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2077);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,313,_ctx) ) {
case 1:
{
setState(2031);
match(LCURL);
setState(2035);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,307,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2032);
match(NL);
}
}
}
setState(2037);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,307,_ctx);
}
setState(2038);
statements();
setState(2042);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2039);
match(NL);
}
}
setState(2044);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2045);
match(RCURL);
}
break;
case 2:
{
setState(2047);
match(LCURL);
setState(2051);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,309,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2048);
match(NL);
}
}
}
setState(2053);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,309,_ctx);
}
setState(2054);
lambdaParameters();
setState(2058);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2055);
match(NL);
}
}
setState(2060);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2061);
match(ARROW);
setState(2065);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,311,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2062);
match(NL);
}
}
}
setState(2067);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,311,_ctx);
}
setState(2068);
statements();
setState(2072);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2069);
match(NL);
}
}
setState(2074);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2075);
match(RCURL);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LambdaParametersContext extends ParserRuleContext {
public List lambdaParameter() {
return getRuleContexts(LambdaParameterContext.class);
}
public LambdaParameterContext lambdaParameter(int i) {
return getRuleContext(LambdaParameterContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public LambdaParametersContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lambdaParameters; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLambdaParameters(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLambdaParameters(this);
}
}
public final LambdaParametersContext lambdaParameters() throws RecognitionException {
LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState());
enterRule(_localctx, 184, RULE_lambdaParameters);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2080);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LPAREN || _la==IMPORT || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & 9223371905925394575L) != 0) || _la==Identifier) {
{
setState(2079);
lambdaParameter();
}
}
setState(2098);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,317,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2085);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2082);
match(NL);
}
}
setState(2087);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2088);
match(COMMA);
setState(2092);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2089);
match(NL);
}
}
setState(2094);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2095);
lambdaParameter();
}
}
}
setState(2100);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,317,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LambdaParameterContext extends ParserRuleContext {
public VariableDeclarationContext variableDeclaration() {
return getRuleContext(VariableDeclarationContext.class,0);
}
public MultiVariableDeclarationContext multiVariableDeclaration() {
return getRuleContext(MultiVariableDeclarationContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public LambdaParameterContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lambdaParameter; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLambdaParameter(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLambdaParameter(this);
}
}
public final LambdaParameterContext lambdaParameter() throws RecognitionException {
LambdaParameterContext _localctx = new LambdaParameterContext(_ctx, getState());
enterRule(_localctx, 186, RULE_lambdaParameter);
int _la;
try {
setState(2119);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
enterOuterAlt(_localctx, 1);
{
setState(2101);
variableDeclaration();
}
break;
case LPAREN:
enterOuterAlt(_localctx, 2);
{
setState(2102);
multiVariableDeclaration();
setState(2117);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) {
case 1:
{
setState(2106);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2103);
match(NL);
}
}
setState(2108);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2109);
match(COLON);
setState(2113);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2110);
match(NL);
}
}
setState(2115);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2116);
type();
}
break;
}
}
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 ObjectLiteralContext extends ParserRuleContext {
public TerminalNode OBJECT() { return getToken(KotlinParser.OBJECT, 0); }
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public DelegationSpecifiersContext delegationSpecifiers() {
return getRuleContext(DelegationSpecifiersContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ClassBodyContext classBody() {
return getRuleContext(ClassBodyContext.class,0);
}
public ObjectLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_objectLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterObjectLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitObjectLiteral(this);
}
}
public final ObjectLiteralContext objectLiteral() throws RecognitionException {
ObjectLiteralContext _localctx = new ObjectLiteralContext(_ctx, getState());
enterRule(_localctx, 188, RULE_objectLiteral);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2121);
match(OBJECT);
setState(2136);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,324,_ctx) ) {
case 1:
{
setState(2125);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2122);
match(NL);
}
}
setState(2127);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2128);
match(COLON);
setState(2132);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2129);
match(NL);
}
}
setState(2134);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2135);
delegationSpecifiers();
}
break;
}
setState(2141);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,325,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2138);
match(NL);
}
}
}
setState(2143);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,325,_ctx);
}
setState(2145);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,326,_ctx) ) {
case 1:
{
setState(2144);
classBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CollectionLiteralContext extends ParserRuleContext {
public TerminalNode LSQUARE() { return getToken(KotlinParser.LSQUARE, 0); }
public TerminalNode RSQUARE() { return getToken(KotlinParser.RSQUARE, 0); }
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public CollectionLiteralContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_collectionLiteral; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterCollectionLiteral(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitCollectionLiteral(this);
}
}
public final CollectionLiteralContext collectionLiteral() throws RecognitionException {
CollectionLiteralContext _localctx = new CollectionLiteralContext(_ctx, getState());
enterRule(_localctx, 190, RULE_collectionLiteral);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2147);
match(LSQUARE);
setState(2149);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -4188346347763783136L) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & -65012289L) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & 24563L) != 0)) {
{
setState(2148);
expression();
}
}
setState(2155);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(2151);
match(COMMA);
setState(2152);
expression();
}
}
setState(2157);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2158);
match(RSQUARE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ThisExpressionContext extends ParserRuleContext {
public TerminalNode THIS() { return getToken(KotlinParser.THIS, 0); }
public TerminalNode LabelReference() { return getToken(KotlinParser.LabelReference, 0); }
public ThisExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_thisExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterThisExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitThisExpression(this);
}
}
public final ThisExpressionContext thisExpression() throws RecognitionException {
ThisExpressionContext _localctx = new ThisExpressionContext(_ctx, getState());
enterRule(_localctx, 192, RULE_thisExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(2160);
match(THIS);
setState(2162);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,329,_ctx) ) {
case 1:
{
setState(2161);
match(LabelReference);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SuperExpressionContext extends ParserRuleContext {
public TerminalNode SUPER() { return getToken(KotlinParser.SUPER, 0); }
public TerminalNode LANGLE() { return getToken(KotlinParser.LANGLE, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public TerminalNode RANGLE() { return getToken(KotlinParser.RANGLE, 0); }
public TerminalNode LabelReference() { return getToken(KotlinParser.LabelReference, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public SuperExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_superExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSuperExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSuperExpression(this);
}
}
public final SuperExpressionContext superExpression() throws RecognitionException {
SuperExpressionContext _localctx = new SuperExpressionContext(_ctx, getState());
enterRule(_localctx, 194, RULE_superExpression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2164);
match(SUPER);
setState(2181);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,332,_ctx) ) {
case 1:
{
setState(2165);
match(LANGLE);
setState(2169);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2166);
match(NL);
}
}
setState(2171);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2172);
type();
setState(2176);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2173);
match(NL);
}
}
setState(2178);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2179);
match(RANGLE);
}
break;
}
setState(2184);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,333,_ctx) ) {
case 1:
{
setState(2183);
match(LabelReference);
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ConditionalExpressionContext extends ParserRuleContext {
public IfExpressionContext ifExpression() {
return getRuleContext(IfExpressionContext.class,0);
}
public WhenExpressionContext whenExpression() {
return getRuleContext(WhenExpressionContext.class,0);
}
public ConditionalExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_conditionalExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterConditionalExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitConditionalExpression(this);
}
}
public final ConditionalExpressionContext conditionalExpression() throws RecognitionException {
ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState());
enterRule(_localctx, 196, RULE_conditionalExpression);
try {
setState(2188);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IF:
enterOuterAlt(_localctx, 1);
{
setState(2186);
ifExpression();
}
break;
case WHEN:
enterOuterAlt(_localctx, 2);
{
setState(2187);
whenExpression();
}
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 IfExpressionContext extends ParserRuleContext {
public TerminalNode IF() { return getToken(KotlinParser.IF, 0); }
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List controlStructureBody() {
return getRuleContexts(ControlStructureBodyContext.class);
}
public ControlStructureBodyContext controlStructureBody(int i) {
return getRuleContext(ControlStructureBodyContext.class,i);
}
public TerminalNode SEMICOLON() { return getToken(KotlinParser.SEMICOLON, 0); }
public TerminalNode ELSE() { return getToken(KotlinParser.ELSE, 0); }
public IfExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_ifExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterIfExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitIfExpression(this);
}
}
public final IfExpressionContext ifExpression() throws RecognitionException {
IfExpressionContext _localctx = new IfExpressionContext(_ctx, getState());
enterRule(_localctx, 198, RULE_ifExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2190);
match(IF);
setState(2194);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2191);
match(NL);
}
}
setState(2196);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2197);
match(LPAREN);
setState(2198);
expression();
setState(2199);
match(RPAREN);
setState(2203);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,336,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2200);
match(NL);
}
}
}
setState(2205);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,336,_ctx);
}
setState(2207);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,337,_ctx) ) {
case 1:
{
setState(2206);
controlStructureBody();
}
break;
}
setState(2210);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,338,_ctx) ) {
case 1:
{
setState(2209);
match(SEMICOLON);
}
break;
}
setState(2228);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,342,_ctx) ) {
case 1:
{
setState(2215);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2212);
match(NL);
}
}
setState(2217);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2218);
match(ELSE);
setState(2222);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,340,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2219);
match(NL);
}
}
}
setState(2224);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,340,_ctx);
}
setState(2226);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,341,_ctx) ) {
case 1:
{
setState(2225);
controlStructureBody();
}
break;
}
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ControlStructureBodyContext extends ParserRuleContext {
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ControlStructureBodyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_controlStructureBody; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterControlStructureBody(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitControlStructureBody(this);
}
}
public final ControlStructureBodyContext controlStructureBody() throws RecognitionException {
ControlStructureBodyContext _localctx = new ControlStructureBodyContext(_ctx, getState());
enterRule(_localctx, 200, RULE_controlStructureBody);
try {
setState(2232);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,343,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(2230);
block();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(2231);
expression();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class WhenExpressionContext extends ParserRuleContext {
public TerminalNode WHEN() { return getToken(KotlinParser.WHEN, 0); }
public TerminalNode LCURL() { return getToken(KotlinParser.LCURL, 0); }
public TerminalNode RCURL() { return getToken(KotlinParser.RCURL, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List whenEntry() {
return getRuleContexts(WhenEntryContext.class);
}
public WhenEntryContext whenEntry(int i) {
return getRuleContext(WhenEntryContext.class,i);
}
public WhenExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_whenExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterWhenExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitWhenExpression(this);
}
}
public final WhenExpressionContext whenExpression() throws RecognitionException {
WhenExpressionContext _localctx = new WhenExpressionContext(_ctx, getState());
enterRule(_localctx, 202, RULE_whenExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2234);
match(WHEN);
setState(2238);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,344,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2235);
match(NL);
}
}
}
setState(2240);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,344,_ctx);
}
setState(2245);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LPAREN) {
{
setState(2241);
match(LPAREN);
setState(2242);
expression();
setState(2243);
match(RPAREN);
}
}
setState(2250);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2247);
match(NL);
}
}
setState(2252);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2253);
match(LCURL);
setState(2257);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,347,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2254);
match(NL);
}
}
}
setState(2259);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,347,_ctx);
}
setState(2269);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,349,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2260);
whenEntry();
setState(2264);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,348,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2261);
match(NL);
}
}
}
setState(2266);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,348,_ctx);
}
}
}
}
setState(2271);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,349,_ctx);
}
setState(2275);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2272);
match(NL);
}
}
setState(2277);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2278);
match(RCURL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class WhenEntryContext extends ParserRuleContext {
public List whenCondition() {
return getRuleContexts(WhenConditionContext.class);
}
public WhenConditionContext whenCondition(int i) {
return getRuleContext(WhenConditionContext.class,i);
}
public TerminalNode ARROW() { return getToken(KotlinParser.ARROW, 0); }
public ControlStructureBodyContext controlStructureBody() {
return getRuleContext(ControlStructureBodyContext.class,0);
}
public List COMMA() { return getTokens(KotlinParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(KotlinParser.COMMA, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public SemiContext semi() {
return getRuleContext(SemiContext.class,0);
}
public TerminalNode ELSE() { return getToken(KotlinParser.ELSE, 0); }
public WhenEntryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_whenEntry; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterWhenEntry(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitWhenEntry(this);
}
}
public final WhenEntryContext whenEntry() throws RecognitionException {
WhenEntryContext _localctx = new WhenEntryContext(_ctx, getState());
enterRule(_localctx, 204, RULE_whenEntry);
int _la;
try {
int _alt;
setState(2332);
_errHandler.sync(this);
switch (_input.LA(1)) {
case NL:
case LPAREN:
case LSQUARE:
case LCURL:
case ADD:
case SUB:
case INCR:
case DECR:
case EXCL:
case COLONCOLON:
case Q_COLONCOLON:
case AT:
case RETURN_AT:
case CONTINUE_AT:
case BREAK_AT:
case FILE:
case IMPORT:
case OBJECT:
case VAL:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case THIS:
case SUPER:
case WHERE:
case IF:
case WHEN:
case TRY:
case CATCH:
case FINALLY:
case FOR:
case DO:
case WHILE:
case THROW:
case RETURN:
case CONTINUE:
case BREAK:
case IS:
case IN:
case NOT_IS:
case NOT_IN:
case OUT:
case FIELD:
case PROPERTY:
case GET:
case SET:
case GETTER:
case SETTER:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case QUOTE_OPEN:
case TRIPLE_QUOTE_OPEN:
case RealLiteral:
case LongLiteral:
case IntegerLiteral:
case HexLiteral:
case BinLiteral:
case BooleanLiteral:
case NullLiteral:
case Identifier:
case LabelReference:
case LabelDefinition:
case CharacterLiteral:
enterOuterAlt(_localctx, 1);
{
setState(2280);
whenCondition();
setState(2297);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,353,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2284);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2281);
match(NL);
}
}
setState(2286);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2287);
match(COMMA);
setState(2291);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,352,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2288);
match(NL);
}
}
}
setState(2293);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,352,_ctx);
}
setState(2294);
whenCondition();
}
}
}
setState(2299);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,353,_ctx);
}
setState(2303);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2300);
match(NL);
}
}
setState(2305);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2306);
match(ARROW);
setState(2310);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,355,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2307);
match(NL);
}
}
}
setState(2312);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,355,_ctx);
}
setState(2313);
controlStructureBody();
setState(2315);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,356,_ctx) ) {
case 1:
{
setState(2314);
semi();
}
break;
}
}
break;
case ELSE:
enterOuterAlt(_localctx, 2);
{
setState(2317);
match(ELSE);
setState(2321);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2318);
match(NL);
}
}
setState(2323);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2324);
match(ARROW);
setState(2328);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,358,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2325);
match(NL);
}
}
}
setState(2330);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,358,_ctx);
}
setState(2331);
controlStructureBody();
}
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 WhenConditionContext extends ParserRuleContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public RangeTestContext rangeTest() {
return getRuleContext(RangeTestContext.class,0);
}
public TypeTestContext typeTest() {
return getRuleContext(TypeTestContext.class,0);
}
public WhenConditionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_whenCondition; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterWhenCondition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitWhenCondition(this);
}
}
public final WhenConditionContext whenCondition() throws RecognitionException {
WhenConditionContext _localctx = new WhenConditionContext(_ctx, getState());
enterRule(_localctx, 206, RULE_whenCondition);
try {
setState(2337);
_errHandler.sync(this);
switch (_input.LA(1)) {
case NL:
case LPAREN:
case LSQUARE:
case LCURL:
case ADD:
case SUB:
case INCR:
case DECR:
case EXCL:
case COLONCOLON:
case Q_COLONCOLON:
case AT:
case RETURN_AT:
case CONTINUE_AT:
case BREAK_AT:
case FILE:
case IMPORT:
case OBJECT:
case VAL:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case THIS:
case SUPER:
case WHERE:
case IF:
case WHEN:
case TRY:
case CATCH:
case FINALLY:
case FOR:
case DO:
case WHILE:
case THROW:
case RETURN:
case CONTINUE:
case BREAK:
case OUT:
case FIELD:
case PROPERTY:
case GET:
case SET:
case GETTER:
case SETTER:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case QUOTE_OPEN:
case TRIPLE_QUOTE_OPEN:
case RealLiteral:
case LongLiteral:
case IntegerLiteral:
case HexLiteral:
case BinLiteral:
case BooleanLiteral:
case NullLiteral:
case Identifier:
case LabelReference:
case LabelDefinition:
case CharacterLiteral:
enterOuterAlt(_localctx, 1);
{
setState(2334);
expression();
}
break;
case IN:
case NOT_IN:
enterOuterAlt(_localctx, 2);
{
setState(2335);
rangeTest();
}
break;
case IS:
case NOT_IS:
enterOuterAlt(_localctx, 3);
{
setState(2336);
typeTest();
}
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 RangeTestContext extends ParserRuleContext {
public InOperatorContext inOperator() {
return getRuleContext(InOperatorContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public RangeTestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_rangeTest; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterRangeTest(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitRangeTest(this);
}
}
public final RangeTestContext rangeTest() throws RecognitionException {
RangeTestContext _localctx = new RangeTestContext(_ctx, getState());
enterRule(_localctx, 208, RULE_rangeTest);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2339);
inOperator();
setState(2343);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,361,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2340);
match(NL);
}
}
}
setState(2345);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,361,_ctx);
}
setState(2346);
expression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TypeTestContext extends ParserRuleContext {
public IsOperatorContext isOperator() {
return getRuleContext(IsOperatorContext.class,0);
}
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TypeTestContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeTest; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeTest(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeTest(this);
}
}
public final TypeTestContext typeTest() throws RecognitionException {
TypeTestContext _localctx = new TypeTestContext(_ctx, getState());
enterRule(_localctx, 210, RULE_typeTest);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2348);
isOperator();
setState(2352);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2349);
match(NL);
}
}
setState(2354);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2355);
type();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class TryExpressionContext extends ParserRuleContext {
public TerminalNode TRY() { return getToken(KotlinParser.TRY, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List catchBlock() {
return getRuleContexts(CatchBlockContext.class);
}
public CatchBlockContext catchBlock(int i) {
return getRuleContext(CatchBlockContext.class,i);
}
public FinallyBlockContext finallyBlock() {
return getRuleContext(FinallyBlockContext.class,0);
}
public TryExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_tryExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTryExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTryExpression(this);
}
}
public final TryExpressionContext tryExpression() throws RecognitionException {
TryExpressionContext _localctx = new TryExpressionContext(_ctx, getState());
enterRule(_localctx, 212, RULE_tryExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2357);
match(TRY);
setState(2361);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2358);
match(NL);
}
}
setState(2363);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2364);
block();
setState(2374);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,365,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2368);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2365);
match(NL);
}
}
setState(2370);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2371);
catchBlock();
}
}
}
setState(2376);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,365,_ctx);
}
setState(2384);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,367,_ctx) ) {
case 1:
{
setState(2380);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2377);
match(NL);
}
}
setState(2382);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2383);
finallyBlock();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class CatchBlockContext extends ParserRuleContext {
public TerminalNode CATCH() { return getToken(KotlinParser.CATCH, 0); }
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public SimpleIdentifierContext simpleIdentifier() {
return getRuleContext(SimpleIdentifierContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public CatchBlockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_catchBlock; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterCatchBlock(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitCatchBlock(this);
}
}
public final CatchBlockContext catchBlock() throws RecognitionException {
CatchBlockContext _localctx = new CatchBlockContext(_ctx, getState());
enterRule(_localctx, 214, RULE_catchBlock);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2386);
match(CATCH);
setState(2390);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2387);
match(NL);
}
}
setState(2392);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2393);
match(LPAREN);
setState(2397);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(2394);
annotations();
}
}
setState(2399);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2400);
simpleIdentifier();
setState(2401);
match(COLON);
setState(2402);
userType();
setState(2403);
match(RPAREN);
setState(2407);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2404);
match(NL);
}
}
setState(2409);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2410);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class FinallyBlockContext extends ParserRuleContext {
public TerminalNode FINALLY() { return getToken(KotlinParser.FINALLY, 0); }
public BlockContext block() {
return getRuleContext(BlockContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public FinallyBlockContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_finallyBlock; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFinallyBlock(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFinallyBlock(this);
}
}
public final FinallyBlockContext finallyBlock() throws RecognitionException {
FinallyBlockContext _localctx = new FinallyBlockContext(_ctx, getState());
enterRule(_localctx, 216, RULE_finallyBlock);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2412);
match(FINALLY);
setState(2416);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2413);
match(NL);
}
}
setState(2418);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2419);
block();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LoopExpressionContext extends ParserRuleContext {
public ForExpressionContext forExpression() {
return getRuleContext(ForExpressionContext.class,0);
}
public WhileExpressionContext whileExpression() {
return getRuleContext(WhileExpressionContext.class,0);
}
public DoWhileExpressionContext doWhileExpression() {
return getRuleContext(DoWhileExpressionContext.class,0);
}
public LoopExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_loopExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLoopExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLoopExpression(this);
}
}
public final LoopExpressionContext loopExpression() throws RecognitionException {
LoopExpressionContext _localctx = new LoopExpressionContext(_ctx, getState());
enterRule(_localctx, 218, RULE_loopExpression);
try {
setState(2424);
_errHandler.sync(this);
switch (_input.LA(1)) {
case FOR:
enterOuterAlt(_localctx, 1);
{
setState(2421);
forExpression();
}
break;
case WHILE:
enterOuterAlt(_localctx, 2);
{
setState(2422);
whileExpression();
}
break;
case DO:
enterOuterAlt(_localctx, 3);
{
setState(2423);
doWhileExpression();
}
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 ForExpressionContext extends ParserRuleContext {
public TerminalNode FOR() { return getToken(KotlinParser.FOR, 0); }
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public TerminalNode IN() { return getToken(KotlinParser.IN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public VariableDeclarationContext variableDeclaration() {
return getRuleContext(VariableDeclarationContext.class,0);
}
public MultiVariableDeclarationContext multiVariableDeclaration() {
return getRuleContext(MultiVariableDeclarationContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public ControlStructureBodyContext controlStructureBody() {
return getRuleContext(ControlStructureBodyContext.class,0);
}
public ForExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_forExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterForExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitForExpression(this);
}
}
public final ForExpressionContext forExpression() throws RecognitionException {
ForExpressionContext _localctx = new ForExpressionContext(_ctx, getState());
enterRule(_localctx, 220, RULE_forExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2426);
match(FOR);
setState(2430);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2427);
match(NL);
}
}
setState(2432);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2433);
match(LPAREN);
setState(2437);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==AT || _la==FILE || ((((_la - 93)) & ~0x3f) == 0 && ((1L << (_la - 93)) & 281474976711631L) != 0)) {
{
{
setState(2434);
annotations();
}
}
setState(2439);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2442);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
{
setState(2440);
variableDeclaration();
}
break;
case LPAREN:
{
setState(2441);
multiVariableDeclaration();
}
break;
default:
throw new NoViableAltException(this);
}
setState(2444);
match(IN);
setState(2445);
expression();
setState(2446);
match(RPAREN);
setState(2450);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,376,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2447);
match(NL);
}
}
}
setState(2452);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,376,_ctx);
}
setState(2454);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,377,_ctx) ) {
case 1:
{
setState(2453);
controlStructureBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class WhileExpressionContext extends ParserRuleContext {
public TerminalNode WHILE() { return getToken(KotlinParser.WHILE, 0); }
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ControlStructureBodyContext controlStructureBody() {
return getRuleContext(ControlStructureBodyContext.class,0);
}
public WhileExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_whileExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterWhileExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitWhileExpression(this);
}
}
public final WhileExpressionContext whileExpression() throws RecognitionException {
WhileExpressionContext _localctx = new WhileExpressionContext(_ctx, getState());
enterRule(_localctx, 222, RULE_whileExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2456);
match(WHILE);
setState(2460);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2457);
match(NL);
}
}
setState(2462);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2463);
match(LPAREN);
setState(2464);
expression();
setState(2465);
match(RPAREN);
setState(2469);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,379,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2466);
match(NL);
}
}
}
setState(2471);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,379,_ctx);
}
setState(2473);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,380,_ctx) ) {
case 1:
{
setState(2472);
controlStructureBody();
}
break;
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class DoWhileExpressionContext extends ParserRuleContext {
public TerminalNode DO() { return getToken(KotlinParser.DO, 0); }
public TerminalNode WHILE() { return getToken(KotlinParser.WHILE, 0); }
public TerminalNode LPAREN() { return getToken(KotlinParser.LPAREN, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public TerminalNode RPAREN() { return getToken(KotlinParser.RPAREN, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ControlStructureBodyContext controlStructureBody() {
return getRuleContext(ControlStructureBodyContext.class,0);
}
public DoWhileExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_doWhileExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterDoWhileExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitDoWhileExpression(this);
}
}
public final DoWhileExpressionContext doWhileExpression() throws RecognitionException {
DoWhileExpressionContext _localctx = new DoWhileExpressionContext(_ctx, getState());
enterRule(_localctx, 224, RULE_doWhileExpression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2475);
match(DO);
setState(2479);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,381,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2476);
match(NL);
}
}
}
setState(2481);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,381,_ctx);
}
setState(2483);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,382,_ctx) ) {
case 1:
{
setState(2482);
controlStructureBody();
}
break;
}
setState(2488);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2485);
match(NL);
}
}
setState(2490);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2491);
match(WHILE);
setState(2495);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2492);
match(NL);
}
}
setState(2497);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2498);
match(LPAREN);
setState(2499);
expression();
setState(2500);
match(RPAREN);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class JumpExpressionContext extends ParserRuleContext {
public TerminalNode THROW() { return getToken(KotlinParser.THROW, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode RETURN() { return getToken(KotlinParser.RETURN, 0); }
public TerminalNode RETURN_AT() { return getToken(KotlinParser.RETURN_AT, 0); }
public TerminalNode CONTINUE() { return getToken(KotlinParser.CONTINUE, 0); }
public TerminalNode CONTINUE_AT() { return getToken(KotlinParser.CONTINUE_AT, 0); }
public TerminalNode BREAK() { return getToken(KotlinParser.BREAK, 0); }
public TerminalNode BREAK_AT() { return getToken(KotlinParser.BREAK_AT, 0); }
public JumpExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_jumpExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterJumpExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitJumpExpression(this);
}
}
public final JumpExpressionContext jumpExpression() throws RecognitionException {
JumpExpressionContext _localctx = new JumpExpressionContext(_ctx, getState());
enterRule(_localctx, 226, RULE_jumpExpression);
int _la;
try {
int _alt;
setState(2518);
_errHandler.sync(this);
switch (_input.LA(1)) {
case THROW:
enterOuterAlt(_localctx, 1);
{
setState(2502);
match(THROW);
setState(2506);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,385,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2503);
match(NL);
}
}
}
setState(2508);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,385,_ctx);
}
setState(2509);
expression();
}
break;
case RETURN_AT:
case RETURN:
enterOuterAlt(_localctx, 2);
{
setState(2510);
_la = _input.LA(1);
if ( !(_la==RETURN_AT || _la==RETURN) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(2512);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,386,_ctx) ) {
case 1:
{
setState(2511);
expression();
}
break;
}
}
break;
case CONTINUE:
enterOuterAlt(_localctx, 3);
{
setState(2514);
match(CONTINUE);
}
break;
case CONTINUE_AT:
enterOuterAlt(_localctx, 4);
{
setState(2515);
match(CONTINUE_AT);
}
break;
case BREAK:
enterOuterAlt(_localctx, 5);
{
setState(2516);
match(BREAK);
}
break;
case BREAK_AT:
enterOuterAlt(_localctx, 6);
{
setState(2517);
match(BREAK_AT);
}
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 CallableReferenceContext extends ParserRuleContext {
public TerminalNode COLONCOLON() { return getToken(KotlinParser.COLONCOLON, 0); }
public TerminalNode Q_COLONCOLON() { return getToken(KotlinParser.Q_COLONCOLON, 0); }
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TerminalNode CLASS() { return getToken(KotlinParser.CLASS, 0); }
public UserTypeContext userType() {
return getRuleContext(UserTypeContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public List QUEST() { return getTokens(KotlinParser.QUEST); }
public TerminalNode QUEST(int i) {
return getToken(KotlinParser.QUEST, i);
}
public TerminalNode THIS() { return getToken(KotlinParser.THIS, 0); }
public CallableReferenceContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_callableReference; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterCallableReference(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitCallableReference(this);
}
}
public final CallableReferenceContext callableReference() throws RecognitionException {
CallableReferenceContext _localctx = new CallableReferenceContext(_ctx, getState());
enterRule(_localctx, 228, RULE_callableReference);
int _la;
try {
int _alt;
setState(2567);
_errHandler.sync(this);
switch (_input.LA(1)) {
case NL:
case COLONCOLON:
case Q_COLONCOLON:
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
enterOuterAlt(_localctx, 1);
{
setState(2533);
_errHandler.sync(this);
_la = _input.LA(1);
if (((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 0)) {
{
setState(2520);
userType();
setState(2530);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==QUEST) {
{
{
setState(2521);
match(QUEST);
setState(2525);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,388,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2522);
match(NL);
}
}
}
setState(2527);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,388,_ctx);
}
}
}
setState(2532);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(2538);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2535);
match(NL);
}
}
setState(2540);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2541);
_la = _input.LA(1);
if ( !(_la==COLONCOLON || _la==Q_COLONCOLON) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(2545);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2542);
match(NL);
}
}
setState(2547);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2550);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IMPORT:
case CONSTRUCTOR:
case BY:
case COMPANION:
case INIT:
case WHERE:
case CATCH:
case FINALLY:
case OUT:
case GETTER:
case SETTER:
case DYNAMIC:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
case Identifier:
{
setState(2548);
identifier();
}
break;
case CLASS:
{
setState(2549);
match(CLASS);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case THIS:
enterOuterAlt(_localctx, 2);
{
setState(2552);
match(THIS);
setState(2556);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2553);
match(NL);
}
}
setState(2558);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2559);
match(COLONCOLON);
setState(2563);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2560);
match(NL);
}
}
setState(2565);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2566);
match(CLASS);
}
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 AssignmentOperatorContext extends ParserRuleContext {
public TerminalNode ASSIGNMENT() { return getToken(KotlinParser.ASSIGNMENT, 0); }
public TerminalNode ADD_ASSIGNMENT() { return getToken(KotlinParser.ADD_ASSIGNMENT, 0); }
public TerminalNode SUB_ASSIGNMENT() { return getToken(KotlinParser.SUB_ASSIGNMENT, 0); }
public TerminalNode MULT_ASSIGNMENT() { return getToken(KotlinParser.MULT_ASSIGNMENT, 0); }
public TerminalNode DIV_ASSIGNMENT() { return getToken(KotlinParser.DIV_ASSIGNMENT, 0); }
public TerminalNode MOD_ASSIGNMENT() { return getToken(KotlinParser.MOD_ASSIGNMENT, 0); }
public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_assignmentOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAssignmentOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAssignmentOperator(this);
}
}
public final AssignmentOperatorContext assignmentOperator() throws RecognitionException {
AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState());
enterRule(_localctx, 230, RULE_assignmentOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2569);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 8455716864L) != 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 EqualityOperationContext extends ParserRuleContext {
public TerminalNode EXCL_EQ() { return getToken(KotlinParser.EXCL_EQ, 0); }
public TerminalNode EXCL_EQEQ() { return getToken(KotlinParser.EXCL_EQEQ, 0); }
public TerminalNode EQEQ() { return getToken(KotlinParser.EQEQ, 0); }
public TerminalNode EQEQEQ() { return getToken(KotlinParser.EQEQEQ, 0); }
public EqualityOperationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_equalityOperation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterEqualityOperation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitEqualityOperation(this);
}
}
public final EqualityOperationContext equalityOperation() throws RecognitionException {
EqualityOperationContext _localctx = new EqualityOperationContext(_ctx, getState());
enterRule(_localctx, 232, RULE_equalityOperation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2571);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 3799912185593856L) != 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 ComparisonOperatorContext extends ParserRuleContext {
public TerminalNode LANGLE() { return getToken(KotlinParser.LANGLE, 0); }
public TerminalNode RANGLE() { return getToken(KotlinParser.RANGLE, 0); }
public TerminalNode LE() { return getToken(KotlinParser.LE, 0); }
public TerminalNode GE() { return getToken(KotlinParser.GE, 0); }
public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_comparisonOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterComparisonOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitComparisonOperator(this);
}
}
public final ComparisonOperatorContext comparisonOperator() throws RecognitionException {
ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, getState());
enterRule(_localctx, 234, RULE_comparisonOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2573);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 131941395333120L) != 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 InOperatorContext extends ParserRuleContext {
public TerminalNode IN() { return getToken(KotlinParser.IN, 0); }
public TerminalNode NOT_IN() { return getToken(KotlinParser.NOT_IN, 0); }
public InOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_inOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterInOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitInOperator(this);
}
}
public final InOperatorContext inOperator() throws RecognitionException {
InOperatorContext _localctx = new InOperatorContext(_ctx, getState());
enterRule(_localctx, 236, RULE_inOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2575);
_la = _input.LA(1);
if ( !(_la==IN || _la==NOT_IN) ) {
_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 IsOperatorContext extends ParserRuleContext {
public TerminalNode IS() { return getToken(KotlinParser.IS, 0); }
public TerminalNode NOT_IS() { return getToken(KotlinParser.NOT_IS, 0); }
public IsOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_isOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterIsOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitIsOperator(this);
}
}
public final IsOperatorContext isOperator() throws RecognitionException {
IsOperatorContext _localctx = new IsOperatorContext(_ctx, getState());
enterRule(_localctx, 238, RULE_isOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2577);
_la = _input.LA(1);
if ( !(_la==IS || _la==NOT_IS) ) {
_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 AdditiveOperatorContext extends ParserRuleContext {
public TerminalNode ADD() { return getToken(KotlinParser.ADD, 0); }
public TerminalNode SUB() { return getToken(KotlinParser.SUB, 0); }
public AdditiveOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_additiveOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAdditiveOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAdditiveOperator(this);
}
}
public final AdditiveOperatorContext additiveOperator() throws RecognitionException {
AdditiveOperatorContext _localctx = new AdditiveOperatorContext(_ctx, getState());
enterRule(_localctx, 240, RULE_additiveOperator);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2579);
_la = _input.LA(1);
if ( !(_la==ADD || _la==SUB) ) {
_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 MultiplicativeOperationContext extends ParserRuleContext {
public TerminalNode MULT() { return getToken(KotlinParser.MULT, 0); }
public TerminalNode DIV() { return getToken(KotlinParser.DIV, 0); }
public TerminalNode MOD() { return getToken(KotlinParser.MOD, 0); }
public MultiplicativeOperationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_multiplicativeOperation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMultiplicativeOperation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMultiplicativeOperation(this);
}
}
public final MultiplicativeOperationContext multiplicativeOperation() throws RecognitionException {
MultiplicativeOperationContext _localctx = new MultiplicativeOperationContext(_ctx, getState());
enterRule(_localctx, 242, RULE_multiplicativeOperation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2581);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 229376L) != 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 TypeOperationContext extends ParserRuleContext {
public TerminalNode AS() { return getToken(KotlinParser.AS, 0); }
public TerminalNode AS_SAFE() { return getToken(KotlinParser.AS_SAFE, 0); }
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TypeOperationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeOperation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeOperation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeOperation(this);
}
}
public final TypeOperationContext typeOperation() throws RecognitionException {
TypeOperationContext _localctx = new TypeOperationContext(_ctx, getState());
enterRule(_localctx, 244, RULE_typeOperation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2583);
_la = _input.LA(1);
if ( !(((((_la - 25)) & ~0x3f) == 0 && ((1L << (_la - 25)) & 4611686018444165121L) != 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 PrefixUnaryOperationContext extends ParserRuleContext {
public TerminalNode INCR() { return getToken(KotlinParser.INCR, 0); }
public TerminalNode DECR() { return getToken(KotlinParser.DECR, 0); }
public TerminalNode ADD() { return getToken(KotlinParser.ADD, 0); }
public TerminalNode SUB() { return getToken(KotlinParser.SUB, 0); }
public TerminalNode EXCL() { return getToken(KotlinParser.EXCL, 0); }
public AnnotationsContext annotations() {
return getRuleContext(AnnotationsContext.class,0);
}
public LabelDefinitionContext labelDefinition() {
return getRuleContext(LabelDefinitionContext.class,0);
}
public PrefixUnaryOperationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_prefixUnaryOperation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPrefixUnaryOperation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPrefixUnaryOperation(this);
}
}
public final PrefixUnaryOperationContext prefixUnaryOperation() throws RecognitionException {
PrefixUnaryOperationContext _localctx = new PrefixUnaryOperationContext(_ctx, getState());
enterRule(_localctx, 246, RULE_prefixUnaryOperation);
try {
setState(2592);
_errHandler.sync(this);
switch (_input.LA(1)) {
case INCR:
enterOuterAlt(_localctx, 1);
{
setState(2585);
match(INCR);
}
break;
case DECR:
enterOuterAlt(_localctx, 2);
{
setState(2586);
match(DECR);
}
break;
case ADD:
enterOuterAlt(_localctx, 3);
{
setState(2587);
match(ADD);
}
break;
case SUB:
enterOuterAlt(_localctx, 4);
{
setState(2588);
match(SUB);
}
break;
case EXCL:
enterOuterAlt(_localctx, 5);
{
setState(2589);
match(EXCL);
}
break;
case AT:
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case LabelReference:
enterOuterAlt(_localctx, 6);
{
setState(2590);
annotations();
}
break;
case LabelDefinition:
enterOuterAlt(_localctx, 7);
{
setState(2591);
labelDefinition();
}
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 PostfixUnaryOperationContext extends ParserRuleContext {
public TerminalNode INCR() { return getToken(KotlinParser.INCR, 0); }
public TerminalNode DECR() { return getToken(KotlinParser.DECR, 0); }
public List EXCL() { return getTokens(KotlinParser.EXCL); }
public TerminalNode EXCL(int i) {
return getToken(KotlinParser.EXCL, i);
}
public CallSuffixContext callSuffix() {
return getRuleContext(CallSuffixContext.class,0);
}
public ArrayAccessContext arrayAccess() {
return getRuleContext(ArrayAccessContext.class,0);
}
public MemberAccessOperatorContext memberAccessOperator() {
return getRuleContext(MemberAccessOperatorContext.class,0);
}
public PostfixUnaryExpressionContext postfixUnaryExpression() {
return getRuleContext(PostfixUnaryExpressionContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public PostfixUnaryOperationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_postfixUnaryOperation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPostfixUnaryOperation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPostfixUnaryOperation(this);
}
}
public final PostfixUnaryOperationContext postfixUnaryOperation() throws RecognitionException {
PostfixUnaryOperationContext _localctx = new PostfixUnaryOperationContext(_ctx, getState());
enterRule(_localctx, 248, RULE_postfixUnaryOperation);
int _la;
try {
setState(2609);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,399,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(2594);
match(INCR);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(2595);
match(DECR);
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(2596);
match(EXCL);
setState(2597);
match(EXCL);
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(2598);
callSuffix();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(2599);
arrayAccess();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(2603);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2600);
match(NL);
}
}
setState(2605);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2606);
memberAccessOperator();
setState(2607);
postfixUnaryExpression();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class MemberAccessOperatorContext extends ParserRuleContext {
public TerminalNode DOT() { return getToken(KotlinParser.DOT, 0); }
public TerminalNode QUEST() { return getToken(KotlinParser.QUEST, 0); }
public MemberAccessOperatorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_memberAccessOperator; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMemberAccessOperator(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMemberAccessOperator(this);
}
}
public final MemberAccessOperatorContext memberAccessOperator() throws RecognitionException {
MemberAccessOperatorContext _localctx = new MemberAccessOperatorContext(_ctx, getState());
enterRule(_localctx, 250, RULE_memberAccessOperator);
try {
setState(2614);
_errHandler.sync(this);
switch (_input.LA(1)) {
case DOT:
enterOuterAlt(_localctx, 1);
{
setState(2611);
match(DOT);
}
break;
case QUEST:
enterOuterAlt(_localctx, 2);
{
setState(2612);
match(QUEST);
setState(2613);
match(DOT);
}
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 ModifierListContext extends ParserRuleContext {
public List annotations() {
return getRuleContexts(AnnotationsContext.class);
}
public AnnotationsContext annotations(int i) {
return getRuleContext(AnnotationsContext.class,i);
}
public List modifier() {
return getRuleContexts(ModifierContext.class);
}
public ModifierContext modifier(int i) {
return getRuleContext(ModifierContext.class,i);
}
public ModifierListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_modifierList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterModifierList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitModifierList(this);
}
}
public final ModifierListContext modifierList() throws RecognitionException {
ModifierListContext _localctx = new ModifierListContext(_ctx, getState());
enterRule(_localctx, 252, RULE_modifierList);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2618);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
setState(2618);
_errHandler.sync(this);
switch (_input.LA(1)) {
case AT:
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
case LabelReference:
{
setState(2616);
annotations();
}
break;
case IN:
case OUT:
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
case OVERRIDE:
case ABSTRACT:
case FINAL:
case OPEN:
case CONST:
case LATEINIT:
case VARARG:
case NOINLINE:
case CROSSINLINE:
case REIFIED:
{
setState(2617);
modifier();
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(2620);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,402,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
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 ClassModifierContext classModifier() {
return getRuleContext(ClassModifierContext.class,0);
}
public MemberModifierContext memberModifier() {
return getRuleContext(MemberModifierContext.class,0);
}
public VisibilityModifierContext visibilityModifier() {
return getRuleContext(VisibilityModifierContext.class,0);
}
public VarianceAnnotationContext varianceAnnotation() {
return getRuleContext(VarianceAnnotationContext.class,0);
}
public FunctionModifierContext functionModifier() {
return getRuleContext(FunctionModifierContext.class,0);
}
public PropertyModifierContext propertyModifier() {
return getRuleContext(PropertyModifierContext.class,0);
}
public InheritanceModifierContext inheritanceModifier() {
return getRuleContext(InheritanceModifierContext.class,0);
}
public ParameterModifierContext parameterModifier() {
return getRuleContext(ParameterModifierContext.class,0);
}
public TypeParameterModifierContext typeParameterModifier() {
return getRuleContext(TypeParameterModifierContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public ModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_modifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitModifier(this);
}
}
public final ModifierContext modifier() throws RecognitionException {
ModifierContext _localctx = new ModifierContext(_ctx, getState());
enterRule(_localctx, 254, RULE_modifier);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2631);
_errHandler.sync(this);
switch (_input.LA(1)) {
case ENUM:
case SEALED:
case ANNOTATION:
case DATA:
case INNER:
{
setState(2622);
classModifier();
}
break;
case OVERRIDE:
case LATEINIT:
{
setState(2623);
memberModifier();
}
break;
case PUBLIC:
case PRIVATE:
case PROTECTED:
case INTERNAL:
{
setState(2624);
visibilityModifier();
}
break;
case IN:
case OUT:
{
setState(2625);
varianceAnnotation();
}
break;
case TAILREC:
case OPERATOR:
case INLINE:
case INFIX:
case EXTERNAL:
case SUSPEND:
{
setState(2626);
functionModifier();
}
break;
case CONST:
{
setState(2627);
propertyModifier();
}
break;
case ABSTRACT:
case FINAL:
case OPEN:
{
setState(2628);
inheritanceModifier();
}
break;
case VARARG:
case NOINLINE:
case CROSSINLINE:
{
setState(2629);
parameterModifier();
}
break;
case REIFIED:
{
setState(2630);
typeParameterModifier();
}
break;
default:
throw new NoViableAltException(this);
}
setState(2636);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,404,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2633);
match(NL);
}
}
}
setState(2638);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,404,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class ClassModifierContext extends ParserRuleContext {
public TerminalNode ENUM() { return getToken(KotlinParser.ENUM, 0); }
public TerminalNode SEALED() { return getToken(KotlinParser.SEALED, 0); }
public TerminalNode ANNOTATION() { return getToken(KotlinParser.ANNOTATION, 0); }
public TerminalNode DATA() { return getToken(KotlinParser.DATA, 0); }
public TerminalNode INNER() { return getToken(KotlinParser.INNER, 0); }
public ClassModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_classModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterClassModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitClassModifier(this);
}
}
public final ClassModifierContext classModifier() throws RecognitionException {
ClassModifierContext _localctx = new ClassModifierContext(_ctx, getState());
enterRule(_localctx, 256, RULE_classModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2639);
_la = _input.LA(1);
if ( !(((((_la - 108)) & ~0x3f) == 0 && ((1L << (_la - 108)) & 31L) != 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 MemberModifierContext extends ParserRuleContext {
public TerminalNode OVERRIDE() { return getToken(KotlinParser.OVERRIDE, 0); }
public TerminalNode LATEINIT() { return getToken(KotlinParser.LATEINIT, 0); }
public MemberModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_memberModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterMemberModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitMemberModifier(this);
}
}
public final MemberModifierContext memberModifier() throws RecognitionException {
MemberModifierContext _localctx = new MemberModifierContext(_ctx, getState());
enterRule(_localctx, 258, RULE_memberModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2641);
_la = _input.LA(1);
if ( !(_la==OVERRIDE || _la==LATEINIT) ) {
_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 VisibilityModifierContext extends ParserRuleContext {
public TerminalNode PUBLIC() { return getToken(KotlinParser.PUBLIC, 0); }
public TerminalNode PRIVATE() { return getToken(KotlinParser.PRIVATE, 0); }
public TerminalNode INTERNAL() { return getToken(KotlinParser.INTERNAL, 0); }
public TerminalNode PROTECTED() { return getToken(KotlinParser.PROTECTED, 0); }
public VisibilityModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_visibilityModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterVisibilityModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitVisibilityModifier(this);
}
}
public final VisibilityModifierContext visibilityModifier() throws RecognitionException {
VisibilityModifierContext _localctx = new VisibilityModifierContext(_ctx, getState());
enterRule(_localctx, 260, RULE_visibilityModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2643);
_la = _input.LA(1);
if ( !(((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 15L) != 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 VarianceAnnotationContext extends ParserRuleContext {
public TerminalNode IN() { return getToken(KotlinParser.IN, 0); }
public TerminalNode OUT() { return getToken(KotlinParser.OUT, 0); }
public VarianceAnnotationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_varianceAnnotation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterVarianceAnnotation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitVarianceAnnotation(this);
}
}
public final VarianceAnnotationContext varianceAnnotation() throws RecognitionException {
VarianceAnnotationContext _localctx = new VarianceAnnotationContext(_ctx, getState());
enterRule(_localctx, 262, RULE_varianceAnnotation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2645);
_la = _input.LA(1);
if ( !(_la==IN || _la==OUT) ) {
_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 FunctionModifierContext extends ParserRuleContext {
public TerminalNode TAILREC() { return getToken(KotlinParser.TAILREC, 0); }
public TerminalNode OPERATOR() { return getToken(KotlinParser.OPERATOR, 0); }
public TerminalNode INFIX() { return getToken(KotlinParser.INFIX, 0); }
public TerminalNode INLINE() { return getToken(KotlinParser.INLINE, 0); }
public TerminalNode EXTERNAL() { return getToken(KotlinParser.EXTERNAL, 0); }
public TerminalNode SUSPEND() { return getToken(KotlinParser.SUSPEND, 0); }
public FunctionModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_functionModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterFunctionModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitFunctionModifier(this);
}
}
public final FunctionModifierContext functionModifier() throws RecognitionException {
FunctionModifierContext _localctx = new FunctionModifierContext(_ctx, getState());
enterRule(_localctx, 264, RULE_functionModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2647);
_la = _input.LA(1);
if ( !(((((_la - 113)) & ~0x3f) == 0 && ((1L << (_la - 113)) & 63L) != 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 PropertyModifierContext extends ParserRuleContext {
public TerminalNode CONST() { return getToken(KotlinParser.CONST, 0); }
public PropertyModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_propertyModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterPropertyModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitPropertyModifier(this);
}
}
public final PropertyModifierContext propertyModifier() throws RecognitionException {
PropertyModifierContext _localctx = new PropertyModifierContext(_ctx, getState());
enterRule(_localctx, 266, RULE_propertyModifier);
try {
enterOuterAlt(_localctx, 1);
{
setState(2649);
match(CONST);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class InheritanceModifierContext extends ParserRuleContext {
public TerminalNode ABSTRACT() { return getToken(KotlinParser.ABSTRACT, 0); }
public TerminalNode FINAL() { return getToken(KotlinParser.FINAL, 0); }
public TerminalNode OPEN() { return getToken(KotlinParser.OPEN, 0); }
public InheritanceModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_inheritanceModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterInheritanceModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitInheritanceModifier(this);
}
}
public final InheritanceModifierContext inheritanceModifier() throws RecognitionException {
InheritanceModifierContext _localctx = new InheritanceModifierContext(_ctx, getState());
enterRule(_localctx, 268, RULE_inheritanceModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2651);
_la = _input.LA(1);
if ( !(((((_la - 120)) & ~0x3f) == 0 && ((1L << (_la - 120)) & 7L) != 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 ParameterModifierContext extends ParserRuleContext {
public TerminalNode VARARG() { return getToken(KotlinParser.VARARG, 0); }
public TerminalNode NOINLINE() { return getToken(KotlinParser.NOINLINE, 0); }
public TerminalNode CROSSINLINE() { return getToken(KotlinParser.CROSSINLINE, 0); }
public ParameterModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_parameterModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterParameterModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitParameterModifier(this);
}
}
public final ParameterModifierContext parameterModifier() throws RecognitionException {
ParameterModifierContext _localctx = new ParameterModifierContext(_ctx, getState());
enterRule(_localctx, 270, RULE_parameterModifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2653);
_la = _input.LA(1);
if ( !(((((_la - 125)) & ~0x3f) == 0 && ((1L << (_la - 125)) & 7L) != 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 TypeParameterModifierContext extends ParserRuleContext {
public TerminalNode REIFIED() { return getToken(KotlinParser.REIFIED, 0); }
public TypeParameterModifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_typeParameterModifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterTypeParameterModifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitTypeParameterModifier(this);
}
}
public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException {
TypeParameterModifierContext _localctx = new TypeParameterModifierContext(_ctx, getState());
enterRule(_localctx, 272, RULE_typeParameterModifier);
try {
enterOuterAlt(_localctx, 1);
{
setState(2655);
match(REIFIED);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class LabelDefinitionContext extends ParserRuleContext {
public TerminalNode LabelDefinition() { return getToken(KotlinParser.LabelDefinition, 0); }
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public LabelDefinitionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_labelDefinition; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterLabelDefinition(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitLabelDefinition(this);
}
}
public final LabelDefinitionContext labelDefinition() throws RecognitionException {
LabelDefinitionContext _localctx = new LabelDefinitionContext(_ctx, getState());
enterRule(_localctx, 274, RULE_labelDefinition);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2657);
match(LabelDefinition);
setState(2661);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,405,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2658);
match(NL);
}
}
}
setState(2663);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,405,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AnnotationsContext extends ParserRuleContext {
public AnnotationContext annotation() {
return getRuleContext(AnnotationContext.class,0);
}
public AnnotationListContext annotationList() {
return getRuleContext(AnnotationListContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public AnnotationsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_annotations; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnnotations(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnnotations(this);
}
}
public final AnnotationsContext annotations() throws RecognitionException {
AnnotationsContext _localctx = new AnnotationsContext(_ctx, getState());
enterRule(_localctx, 276, RULE_annotations);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2666);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,406,_ctx) ) {
case 1:
{
setState(2664);
annotation();
}
break;
case 2:
{
setState(2665);
annotationList();
}
break;
}
setState(2671);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,407,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2668);
match(NL);
}
}
}
setState(2673);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,407,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AnnotationContext extends ParserRuleContext {
public AnnotationUseSiteTargetContext annotationUseSiteTarget() {
return getRuleContext(AnnotationUseSiteTargetContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public UnescapedAnnotationContext unescapedAnnotation() {
return getRuleContext(UnescapedAnnotationContext.class,0);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode LabelReference() { return getToken(KotlinParser.LabelReference, 0); }
public List DOT() { return getTokens(KotlinParser.DOT); }
public TerminalNode DOT(int i) {
return getToken(KotlinParser.DOT, i);
}
public List simpleIdentifier() {
return getRuleContexts(SimpleIdentifierContext.class);
}
public SimpleIdentifierContext simpleIdentifier(int i) {
return getRuleContext(SimpleIdentifierContext.class,i);
}
public TypeArgumentsContext typeArguments() {
return getRuleContext(TypeArgumentsContext.class,0);
}
public ValueArgumentsContext valueArguments() {
return getRuleContext(ValueArgumentsContext.class,0);
}
public AnnotationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_annotation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnnotation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnnotation(this);
}
}
public final AnnotationContext annotation() throws RecognitionException {
AnnotationContext _localctx = new AnnotationContext(_ctx, getState());
enterRule(_localctx, 278, RULE_annotation);
int _la;
try {
int _alt;
setState(2728);
_errHandler.sync(this);
switch (_input.LA(1)) {
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
enterOuterAlt(_localctx, 1);
{
setState(2674);
annotationUseSiteTarget();
setState(2678);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2675);
match(NL);
}
}
setState(2680);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2681);
match(COLON);
setState(2685);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2682);
match(NL);
}
}
setState(2687);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2688);
unescapedAnnotation();
}
break;
case LabelReference:
enterOuterAlt(_localctx, 2);
{
setState(2690);
match(LabelReference);
setState(2707);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,412,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2694);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2691);
match(NL);
}
}
setState(2696);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2697);
match(DOT);
setState(2701);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2698);
match(NL);
}
}
setState(2703);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2704);
simpleIdentifier();
}
}
}
setState(2709);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,412,_ctx);
}
setState(2717);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,414,_ctx) ) {
case 1:
{
setState(2713);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2710);
match(NL);
}
}
setState(2715);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2716);
typeArguments();
}
break;
}
setState(2726);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,416,_ctx) ) {
case 1:
{
setState(2722);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2719);
match(NL);
}
}
setState(2724);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2725);
valueArguments();
}
break;
}
}
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 AnnotationListContext extends ParserRuleContext {
public AnnotationUseSiteTargetContext annotationUseSiteTarget() {
return getRuleContext(AnnotationUseSiteTargetContext.class,0);
}
public TerminalNode COLON() { return getToken(KotlinParser.COLON, 0); }
public TerminalNode LSQUARE() { return getToken(KotlinParser.LSQUARE, 0); }
public TerminalNode RSQUARE() { return getToken(KotlinParser.RSQUARE, 0); }
public List unescapedAnnotation() {
return getRuleContexts(UnescapedAnnotationContext.class);
}
public UnescapedAnnotationContext unescapedAnnotation(int i) {
return getRuleContext(UnescapedAnnotationContext.class,i);
}
public TerminalNode AT() { return getToken(KotlinParser.AT, 0); }
public AnnotationListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_annotationList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnnotationList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnnotationList(this);
}
}
public final AnnotationListContext annotationList() throws RecognitionException {
AnnotationListContext _localctx = new AnnotationListContext(_ctx, getState());
enterRule(_localctx, 280, RULE_annotationList);
int _la;
try {
setState(2749);
_errHandler.sync(this);
switch (_input.LA(1)) {
case FILE:
case FIELD:
case PROPERTY:
case GET:
case SET:
case RECEIVER:
case PARAM:
case SETPARAM:
case DELEGATE:
enterOuterAlt(_localctx, 1);
{
setState(2730);
annotationUseSiteTarget();
setState(2731);
match(COLON);
setState(2732);
match(LSQUARE);
setState(2734);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(2733);
unescapedAnnotation();
}
}
setState(2736);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( ((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 0) );
setState(2738);
match(RSQUARE);
}
break;
case AT:
enterOuterAlt(_localctx, 2);
{
setState(2740);
match(AT);
setState(2741);
match(LSQUARE);
setState(2743);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(2742);
unescapedAnnotation();
}
}
setState(2745);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( ((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 0) );
setState(2747);
match(RSQUARE);
}
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 AnnotationUseSiteTargetContext extends ParserRuleContext {
public TerminalNode FIELD() { return getToken(KotlinParser.FIELD, 0); }
public TerminalNode FILE() { return getToken(KotlinParser.FILE, 0); }
public TerminalNode PROPERTY() { return getToken(KotlinParser.PROPERTY, 0); }
public TerminalNode GET() { return getToken(KotlinParser.GET, 0); }
public TerminalNode SET() { return getToken(KotlinParser.SET, 0); }
public TerminalNode RECEIVER() { return getToken(KotlinParser.RECEIVER, 0); }
public TerminalNode PARAM() { return getToken(KotlinParser.PARAM, 0); }
public TerminalNode SETPARAM() { return getToken(KotlinParser.SETPARAM, 0); }
public TerminalNode DELEGATE() { return getToken(KotlinParser.DELEGATE, 0); }
public AnnotationUseSiteTargetContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_annotationUseSiteTarget; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnnotationUseSiteTarget(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnnotationUseSiteTarget(this);
}
}
public final AnnotationUseSiteTargetContext annotationUseSiteTarget() throws RecognitionException {
AnnotationUseSiteTargetContext _localctx = new AnnotationUseSiteTargetContext(_ctx, getState());
enterRule(_localctx, 282, RULE_annotationUseSiteTarget);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2751);
_la = _input.LA(1);
if ( !(((((_la - 56)) & ~0x3f) == 0 && ((1L << (_la - 56)) & 134002979635201L) != 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 UnescapedAnnotationContext extends ParserRuleContext {
public IdentifierContext identifier() {
return getRuleContext(IdentifierContext.class,0);
}
public TypeArgumentsContext typeArguments() {
return getRuleContext(TypeArgumentsContext.class,0);
}
public ValueArgumentsContext valueArguments() {
return getRuleContext(ValueArgumentsContext.class,0);
}
public UnescapedAnnotationContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unescapedAnnotation; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterUnescapedAnnotation(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitUnescapedAnnotation(this);
}
}
public final UnescapedAnnotationContext unescapedAnnotation() throws RecognitionException {
UnescapedAnnotationContext _localctx = new UnescapedAnnotationContext(_ctx, getState());
enterRule(_localctx, 284, RULE_unescapedAnnotation);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2753);
identifier();
setState(2755);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==LANGLE) {
{
setState(2754);
typeArguments();
}
}
setState(2758);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,422,_ctx) ) {
case 1:
{
setState(2757);
valueArguments();
}
break;
}
}
}
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 List simpleIdentifier() {
return getRuleContexts(SimpleIdentifierContext.class);
}
public SimpleIdentifierContext simpleIdentifier(int i) {
return getRuleContext(SimpleIdentifierContext.class,i);
}
public List DOT() { return getTokens(KotlinParser.DOT); }
public TerminalNode DOT(int i) {
return getToken(KotlinParser.DOT, i);
}
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public IdentifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_identifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterIdentifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitIdentifier(this);
}
}
public final IdentifierContext identifier() throws RecognitionException {
IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
enterRule(_localctx, 286, RULE_identifier);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(2760);
simpleIdentifier();
setState(2771);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,424,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2764);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2761);
match(NL);
}
}
setState(2766);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2767);
match(DOT);
setState(2768);
simpleIdentifier();
}
}
}
setState(2773);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,424,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class SimpleIdentifierContext extends ParserRuleContext {
public TerminalNode Identifier() { return getToken(KotlinParser.Identifier, 0); }
public TerminalNode ABSTRACT() { return getToken(KotlinParser.ABSTRACT, 0); }
public TerminalNode ANNOTATION() { return getToken(KotlinParser.ANNOTATION, 0); }
public TerminalNode BY() { return getToken(KotlinParser.BY, 0); }
public TerminalNode CATCH() { return getToken(KotlinParser.CATCH, 0); }
public TerminalNode COMPANION() { return getToken(KotlinParser.COMPANION, 0); }
public TerminalNode CONSTRUCTOR() { return getToken(KotlinParser.CONSTRUCTOR, 0); }
public TerminalNode CROSSINLINE() { return getToken(KotlinParser.CROSSINLINE, 0); }
public TerminalNode DATA() { return getToken(KotlinParser.DATA, 0); }
public TerminalNode DYNAMIC() { return getToken(KotlinParser.DYNAMIC, 0); }
public TerminalNode ENUM() { return getToken(KotlinParser.ENUM, 0); }
public TerminalNode EXTERNAL() { return getToken(KotlinParser.EXTERNAL, 0); }
public TerminalNode FINAL() { return getToken(KotlinParser.FINAL, 0); }
public TerminalNode FINALLY() { return getToken(KotlinParser.FINALLY, 0); }
public TerminalNode GETTER() { return getToken(KotlinParser.GETTER, 0); }
public TerminalNode IMPORT() { return getToken(KotlinParser.IMPORT, 0); }
public TerminalNode INFIX() { return getToken(KotlinParser.INFIX, 0); }
public TerminalNode INIT() { return getToken(KotlinParser.INIT, 0); }
public TerminalNode INLINE() { return getToken(KotlinParser.INLINE, 0); }
public TerminalNode INNER() { return getToken(KotlinParser.INNER, 0); }
public TerminalNode INTERNAL() { return getToken(KotlinParser.INTERNAL, 0); }
public TerminalNode LATEINIT() { return getToken(KotlinParser.LATEINIT, 0); }
public TerminalNode NOINLINE() { return getToken(KotlinParser.NOINLINE, 0); }
public TerminalNode OPEN() { return getToken(KotlinParser.OPEN, 0); }
public TerminalNode OPERATOR() { return getToken(KotlinParser.OPERATOR, 0); }
public TerminalNode OUT() { return getToken(KotlinParser.OUT, 0); }
public TerminalNode OVERRIDE() { return getToken(KotlinParser.OVERRIDE, 0); }
public TerminalNode PRIVATE() { return getToken(KotlinParser.PRIVATE, 0); }
public TerminalNode PROTECTED() { return getToken(KotlinParser.PROTECTED, 0); }
public TerminalNode PUBLIC() { return getToken(KotlinParser.PUBLIC, 0); }
public TerminalNode REIFIED() { return getToken(KotlinParser.REIFIED, 0); }
public TerminalNode SEALED() { return getToken(KotlinParser.SEALED, 0); }
public TerminalNode TAILREC() { return getToken(KotlinParser.TAILREC, 0); }
public TerminalNode SETTER() { return getToken(KotlinParser.SETTER, 0); }
public TerminalNode VARARG() { return getToken(KotlinParser.VARARG, 0); }
public TerminalNode WHERE() { return getToken(KotlinParser.WHERE, 0); }
public TerminalNode CONST() { return getToken(KotlinParser.CONST, 0); }
public TerminalNode SUSPEND() { return getToken(KotlinParser.SUSPEND, 0); }
public SimpleIdentifierContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_simpleIdentifier; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSimpleIdentifier(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSimpleIdentifier(this);
}
}
public final SimpleIdentifierContext simpleIdentifier() throws RecognitionException {
SimpleIdentifierContext _localctx = new SimpleIdentifierContext(_ctx, getState());
enterRule(_localctx, 288, RULE_simpleIdentifier);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2774);
_la = _input.LA(1);
if ( !(((((_la - 58)) & ~0x3f) == 0 && ((1L << (_la - 58)) & -33517921595647L) != 0) || ((((_la - 122)) & ~0x3f) == 0 && ((1L << (_la - 122)) & 262271L) != 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 SemiContext extends ParserRuleContext {
public List NL() { return getTokens(KotlinParser.NL); }
public TerminalNode NL(int i) {
return getToken(KotlinParser.NL, i);
}
public TerminalNode SEMICOLON() { return getToken(KotlinParser.SEMICOLON, 0); }
public SemiContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_semi; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterSemi(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitSemi(this);
}
}
public final SemiContext semi() throws RecognitionException {
SemiContext _localctx = new SemiContext(_ctx, getState());
enterRule(_localctx, 290, RULE_semi);
int _la;
try {
int _alt;
setState(2794);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,428,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(2777);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(2776);
match(NL);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(2779);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,425,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(2784);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==NL) {
{
{
setState(2781);
match(NL);
}
}
setState(2786);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(2787);
match(SEMICOLON);
setState(2791);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,427,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(2788);
match(NL);
}
}
}
setState(2793);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,427,_ctx);
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
@SuppressWarnings("CheckReturnValue")
public static class AnysemiContext extends ParserRuleContext {
public TerminalNode NL() { return getToken(KotlinParser.NL, 0); }
public TerminalNode SEMICOLON() { return getToken(KotlinParser.SEMICOLON, 0); }
public AnysemiContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_anysemi; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).enterAnysemi(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof KotlinParserListener ) ((KotlinParserListener)listener).exitAnysemi(this);
}
}
public final AnysemiContext anysemi() throws RecognitionException {
AnysemiContext _localctx = new AnysemiContext(_ctx, getState());
enterRule(_localctx, 292, RULE_anysemi);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(2796);
_la = _input.LA(1);
if ( !(_la==NL || _la==SEMICOLON) ) {
_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;
}
private static final String _serializedATNSegment0 =
"\u0004\u0001\u00aa\u0aef\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\u0007"+
"1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+
"6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+
";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+
"@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+
"E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+
"J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+
"O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+
"T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+
"Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+
"^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+
"c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+
"h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+
"m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+
"r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+
"w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+
"|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+
"\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+
"\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+
"\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+
"\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007"+
"\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007"+
"\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007"+
"\u0092\u0001\u0000\u0005\u0000\u0128\b\u0000\n\u0000\f\u0000\u012b\t\u0000"+
"\u0001\u0000\u0001\u0000\u0005\u0000\u012f\b\u0000\n\u0000\f\u0000\u0132"+
"\t\u0000\u0001\u0000\u0001\u0000\u0004\u0000\u0136\b\u0000\u000b\u0000"+
"\f\u0000\u0137\u0001\u0000\u0003\u0000\u013b\b\u0000\u0005\u0000\u013d"+
"\b\u0000\n\u0000\f\u0000\u0140\t\u0000\u0003\u0000\u0142\b\u0000\u0001"+
"\u0000\u0001\u0000\u0001\u0001\u0005\u0001\u0147\b\u0001\n\u0001\f\u0001"+
"\u014a\t\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u014e\b\u0001\n\u0001"+
"\f\u0001\u0151\t\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0155\b\u0001"+
"\u000b\u0001\f\u0001\u0156\u0001\u0001\u0003\u0001\u015a\b\u0001\u0005"+
"\u0001\u015c\b\u0001\n\u0001\f\u0001\u015f\t\u0001\u0003\u0001\u0161\b"+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0003\u0002\u0166\b\u0002\u0001"+
"\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0004\u0003\u016c\b\u0003\u000b"+
"\u0003\f\u0003\u016d\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0004"+
"\u0004\u0174\b\u0004\u000b\u0004\f\u0004\u0175\u0001\u0004\u0001\u0004"+
"\u0001\u0004\u0003\u0004\u017b\b\u0004\u0001\u0004\u0003\u0004\u017e\b"+
"\u0004\u0004\u0004\u0180\b\u0004\u000b\u0004\f\u0004\u0181\u0001\u0005"+
"\u0003\u0005\u0185\b\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005"+
"\u018a\b\u0005\u0003\u0005\u018c\b\u0005\u0001\u0006\u0005\u0006\u018f"+
"\b\u0006\n\u0006\f\u0006\u0192\t\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+
"\u0001\u0007\u0001\u0007\u0003\u0007\u0199\b\u0007\u0001\u0007\u0003\u0007"+
"\u019c\b\u0007\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t"+
"\u0001\t\u0003\t\u01a6\b\t\u0001\n\u0003\n\u01a9\b\n\u0001\n\u0001\n\u0005"+
"\n\u01ad\b\n\n\n\f\n\u01b0\t\n\u0001\n\u0001\n\u0005\n\u01b4\b\n\n\n\f"+
"\n\u01b7\t\n\u0001\n\u0003\n\u01ba\b\n\u0001\n\u0005\n\u01bd\b\n\n\n\f"+
"\n\u01c0\t\n\u0001\n\u0003\n\u01c3\b\n\u0001\n\u0005\n\u01c6\b\n\n\n\f"+
"\n\u01c9\t\n\u0001\n\u0001\n\u0005\n\u01cd\b\n\n\n\f\n\u01d0\t\n\u0001"+
"\n\u0003\n\u01d3\b\n\u0001\n\u0005\n\u01d6\b\n\n\n\f\n\u01d9\t\n\u0001"+
"\n\u0003\n\u01dc\b\n\u0001\n\u0005\n\u01df\b\n\n\n\f\n\u01e2\t\n\u0001"+
"\n\u0001\n\u0005\n\u01e6\b\n\n\n\f\n\u01e9\t\n\u0001\n\u0003\n\u01ec\b"+
"\n\u0001\u000b\u0003\u000b\u01ef\b\u000b\u0001\u000b\u0001\u000b\u0005"+
"\u000b\u01f3\b\u000b\n\u000b\f\u000b\u01f6\t\u000b\u0003\u000b\u01f8\b"+
"\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0005\f"+
"\u0200\b\f\n\f\f\f\u0203\t\f\u0001\f\u0003\f\u0206\b\f\u0003\f\u0208\b"+
"\f\u0001\f\u0001\f\u0001\r\u0003\r\u020d\b\r\u0001\r\u0003\r\u0210\b\r"+
"\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0003\r\u0217\b\r\u0001\u000e"+
"\u0005\u000e\u021a\b\u000e\n\u000e\f\u000e\u021d\t\u000e\u0001\u000e\u0001"+
"\u000e\u0005\u000e\u0221\b\u000e\n\u000e\f\u000e\u0224\t\u000e\u0001\u000e"+
"\u0001\u000e\u0005\u000e\u0228\b\u000e\n\u000e\f\u000e\u022b\t\u000e\u0001"+
"\u000e\u0005\u000e\u022e\b\u000e\n\u000e\f\u000e\u0231\t\u000e\u0001\u000e"+
"\u0005\u000e\u0234\b\u000e\n\u000e\f\u000e\u0237\t\u000e\u0001\u000f\u0001"+
"\u000f\u0001\u000f\u0003\u000f\u023c\b\u000f\u0001\u0010\u0001\u0010\u0001"+
"\u0010\u0001\u0011\u0001\u0011\u0005\u0011\u0243\b\u0011\n\u0011\f\u0011"+
"\u0246\t\u0011\u0001\u0011\u0001\u0011\u0005\u0011\u024a\b\u0011\n\u0011"+
"\f\u0011\u024d\t\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012"+
"\u0005\u0012\u0253\b\u0012\n\u0012\f\u0012\u0256\t\u0012\u0001\u0012\u0005"+
"\u0012\u0259\b\u0012\n\u0012\f\u0012\u025c\t\u0012\u0001\u0012\u0005\u0012"+
"\u025f\b\u0012\n\u0012\f\u0012\u0262\t\u0012\u0001\u0012\u0001\u0012\u0001"+
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+
"\u0013\u0001\u0013\u0003\u0013\u026e\b\u0013\u0001\u0013\u0004\u0013\u0271"+
"\b\u0013\u000b\u0013\f\u0013\u0272\u0001\u0014\u0001\u0014\u0005\u0014"+
"\u0277\b\u0014\n\u0014\f\u0014\u027a\t\u0014\u0001\u0014\u0001\u0014\u0001"+
"\u0015\u0003\u0015\u027f\b\u0015\u0001\u0015\u0001\u0015\u0005\u0015\u0283"+
"\b\u0015\n\u0015\f\u0015\u0286\t\u0015\u0001\u0015\u0001\u0015\u0005\u0015"+
"\u028a\b\u0015\n\u0015\f\u0015\u028d\t\u0015\u0001\u0015\u0001\u0015\u0005"+
"\u0015\u0291\b\u0015\n\u0015\f\u0015\u0294\t\u0015\u0001\u0015\u0003\u0015"+
"\u0297\b\u0015\u0001\u0015\u0005\u0015\u029a\b\u0015\n\u0015\f\u0015\u029d"+
"\t\u0015\u0001\u0015\u0003\u0015\u02a0\b\u0015\u0001\u0016\u0001\u0016"+
"\u0005\u0016\u02a4\b\u0016\n\u0016\f\u0016\u02a7\t\u0016\u0001\u0016\u0001"+
"\u0016\u0001\u0016\u0005\u0016\u02ac\b\u0016\n\u0016\f\u0016\u02af\t\u0016"+
"\u0001\u0016\u0003\u0016\u02b2\b\u0016\u0001\u0017\u0001\u0017\u0005\u0017"+
"\u02b6\b\u0017\n\u0017\f\u0017\u02b9\t\u0017\u0001\u0017\u0003\u0017\u02bc"+
"\b\u0017\u0001\u0017\u0005\u0017\u02bf\b\u0017\n\u0017\f\u0017\u02c2\t"+
"\u0017\u0001\u0017\u0001\u0017\u0005\u0017\u02c6\b\u0017\n\u0017\f\u0017"+
"\u02c9\t\u0017\u0001\u0017\u0005\u0017\u02cc\b\u0017\n\u0017\f\u0017\u02cf"+
"\t\u0017\u0003\u0017\u02d1\b\u0017\u0001\u0017\u0005\u0017\u02d4\b\u0017"+
"\n\u0017\f\u0017\u02d7\t\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+
"\u0018\u0005\u0018\u02dd\b\u0018\n\u0018\f\u0018\u02e0\t\u0018\u0004\u0018"+
"\u02e2\b\u0018\u000b\u0018\f\u0018\u02e3\u0001\u0018\u0003\u0018\u02e7"+
"\b\u0018\u0001\u0019\u0005\u0019\u02ea\b\u0019\n\u0019\f\u0019\u02ed\t"+
"\u0019\u0001\u0019\u0001\u0019\u0005\u0019\u02f1\b\u0019\n\u0019\f\u0019"+
"\u02f4\t\u0019\u0001\u0019\u0003\u0019\u02f7\b\u0019\u0001\u0019\u0005"+
"\u0019\u02fa\b\u0019\n\u0019\f\u0019\u02fd\t\u0019\u0001\u0019\u0003\u0019"+
"\u0300\b\u0019\u0001\u0019\u0005\u0019\u0303\b\u0019\n\u0019\f\u0019\u0306"+
"\t\u0019\u0001\u0019\u0003\u0019\u0309\b\u0019\u0001\u001a\u0003\u001a"+
"\u030c\b\u001a\u0001\u001a\u0001\u001a\u0005\u001a\u0310\b\u001a\n\u001a"+
"\f\u001a\u0313\t\u001a\u0001\u001a\u0001\u001a\u0005\u001a\u0317\b\u001a"+
"\n\u001a\f\u001a\u031a\t\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u031e"+
"\b\u001a\u0001\u001a\u0005\u001a\u0321\b\u001a\n\u001a\f\u001a\u0324\t"+
"\u001a\u0001\u001a\u0003\u001a\u0327\b\u001a\u0001\u001a\u0005\u001a\u032a"+
"\b\u001a\n\u001a\f\u001a\u032d\t\u001a\u0001\u001a\u0001\u001a\u0005\u001a"+
"\u0331\b\u001a\n\u001a\f\u001a\u0334\t\u001a\u0001\u001a\u0001\u001a\u0003"+
"\u001a\u0338\b\u001a\u0001\u001a\u0005\u001a\u033b\b\u001a\n\u001a\f\u001a"+
"\u033e\t\u001a\u0001\u001a\u0003\u001a\u0341\b\u001a\u0001\u001a\u0005"+
"\u001a\u0344\b\u001a\n\u001a\f\u001a\u0347\t\u001a\u0001\u001a\u0001\u001a"+
"\u0005\u001a\u034b\b\u001a\n\u001a\f\u001a\u034e\t\u001a\u0001\u001a\u0001"+
"\u001a\u0005\u001a\u0352\b\u001a\n\u001a\f\u001a\u0355\t\u001a\u0001\u001a"+
"\u0003\u001a\u0358\b\u001a\u0001\u001a\u0005\u001a\u035b\b\u001a\n\u001a"+
"\f\u001a\u035e\t\u001a\u0001\u001a\u0003\u001a\u0361\b\u001a\u0001\u001a"+
"\u0005\u001a\u0364\b\u001a\n\u001a\f\u001a\u0367\t\u001a\u0001\u001a\u0003"+
"\u001a\u036a\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0005"+
"\u001b\u0370\b\u001b\n\u001b\f\u001b\u0373\t\u001b\u0001\u001b\u0003\u001b"+
"\u0376\b\u001b\u0003\u001b\u0378\b\u001b\u0001\u001b\u0001\u001b\u0001"+
"\u001c\u0003\u001c\u037d\b\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0003"+
"\u001c\u0382\b\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001"+
"\u001e\u0003\u001e\u0389\b\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0003"+
"\u001e\u038e\b\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u0393"+
"\b\u001f\n\u001f\f\u001f\u0396\t\u001f\u0001\u001f\u0003\u001f\u0399\b"+
"\u001f\u0001 \u0003 \u039c\b \u0001 \u0001 \u0005 \u03a0\b \n \f \u03a3"+
"\t \u0001 \u0001 \u0005 \u03a7\b \n \f \u03aa\t \u0001 \u0003 \u03ad\b"+
" \u0001 \u0005 \u03b0\b \n \f \u03b3\t \u0001 \u0001 \u0005 \u03b7\b "+
"\n \f \u03ba\t \u0001 \u0003 \u03bd\b \u0001 \u0005 \u03c0\b \n \f \u03c3"+
"\t \u0001 \u0003 \u03c6\b \u0001!\u0003!\u03c9\b!\u0001!\u0001!\u0005"+
"!\u03cd\b!\n!\f!\u03d0\t!\u0001!\u0003!\u03d3\b!\u0001!\u0001!\u0005!"+
"\u03d7\b!\n!\f!\u03da\t!\u0001!\u0003!\u03dd\b!\u0001!\u0005!\u03e0\b"+
"!\n!\f!\u03e3\t!\u0001!\u0001!\u0005!\u03e7\b!\n!\f!\u03ea\t!\u0001!\u0003"+
"!\u03ed\b!\u0001!\u0005!\u03f0\b!\n!\f!\u03f3\t!\u0001!\u0003!\u03f6\b"+
"!\u0001\"\u0003\"\u03f9\b\"\u0001\"\u0001\"\u0005\"\u03fd\b\"\n\"\f\""+
"\u0400\t\"\u0001\"\u0003\"\u0403\b\"\u0001\"\u0005\"\u0406\b\"\n\"\f\""+
"\u0409\t\"\u0001\"\u0001\"\u0005\"\u040d\b\"\n\"\f\"\u0410\t\"\u0001\""+
"\u0001\"\u0003\"\u0414\b\"\u0001\"\u0005\"\u0417\b\"\n\"\f\"\u041a\t\""+
"\u0001\"\u0001\"\u0003\"\u041e\b\"\u0001\"\u0005\"\u0421\b\"\n\"\f\"\u0424"+
"\t\"\u0001\"\u0003\"\u0427\b\"\u0001\"\u0005\"\u042a\b\"\n\"\f\"\u042d"+
"\t\"\u0001\"\u0001\"\u0005\"\u0431\b\"\n\"\f\"\u0434\t\"\u0001\"\u0003"+
"\"\u0437\b\"\u0001\"\u0005\"\u043a\b\"\n\"\f\"\u043d\t\"\u0001\"\u0001"+
"\"\u0001\"\u0001\"\u0003\"\u0443\b\"\u0001\"\u0005\"\u0446\b\"\n\"\f\""+
"\u0449\t\"\u0001\"\u0001\"\u0001\"\u0001\"\u0003\"\u044f\b\"\u0003\"\u0451"+
"\b\"\u0001#\u0001#\u0001#\u0001#\u0005#\u0457\b#\n#\f#\u045a\t#\u0001"+
"#\u0001#\u0001$\u0001$\u0001$\u0003$\u0461\b$\u0001%\u0003%\u0464\b%\u0001"+
"%\u0001%\u0003%\u0468\b%\u0001%\u0001%\u0005%\u046c\b%\n%\f%\u046f\t%"+
"\u0001%\u0001%\u0001%\u0005%\u0474\b%\n%\f%\u0477\t%\u0001%\u0001%\u0005"+
"%\u047b\b%\n%\f%\u047e\t%\u0001%\u0003%\u0481\b%\u0001%\u0005%\u0484\b"+
"%\n%\f%\u0487\t%\u0001%\u0001%\u0001%\u0005%\u048c\b%\n%\f%\u048f\t%\u0001"+
"%\u0003%\u0492\b%\u0003%\u0494\b%\u0001&\u0003&\u0497\b&\u0001&\u0001"+
"&\u0003&\u049b\b&\u0001&\u0001&\u0005&\u049f\b&\n&\f&\u04a2\t&\u0001&"+
"\u0001&\u0001&\u0005&\u04a7\b&\n&\f&\u04aa\t&\u0001&\u0001&\u0003&\u04ae"+
"\b&\u0001&\u0001&\u0005&\u04b2\b&\n&\f&\u04b5\t&\u0001&\u0001&\u0003&"+
"\u04b9\b&\u0001\'\u0003\'\u04bc\b\'\u0001\'\u0001\'\u0005\'\u04c0\b\'"+
"\n\'\f\'\u04c3\t\'\u0001\'\u0001\'\u0005\'\u04c7\b\'\n\'\f\'\u04ca\t\'"+
"\u0001\'\u0003\'\u04cd\b\'\u0001\'\u0005\'\u04d0\b\'\n\'\f\'\u04d3\t\'"+
"\u0001\'\u0001\'\u0005\'\u04d7\b\'\n\'\f\'\u04da\t\'\u0001\'\u0001\'\u0001"+
"(\u0001(\u0005(\u04e0\b(\n(\f(\u04e3\t(\u0001(\u0001(\u0005(\u04e7\b("+
"\n(\f(\u04ea\t(\u0001(\u0001(\u0005(\u04ee\b(\n(\f(\u04f1\t(\u0001(\u0005"+
"(\u04f4\b(\n(\f(\u04f7\t(\u0001(\u0005(\u04fa\b(\n(\f(\u04fd\t(\u0001"+
"(\u0003(\u0500\b(\u0001(\u0005(\u0503\b(\n(\f(\u0506\t(\u0001(\u0001("+
"\u0001)\u0003)\u050b\b)\u0001)\u0005)\u050e\b)\n)\f)\u0511\t)\u0001)\u0001"+
")\u0003)\u0515\b)\u0001)\u0005)\u0518\b)\n)\f)\u051b\t)\u0001)\u0001)"+
"\u0005)\u051f\b)\n)\f)\u0522\t)\u0001)\u0003)\u0525\b)\u0001*\u0003*\u0528"+
"\b*\u0001*\u0001*\u0001*\u0001*\u0003*\u052e\b*\u0001+\u0001+\u0001+\u0005"+
"+\u0533\b+\n+\f+\u0536\t+\u0004+\u0538\b+\u000b+\f+\u0539\u0001,\u0001"+
",\u0001,\u0001,\u0001-\u0001-\u0003-\u0542\b-\u0001-\u0005-\u0545\b-\n"+
"-\f-\u0548\t-\u0001-\u0004-\u054b\b-\u000b-\f-\u054c\u0001.\u0001.\u0001"+
".\u0001.\u0001.\u0001.\u0003.\u0555\b.\u0001/\u0001/\u0005/\u0559\b/\n"+
"/\f/\u055c\t/\u0001/\u0001/\u0005/\u0560\b/\n/\f/\u0563\t/\u0003/\u0565"+
"\b/\u0001/\u0001/\u0005/\u0569\b/\n/\f/\u056c\t/\u0001/\u0001/\u0005/"+
"\u0570\b/\n/\f/\u0573\t/\u0001/\u0001/\u00010\u00010\u00010\u00030\u057a"+
"\b0\u00011\u00011\u00051\u057e\b1\n1\f1\u0581\t1\u00011\u00011\u00051"+
"\u0585\b1\n1\f1\u0588\t1\u00011\u00051\u058b\b1\n1\f1\u058e\t1\u00012"+
"\u00012\u00052\u0592\b2\n2\f2\u0595\t2\u00012\u00032\u0598\b2\u00013\u0001"+
"3\u00053\u059c\b3\n3\f3\u059f\t3\u00013\u00013\u00033\u05a3\b3\u00013"+
"\u00053\u05a6\b3\n3\f3\u05a9\t3\u00013\u00013\u00053\u05ad\b3\n3\f3\u05b0"+
"\t3\u00013\u00013\u00033\u05b4\b3\u00053\u05b6\b3\n3\f3\u05b9\t3\u0001"+
"3\u00053\u05bc\b3\n3\f3\u05bf\t3\u00013\u00033\u05c2\b3\u00013\u00053"+
"\u05c5\b3\n3\f3\u05c8\t3\u00013\u00013\u00014\u00014\u00054\u05ce\b4\n"+
"4\f4\u05d1\t4\u00014\u00014\u00054\u05d5\b4\n4\f4\u05d8\t4\u00014\u0001"+
"4\u00054\u05dc\b4\n4\f4\u05df\t4\u00014\u00054\u05e2\b4\n4\f4\u05e5\t"+
"4\u00015\u00055\u05e8\b5\n5\f5\u05eb\t5\u00015\u00015\u00055\u05ef\b5"+
"\n5\f5\u05f2\t5\u00015\u00015\u00055\u05f6\b5\n5\f5\u05f9\t5\u00015\u0001"+
"5\u00016\u00016\u00016\u00016\u00017\u00057\u0602\b7\n7\f7\u0605\t7\u0001"+
"7\u00017\u00047\u0609\b7\u000b7\f7\u060a\u00017\u00037\u060e\b7\u0005"+
"7\u0610\b7\n7\f7\u0613\t7\u00037\u0615\b7\u00018\u00018\u00038\u0619\b"+
"8\u00019\u00059\u061c\b9\n9\f9\u061f\t9\u00019\u00059\u0622\b9\n9\f9\u0625"+
"\t9\u00019\u00019\u0001:\u0005:\u062a\b:\n:\f:\u062d\t:\u0001:\u0001:"+
"\u0001:\u0001:\u0003:\u0633\b:\u0001;\u0001;\u0001;\u0001;\u0005;\u0639"+
"\b;\n;\f;\u063c\t;\u0001<\u0001<\u0005<\u0640\b<\n<\f<\u0643\t<\u0001"+
"<\u0001<\u0005<\u0647\b<\n<\f<\u064a\t<\u0001<\u0005<\u064d\b<\n<\f<\u0650"+
"\t<\u0001=\u0001=\u0005=\u0654\b=\n=\f=\u0657\t=\u0001=\u0001=\u0005="+
"\u065b\b=\n=\f=\u065e\t=\u0001=\u0005=\u0661\b=\n=\f=\u0664\t=\u0001>"+
"\u0001>\u0001>\u0005>\u0669\b>\n>\f>\u066c\t>\u0001>\u0001>\u0005>\u0670"+
"\b>\n>\f>\u0673\t>\u0001?\u0001?\u0001?\u0005?\u0678\b?\n?\f?\u067b\t"+
"?\u0001?\u0001?\u0003?\u067f\b?\u0001@\u0001@\u0001@\u0005@\u0684\b@\n"+
"@\f@\u0687\t@\u0001@\u0001@\u0004@\u068b\b@\u000b@\f@\u068c\u0001@\u0001"+
"@\u0005@\u0691\b@\n@\f@\u0694\t@\u0001@\u0001@\u0003@\u0698\b@\u0001A"+
"\u0001A\u0005A\u069c\bA\nA\fA\u069f\tA\u0001A\u0001A\u0005A\u06a3\bA\n"+
"A\fA\u06a6\tA\u0001A\u0005A\u06a9\bA\nA\fA\u06ac\tA\u0001B\u0001B\u0001"+
"B\u0005B\u06b1\bB\nB\fB\u06b4\tB\u0001B\u0001B\u0005B\u06b8\bB\nB\fB\u06bb"+
"\tB\u0001C\u0001C\u0001C\u0005C\u06c0\bC\nC\fC\u06c3\tC\u0001C\u0005C"+
"\u06c6\bC\nC\fC\u06c9\tC\u0001D\u0001D\u0001D\u0005D\u06ce\bD\nD\fD\u06d1"+
"\tD\u0001D\u0001D\u0005D\u06d5\bD\nD\fD\u06d8\tD\u0001E\u0001E\u0001E"+
"\u0005E\u06dd\bE\nE\fE\u06e0\tE\u0001E\u0001E\u0005E\u06e4\bE\nE\fE\u06e7"+
"\tE\u0001F\u0001F\u0005F\u06eb\bF\nF\fF\u06ee\tF\u0001F\u0001F\u0001F"+
"\u0005F\u06f3\bF\nF\fF\u06f6\tF\u0001G\u0005G\u06f9\bG\nG\fG\u06fc\tG"+
"\u0001G\u0001G\u0001H\u0001H\u0003H\u0702\bH\u0001H\u0005H\u0705\bH\n"+
"H\fH\u0708\tH\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I"+
"\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0003I\u0718\bI\u0001J\u0001"+
"J\u0001J\u0001J\u0001K\u0001K\u0003K\u0720\bK\u0001K\u0005K\u0723\bK\n"+
"K\fK\u0726\tK\u0001K\u0001K\u0005K\u072a\bK\nK\fK\u072d\tK\u0001K\u0004"+
"K\u0730\bK\u000bK\fK\u0731\u0003K\u0734\bK\u0001L\u0005L\u0737\bL\nL\f"+
"L\u073a\tL\u0001L\u0003L\u073d\bL\u0001L\u0005L\u0740\bL\nL\fL\u0743\t"+
"L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0005M\u074b\bM\nM\fM\u074e"+
"\tM\u0003M\u0750\bM\u0001M\u0001M\u0001N\u0001N\u0001N\u0001N\u0005N\u0758"+
"\bN\nN\fN\u075b\tN\u0001N\u0005N\u075e\bN\nN\fN\u0761\tN\u0001N\u0003"+
"N\u0764\bN\u0003N\u0766\bN\u0001N\u0001N\u0001O\u0001O\u0005O\u076c\b"+
"O\nO\fO\u076f\tO\u0001O\u0001O\u0005O\u0773\bO\nO\fO\u0776\tO\u0001O\u0001"+
"O\u0005O\u077a\bO\nO\fO\u077d\tO\u0001O\u0005O\u0780\bO\nO\fO\u0783\t"+
"O\u0001O\u0003O\u0786\bO\u0001O\u0005O\u0789\bO\nO\fO\u078c\tO\u0001O"+
"\u0001O\u0003O\u0790\bO\u0001P\u0003P\u0793\bP\u0001P\u0001P\u0003P\u0797"+
"\bP\u0001Q\u0004Q\u079a\bQ\u000bQ\fQ\u079b\u0001R\u0001R\u0005R\u07a0"+
"\bR\nR\fR\u07a3\tR\u0001R\u0001R\u0005R\u07a7\bR\nR\fR\u07aa\tR\u0003"+
"R\u07ac\bR\u0001R\u0003R\u07af\bR\u0001R\u0005R\u07b2\bR\nR\fR\u07b5\t"+
"R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+
"S\u0001S\u0003S\u07c2\bS\u0001T\u0001T\u0003T\u07c6\bT\u0001U\u0001U\u0001"+
"U\u0005U\u07cb\bU\nU\fU\u07ce\tU\u0001U\u0001U\u0001V\u0001V\u0001V\u0001"+
"V\u0001V\u0005V\u07d7\bV\nV\fV\u07da\tV\u0001V\u0001V\u0001W\u0001W\u0001"+
"X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+
"[\u0005[\u07eb\b[\n[\f[\u07ee\t[\u0001[\u0001[\u0005[\u07f2\b[\n[\f[\u07f5"+
"\t[\u0001[\u0001[\u0005[\u07f9\b[\n[\f[\u07fc\t[\u0001[\u0001[\u0001["+
"\u0001[\u0005[\u0802\b[\n[\f[\u0805\t[\u0001[\u0001[\u0005[\u0809\b[\n"+
"[\f[\u080c\t[\u0001[\u0001[\u0005[\u0810\b[\n[\f[\u0813\t[\u0001[\u0001"+
"[\u0005[\u0817\b[\n[\f[\u081a\t[\u0001[\u0001[\u0003[\u081e\b[\u0001\\"+
"\u0003\\\u0821\b\\\u0001\\\u0005\\\u0824\b\\\n\\\f\\\u0827\t\\\u0001\\"+
"\u0001\\\u0005\\\u082b\b\\\n\\\f\\\u082e\t\\\u0001\\\u0005\\\u0831\b\\"+
"\n\\\f\\\u0834\t\\\u0001]\u0001]\u0001]\u0005]\u0839\b]\n]\f]\u083c\t"+
"]\u0001]\u0001]\u0005]\u0840\b]\n]\f]\u0843\t]\u0001]\u0003]\u0846\b]"+
"\u0003]\u0848\b]\u0001^\u0001^\u0005^\u084c\b^\n^\f^\u084f\t^\u0001^\u0001"+
"^\u0005^\u0853\b^\n^\f^\u0856\t^\u0001^\u0003^\u0859\b^\u0001^\u0005^"+
"\u085c\b^\n^\f^\u085f\t^\u0001^\u0003^\u0862\b^\u0001_\u0001_\u0003_\u0866"+
"\b_\u0001_\u0001_\u0005_\u086a\b_\n_\f_\u086d\t_\u0001_\u0001_\u0001`"+
"\u0001`\u0003`\u0873\b`\u0001a\u0001a\u0001a\u0005a\u0878\ba\na\fa\u087b"+
"\ta\u0001a\u0001a\u0005a\u087f\ba\na\fa\u0882\ta\u0001a\u0001a\u0003a"+
"\u0886\ba\u0001a\u0003a\u0889\ba\u0001b\u0001b\u0003b\u088d\bb\u0001c"+
"\u0001c\u0005c\u0891\bc\nc\fc\u0894\tc\u0001c\u0001c\u0001c\u0001c\u0005"+
"c\u089a\bc\nc\fc\u089d\tc\u0001c\u0003c\u08a0\bc\u0001c\u0003c\u08a3\b"+
"c\u0001c\u0005c\u08a6\bc\nc\fc\u08a9\tc\u0001c\u0001c\u0005c\u08ad\bc"+
"\nc\fc\u08b0\tc\u0001c\u0003c\u08b3\bc\u0003c\u08b5\bc\u0001d\u0001d\u0003"+
"d\u08b9\bd\u0001e\u0001e\u0005e\u08bd\be\ne\fe\u08c0\te\u0001e\u0001e"+
"\u0001e\u0001e\u0003e\u08c6\be\u0001e\u0005e\u08c9\be\ne\fe\u08cc\te\u0001"+
"e\u0001e\u0005e\u08d0\be\ne\fe\u08d3\te\u0001e\u0001e\u0005e\u08d7\be"+
"\ne\fe\u08da\te\u0005e\u08dc\be\ne\fe\u08df\te\u0001e\u0005e\u08e2\be"+
"\ne\fe\u08e5\te\u0001e\u0001e\u0001f\u0001f\u0005f\u08eb\bf\nf\ff\u08ee"+
"\tf\u0001f\u0001f\u0005f\u08f2\bf\nf\ff\u08f5\tf\u0001f\u0005f\u08f8\b"+
"f\nf\ff\u08fb\tf\u0001f\u0005f\u08fe\bf\nf\ff\u0901\tf\u0001f\u0001f\u0005"+
"f\u0905\bf\nf\ff\u0908\tf\u0001f\u0001f\u0003f\u090c\bf\u0001f\u0001f"+
"\u0005f\u0910\bf\nf\ff\u0913\tf\u0001f\u0001f\u0005f\u0917\bf\nf\ff\u091a"+
"\tf\u0001f\u0003f\u091d\bf\u0001g\u0001g\u0001g\u0003g\u0922\bg\u0001"+
"h\u0001h\u0005h\u0926\bh\nh\fh\u0929\th\u0001h\u0001h\u0001i\u0001i\u0005"+
"i\u092f\bi\ni\fi\u0932\ti\u0001i\u0001i\u0001j\u0001j\u0005j\u0938\bj"+
"\nj\fj\u093b\tj\u0001j\u0001j\u0005j\u093f\bj\nj\fj\u0942\tj\u0001j\u0005"+
"j\u0945\bj\nj\fj\u0948\tj\u0001j\u0005j\u094b\bj\nj\fj\u094e\tj\u0001"+
"j\u0003j\u0951\bj\u0001k\u0001k\u0005k\u0955\bk\nk\fk\u0958\tk\u0001k"+
"\u0001k\u0005k\u095c\bk\nk\fk\u095f\tk\u0001k\u0001k\u0001k\u0001k\u0001"+
"k\u0005k\u0966\bk\nk\fk\u0969\tk\u0001k\u0001k\u0001l\u0001l\u0005l\u096f"+
"\bl\nl\fl\u0972\tl\u0001l\u0001l\u0001m\u0001m\u0001m\u0003m\u0979\bm"+
"\u0001n\u0001n\u0005n\u097d\bn\nn\fn\u0980\tn\u0001n\u0001n\u0005n\u0984"+
"\bn\nn\fn\u0987\tn\u0001n\u0001n\u0003n\u098b\bn\u0001n\u0001n\u0001n"+
"\u0001n\u0005n\u0991\bn\nn\fn\u0994\tn\u0001n\u0003n\u0997\bn\u0001o\u0001"+
"o\u0005o\u099b\bo\no\fo\u099e\to\u0001o\u0001o\u0001o\u0001o\u0005o\u09a4"+
"\bo\no\fo\u09a7\to\u0001o\u0003o\u09aa\bo\u0001p\u0001p\u0005p\u09ae\b"+
"p\np\fp\u09b1\tp\u0001p\u0003p\u09b4\bp\u0001p\u0005p\u09b7\bp\np\fp\u09ba"+
"\tp\u0001p\u0001p\u0005p\u09be\bp\np\fp\u09c1\tp\u0001p\u0001p\u0001p"+
"\u0001p\u0001q\u0001q\u0005q\u09c9\bq\nq\fq\u09cc\tq\u0001q\u0001q\u0001"+
"q\u0003q\u09d1\bq\u0001q\u0001q\u0001q\u0001q\u0003q\u09d7\bq\u0001r\u0001"+
"r\u0001r\u0005r\u09dc\br\nr\fr\u09df\tr\u0005r\u09e1\br\nr\fr\u09e4\t"+
"r\u0003r\u09e6\br\u0001r\u0005r\u09e9\br\nr\fr\u09ec\tr\u0001r\u0001r"+
"\u0005r\u09f0\br\nr\fr\u09f3\tr\u0001r\u0001r\u0003r\u09f7\br\u0001r\u0001"+
"r\u0005r\u09fb\br\nr\fr\u09fe\tr\u0001r\u0001r\u0005r\u0a02\br\nr\fr\u0a05"+
"\tr\u0001r\u0003r\u0a08\br\u0001s\u0001s\u0001t\u0001t\u0001u\u0001u\u0001"+
"v\u0001v\u0001w\u0001w\u0001x\u0001x\u0001y\u0001y\u0001z\u0001z\u0001"+
"{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0003{\u0a21\b{\u0001|\u0001"+
"|\u0001|\u0001|\u0001|\u0001|\u0001|\u0005|\u0a2a\b|\n|\f|\u0a2d\t|\u0001"+
"|\u0001|\u0001|\u0003|\u0a32\b|\u0001}\u0001}\u0001}\u0003}\u0a37\b}\u0001"+
"~\u0001~\u0004~\u0a3b\b~\u000b~\f~\u0a3c\u0001\u007f\u0001\u007f\u0001"+
"\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001"+
"\u007f\u0003\u007f\u0a48\b\u007f\u0001\u007f\u0005\u007f\u0a4b\b\u007f"+
"\n\u007f\f\u007f\u0a4e\t\u007f\u0001\u0080\u0001\u0080\u0001\u0081\u0001"+
"\u0081\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0084\u0001"+
"\u0084\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0087\u0001"+
"\u0087\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0005\u0089\u0a64"+
"\b\u0089\n\u0089\f\u0089\u0a67\t\u0089\u0001\u008a\u0001\u008a\u0003\u008a"+
"\u0a6b\b\u008a\u0001\u008a\u0005\u008a\u0a6e\b\u008a\n\u008a\f\u008a\u0a71"+
"\t\u008a\u0001\u008b\u0001\u008b\u0005\u008b\u0a75\b\u008b\n\u008b\f\u008b"+
"\u0a78\t\u008b\u0001\u008b\u0001\u008b\u0005\u008b\u0a7c\b\u008b\n\u008b"+
"\f\u008b\u0a7f\t\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b"+
"\u0005\u008b\u0a85\b\u008b\n\u008b\f\u008b\u0a88\t\u008b\u0001\u008b\u0001"+
"\u008b\u0005\u008b\u0a8c\b\u008b\n\u008b\f\u008b\u0a8f\t\u008b\u0001\u008b"+
"\u0005\u008b\u0a92\b\u008b\n\u008b\f\u008b\u0a95\t\u008b\u0001\u008b\u0005"+
"\u008b\u0a98\b\u008b\n\u008b\f\u008b\u0a9b\t\u008b\u0001\u008b\u0003\u008b"+
"\u0a9e\b\u008b\u0001\u008b\u0005\u008b\u0aa1\b\u008b\n\u008b\f\u008b\u0aa4"+
"\t\u008b\u0001\u008b\u0003\u008b\u0aa7\b\u008b\u0003\u008b\u0aa9\b\u008b"+
"\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0004\u008c\u0aaf\b\u008c"+
"\u000b\u008c\f\u008c\u0ab0\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c"+
"\u0001\u008c\u0004\u008c\u0ab8\b\u008c\u000b\u008c\f\u008c\u0ab9\u0001"+
"\u008c\u0001\u008c\u0003\u008c\u0abe\b\u008c\u0001\u008d\u0001\u008d\u0001"+
"\u008e\u0001\u008e\u0003\u008e\u0ac4\b\u008e\u0001\u008e\u0003\u008e\u0ac7"+
"\b\u008e\u0001\u008f\u0001\u008f\u0005\u008f\u0acb\b\u008f\n\u008f\f\u008f"+
"\u0ace\t\u008f\u0001\u008f\u0001\u008f\u0005\u008f\u0ad2\b\u008f\n\u008f"+
"\f\u008f\u0ad5\t\u008f\u0001\u0090\u0001\u0090\u0001\u0091\u0004\u0091"+
"\u0ada\b\u0091\u000b\u0091\f\u0091\u0adb\u0001\u0091\u0005\u0091\u0adf"+
"\b\u0091\n\u0091\f\u0091\u0ae2\t\u0091\u0001\u0091\u0001\u0091\u0005\u0091"+
"\u0ae6\b\u0091\n\u0091\f\u0091\u0ae9\t\u0091\u0003\u0091\u0aeb\b\u0091"+
"\u0001\u0092\u0001\u0092\u0001\u0092\u0000\u0000\u0093\u0000\u0002\u0004"+
"\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \""+
"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086"+
"\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e"+
"\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6"+
"\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce"+
"\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6"+
"\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe"+
"\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116"+
"\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0000\u0019\u0001\u0000;<\u0001"+
"\u0000?@\u0002\u0000\u001b\u001bCC\u0001\u0000\u009c\u009e\u0001\u0000"+
"\u00a2\u00a4\u0002\u000055TT\u0001\u0000$%\u0001\u0000\u001b \u0002\u0000"+
"/023\u0001\u0000+.\u0002\u0000YY[[\u0002\u0000XXZZ\u0001\u0000\u0012\u0013"+
"\u0001\u0000\u000f\u0011\u0003\u0000\u0019\u001911WW\u0001\u0000lp\u0002"+
"\u0000ww||\u0001\u0000hk\u0002\u0000YY\\\\\u0001\u0000qv\u0001\u0000x"+
"z\u0001\u0000}\u007f\u0003\u000088]`cf\b\u0000::BEIINO\\\\abg\u0080\u008c"+
"\u008c\u0002\u0000\u0005\u0005\u001a\u001a\u0c49\u0000\u0129\u0001\u0000"+
"\u0000\u0000\u0002\u0148\u0001\u0000\u0000\u0000\u0004\u0165\u0001\u0000"+
"\u0000\u0000\u0006\u016b\u0001\u0000\u0000\u0000\b\u017f\u0001\u0000\u0000"+
"\u0000\n\u018b\u0001\u0000\u0000\u0000\f\u0190\u0001\u0000\u0000\u0000"+
"\u000e\u0193\u0001\u0000\u0000\u0000\u0010\u019d\u0001\u0000\u0000\u0000"+
"\u0012\u01a5\u0001\u0000\u0000\u0000\u0014\u01a8\u0001\u0000\u0000\u0000"+
"\u0016\u01ee\u0001\u0000\u0000\u0000\u0018\u01fb\u0001\u0000\u0000\u0000"+
"\u001a\u020c\u0001\u0000\u0000\u0000\u001c\u021b\u0001\u0000\u0000\u0000"+
"\u001e\u023b\u0001\u0000\u0000\u0000 \u023d\u0001\u0000\u0000\u0000\""+
"\u0240\u0001\u0000\u0000\u0000$\u0250\u0001\u0000\u0000\u0000&\u026d\u0001"+
"\u0000\u0000\u0000(\u0274\u0001\u0000\u0000\u0000*\u027e\u0001\u0000\u0000"+
"\u0000,\u02b1\u0001\u0000\u0000\u0000.\u02b3\u0001\u0000\u0000\u00000"+
"\u02e1\u0001\u0000\u0000\u00002\u02eb\u0001\u0000\u0000\u00004\u030b\u0001"+
"\u0000\u0000\u00006\u036b\u0001\u0000\u0000\u00008\u037c\u0001\u0000\u0000"+
"\u0000:\u0383\u0001\u0000\u0000\u0000<\u0388\u0001\u0000\u0000\u0000>"+
"\u0398\u0001\u0000\u0000\u0000@\u039b\u0001\u0000\u0000\u0000B\u03c8\u0001"+
"\u0000\u0000\u0000D\u03f8\u0001\u0000\u0000\u0000F\u0452\u0001\u0000\u0000"+
"\u0000H\u045d\u0001\u0000\u0000\u0000J\u0493\u0001\u0000\u0000\u0000L"+
"\u04b8\u0001\u0000\u0000\u0000N\u04bb\u0001\u0000\u0000\u0000P\u04dd\u0001"+
"\u0000\u0000\u0000R\u050a\u0001\u0000\u0000\u0000T\u0527\u0001\u0000\u0000"+
"\u0000V\u0537\u0001\u0000\u0000\u0000X\u053b\u0001\u0000\u0000\u0000Z"+
"\u0541\u0001\u0000\u0000\u0000\\\u0554\u0001\u0000\u0000\u0000^\u0564"+
"\u0001\u0000\u0000\u0000`\u0579\u0001\u0000\u0000\u0000b\u057b\u0001\u0000"+
"\u0000\u0000d\u058f\u0001\u0000\u0000\u0000f\u0599\u0001\u0000\u0000\u0000"+
"h\u05cb\u0001\u0000\u0000\u0000j\u05e9\u0001\u0000\u0000\u0000l\u05fc"+
"\u0001\u0000\u0000\u0000n\u0603\u0001\u0000\u0000\u0000p\u0618\u0001\u0000"+
"\u0000\u0000r\u061d\u0001\u0000\u0000\u0000t\u062b\u0001\u0000\u0000\u0000"+
"v\u0634\u0001\u0000\u0000\u0000x\u063d\u0001\u0000\u0000\u0000z\u0651"+
"\u0001\u0000\u0000\u0000|\u0665\u0001\u0000\u0000\u0000~\u0674\u0001\u0000"+
"\u0000\u0000\u0080\u0680\u0001\u0000\u0000\u0000\u0082\u0699\u0001\u0000"+
"\u0000\u0000\u0084\u06ad\u0001\u0000\u0000\u0000\u0086\u06bc\u0001\u0000"+
"\u0000\u0000\u0088\u06ca\u0001\u0000\u0000\u0000\u008a\u06d9\u0001\u0000"+
"\u0000\u0000\u008c\u06e8\u0001\u0000\u0000\u0000\u008e\u06fa\u0001\u0000"+
"\u0000\u0000\u0090\u0701\u0001\u0000\u0000\u0000\u0092\u0717\u0001\u0000"+
"\u0000\u0000\u0094\u0719\u0001\u0000\u0000\u0000\u0096\u0733\u0001\u0000"+
"\u0000\u0000\u0098\u0738\u0001\u0000\u0000\u0000\u009a\u0746\u0001\u0000"+
"\u0000\u0000\u009c\u0753\u0001\u0000\u0000\u0000\u009e\u0769\u0001\u0000"+
"\u0000\u0000\u00a0\u0796\u0001\u0000\u0000\u0000\u00a2\u0799\u0001\u0000"+
"\u0000\u0000\u00a4\u07ab\u0001\u0000\u0000\u0000\u00a6\u07c1\u0001\u0000"+
"\u0000\u0000\u00a8\u07c5\u0001\u0000\u0000\u0000\u00aa\u07c7\u0001\u0000"+
"\u0000\u0000\u00ac\u07d1\u0001\u0000\u0000\u0000\u00ae\u07dd\u0001\u0000"+
"\u0000\u0000\u00b0\u07df\u0001\u0000\u0000\u0000\u00b2\u07e3\u0001\u0000"+
"\u0000\u0000\u00b4\u07e5\u0001\u0000\u0000\u0000\u00b6\u07ec\u0001\u0000"+
"\u0000\u0000\u00b8\u0820\u0001\u0000\u0000\u0000\u00ba\u0847\u0001\u0000"+
"\u0000\u0000\u00bc\u0849\u0001\u0000\u0000\u0000\u00be\u0863\u0001\u0000"+
"\u0000\u0000\u00c0\u0870\u0001\u0000\u0000\u0000\u00c2\u0874\u0001\u0000"+
"\u0000\u0000\u00c4\u088c\u0001\u0000\u0000\u0000\u00c6\u088e\u0001\u0000"+
"\u0000\u0000\u00c8\u08b8\u0001\u0000\u0000\u0000\u00ca\u08ba\u0001\u0000"+
"\u0000\u0000\u00cc\u091c\u0001\u0000\u0000\u0000\u00ce\u0921\u0001\u0000"+
"\u0000\u0000\u00d0\u0923\u0001\u0000\u0000\u0000\u00d2\u092c\u0001\u0000"+
"\u0000\u0000\u00d4\u0935\u0001\u0000\u0000\u0000\u00d6\u0952\u0001\u0000"+
"\u0000\u0000\u00d8\u096c\u0001\u0000\u0000\u0000\u00da\u0978\u0001\u0000"+
"\u0000\u0000\u00dc\u097a\u0001\u0000\u0000\u0000\u00de\u0998\u0001\u0000"+
"\u0000\u0000\u00e0\u09ab\u0001\u0000\u0000\u0000\u00e2\u09d6\u0001\u0000"+
"\u0000\u0000\u00e4\u0a07\u0001\u0000\u0000\u0000\u00e6\u0a09\u0001\u0000"+
"\u0000\u0000\u00e8\u0a0b\u0001\u0000\u0000\u0000\u00ea\u0a0d\u0001\u0000"+
"\u0000\u0000\u00ec\u0a0f\u0001\u0000\u0000\u0000\u00ee\u0a11\u0001\u0000"+
"\u0000\u0000\u00f0\u0a13\u0001\u0000\u0000\u0000\u00f2\u0a15\u0001\u0000"+
"\u0000\u0000\u00f4\u0a17\u0001\u0000\u0000\u0000\u00f6\u0a20\u0001\u0000"+
"\u0000\u0000\u00f8\u0a31\u0001\u0000\u0000\u0000\u00fa\u0a36\u0001\u0000"+
"\u0000\u0000\u00fc\u0a3a\u0001\u0000\u0000\u0000\u00fe\u0a47\u0001\u0000"+
"\u0000\u0000\u0100\u0a4f\u0001\u0000\u0000\u0000\u0102\u0a51\u0001\u0000"+
"\u0000\u0000\u0104\u0a53\u0001\u0000\u0000\u0000\u0106\u0a55\u0001\u0000"+
"\u0000\u0000\u0108\u0a57\u0001\u0000\u0000\u0000\u010a\u0a59\u0001\u0000"+
"\u0000\u0000\u010c\u0a5b\u0001\u0000\u0000\u0000\u010e\u0a5d\u0001\u0000"+
"\u0000\u0000\u0110\u0a5f\u0001\u0000\u0000\u0000\u0112\u0a61\u0001\u0000"+
"\u0000\u0000\u0114\u0a6a\u0001\u0000\u0000\u0000\u0116\u0aa8\u0001\u0000"+
"\u0000\u0000\u0118\u0abd\u0001\u0000\u0000\u0000\u011a\u0abf\u0001\u0000"+
"\u0000\u0000\u011c\u0ac1\u0001\u0000\u0000\u0000\u011e\u0ac8\u0001\u0000"+
"\u0000\u0000\u0120\u0ad6\u0001\u0000\u0000\u0000\u0122\u0aea\u0001\u0000"+
"\u0000\u0000\u0124\u0aec\u0001\u0000\u0000\u0000\u0126\u0128\u0005\u0005"+
"\u0000\u0000\u0127\u0126\u0001\u0000\u0000\u0000\u0128\u012b\u0001\u0000"+
"\u0000\u0000\u0129\u0127\u0001\u0000\u0000\u0000\u0129\u012a\u0001\u0000"+
"\u0000\u0000\u012a\u012c\u0001\u0000\u0000\u0000\u012b\u0129\u0001\u0000"+
"\u0000\u0000\u012c\u0130\u0003\u0004\u0002\u0000\u012d\u012f\u0003\u0124"+
"\u0092\u0000\u012e\u012d\u0001\u0000\u0000\u0000\u012f\u0132\u0001\u0000"+
"\u0000\u0000\u0130\u012e\u0001\u0000\u0000\u0000\u0130\u0131\u0001\u0000"+
"\u0000\u0000\u0131\u0141\u0001\u0000\u0000\u0000\u0132\u0130\u0001\u0000"+
"\u0000\u0000\u0133\u013e\u0003\u0012\t\u0000\u0134\u0136\u0003\u0124\u0092"+
"\u0000\u0135\u0134\u0001\u0000\u0000\u0000\u0136\u0137\u0001\u0000\u0000"+
"\u0000\u0137\u0135\u0001\u0000\u0000\u0000\u0137\u0138\u0001\u0000\u0000"+
"\u0000\u0138\u013a\u0001\u0000\u0000\u0000\u0139\u013b\u0003\u0012\t\u0000"+
"\u013a\u0139\u0001\u0000\u0000\u0000\u013a\u013b\u0001\u0000\u0000\u0000"+
"\u013b\u013d\u0001\u0000\u0000\u0000\u013c\u0135\u0001\u0000\u0000\u0000"+
"\u013d\u0140\u0001\u0000\u0000\u0000\u013e\u013c\u0001\u0000\u0000\u0000"+
"\u013e\u013f\u0001\u0000\u0000\u0000\u013f\u0142\u0001\u0000\u0000\u0000"+
"\u0140\u013e\u0001\u0000\u0000\u0000\u0141\u0133\u0001\u0000\u0000\u0000"+
"\u0141\u0142\u0001\u0000\u0000\u0000\u0142\u0143\u0001\u0000\u0000\u0000"+
"\u0143\u0144\u0005\u0000\u0000\u0001\u0144\u0001\u0001\u0000\u0000\u0000"+
"\u0145\u0147\u0005\u0005\u0000\u0000\u0146\u0145\u0001\u0000\u0000\u0000"+
"\u0147\u014a\u0001\u0000\u0000\u0000\u0148\u0146\u0001\u0000\u0000\u0000"+
"\u0148\u0149\u0001\u0000\u0000\u0000\u0149\u014b\u0001\u0000\u0000\u0000"+
"\u014a\u0148\u0001\u0000\u0000\u0000\u014b\u014f\u0003\u0004\u0002\u0000"+
"\u014c\u014e\u0003\u0124\u0092\u0000\u014d\u014c\u0001\u0000\u0000\u0000"+
"\u014e\u0151\u0001\u0000\u0000\u0000\u014f\u014d\u0001\u0000\u0000\u0000"+
"\u014f\u0150\u0001\u0000\u0000\u0000\u0150\u0160\u0001\u0000\u0000\u0000"+
"\u0151\u014f\u0001\u0000\u0000\u0000\u0152\u015d\u0003v;\u0000\u0153\u0155"+
"\u0003\u0124\u0092\u0000\u0154\u0153\u0001\u0000\u0000\u0000\u0155\u0156"+
"\u0001\u0000\u0000\u0000\u0156\u0154\u0001\u0000\u0000\u0000\u0156\u0157"+
"\u0001\u0000\u0000\u0000\u0157\u0159\u0001\u0000\u0000\u0000\u0158\u015a"+
"\u0003v;\u0000\u0159\u0158\u0001\u0000\u0000\u0000\u0159\u015a\u0001\u0000"+
"\u0000\u0000\u015a\u015c\u0001\u0000\u0000\u0000\u015b\u0154\u0001\u0000"+
"\u0000\u0000\u015c\u015f\u0001\u0000\u0000\u0000\u015d\u015b\u0001\u0000"+
"\u0000\u0000\u015d\u015e\u0001\u0000\u0000\u0000\u015e\u0161\u0001\u0000"+
"\u0000\u0000\u015f\u015d\u0001\u0000\u0000\u0000\u0160\u0152\u0001\u0000"+
"\u0000\u0000\u0160\u0161\u0001\u0000\u0000\u0000\u0161\u0162\u0001\u0000"+
"\u0000\u0000\u0162\u0163\u0005\u0000\u0000\u0001\u0163\u0003\u0001\u0000"+
"\u0000\u0000\u0164\u0166\u0003\u0006\u0003\u0000\u0165\u0164\u0001\u0000"+
"\u0000\u0000\u0165\u0166\u0001\u0000\u0000\u0000\u0166\u0167\u0001\u0000"+
"\u0000\u0000\u0167\u0168\u0003\n\u0005\u0000\u0168\u0169\u0003\f\u0006"+
"\u0000\u0169\u0005\u0001\u0000\u0000\u0000\u016a\u016c\u0003\b\u0004\u0000"+
"\u016b\u016a\u0001\u0000\u0000\u0000\u016c\u016d\u0001\u0000\u0000\u0000"+
"\u016d\u016b\u0001\u0000\u0000\u0000\u016d\u016e\u0001\u0000\u0000\u0000"+
"\u016e\u0007\u0001\u0000\u0000\u0000\u016f\u0170\u00058\u0000\u0000\u0170"+
"\u017a\u0005\u0019\u0000\u0000\u0171\u0173\u0005\u000b\u0000\u0000\u0172"+
"\u0174\u0003\u011c\u008e\u0000\u0173\u0172\u0001\u0000\u0000\u0000\u0174"+
"\u0175\u0001\u0000\u0000\u0000\u0175\u0173\u0001\u0000\u0000\u0000\u0175"+
"\u0176\u0001\u0000\u0000\u0000\u0176\u0177\u0001\u0000\u0000\u0000\u0177"+
"\u0178\u0005\f\u0000\u0000\u0178\u017b\u0001\u0000\u0000\u0000\u0179\u017b"+
"\u0003\u011c\u008e\u0000\u017a\u0171\u0001\u0000\u0000\u0000\u017a\u0179"+
"\u0001\u0000\u0000\u0000\u017b\u017d\u0001\u0000\u0000\u0000\u017c\u017e"+
"\u0003\u0122\u0091\u0000\u017d\u017c\u0001\u0000\u0000\u0000\u017d\u017e"+
"\u0001\u0000\u0000\u0000\u017e\u0180\u0001\u0000\u0000\u0000\u017f\u016f"+
"\u0001\u0000\u0000\u0000\u0180\u0181\u0001\u0000\u0000\u0000\u0181\u017f"+
"\u0001\u0000\u0000\u0000\u0181\u0182\u0001\u0000\u0000\u0000\u0182\t\u0001"+
"\u0000\u0000\u0000\u0183\u0185\u0003\u00fc~\u0000\u0184\u0183\u0001\u0000"+
"\u0000\u0000\u0184\u0185\u0001\u0000\u0000\u0000\u0185\u0186\u0001\u0000"+
"\u0000\u0000\u0186\u0187\u00059\u0000\u0000\u0187\u0189\u0003\u011e\u008f"+
"\u0000\u0188\u018a\u0003\u0122\u0091\u0000\u0189\u0188\u0001\u0000\u0000"+
"\u0000\u0189\u018a\u0001\u0000\u0000\u0000\u018a\u018c\u0001\u0000\u0000"+
"\u0000\u018b\u0184\u0001\u0000\u0000\u0000\u018b\u018c\u0001\u0000\u0000"+
"\u0000\u018c\u000b\u0001\u0000\u0000\u0000\u018d\u018f\u0003\u000e\u0007"+
"\u0000\u018e\u018d\u0001\u0000\u0000\u0000\u018f\u0192\u0001\u0000\u0000"+
"\u0000\u0190\u018e\u0001\u0000\u0000\u0000\u0190\u0191\u0001\u0000\u0000"+
"\u0000\u0191\r\u0001\u0000\u0000\u0000\u0192\u0190\u0001\u0000\u0000\u0000"+
"\u0193\u0194\u0005:\u0000\u0000\u0194\u0198\u0003\u011e\u008f\u0000\u0195"+
"\u0196\u0005\u0007\u0000\u0000\u0196\u0199\u0005\u000f\u0000\u0000\u0197"+
"\u0199\u0003\u0010\b\u0000\u0198\u0195\u0001\u0000\u0000\u0000\u0198\u0197"+
"\u0001\u0000\u0000\u0000\u0198\u0199\u0001\u0000\u0000\u0000\u0199\u019b"+
"\u0001\u0000\u0000\u0000\u019a\u019c\u0003\u0122\u0091\u0000\u019b\u019a"+
"\u0001\u0000\u0000\u0000\u019b\u019c\u0001\u0000\u0000\u0000\u019c\u000f"+
"\u0001\u0000\u0000\u0000\u019d\u019e\u0005W\u0000\u0000\u019e\u019f\u0003"+
"\u0120\u0090\u0000\u019f\u0011\u0001\u0000\u0000\u0000\u01a0\u01a6\u0003"+
"\u0014\n\u0000\u01a1\u01a6\u0003@ \u0000\u01a2\u01a6\u00034\u001a\u0000"+
"\u01a3\u01a6\u0003D\"\u0000\u01a4\u01a6\u0003N\'\u0000\u01a5\u01a0\u0001"+
"\u0000\u0000\u0000\u01a5\u01a1\u0001\u0000\u0000\u0000\u01a5\u01a2\u0001"+
"\u0000\u0000\u0000\u01a5\u01a3\u0001\u0000\u0000\u0000\u01a5\u01a4\u0001"+
"\u0000\u0000\u0000\u01a6\u0013\u0001\u0000\u0000\u0000\u01a7\u01a9\u0003"+
"\u00fc~\u0000\u01a8\u01a7\u0001\u0000\u0000\u0000\u01a8\u01a9\u0001\u0000"+
"\u0000\u0000\u01a9\u01aa\u0001\u0000\u0000\u0000\u01aa\u01ae\u0007\u0000"+
"\u0000\u0000\u01ab\u01ad\u0005\u0005\u0000\u0000\u01ac\u01ab\u0001\u0000"+
"\u0000\u0000\u01ad\u01b0\u0001\u0000\u0000\u0000\u01ae\u01ac\u0001\u0000"+
"\u0000\u0000\u01ae\u01af\u0001\u0000\u0000\u0000\u01af\u01b1\u0001\u0000"+
"\u0000\u0000\u01b0\u01ae\u0001\u0000\u0000\u0000\u01b1\u01b9\u0003\u0120"+
"\u0090\u0000\u01b2\u01b4\u0005\u0005\u0000\u0000\u01b3\u01b2\u0001\u0000"+
"\u0000\u0000\u01b4\u01b7\u0001\u0000\u0000\u0000\u01b5\u01b3\u0001\u0000"+
"\u0000\u0000\u01b5\u01b6\u0001\u0000\u0000\u0000\u01b6\u01b8\u0001\u0000"+
"\u0000\u0000\u01b7\u01b5\u0001\u0000\u0000\u0000\u01b8\u01ba\u0003P(\u0000"+
"\u01b9\u01b5\u0001\u0000\u0000\u0000\u01b9\u01ba\u0001\u0000\u0000\u0000"+
"\u01ba\u01c2\u0001\u0000\u0000\u0000\u01bb\u01bd\u0005\u0005\u0000\u0000"+
"\u01bc\u01bb\u0001\u0000\u0000\u0000\u01bd\u01c0\u0001\u0000\u0000\u0000"+
"\u01be\u01bc\u0001\u0000\u0000\u0000\u01be\u01bf\u0001\u0000\u0000\u0000"+
"\u01bf\u01c1\u0001\u0000\u0000\u0000\u01c0\u01be\u0001\u0000\u0000\u0000"+
"\u01c1\u01c3\u0003\u0016\u000b\u0000\u01c2\u01be\u0001\u0000\u0000\u0000"+
"\u01c2\u01c3\u0001\u0000\u0000\u0000\u01c3\u01d2\u0001\u0000\u0000\u0000"+
"\u01c4\u01c6\u0005\u0005\u0000\u0000\u01c5\u01c4\u0001\u0000\u0000\u0000"+
"\u01c6\u01c9\u0001\u0000\u0000\u0000\u01c7\u01c5\u0001\u0000\u0000\u0000"+
"\u01c7\u01c8\u0001\u0000\u0000\u0000\u01c8\u01ca\u0001\u0000\u0000\u0000"+
"\u01c9\u01c7\u0001\u0000\u0000\u0000\u01ca\u01ce\u0005\u0019\u0000\u0000"+
"\u01cb\u01cd\u0005\u0005\u0000\u0000\u01cc\u01cb\u0001\u0000\u0000\u0000"+
"\u01cd\u01d0\u0001\u0000\u0000\u0000\u01ce\u01cc\u0001\u0000\u0000\u0000"+
"\u01ce\u01cf\u0001\u0000\u0000\u0000\u01cf\u01d1\u0001\u0000\u0000\u0000"+
"\u01d0\u01ce\u0001\u0000\u0000\u0000\u01d1\u01d3\u0003\u001c\u000e\u0000"+
"\u01d2\u01c7\u0001\u0000\u0000\u0000\u01d2\u01d3\u0001\u0000\u0000\u0000"+
"\u01d3\u01db\u0001\u0000\u0000\u0000\u01d4\u01d6\u0005\u0005\u0000\u0000"+
"\u01d5\u01d4\u0001\u0000\u0000\u0000\u01d6\u01d9\u0001\u0000\u0000\u0000"+
"\u01d7\u01d5\u0001\u0000\u0000\u0000\u01d7\u01d8\u0001\u0000\u0000\u0000"+
"\u01d8\u01da\u0001\u0000\u0000\u0000\u01d9\u01d7\u0001\u0000\u0000\u0000"+
"\u01da\u01dc\u0003h4\u0000\u01db\u01d7\u0001\u0000\u0000\u0000\u01db\u01dc"+
"\u0001\u0000\u0000\u0000\u01dc\u01eb\u0001\u0000\u0000\u0000\u01dd\u01df"+
"\u0005\u0005\u0000\u0000\u01de\u01dd\u0001\u0000\u0000\u0000\u01df\u01e2"+
"\u0001\u0000\u0000\u0000\u01e0\u01de\u0001\u0000\u0000\u0000\u01e0\u01e1"+
"\u0001\u0000\u0000\u0000\u01e1\u01e3\u0001\u0000\u0000\u0000\u01e2\u01e0"+
"\u0001\u0000\u0000\u0000\u01e3\u01ec\u0003$\u0012\u0000\u01e4\u01e6\u0005"+
"\u0005\u0000\u0000\u01e5\u01e4\u0001\u0000\u0000\u0000\u01e6\u01e9\u0001"+
"\u0000\u0000\u0000\u01e7\u01e5\u0001\u0000\u0000\u0000\u01e7\u01e8\u0001"+
"\u0000\u0000\u0000\u01e8\u01ea\u0001\u0000\u0000\u0000\u01e9\u01e7\u0001"+
"\u0000\u0000\u0000\u01ea\u01ec\u0003.\u0017\u0000\u01eb\u01e0\u0001\u0000"+
"\u0000\u0000\u01eb\u01e7\u0001\u0000\u0000\u0000\u01eb\u01ec\u0001\u0000"+
"\u0000\u0000\u01ec\u0015\u0001\u0000\u0000\u0000\u01ed\u01ef\u0003\u00fc"+
"~\u0000\u01ee\u01ed\u0001\u0000\u0000\u0000\u01ee\u01ef\u0001\u0000\u0000"+
"\u0000\u01ef\u01f7\u0001\u0000\u0000\u0000\u01f0\u01f4\u0005B\u0000\u0000"+
"\u01f1\u01f3\u0005\u0005\u0000\u0000\u01f2\u01f1\u0001\u0000\u0000\u0000"+
"\u01f3\u01f6\u0001\u0000\u0000\u0000\u01f4\u01f2\u0001\u0000\u0000\u0000"+
"\u01f4\u01f5\u0001\u0000\u0000\u0000\u01f5\u01f8\u0001\u0000\u0000\u0000"+
"\u01f6\u01f4\u0001\u0000\u0000\u0000\u01f7\u01f0\u0001\u0000\u0000\u0000"+
"\u01f7\u01f8\u0001\u0000\u0000\u0000\u01f8\u01f9\u0001\u0000\u0000\u0000"+
"\u01f9\u01fa\u0003\u0018\f\u0000\u01fa\u0017\u0001\u0000\u0000\u0000\u01fb"+
"\u0207\u0005\t\u0000\u0000\u01fc\u0201\u0003\u001a\r\u0000\u01fd\u01fe"+
"\u0005\b\u0000\u0000\u01fe\u0200\u0003\u001a\r\u0000\u01ff\u01fd\u0001"+
"\u0000\u0000\u0000\u0200\u0203\u0001\u0000\u0000\u0000\u0201\u01ff\u0001"+
"\u0000\u0000\u0000\u0201\u0202\u0001\u0000\u0000\u0000\u0202\u0205\u0001"+
"\u0000\u0000\u0000\u0203\u0201\u0001\u0000\u0000\u0000\u0204\u0206\u0005"+
"\b\u0000\u0000\u0205\u0204\u0001\u0000\u0000\u0000\u0205\u0206\u0001\u0000"+
"\u0000\u0000\u0206\u0208\u0001\u0000\u0000\u0000\u0207\u01fc\u0001\u0000"+
"\u0000\u0000\u0207\u0208\u0001\u0000\u0000\u0000\u0208\u0209\u0001\u0000"+
"\u0000\u0000\u0209\u020a\u0005\n\u0000\u0000\u020a\u0019\u0001\u0000\u0000"+
"\u0000\u020b\u020d\u0003\u00fc~\u0000\u020c\u020b\u0001\u0000\u0000\u0000"+
"\u020c\u020d\u0001\u0000\u0000\u0000\u020d\u020f\u0001\u0000\u0000\u0000"+
"\u020e\u0210\u0007\u0001\u0000\u0000\u020f\u020e\u0001\u0000\u0000\u0000"+
"\u020f\u0210\u0001\u0000\u0000\u0000\u0210\u0211\u0001\u0000\u0000\u0000"+
"\u0211\u0212\u0003\u0120\u0090\u0000\u0212\u0213\u0005\u0019\u0000\u0000"+
"\u0213\u0216\u0003T*\u0000\u0214\u0215\u0005\u001b\u0000\u0000\u0215\u0217"+
"\u0003v;\u0000\u0216\u0214\u0001\u0000\u0000\u0000\u0216\u0217\u0001\u0000"+
"\u0000\u0000\u0217\u001b\u0001\u0000\u0000\u0000\u0218\u021a\u0003\u0114"+
"\u008a\u0000\u0219\u0218\u0001\u0000\u0000\u0000\u021a\u021d\u0001\u0000"+
"\u0000\u0000\u021b\u0219\u0001\u0000\u0000\u0000\u021b\u021c\u0001\u0000"+
"\u0000\u0000\u021c\u021e\u0001\u0000\u0000\u0000\u021d\u021b\u0001\u0000"+
"\u0000\u0000\u021e\u0235\u0003\u001e\u000f\u0000\u021f\u0221\u0005\u0005"+
"\u0000\u0000\u0220\u021f\u0001\u0000\u0000\u0000\u0221\u0224\u0001\u0000"+
"\u0000\u0000\u0222\u0220\u0001\u0000\u0000\u0000\u0222\u0223\u0001\u0000"+
"\u0000\u0000\u0223\u0225\u0001\u0000\u0000\u0000\u0224\u0222\u0001\u0000"+
"\u0000\u0000\u0225\u0229\u0005\b\u0000\u0000\u0226\u0228\u0005\u0005\u0000"+
"\u0000\u0227\u0226\u0001\u0000\u0000\u0000\u0228\u022b\u0001\u0000\u0000"+
"\u0000\u0229\u0227\u0001\u0000\u0000\u0000\u0229\u022a\u0001\u0000\u0000"+
"\u0000\u022a\u022f\u0001\u0000\u0000\u0000\u022b\u0229\u0001\u0000\u0000"+
"\u0000\u022c\u022e\u0003\u0114\u008a\u0000\u022d\u022c\u0001\u0000\u0000"+
"\u0000\u022e\u0231\u0001\u0000\u0000\u0000\u022f\u022d\u0001\u0000\u0000"+
"\u0000\u022f\u0230\u0001\u0000\u0000\u0000\u0230\u0232\u0001\u0000\u0000"+
"\u0000\u0231\u022f\u0001\u0000\u0000\u0000\u0232\u0234\u0003\u001e\u000f"+
"\u0000\u0233\u0222\u0001\u0000\u0000\u0000\u0234\u0237\u0001\u0000\u0000"+
"\u0000\u0235\u0233\u0001\u0000\u0000\u0000\u0235\u0236\u0001\u0000\u0000"+
"\u0000\u0236\u001d\u0001\u0000\u0000\u0000\u0237\u0235\u0001\u0000\u0000"+
"\u0000\u0238\u023c\u0003 \u0010\u0000\u0239\u023c\u0003b1\u0000\u023a"+
"\u023c\u0003\"\u0011\u0000\u023b\u0238\u0001\u0000\u0000\u0000\u023b\u0239"+
"\u0001\u0000\u0000\u0000\u023b\u023a\u0001\u0000\u0000\u0000\u023c\u001f"+
"\u0001\u0000\u0000\u0000\u023d\u023e\u0003b1\u0000\u023e\u023f\u0003\u0096"+
"K\u0000\u023f!\u0001\u0000\u0000\u0000\u0240\u0244\u0003b1\u0000\u0241"+
"\u0243\u0005\u0005\u0000\u0000\u0242\u0241\u0001\u0000\u0000\u0000\u0243"+
"\u0246\u0001\u0000\u0000\u0000\u0244\u0242\u0001\u0000\u0000\u0000\u0244"+
"\u0245\u0001\u0000\u0000\u0000\u0245\u0247\u0001\u0000\u0000\u0000\u0246"+
"\u0244\u0001\u0000\u0000\u0000\u0247\u024b\u0005C\u0000\u0000\u0248\u024a"+
"\u0005\u0005\u0000\u0000\u0249\u0248\u0001\u0000\u0000\u0000\u024a\u024d"+
"\u0001\u0000\u0000\u0000\u024b\u0249\u0001\u0000\u0000\u0000\u024b\u024c"+
"\u0001\u0000\u0000\u0000\u024c\u024e\u0001\u0000\u0000\u0000\u024d\u024b"+
"\u0001\u0000\u0000\u0000\u024e\u024f\u0003v;\u0000\u024f#\u0001\u0000"+
"\u0000\u0000\u0250\u0254\u0005\r\u0000\u0000\u0251\u0253\u0005\u0005\u0000"+
"\u0000\u0252\u0251\u0001\u0000\u0000\u0000\u0253\u0256\u0001\u0000\u0000"+
"\u0000\u0254\u0252\u0001\u0000\u0000\u0000\u0254\u0255\u0001\u0000\u0000"+
"\u0000\u0255\u025a\u0001\u0000\u0000\u0000\u0256\u0254\u0001\u0000\u0000"+
"\u0000\u0257\u0259\u0003&\u0013\u0000\u0258\u0257\u0001\u0000\u0000\u0000"+
"\u0259\u025c\u0001\u0000\u0000\u0000\u025a\u0258\u0001\u0000\u0000\u0000"+
"\u025a\u025b\u0001\u0000\u0000\u0000\u025b\u0260\u0001\u0000\u0000\u0000"+
"\u025c\u025a\u0001\u0000\u0000\u0000\u025d\u025f\u0005\u0005\u0000\u0000"+
"\u025e\u025d\u0001\u0000\u0000\u0000\u025f\u0262\u0001\u0000\u0000\u0000"+
"\u0260\u025e\u0001\u0000\u0000\u0000\u0260\u0261\u0001\u0000\u0000\u0000"+
"\u0261\u0263\u0001\u0000\u0000\u0000\u0262\u0260\u0001\u0000\u0000\u0000"+
"\u0263\u0264\u0005\u000e\u0000\u0000\u0264%\u0001\u0000\u0000\u0000\u0265"+
"\u026e\u0003\u0014\n\u0000\u0266\u026e\u00034\u001a\u0000\u0267\u026e"+
"\u0003@ \u0000\u0268\u026e\u0003B!\u0000\u0269\u026e\u0003D\"\u0000\u026a"+
"\u026e\u0003(\u0014\u0000\u026b\u026e\u0003*\u0015\u0000\u026c\u026e\u0003"+
"N\'\u0000\u026d\u0265\u0001\u0000\u0000\u0000\u026d\u0266\u0001\u0000"+
"\u0000\u0000\u026d\u0267\u0001\u0000\u0000\u0000\u026d\u0268\u0001\u0000"+
"\u0000\u0000\u026d\u0269\u0001\u0000\u0000\u0000\u026d\u026a\u0001\u0000"+
"\u0000\u0000\u026d\u026b\u0001\u0000\u0000\u0000\u026d\u026c\u0001\u0000"+
"\u0000\u0000\u026e\u0270\u0001\u0000\u0000\u0000\u026f\u0271\u0003\u0124"+
"\u0092\u0000\u0270\u026f\u0001\u0000\u0000\u0000\u0271\u0272\u0001\u0000"+
"\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0272\u0273\u0001\u0000"+
"\u0000\u0000\u0273\'\u0001\u0000\u0000\u0000\u0274\u0278\u0005E\u0000"+
"\u0000\u0275\u0277\u0005\u0005\u0000\u0000\u0276\u0275\u0001\u0000\u0000"+
"\u0000\u0277\u027a\u0001\u0000\u0000\u0000\u0278\u0276\u0001\u0000\u0000"+
"\u0000\u0278\u0279\u0001\u0000\u0000\u0000\u0279\u027b\u0001\u0000\u0000"+
"\u0000\u027a\u0278\u0001\u0000\u0000\u0000\u027b\u027c\u0003l6\u0000\u027c"+
")\u0001\u0000\u0000\u0000\u027d\u027f\u0003\u00fc~\u0000\u027e\u027d\u0001"+
"\u0000\u0000\u0000\u027e\u027f\u0001\u0000\u0000\u0000\u027f\u0280\u0001"+
"\u0000\u0000\u0000\u0280\u0284\u0005B\u0000\u0000\u0281\u0283\u0005\u0005"+
"\u0000\u0000\u0282\u0281\u0001\u0000\u0000\u0000\u0283\u0286\u0001\u0000"+
"\u0000\u0000\u0284\u0282\u0001\u0000\u0000\u0000\u0284\u0285\u0001\u0000"+
"\u0000\u0000\u0285\u0287\u0001\u0000\u0000\u0000\u0286\u0284\u0001\u0000"+
"\u0000\u0000\u0287\u0296\u00036\u001b\u0000\u0288\u028a\u0005\u0005\u0000"+
"\u0000\u0289\u0288\u0001\u0000\u0000\u0000\u028a\u028d\u0001\u0000\u0000"+
"\u0000\u028b\u0289\u0001\u0000\u0000\u0000\u028b\u028c\u0001\u0000\u0000"+
"\u0000\u028c\u028e\u0001\u0000\u0000\u0000\u028d\u028b\u0001\u0000\u0000"+
"\u0000\u028e\u0292\u0005\u0019\u0000\u0000\u028f\u0291\u0005\u0005\u0000"+
"\u0000\u0290\u028f\u0001\u0000\u0000\u0000\u0291\u0294\u0001\u0000\u0000"+
"\u0000\u0292\u0290\u0001\u0000\u0000\u0000\u0292\u0293\u0001\u0000\u0000"+
"\u0000\u0293\u0295\u0001\u0000\u0000\u0000\u0294\u0292\u0001\u0000\u0000"+
"\u0000\u0295\u0297\u0003,\u0016\u0000\u0296\u028b\u0001\u0000\u0000\u0000"+
"\u0296\u0297\u0001\u0000\u0000\u0000\u0297\u029b\u0001\u0000\u0000\u0000"+
"\u0298\u029a\u0005\u0005\u0000\u0000\u0299\u0298\u0001\u0000\u0000\u0000"+
"\u029a\u029d\u0001\u0000\u0000\u0000\u029b\u0299\u0001\u0000\u0000\u0000"+
"\u029b\u029c\u0001\u0000\u0000\u0000\u029c\u029f\u0001\u0000\u0000\u0000"+
"\u029d\u029b\u0001\u0000\u0000\u0000\u029e\u02a0\u0003l6\u0000\u029f\u029e"+
"\u0001\u0000\u0000\u0000\u029f\u02a0\u0001\u0000\u0000\u0000\u02a0+\u0001"+
"\u0000\u0000\u0000\u02a1\u02a5\u0005F\u0000\u0000\u02a2\u02a4\u0005\u0005"+
"\u0000\u0000\u02a3\u02a2\u0001\u0000\u0000\u0000\u02a4\u02a7\u0001\u0000"+
"\u0000\u0000\u02a5\u02a3\u0001\u0000\u0000\u0000\u02a5\u02a6\u0001\u0000"+
"\u0000\u0000\u02a6\u02a8\u0001\u0000\u0000\u0000\u02a7\u02a5\u0001\u0000"+
"\u0000\u0000\u02a8\u02b2\u0003\u009cN\u0000\u02a9\u02ad\u0005G\u0000\u0000"+
"\u02aa\u02ac\u0005\u0005\u0000\u0000\u02ab\u02aa\u0001\u0000\u0000\u0000"+
"\u02ac\u02af\u0001\u0000\u0000\u0000\u02ad\u02ab\u0001\u0000\u0000\u0000"+
"\u02ad\u02ae\u0001\u0000\u0000\u0000\u02ae\u02b0\u0001\u0000\u0000\u0000"+
"\u02af\u02ad\u0001\u0000\u0000\u0000\u02b0\u02b2\u0003\u009cN\u0000\u02b1"+
"\u02a1\u0001\u0000\u0000\u0000\u02b1\u02a9\u0001\u0000\u0000\u0000\u02b2"+
"-\u0001\u0000\u0000\u0000\u02b3\u02b7\u0005\r\u0000\u0000\u02b4\u02b6"+
"\u0005\u0005\u0000\u0000\u02b5\u02b4\u0001\u0000\u0000\u0000\u02b6\u02b9"+
"\u0001\u0000\u0000\u0000\u02b7\u02b5\u0001\u0000\u0000\u0000\u02b7\u02b8"+
"\u0001\u0000\u0000\u0000\u02b8\u02bb\u0001\u0000\u0000\u0000\u02b9\u02b7"+
"\u0001\u0000\u0000\u0000\u02ba\u02bc\u00030\u0018\u0000\u02bb\u02ba\u0001"+
"\u0000\u0000\u0000\u02bb\u02bc\u0001\u0000\u0000\u0000\u02bc\u02d0\u0001"+
"\u0000\u0000\u0000\u02bd\u02bf\u0005\u0005\u0000\u0000\u02be\u02bd\u0001"+
"\u0000\u0000\u0000\u02bf\u02c2\u0001\u0000\u0000\u0000\u02c0\u02be\u0001"+
"\u0000\u0000\u0000\u02c0\u02c1\u0001\u0000\u0000\u0000\u02c1\u02c3\u0001"+
"\u0000\u0000\u0000\u02c2\u02c0\u0001\u0000\u0000\u0000\u02c3\u02c7\u0005"+
"\u001a\u0000\u0000\u02c4\u02c6\u0005\u0005\u0000\u0000\u02c5\u02c4\u0001"+
"\u0000\u0000\u0000\u02c6\u02c9\u0001\u0000\u0000\u0000\u02c7\u02c5\u0001"+
"\u0000\u0000\u0000\u02c7\u02c8\u0001\u0000\u0000\u0000\u02c8\u02cd\u0001"+
"\u0000\u0000\u0000\u02c9\u02c7\u0001\u0000\u0000\u0000\u02ca\u02cc\u0003"+
"&\u0013\u0000\u02cb\u02ca\u0001\u0000\u0000\u0000\u02cc\u02cf\u0001\u0000"+
"\u0000\u0000\u02cd\u02cb\u0001\u0000\u0000\u0000\u02cd\u02ce\u0001\u0000"+
"\u0000\u0000\u02ce\u02d1\u0001\u0000\u0000\u0000\u02cf\u02cd\u0001\u0000"+
"\u0000\u0000\u02d0\u02c0\u0001\u0000\u0000\u0000\u02d0\u02d1\u0001\u0000"+
"\u0000\u0000\u02d1\u02d5\u0001\u0000\u0000\u0000\u02d2\u02d4\u0005\u0005"+
"\u0000\u0000\u02d3\u02d2\u0001\u0000\u0000\u0000\u02d4\u02d7\u0001\u0000"+
"\u0000\u0000\u02d5\u02d3\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000"+
"\u0000\u0000\u02d6\u02d8\u0001\u0000\u0000\u0000\u02d7\u02d5\u0001\u0000"+
"\u0000\u0000\u02d8\u02d9\u0005\u000e\u0000\u0000\u02d9/\u0001\u0000\u0000"+
"\u0000\u02da\u02de\u00032\u0019\u0000\u02db\u02dd\u0005\u0005\u0000\u0000"+
"\u02dc\u02db\u0001\u0000\u0000\u0000\u02dd\u02e0\u0001\u0000\u0000\u0000"+
"\u02de\u02dc\u0001\u0000\u0000\u0000\u02de\u02df\u0001\u0000\u0000\u0000"+
"\u02df\u02e2\u0001\u0000\u0000\u0000\u02e0\u02de\u0001\u0000\u0000\u0000"+
"\u02e1\u02da\u0001\u0000\u0000\u0000\u02e2\u02e3\u0001\u0000\u0000\u0000"+
"\u02e3\u02e1\u0001\u0000\u0000\u0000\u02e3\u02e4\u0001\u0000\u0000\u0000"+
"\u02e4\u02e6\u0001\u0000\u0000\u0000\u02e5\u02e7\u0005\u001a\u0000\u0000"+
"\u02e6\u02e5\u0001\u0000\u0000\u0000\u02e6\u02e7\u0001\u0000\u0000\u0000"+
"\u02e71\u0001\u0000\u0000\u0000\u02e8\u02ea\u0003\u0114\u008a\u0000\u02e9"+
"\u02e8\u0001\u0000\u0000\u0000\u02ea\u02ed\u0001\u0000\u0000\u0000\u02eb"+
"\u02e9\u0001\u0000\u0000\u0000\u02eb\u02ec\u0001\u0000\u0000\u0000\u02ec"+
"\u02ee\u0001\u0000\u0000\u0000\u02ed\u02eb\u0001\u0000\u0000\u0000\u02ee"+
"\u02f6\u0003\u0120\u0090\u0000\u02ef\u02f1\u0005\u0005\u0000\u0000\u02f0"+
"\u02ef\u0001\u0000\u0000\u0000\u02f1\u02f4\u0001\u0000\u0000\u0000\u02f2"+
"\u02f0\u0001\u0000\u0000\u0000\u02f2\u02f3\u0001\u0000\u0000\u0000\u02f3"+
"\u02f5\u0001\u0000\u0000\u0000\u02f4\u02f2\u0001\u0000\u0000\u0000\u02f5"+
"\u02f7\u0003\u009cN\u0000\u02f6\u02f2\u0001\u0000\u0000\u0000\u02f6\u02f7"+
"\u0001\u0000\u0000\u0000\u02f7\u02ff\u0001\u0000\u0000\u0000\u02f8\u02fa"+
"\u0005\u0005\u0000\u0000\u02f9\u02f8\u0001\u0000\u0000\u0000\u02fa\u02fd"+
"\u0001\u0000\u0000\u0000\u02fb\u02f9\u0001\u0000\u0000\u0000\u02fb\u02fc"+
"\u0001\u0000\u0000\u0000\u02fc\u02fe\u0001\u0000\u0000\u0000\u02fd\u02fb"+
"\u0001\u0000\u0000\u0000\u02fe\u0300\u0003$\u0012\u0000\u02ff\u02fb\u0001"+
"\u0000\u0000\u0000\u02ff\u0300\u0001\u0000\u0000\u0000\u0300\u0308\u0001"+
"\u0000\u0000\u0000\u0301\u0303\u0005\u0005\u0000\u0000\u0302\u0301\u0001"+
"\u0000\u0000\u0000\u0303\u0306\u0001\u0000\u0000\u0000\u0304\u0302\u0001"+
"\u0000\u0000\u0000\u0304\u0305\u0001\u0000\u0000\u0000\u0305\u0307\u0001"+
"\u0000\u0000\u0000\u0306\u0304\u0001\u0000\u0000\u0000\u0307\u0309\u0005"+
"\b\u0000\u0000\u0308\u0304\u0001\u0000\u0000\u0000\u0308\u0309\u0001\u0000"+
"\u0000\u0000\u03093\u0001\u0000\u0000\u0000\u030a\u030c\u0003\u00fc~\u0000"+
"\u030b\u030a\u0001\u0000\u0000\u0000\u030b\u030c\u0001\u0000\u0000\u0000"+
"\u030c\u030d\u0001\u0000\u0000\u0000\u030d\u031d\u0005=\u0000\u0000\u030e"+
"\u0310\u0005\u0005\u0000\u0000\u030f\u030e\u0001\u0000\u0000\u0000\u0310"+
"\u0313\u0001\u0000\u0000\u0000\u0311\u030f\u0001\u0000\u0000\u0000\u0311"+
"\u0312\u0001\u0000\u0000\u0000\u0312\u0314\u0001\u0000\u0000\u0000\u0313"+
"\u0311\u0001\u0000\u0000\u0000\u0314\u0318\u0003T*\u0000\u0315\u0317\u0005"+
"\u0005\u0000\u0000\u0316\u0315\u0001\u0000\u0000\u0000\u0317\u031a\u0001"+
"\u0000\u0000\u0000\u0318\u0316\u0001\u0000\u0000\u0000\u0318\u0319\u0001"+
"\u0000\u0000\u0000\u0319\u031b\u0001\u0000\u0000\u0000\u031a\u0318\u0001"+
"\u0000\u0000\u0000\u031b\u031c\u0005\u0007\u0000\u0000\u031c\u031e\u0001"+
"\u0000\u0000\u0000\u031d\u0311\u0001\u0000\u0000\u0000\u031d\u031e\u0001"+
"\u0000\u0000\u0000\u031e\u0326\u0001\u0000\u0000\u0000\u031f\u0321\u0005"+
"\u0005\u0000\u0000\u0320\u031f\u0001\u0000\u0000\u0000\u0321\u0324\u0001"+
"\u0000\u0000\u0000\u0322\u0320\u0001\u0000\u0000\u0000\u0322\u0323\u0001"+
"\u0000\u0000\u0000\u0323\u0325\u0001\u0000\u0000\u0000\u0324\u0322\u0001"+
"\u0000\u0000\u0000\u0325\u0327\u0003P(\u0000\u0326\u0322\u0001\u0000\u0000"+
"\u0000\u0326\u0327\u0001\u0000\u0000\u0000\u0327\u0337\u0001\u0000\u0000"+
"\u0000\u0328\u032a\u0005\u0005\u0000\u0000\u0329\u0328\u0001\u0000\u0000"+
"\u0000\u032a\u032d\u0001\u0000\u0000\u0000\u032b\u0329\u0001\u0000\u0000"+
"\u0000\u032b\u032c\u0001\u0000\u0000\u0000\u032c\u032e\u0001\u0000\u0000"+
"\u0000\u032d\u032b\u0001\u0000\u0000\u0000\u032e\u0332\u0003<\u001e\u0000"+
"\u032f\u0331\u0005\u0005\u0000\u0000\u0330\u032f\u0001\u0000\u0000\u0000"+
"\u0331\u0334\u0001\u0000\u0000\u0000\u0332\u0330\u0001\u0000\u0000\u0000"+
"\u0332\u0333\u0001\u0000\u0000\u0000\u0333\u0335\u0001\u0000\u0000\u0000"+
"\u0334\u0332\u0001\u0000\u0000\u0000\u0335\u0336\u0005\u0007\u0000\u0000"+
"\u0336\u0338\u0001\u0000\u0000\u0000\u0337\u032b\u0001\u0000\u0000\u0000"+
"\u0337\u0338\u0001\u0000\u0000\u0000\u0338\u0340\u0001\u0000\u0000\u0000"+
"\u0339\u033b\u0005\u0005\u0000\u0000\u033a\u0339\u0001\u0000\u0000\u0000"+
"\u033b\u033e\u0001\u0000\u0000\u0000\u033c\u033a\u0001\u0000\u0000\u0000"+
"\u033c\u033d\u0001\u0000\u0000\u0000\u033d\u033f\u0001\u0000\u0000\u0000"+
"\u033e\u033c\u0001\u0000\u0000\u0000\u033f\u0341\u0003\u011e\u008f\u0000"+
"\u0340\u033c\u0001\u0000\u0000\u0000\u0340\u0341\u0001\u0000\u0000\u0000"+
"\u0341\u0345\u0001\u0000\u0000\u0000\u0342\u0344\u0005\u0005\u0000\u0000"+
"\u0343\u0342\u0001\u0000\u0000\u0000\u0344\u0347\u0001\u0000\u0000\u0000"+
"\u0345\u0343\u0001\u0000\u0000\u0000\u0345\u0346\u0001\u0000\u0000\u0000"+
"\u0346\u0348\u0001\u0000\u0000\u0000\u0347\u0345\u0001\u0000\u0000\u0000"+
"\u0348\u0357\u00036\u001b\u0000\u0349\u034b\u0005\u0005\u0000\u0000\u034a"+
"\u0349\u0001\u0000\u0000\u0000\u034b\u034e\u0001\u0000\u0000\u0000\u034c"+
"\u034a\u0001\u0000\u0000\u0000\u034c\u034d\u0001\u0000\u0000\u0000\u034d"+
"\u034f\u0001\u0000\u0000\u0000\u034e\u034c\u0001\u0000\u0000\u0000\u034f"+
"\u0353\u0005\u0019\u0000\u0000\u0350\u0352\u0005\u0005\u0000\u0000\u0351"+
"\u0350\u0001\u0000\u0000\u0000\u0352\u0355\u0001\u0000\u0000\u0000\u0353"+
"\u0351\u0001\u0000\u0000\u0000\u0353\u0354\u0001\u0000\u0000\u0000\u0354"+
"\u0356\u0001\u0000\u0000\u0000\u0355\u0353\u0001\u0000\u0000\u0000\u0356"+
"\u0358\u0003T*\u0000\u0357\u034c\u0001\u0000\u0000\u0000\u0357\u0358\u0001"+
"\u0000\u0000\u0000\u0358\u0360\u0001\u0000\u0000\u0000\u0359\u035b\u0005"+
"\u0005\u0000\u0000\u035a\u0359\u0001\u0000\u0000\u0000\u035b\u035e\u0001"+
"\u0000\u0000\u0000\u035c\u035a\u0001\u0000\u0000\u0000\u035c\u035d\u0001"+
"\u0000\u0000\u0000\u035d\u035f\u0001\u0000\u0000\u0000\u035e\u035c\u0001"+
"\u0000\u0000\u0000\u035f\u0361\u0003h4\u0000\u0360\u035c\u0001\u0000\u0000"+
"\u0000\u0360\u0361\u0001\u0000\u0000\u0000\u0361\u0369\u0001\u0000\u0000"+
"\u0000\u0362\u0364\u0005\u0005\u0000\u0000\u0363\u0362\u0001\u0000\u0000"+
"\u0000\u0364\u0367\u0001\u0000\u0000\u0000\u0365\u0363\u0001\u0000\u0000"+
"\u0000\u0365\u0366\u0001\u0000\u0000\u0000\u0366\u0368\u0001\u0000\u0000"+
"\u0000\u0367\u0365\u0001\u0000\u0000\u0000\u0368\u036a\u0003>\u001f\u0000"+
"\u0369\u0365\u0001\u0000\u0000\u0000\u0369\u036a\u0001\u0000\u0000\u0000"+
"\u036a5\u0001\u0000\u0000\u0000\u036b\u0377\u0005\t\u0000\u0000\u036c"+
"\u0371\u00038\u001c\u0000\u036d\u036e\u0005\b\u0000\u0000\u036e\u0370"+
"\u00038\u001c\u0000\u036f\u036d\u0001\u0000\u0000\u0000\u0370\u0373\u0001"+
"\u0000\u0000\u0000\u0371\u036f\u0001\u0000\u0000\u0000\u0371\u0372\u0001"+
"\u0000\u0000\u0000\u0372\u0375\u0001\u0000\u0000\u0000\u0373\u0371\u0001"+
"\u0000\u0000\u0000\u0374\u0376\u0005\b\u0000\u0000\u0375\u0374\u0001\u0000"+
"\u0000\u0000\u0375\u0376\u0001\u0000\u0000\u0000\u0376\u0378\u0001\u0000"+
"\u0000\u0000\u0377\u036c\u0001\u0000\u0000\u0000\u0377\u0378\u0001\u0000"+
"\u0000\u0000\u0378\u0379\u0001\u0000\u0000\u0000\u0379\u037a\u0005\n\u0000"+
"\u0000\u037a7\u0001\u0000\u0000\u0000\u037b\u037d\u0003\u00fc~\u0000\u037c"+
"\u037b\u0001\u0000\u0000\u0000\u037c\u037d\u0001\u0000\u0000\u0000\u037d"+
"\u037e\u0001\u0000\u0000\u0000\u037e\u0381\u0003:\u001d\u0000\u037f\u0380"+
"\u0005\u001b\u0000\u0000\u0380\u0382\u0003v;\u0000\u0381\u037f\u0001\u0000"+
"\u0000\u0000\u0381\u0382\u0001\u0000\u0000\u0000\u03829\u0001\u0000\u0000"+
"\u0000\u0383\u0384\u0003\u0120\u0090\u0000\u0384\u0385\u0005\u0019\u0000"+
"\u0000\u0385\u0386\u0003T*\u0000\u0386;\u0001\u0000\u0000\u0000\u0387"+
"\u0389\u0003V+\u0000\u0388\u0387\u0001\u0000\u0000\u0000\u0388\u0389\u0001"+
"\u0000\u0000\u0000\u0389\u038d\u0001\u0000\u0000\u0000\u038a\u038e\u0003"+
"X,\u0000\u038b\u038e\u0003Z-\u0000\u038c\u038e\u0003\\.\u0000\u038d\u038a"+
"\u0001\u0000\u0000\u0000\u038d\u038b\u0001\u0000\u0000\u0000\u038d\u038c"+
"\u0001\u0000\u0000\u0000\u038e=\u0001\u0000\u0000\u0000\u038f\u0399\u0003"+
"l6\u0000\u0390\u0394\u0005\u001b\u0000\u0000\u0391\u0393\u0005\u0005\u0000"+
"\u0000\u0392\u0391\u0001\u0000\u0000\u0000\u0393\u0396\u0001\u0000\u0000"+
"\u0000\u0394\u0392\u0001\u0000\u0000\u0000\u0394\u0395\u0001\u0000\u0000"+
"\u0000\u0395\u0397\u0001\u0000\u0000\u0000\u0396\u0394\u0001\u0000\u0000"+
"\u0000\u0397\u0399\u0003v;\u0000\u0398\u038f\u0001\u0000\u0000\u0000\u0398"+
"\u0390\u0001\u0000\u0000\u0000\u0399?\u0001\u0000\u0000\u0000\u039a\u039c"+
"\u0003\u00fc~\u0000\u039b\u039a\u0001\u0000\u0000\u0000\u039b\u039c\u0001"+
"\u0000\u0000\u0000\u039c\u039d\u0001\u0000\u0000\u0000\u039d\u03a1\u0005"+
">\u0000\u0000\u039e\u03a0\u0005\u0005\u0000\u0000\u039f\u039e\u0001\u0000"+
"\u0000\u0000\u03a0\u03a3\u0001\u0000\u0000\u0000\u03a1\u039f\u0001\u0000"+
"\u0000\u0000\u03a1\u03a2\u0001\u0000\u0000\u0000\u03a2\u03a4\u0001\u0000"+
"\u0000\u0000\u03a3\u03a1\u0001\u0000\u0000\u0000\u03a4\u03ac\u0003\u0120"+
"\u0090\u0000\u03a5\u03a7\u0005\u0005\u0000\u0000\u03a6\u03a5\u0001\u0000"+
"\u0000\u0000\u03a7\u03aa\u0001\u0000\u0000\u0000\u03a8\u03a6\u0001\u0000"+
"\u0000\u0000\u03a8\u03a9\u0001\u0000\u0000\u0000\u03a9\u03ab\u0001\u0000"+
"\u0000\u0000\u03aa\u03a8\u0001\u0000\u0000\u0000\u03ab\u03ad\u0003\u0016"+
"\u000b\u0000\u03ac\u03a8\u0001\u0000\u0000\u0000\u03ac\u03ad\u0001\u0000"+
"\u0000\u0000\u03ad\u03bc\u0001\u0000\u0000\u0000\u03ae\u03b0\u0005\u0005"+
"\u0000\u0000\u03af\u03ae\u0001\u0000\u0000\u0000\u03b0\u03b3\u0001\u0000"+
"\u0000\u0000\u03b1\u03af\u0001\u0000\u0000\u0000\u03b1\u03b2\u0001\u0000"+
"\u0000\u0000\u03b2\u03b4\u0001\u0000\u0000\u0000\u03b3\u03b1\u0001\u0000"+
"\u0000\u0000\u03b4\u03b8\u0005\u0019\u0000\u0000\u03b5\u03b7\u0005\u0005"+
"\u0000\u0000\u03b6\u03b5\u0001\u0000\u0000\u0000\u03b7\u03ba\u0001\u0000"+
"\u0000\u0000\u03b8\u03b6\u0001\u0000\u0000\u0000\u03b8\u03b9\u0001\u0000"+
"\u0000\u0000\u03b9\u03bb\u0001\u0000\u0000\u0000\u03ba\u03b8\u0001\u0000"+
"\u0000\u0000\u03bb\u03bd\u0003\u001c\u000e\u0000\u03bc\u03b1\u0001\u0000"+
"\u0000\u0000\u03bc\u03bd\u0001\u0000\u0000\u0000\u03bd\u03c5\u0001\u0000"+
"\u0000\u0000\u03be\u03c0\u0005\u0005\u0000\u0000\u03bf\u03be\u0001\u0000"+
"\u0000\u0000\u03c0\u03c3\u0001\u0000\u0000\u0000\u03c1\u03bf\u0001\u0000"+
"\u0000\u0000\u03c1\u03c2\u0001\u0000\u0000\u0000\u03c2\u03c4\u0001\u0000"+
"\u0000\u0000\u03c3\u03c1\u0001\u0000\u0000\u0000\u03c4\u03c6\u0003$\u0012"+
"\u0000\u03c5\u03c1\u0001\u0000\u0000\u0000\u03c5\u03c6\u0001\u0000\u0000"+
"\u0000\u03c6A\u0001\u0000\u0000\u0000\u03c7\u03c9\u0003\u00fc~\u0000\u03c8"+
"\u03c7\u0001\u0000\u0000\u0000\u03c8\u03c9\u0001\u0000\u0000\u0000\u03c9"+
"\u03ca\u0001\u0000\u0000\u0000\u03ca\u03ce\u0005D\u0000\u0000\u03cb\u03cd"+
"\u0005\u0005\u0000\u0000\u03cc\u03cb\u0001\u0000\u0000\u0000\u03cd\u03d0"+
"\u0001\u0000\u0000\u0000\u03ce\u03cc\u0001\u0000\u0000\u0000\u03ce\u03cf"+
"\u0001\u0000\u0000\u0000\u03cf\u03d2\u0001\u0000\u0000\u0000\u03d0\u03ce"+
"\u0001\u0000\u0000\u0000\u03d1\u03d3\u0003\u00fc~\u0000\u03d2\u03d1\u0001"+
"\u0000\u0000\u0000\u03d2\u03d3\u0001\u0000\u0000\u0000\u03d3\u03d4\u0001"+
"\u0000\u0000\u0000\u03d4\u03dc\u0005>\u0000\u0000\u03d5\u03d7\u0005\u0005"+
"\u0000\u0000\u03d6\u03d5\u0001\u0000\u0000\u0000\u03d7\u03da\u0001\u0000"+
"\u0000\u0000\u03d8\u03d6\u0001\u0000\u0000\u0000\u03d8\u03d9\u0001\u0000"+
"\u0000\u0000\u03d9\u03db\u0001\u0000\u0000\u0000\u03da\u03d8\u0001\u0000"+
"\u0000\u0000\u03db\u03dd\u0003\u0120\u0090\u0000\u03dc\u03d8\u0001\u0000"+
"\u0000\u0000\u03dc\u03dd\u0001\u0000\u0000\u0000\u03dd\u03ec\u0001\u0000"+
"\u0000\u0000\u03de\u03e0\u0005\u0005\u0000\u0000\u03df\u03de\u0001\u0000"+
"\u0000\u0000\u03e0\u03e3\u0001\u0000\u0000\u0000\u03e1\u03df\u0001\u0000"+
"\u0000\u0000\u03e1\u03e2\u0001\u0000\u0000\u0000\u03e2\u03e4\u0001\u0000"+
"\u0000\u0000\u03e3\u03e1\u0001\u0000\u0000\u0000\u03e4\u03e8\u0005\u0019"+
"\u0000\u0000\u03e5\u03e7\u0005\u0005\u0000\u0000\u03e6\u03e5\u0001\u0000"+
"\u0000\u0000\u03e7\u03ea\u0001\u0000\u0000\u0000\u03e8\u03e6\u0001\u0000"+
"\u0000\u0000\u03e8\u03e9\u0001\u0000\u0000\u0000\u03e9\u03eb\u0001\u0000"+
"\u0000\u0000\u03ea\u03e8\u0001\u0000\u0000\u0000\u03eb\u03ed\u0003\u001c"+
"\u000e\u0000\u03ec\u03e1\u0001\u0000\u0000\u0000\u03ec\u03ed\u0001\u0000"+
"\u0000\u0000\u03ed\u03f5\u0001\u0000\u0000\u0000\u03ee\u03f0\u0005\u0005"+
"\u0000\u0000\u03ef\u03ee\u0001\u0000\u0000\u0000\u03f0\u03f3\u0001\u0000"+
"\u0000\u0000\u03f1\u03ef\u0001\u0000\u0000\u0000\u03f1\u03f2\u0001\u0000"+
"\u0000\u0000\u03f2\u03f4\u0001\u0000\u0000\u0000\u03f3\u03f1\u0001\u0000"+
"\u0000\u0000\u03f4\u03f6\u0003$\u0012\u0000\u03f5\u03f1\u0001\u0000\u0000"+
"\u0000\u03f5\u03f6\u0001\u0000\u0000\u0000\u03f6C\u0001\u0000\u0000\u0000"+
"\u03f7\u03f9\u0003\u00fc~\u0000\u03f8\u03f7\u0001\u0000\u0000\u0000\u03f8"+
"\u03f9\u0001\u0000\u0000\u0000\u03f9\u03fa\u0001\u0000\u0000\u0000\u03fa"+
"\u0402\u0007\u0001\u0000\u0000\u03fb\u03fd\u0005\u0005\u0000\u0000\u03fc"+
"\u03fb\u0001\u0000\u0000\u0000\u03fd\u0400\u0001\u0000\u0000\u0000\u03fe"+
"\u03fc\u0001\u0000\u0000\u0000\u03fe\u03ff\u0001\u0000\u0000\u0000\u03ff"+
"\u0401\u0001\u0000\u0000\u0000\u0400\u03fe\u0001\u0000\u0000\u0000\u0401"+
"\u0403\u0003P(\u0000\u0402\u03fe\u0001\u0000\u0000\u0000\u0402\u0403\u0001"+
"\u0000\u0000\u0000\u0403\u0413\u0001\u0000\u0000\u0000\u0404\u0406\u0005"+
"\u0005\u0000\u0000\u0405\u0404\u0001\u0000\u0000\u0000\u0406\u0409\u0001"+
"\u0000\u0000\u0000\u0407\u0405\u0001\u0000\u0000\u0000\u0407\u0408\u0001"+
"\u0000\u0000\u0000\u0408\u040a\u0001\u0000\u0000\u0000\u0409\u0407\u0001"+
"\u0000\u0000\u0000\u040a\u040e\u0003T*\u0000\u040b\u040d\u0005\u0005\u0000"+
"\u0000\u040c\u040b\u0001\u0000\u0000\u0000\u040d\u0410\u0001\u0000\u0000"+
"\u0000\u040e\u040c\u0001\u0000\u0000\u0000\u040e\u040f\u0001\u0000\u0000"+
"\u0000\u040f\u0411\u0001\u0000\u0000\u0000\u0410\u040e\u0001\u0000\u0000"+
"\u0000\u0411\u0412\u0005\u0007\u0000\u0000\u0412\u0414\u0001\u0000\u0000"+
"\u0000\u0413\u0407\u0001\u0000\u0000\u0000\u0413\u0414\u0001\u0000\u0000"+
"\u0000\u0414\u0418\u0001\u0000\u0000\u0000\u0415\u0417\u0005\u0005\u0000"+
"\u0000\u0416\u0415\u0001\u0000\u0000\u0000\u0417\u041a\u0001\u0000\u0000"+
"\u0000\u0418\u0416\u0001\u0000\u0000\u0000\u0418\u0419\u0001\u0000\u0000"+
"\u0000\u0419\u041d\u0001\u0000\u0000\u0000\u041a\u0418\u0001\u0000\u0000"+
"\u0000\u041b\u041e\u0003F#\u0000\u041c\u041e\u0003H$\u0000\u041d\u041b"+
"\u0001\u0000\u0000\u0000\u041d\u041c\u0001\u0000\u0000\u0000\u041e\u0426"+
"\u0001\u0000\u0000\u0000\u041f\u0421\u0005\u0005\u0000\u0000\u0420\u041f"+
"\u0001\u0000\u0000\u0000\u0421\u0424\u0001\u0000\u0000\u0000\u0422\u0420"+
"\u0001\u0000\u0000\u0000\u0422\u0423\u0001\u0000\u0000\u0000\u0423\u0425"+
"\u0001\u0000\u0000\u0000\u0424\u0422\u0001\u0000\u0000\u0000\u0425\u0427"+
"\u0003h4\u0000\u0426\u0422\u0001\u0000\u0000\u0000\u0426\u0427\u0001\u0000"+
"\u0000\u0000\u0427\u0436\u0001\u0000\u0000\u0000\u0428\u042a\u0005\u0005"+
"\u0000\u0000\u0429\u0428\u0001\u0000\u0000\u0000\u042a\u042d\u0001\u0000"+
"\u0000\u0000\u042b\u0429\u0001\u0000\u0000\u0000\u042b\u042c\u0001\u0000"+
"\u0000\u0000\u042c\u042e\u0001\u0000\u0000\u0000\u042d\u042b\u0001\u0000"+
"\u0000\u0000\u042e\u0432\u0007\u0002\u0000\u0000\u042f\u0431\u0005\u0005"+
"\u0000\u0000\u0430\u042f\u0001\u0000\u0000\u0000\u0431\u0434\u0001\u0000"+
"\u0000\u0000\u0432\u0430\u0001\u0000\u0000\u0000\u0432\u0433\u0001\u0000"+
"\u0000\u0000\u0433\u0435\u0001\u0000\u0000\u0000\u0434\u0432\u0001\u0000"+
"\u0000\u0000\u0435\u0437\u0003v;\u0000\u0436\u042b\u0001\u0000\u0000\u0000"+
"\u0436\u0437\u0001\u0000\u0000\u0000\u0437\u0450\u0001\u0000\u0000\u0000"+
"\u0438\u043a\u0005\u0005\u0000\u0000\u0439\u0438\u0001\u0000\u0000\u0000"+
"\u043a\u043d\u0001\u0000\u0000\u0000\u043b\u0439\u0001\u0000\u0000\u0000"+
"\u043b\u043c\u0001\u0000\u0000\u0000\u043c\u043e\u0001\u0000\u0000\u0000"+
"\u043d\u043b\u0001\u0000\u0000\u0000\u043e\u0442\u0003J%\u0000\u043f\u0440"+
"\u0003\u0122\u0091\u0000\u0440\u0441\u0003L&\u0000\u0441\u0443\u0001\u0000"+
"\u0000\u0000\u0442\u043f\u0001\u0000\u0000\u0000\u0442\u0443\u0001\u0000"+
"\u0000\u0000\u0443\u0451\u0001\u0000\u0000\u0000\u0444\u0446\u0005\u0005"+
"\u0000\u0000\u0445\u0444\u0001\u0000\u0000\u0000\u0446\u0449\u0001\u0000"+
"\u0000\u0000\u0447\u0445\u0001\u0000\u0000\u0000\u0447\u0448\u0001\u0000"+
"\u0000\u0000\u0448\u044a\u0001\u0000\u0000\u0000\u0449\u0447\u0001\u0000"+
"\u0000\u0000\u044a\u044e\u0003L&\u0000\u044b\u044c\u0003\u0122\u0091\u0000"+
"\u044c\u044d\u0003J%\u0000\u044d\u044f\u0001\u0000\u0000\u0000\u044e\u044b"+
"\u0001\u0000\u0000\u0000\u044e\u044f\u0001\u0000\u0000\u0000\u044f\u0451"+
"\u0001\u0000\u0000\u0000\u0450\u043b\u0001\u0000\u0000\u0000\u0450\u0447"+
"\u0001\u0000\u0000\u0000\u0450\u0451\u0001\u0000\u0000\u0000\u0451E\u0001"+
"\u0000\u0000\u0000\u0452\u0453\u0005\t\u0000\u0000\u0453\u0458\u0003H"+
"$\u0000\u0454\u0455\u0005\b\u0000\u0000\u0455\u0457\u0003H$\u0000\u0456"+
"\u0454\u0001\u0000\u0000\u0000\u0457\u045a\u0001\u0000\u0000\u0000\u0458"+
"\u0456\u0001\u0000\u0000\u0000\u0458\u0459\u0001\u0000\u0000\u0000\u0459"+
"\u045b\u0001\u0000\u0000\u0000\u045a\u0458\u0001\u0000\u0000\u0000\u045b"+
"\u045c\u0005\n\u0000\u0000\u045cG\u0001\u0000\u0000\u0000\u045d\u0460"+
"\u0003\u0120\u0090\u0000\u045e\u045f\u0005\u0019\u0000\u0000\u045f\u0461"+
"\u0003T*\u0000\u0460\u045e\u0001\u0000\u0000\u0000\u0460\u0461\u0001\u0000"+
"\u0000\u0000\u0461I\u0001\u0000\u0000\u0000\u0462\u0464\u0003\u00fc~\u0000"+
"\u0463\u0462\u0001\u0000\u0000\u0000\u0463\u0464\u0001\u0000\u0000\u0000"+
"\u0464\u0465\u0001\u0000\u0000\u0000\u0465\u0494\u0005a\u0000\u0000\u0466"+
"\u0468\u0003\u00fc~\u0000\u0467\u0466\u0001\u0000\u0000\u0000\u0467\u0468"+
"\u0001\u0000\u0000\u0000\u0468\u0469\u0001\u0000\u0000\u0000\u0469\u046d"+
"\u0005a\u0000\u0000\u046a\u046c\u0005\u0005\u0000\u0000\u046b\u046a\u0001"+
"\u0000\u0000\u0000\u046c\u046f\u0001\u0000\u0000\u0000\u046d\u046b\u0001"+
"\u0000\u0000\u0000\u046d\u046e\u0001\u0000\u0000\u0000\u046e\u0470\u0001"+
"\u0000\u0000\u0000\u046f\u046d\u0001\u0000\u0000\u0000\u0470\u0471\u0005"+
"\t\u0000\u0000\u0471\u0480\u0005\n\u0000\u0000\u0472\u0474\u0005\u0005"+
"\u0000\u0000\u0473\u0472\u0001\u0000\u0000\u0000\u0474\u0477\u0001\u0000"+
"\u0000\u0000\u0475\u0473\u0001\u0000\u0000\u0000\u0475\u0476\u0001\u0000"+
"\u0000\u0000\u0476\u0478\u0001\u0000\u0000\u0000\u0477\u0475\u0001\u0000"+
"\u0000\u0000\u0478\u047c\u0005\u0019\u0000\u0000\u0479\u047b\u0005\u0005"+
"\u0000\u0000\u047a\u0479\u0001\u0000\u0000\u0000\u047b\u047e\u0001\u0000"+
"\u0000\u0000\u047c\u047a\u0001\u0000\u0000\u0000\u047c\u047d\u0001\u0000"+
"\u0000\u0000\u047d\u047f\u0001\u0000\u0000\u0000\u047e\u047c\u0001\u0000"+
"\u0000\u0000\u047f\u0481\u0003T*\u0000\u0480\u0475\u0001\u0000\u0000\u0000"+
"\u0480\u0481\u0001\u0000\u0000\u0000\u0481\u0485\u0001\u0000\u0000\u0000"+
"\u0482\u0484\u0005\u0005\u0000\u0000\u0483\u0482\u0001\u0000\u0000\u0000"+
"\u0484\u0487\u0001\u0000\u0000\u0000\u0485\u0483\u0001\u0000\u0000\u0000"+
"\u0485\u0486\u0001\u0000\u0000\u0000\u0486\u0491\u0001\u0000\u0000\u0000"+
"\u0487\u0485\u0001\u0000\u0000\u0000\u0488\u0492\u0003l6\u0000\u0489\u048d"+
"\u0005\u001b\u0000\u0000\u048a\u048c\u0005\u0005\u0000\u0000\u048b\u048a"+
"\u0001\u0000\u0000\u0000\u048c\u048f\u0001\u0000\u0000\u0000\u048d\u048b"+
"\u0001\u0000\u0000\u0000\u048d\u048e\u0001\u0000\u0000\u0000\u048e\u0490"+
"\u0001\u0000\u0000\u0000\u048f\u048d\u0001\u0000\u0000\u0000\u0490\u0492"+
"\u0003v;\u0000\u0491\u0488\u0001\u0000\u0000\u0000\u0491\u0489\u0001\u0000"+
"\u0000\u0000\u0492\u0494\u0001\u0000\u0000\u0000\u0493\u0463\u0001\u0000"+
"\u0000\u0000\u0493\u0467\u0001\u0000\u0000\u0000\u0494K\u0001\u0000\u0000"+
"\u0000\u0495\u0497\u0003\u00fc~\u0000\u0496\u0495\u0001\u0000\u0000\u0000"+
"\u0496\u0497\u0001\u0000\u0000\u0000\u0497\u0498\u0001\u0000\u0000\u0000"+
"\u0498\u04b9\u0005b\u0000\u0000\u0499\u049b\u0003\u00fc~\u0000\u049a\u0499"+
"\u0001\u0000\u0000\u0000\u049a\u049b\u0001\u0000\u0000\u0000\u049b\u049c"+
"\u0001\u0000\u0000\u0000\u049c\u04a0\u0005b\u0000\u0000\u049d\u049f\u0005"+
"\u0005\u0000\u0000\u049e\u049d\u0001\u0000\u0000\u0000\u049f\u04a2\u0001"+
"\u0000\u0000\u0000\u04a0\u049e\u0001\u0000\u0000\u0000\u04a0\u04a1\u0001"+
"\u0000\u0000\u0000\u04a1\u04a3\u0001\u0000\u0000\u0000\u04a2\u04a0\u0001"+
"\u0000\u0000\u0000\u04a3\u04a8\u0005\t\u0000\u0000\u04a4\u04a7\u0003\u0114"+
"\u008a\u0000\u04a5\u04a7\u0003\u010e\u0087\u0000\u04a6\u04a4\u0001\u0000"+
"\u0000\u0000\u04a6\u04a5\u0001\u0000\u0000\u0000\u04a7\u04aa\u0001\u0000"+
"\u0000\u0000\u04a8\u04a6\u0001\u0000\u0000\u0000\u04a8\u04a9\u0001\u0000"+
"\u0000\u0000\u04a9\u04ad\u0001\u0000\u0000\u0000\u04aa\u04a8\u0001\u0000"+
"\u0000\u0000\u04ab\u04ae\u0003\u0120\u0090\u0000\u04ac\u04ae\u0003:\u001d"+
"\u0000\u04ad\u04ab\u0001\u0000\u0000\u0000\u04ad\u04ac\u0001\u0000\u0000"+
"\u0000\u04ae\u04af\u0001\u0000\u0000\u0000\u04af\u04b3\u0005\n\u0000\u0000"+
"\u04b0\u04b2\u0005\u0005\u0000\u0000\u04b1\u04b0\u0001\u0000\u0000\u0000"+
"\u04b2\u04b5\u0001\u0000\u0000\u0000\u04b3\u04b1\u0001\u0000\u0000\u0000"+
"\u04b3\u04b4\u0001\u0000\u0000\u0000\u04b4\u04b6\u0001\u0000\u0000\u0000"+
"\u04b5\u04b3\u0001\u0000\u0000\u0000\u04b6\u04b7\u0003>\u001f\u0000\u04b7"+
"\u04b9\u0001\u0000\u0000\u0000\u04b8\u0496\u0001\u0000\u0000\u0000\u04b8"+
"\u049a\u0001\u0000\u0000\u0000\u04b9M\u0001\u0000\u0000\u0000\u04ba\u04bc"+
"\u0003\u00fc~\u0000\u04bb\u04ba\u0001\u0000\u0000\u0000\u04bb\u04bc\u0001"+
"\u0000\u0000\u0000\u04bc\u04bd\u0001\u0000\u0000\u0000\u04bd\u04c1\u0005"+
"A\u0000\u0000\u04be\u04c0\u0005\u0005\u0000\u0000\u04bf\u04be\u0001\u0000"+
"\u0000\u0000\u04c0\u04c3\u0001\u0000\u0000\u0000\u04c1\u04bf\u0001\u0000"+
"\u0000\u0000\u04c1\u04c2\u0001\u0000\u0000\u0000\u04c2\u04c4\u0001\u0000"+
"\u0000\u0000\u04c3\u04c1\u0001\u0000\u0000\u0000\u04c4\u04cc\u0003\u0120"+
"\u0090\u0000\u04c5\u04c7\u0005\u0005\u0000\u0000\u04c6\u04c5\u0001\u0000"+
"\u0000\u0000\u04c7\u04ca\u0001\u0000\u0000\u0000\u04c8\u04c6\u0001\u0000"+
"\u0000\u0000\u04c8\u04c9\u0001\u0000\u0000\u0000\u04c9\u04cb\u0001\u0000"+
"\u0000\u0000\u04ca\u04c8\u0001\u0000\u0000\u0000\u04cb\u04cd\u0003P(\u0000"+
"\u04cc\u04c8\u0001\u0000\u0000\u0000\u04cc\u04cd\u0001\u0000\u0000\u0000"+
"\u04cd\u04d1\u0001\u0000\u0000\u0000\u04ce\u04d0\u0005\u0005\u0000\u0000"+
"\u04cf\u04ce\u0001\u0000\u0000\u0000\u04d0\u04d3\u0001\u0000\u0000\u0000"+
"\u04d1\u04cf\u0001\u0000\u0000\u0000\u04d1\u04d2\u0001\u0000\u0000\u0000"+
"\u04d2\u04d4\u0001\u0000\u0000\u0000\u04d3\u04d1\u0001\u0000\u0000\u0000"+
"\u04d4\u04d8\u0005\u001b\u0000\u0000\u04d5\u04d7\u0005\u0005\u0000\u0000"+
"\u04d6\u04d5\u0001\u0000\u0000\u0000\u04d7\u04da\u0001\u0000\u0000\u0000"+
"\u04d8\u04d6\u0001\u0000\u0000\u0000\u04d8\u04d9\u0001\u0000\u0000\u0000"+
"\u04d9\u04db\u0001\u0000\u0000\u0000\u04da\u04d8\u0001\u0000\u0000\u0000"+
"\u04db\u04dc\u0003T*\u0000\u04dcO\u0001\u0000\u0000\u0000\u04dd\u04e1"+
"\u0005+\u0000\u0000\u04de\u04e0\u0005\u0005\u0000\u0000\u04df\u04de\u0001"+
"\u0000\u0000\u0000\u04e0\u04e3\u0001\u0000\u0000\u0000\u04e1\u04df\u0001"+
"\u0000\u0000\u0000\u04e1\u04e2\u0001\u0000\u0000\u0000\u04e2\u04e4\u0001"+
"\u0000\u0000\u0000\u04e3\u04e1\u0001\u0000\u0000\u0000\u04e4\u04f5\u0003"+
"R)\u0000\u04e5\u04e7\u0005\u0005\u0000\u0000\u04e6\u04e5\u0001\u0000\u0000"+
"\u0000\u04e7\u04ea\u0001\u0000\u0000\u0000\u04e8\u04e6\u0001\u0000\u0000"+
"\u0000\u04e8\u04e9\u0001\u0000\u0000\u0000\u04e9\u04eb\u0001\u0000\u0000"+
"\u0000\u04ea\u04e8\u0001\u0000\u0000\u0000\u04eb\u04ef\u0005\b\u0000\u0000"+
"\u04ec\u04ee\u0005\u0005\u0000\u0000\u04ed\u04ec\u0001\u0000\u0000\u0000"+
"\u04ee\u04f1\u0001\u0000\u0000\u0000\u04ef\u04ed\u0001\u0000\u0000\u0000"+
"\u04ef\u04f0\u0001\u0000\u0000\u0000\u04f0\u04f2\u0001\u0000\u0000\u0000"+
"\u04f1\u04ef\u0001\u0000\u0000\u0000\u04f2\u04f4\u0003R)\u0000\u04f3\u04e8"+
"\u0001\u0000\u0000\u0000\u04f4\u04f7\u0001\u0000\u0000\u0000\u04f5\u04f3"+
"\u0001\u0000\u0000\u0000\u04f5\u04f6\u0001\u0000\u0000\u0000\u04f6\u04ff"+
"\u0001\u0000\u0000\u0000\u04f7\u04f5\u0001\u0000\u0000\u0000\u04f8\u04fa"+
"\u0005\u0005\u0000\u0000\u04f9\u04f8\u0001\u0000\u0000\u0000\u04fa\u04fd"+
"\u0001\u0000\u0000\u0000\u04fb\u04f9\u0001\u0000\u0000\u0000\u04fb\u04fc"+
"\u0001\u0000\u0000\u0000\u04fc\u04fe\u0001\u0000\u0000\u0000\u04fd\u04fb"+
"\u0001\u0000\u0000\u0000\u04fe\u0500\u0005\b\u0000\u0000\u04ff\u04fb\u0001"+
"\u0000\u0000\u0000\u04ff\u0500\u0001\u0000\u0000\u0000\u0500\u0504\u0001"+
"\u0000\u0000\u0000\u0501\u0503\u0005\u0005\u0000\u0000\u0502\u0501\u0001"+
"\u0000\u0000\u0000\u0503\u0506\u0001\u0000\u0000\u0000\u0504\u0502\u0001"+
"\u0000\u0000\u0000\u0504\u0505\u0001\u0000\u0000\u0000\u0505\u0507\u0001"+
"\u0000\u0000\u0000\u0506\u0504\u0001\u0000\u0000\u0000\u0507\u0508\u0005"+
",\u0000\u0000\u0508Q\u0001\u0000\u0000\u0000\u0509\u050b\u0003\u00fc~"+
"\u0000\u050a\u0509\u0001\u0000\u0000\u0000\u050a\u050b\u0001\u0000\u0000"+
"\u0000\u050b\u050f\u0001\u0000\u0000\u0000\u050c\u050e\u0005\u0005\u0000"+
"\u0000\u050d\u050c\u0001\u0000\u0000\u0000\u050e\u0511\u0001\u0000\u0000"+
"\u0000\u050f\u050d\u0001\u0000\u0000\u0000\u050f\u0510\u0001\u0000\u0000"+
"\u0000\u0510\u0514\u0001\u0000\u0000\u0000\u0511\u050f\u0001\u0000\u0000"+
"\u0000\u0512\u0515\u0003\u0120\u0090\u0000\u0513\u0515\u0005\u000f\u0000"+
"\u0000\u0514\u0512\u0001\u0000\u0000\u0000\u0514\u0513\u0001\u0000\u0000"+
"\u0000\u0515\u0524\u0001\u0000\u0000\u0000\u0516\u0518\u0005\u0005\u0000"+
"\u0000\u0517\u0516\u0001\u0000\u0000\u0000\u0518\u051b\u0001\u0000\u0000"+
"\u0000\u0519\u0517\u0001\u0000\u0000\u0000\u0519\u051a\u0001\u0000\u0000"+
"\u0000\u051a\u051c\u0001\u0000\u0000\u0000\u051b\u0519\u0001\u0000\u0000"+
"\u0000\u051c\u0520\u0005\u0019\u0000\u0000\u051d\u051f\u0005\u0005\u0000"+
"\u0000\u051e\u051d\u0001\u0000\u0000\u0000\u051f\u0522\u0001\u0000\u0000"+
"\u0000\u0520\u051e\u0001\u0000\u0000\u0000\u0520\u0521\u0001\u0000\u0000"+
"\u0000\u0521\u0523\u0001\u0000\u0000\u0000\u0522\u0520\u0001\u0000\u0000"+
"\u0000\u0523\u0525\u0003T*\u0000\u0524\u0519\u0001\u0000\u0000\u0000\u0524"+
"\u0525\u0001\u0000\u0000\u0000\u0525S\u0001\u0000\u0000\u0000\u0526\u0528"+
"\u0003V+\u0000\u0527\u0526\u0001\u0000\u0000\u0000\u0527\u0528\u0001\u0000"+
"\u0000\u0000\u0528\u052d\u0001\u0000\u0000\u0000\u0529\u052e\u0003^/\u0000"+
"\u052a\u052e\u0003X,\u0000\u052b\u052e\u0003Z-\u0000\u052c\u052e\u0003"+
"\\.\u0000\u052d\u0529\u0001\u0000\u0000\u0000\u052d\u052a\u0001\u0000"+
"\u0000\u0000\u052d\u052b\u0001\u0000\u0000\u0000\u052d\u052c\u0001\u0000"+
"\u0000\u0000\u052eU\u0001\u0000\u0000\u0000\u052f\u0538\u0003\u0114\u008a"+
"\u0000\u0530\u0534\u0005v\u0000\u0000\u0531\u0533\u0005\u0005\u0000\u0000"+
"\u0532\u0531\u0001\u0000\u0000\u0000\u0533\u0536\u0001\u0000\u0000\u0000"+
"\u0534\u0532\u0001\u0000\u0000\u0000\u0534\u0535\u0001\u0000\u0000\u0000"+
"\u0535\u0538\u0001\u0000\u0000\u0000\u0536\u0534\u0001\u0000\u0000\u0000"+
"\u0537\u052f\u0001\u0000\u0000\u0000\u0537\u0530\u0001\u0000\u0000\u0000"+
"\u0538\u0539\u0001\u0000\u0000\u0000\u0539\u0537\u0001\u0000\u0000\u0000"+
"\u0539\u053a\u0001\u0000\u0000\u0000\u053aW\u0001\u0000\u0000\u0000\u053b"+
"\u053c\u0005\t\u0000\u0000\u053c\u053d\u0003T*\u0000\u053d\u053e\u0005"+
"\n\u0000\u0000\u053eY\u0001\u0000\u0000\u0000\u053f\u0542\u0003\\.\u0000"+
"\u0540\u0542\u0003X,\u0000\u0541\u053f\u0001\u0000\u0000\u0000\u0541\u0540"+
"\u0001\u0000\u0000\u0000\u0542\u0546\u0001\u0000\u0000\u0000\u0543\u0545"+
"\u0005\u0005\u0000\u0000\u0544\u0543\u0001\u0000\u0000\u0000\u0545\u0548"+
"\u0001\u0000\u0000\u0000\u0546\u0544\u0001\u0000\u0000\u0000\u0546\u0547"+
"\u0001\u0000\u0000\u0000\u0547\u054a\u0001\u0000\u0000\u0000\u0548\u0546"+
"\u0001\u0000\u0000\u0000\u0549\u054b\u0005)\u0000\u0000\u054a\u0549\u0001"+
"\u0000\u0000\u0000\u054b\u054c\u0001\u0000\u0000\u0000\u054c\u054a\u0001"+
"\u0000\u0000\u0000\u054c\u054d\u0001\u0000\u0000\u0000\u054d[\u0001\u0000"+
"\u0000\u0000\u054e\u054f\u0005\t\u0000\u0000\u054f\u0550\u0003\\.\u0000"+
"\u0550\u0551\u0005\n\u0000\u0000\u0551\u0555\u0001\u0000\u0000\u0000\u0552"+
"\u0555\u0003b1\u0000\u0553\u0555\u0005g\u0000\u0000\u0554\u054e\u0001"+
"\u0000\u0000\u0000\u0554\u0552\u0001\u0000\u0000\u0000\u0554\u0553\u0001"+
"\u0000\u0000\u0000\u0555]\u0001\u0000\u0000\u0000\u0556\u055a\u0003`0"+
"\u0000\u0557\u0559\u0005\u0005\u0000\u0000\u0558\u0557\u0001\u0000\u0000"+
"\u0000\u0559\u055c\u0001\u0000\u0000\u0000\u055a\u0558\u0001\u0000\u0000"+
"\u0000\u055a\u055b\u0001\u0000\u0000\u0000\u055b\u055d\u0001\u0000\u0000"+
"\u0000\u055c\u055a\u0001\u0000\u0000\u0000\u055d\u0561\u0005\u0007\u0000"+
"\u0000\u055e\u0560\u0005\u0005\u0000\u0000\u055f\u055e\u0001\u0000\u0000"+
"\u0000\u0560\u0563\u0001\u0000\u0000\u0000\u0561\u055f\u0001\u0000\u0000"+
"\u0000\u0561\u0562\u0001\u0000\u0000\u0000\u0562\u0565\u0001\u0000\u0000"+
"\u0000\u0563\u0561\u0001\u0000\u0000\u0000\u0564\u0556\u0001\u0000\u0000"+
"\u0000\u0564\u0565\u0001\u0000\u0000\u0000\u0565\u0566\u0001\u0000\u0000"+
"\u0000\u0566\u056a\u0003f3\u0000\u0567\u0569\u0005\u0005\u0000\u0000\u0568"+
"\u0567\u0001\u0000\u0000\u0000\u0569\u056c\u0001\u0000\u0000\u0000\u056a"+
"\u0568\u0001\u0000\u0000\u0000\u056a\u056b\u0001\u0000\u0000\u0000\u056b"+
"\u056d\u0001\u0000\u0000\u0000\u056c\u056a\u0001\u0000\u0000\u0000\u056d"+
"\u0571\u0005!\u0000\u0000\u056e\u0570\u0005\u0005\u0000\u0000\u056f\u056e"+
"\u0001\u0000\u0000\u0000\u0570\u0573\u0001\u0000\u0000\u0000\u0571\u056f"+
"\u0001\u0000\u0000\u0000\u0571\u0572\u0001\u0000\u0000\u0000\u0572\u0574"+
"\u0001\u0000\u0000\u0000\u0573\u0571\u0001\u0000\u0000\u0000\u0574\u0575"+
"\u0003T*\u0000\u0575_\u0001\u0000\u0000\u0000\u0576\u057a\u0003X,\u0000"+
"\u0577\u057a\u0003Z-\u0000\u0578\u057a\u0003\\.\u0000\u0579\u0576\u0001"+
"\u0000\u0000\u0000\u0579\u0577\u0001\u0000\u0000\u0000\u0579\u0578\u0001"+
"\u0000\u0000\u0000\u057aa\u0001\u0000\u0000\u0000\u057b\u058c\u0003d2"+
"\u0000\u057c\u057e\u0005\u0005\u0000\u0000\u057d\u057c\u0001\u0000\u0000"+
"\u0000\u057e\u0581\u0001\u0000\u0000\u0000\u057f\u057d\u0001\u0000\u0000"+
"\u0000\u057f\u0580\u0001\u0000\u0000\u0000\u0580\u0582\u0001\u0000\u0000"+
"\u0000\u0581\u057f\u0001\u0000\u0000\u0000\u0582\u0586\u0005\u0007\u0000"+
"\u0000\u0583\u0585\u0005\u0005\u0000\u0000\u0584\u0583\u0001\u0000\u0000"+
"\u0000\u0585\u0588\u0001\u0000\u0000\u0000\u0586\u0584\u0001\u0000\u0000"+
"\u0000\u0586\u0587\u0001\u0000\u0000\u0000\u0587\u0589\u0001\u0000\u0000"+
"\u0000\u0588\u0586\u0001\u0000\u0000\u0000\u0589\u058b\u0003d2\u0000\u058a"+
"\u057f\u0001\u0000\u0000\u0000\u058b\u058e\u0001\u0000\u0000\u0000\u058c"+
"\u058a\u0001\u0000\u0000\u0000\u058c\u058d\u0001\u0000\u0000\u0000\u058d"+
"c\u0001\u0000\u0000\u0000\u058e\u058c\u0001\u0000\u0000\u0000\u058f\u0597"+
"\u0003\u0120\u0090\u0000\u0590\u0592\u0005\u0005\u0000\u0000\u0591\u0590"+
"\u0001\u0000\u0000\u0000\u0592\u0595\u0001\u0000\u0000\u0000\u0593\u0591"+
"\u0001\u0000\u0000\u0000\u0593\u0594\u0001\u0000\u0000\u0000\u0594\u0596"+
"\u0001\u0000\u0000\u0000\u0595\u0593\u0001\u0000\u0000\u0000\u0596\u0598"+
"\u0003\u009eO\u0000\u0597\u0593\u0001\u0000\u0000\u0000\u0597\u0598\u0001"+
"\u0000\u0000\u0000\u0598e\u0001\u0000\u0000\u0000\u0599\u059d\u0005\t"+
"\u0000\u0000\u059a\u059c\u0005\u0005\u0000\u0000\u059b\u059a\u0001\u0000"+
"\u0000\u0000\u059c\u059f\u0001\u0000\u0000\u0000\u059d\u059b\u0001\u0000"+
"\u0000\u0000\u059d\u059e\u0001\u0000\u0000\u0000\u059e\u05a2\u0001\u0000"+
"\u0000\u0000\u059f\u059d\u0001\u0000\u0000\u0000\u05a0\u05a3\u0003:\u001d"+
"\u0000\u05a1\u05a3\u0003T*\u0000\u05a2\u05a0\u0001\u0000\u0000\u0000\u05a2"+
"\u05a1\u0001\u0000\u0000\u0000\u05a2\u05a3\u0001\u0000\u0000\u0000\u05a3"+
"\u05b7\u0001\u0000\u0000\u0000\u05a4\u05a6\u0005\u0005\u0000\u0000\u05a5"+
"\u05a4\u0001\u0000\u0000\u0000\u05a6\u05a9\u0001\u0000\u0000\u0000\u05a7"+
"\u05a5\u0001\u0000\u0000\u0000\u05a7\u05a8\u0001\u0000\u0000\u0000\u05a8"+
"\u05aa\u0001\u0000\u0000\u0000\u05a9\u05a7\u0001\u0000\u0000\u0000\u05aa"+
"\u05ae\u0005\b\u0000\u0000\u05ab\u05ad\u0005\u0005\u0000\u0000\u05ac\u05ab"+
"\u0001\u0000\u0000\u0000\u05ad\u05b0\u0001\u0000\u0000\u0000\u05ae\u05ac"+
"\u0001\u0000\u0000\u0000\u05ae\u05af\u0001\u0000\u0000\u0000\u05af\u05b3"+
"\u0001\u0000\u0000\u0000\u05b0\u05ae\u0001\u0000\u0000\u0000\u05b1\u05b4"+
"\u0003:\u001d\u0000\u05b2\u05b4\u0003T*\u0000\u05b3\u05b1\u0001\u0000"+
"\u0000\u0000\u05b3\u05b2\u0001\u0000\u0000\u0000\u05b4\u05b6\u0001\u0000"+
"\u0000\u0000\u05b5\u05a7\u0001\u0000\u0000\u0000\u05b6\u05b9\u0001\u0000"+
"\u0000\u0000\u05b7\u05b5\u0001\u0000\u0000\u0000\u05b7\u05b8\u0001\u0000"+
"\u0000\u0000\u05b8\u05c1\u0001\u0000\u0000\u0000\u05b9\u05b7\u0001\u0000"+
"\u0000\u0000\u05ba\u05bc\u0005\u0005\u0000\u0000\u05bb\u05ba\u0001\u0000"+
"\u0000\u0000\u05bc\u05bf\u0001\u0000\u0000\u0000\u05bd\u05bb\u0001\u0000"+
"\u0000\u0000\u05bd\u05be\u0001\u0000\u0000\u0000\u05be\u05c0\u0001\u0000"+
"\u0000\u0000\u05bf\u05bd\u0001\u0000\u0000\u0000\u05c0\u05c2\u0005\b\u0000"+
"\u0000\u05c1\u05bd\u0001\u0000\u0000\u0000\u05c1\u05c2\u0001\u0000\u0000"+
"\u0000\u05c2\u05c6\u0001\u0000\u0000\u0000\u05c3\u05c5\u0005\u0005\u0000"+
"\u0000\u05c4\u05c3\u0001\u0000\u0000\u0000\u05c5\u05c8\u0001\u0000\u0000"+
"\u0000\u05c6\u05c4\u0001\u0000\u0000\u0000\u05c6\u05c7\u0001\u0000\u0000"+
"\u0000\u05c7\u05c9\u0001\u0000\u0000\u0000\u05c8\u05c6\u0001\u0000\u0000"+
"\u0000\u05c9\u05ca\u0005\n\u0000\u0000\u05cag\u0001\u0000\u0000\u0000"+
"\u05cb\u05cf\u0005I\u0000\u0000\u05cc\u05ce\u0005\u0005\u0000\u0000\u05cd"+
"\u05cc\u0001\u0000\u0000\u0000\u05ce\u05d1\u0001\u0000\u0000\u0000\u05cf"+
"\u05cd\u0001\u0000\u0000\u0000\u05cf\u05d0\u0001\u0000\u0000\u0000\u05d0"+
"\u05d2\u0001\u0000\u0000\u0000\u05d1\u05cf\u0001\u0000\u0000\u0000\u05d2"+
"\u05e3\u0003j5\u0000\u05d3\u05d5\u0005\u0005\u0000\u0000\u05d4\u05d3\u0001"+
"\u0000\u0000\u0000\u05d5\u05d8\u0001\u0000\u0000\u0000\u05d6\u05d4\u0001"+
"\u0000\u0000\u0000\u05d6\u05d7\u0001\u0000\u0000\u0000\u05d7\u05d9\u0001"+
"\u0000\u0000\u0000\u05d8\u05d6\u0001\u0000\u0000\u0000\u05d9\u05dd\u0005"+
"\b\u0000\u0000\u05da\u05dc\u0005\u0005\u0000\u0000\u05db\u05da\u0001\u0000"+
"\u0000\u0000\u05dc\u05df\u0001\u0000\u0000\u0000\u05dd\u05db\u0001\u0000"+
"\u0000\u0000\u05dd\u05de\u0001\u0000\u0000\u0000\u05de\u05e0\u0001\u0000"+
"\u0000\u0000\u05df\u05dd\u0001\u0000\u0000\u0000\u05e0\u05e2\u0003j5\u0000"+
"\u05e1\u05d6\u0001\u0000\u0000\u0000\u05e2\u05e5\u0001\u0000\u0000\u0000"+
"\u05e3\u05e1\u0001\u0000\u0000\u0000\u05e3\u05e4\u0001\u0000\u0000\u0000"+
"\u05e4i\u0001\u0000\u0000\u0000\u05e5\u05e3\u0001\u0000\u0000\u0000\u05e6"+
"\u05e8\u0003\u0114\u008a\u0000\u05e7\u05e6\u0001\u0000\u0000\u0000\u05e8"+
"\u05eb\u0001\u0000\u0000\u0000\u05e9\u05e7\u0001\u0000\u0000\u0000\u05e9"+
"\u05ea\u0001\u0000\u0000\u0000\u05ea\u05ec\u0001\u0000\u0000\u0000\u05eb"+
"\u05e9\u0001\u0000\u0000\u0000\u05ec\u05f0\u0003\u0120\u0090\u0000\u05ed"+
"\u05ef\u0005\u0005\u0000\u0000\u05ee\u05ed\u0001\u0000\u0000\u0000\u05ef"+
"\u05f2\u0001\u0000\u0000\u0000\u05f0\u05ee\u0001\u0000\u0000\u0000\u05f0"+
"\u05f1\u0001\u0000\u0000\u0000\u05f1\u05f3\u0001\u0000\u0000\u0000\u05f2"+
"\u05f0\u0001\u0000\u0000\u0000\u05f3\u05f7\u0005\u0019\u0000\u0000\u05f4"+
"\u05f6\u0005\u0005\u0000\u0000\u05f5\u05f4\u0001\u0000\u0000\u0000\u05f6"+
"\u05f9\u0001\u0000\u0000\u0000\u05f7\u05f5\u0001\u0000\u0000\u0000\u05f7"+
"\u05f8\u0001\u0000\u0000\u0000\u05f8\u05fa\u0001\u0000\u0000\u0000\u05f9"+
"\u05f7\u0001\u0000\u0000\u0000\u05fa\u05fb\u0003T*\u0000\u05fbk\u0001"+
"\u0000\u0000\u0000\u05fc\u05fd\u0005\r\u0000\u0000\u05fd\u05fe\u0003n"+
"7\u0000\u05fe\u05ff\u0005\u000e\u0000\u0000\u05ffm\u0001\u0000\u0000\u0000"+
"\u0600\u0602\u0003\u0124\u0092\u0000\u0601\u0600\u0001\u0000\u0000\u0000"+
"\u0602\u0605\u0001\u0000\u0000\u0000\u0603\u0601\u0001\u0000\u0000\u0000"+
"\u0603\u0604\u0001\u0000\u0000\u0000\u0604\u0614\u0001\u0000\u0000\u0000"+
"\u0605\u0603\u0001\u0000\u0000\u0000\u0606\u0611\u0003p8\u0000\u0607\u0609"+
"\u0003\u0124\u0092\u0000\u0608\u0607\u0001\u0000\u0000\u0000\u0609\u060a"+
"\u0001\u0000\u0000\u0000\u060a\u0608\u0001\u0000\u0000\u0000\u060a\u060b"+
"\u0001\u0000\u0000\u0000\u060b\u060d\u0001\u0000\u0000\u0000\u060c\u060e"+
"\u0003p8\u0000\u060d\u060c\u0001\u0000\u0000\u0000\u060d\u060e\u0001\u0000"+
"\u0000\u0000\u060e\u0610\u0001\u0000\u0000\u0000\u060f\u0608\u0001\u0000"+
"\u0000\u0000\u0610\u0613\u0001\u0000\u0000\u0000\u0611\u060f\u0001\u0000"+
"\u0000\u0000\u0611\u0612\u0001\u0000\u0000\u0000\u0612\u0615\u0001\u0000"+
"\u0000\u0000\u0613\u0611\u0001\u0000\u0000\u0000\u0614\u0606\u0001\u0000"+
"\u0000\u0000\u0614\u0615\u0001\u0000\u0000\u0000\u0615o\u0001\u0000\u0000"+
"\u0000\u0616\u0619\u0003t:\u0000\u0617\u0619\u0003r9\u0000\u0618\u0616"+
"\u0001\u0000\u0000\u0000\u0618\u0617\u0001\u0000\u0000\u0000\u0619q\u0001"+
"\u0000\u0000\u0000\u061a\u061c\u0003\u0114\u008a\u0000\u061b\u061a\u0001"+
"\u0000\u0000\u0000\u061c\u061f\u0001\u0000\u0000\u0000\u061d\u061b\u0001"+
"\u0000\u0000\u0000\u061d\u061e\u0001\u0000\u0000\u0000\u061e\u0623\u0001"+
"\u0000\u0000\u0000\u061f\u061d\u0001\u0000\u0000\u0000\u0620\u0622\u0005"+
"\u0005\u0000\u0000\u0621\u0620\u0001\u0000\u0000\u0000\u0622\u0625\u0001"+
"\u0000\u0000\u0000\u0623\u0621\u0001\u0000\u0000\u0000\u0623\u0624\u0001"+
"\u0000\u0000\u0000\u0624\u0626\u0001\u0000\u0000\u0000\u0625\u0623\u0001"+
"\u0000\u0000\u0000\u0626\u0627\u0003v;\u0000\u0627s\u0001\u0000\u0000"+
"\u0000\u0628\u062a\u0003\u0112\u0089\u0000\u0629\u0628\u0001\u0000\u0000"+
"\u0000\u062a\u062d\u0001\u0000\u0000\u0000\u062b\u0629\u0001\u0000\u0000"+
"\u0000\u062b\u062c\u0001\u0000\u0000\u0000\u062c\u0632\u0001\u0000\u0000"+
"\u0000\u062d\u062b\u0001\u0000\u0000\u0000\u062e\u0633\u0003\u0014\n\u0000"+
"\u062f\u0633\u00034\u001a\u0000\u0630\u0633\u0003D\"\u0000\u0631\u0633"+
"\u0003N\'\u0000\u0632\u062e\u0001\u0000\u0000\u0000\u0632\u062f\u0001"+
"\u0000\u0000\u0000\u0632\u0630\u0001\u0000\u0000\u0000\u0632\u0631\u0001"+
"\u0000\u0000\u0000\u0633u\u0001\u0000\u0000\u0000\u0634\u063a\u0003x<"+
"\u0000\u0635\u0636\u0003\u00e6s\u0000\u0636\u0637\u0003x<\u0000\u0637"+
"\u0639\u0001\u0000\u0000\u0000\u0638\u0635\u0001\u0000\u0000\u0000\u0639"+
"\u063c\u0001\u0000\u0000\u0000\u063a\u0638\u0001\u0000\u0000\u0000\u063a"+
"\u063b\u0001\u0000\u0000\u0000\u063bw\u0001\u0000\u0000\u0000\u063c\u063a"+
"\u0001\u0000\u0000\u0000\u063d\u064e\u0003z=\u0000\u063e\u0640\u0005\u0005"+
"\u0000\u0000\u063f\u063e\u0001\u0000\u0000\u0000\u0640\u0643\u0001\u0000"+
"\u0000\u0000\u0641\u063f\u0001\u0000\u0000\u0000\u0641\u0642\u0001\u0000"+
"\u0000\u0000\u0642\u0644\u0001\u0000\u0000\u0000\u0643\u0641\u0001\u0000"+
"\u0000\u0000\u0644\u0648\u0005\u0017\u0000\u0000\u0645\u0647\u0005\u0005"+
"\u0000\u0000\u0646\u0645\u0001\u0000\u0000\u0000\u0647\u064a\u0001\u0000"+
"\u0000\u0000\u0648\u0646\u0001\u0000\u0000\u0000\u0648\u0649\u0001\u0000"+
"\u0000\u0000\u0649\u064b\u0001\u0000\u0000\u0000\u064a\u0648\u0001\u0000"+
"\u0000\u0000\u064b\u064d\u0003z=\u0000\u064c\u0641\u0001\u0000\u0000\u0000"+
"\u064d\u0650\u0001\u0000\u0000\u0000\u064e\u064c\u0001\u0000\u0000\u0000"+
"\u064e\u064f\u0001\u0000\u0000\u0000\u064fy\u0001\u0000\u0000\u0000\u0650"+
"\u064e\u0001\u0000\u0000\u0000\u0651\u0662\u0003|>\u0000\u0652\u0654\u0005"+
"\u0005\u0000\u0000\u0653\u0652\u0001\u0000\u0000\u0000\u0654\u0657\u0001"+
"\u0000\u0000\u0000\u0655\u0653\u0001\u0000\u0000\u0000\u0655\u0656\u0001"+
"\u0000\u0000\u0000\u0656\u0658\u0001\u0000\u0000\u0000\u0657\u0655\u0001"+
"\u0000\u0000\u0000\u0658\u065c\u0005\u0016\u0000\u0000\u0659\u065b\u0005"+
"\u0005\u0000\u0000\u065a\u0659\u0001\u0000\u0000\u0000\u065b\u065e\u0001"+
"\u0000\u0000\u0000\u065c\u065a\u0001\u0000\u0000\u0000\u065c\u065d\u0001"+
"\u0000\u0000\u0000\u065d\u065f\u0001\u0000\u0000\u0000\u065e\u065c\u0001"+
"\u0000\u0000\u0000\u065f\u0661\u0003|>\u0000\u0660\u0655\u0001\u0000\u0000"+
"\u0000\u0661\u0664\u0001\u0000\u0000\u0000\u0662\u0660\u0001\u0000\u0000"+
"\u0000\u0662\u0663\u0001\u0000\u0000\u0000\u0663{\u0001\u0000\u0000\u0000"+
"\u0664\u0662\u0001\u0000\u0000\u0000\u0665\u0671\u0003~?\u0000\u0666\u066a"+
"\u0003\u00e8t\u0000\u0667\u0669\u0005\u0005\u0000\u0000\u0668\u0667\u0001"+
"\u0000\u0000\u0000\u0669\u066c\u0001\u0000\u0000\u0000\u066a\u0668\u0001"+
"\u0000\u0000\u0000\u066a\u066b\u0001\u0000\u0000\u0000\u066b\u066d\u0001"+
"\u0000\u0000\u0000\u066c\u066a\u0001\u0000\u0000\u0000\u066d\u066e\u0003"+
"~?\u0000\u066e\u0670\u0001\u0000\u0000\u0000\u066f\u0666\u0001\u0000\u0000"+
"\u0000\u0670\u0673\u0001\u0000\u0000\u0000\u0671\u066f\u0001\u0000\u0000"+
"\u0000\u0671\u0672\u0001\u0000\u0000\u0000\u0672}\u0001\u0000\u0000\u0000"+
"\u0673\u0671\u0001\u0000\u0000\u0000\u0674\u067e\u0003\u0080@\u0000\u0675"+
"\u0679\u0003\u00eau\u0000\u0676\u0678\u0005\u0005\u0000\u0000\u0677\u0676"+
"\u0001\u0000\u0000\u0000\u0678\u067b\u0001\u0000\u0000\u0000\u0679\u0677"+
"\u0001\u0000\u0000\u0000\u0679\u067a\u0001\u0000\u0000\u0000\u067a\u067c"+
"\u0001\u0000\u0000\u0000\u067b\u0679\u0001\u0000\u0000\u0000\u067c\u067d"+
"\u0003\u0080@\u0000\u067d\u067f\u0001\u0000\u0000\u0000\u067e\u0675\u0001"+
"\u0000\u0000\u0000\u067e\u067f\u0001\u0000\u0000\u0000\u067f\u007f\u0001"+
"\u0000\u0000\u0000\u0680\u0697\u0003\u0082A\u0000\u0681\u0685\u0003\u00ec"+
"v\u0000\u0682\u0684\u0005\u0005\u0000\u0000\u0683\u0682\u0001\u0000\u0000"+
"\u0000\u0684\u0687\u0001\u0000\u0000\u0000\u0685\u0683\u0001\u0000\u0000"+
"\u0000\u0685\u0686\u0001\u0000\u0000\u0000\u0686\u0688\u0001\u0000\u0000"+
"\u0000\u0687\u0685\u0001\u0000\u0000\u0000\u0688\u0689\u0003\u0082A\u0000"+
"\u0689\u068b\u0001\u0000\u0000\u0000\u068a\u0681\u0001\u0000\u0000\u0000"+
"\u068b\u068c\u0001\u0000\u0000\u0000\u068c\u068a\u0001\u0000\u0000\u0000"+
"\u068c\u068d\u0001\u0000\u0000\u0000\u068d\u0698\u0001\u0000\u0000\u0000"+
"\u068e\u0692\u0003\u00eew\u0000\u068f\u0691\u0005\u0005\u0000\u0000\u0690"+
"\u068f\u0001\u0000\u0000\u0000\u0691\u0694\u0001\u0000\u0000\u0000\u0692"+
"\u0690\u0001\u0000\u0000\u0000\u0692\u0693\u0001\u0000\u0000\u0000\u0693"+
"\u0695\u0001\u0000\u0000\u0000\u0694\u0692\u0001\u0000\u0000\u0000\u0695"+
"\u0696\u0003T*\u0000\u0696\u0698\u0001\u0000\u0000\u0000\u0697\u068a\u0001"+
"\u0000\u0000\u0000\u0697\u068e\u0001\u0000\u0000\u0000\u0697\u0698\u0001"+
"\u0000\u0000\u0000\u0698\u0081\u0001\u0000\u0000\u0000\u0699\u06aa\u0003"+
"\u0084B\u0000\u069a\u069c\u0005\u0005\u0000\u0000\u069b\u069a\u0001\u0000"+
"\u0000\u0000\u069c\u069f\u0001\u0000\u0000\u0000\u069d\u069b\u0001\u0000"+
"\u0000\u0000\u069d\u069e\u0001\u0000\u0000\u0000\u069e\u06a0\u0001\u0000"+
"\u0000\u0000\u069f\u069d\u0001\u0000\u0000\u0000\u06a0\u06a4\u0005*\u0000"+
"\u0000\u06a1\u06a3\u0005\u0005\u0000\u0000\u06a2\u06a1\u0001\u0000\u0000"+
"\u0000\u06a3\u06a6\u0001\u0000\u0000\u0000\u06a4\u06a2\u0001\u0000\u0000"+
"\u0000\u06a4\u06a5\u0001\u0000\u0000\u0000\u06a5\u06a7\u0001\u0000\u0000"+
"\u0000\u06a6\u06a4\u0001\u0000\u0000\u0000\u06a7\u06a9\u0003\u0084B\u0000"+
"\u06a8\u069d\u0001\u0000\u0000\u0000\u06a9\u06ac\u0001\u0000\u0000\u0000"+
"\u06aa\u06a8\u0001\u0000\u0000\u0000\u06aa\u06ab\u0001\u0000\u0000\u0000"+
"\u06ab\u0083\u0001\u0000\u0000\u0000\u06ac\u06aa\u0001\u0000\u0000\u0000"+
"\u06ad\u06b9\u0003\u0086C\u0000\u06ae\u06b2\u0003\u0120\u0090\u0000\u06af"+
"\u06b1\u0005\u0005\u0000\u0000\u06b0\u06af\u0001\u0000\u0000\u0000\u06b1"+
"\u06b4\u0001\u0000\u0000\u0000\u06b2\u06b0\u0001\u0000\u0000\u0000\u06b2"+
"\u06b3\u0001\u0000\u0000\u0000\u06b3\u06b5\u0001\u0000\u0000\u0000\u06b4"+
"\u06b2\u0001\u0000\u0000\u0000\u06b5\u06b6\u0003\u0086C\u0000\u06b6\u06b8"+
"\u0001\u0000\u0000\u0000\u06b7\u06ae\u0001\u0000\u0000\u0000\u06b8\u06bb"+
"\u0001\u0000\u0000\u0000\u06b9\u06b7\u0001\u0000\u0000\u0000\u06b9\u06ba"+
"\u0001\u0000\u0000\u0000\u06ba\u0085\u0001\u0000\u0000\u0000\u06bb\u06b9"+
"\u0001\u0000\u0000\u0000\u06bc\u06c7\u0003\u0088D\u0000\u06bd\u06c1\u0005"+
"#\u0000\u0000\u06be\u06c0\u0005\u0005\u0000\u0000\u06bf\u06be\u0001\u0000"+
"\u0000\u0000\u06c0\u06c3\u0001\u0000\u0000\u0000\u06c1\u06bf\u0001\u0000"+
"\u0000\u0000\u06c1\u06c2\u0001\u0000\u0000\u0000\u06c2\u06c4\u0001\u0000"+
"\u0000\u0000\u06c3\u06c1\u0001\u0000\u0000\u0000\u06c4\u06c6\u0003\u0088"+
"D\u0000\u06c5\u06bd\u0001\u0000\u0000\u0000\u06c6\u06c9\u0001\u0000\u0000"+
"\u0000\u06c7\u06c5\u0001\u0000\u0000\u0000\u06c7\u06c8\u0001\u0000\u0000"+
"\u0000\u06c8\u0087\u0001\u0000\u0000\u0000\u06c9\u06c7\u0001\u0000\u0000"+
"\u0000\u06ca\u06d6\u0003\u008aE\u0000\u06cb\u06cf\u0003\u00f0x\u0000\u06cc"+
"\u06ce\u0005\u0005\u0000\u0000\u06cd\u06cc\u0001\u0000\u0000\u0000\u06ce"+
"\u06d1\u0001\u0000\u0000\u0000\u06cf\u06cd\u0001\u0000\u0000\u0000\u06cf"+
"\u06d0\u0001\u0000\u0000\u0000\u06d0\u06d2\u0001\u0000\u0000\u0000\u06d1"+
"\u06cf\u0001\u0000\u0000\u0000\u06d2\u06d3\u0003\u008aE\u0000\u06d3\u06d5"+
"\u0001\u0000\u0000\u0000\u06d4\u06cb\u0001\u0000\u0000\u0000\u06d5\u06d8"+
"\u0001\u0000\u0000\u0000\u06d6\u06d4\u0001\u0000\u0000\u0000\u06d6\u06d7"+
"\u0001\u0000\u0000\u0000\u06d7\u0089\u0001\u0000\u0000\u0000\u06d8\u06d6"+
"\u0001\u0000\u0000\u0000\u06d9\u06e5\u0003\u008cF\u0000\u06da\u06de\u0003"+
"\u00f2y\u0000\u06db\u06dd\u0005\u0005\u0000\u0000\u06dc\u06db\u0001\u0000"+
"\u0000\u0000\u06dd\u06e0\u0001\u0000\u0000\u0000\u06de\u06dc\u0001\u0000"+
"\u0000\u0000\u06de\u06df\u0001\u0000\u0000\u0000\u06df\u06e1\u0001\u0000"+
"\u0000\u0000\u06e0\u06de\u0001\u0000\u0000\u0000\u06e1\u06e2\u0003\u008c"+
"F\u0000\u06e2\u06e4\u0001\u0000\u0000\u0000\u06e3\u06da\u0001\u0000\u0000"+
"\u0000\u06e4\u06e7\u0001\u0000\u0000\u0000\u06e5\u06e3\u0001\u0000\u0000"+
"\u0000\u06e5\u06e6\u0001\u0000\u0000\u0000\u06e6\u008b\u0001\u0000\u0000"+
"\u0000\u06e7\u06e5\u0001\u0000\u0000\u0000\u06e8\u06f4\u0003\u008eG\u0000"+
"\u06e9\u06eb\u0005\u0005\u0000\u0000\u06ea\u06e9\u0001\u0000\u0000\u0000"+
"\u06eb\u06ee\u0001\u0000\u0000\u0000\u06ec\u06ea\u0001\u0000\u0000\u0000"+
"\u06ec\u06ed\u0001\u0000\u0000\u0000\u06ed\u06ef\u0001\u0000\u0000\u0000"+
"\u06ee\u06ec\u0001\u0000\u0000\u0000\u06ef\u06f0\u0003\u00f4z\u0000\u06f0"+
"\u06f1\u0003\u008eG\u0000\u06f1\u06f3\u0001\u0000\u0000\u0000\u06f2\u06ec"+
"\u0001\u0000\u0000\u0000\u06f3\u06f6\u0001\u0000\u0000\u0000\u06f4\u06f2"+
"\u0001\u0000\u0000\u0000\u06f4\u06f5\u0001\u0000\u0000\u0000\u06f5\u008d"+
"\u0001\u0000\u0000\u0000\u06f6\u06f4\u0001\u0000\u0000\u0000\u06f7\u06f9"+
"\u0003\u00f6{\u0000\u06f8\u06f7\u0001\u0000\u0000\u0000\u06f9\u06fc\u0001"+
"\u0000\u0000\u0000\u06fa\u06f8\u0001\u0000\u0000\u0000\u06fa\u06fb\u0001"+
"\u0000\u0000\u0000\u06fb\u06fd\u0001\u0000\u0000\u0000\u06fc\u06fa\u0001"+
"\u0000\u0000\u0000\u06fd\u06fe\u0003\u0090H\u0000\u06fe\u008f\u0001\u0000"+
"\u0000\u0000\u06ff\u0702\u0003\u0092I\u0000\u0700\u0702\u0003\u00e4r\u0000"+
"\u0701\u06ff\u0001\u0000\u0000\u0000\u0701\u0700\u0001\u0000\u0000\u0000"+
"\u0702\u0706\u0001\u0000\u0000\u0000\u0703\u0705\u0003\u00f8|\u0000\u0704"+
"\u0703\u0001\u0000\u0000\u0000\u0705\u0708\u0001\u0000\u0000\u0000\u0706"+
"\u0704\u0001\u0000\u0000\u0000\u0706\u0707\u0001\u0000\u0000\u0000\u0707"+
"\u0091\u0001\u0000\u0000\u0000\u0708\u0706\u0001\u0000\u0000\u0000\u0709"+
"\u0718\u0003\u0094J\u0000\u070a\u0718\u0003\u00a6S\u0000\u070b\u0718\u0003"+
"\u00b6[\u0000\u070c\u0718\u0003\u00c0`\u0000\u070d\u0718\u0003\u00c2a"+
"\u0000\u070e\u0718\u0003\u00c4b\u0000\u070f\u0718\u0003\u00d4j\u0000\u0710"+
"\u0718\u0003\u00bc^\u0000\u0711\u0718\u0003\u00e2q\u0000\u0712\u0718\u0003"+
"\u00dam\u0000\u0713\u0718\u0003\u00be_\u0000\u0714\u0718\u0003\u0120\u0090"+
"\u0000\u0715\u0716\u0005?\u0000\u0000\u0716\u0718\u0003\u011e\u008f\u0000"+
"\u0717\u0709\u0001\u0000\u0000\u0000\u0717\u070a\u0001\u0000\u0000\u0000"+
"\u0717\u070b\u0001\u0000\u0000\u0000\u0717\u070c\u0001\u0000\u0000\u0000"+
"\u0717\u070d\u0001\u0000\u0000\u0000\u0717\u070e\u0001\u0000\u0000\u0000"+
"\u0717\u070f\u0001\u0000\u0000\u0000\u0717\u0710\u0001\u0000\u0000\u0000"+
"\u0717\u0711\u0001\u0000\u0000\u0000\u0717\u0712\u0001\u0000\u0000\u0000"+
"\u0717\u0713\u0001\u0000\u0000\u0000\u0717\u0714\u0001\u0000\u0000\u0000"+
"\u0717\u0715\u0001\u0000\u0000\u0000\u0718\u0093\u0001\u0000\u0000\u0000"+
"\u0719\u071a\u0005\t\u0000\u0000\u071a\u071b\u0003v;\u0000\u071b\u071c"+
"\u0005\n\u0000\u0000\u071c\u0095\u0001\u0000\u0000\u0000\u071d\u071f\u0003"+
"\u009eO\u0000\u071e\u0720\u0003\u009cN\u0000\u071f\u071e\u0001\u0000\u0000"+
"\u0000\u071f\u0720\u0001\u0000\u0000\u0000\u0720\u0724\u0001\u0000\u0000"+
"\u0000\u0721\u0723\u0003\u0098L\u0000\u0722\u0721\u0001\u0000\u0000\u0000"+
"\u0723\u0726\u0001\u0000\u0000\u0000\u0724\u0722\u0001\u0000\u0000\u0000"+
"\u0724\u0725\u0001\u0000\u0000\u0000\u0725\u0734\u0001\u0000\u0000\u0000"+
"\u0726\u0724\u0001\u0000\u0000\u0000\u0727\u072b\u0003\u009cN\u0000\u0728"+
"\u072a\u0003\u0098L\u0000\u0729\u0728\u0001\u0000\u0000\u0000\u072a\u072d"+
"\u0001\u0000\u0000\u0000\u072b\u0729\u0001\u0000\u0000\u0000\u072b\u072c"+
"\u0001\u0000\u0000\u0000\u072c\u0734\u0001\u0000\u0000\u0000\u072d\u072b"+
"\u0001\u0000\u0000\u0000\u072e\u0730\u0003\u0098L\u0000\u072f\u072e\u0001"+
"\u0000\u0000\u0000\u0730\u0731\u0001\u0000\u0000\u0000\u0731\u072f\u0001"+
"\u0000\u0000\u0000\u0731\u0732\u0001\u0000\u0000\u0000\u0732\u0734\u0001"+
"\u0000\u0000\u0000\u0733\u071d\u0001\u0000\u0000\u0000\u0733\u0727\u0001"+
"\u0000\u0000\u0000\u0733\u072f\u0001\u0000\u0000\u0000\u0734\u0097\u0001"+
"\u0000\u0000\u0000\u0735\u0737\u0003\u011c\u008e\u0000\u0736\u0735\u0001"+
"\u0000\u0000\u0000\u0737\u073a\u0001\u0000\u0000\u0000\u0738\u0736\u0001"+
"\u0000\u0000\u0000\u0738\u0739\u0001\u0000\u0000\u0000\u0739\u073c\u0001"+
"\u0000\u0000\u0000\u073a\u0738\u0001\u0000\u0000\u0000\u073b\u073d\u0005"+
"\u008e\u0000\u0000\u073c\u073b\u0001\u0000\u0000\u0000\u073c\u073d\u0001"+
"\u0000\u0000\u0000\u073d\u0741\u0001\u0000\u0000\u0000\u073e\u0740\u0005"+
"\u0005\u0000\u0000\u073f\u073e\u0001\u0000\u0000\u0000\u0740\u0743\u0001"+
"\u0000\u0000\u0000\u0741\u073f\u0001\u0000\u0000\u0000\u0741\u0742\u0001"+
"\u0000\u0000\u0000\u0742\u0744\u0001\u0000\u0000\u0000\u0743\u0741\u0001"+
"\u0000\u0000\u0000\u0744\u0745\u0003\u00b6[\u0000\u0745\u0099\u0001\u0000"+
"\u0000\u0000\u0746\u074f\u0005\u000b\u0000\u0000\u0747\u074c\u0003v;\u0000"+
"\u0748\u0749\u0005\b\u0000\u0000\u0749\u074b\u0003v;\u0000\u074a\u0748"+
"\u0001\u0000\u0000\u0000\u074b\u074e\u0001\u0000\u0000\u0000\u074c\u074a"+
"\u0001\u0000\u0000\u0000\u074c\u074d\u0001\u0000\u0000\u0000\u074d\u0750"+
"\u0001\u0000\u0000\u0000\u074e\u074c\u0001\u0000\u0000\u0000\u074f\u0747"+
"\u0001\u0000\u0000\u0000\u074f\u0750\u0001\u0000\u0000\u0000\u0750\u0751"+
"\u0001\u0000\u0000\u0000\u0751\u0752\u0005\f\u0000\u0000\u0752\u009b\u0001"+
"\u0000\u0000\u0000\u0753\u0765\u0005\t\u0000\u0000\u0754\u0759\u0003\u00a4"+
"R\u0000\u0755\u0756\u0005\b\u0000\u0000\u0756\u0758\u0003\u00a4R\u0000"+
"\u0757\u0755\u0001\u0000\u0000\u0000\u0758\u075b\u0001\u0000\u0000\u0000"+
"\u0759\u0757\u0001\u0000\u0000\u0000\u0759\u075a\u0001\u0000\u0000\u0000"+
"\u075a\u0763\u0001\u0000\u0000\u0000\u075b\u0759\u0001\u0000\u0000\u0000"+
"\u075c\u075e\u0005\u0005\u0000\u0000\u075d\u075c\u0001\u0000\u0000\u0000"+
"\u075e\u0761\u0001\u0000\u0000\u0000\u075f\u075d\u0001\u0000\u0000\u0000"+
"\u075f\u0760\u0001\u0000\u0000\u0000\u0760\u0762\u0001\u0000\u0000\u0000"+
"\u0761\u075f\u0001\u0000\u0000\u0000\u0762\u0764\u0005\b\u0000\u0000\u0763"+
"\u075f\u0001\u0000\u0000\u0000\u0763\u0764\u0001\u0000\u0000\u0000\u0764"+
"\u0766\u0001\u0000\u0000\u0000\u0765\u0754\u0001\u0000\u0000\u0000\u0765"+
"\u0766\u0001\u0000\u0000\u0000\u0766\u0767\u0001\u0000\u0000\u0000\u0767"+
"\u0768\u0005\n\u0000\u0000\u0768\u009d\u0001\u0000\u0000\u0000\u0769\u076d"+
"\u0005+\u0000\u0000\u076a\u076c\u0005\u0005\u0000\u0000\u076b\u076a\u0001"+
"\u0000\u0000\u0000\u076c\u076f\u0001\u0000\u0000\u0000\u076d\u076b\u0001"+
"\u0000\u0000\u0000\u076d\u076e\u0001\u0000\u0000\u0000\u076e\u0770\u0001"+
"\u0000\u0000\u0000\u076f\u076d\u0001\u0000\u0000\u0000\u0770\u077b\u0003"+
"\u00a0P\u0000\u0771\u0773\u0005\u0005\u0000\u0000\u0772\u0771\u0001\u0000"+
"\u0000\u0000\u0773\u0776\u0001\u0000\u0000\u0000\u0774\u0772\u0001\u0000"+
"\u0000\u0000\u0774\u0775\u0001\u0000\u0000\u0000\u0775\u0777\u0001\u0000"+
"\u0000\u0000\u0776\u0774\u0001\u0000\u0000\u0000\u0777\u0778\u0005\b\u0000"+
"\u0000\u0778\u077a\u0003\u00a0P\u0000\u0779\u0774\u0001\u0000\u0000\u0000"+
"\u077a\u077d\u0001\u0000\u0000\u0000\u077b\u0779\u0001\u0000\u0000\u0000"+
"\u077b\u077c\u0001\u0000\u0000\u0000\u077c\u0785\u0001\u0000\u0000\u0000"+
"\u077d\u077b\u0001\u0000\u0000\u0000\u077e\u0780\u0005\u0005\u0000\u0000"+
"\u077f\u077e\u0001\u0000\u0000\u0000\u0780\u0783\u0001\u0000\u0000\u0000"+
"\u0781\u077f\u0001\u0000\u0000\u0000\u0781\u0782\u0001\u0000\u0000\u0000"+
"\u0782\u0784\u0001\u0000\u0000\u0000\u0783\u0781\u0001\u0000\u0000\u0000"+
"\u0784\u0786\u0005\b\u0000\u0000\u0785\u0781\u0001\u0000\u0000\u0000\u0785"+
"\u0786\u0001\u0000\u0000\u0000\u0786\u078a\u0001\u0000\u0000\u0000\u0787"+
"\u0789\u0005\u0005\u0000\u0000\u0788\u0787\u0001\u0000\u0000\u0000\u0789"+
"\u078c\u0001\u0000\u0000\u0000\u078a\u0788\u0001\u0000\u0000\u0000\u078a"+
"\u078b\u0001\u0000\u0000\u0000\u078b\u078d\u0001\u0000\u0000\u0000\u078c"+
"\u078a\u0001\u0000\u0000\u0000\u078d\u078f\u0005,\u0000\u0000\u078e\u0790"+
"\u0005)\u0000\u0000\u078f\u078e\u0001\u0000\u0000\u0000\u078f\u0790\u0001"+
"\u0000\u0000\u0000\u0790\u009f\u0001\u0000\u0000\u0000\u0791\u0793\u0003"+
"\u00a2Q\u0000\u0792\u0791\u0001\u0000\u0000\u0000\u0792\u0793\u0001\u0000"+
"\u0000\u0000\u0793\u0794\u0001\u0000\u0000\u0000\u0794\u0797\u0003T*\u0000"+
"\u0795\u0797\u0005\u000f\u0000\u0000\u0796\u0792\u0001\u0000\u0000\u0000"+
"\u0796\u0795\u0001\u0000\u0000\u0000\u0797\u00a1\u0001\u0000\u0000\u0000"+
"\u0798\u079a\u0003\u0106\u0083\u0000\u0799\u0798\u0001\u0000\u0000\u0000"+
"\u079a\u079b\u0001\u0000\u0000\u0000\u079b\u0799\u0001\u0000\u0000\u0000"+
"\u079b\u079c\u0001\u0000\u0000\u0000\u079c\u00a3\u0001\u0000\u0000\u0000"+
"\u079d\u07a1\u0003\u0120\u0090\u0000\u079e\u07a0\u0005\u0005\u0000\u0000"+
"\u079f\u079e\u0001\u0000\u0000\u0000\u07a0\u07a3\u0001\u0000\u0000\u0000"+
"\u07a1\u079f\u0001\u0000\u0000\u0000\u07a1\u07a2\u0001\u0000\u0000\u0000"+
"\u07a2\u07a4\u0001\u0000\u0000\u0000\u07a3\u07a1\u0001\u0000\u0000\u0000"+
"\u07a4\u07a8\u0005\u001b\u0000\u0000\u07a5\u07a7\u0005\u0005\u0000\u0000"+
"\u07a6\u07a5\u0001\u0000\u0000\u0000\u07a7\u07aa\u0001\u0000\u0000\u0000"+
"\u07a8\u07a6\u0001\u0000\u0000\u0000\u07a8\u07a9\u0001\u0000\u0000\u0000"+
"\u07a9\u07ac\u0001\u0000\u0000\u0000\u07aa\u07a8\u0001\u0000\u0000\u0000"+
"\u07ab\u079d\u0001\u0000\u0000\u0000\u07ab\u07ac\u0001\u0000\u0000\u0000"+
"\u07ac\u07ae\u0001\u0000\u0000\u0000\u07ad\u07af\u0005\u000f\u0000\u0000"+
"\u07ae\u07ad\u0001\u0000\u0000\u0000\u07ae\u07af\u0001\u0000\u0000\u0000"+
"\u07af\u07b3\u0001\u0000\u0000\u0000\u07b0\u07b2\u0005\u0005\u0000\u0000"+
"\u07b1\u07b0\u0001\u0000\u0000\u0000\u07b2\u07b5\u0001\u0000\u0000\u0000"+
"\u07b3\u07b1\u0001\u0000\u0000\u0000\u07b3\u07b4\u0001\u0000\u0000\u0000"+
"\u07b4\u07b6\u0001\u0000\u0000\u0000\u07b5\u07b3\u0001\u0000\u0000\u0000"+
"\u07b6\u07b7\u0003v;\u0000\u07b7\u00a5\u0001\u0000\u0000\u0000\u07b8\u07c2"+
"\u0005\u008a\u0000\u0000\u07b9\u07c2\u0005\u0087\u0000\u0000\u07ba\u07c2"+
"\u0003\u00a8T\u0000\u07bb\u07c2\u0005\u0088\u0000\u0000\u07bc\u07c2\u0005"+
"\u0089\u0000\u0000\u07bd\u07c2\u0005\u0090\u0000\u0000\u07be\u07c2\u0005"+
"\u0083\u0000\u0000\u07bf\u07c2\u0005\u008b\u0000\u0000\u07c0\u07c2\u0005"+
"\u0086\u0000\u0000\u07c1\u07b8\u0001\u0000\u0000\u0000\u07c1\u07b9\u0001"+
"\u0000\u0000\u0000\u07c1\u07ba\u0001\u0000\u0000\u0000\u07c1\u07bb\u0001"+
"\u0000\u0000\u0000\u07c1\u07bc\u0001\u0000\u0000\u0000\u07c1\u07bd\u0001"+
"\u0000\u0000\u0000\u07c1\u07be\u0001\u0000\u0000\u0000\u07c1\u07bf\u0001"+
"\u0000\u0000\u0000\u07c1\u07c0\u0001\u0000\u0000\u0000\u07c2\u00a7\u0001"+
"\u0000\u0000\u0000\u07c3\u07c6\u0003\u00aaU\u0000\u07c4\u07c6\u0003\u00ac"+
"V\u0000\u07c5\u07c3\u0001\u0000\u0000\u0000\u07c5\u07c4\u0001\u0000\u0000"+
"\u0000\u07c6\u00a9\u0001\u0000\u0000\u0000\u07c7\u07cc\u0005\u0081\u0000"+
"\u0000\u07c8\u07cb\u0003\u00aeW\u0000\u07c9\u07cb\u0003\u00b0X\u0000\u07ca"+
"\u07c8\u0001\u0000\u0000\u0000\u07ca\u07c9\u0001\u0000\u0000\u0000\u07cb"+
"\u07ce\u0001\u0000\u0000\u0000\u07cc\u07ca\u0001\u0000\u0000\u0000\u07cc"+
"\u07cd\u0001\u0000\u0000\u0000\u07cd\u07cf\u0001\u0000\u0000\u0000\u07ce"+
"\u07cc\u0001\u0000\u0000\u0000\u07cf\u07d0\u0005\u009b\u0000\u0000\u07d0"+
"\u00ab\u0001\u0000\u0000\u0000\u07d1\u07d8\u0005\u0082\u0000\u0000\u07d2"+
"\u07d7\u0003\u00b2Y\u0000\u07d3\u07d7\u0003\u00b4Z\u0000\u07d4\u07d7\u0003"+
"\u00aaU\u0000\u07d5\u07d7\u0005\u00a1\u0000\u0000\u07d6\u07d2\u0001\u0000"+
"\u0000\u0000\u07d6\u07d3\u0001\u0000\u0000\u0000\u07d6\u07d4\u0001\u0000"+
"\u0000\u0000\u07d6\u07d5\u0001\u0000\u0000\u0000\u07d7\u07da\u0001\u0000"+
"\u0000\u0000\u07d8\u07d6\u0001\u0000\u0000\u0000\u07d8\u07d9\u0001\u0000"+
"\u0000\u0000\u07d9\u07db\u0001\u0000\u0000\u0000\u07da\u07d8\u0001\u0000"+
"\u0000\u0000\u07db\u07dc\u0005\u00a0\u0000\u0000\u07dc\u00ad\u0001\u0000"+
"\u0000\u0000\u07dd\u07de\u0007\u0003\u0000\u0000\u07de\u00af\u0001\u0000"+
"\u0000\u0000\u07df\u07e0\u0005\u009f\u0000\u0000\u07e0\u07e1\u0003v;\u0000"+
"\u07e1\u07e2\u0005\u000e\u0000\u0000\u07e2\u00b1\u0001\u0000\u0000\u0000"+
"\u07e3\u07e4\u0007\u0004\u0000\u0000\u07e4\u00b3\u0001\u0000\u0000\u0000"+
"\u07e5\u07e6\u0005\u00a5\u0000\u0000\u07e6\u07e7\u0003v;\u0000\u07e7\u07e8"+
"\u0005\u000e\u0000\u0000\u07e8\u00b5\u0001\u0000\u0000\u0000\u07e9\u07eb"+
"\u0003\u0114\u008a\u0000\u07ea\u07e9\u0001\u0000\u0000\u0000\u07eb\u07ee"+
"\u0001\u0000\u0000\u0000\u07ec\u07ea\u0001\u0000\u0000\u0000\u07ec\u07ed"+
"\u0001\u0000\u0000\u0000\u07ed\u081d\u0001\u0000\u0000\u0000\u07ee\u07ec"+
"\u0001\u0000\u0000\u0000\u07ef\u07f3\u0005\r\u0000\u0000\u07f0\u07f2\u0005"+
"\u0005\u0000\u0000\u07f1\u07f0\u0001\u0000\u0000\u0000\u07f2\u07f5\u0001"+
"\u0000\u0000\u0000\u07f3\u07f1\u0001\u0000\u0000\u0000\u07f3\u07f4\u0001"+
"\u0000\u0000\u0000\u07f4\u07f6\u0001\u0000\u0000\u0000\u07f5\u07f3\u0001"+
"\u0000\u0000\u0000\u07f6\u07fa\u0003n7\u0000\u07f7\u07f9\u0005\u0005\u0000"+
"\u0000\u07f8\u07f7\u0001\u0000\u0000\u0000\u07f9\u07fc\u0001\u0000\u0000"+
"\u0000\u07fa\u07f8\u0001\u0000\u0000\u0000\u07fa\u07fb\u0001\u0000\u0000"+
"\u0000\u07fb\u07fd\u0001\u0000\u0000\u0000\u07fc\u07fa\u0001\u0000\u0000"+
"\u0000\u07fd\u07fe\u0005\u000e\u0000\u0000\u07fe\u081e\u0001\u0000\u0000"+
"\u0000\u07ff\u0803\u0005\r\u0000\u0000\u0800\u0802\u0005\u0005\u0000\u0000"+
"\u0801\u0800\u0001\u0000\u0000\u0000\u0802\u0805\u0001\u0000\u0000\u0000"+
"\u0803\u0801\u0001\u0000\u0000\u0000\u0803\u0804\u0001\u0000\u0000\u0000"+
"\u0804\u0806\u0001\u0000\u0000\u0000\u0805\u0803\u0001\u0000\u0000\u0000"+
"\u0806\u080a\u0003\u00b8\\\u0000\u0807\u0809\u0005\u0005\u0000\u0000\u0808"+
"\u0807\u0001\u0000\u0000\u0000\u0809\u080c\u0001\u0000\u0000\u0000\u080a"+
"\u0808\u0001\u0000\u0000\u0000\u080a\u080b\u0001\u0000\u0000\u0000\u080b"+
"\u080d\u0001\u0000\u0000\u0000\u080c\u080a\u0001\u0000\u0000\u0000\u080d"+
"\u0811\u0005!\u0000\u0000\u080e\u0810\u0005\u0005\u0000\u0000\u080f\u080e"+
"\u0001\u0000\u0000\u0000\u0810\u0813\u0001\u0000\u0000\u0000\u0811\u080f"+
"\u0001\u0000\u0000\u0000\u0811\u0812\u0001\u0000\u0000\u0000\u0812\u0814"+
"\u0001\u0000\u0000\u0000\u0813\u0811\u0001\u0000\u0000\u0000\u0814\u0818"+
"\u0003n7\u0000\u0815\u0817\u0005\u0005\u0000\u0000\u0816\u0815\u0001\u0000"+
"\u0000\u0000\u0817\u081a\u0001\u0000\u0000\u0000\u0818\u0816\u0001\u0000"+
"\u0000\u0000\u0818\u0819\u0001\u0000\u0000\u0000\u0819\u081b\u0001\u0000"+
"\u0000\u0000\u081a\u0818\u0001\u0000\u0000\u0000\u081b\u081c\u0005\u000e"+
"\u0000\u0000\u081c\u081e\u0001\u0000\u0000\u0000\u081d\u07ef\u0001\u0000"+
"\u0000\u0000\u081d\u07ff\u0001\u0000\u0000\u0000\u081e\u00b7\u0001\u0000"+
"\u0000\u0000\u081f\u0821\u0003\u00ba]\u0000\u0820\u081f\u0001\u0000\u0000"+
"\u0000\u0820\u0821\u0001\u0000\u0000\u0000\u0821\u0832\u0001\u0000\u0000"+
"\u0000\u0822\u0824\u0005\u0005\u0000\u0000\u0823\u0822\u0001\u0000\u0000"+
"\u0000\u0824\u0827\u0001\u0000\u0000\u0000\u0825\u0823\u0001\u0000\u0000"+
"\u0000\u0825\u0826\u0001\u0000\u0000\u0000\u0826\u0828\u0001\u0000\u0000"+
"\u0000\u0827\u0825\u0001\u0000\u0000\u0000\u0828\u082c\u0005\b\u0000\u0000"+
"\u0829\u082b\u0005\u0005\u0000\u0000\u082a\u0829\u0001\u0000\u0000\u0000"+
"\u082b\u082e\u0001\u0000\u0000\u0000\u082c\u082a\u0001\u0000\u0000\u0000"+
"\u082c\u082d\u0001\u0000\u0000\u0000\u082d\u082f\u0001\u0000\u0000\u0000"+
"\u082e\u082c\u0001\u0000\u0000\u0000\u082f\u0831\u0003\u00ba]\u0000\u0830"+
"\u0825\u0001\u0000\u0000\u0000\u0831\u0834\u0001\u0000\u0000\u0000\u0832"+
"\u0830\u0001\u0000\u0000\u0000\u0832\u0833\u0001\u0000\u0000\u0000\u0833"+
"\u00b9\u0001\u0000\u0000\u0000\u0834\u0832\u0001\u0000\u0000\u0000\u0835"+
"\u0848\u0003H$\u0000\u0836\u0845\u0003F#\u0000\u0837\u0839\u0005\u0005"+
"\u0000\u0000\u0838\u0837\u0001\u0000\u0000\u0000\u0839\u083c\u0001\u0000"+
"\u0000\u0000\u083a\u0838\u0001\u0000\u0000\u0000\u083a\u083b\u0001\u0000"+
"\u0000\u0000\u083b\u083d\u0001\u0000\u0000\u0000\u083c\u083a\u0001\u0000"+
"\u0000\u0000\u083d\u0841\u0005\u0019\u0000\u0000\u083e\u0840\u0005\u0005"+
"\u0000\u0000\u083f\u083e\u0001\u0000\u0000\u0000\u0840\u0843\u0001\u0000"+
"\u0000\u0000\u0841\u083f\u0001\u0000\u0000\u0000\u0841\u0842\u0001\u0000"+
"\u0000\u0000\u0842\u0844\u0001\u0000\u0000\u0000\u0843\u0841\u0001\u0000"+
"\u0000\u0000\u0844\u0846\u0003T*\u0000\u0845\u083a\u0001\u0000\u0000\u0000"+
"\u0845\u0846\u0001\u0000\u0000\u0000\u0846\u0848\u0001\u0000\u0000\u0000"+
"\u0847\u0835\u0001\u0000\u0000\u0000\u0847\u0836\u0001\u0000\u0000\u0000"+
"\u0848\u00bb\u0001\u0000\u0000\u0000\u0849\u0858\u0005>\u0000\u0000\u084a"+
"\u084c\u0005\u0005\u0000\u0000\u084b\u084a\u0001\u0000\u0000\u0000\u084c"+
"\u084f\u0001\u0000\u0000\u0000\u084d\u084b\u0001\u0000\u0000\u0000\u084d"+
"\u084e\u0001\u0000\u0000\u0000\u084e\u0850\u0001\u0000\u0000\u0000\u084f"+
"\u084d\u0001\u0000\u0000\u0000\u0850\u0854\u0005\u0019\u0000\u0000\u0851"+
"\u0853\u0005\u0005\u0000\u0000\u0852\u0851\u0001\u0000\u0000\u0000\u0853"+
"\u0856\u0001\u0000\u0000\u0000\u0854\u0852\u0001\u0000\u0000\u0000\u0854"+
"\u0855\u0001\u0000\u0000\u0000\u0855\u0857\u0001\u0000\u0000\u0000\u0856"+
"\u0854\u0001\u0000\u0000\u0000\u0857\u0859\u0003\u001c\u000e\u0000\u0858"+
"\u084d\u0001\u0000\u0000\u0000\u0858\u0859\u0001\u0000\u0000\u0000\u0859"+
"\u085d\u0001\u0000\u0000\u0000\u085a\u085c\u0005\u0005\u0000\u0000\u085b"+
"\u085a\u0001\u0000\u0000\u0000\u085c\u085f\u0001\u0000\u0000\u0000\u085d"+
"\u085b\u0001\u0000\u0000\u0000\u085d\u085e\u0001\u0000\u0000\u0000\u085e"+
"\u0861\u0001\u0000\u0000\u0000\u085f\u085d\u0001\u0000\u0000\u0000\u0860"+
"\u0862\u0003$\u0012\u0000\u0861\u0860\u0001\u0000\u0000\u0000\u0861\u0862"+
"\u0001\u0000\u0000\u0000\u0862\u00bd\u0001\u0000\u0000\u0000\u0863\u0865"+
"\u0005\u000b\u0000\u0000\u0864\u0866\u0003v;\u0000\u0865\u0864\u0001\u0000"+
"\u0000\u0000\u0865\u0866\u0001\u0000\u0000\u0000\u0866\u086b\u0001\u0000"+
"\u0000\u0000\u0867\u0868\u0005\b\u0000\u0000\u0868\u086a\u0003v;\u0000"+
"\u0869\u0867\u0001\u0000\u0000\u0000\u086a\u086d\u0001\u0000\u0000\u0000"+
"\u086b\u0869\u0001\u0000\u0000\u0000\u086b\u086c\u0001\u0000\u0000\u0000"+
"\u086c\u086e\u0001\u0000\u0000\u0000\u086d\u086b\u0001\u0000\u0000\u0000"+
"\u086e\u086f\u0005\f\u0000\u0000\u086f\u00bf\u0001\u0000\u0000\u0000\u0870"+
"\u0872\u0005F\u0000\u0000\u0871\u0873\u0005\u008d\u0000\u0000\u0872\u0871"+
"\u0001\u0000\u0000\u0000\u0872\u0873\u0001\u0000\u0000\u0000\u0873\u00c1"+
"\u0001\u0000\u0000\u0000\u0874\u0885\u0005G\u0000\u0000\u0875\u0879\u0005"+
"+\u0000\u0000\u0876\u0878\u0005\u0005\u0000\u0000\u0877\u0876\u0001\u0000"+
"\u0000\u0000\u0878\u087b\u0001\u0000\u0000\u0000\u0879\u0877\u0001\u0000"+
"\u0000\u0000\u0879\u087a\u0001\u0000\u0000\u0000\u087a\u087c\u0001\u0000"+
"\u0000\u0000\u087b\u0879\u0001\u0000\u0000\u0000\u087c\u0880\u0003T*\u0000"+
"\u087d\u087f\u0005\u0005\u0000\u0000\u087e\u087d\u0001\u0000\u0000\u0000"+
"\u087f\u0882\u0001\u0000\u0000\u0000\u0880\u087e\u0001\u0000\u0000\u0000"+
"\u0880\u0881\u0001\u0000\u0000\u0000\u0881\u0883\u0001\u0000\u0000\u0000"+
"\u0882\u0880\u0001\u0000\u0000\u0000\u0883\u0884\u0005,\u0000\u0000\u0884"+
"\u0886\u0001\u0000\u0000\u0000\u0885\u0875\u0001\u0000\u0000\u0000\u0885"+
"\u0886\u0001\u0000\u0000\u0000\u0886\u0888\u0001\u0000\u0000\u0000\u0887"+
"\u0889\u0005\u008d\u0000\u0000\u0888\u0887\u0001\u0000\u0000\u0000\u0888"+
"\u0889\u0001\u0000\u0000\u0000\u0889\u00c3\u0001\u0000\u0000\u0000\u088a"+
"\u088d\u0003\u00c6c\u0000\u088b\u088d\u0003\u00cae\u0000\u088c\u088a\u0001"+
"\u0000\u0000\u0000\u088c\u088b\u0001\u0000\u0000\u0000\u088d\u00c5\u0001"+
"\u0000\u0000\u0000\u088e\u0892\u0005J\u0000\u0000\u088f\u0891\u0005\u0005"+
"\u0000\u0000\u0890\u088f\u0001\u0000\u0000\u0000\u0891\u0894\u0001\u0000"+
"\u0000\u0000\u0892\u0890\u0001\u0000\u0000\u0000\u0892\u0893\u0001\u0000"+
"\u0000\u0000\u0893\u0895\u0001\u0000\u0000\u0000\u0894\u0892\u0001\u0000"+
"\u0000\u0000\u0895\u0896\u0005\t\u0000\u0000\u0896\u0897\u0003v;\u0000"+
"\u0897\u089b\u0005\n\u0000\u0000\u0898\u089a\u0005\u0005\u0000\u0000\u0899"+
"\u0898\u0001\u0000\u0000\u0000\u089a\u089d\u0001\u0000\u0000\u0000\u089b"+
"\u0899\u0001\u0000\u0000\u0000\u089b\u089c\u0001\u0000\u0000\u0000\u089c"+
"\u089f\u0001\u0000\u0000\u0000\u089d\u089b\u0001\u0000\u0000\u0000\u089e"+
"\u08a0\u0003\u00c8d\u0000\u089f\u089e\u0001\u0000\u0000\u0000\u089f\u08a0"+
"\u0001\u0000\u0000\u0000\u08a0\u08a2\u0001\u0000\u0000\u0000\u08a1\u08a3"+
"\u0005\u001a\u0000\u0000\u08a2\u08a1\u0001\u0000\u0000\u0000\u08a2\u08a3"+
"\u0001\u0000\u0000\u0000\u08a3\u08b4\u0001\u0000\u0000\u0000\u08a4\u08a6"+
"\u0005\u0005\u0000\u0000\u08a5\u08a4\u0001\u0000\u0000\u0000\u08a6\u08a9"+
"\u0001\u0000\u0000\u0000\u08a7\u08a5\u0001\u0000\u0000\u0000\u08a7\u08a8"+
"\u0001\u0000\u0000\u0000\u08a8\u08aa\u0001\u0000\u0000\u0000\u08a9\u08a7"+
"\u0001\u0000\u0000\u0000\u08aa\u08ae\u0005K\u0000\u0000\u08ab\u08ad\u0005"+
"\u0005\u0000\u0000\u08ac\u08ab\u0001\u0000\u0000\u0000\u08ad\u08b0\u0001"+
"\u0000\u0000\u0000\u08ae\u08ac\u0001\u0000\u0000\u0000\u08ae\u08af\u0001"+
"\u0000\u0000\u0000\u08af\u08b2\u0001\u0000\u0000\u0000\u08b0\u08ae\u0001"+
"\u0000\u0000\u0000\u08b1\u08b3\u0003\u00c8d\u0000\u08b2\u08b1\u0001\u0000"+
"\u0000\u0000\u08b2\u08b3\u0001\u0000\u0000\u0000\u08b3\u08b5\u0001\u0000"+
"\u0000\u0000\u08b4\u08a7\u0001\u0000\u0000\u0000\u08b4\u08b5\u0001\u0000"+
"\u0000\u0000\u08b5\u00c7\u0001\u0000\u0000\u0000\u08b6\u08b9\u0003l6\u0000"+
"\u08b7\u08b9\u0003v;\u0000\u08b8\u08b6\u0001\u0000\u0000\u0000\u08b8\u08b7"+
"\u0001\u0000\u0000\u0000\u08b9\u00c9\u0001\u0000\u0000\u0000\u08ba\u08be"+
"\u0005L\u0000\u0000\u08bb\u08bd\u0005\u0005\u0000\u0000\u08bc\u08bb\u0001"+
"\u0000\u0000\u0000\u08bd\u08c0\u0001\u0000\u0000\u0000\u08be\u08bc\u0001"+
"\u0000\u0000\u0000\u08be\u08bf\u0001\u0000\u0000\u0000\u08bf\u08c5\u0001"+
"\u0000\u0000\u0000\u08c0\u08be\u0001\u0000\u0000\u0000\u08c1\u08c2\u0005"+
"\t\u0000\u0000\u08c2\u08c3\u0003v;\u0000\u08c3\u08c4\u0005\n\u0000\u0000"+
"\u08c4\u08c6\u0001\u0000\u0000\u0000\u08c5\u08c1\u0001\u0000\u0000\u0000"+
"\u08c5\u08c6\u0001\u0000\u0000\u0000\u08c6\u08ca\u0001\u0000\u0000\u0000"+
"\u08c7\u08c9\u0005\u0005\u0000\u0000\u08c8\u08c7\u0001\u0000\u0000\u0000"+
"\u08c9\u08cc\u0001\u0000\u0000\u0000\u08ca\u08c8\u0001\u0000\u0000\u0000"+
"\u08ca\u08cb\u0001\u0000\u0000\u0000\u08cb\u08cd\u0001\u0000\u0000\u0000"+
"\u08cc\u08ca\u0001\u0000\u0000\u0000\u08cd\u08d1\u0005\r\u0000\u0000\u08ce"+
"\u08d0\u0005\u0005\u0000\u0000\u08cf\u08ce\u0001\u0000\u0000\u0000\u08d0"+
"\u08d3\u0001\u0000\u0000\u0000\u08d1\u08cf\u0001\u0000\u0000\u0000\u08d1"+
"\u08d2\u0001\u0000\u0000\u0000\u08d2\u08dd\u0001\u0000\u0000\u0000\u08d3"+
"\u08d1\u0001\u0000\u0000\u0000\u08d4\u08d8\u0003\u00ccf\u0000\u08d5\u08d7"+
"\u0005\u0005\u0000\u0000\u08d6\u08d5\u0001\u0000\u0000\u0000\u08d7\u08da"+
"\u0001\u0000\u0000\u0000\u08d8\u08d6\u0001\u0000\u0000\u0000\u08d8\u08d9"+
"\u0001\u0000\u0000\u0000\u08d9\u08dc\u0001\u0000\u0000\u0000\u08da\u08d8"+
"\u0001\u0000\u0000\u0000\u08db\u08d4\u0001\u0000\u0000\u0000\u08dc\u08df"+
"\u0001\u0000\u0000\u0000\u08dd\u08db\u0001\u0000\u0000\u0000\u08dd\u08de"+
"\u0001\u0000\u0000\u0000\u08de\u08e3\u0001\u0000\u0000\u0000\u08df\u08dd"+
"\u0001\u0000\u0000\u0000\u08e0\u08e2\u0005\u0005\u0000\u0000\u08e1\u08e0"+
"\u0001\u0000\u0000\u0000\u08e2\u08e5\u0001\u0000\u0000\u0000\u08e3\u08e1"+
"\u0001\u0000\u0000\u0000\u08e3\u08e4\u0001\u0000\u0000\u0000\u08e4\u08e6"+
"\u0001\u0000\u0000\u0000\u08e5\u08e3\u0001\u0000\u0000\u0000\u08e6\u08e7"+
"\u0005\u000e\u0000\u0000\u08e7\u00cb\u0001\u0000\u0000\u0000\u08e8\u08f9"+
"\u0003\u00ceg\u0000\u08e9\u08eb\u0005\u0005\u0000\u0000\u08ea\u08e9\u0001"+
"\u0000\u0000\u0000\u08eb\u08ee\u0001\u0000\u0000\u0000\u08ec\u08ea\u0001"+
"\u0000\u0000\u0000\u08ec\u08ed\u0001\u0000\u0000\u0000\u08ed\u08ef\u0001"+
"\u0000\u0000\u0000\u08ee\u08ec\u0001\u0000\u0000\u0000\u08ef\u08f3\u0005"+
"\b\u0000\u0000\u08f0\u08f2\u0005\u0005\u0000\u0000\u08f1\u08f0\u0001\u0000"+
"\u0000\u0000\u08f2\u08f5\u0001\u0000\u0000\u0000\u08f3\u08f1\u0001\u0000"+
"\u0000\u0000\u08f3\u08f4\u0001\u0000\u0000\u0000\u08f4\u08f6\u0001\u0000"+
"\u0000\u0000\u08f5\u08f3\u0001\u0000\u0000\u0000\u08f6\u08f8\u0003\u00ce"+
"g\u0000\u08f7\u08ec";
private static final String _serializedATNSegment1 =
"\u0001\u0000\u0000\u0000\u08f8\u08fb\u0001\u0000\u0000\u0000\u08f9\u08f7"+
"\u0001\u0000\u0000\u0000\u08f9\u08fa\u0001\u0000\u0000\u0000\u08fa\u08ff"+
"\u0001\u0000\u0000\u0000\u08fb\u08f9\u0001\u0000\u0000\u0000\u08fc\u08fe"+
"\u0005\u0005\u0000\u0000\u08fd\u08fc\u0001\u0000\u0000\u0000\u08fe\u0901"+
"\u0001\u0000\u0000\u0000\u08ff\u08fd\u0001\u0000\u0000\u0000\u08ff\u0900"+
"\u0001\u0000\u0000\u0000\u0900\u0902\u0001\u0000\u0000\u0000\u0901\u08ff"+
"\u0001\u0000\u0000\u0000\u0902\u0906\u0005!\u0000\u0000\u0903\u0905\u0005"+
"\u0005\u0000\u0000\u0904\u0903\u0001\u0000\u0000\u0000\u0905\u0908\u0001"+
"\u0000\u0000\u0000\u0906\u0904\u0001\u0000\u0000\u0000\u0906\u0907\u0001"+
"\u0000\u0000\u0000\u0907\u0909\u0001\u0000\u0000\u0000\u0908\u0906\u0001"+
"\u0000\u0000\u0000\u0909\u090b\u0003\u00c8d\u0000\u090a\u090c\u0003\u0122"+
"\u0091\u0000\u090b\u090a\u0001\u0000\u0000\u0000\u090b\u090c\u0001\u0000"+
"\u0000\u0000\u090c\u091d\u0001\u0000\u0000\u0000\u090d\u0911\u0005K\u0000"+
"\u0000\u090e\u0910\u0005\u0005\u0000\u0000\u090f\u090e\u0001\u0000\u0000"+
"\u0000\u0910\u0913\u0001\u0000\u0000\u0000\u0911\u090f\u0001\u0000\u0000"+
"\u0000\u0911\u0912\u0001\u0000\u0000\u0000\u0912\u0914\u0001\u0000\u0000"+
"\u0000\u0913\u0911\u0001\u0000\u0000\u0000\u0914\u0918\u0005!\u0000\u0000"+
"\u0915\u0917\u0005\u0005\u0000\u0000\u0916\u0915\u0001\u0000\u0000\u0000"+
"\u0917\u091a\u0001\u0000\u0000\u0000\u0918\u0916\u0001\u0000\u0000\u0000"+
"\u0918\u0919\u0001\u0000\u0000\u0000\u0919\u091b\u0001\u0000\u0000\u0000"+
"\u091a\u0918\u0001\u0000\u0000\u0000\u091b\u091d\u0003\u00c8d\u0000\u091c"+
"\u08e8\u0001\u0000\u0000\u0000\u091c\u090d\u0001\u0000\u0000\u0000\u091d"+
"\u00cd\u0001\u0000\u0000\u0000\u091e\u0922\u0003v;\u0000\u091f\u0922\u0003"+
"\u00d0h\u0000\u0920\u0922\u0003\u00d2i\u0000\u0921\u091e\u0001\u0000\u0000"+
"\u0000\u0921\u091f\u0001\u0000\u0000\u0000\u0921\u0920\u0001\u0000\u0000"+
"\u0000\u0922\u00cf\u0001\u0000\u0000\u0000\u0923\u0927\u0003\u00ecv\u0000"+
"\u0924\u0926\u0005\u0005\u0000\u0000\u0925\u0924\u0001\u0000\u0000\u0000"+
"\u0926\u0929\u0001\u0000\u0000\u0000\u0927\u0925\u0001\u0000\u0000\u0000"+
"\u0927\u0928\u0001\u0000\u0000\u0000\u0928\u092a\u0001\u0000\u0000\u0000"+
"\u0929\u0927\u0001\u0000\u0000\u0000\u092a\u092b\u0003v;\u0000\u092b\u00d1"+
"\u0001\u0000\u0000\u0000\u092c\u0930\u0003\u00eew\u0000\u092d\u092f\u0005"+
"\u0005\u0000\u0000\u092e\u092d\u0001\u0000\u0000\u0000\u092f\u0932\u0001"+
"\u0000\u0000\u0000\u0930\u092e\u0001\u0000\u0000\u0000\u0930\u0931\u0001"+
"\u0000\u0000\u0000\u0931\u0933\u0001\u0000\u0000\u0000\u0932\u0930\u0001"+
"\u0000\u0000\u0000\u0933\u0934\u0003T*\u0000\u0934\u00d3\u0001\u0000\u0000"+
"\u0000\u0935\u0939\u0005M\u0000\u0000\u0936\u0938\u0005\u0005\u0000\u0000"+
"\u0937\u0936\u0001\u0000\u0000\u0000\u0938\u093b\u0001\u0000\u0000\u0000"+
"\u0939\u0937\u0001\u0000\u0000\u0000\u0939\u093a\u0001\u0000\u0000\u0000"+
"\u093a\u093c\u0001\u0000\u0000\u0000\u093b\u0939\u0001\u0000\u0000\u0000"+
"\u093c\u0946\u0003l6\u0000\u093d\u093f\u0005\u0005\u0000\u0000\u093e\u093d"+
"\u0001\u0000\u0000\u0000\u093f\u0942\u0001\u0000\u0000\u0000\u0940\u093e"+
"\u0001\u0000\u0000\u0000\u0940\u0941\u0001\u0000\u0000\u0000\u0941\u0943"+
"\u0001\u0000\u0000\u0000\u0942\u0940\u0001\u0000\u0000\u0000\u0943\u0945"+
"\u0003\u00d6k\u0000\u0944\u0940\u0001\u0000\u0000\u0000\u0945\u0948\u0001"+
"\u0000\u0000\u0000\u0946\u0944\u0001\u0000\u0000\u0000\u0946\u0947\u0001"+
"\u0000\u0000\u0000\u0947\u0950\u0001\u0000\u0000\u0000\u0948\u0946\u0001"+
"\u0000\u0000\u0000\u0949\u094b\u0005\u0005\u0000\u0000\u094a\u0949\u0001"+
"\u0000\u0000\u0000\u094b\u094e\u0001\u0000\u0000\u0000\u094c\u094a\u0001"+
"\u0000\u0000\u0000\u094c\u094d\u0001\u0000\u0000\u0000\u094d\u094f\u0001"+
"\u0000\u0000\u0000\u094e\u094c\u0001\u0000\u0000\u0000\u094f\u0951\u0003"+
"\u00d8l\u0000\u0950\u094c\u0001\u0000\u0000\u0000\u0950\u0951\u0001\u0000"+
"\u0000\u0000\u0951\u00d5\u0001\u0000\u0000\u0000\u0952\u0956\u0005N\u0000"+
"\u0000\u0953\u0955\u0005\u0005\u0000\u0000\u0954\u0953\u0001\u0000\u0000"+
"\u0000\u0955\u0958\u0001\u0000\u0000\u0000\u0956\u0954\u0001\u0000\u0000"+
"\u0000\u0956\u0957\u0001\u0000\u0000\u0000\u0957\u0959\u0001\u0000\u0000"+
"\u0000\u0958\u0956\u0001\u0000\u0000\u0000\u0959\u095d\u0005\t\u0000\u0000"+
"\u095a\u095c\u0003\u0114\u008a\u0000\u095b\u095a\u0001\u0000\u0000\u0000"+
"\u095c\u095f\u0001\u0000\u0000\u0000\u095d\u095b\u0001\u0000\u0000\u0000"+
"\u095d\u095e\u0001\u0000\u0000\u0000\u095e\u0960\u0001\u0000\u0000\u0000"+
"\u095f\u095d\u0001\u0000\u0000\u0000\u0960\u0961\u0003\u0120\u0090\u0000"+
"\u0961\u0962\u0005\u0019\u0000\u0000\u0962\u0963\u0003b1\u0000\u0963\u0967"+
"\u0005\n\u0000\u0000\u0964\u0966\u0005\u0005\u0000\u0000\u0965\u0964\u0001"+
"\u0000\u0000\u0000\u0966\u0969\u0001\u0000\u0000\u0000\u0967\u0965\u0001"+
"\u0000\u0000\u0000\u0967\u0968\u0001\u0000\u0000\u0000\u0968\u096a\u0001"+
"\u0000\u0000\u0000\u0969\u0967\u0001\u0000\u0000\u0000\u096a\u096b\u0003"+
"l6\u0000\u096b\u00d7\u0001\u0000\u0000\u0000\u096c\u0970\u0005O\u0000"+
"\u0000\u096d\u096f\u0005\u0005\u0000\u0000\u096e\u096d\u0001\u0000\u0000"+
"\u0000\u096f\u0972\u0001\u0000\u0000\u0000\u0970\u096e\u0001\u0000\u0000"+
"\u0000\u0970\u0971\u0001\u0000\u0000\u0000\u0971\u0973\u0001\u0000\u0000"+
"\u0000\u0972\u0970\u0001\u0000\u0000\u0000\u0973\u0974\u0003l6\u0000\u0974"+
"\u00d9\u0001\u0000\u0000\u0000\u0975\u0979\u0003\u00dcn\u0000\u0976\u0979"+
"\u0003\u00deo\u0000\u0977\u0979\u0003\u00e0p\u0000\u0978\u0975\u0001\u0000"+
"\u0000\u0000\u0978\u0976\u0001\u0000\u0000\u0000\u0978\u0977\u0001\u0000"+
"\u0000\u0000\u0979\u00db\u0001\u0000\u0000\u0000\u097a\u097e\u0005P\u0000"+
"\u0000\u097b\u097d\u0005\u0005\u0000\u0000\u097c\u097b\u0001\u0000\u0000"+
"\u0000\u097d\u0980\u0001\u0000\u0000\u0000\u097e\u097c\u0001\u0000\u0000"+
"\u0000\u097e\u097f\u0001\u0000\u0000\u0000\u097f\u0981\u0001\u0000\u0000"+
"\u0000\u0980\u097e\u0001\u0000\u0000\u0000\u0981\u0985\u0005\t\u0000\u0000"+
"\u0982\u0984\u0003\u0114\u008a\u0000\u0983\u0982\u0001\u0000\u0000\u0000"+
"\u0984\u0987\u0001\u0000\u0000\u0000\u0985\u0983\u0001\u0000\u0000\u0000"+
"\u0985\u0986\u0001\u0000\u0000\u0000\u0986\u098a\u0001\u0000\u0000\u0000"+
"\u0987\u0985\u0001\u0000\u0000\u0000\u0988\u098b\u0003H$\u0000\u0989\u098b"+
"\u0003F#\u0000\u098a\u0988\u0001\u0000\u0000\u0000\u098a\u0989\u0001\u0000"+
"\u0000\u0000\u098b\u098c\u0001\u0000\u0000\u0000\u098c\u098d\u0005Y\u0000"+
"\u0000\u098d\u098e\u0003v;\u0000\u098e\u0992\u0005\n\u0000\u0000\u098f"+
"\u0991\u0005\u0005\u0000\u0000\u0990\u098f\u0001\u0000\u0000\u0000\u0991"+
"\u0994\u0001\u0000\u0000\u0000\u0992\u0990\u0001\u0000\u0000\u0000\u0992"+
"\u0993\u0001\u0000\u0000\u0000\u0993\u0996\u0001\u0000\u0000\u0000\u0994"+
"\u0992\u0001\u0000\u0000\u0000\u0995\u0997\u0003\u00c8d\u0000\u0996\u0995"+
"\u0001\u0000\u0000\u0000\u0996\u0997\u0001\u0000\u0000\u0000\u0997\u00dd"+
"\u0001\u0000\u0000\u0000\u0998\u099c\u0005R\u0000\u0000\u0999\u099b\u0005"+
"\u0005\u0000\u0000\u099a\u0999\u0001\u0000\u0000\u0000\u099b\u099e\u0001"+
"\u0000\u0000\u0000\u099c\u099a\u0001\u0000\u0000\u0000\u099c\u099d\u0001"+
"\u0000\u0000\u0000\u099d\u099f\u0001\u0000\u0000\u0000\u099e\u099c\u0001"+
"\u0000\u0000\u0000\u099f\u09a0\u0005\t\u0000\u0000\u09a0\u09a1\u0003v"+
";\u0000\u09a1\u09a5\u0005\n\u0000\u0000\u09a2\u09a4\u0005\u0005\u0000"+
"\u0000\u09a3\u09a2\u0001\u0000\u0000\u0000\u09a4\u09a7\u0001\u0000\u0000"+
"\u0000\u09a5\u09a3\u0001\u0000\u0000\u0000\u09a5\u09a6\u0001\u0000\u0000"+
"\u0000\u09a6\u09a9\u0001\u0000\u0000\u0000\u09a7\u09a5\u0001\u0000\u0000"+
"\u0000\u09a8\u09aa\u0003\u00c8d\u0000\u09a9\u09a8\u0001\u0000\u0000\u0000"+
"\u09a9\u09aa\u0001\u0000\u0000\u0000\u09aa\u00df\u0001\u0000\u0000\u0000"+
"\u09ab\u09af\u0005Q\u0000\u0000\u09ac\u09ae\u0005\u0005\u0000\u0000\u09ad"+
"\u09ac\u0001\u0000\u0000\u0000\u09ae\u09b1\u0001\u0000\u0000\u0000\u09af"+
"\u09ad\u0001\u0000\u0000\u0000\u09af\u09b0\u0001\u0000\u0000\u0000\u09b0"+
"\u09b3\u0001\u0000\u0000\u0000\u09b1\u09af\u0001\u0000\u0000\u0000\u09b2"+
"\u09b4\u0003\u00c8d\u0000\u09b3\u09b2\u0001\u0000\u0000\u0000\u09b3\u09b4"+
"\u0001\u0000\u0000\u0000\u09b4\u09b8\u0001\u0000\u0000\u0000\u09b5\u09b7"+
"\u0005\u0005\u0000\u0000\u09b6\u09b5\u0001\u0000\u0000\u0000\u09b7\u09ba"+
"\u0001\u0000\u0000\u0000\u09b8\u09b6\u0001\u0000\u0000\u0000\u09b8\u09b9"+
"\u0001\u0000\u0000\u0000\u09b9\u09bb\u0001\u0000\u0000\u0000\u09ba\u09b8"+
"\u0001\u0000\u0000\u0000\u09bb\u09bf\u0005R\u0000\u0000\u09bc\u09be\u0005"+
"\u0005\u0000\u0000\u09bd\u09bc\u0001\u0000\u0000\u0000\u09be\u09c1\u0001"+
"\u0000\u0000\u0000\u09bf\u09bd\u0001\u0000\u0000\u0000\u09bf\u09c0\u0001"+
"\u0000\u0000\u0000\u09c0\u09c2\u0001\u0000\u0000\u0000\u09c1\u09bf\u0001"+
"\u0000\u0000\u0000\u09c2\u09c3\u0005\t\u0000\u0000\u09c3\u09c4\u0003v"+
";\u0000\u09c4\u09c5\u0005\n\u0000\u0000\u09c5\u00e1\u0001\u0000\u0000"+
"\u0000\u09c6\u09ca\u0005S\u0000\u0000\u09c7\u09c9\u0005\u0005\u0000\u0000"+
"\u09c8\u09c7\u0001\u0000\u0000\u0000\u09c9\u09cc\u0001\u0000\u0000\u0000"+
"\u09ca\u09c8\u0001\u0000\u0000\u0000\u09ca\u09cb\u0001\u0000\u0000\u0000"+
"\u09cb\u09cd\u0001\u0000\u0000\u0000\u09cc\u09ca\u0001\u0000\u0000\u0000"+
"\u09cd\u09d7\u0003v;\u0000\u09ce\u09d0\u0007\u0005\u0000\u0000\u09cf\u09d1"+
"\u0003v;\u0000\u09d0\u09cf\u0001\u0000\u0000\u0000\u09d0\u09d1\u0001\u0000"+
"\u0000\u0000\u09d1\u09d7\u0001\u0000\u0000\u0000\u09d2\u09d7\u0005U\u0000"+
"\u0000\u09d3\u09d7\u00056\u0000\u0000\u09d4\u09d7\u0005V\u0000\u0000\u09d5"+
"\u09d7\u00057\u0000\u0000\u09d6\u09c6\u0001\u0000\u0000\u0000\u09d6\u09ce"+
"\u0001\u0000\u0000\u0000\u09d6\u09d2\u0001\u0000\u0000\u0000\u09d6\u09d3"+
"\u0001\u0000\u0000\u0000\u09d6\u09d4\u0001\u0000\u0000\u0000\u09d6\u09d5"+
"\u0001\u0000\u0000\u0000\u09d7\u00e3\u0001\u0000\u0000\u0000\u09d8\u09e2"+
"\u0003b1\u0000\u09d9\u09dd\u0005)\u0000\u0000\u09da\u09dc\u0005\u0005"+
"\u0000\u0000\u09db\u09da\u0001\u0000\u0000\u0000\u09dc\u09df\u0001\u0000"+
"\u0000\u0000\u09dd\u09db\u0001\u0000\u0000\u0000\u09dd\u09de\u0001\u0000"+
"\u0000\u0000\u09de\u09e1\u0001\u0000\u0000\u0000\u09df\u09dd\u0001\u0000"+
"\u0000\u0000\u09e0\u09d9\u0001\u0000\u0000\u0000\u09e1\u09e4\u0001\u0000"+
"\u0000\u0000\u09e2\u09e0\u0001\u0000\u0000\u0000\u09e2\u09e3\u0001\u0000"+
"\u0000\u0000\u09e3\u09e6\u0001\u0000\u0000\u0000\u09e4\u09e2\u0001\u0000"+
"\u0000\u0000\u09e5\u09d8\u0001\u0000\u0000\u0000\u09e5\u09e6\u0001\u0000"+
"\u0000\u0000\u09e6\u09ea\u0001\u0000\u0000\u0000\u09e7\u09e9\u0005\u0005"+
"\u0000\u0000\u09e8\u09e7\u0001\u0000\u0000\u0000\u09e9\u09ec\u0001\u0000"+
"\u0000\u0000\u09ea\u09e8\u0001\u0000\u0000\u0000\u09ea\u09eb\u0001\u0000"+
"\u0000\u0000\u09eb\u09ed\u0001\u0000\u0000\u0000\u09ec\u09ea\u0001\u0000"+
"\u0000\u0000\u09ed\u09f1\u0007\u0006\u0000\u0000\u09ee\u09f0\u0005\u0005"+
"\u0000\u0000\u09ef\u09ee\u0001\u0000\u0000\u0000\u09f0\u09f3\u0001\u0000"+
"\u0000\u0000\u09f1\u09ef\u0001\u0000\u0000\u0000\u09f1\u09f2\u0001\u0000"+
"\u0000\u0000\u09f2\u09f6\u0001\u0000\u0000\u0000\u09f3\u09f1\u0001\u0000"+
"\u0000\u0000\u09f4\u09f7\u0003\u011e\u008f\u0000\u09f5\u09f7\u0005;\u0000"+
"\u0000\u09f6\u09f4\u0001\u0000\u0000\u0000\u09f6\u09f5\u0001\u0000\u0000"+
"\u0000\u09f7\u0a08\u0001\u0000\u0000\u0000\u09f8\u09fc\u0005F\u0000\u0000"+
"\u09f9\u09fb\u0005\u0005\u0000\u0000\u09fa\u09f9\u0001\u0000\u0000\u0000"+
"\u09fb\u09fe\u0001\u0000\u0000\u0000\u09fc\u09fa\u0001\u0000\u0000\u0000"+
"\u09fc\u09fd\u0001\u0000\u0000\u0000\u09fd\u09ff\u0001\u0000\u0000\u0000"+
"\u09fe\u09fc\u0001\u0000\u0000\u0000\u09ff\u0a03\u0005$\u0000\u0000\u0a00"+
"\u0a02\u0005\u0005\u0000\u0000\u0a01\u0a00\u0001\u0000\u0000\u0000\u0a02"+
"\u0a05\u0001\u0000\u0000\u0000\u0a03\u0a01\u0001\u0000\u0000\u0000\u0a03"+
"\u0a04\u0001\u0000\u0000\u0000\u0a04\u0a06\u0001\u0000\u0000\u0000\u0a05"+
"\u0a03\u0001\u0000\u0000\u0000\u0a06\u0a08\u0005;\u0000\u0000\u0a07\u09e5"+
"\u0001\u0000\u0000\u0000\u0a07\u09f8\u0001\u0000\u0000\u0000\u0a08\u00e5"+
"\u0001\u0000\u0000\u0000\u0a09\u0a0a\u0007\u0007\u0000\u0000\u0a0a\u00e7"+
"\u0001\u0000\u0000\u0000\u0a0b\u0a0c\u0007\b\u0000\u0000\u0a0c\u00e9\u0001"+
"\u0000\u0000\u0000\u0a0d\u0a0e\u0007\t\u0000\u0000\u0a0e\u00eb\u0001\u0000"+
"\u0000\u0000\u0a0f\u0a10\u0007\n\u0000\u0000\u0a10\u00ed\u0001\u0000\u0000"+
"\u0000\u0a11\u0a12\u0007\u000b\u0000\u0000\u0a12\u00ef\u0001\u0000\u0000"+
"\u0000\u0a13\u0a14\u0007\f\u0000\u0000\u0a14\u00f1\u0001\u0000\u0000\u0000"+
"\u0a15\u0a16\u0007\r\u0000\u0000\u0a16\u00f3\u0001\u0000\u0000\u0000\u0a17"+
"\u0a18\u0007\u000e\u0000\u0000\u0a18\u00f5\u0001\u0000\u0000\u0000\u0a19"+
"\u0a21\u0005\u0014\u0000\u0000\u0a1a\u0a21\u0005\u0015\u0000\u0000\u0a1b"+
"\u0a21\u0005\u0012\u0000\u0000\u0a1c\u0a21\u0005\u0013\u0000\u0000\u0a1d"+
"\u0a21\u0005\u0018\u0000\u0000\u0a1e\u0a21\u0003\u0114\u008a\u0000\u0a1f"+
"\u0a21\u0003\u0112\u0089\u0000\u0a20\u0a19\u0001\u0000\u0000\u0000\u0a20"+
"\u0a1a\u0001\u0000\u0000\u0000\u0a20\u0a1b\u0001\u0000\u0000\u0000\u0a20"+
"\u0a1c\u0001\u0000\u0000\u0000\u0a20\u0a1d\u0001\u0000\u0000\u0000\u0a20"+
"\u0a1e\u0001\u0000\u0000\u0000\u0a20\u0a1f\u0001\u0000\u0000\u0000\u0a21"+
"\u00f7\u0001\u0000\u0000\u0000\u0a22\u0a32\u0005\u0014\u0000\u0000\u0a23"+
"\u0a32\u0005\u0015\u0000\u0000\u0a24\u0a25\u0005\u0018\u0000\u0000\u0a25"+
"\u0a32\u0005\u0018\u0000\u0000\u0a26\u0a32\u0003\u0096K\u0000\u0a27\u0a32"+
"\u0003\u009aM\u0000\u0a28\u0a2a\u0005\u0005\u0000\u0000\u0a29\u0a28\u0001"+
"\u0000\u0000\u0000\u0a2a\u0a2d\u0001\u0000\u0000\u0000\u0a2b\u0a29\u0001"+
"\u0000\u0000\u0000\u0a2b\u0a2c\u0001\u0000\u0000\u0000\u0a2c\u0a2e\u0001"+
"\u0000\u0000\u0000\u0a2d\u0a2b\u0001\u0000\u0000\u0000\u0a2e\u0a2f\u0003"+
"\u00fa}\u0000\u0a2f\u0a30\u0003\u0090H\u0000\u0a30\u0a32\u0001\u0000\u0000"+
"\u0000\u0a31\u0a22\u0001\u0000\u0000\u0000\u0a31\u0a23\u0001\u0000\u0000"+
"\u0000\u0a31\u0a24\u0001\u0000\u0000\u0000\u0a31\u0a26\u0001\u0000\u0000"+
"\u0000\u0a31\u0a27\u0001\u0000\u0000\u0000\u0a31\u0a2b\u0001\u0000\u0000"+
"\u0000\u0a32\u00f9\u0001\u0000\u0000\u0000\u0a33\u0a37\u0005\u0007\u0000"+
"\u0000\u0a34\u0a35\u0005)\u0000\u0000\u0a35\u0a37\u0005\u0007\u0000\u0000"+
"\u0a36\u0a33\u0001\u0000\u0000\u0000\u0a36\u0a34\u0001\u0000\u0000\u0000"+
"\u0a37\u00fb\u0001\u0000\u0000\u0000\u0a38\u0a3b\u0003\u0114\u008a\u0000"+
"\u0a39\u0a3b\u0003\u00fe\u007f\u0000\u0a3a\u0a38\u0001\u0000\u0000\u0000"+
"\u0a3a\u0a39\u0001\u0000\u0000\u0000\u0a3b\u0a3c\u0001\u0000\u0000\u0000"+
"\u0a3c\u0a3a\u0001\u0000\u0000\u0000\u0a3c\u0a3d\u0001\u0000\u0000\u0000"+
"\u0a3d\u00fd\u0001\u0000\u0000\u0000\u0a3e\u0a48\u0003\u0100\u0080\u0000"+
"\u0a3f\u0a48\u0003\u0102\u0081\u0000\u0a40\u0a48\u0003\u0104\u0082\u0000"+
"\u0a41\u0a48\u0003\u0106\u0083\u0000\u0a42\u0a48\u0003\u0108\u0084\u0000"+
"\u0a43\u0a48\u0003\u010a\u0085\u0000\u0a44\u0a48\u0003\u010c\u0086\u0000"+
"\u0a45\u0a48\u0003\u010e\u0087\u0000\u0a46\u0a48\u0003\u0110\u0088\u0000"+
"\u0a47\u0a3e\u0001\u0000\u0000\u0000\u0a47\u0a3f\u0001\u0000\u0000\u0000"+
"\u0a47\u0a40\u0001\u0000\u0000\u0000\u0a47\u0a41\u0001\u0000\u0000\u0000"+
"\u0a47\u0a42\u0001\u0000\u0000\u0000\u0a47\u0a43\u0001\u0000\u0000\u0000"+
"\u0a47\u0a44\u0001\u0000\u0000\u0000\u0a47\u0a45\u0001\u0000\u0000\u0000"+
"\u0a47\u0a46\u0001\u0000\u0000\u0000\u0a48\u0a4c\u0001\u0000\u0000\u0000"+
"\u0a49\u0a4b\u0005\u0005\u0000\u0000\u0a4a\u0a49\u0001\u0000\u0000\u0000"+
"\u0a4b\u0a4e\u0001\u0000\u0000\u0000\u0a4c\u0a4a\u0001\u0000\u0000\u0000"+
"\u0a4c\u0a4d\u0001\u0000\u0000\u0000\u0a4d\u00ff\u0001\u0000\u0000\u0000"+
"\u0a4e\u0a4c\u0001\u0000\u0000\u0000\u0a4f\u0a50\u0007\u000f\u0000\u0000"+
"\u0a50\u0101\u0001\u0000\u0000\u0000\u0a51\u0a52\u0007\u0010\u0000\u0000"+
"\u0a52\u0103\u0001\u0000\u0000\u0000\u0a53\u0a54\u0007\u0011\u0000\u0000"+
"\u0a54\u0105\u0001\u0000\u0000\u0000\u0a55\u0a56\u0007\u0012\u0000\u0000"+
"\u0a56\u0107\u0001\u0000\u0000\u0000\u0a57\u0a58\u0007\u0013\u0000\u0000"+
"\u0a58\u0109\u0001\u0000\u0000\u0000\u0a59\u0a5a\u0005{\u0000\u0000\u0a5a"+
"\u010b\u0001\u0000\u0000\u0000\u0a5b\u0a5c\u0007\u0014\u0000\u0000\u0a5c"+
"\u010d\u0001\u0000\u0000\u0000\u0a5d\u0a5e\u0007\u0015\u0000\u0000\u0a5e"+
"\u010f\u0001\u0000\u0000\u0000\u0a5f\u0a60\u0005\u0080\u0000\u0000\u0a60"+
"\u0111\u0001\u0000\u0000\u0000\u0a61\u0a65\u0005\u008e\u0000\u0000\u0a62"+
"\u0a64\u0005\u0005\u0000\u0000\u0a63\u0a62\u0001\u0000\u0000\u0000\u0a64"+
"\u0a67\u0001\u0000\u0000\u0000\u0a65\u0a63\u0001\u0000\u0000\u0000\u0a65"+
"\u0a66\u0001\u0000\u0000\u0000\u0a66\u0113\u0001\u0000\u0000\u0000\u0a67"+
"\u0a65\u0001\u0000\u0000\u0000\u0a68\u0a6b\u0003\u0116\u008b\u0000\u0a69"+
"\u0a6b\u0003\u0118\u008c\u0000\u0a6a\u0a68\u0001\u0000\u0000\u0000\u0a6a"+
"\u0a69\u0001\u0000\u0000\u0000\u0a6b\u0a6f\u0001\u0000\u0000\u0000\u0a6c"+
"\u0a6e\u0005\u0005\u0000\u0000\u0a6d\u0a6c\u0001\u0000\u0000\u0000\u0a6e"+
"\u0a71\u0001\u0000\u0000\u0000\u0a6f\u0a6d\u0001\u0000\u0000\u0000\u0a6f"+
"\u0a70\u0001\u0000\u0000\u0000\u0a70\u0115\u0001\u0000\u0000\u0000\u0a71"+
"\u0a6f\u0001\u0000\u0000\u0000\u0a72\u0a76\u0003\u011a\u008d\u0000\u0a73"+
"\u0a75\u0005\u0005\u0000\u0000\u0a74\u0a73\u0001\u0000\u0000\u0000\u0a75"+
"\u0a78\u0001\u0000\u0000\u0000\u0a76\u0a74\u0001\u0000\u0000\u0000\u0a76"+
"\u0a77\u0001\u0000\u0000\u0000\u0a77\u0a79\u0001\u0000\u0000\u0000\u0a78"+
"\u0a76\u0001\u0000\u0000\u0000\u0a79\u0a7d\u0005\u0019\u0000\u0000\u0a7a"+
"\u0a7c\u0005\u0005\u0000\u0000\u0a7b\u0a7a\u0001\u0000\u0000\u0000\u0a7c"+
"\u0a7f\u0001\u0000\u0000\u0000\u0a7d\u0a7b\u0001\u0000\u0000\u0000\u0a7d"+
"\u0a7e\u0001\u0000\u0000\u0000\u0a7e\u0a80\u0001\u0000\u0000\u0000\u0a7f"+
"\u0a7d\u0001\u0000\u0000\u0000\u0a80\u0a81\u0003\u011c\u008e\u0000\u0a81"+
"\u0aa9\u0001\u0000\u0000\u0000\u0a82\u0a93\u0005\u008d\u0000\u0000\u0a83"+
"\u0a85\u0005\u0005\u0000\u0000\u0a84\u0a83\u0001\u0000\u0000\u0000\u0a85"+
"\u0a88\u0001\u0000\u0000\u0000\u0a86\u0a84\u0001\u0000\u0000\u0000\u0a86"+
"\u0a87\u0001\u0000\u0000\u0000\u0a87\u0a89\u0001\u0000\u0000\u0000\u0a88"+
"\u0a86\u0001\u0000\u0000\u0000\u0a89\u0a8d\u0005\u0007\u0000\u0000\u0a8a"+
"\u0a8c\u0005\u0005\u0000\u0000\u0a8b\u0a8a\u0001\u0000\u0000\u0000\u0a8c"+
"\u0a8f\u0001\u0000\u0000\u0000\u0a8d\u0a8b\u0001\u0000\u0000\u0000\u0a8d"+
"\u0a8e\u0001\u0000\u0000\u0000\u0a8e\u0a90\u0001\u0000\u0000\u0000\u0a8f"+
"\u0a8d\u0001\u0000\u0000\u0000\u0a90\u0a92\u0003\u0120\u0090\u0000\u0a91"+
"\u0a86\u0001\u0000\u0000\u0000\u0a92\u0a95\u0001\u0000\u0000\u0000\u0a93"+
"\u0a91\u0001\u0000\u0000\u0000\u0a93\u0a94\u0001\u0000\u0000\u0000\u0a94"+
"\u0a9d\u0001\u0000\u0000\u0000\u0a95\u0a93\u0001\u0000\u0000\u0000\u0a96"+
"\u0a98\u0005\u0005\u0000\u0000\u0a97\u0a96\u0001\u0000\u0000\u0000\u0a98"+
"\u0a9b\u0001\u0000\u0000\u0000\u0a99\u0a97\u0001\u0000\u0000\u0000\u0a99"+
"\u0a9a\u0001\u0000\u0000\u0000\u0a9a\u0a9c\u0001\u0000\u0000\u0000\u0a9b"+
"\u0a99\u0001\u0000\u0000\u0000\u0a9c\u0a9e\u0003\u009eO\u0000\u0a9d\u0a99"+
"\u0001\u0000\u0000\u0000\u0a9d\u0a9e\u0001\u0000\u0000\u0000\u0a9e\u0aa6"+
"\u0001\u0000\u0000\u0000\u0a9f\u0aa1\u0005\u0005\u0000\u0000\u0aa0\u0a9f"+
"\u0001\u0000\u0000\u0000\u0aa1\u0aa4\u0001\u0000\u0000\u0000\u0aa2\u0aa0"+
"\u0001\u0000\u0000\u0000\u0aa2\u0aa3\u0001\u0000\u0000\u0000\u0aa3\u0aa5"+
"\u0001\u0000\u0000\u0000\u0aa4\u0aa2\u0001\u0000\u0000\u0000\u0aa5\u0aa7"+
"\u0003\u009cN\u0000\u0aa6\u0aa2\u0001\u0000\u0000\u0000\u0aa6\u0aa7\u0001"+
"\u0000\u0000\u0000\u0aa7\u0aa9\u0001\u0000\u0000\u0000\u0aa8\u0a72\u0001"+
"\u0000\u0000\u0000\u0aa8\u0a82\u0001\u0000\u0000\u0000\u0aa9\u0117\u0001"+
"\u0000\u0000\u0000\u0aaa\u0aab\u0003\u011a\u008d\u0000\u0aab\u0aac\u0005"+
"\u0019\u0000\u0000\u0aac\u0aae\u0005\u000b\u0000\u0000\u0aad\u0aaf\u0003"+
"\u011c\u008e\u0000\u0aae\u0aad\u0001\u0000\u0000\u0000\u0aaf\u0ab0\u0001"+
"\u0000\u0000\u0000\u0ab0\u0aae\u0001\u0000\u0000\u0000\u0ab0\u0ab1\u0001"+
"\u0000\u0000\u0000\u0ab1\u0ab2\u0001\u0000\u0000\u0000\u0ab2\u0ab3\u0005"+
"\f\u0000\u0000\u0ab3\u0abe\u0001\u0000\u0000\u0000\u0ab4\u0ab5\u0005("+
"\u0000\u0000\u0ab5\u0ab7\u0005\u000b\u0000\u0000\u0ab6\u0ab8\u0003\u011c"+
"\u008e\u0000\u0ab7\u0ab6\u0001\u0000\u0000\u0000\u0ab8\u0ab9\u0001\u0000"+
"\u0000\u0000\u0ab9\u0ab7\u0001\u0000\u0000\u0000\u0ab9\u0aba\u0001\u0000"+
"\u0000\u0000\u0aba\u0abb\u0001\u0000\u0000\u0000\u0abb\u0abc\u0005\f\u0000"+
"\u0000\u0abc\u0abe\u0001\u0000\u0000\u0000\u0abd\u0aaa\u0001\u0000\u0000"+
"\u0000\u0abd\u0ab4\u0001\u0000\u0000\u0000\u0abe\u0119\u0001\u0000\u0000"+
"\u0000\u0abf\u0ac0\u0007\u0016\u0000\u0000\u0ac0\u011b\u0001\u0000\u0000"+
"\u0000\u0ac1\u0ac3\u0003\u011e\u008f\u0000\u0ac2\u0ac4\u0003\u009eO\u0000"+
"\u0ac3\u0ac2\u0001\u0000\u0000\u0000\u0ac3\u0ac4\u0001\u0000\u0000\u0000"+
"\u0ac4\u0ac6\u0001\u0000\u0000\u0000\u0ac5\u0ac7\u0003\u009cN\u0000\u0ac6"+
"\u0ac5\u0001\u0000\u0000\u0000\u0ac6\u0ac7\u0001\u0000\u0000\u0000\u0ac7"+
"\u011d\u0001\u0000\u0000\u0000\u0ac8\u0ad3\u0003\u0120\u0090\u0000\u0ac9"+
"\u0acb\u0005\u0005\u0000\u0000\u0aca\u0ac9\u0001\u0000\u0000\u0000\u0acb"+
"\u0ace\u0001\u0000\u0000\u0000\u0acc\u0aca\u0001\u0000\u0000\u0000\u0acc"+
"\u0acd\u0001\u0000\u0000\u0000\u0acd\u0acf\u0001\u0000\u0000\u0000\u0ace"+
"\u0acc\u0001\u0000\u0000\u0000\u0acf\u0ad0\u0005\u0007\u0000\u0000\u0ad0"+
"\u0ad2\u0003\u0120\u0090\u0000\u0ad1\u0acc\u0001\u0000\u0000\u0000\u0ad2"+
"\u0ad5\u0001\u0000\u0000\u0000\u0ad3\u0ad1\u0001\u0000\u0000\u0000\u0ad3"+
"\u0ad4\u0001\u0000\u0000\u0000\u0ad4\u011f\u0001\u0000\u0000\u0000\u0ad5"+
"\u0ad3\u0001\u0000\u0000\u0000\u0ad6\u0ad7\u0007\u0017\u0000\u0000\u0ad7"+
"\u0121\u0001\u0000\u0000\u0000\u0ad8\u0ada\u0005\u0005\u0000\u0000\u0ad9"+
"\u0ad8\u0001\u0000\u0000\u0000\u0ada\u0adb\u0001\u0000\u0000\u0000\u0adb"+
"\u0ad9\u0001\u0000\u0000\u0000\u0adb\u0adc\u0001\u0000\u0000\u0000\u0adc"+
"\u0aeb\u0001\u0000\u0000\u0000\u0add\u0adf\u0005\u0005\u0000\u0000\u0ade"+
"\u0add\u0001\u0000\u0000\u0000\u0adf\u0ae2\u0001\u0000\u0000\u0000\u0ae0"+
"\u0ade\u0001\u0000\u0000\u0000\u0ae0\u0ae1\u0001\u0000\u0000\u0000\u0ae1"+
"\u0ae3\u0001\u0000\u0000\u0000\u0ae2\u0ae0\u0001\u0000\u0000\u0000\u0ae3"+
"\u0ae7\u0005\u001a\u0000\u0000\u0ae4\u0ae6\u0005\u0005\u0000\u0000\u0ae5"+
"\u0ae4\u0001\u0000\u0000\u0000\u0ae6\u0ae9\u0001\u0000\u0000\u0000\u0ae7"+
"\u0ae5\u0001\u0000\u0000\u0000\u0ae7\u0ae8\u0001\u0000\u0000\u0000\u0ae8"+
"\u0aeb\u0001\u0000\u0000\u0000\u0ae9\u0ae7\u0001\u0000\u0000\u0000\u0aea"+
"\u0ad9\u0001\u0000\u0000\u0000\u0aea\u0ae0\u0001\u0000\u0000\u0000\u0aeb"+
"\u0123\u0001\u0000\u0000\u0000\u0aec\u0aed\u0007\u0018\u0000\u0000\u0aed"+
"\u0125\u0001\u0000\u0000\u0000\u01ad\u0129\u0130\u0137\u013a\u013e\u0141"+
"\u0148\u014f\u0156\u0159\u015d\u0160\u0165\u016d\u0175\u017a\u017d\u0181"+
"\u0184\u0189\u018b\u0190\u0198\u019b\u01a5\u01a8\u01ae\u01b5\u01b9\u01be"+
"\u01c2\u01c7\u01ce\u01d2\u01d7\u01db\u01e0\u01e7\u01eb\u01ee\u01f4\u01f7"+
"\u0201\u0205\u0207\u020c\u020f\u0216\u021b\u0222\u0229\u022f\u0235\u023b"+
"\u0244\u024b\u0254\u025a\u0260\u026d\u0272\u0278\u027e\u0284\u028b\u0292"+
"\u0296\u029b\u029f\u02a5\u02ad\u02b1\u02b7\u02bb\u02c0\u02c7\u02cd\u02d0"+
"\u02d5\u02de\u02e3\u02e6\u02eb\u02f2\u02f6\u02fb\u02ff\u0304\u0308\u030b"+
"\u0311\u0318\u031d\u0322\u0326\u032b\u0332\u0337\u033c\u0340\u0345\u034c"+
"\u0353\u0357\u035c\u0360\u0365\u0369\u0371\u0375\u0377\u037c\u0381\u0388"+
"\u038d\u0394\u0398\u039b\u03a1\u03a8\u03ac\u03b1\u03b8\u03bc\u03c1\u03c5"+
"\u03c8\u03ce\u03d2\u03d8\u03dc\u03e1\u03e8\u03ec\u03f1\u03f5\u03f8\u03fe"+
"\u0402\u0407\u040e\u0413\u0418\u041d\u0422\u0426\u042b\u0432\u0436\u043b"+
"\u0442\u0447\u044e\u0450\u0458\u0460\u0463\u0467\u046d\u0475\u047c\u0480"+
"\u0485\u048d\u0491\u0493\u0496\u049a\u04a0\u04a6\u04a8\u04ad\u04b3\u04b8"+
"\u04bb\u04c1\u04c8\u04cc\u04d1\u04d8\u04e1\u04e8\u04ef\u04f5\u04fb\u04ff"+
"\u0504\u050a\u050f\u0514\u0519\u0520\u0524\u0527\u052d\u0534\u0537\u0539"+
"\u0541\u0546\u054c\u0554\u055a\u0561\u0564\u056a\u0571\u0579\u057f\u0586"+
"\u058c\u0593\u0597\u059d\u05a2\u05a7\u05ae\u05b3\u05b7\u05bd\u05c1\u05c6"+
"\u05cf\u05d6\u05dd\u05e3\u05e9\u05f0\u05f7\u0603\u060a\u060d\u0611\u0614"+
"\u0618\u061d\u0623\u062b\u0632\u063a\u0641\u0648\u064e\u0655\u065c\u0662"+
"\u066a\u0671\u0679\u067e\u0685\u068c\u0692\u0697\u069d\u06a4\u06aa\u06b2"+
"\u06b9\u06c1\u06c7\u06cf\u06d6\u06de\u06e5\u06ec\u06f4\u06fa\u0701\u0706"+
"\u0717\u071f\u0724\u072b\u0731\u0733\u0738\u073c\u0741\u074c\u074f\u0759"+
"\u075f\u0763\u0765\u076d\u0774\u077b\u0781\u0785\u078a\u078f\u0792\u0796"+
"\u079b\u07a1\u07a8\u07ab\u07ae\u07b3\u07c1\u07c5\u07ca\u07cc\u07d6\u07d8"+
"\u07ec\u07f3\u07fa\u0803\u080a\u0811\u0818\u081d\u0820\u0825\u082c\u0832"+
"\u083a\u0841\u0845\u0847\u084d\u0854\u0858\u085d\u0861\u0865\u086b\u0872"+
"\u0879\u0880\u0885\u0888\u088c\u0892\u089b\u089f\u08a2\u08a7\u08ae\u08b2"+
"\u08b4\u08b8\u08be\u08c5\u08ca\u08d1\u08d8\u08dd\u08e3\u08ec\u08f3\u08f9"+
"\u08ff\u0906\u090b\u0911\u0918\u091c\u0921\u0927\u0930\u0939\u0940\u0946"+
"\u094c\u0950\u0956\u095d\u0967\u0970\u0978\u097e\u0985\u098a\u0992\u0996"+
"\u099c\u09a5\u09a9\u09af\u09b3\u09b8\u09bf\u09ca\u09d0\u09d6\u09dd\u09e2"+
"\u09e5\u09ea\u09f1\u09f6\u09fc\u0a03\u0a07\u0a20\u0a2b\u0a31\u0a36\u0a3a"+
"\u0a3c\u0a47\u0a4c\u0a65\u0a6a\u0a6f\u0a76\u0a7d\u0a86\u0a8d\u0a93\u0a99"+
"\u0a9d\u0aa2\u0aa6\u0aa8\u0ab0\u0ab9\u0abd\u0ac3\u0ac6\u0acc\u0ad3\u0adb"+
"\u0ae0\u0ae7\u0aea";
public static final String _serializedATN = Utils.join(
new String[] {
_serializedATNSegment0,
_serializedATNSegment1
},
""
);
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);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy