diff --git a/src/de/dhbwstuttgart/core/JavaTXCompiler.java b/src/de/dhbwstuttgart/core/JavaTXCompiler.java index 7de0e938..43f56d51 100644 --- a/src/de/dhbwstuttgart/core/JavaTXCompiler.java +++ b/src/de/dhbwstuttgart/core/JavaTXCompiler.java @@ -5,6 +5,8 @@ import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.SourceFile; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory; +import de.dhbwstuttgart.typedeployment.TypeInsertPoint; +import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.unify.TypeUnify; @@ -21,7 +23,11 @@ public class JavaTXCompiler { private List sourceFiles = new ArrayList<>(); - public void typeInference(){ + public List getTypeInserts(File forSourceFile){ + return null; + } + + public ResultSet typeInference(){ ConstraintSet cons = new ConstraintSet(); List allClasses = new ArrayList<>(); for(SourceFile sf : sourceFiles){ @@ -34,6 +40,7 @@ public class JavaTXCompiler { ConstraintSet unifyCons = UnifyTypeFactory.convert(cons); TypeUnify unify = new TypeUnify(); + Set> results = new HashSet<>(); for(List> xCons : unifyCons.cartesianProduct()){ Set xConsSet = new HashSet<>(); for(Constraint constraint : xCons){ @@ -43,8 +50,9 @@ public class JavaTXCompiler { System.out.println(xConsSet); Set> result = unify.unify(xConsSet, finiteClosure); System.out.println(result); + results.addAll(result); } - + return new ResultSet(results); } public void parse(File sourceFile) throws IOException, ClassNotFoundException { diff --git a/src/de/dhbwstuttgart/parser/ClassNotFoundException.java b/src/de/dhbwstuttgart/parser/ClassNotFoundException.java new file mode 100644 index 00000000..08609467 --- /dev/null +++ b/src/de/dhbwstuttgart/parser/ClassNotFoundException.java @@ -0,0 +1,4 @@ +package de.dhbwstuttgart.parser; +public class ClassNotFoundException extends Exception{ + +} diff --git a/src/de/dhbwstuttgart/parser/InvalidClassNameException.java b/src/de/dhbwstuttgart/parser/InvalidClassNameException.java deleted file mode 100644 index 97115416..00000000 --- a/src/de/dhbwstuttgart/parser/InvalidClassNameException.java +++ /dev/null @@ -1,4 +0,0 @@ -package de.dhbwstuttgart.parser; -public class InvalidClassNameException extends Exception{ - -} diff --git a/src/de/dhbwstuttgart/parser/RunParser.java b/src/de/dhbwstuttgart/parser/RunTXParser.java similarity index 65% rename from src/de/dhbwstuttgart/parser/RunParser.java rename to src/de/dhbwstuttgart/parser/RunTXParser.java index 4480eb48..8d4c6d9e 100644 --- a/src/de/dhbwstuttgart/parser/RunParser.java +++ b/src/de/dhbwstuttgart/parser/RunTXParser.java @@ -17,22 +17,11 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; -public class RunParser{ +public class RunTXParser{ public static void main(String[] args){ try{ - File file = new File(args[0]); - Scanner sc = new Scanner(file); - String inputString = sc.nextLine(); - while(sc.hasNextLine()) inputString = inputString + sc.nextLine() + "\n"; - InputStream stream = new ByteArrayInputStream(inputString.getBytes(StandardCharsets.UTF_8)); - ANTLRInputStream input = new ANTLRInputStream(stream); - Java8Lexer lexer = new Java8Lexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - Java8Parser parser = new Java8Parser(tokens); - Java8Parser.CompilationUnitContext tree = parser.compilationUnit(); - SyntaxTreeGenerator generator = new SyntaxTreeGenerator(new JavaClassRegistry(new ArrayList<>())); - generator.setImports(tree); - SourceFile f = generator.convert((Java8Parser.CompilationUnitContext) tree); + JavaTXParser parser = new JavaTXParser(); + SourceFile f = parser.parse(new File(args[0])); String pkgName = f.getPkgName(); System.out.println("package: " + pkgName); System.out.println("Imports:"); @@ -54,12 +43,12 @@ public class RunParser{ catch(java.util.NoSuchElementException e){ System.out.println("Error: Source seems to be empty."); } + catch(ClassNotFoundException e){ + System.out.println("Class not found."); + } catch(FileNotFoundException e){ System.out.println("File not found."); } - catch(InvalidClassNameException e){ - e.printStackTrace(); - } catch(IOException e){ System.out.println("An exception occured which is on our TODO list."); e.printStackTrace(); diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java index 6a5be13b..c75f6166 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java @@ -1,5 +1,6 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.antlr.Java8Parser; import de.dhbwstuttgart.syntaxtree.*; @@ -14,7 +15,6 @@ import de.dhbwstuttgart.typecheck.JavaClassName; import de.dhbwstuttgart.typecheck.JavaClassRegistry; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.TerminalNode; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -33,7 +33,6 @@ public class StatementGenerator { this.generics = generics; } - public Method convert(Java8Parser.MethodDeclarationContext methodDeclarationContext, JavaClassName parentClass) { Java8Parser.MethodHeaderContext header = methodDeclarationContext.methodHeader(); String name = header.methodDeclarator().Identifier().getText(); @@ -60,7 +59,11 @@ public class StatementGenerator { }else{ block = this.convert(methodDeclarationContext.methodBody().block()); } - return new Method(name, retType, modifiers, parameterList,block, gtvDeclarations, methodDeclarationContext.getStart()); + if(parentClass.equals(new JavaClassName(name))){ + return new Constructor(name, retType, modifiers, parameterList, block, gtvDeclarations, methodDeclarationContext.getStart()); + }else{ + return new Method(name, retType, modifiers, parameterList,block, gtvDeclarations, methodDeclarationContext.getStart()); + } } private ParameterList convert(Java8Parser.FormalParameterListContext formalParameterListContext) { @@ -92,7 +95,7 @@ public class StatementGenerator { } /* - * StatementGeneration: + * StatementGeneration: */ private Statement convert(Java8Parser.StatementContext stmt) { @@ -234,7 +237,7 @@ public class StatementGenerator { }else throw new NotImplementedException(); ArgumentList argumentList = convert(methodInvocationContext.argumentList()); - MethodCall ret = new MethodCall(new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); + MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()),new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); return ret; } @@ -264,8 +267,9 @@ public class StatementGenerator { //Check for localVar: if(localVars.contains(expression)){ return new LocalVar(expression, offset); - }else { - throw new NotImplementedException(); + }else{ + //throw new NotImplementedException(); + //Dann Muss es ein Feld sein! } } return generateFieldVarOrClassname(expression, offset); @@ -695,7 +699,7 @@ public class StatementGenerator { }else { Java8Parser.MethodInvocation_lf_primaryContext ctxt = e.methodInvocation_lf_primary(); String methodName = ctxt.Identifier().toString(); - return new MethodCall(new Receiver(expr), methodName, convert(ctxt.argumentList()), e.getStart()); + return new MethodCall(TypePlaceholder.fresh(e.getStart()), new Receiver(expr), methodName, convert(ctxt.argumentList()), e.getStart()); } } @@ -712,13 +716,33 @@ public class StatementGenerator { return convert(expression.methodInvocation_lfno_primary()); }else if(expression.classInstanceCreationExpression_lfno_primary() != null) { return convert(expression.classInstanceCreationExpression_lfno_primary()); + }else if(expression.getText().equals("this")) { + return new This(expression.getStart()); + }else if(expression.fieldAccess_lfno_primary() != null){ + return convert(expression.fieldAccess_lfno_primary()); + }else if(expression.methodReference_lfno_primary() != null){ + throw new NotImplementedException(); + }else if(expression.typeName() != null){ + throw new NotImplementedException(); + }else if(expression.unannPrimitiveType() != null){ + throw new NotImplementedException(); + }else if(expression.arrayAccess_lfno_primary() != null){ + throw new NotImplementedException(); + }else if(expression.fieldAccess_lfno_primary() != null){ + throw new NotImplementedException(); }else{ throw new NotImplementedException(); } } + private Expression convert(Java8Parser.FieldAccess_lfno_primaryContext fieldAccess_lfno_primaryContext) { + throw new NotImplementedException(); + } + private Expression convert(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext newExpression) { if(newExpression.expressionName()!= null)throw new NotImplementedException(); + if(newExpression.typeArgumentsOrDiamond()!= null)throw new NotImplementedException(); + if(newExpression.typeArguments()!= null)throw new NotImplementedException(); TerminalNode identifier = newExpression.Identifier(0); RefType newClass = (RefType) TypeGenerator.convertTypeName(identifier.getText(),identifier.getSymbol(),reg,generics); @@ -776,12 +800,41 @@ public class StatementGenerator { } ArgumentList argumentList = convert(methodInvocationContext.argumentList()); - MethodCall ret = new MethodCall(new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); + MethodCall ret = new MethodCall(TypePlaceholder.fresh(methodInvocationContext.getStart()), new Receiver(receiver), name, argumentList, methodInvocationContext.getStart()); return ret; } - private static Expression convert(Java8Parser.LambdaExpressionContext expression) { - throw new NotImplementedException(); + private Expression convert(Java8Parser.LambdaExpressionContext expression) { + Java8Parser.LambdaParametersContext lambdaParams = expression.lambdaParameters(); + ParameterList params; + if(lambdaParams.Identifier() != null){ + List parameterList = new ArrayList<>(); + parameterList.add(new FormalParameter(lambdaParams.Identifier().getText(), + TypePlaceholder.fresh(lambdaParams.getStart()), lambdaParams.getStart())); + params = new ParameterList(parameterList, lambdaParams.getStart()); + }else if(lambdaParams.formalParameterList() != null){ + params = convert(lambdaParams.formalParameterList()); + //}else if( lambdaParams.inferredFormalParameterList != null){ + }else { + params = new ParameterList(new ArrayList<>(), expression.getStart()); + } + + Block block; + if(expression.lambdaBody().expression() != null){ + List statements = new ArrayList<>(); + statements.add(new Return(convert(expression.lambdaBody().expression()), + expression.lambdaBody().expression().getStart())); + block = new Block(statements, expression.lambdaBody().getStart()); + }else{ + block = convert(expression.lambdaBody().block()); + } + List funNParams = new ArrayList<>(); + funNParams.add(TypePlaceholder.fresh(expression.getStart()));//ret-Type + params.getFormalparalist().forEach(formalParameter -> //Für jeden Parameter einen TPH anfügen: + funNParams.add(TypePlaceholder.fresh(expression.getStart()))); + RefType lambdaType = new RefType(reg.getName("Fun"+params.getFormalparalist().size()), + funNParams, expression.getStart()); + return new LambdaExpression(lambdaType, params, block, expression.getStart()); } } diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java index 23ad5028..84d2cee2 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java @@ -1,8 +1,7 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; import de.dhbwstuttgart.exceptions.NotImplementedException; -import de.dhbwstuttgart.parser.InvalidClassNameException; -import de.dhbwstuttgart.parser.NullToken; +import de.dhbwstuttgart.parser.ClassNotFoundException; import de.dhbwstuttgart.parser.PackageCrawler; import de.dhbwstuttgart.parser.antlr.Java8Parser; import de.dhbwstuttgart.syntaxtree.*; @@ -109,7 +108,7 @@ public class SyntaxTreeGenerator{ return ret; } - public void setImports(Java8Parser.CompilationUnitContext ctx) throws InvalidClassNameException { + public void setImports(Java8Parser.CompilationUnitContext ctx) throws ClassNotFoundException { List newImports = new ArrayList(); for(Java8Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){ if(importDeclCtx.singleTypeImportDeclaration() != null){ @@ -128,7 +127,7 @@ public class SyntaxTreeGenerator{ this.imports.addAll(newImports); } - private JavaClassName convertSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) throws InvalidClassNameException{ + private JavaClassName convertSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) throws ClassNotFoundException{ String typeName = convertTypeName(ctx.typeName()); String packageName = getPackageFromClass(typeName); List classes = PackageCrawler.getClassNames(packageName); @@ -138,7 +137,7 @@ public class SyntaxTreeGenerator{ return ret; } else{ - throw new InvalidClassNameException(); + throw new ClassNotFoundException(); } } @@ -164,9 +163,10 @@ public class SyntaxTreeGenerator{ return ret; } - public SourceFile convert(Java8Parser.CompilationUnitContext ctx){ + public SourceFile convert(Java8Parser.CompilationUnitContext ctx) throws ClassNotFoundException{ List classes = new ArrayList<>(); this.getNames(ctx); + this.setImports(ctx); for(Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){ ClassOrInterface newClass; if(typeDecl.classDeclaration() != null){ @@ -200,11 +200,26 @@ public class SyntaxTreeGenerator{ } } JavaClassName name = reg.getName(ctx.Identifier().getText()); + Token offset = ctx.getStart(); GenericDeclarationList genericClassParameters = TypeGenerator.convert(ctx.typeParameters(), name, "",reg, generics); List fielddecl = convertFields(ctx.classBody()); List methods = convertMethods(ctx.classBody(), name); + List konstruktoren = new ArrayList<>(); + for(int i = 0; i implementedInterfaces = null; - return new ClassOrInterface(modifiers, name, fielddecl, methods, genericClassParameters, superClass, isInterface, implementedInterfaces, offset); + return new ClassOrInterface(modifiers, name, fielddecl, methods, konstruktoren, genericClassParameters, superClass, isInterface, implementedInterfaces, offset); + } + + private Constructor generateStandardConstructor(String className, GenericDeclarationList classGenerics, Token offset){ + RefType classType = ClassOrInterface.generateTypeOfClass(reg.getName(className), classGenerics, offset); + int modifiers = 0; + ParameterList params = new ParameterList(new ArrayList<>(), offset); + //TODO: Konstruktor muss Felder initialisieren: + Block block = new Block(new ArrayList<>(), offset); + return new Constructor(className, classType, modifiers, params, block, classGenerics, offset); } private RefType convert(Java8Parser.SuperclassContext superclass) { @@ -290,6 +314,7 @@ public class SyntaxTreeGenerator{ // Initialize a field by creating implicit constructor. private void initializeField(Java8Parser.FieldDeclarationContext ctx){ //TODO + throw new NotImplementedException(); } public static int convertModifier(String modifier){ diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java index 43609a08..0d30132e 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/TypeGenerator.java @@ -1,5 +1,6 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.exceptions.TypeinferenceException; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.antlr.Java8Parser; @@ -7,6 +8,7 @@ import de.dhbwstuttgart.syntaxtree.GTVDeclarationContext; import de.dhbwstuttgart.syntaxtree.GenericDeclarationList; import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; +import de.dhbwstuttgart.syntaxtree.statement.ArgumentList; import de.dhbwstuttgart.syntaxtree.type.GenericRefType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; @@ -15,7 +17,6 @@ import de.dhbwstuttgart.typecheck.GenericTypeName; import de.dhbwstuttgart.typecheck.JavaClassName; import de.dhbwstuttgart.typecheck.JavaClassRegistry; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.ArrayList; import java.util.List; @@ -23,8 +24,23 @@ import java.util.List; public class TypeGenerator { public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannClassOrInterfaceTypeContext unannClassOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) { - String name = unannClassOrInterfaceTypeContext.getText(); - return convertTypeName(name,unannClassOrInterfaceTypeContext.getStart(), reg, generics); + String name; + if(unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType() != null){ + name = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().Identifier().getText(); + } + Java8Parser.TypeArgumentsContext arguments; + if(unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType() != null){ + name = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().Identifier().getText(); + arguments = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().typeArguments(); + }else{// if(unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType() != null){ + name = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().getText(); + arguments = unannClassOrInterfaceTypeContext.unannInterfaceType_lfno_unannClassOrInterfaceType().unannClassType_lfno_unannClassOrInterfaceType().typeArguments(); + } + if(arguments == null){ + return convertTypeName(name,unannClassOrInterfaceTypeContext.getStart(), reg, generics); + }else{ + return null; + } } public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannTypeContext unannTypeContext, JavaClassRegistry reg, GenericsRegistry genericsRegistry) { @@ -78,6 +94,11 @@ public class TypeGenerator { } public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName(String name, Token offset, JavaClassRegistry reg, GenericsRegistry generics){ + return convertTypeName(name, null, offset, reg, generics); + } + + public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName( + String name, Java8Parser.TypeArgumentsContext typeArguments, Token offset, JavaClassRegistry reg, GenericsRegistry generics){ if(!reg.contains(name)){ //Dann könnte es ein Generische Type sein: if(generics.keySet().contains(name)){ return new GenericRefType(new GenericTypeName(generics.get(name),name), offset); @@ -85,7 +106,23 @@ public class TypeGenerator { throw new TypeinferenceException("Der Typ "+ name + " ist nicht vorhanden",offset); } } - return new RefType(reg.getName(name), offset); + if(typeArguments == null){ + return new RefType(reg.getName(name), offset); + }else{ + return new RefType(reg.getName(name), convert(typeArguments, reg, generics), offset); + } } + public static List convert(Java8Parser.TypeArgumentsContext typeArguments, + JavaClassRegistry reg, GenericsRegistry generics){ + List ret = new ArrayList<>(); + for(Java8Parser.TypeArgumentContext arg : typeArguments.typeArgumentList().typeArgument()){ + if(arg.wildcard() != null){ + throw new NotImplementedException(); + }else{ + ret.add(convert(arg.referenceType(), reg, generics)); + } + } + return ret; + } } diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8.g4 b/src/de/dhbwstuttgart/parser/antlr/Java8.g4 index c79f52ba..fc8783f0 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8.g4 +++ b/src/de/dhbwstuttgart/parser/antlr/Java8.g4 @@ -352,7 +352,7 @@ variableDeclaratorList ; variableDeclarator - : variableDeclaratorId //('=' variableInitializer)? //auskommentiert, weil variablenDecklaration sonst nicht eindeutig + : variableDeclaratorId ('=' variableInitializer)? //auskommentiert, weil variablenDecklaration sonst nicht eindeutig ; variableDeclaratorId @@ -1011,17 +1011,17 @@ primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary ; primaryNoNewArray_lfno_primary - : literal + : literal //done | typeName ('[' ']')* '.' 'class' | unannPrimitiveType ('[' ']')* '.' 'class' | 'void' '.' 'class' | 'this' | typeName '.' 'this' - | '(' expression ')' - | classInstanceCreationExpression_lfno_primary + | '(' expression ')' //done + | classInstanceCreationExpression_lfno_primary //done | fieldAccess_lfno_primary | arrayAccess_lfno_primary - | methodInvocation_lfno_primary + | methodInvocation_lfno_primary //done | methodReference_lfno_primary ; @@ -1180,7 +1180,7 @@ lambdaExpression lambdaParameters : Identifier | '(' formalParameterList? ')' - | '(' inferredFormalParameterList ')' + //| '(' inferredFormalParameterList ')' ; inferredFormalParameterList diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java index df61e73b..ed02b587 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Lexer.java @@ -1,4 +1,4 @@ -// Generated from Java8.g4 by ANTLR 4.5.3 +// Generated from /home/janulrich/Development/intellijworkspace/JavaCompilerCore/src/de/dhbwstuttgart/parser/antlr/Java8.g4 by ANTLR 4.5.1 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.CharStream; @@ -11,7 +11,7 @@ import org.antlr.v4.runtime.misc.*; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class Java8Lexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = diff --git a/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java b/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java index 2263d056..50a4c6f2 100644 --- a/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java +++ b/src/de/dhbwstuttgart/parser/antlr/Java8Parser.java @@ -1,4 +1,4 @@ -// Generated from Java8.g4 by ANTLR 4.5.3 +// Generated from /home/janulrich/Development/intellijworkspace/JavaCompilerCore/src/de/dhbwstuttgart/parser/antlr/Java8.g4 by ANTLR 4.5.1 package de.dhbwstuttgart.parser.antlr; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; @@ -6,10 +6,12 @@ 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"}) public class Java8Parser extends Parser { - static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); } + static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = @@ -282,14 +284,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_literal; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLiteral(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLiteral(this); - } } public final LiteralContext literal() throws RecognitionException { @@ -330,14 +324,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_type; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitType(this); - } } public final TypeContext type() throws RecognitionException { @@ -345,7 +331,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 2, RULE_type); try { setState(478); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -388,14 +373,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimitiveType(this); - } } public final PrimitiveTypeContext primitiveType() throws RecognitionException { @@ -404,7 +381,6 @@ public class Java8Parser extends Parser { int _la; try { setState(494); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -472,14 +448,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_numericType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNumericType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNumericType(this); - } } public final NumericTypeContext numericType() throws RecognitionException { @@ -527,14 +495,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_integralType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIntegralType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIntegralType(this); - } } public final IntegralTypeContext integralType() throws RecognitionException { @@ -569,14 +529,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_floatingPointType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFloatingPointType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFloatingPointType(this); - } } public final FloatingPointTypeContext floatingPointType() throws RecognitionException { @@ -620,14 +572,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_referenceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReferenceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReferenceType(this); - } } public final ReferenceTypeContext referenceType() throws RecognitionException { @@ -635,7 +579,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 12, RULE_referenceType); try { setState(507); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -694,14 +637,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceType(this); - } } public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { @@ -712,7 +647,6 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(511); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { case 1: { @@ -734,7 +668,6 @@ public class Java8Parser extends Parser { if ( _alt==1 ) { { setState(515); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { case 1: { @@ -786,14 +719,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType(this); - } } public final ClassTypeContext classType() throws RecognitionException { @@ -802,7 +727,6 @@ public class Java8Parser extends Parser { int _la; try { setState(542); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -896,14 +820,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType_lf_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lf_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lf_classOrInterfaceType(this); - } } public final ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() throws RecognitionException { @@ -932,7 +848,6 @@ public class Java8Parser extends Parser { setState(551); match(Identifier); setState(553); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) { case 1: { @@ -969,14 +884,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classType_lfno_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lfno_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lfno_classOrInterfaceType(this); - } } public final ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() throws RecognitionException { @@ -1003,7 +910,6 @@ public class Java8Parser extends Parser { setState(561); match(Identifier); setState(563); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) { case 1: { @@ -1033,14 +939,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType(this); - } } public final InterfaceTypeContext interfaceType() throws RecognitionException { @@ -1072,14 +970,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType_lf_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lf_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lf_classOrInterfaceType(this); - } } public final InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType() throws RecognitionException { @@ -1111,14 +1001,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceType_lfno_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lfno_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lfno_classOrInterfaceType(this); - } } public final InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() throws RecognitionException { @@ -1154,14 +1036,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeVariable; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeVariable(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeVariable(this); - } } public final TypeVariableContext typeVariable() throws RecognitionException { @@ -1217,14 +1091,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayType(this); - } } public final ArrayTypeContext arrayType() throws RecognitionException { @@ -1232,7 +1098,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 30, RULE_arrayType); try { setState(588); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1285,14 +1150,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dims; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDims(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDims(this); - } } public final DimsContext dims() throws RecognitionException { @@ -1381,14 +1238,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameter(this); - } } public final TypeParameterContext typeParameter() throws RecognitionException { @@ -1444,14 +1293,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameterModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterModifier(this); - } } public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { @@ -1492,14 +1333,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeBound; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeBound(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeBound(this); - } } public final TypeBoundContext typeBound() throws RecognitionException { @@ -1508,7 +1341,6 @@ public class Java8Parser extends Parser { int _la; try { setState(633); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1563,14 +1395,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_additionalBound; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditionalBound(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditionalBound(this); - } } public final AdditionalBoundContext additionalBound() throws RecognitionException { @@ -1604,14 +1428,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArguments; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArguments(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArguments(this); - } } public final TypeArgumentsContext typeArguments() throws RecognitionException { @@ -1650,14 +1466,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgumentList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentList(this); - } } public final TypeArgumentListContext typeArgumentList() throws RecognitionException { @@ -1709,14 +1517,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgument; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgument(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgument(this); - } } public final TypeArgumentContext typeArgument() throws RecognitionException { @@ -1724,7 +1524,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 46, RULE_typeArgument); try { setState(652); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -1767,14 +1566,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_wildcard; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcard(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcard(this); - } } public final WildcardContext wildcard() throws RecognitionException { @@ -1830,14 +1621,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_wildcardBounds; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcardBounds(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcardBounds(this); - } } public final WildcardBoundsContext wildcardBounds() throws RecognitionException { @@ -1888,14 +1671,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageName(this); - } } public final PackageNameContext packageName() throws RecognitionException { @@ -1964,14 +1739,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeName(this); - } } public final TypeNameContext typeName() throws RecognitionException { @@ -1979,7 +1746,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 54, RULE_typeName); try { setState(686); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2021,14 +1787,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageOrTypeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageOrTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageOrTypeName(this); - } } public final PackageOrTypeNameContext packageOrTypeName() throws RecognitionException { @@ -2097,14 +1855,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expressionName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionName(this); - } } public final ExpressionNameContext expressionName() throws RecognitionException { @@ -2112,7 +1862,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 58, RULE_expressionName); try { setState(704); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2151,14 +1900,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodName(this); - } } public final MethodNameContext methodName() throws RecognitionException { @@ -2191,14 +1932,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ambiguousName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAmbiguousName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAmbiguousName(this); - } } public final AmbiguousNameContext ambiguousName() throws RecognitionException { @@ -2279,14 +2012,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_compilationUnit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCompilationUnit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCompilationUnit(this); - } } public final CompilationUnitContext compilationUnit() throws RecognitionException { @@ -2297,7 +2022,6 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { setState(720); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) { case 1: { @@ -2364,14 +2088,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageDeclaration(this); - } } public final PackageDeclarationContext packageDeclaration() throws RecognitionException { @@ -2438,14 +2154,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_packageModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageModifier(this); - } } public final PackageModifierContext packageModifier() throws RecognitionException { @@ -2486,14 +2194,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_importDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitImportDeclaration(this); - } } public final ImportDeclarationContext importDeclaration() throws RecognitionException { @@ -2501,7 +2201,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 70, RULE_importDeclaration); try { setState(759); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2552,14 +2251,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleTypeImportDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleTypeImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleTypeImportDeclaration(this); - } } public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { @@ -2595,14 +2286,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeImportOnDemandDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeImportOnDemandDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeImportOnDemandDeclaration(this); - } } public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { @@ -2643,14 +2326,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleStaticImportDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleStaticImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleStaticImportDeclaration(this); - } } public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { @@ -2692,14 +2367,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_staticImportOnDemandDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticImportOnDemandDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticImportOnDemandDeclaration(this); - } } public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { @@ -2744,14 +2411,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeDeclaration(this); - } } public final TypeDeclarationContext typeDeclaration() throws RecognitionException { @@ -2759,7 +2418,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 80, RULE_typeDeclaration); try { setState(788); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2806,14 +2464,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassDeclaration(this); - } } public final ClassDeclarationContext classDeclaration() throws RecognitionException { @@ -2821,7 +2471,6 @@ public class Java8Parser extends Parser { enterRule(_localctx, 82, RULE_classDeclaration); try { setState(792); - _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -2874,14 +2523,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalClassDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalClassDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalClassDeclaration(this); - } } public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { @@ -2959,14 +2600,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassModifier(this); - } } public final ClassModifierContext classModifier() throws RecognitionException { @@ -3054,14 +2687,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameters(this); - } } public final TypeParametersContext typeParameters() throws RecognitionException { @@ -3100,14 +2725,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterList(this); - } } public final TypeParameterListContext typeParameterList() throws RecognitionException { @@ -3156,14 +2773,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_superclass; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperclass(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperclass(this); - } } public final SuperclassContext superclass() throws RecognitionException { @@ -3197,14 +2806,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_superinterfaces; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperinterfaces(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperinterfaces(this); - } } public final SuperinterfacesContext superinterfaces() throws RecognitionException { @@ -3241,14 +2842,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceTypeList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceTypeList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceTypeList(this); - } } public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { @@ -3300,14 +2893,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBody(this); - } } public final ClassBodyContext classBody() throws RecognitionException { @@ -3358,29 +2943,17 @@ public class Java8Parser extends Parser { public StaticInitializerContext staticInitializer() { return getRuleContext(StaticInitializerContext.class,0); } - public ConstructorDeclarationContext constructorDeclaration() { - return getRuleContext(ConstructorDeclarationContext.class,0); - } public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBodyDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBodyDeclaration(this); - } } public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); enterRule(_localctx, 100, RULE_classBodyDeclaration); try { - setState(862); - _errHandler.sync(this); + setState(861); switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); @@ -3403,13 +2976,6 @@ public class Java8Parser extends Parser { staticInitializer(); } break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(861); - constructorDeclaration(); - } - break; } } catch (RecognitionException re) { @@ -3440,55 +3006,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassMemberDeclaration(this); - } } public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState()); enterRule(_localctx, 102, RULE_classMemberDeclaration); try { - setState(869); - _errHandler.sync(this); + setState(868); switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(864); + setState(863); fieldDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(865); + setState(864); methodDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(866); + setState(865); classDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(867); + setState(866); interfaceDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(868); + setState(867); match(SEMI); } break; @@ -3522,14 +3079,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldDeclaration(this); - } } public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { @@ -3539,33 +3088,32 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(874); + setState(873); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0) || _la==AT) { { { - setState(871); + setState(870); fieldModifier(); } } - setState(876); + setState(875); _errHandler.sync(this); _la = _input.LA(1); } - setState(878); - _errHandler.sync(this); + setState(877); switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) { case 1: { - setState(877); + setState(876); unannType(); } break; } - setState(880); + setState(879); variableDeclaratorList(); - setState(881); + setState(880); match(SEMI); } } @@ -3588,75 +3136,67 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldModifier(this); - } } public final FieldModifierContext fieldModifier() throws RecognitionException { FieldModifierContext _localctx = new FieldModifierContext(_ctx, getState()); enterRule(_localctx, 106, RULE_fieldModifier); try { - setState(891); + setState(890); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(883); + setState(882); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(884); + setState(883); match(PUBLIC); } break; case PROTECTED: enterOuterAlt(_localctx, 3); { - setState(885); + setState(884); match(PROTECTED); } break; case PRIVATE: enterOuterAlt(_localctx, 4); { - setState(886); + setState(885); match(PRIVATE); } break; case STATIC: enterOuterAlt(_localctx, 5); { - setState(887); + setState(886); match(STATIC); } break; case FINAL: enterOuterAlt(_localctx, 6); { - setState(888); + setState(887); match(FINAL); } break; case TRANSIENT: enterOuterAlt(_localctx, 7); { - setState(889); + setState(888); match(TRANSIENT); } break; case VOLATILE: enterOuterAlt(_localctx, 8); { - setState(890); + setState(889); match(VOLATILE); } break; @@ -3686,14 +3226,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclaratorList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorList(this); - } } public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { @@ -3703,21 +3235,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(893); + setState(892); variableDeclarator(); - setState(898); + setState(897); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(894); + setState(893); match(COMMA); - setState(895); + setState(894); variableDeclarator(); } } - setState(900); + setState(899); _errHandler.sync(this); _la = _input.LA(1); } @@ -3745,14 +3277,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarator(this); - } } public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { @@ -3762,15 +3286,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(901); + setState(900); variableDeclaratorId(); - setState(904); + setState(903); _la = _input.LA(1); if (_la==ASSIGN) { { - setState(902); + setState(901); match(ASSIGN); - setState(903); + setState(902); variableInitializer(); } } @@ -3797,14 +3321,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorId(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorId(this); - } } public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { @@ -3814,13 +3330,13 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(906); + setState(905); match(Identifier); - setState(908); + setState(907); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { - setState(907); + setState(906); dims(); } } @@ -3849,21 +3365,13 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializer(this); - } } public final VariableInitializerContext variableInitializer() throws RecognitionException { VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); enterRule(_localctx, 114, RULE_variableInitializer); try { - setState(912); + setState(911); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -3894,14 +3402,14 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 1); { - setState(910); + setState(909); expression(); } break; case LBRACE: enterOuterAlt(_localctx, 2); { - setState(911); + setState(910); arrayInitializer(); } break; @@ -3931,34 +3439,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannType(this); - } } public final UnannTypeContext unannType() throws RecognitionException { UnannTypeContext _localctx = new UnannTypeContext(_ctx, getState()); enterRule(_localctx, 116, RULE_unannType); try { - setState(916); - _errHandler.sync(this); + setState(915); switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(914); + setState(913); unannPrimitiveType(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(915); + setState(914); unannReferenceType(); } break; @@ -3983,21 +3482,13 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannPrimitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannPrimitiveType(this); - } } public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { UnannPrimitiveTypeContext _localctx = new UnannPrimitiveTypeContext(_ctx, getState()); enterRule(_localctx, 118, RULE_unannPrimitiveType); try { - setState(920); + setState(919); switch (_input.LA(1)) { case BYTE: case CHAR: @@ -4008,14 +3499,14 @@ public class Java8Parser extends Parser { case SHORT: enterOuterAlt(_localctx, 1); { - setState(918); + setState(917); numericType(); } break; case BOOLEAN: enterOuterAlt(_localctx, 2); { - setState(919); + setState(918); match(BOOLEAN); } break; @@ -4048,41 +3539,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannReferenceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannReferenceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannReferenceType(this); - } } public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { UnannReferenceTypeContext _localctx = new UnannReferenceTypeContext(_ctx, getState()); enterRule(_localctx, 120, RULE_unannReferenceType); try { - setState(925); - _errHandler.sync(this); + setState(924); switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(922); + setState(921); unannClassOrInterfaceType(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(923); + setState(922); unannTypeVariable(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(924); + setState(923); unannArrayType(); } break; @@ -4122,14 +3604,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassOrInterfaceType(this); - } } public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { @@ -4139,47 +3613,45 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(929); - _errHandler.sync(this); + setState(928); switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) { case 1: { - setState(927); + setState(926); unannClassType_lfno_unannClassOrInterfaceType(); } break; case 2: { - setState(928); + setState(927); unannInterfaceType_lfno_unannClassOrInterfaceType(); } break; } - setState(935); + setState(934); _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(933); - _errHandler.sync(this); + setState(932); switch ( getInterpreter().adaptivePredict(_input,66,_ctx) ) { case 1: { - setState(931); + setState(930); unannClassType_lf_unannClassOrInterfaceType(); } break; case 2: { - setState(932); + setState(931); unannInterfaceType_lf_unannClassOrInterfaceType(); } break; } } } - setState(937); + setState(936); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,67,_ctx); } @@ -4214,14 +3686,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType(this); - } } public final UnannClassTypeContext unannClassType() throws RecognitionException { @@ -4229,19 +3693,18 @@ public class Java8Parser extends Parser { enterRule(_localctx, 124, RULE_unannClassType); int _la; try { - setState(954); - _errHandler.sync(this); + setState(953); switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(938); + setState(937); match(Identifier); - setState(940); + setState(939); _la = _input.LA(1); if (_la==LT) { { - setState(939); + setState(938); typeArguments(); } } @@ -4251,31 +3714,31 @@ public class Java8Parser extends Parser { case 2: enterOuterAlt(_localctx, 2); { - setState(942); + setState(941); unannClassOrInterfaceType(); - setState(943); + setState(942); match(DOT); - setState(947); + setState(946); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(944); + setState(943); annotation(); } } - setState(949); + setState(948); _errHandler.sync(this); _la = _input.LA(1); } - setState(950); + setState(949); match(Identifier); - setState(952); + setState(951); _la = _input.LA(1); if (_la==LT) { { - setState(951); + setState(950); typeArguments(); } } @@ -4310,14 +3773,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType_lf_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lf_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lf_unannClassOrInterfaceType(this); - } } public final UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() throws RecognitionException { @@ -4327,29 +3782,29 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(956); + setState(955); match(DOT); - setState(960); + setState(959); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(957); + setState(956); annotation(); } } - setState(962); + setState(961); _errHandler.sync(this); _la = _input.LA(1); } - setState(963); + setState(962); match(Identifier); - setState(965); + setState(964); _la = _input.LA(1); if (_la==LT) { { - setState(964); + setState(963); typeArguments(); } } @@ -4376,14 +3831,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannClassType_lfno_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lfno_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lfno_unannClassOrInterfaceType(this); - } } public final UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() throws RecognitionException { @@ -4393,13 +3840,13 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(967); + setState(966); match(Identifier); - setState(969); + setState(968); _la = _input.LA(1); if (_la==LT) { { - setState(968); + setState(967); typeArguments(); } } @@ -4425,14 +3872,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType(this); - } } public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { @@ -4441,7 +3880,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(971); + setState(970); unannClassType(); } } @@ -4464,14 +3903,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType_lf_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lf_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lf_unannClassOrInterfaceType(this); - } } public final UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType() throws RecognitionException { @@ -4480,7 +3911,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(973); + setState(972); unannClassType_lf_unannClassOrInterfaceType(); } } @@ -4503,14 +3934,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannInterfaceType_lfno_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lfno_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lfno_unannClassOrInterfaceType(this); - } } public final UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() throws RecognitionException { @@ -4519,7 +3942,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(975); + setState(974); unannClassType_lfno_unannClassOrInterfaceType(); } } @@ -4540,14 +3963,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannTypeVariable; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeVariable(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeVariable(this); - } } public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { @@ -4556,7 +3971,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(977); + setState(976); match(Identifier); } } @@ -4588,47 +4003,38 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unannArrayType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannArrayType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannArrayType(this); - } } public final UnannArrayTypeContext unannArrayType() throws RecognitionException { UnannArrayTypeContext _localctx = new UnannArrayTypeContext(_ctx, getState()); enterRule(_localctx, 138, RULE_unannArrayType); try { - setState(988); - _errHandler.sync(this); + setState(987); switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(979); + setState(978); unannPrimitiveType(); - setState(980); + setState(979); dims(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(982); + setState(981); unannClassOrInterfaceType(); - setState(983); + setState(982); dims(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(985); + setState(984); unannTypeVariable(); - setState(986); + setState(985); dims(); } break; @@ -4662,14 +4068,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclaration(this); - } } public final MethodDeclarationContext methodDeclaration() throws RecognitionException { @@ -4679,23 +4077,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(993); + setState(992); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED))) != 0) || _la==AT) { { { - setState(990); + setState(989); methodModifier(); } } - setState(995); + setState(994); _errHandler.sync(this); _la = _input.LA(1); } - setState(996); + setState(995); methodHeader(); - setState(997); + setState(996); methodBody(); } } @@ -4718,89 +4116,81 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodModifier(this); - } } public final MethodModifierContext methodModifier() throws RecognitionException { MethodModifierContext _localctx = new MethodModifierContext(_ctx, getState()); enterRule(_localctx, 142, RULE_methodModifier); try { - setState(1009); + setState(1008); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(999); + setState(998); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1000); + setState(999); match(PUBLIC); } break; case PROTECTED: enterOuterAlt(_localctx, 3); { - setState(1001); + setState(1000); match(PROTECTED); } break; case PRIVATE: enterOuterAlt(_localctx, 4); { - setState(1002); + setState(1001); match(PRIVATE); } break; case ABSTRACT: enterOuterAlt(_localctx, 5); { - setState(1003); + setState(1002); match(ABSTRACT); } break; case STATIC: enterOuterAlt(_localctx, 6); { - setState(1004); + setState(1003); match(STATIC); } break; case FINAL: enterOuterAlt(_localctx, 7); { - setState(1005); + setState(1004); match(FINAL); } break; case SYNCHRONIZED: enterOuterAlt(_localctx, 8); { - setState(1006); + setState(1005); match(SYNCHRONIZED); } break; case NATIVE: enterOuterAlt(_localctx, 9); { - setState(1007); + setState(1006); match(NATIVE); } break; case STRICTFP: enterOuterAlt(_localctx, 10); { - setState(1008); + setState(1007); match(STRICTFP); } break; @@ -4842,14 +4232,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodHeader; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodHeader(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodHeader(this); - } } public final MethodHeaderContext methodHeader() throws RecognitionException { @@ -4857,7 +4239,7 @@ public class Java8Parser extends Parser { enterRule(_localctx, 144, RULE_methodHeader); int _la; try { - setState(1030); + setState(1031); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -4871,23 +4253,22 @@ public class Java8Parser extends Parser { case Identifier: enterOuterAlt(_localctx, 1); { - setState(1012); - _errHandler.sync(this); + setState(1011); switch ( getInterpreter().adaptivePredict(_input,78,_ctx) ) { case 1: { - setState(1011); + setState(1010); result(); } break; } - setState(1014); + setState(1013); methodDeclarator(); - setState(1016); + setState(1015); _la = _input.LA(1); if (_la==THROWS) { { - setState(1015); + setState(1014); throws_(); } } @@ -4897,31 +4278,38 @@ public class Java8Parser extends Parser { case LT: enterOuterAlt(_localctx, 2); { - setState(1018); + setState(1017); typeParameters(); - setState(1022); + setState(1021); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(1019); + setState(1018); annotation(); } } - setState(1024); + setState(1023); _errHandler.sync(this); _la = _input.LA(1); } setState(1025); - result(); - setState(1026); + switch ( getInterpreter().adaptivePredict(_input,81,_ctx) ) { + case 1: + { + setState(1024); + result(); + } + break; + } + setState(1027); methodDeclarator(); - setState(1028); + setState(1029); _la = _input.LA(1); if (_la==THROWS) { { - setState(1027); + setState(1028); throws_(); } } @@ -4951,21 +4339,13 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_result; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResult(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResult(this); - } } public final ResultContext result() throws RecognitionException { ResultContext _localctx = new ResultContext(_ctx, getState()); enterRule(_localctx, 146, RULE_result); try { - setState(1034); + setState(1035); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -4978,14 +4358,14 @@ public class Java8Parser extends Parser { case Identifier: enterOuterAlt(_localctx, 1); { - setState(1032); + setState(1033); unannType(); } break; case VOID: enterOuterAlt(_localctx, 2); { - setState(1033); + setState(1034); match(VOID); } break; @@ -5016,14 +4396,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclarator(this); - } } public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { @@ -5033,26 +4405,26 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1036); - match(Identifier); setState(1037); + match(Identifier); + setState(1038); match(LPAREN); - setState(1039); + setState(1040); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { - setState(1038); + setState(1039); formalParameterList(); } } - setState(1041); + setState(1042); match(RPAREN); - setState(1043); + setState(1044); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { - setState(1042); + setState(1043); dims(); } } @@ -5081,38 +4453,29 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameterList(this); - } } public final FormalParameterListContext formalParameterList() throws RecognitionException { FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); enterRule(_localctx, 150, RULE_formalParameterList); try { - setState(1050); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { + setState(1051); + switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1045); - formalParameters(); setState(1046); - match(COMMA); + formalParameters(); setState(1047); + match(COMMA); + setState(1048); lastFormalParameter(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1049); + setState(1050); lastFormalParameter(); } break; @@ -5143,14 +4506,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameters(this); - } } public final FormalParametersContext formalParameters() throws RecognitionException { @@ -5158,59 +4513,58 @@ public class Java8Parser extends Parser { enterRule(_localctx, 152, RULE_formalParameters); try { int _alt; - setState(1068); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + setState(1069); + switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1052); + setState(1053); formalParameter(); - setState(1057); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1053); - match(COMMA); - setState(1054); - formalParameter(); - } - } - } - setState(1059); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1060); - receiverParameter(); - setState(1065); + setState(1058); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,88,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1061); + setState(1054); match(COMMA); - setState(1062); + setState(1055); formalParameter(); } } } - setState(1067); + setState(1060); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,88,_ctx); } } break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1061); + receiverParameter(); + setState(1066); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,89,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1062); + match(COMMA); + setState(1063); + formalParameter(); + } + } + } + setState(1068); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,89,_ctx); + } + } + break; } } catch (RecognitionException re) { @@ -5241,14 +4595,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_formalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameter(this); - } } public final FormalParameterContext formalParameter() throws RecognitionException { @@ -5258,31 +4604,30 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1073); + setState(1074); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1070); + setState(1071); variableModifier(); } } - setState(1075); + setState(1076); _errHandler.sync(this); _la = _input.LA(1); } - setState(1077); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) { + setState(1078); + switch ( getInterpreter().adaptivePredict(_input,92,_ctx) ) { case 1: { - setState(1076); + setState(1077); unannType(); } break; } - setState(1079); + setState(1080); variableDeclaratorId(); } } @@ -5305,33 +4650,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableModifier(this); - } } public final VariableModifierContext variableModifier() throws RecognitionException { VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); enterRule(_localctx, 156, RULE_variableModifier); try { - setState(1083); + setState(1084); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1081); + setState(1082); annotation(); } break; case FINAL: enterOuterAlt(_localctx, 2); { - setState(1082); + setState(1083); match(FINAL); } break; @@ -5376,14 +4713,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lastFormalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLastFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLastFormalParameter(this); - } } public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { @@ -5391,52 +4720,51 @@ public class Java8Parser extends Parser { enterRule(_localctx, 158, RULE_lastFormalParameter); int _la; try { - setState(1102); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,95,_ctx) ) { + setState(1103); + switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1088); + setState(1089); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1085); + setState(1086); variableModifier(); } } - setState(1090); + setState(1091); _errHandler.sync(this); _la = _input.LA(1); } - setState(1091); + setState(1092); unannType(); - setState(1095); + setState(1096); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(1092); + setState(1093); annotation(); } } - setState(1097); + setState(1098); _errHandler.sync(this); _la = _input.LA(1); } - setState(1098); - match(ELLIPSIS); setState(1099); + match(ELLIPSIS); + setState(1100); variableDeclaratorId(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1101); + setState(1102); formalParameter(); } break; @@ -5468,14 +4796,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_receiverParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReceiverParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReceiverParameter(this); - } } public final ReceiverParameterContext receiverParameter() throws RecognitionException { @@ -5485,34 +4805,34 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1107); + setState(1108); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(1104); + setState(1105); annotation(); } } - setState(1109); + setState(1110); _errHandler.sync(this); _la = _input.LA(1); } - setState(1110); + setState(1111); unannType(); - setState(1113); + setState(1114); _la = _input.LA(1); if (_la==Identifier) { { - setState(1111); - match(Identifier); setState(1112); + match(Identifier); + setState(1113); match(DOT); } } - setState(1115); + setState(1116); match(THIS); } } @@ -5535,14 +4855,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_throws_; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrows_(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrows_(this); - } } public final Throws_Context throws_() throws RecognitionException { @@ -5551,9 +4863,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1117); - match(THROWS); setState(1118); + match(THROWS); + setState(1119); exceptionTypeList(); } } @@ -5579,14 +4891,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exceptionTypeList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionTypeList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionTypeList(this); - } } public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { @@ -5596,21 +4900,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1120); + setState(1121); exceptionType(); - setState(1125); + setState(1126); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(1121); - match(COMMA); setState(1122); + match(COMMA); + setState(1123); exceptionType(); } } - setState(1127); + setState(1128); _errHandler.sync(this); _la = _input.LA(1); } @@ -5638,34 +4942,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exceptionType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionType(this); - } } public final ExceptionTypeContext exceptionType() throws RecognitionException { ExceptionTypeContext _localctx = new ExceptionTypeContext(_ctx, getState()); enterRule(_localctx, 166, RULE_exceptionType); try { - setState(1130); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) { + setState(1131); + switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1128); + setState(1129); classType(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1129); + setState(1130); typeVariable(); } break; @@ -5690,33 +4985,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodBody(this); - } } public final MethodBodyContext methodBody() throws RecognitionException { MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); enterRule(_localctx, 168, RULE_methodBody); try { - setState(1134); + setState(1135); switch (_input.LA(1)) { case LBRACE: enterOuterAlt(_localctx, 1); { - setState(1132); + setState(1133); block(); } break; case SEMI: enterOuterAlt(_localctx, 2); { - setState(1133); + setState(1134); match(SEMI); } break; @@ -5743,14 +5030,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_instanceInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInstanceInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInstanceInitializer(this); - } } public final InstanceInitializerContext instanceInitializer() throws RecognitionException { @@ -5759,7 +5038,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1136); + setState(1137); block(); } } @@ -5782,14 +5061,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_staticInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticInitializer(this); - } } public final StaticInitializerContext staticInitializer() throws RecognitionException { @@ -5798,9 +5069,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1138); - match(STATIC); setState(1139); + match(STATIC); + setState(1140); block(); } } @@ -5835,14 +5106,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclaration(this); - } } public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { @@ -5852,32 +5115,32 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1144); + setState(1145); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC))) != 0) || _la==AT) { { { - setState(1141); + setState(1142); constructorModifier(); } } - setState(1146); + setState(1147); _errHandler.sync(this); _la = _input.LA(1); } - setState(1147); + setState(1148); constructorDeclarator(); - setState(1149); + setState(1150); _la = _input.LA(1); if (_la==THROWS) { { - setState(1148); + setState(1149); throws_(); } } - setState(1151); + setState(1152); constructorBody(); } } @@ -5900,47 +5163,39 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorModifier(this); - } } public final ConstructorModifierContext constructorModifier() throws RecognitionException { ConstructorModifierContext _localctx = new ConstructorModifierContext(_ctx, getState()); enterRule(_localctx, 176, RULE_constructorModifier); try { - setState(1157); + setState(1158); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1153); + setState(1154); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1154); + setState(1155); match(PUBLIC); } break; case PROTECTED: enterOuterAlt(_localctx, 3); { - setState(1155); + setState(1156); match(PROTECTED); } break; case PRIVATE: enterOuterAlt(_localctx, 4); { - setState(1156); + setState(1157); match(PRIVATE); } break; @@ -5973,14 +5228,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclarator(this); - } } public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { @@ -5990,29 +5237,29 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1160); + setState(1161); _la = _input.LA(1); if (_la==LT) { { - setState(1159); + setState(1160); typeParameters(); } } - setState(1162); - simpleTypeName(); setState(1163); + simpleTypeName(); + setState(1164); match(LPAREN); - setState(1165); + setState(1166); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { - setState(1164); + setState(1165); formalParameterList(); } } - setState(1167); + setState(1168); match(RPAREN); } } @@ -6033,14 +5280,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_simpleTypeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSimpleTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSimpleTypeName(this); - } } public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { @@ -6049,7 +5288,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1169); + setState(1170); match(Identifier); } } @@ -6075,14 +5314,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constructorBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorBody(this); - } } public final ConstructorBodyContext constructorBody() throws RecognitionException { @@ -6092,28 +5323,27 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1171); + setState(1172); match(LBRACE); - setState(1173); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) { + setState(1174); + switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) { case 1: { - setState(1172); + setState(1173); explicitConstructorInvocation(); } break; } - setState(1176); + setState(1177); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1175); + setState(1176); blockStatements(); } } - setState(1178); + setState(1179); match(RBRACE); } } @@ -6145,14 +5375,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_explicitConstructorInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitConstructorInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitConstructorInvocation(this); - } } public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { @@ -6160,138 +5382,137 @@ public class Java8Parser extends Parser { enterRule(_localctx, 184, RULE_explicitConstructorInvocation); int _la; try { - setState(1226); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,116,_ctx) ) { + setState(1227); + switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1181); + setState(1182); _la = _input.LA(1); if (_la==LT) { { - setState(1180); + setState(1181); typeArguments(); } } - setState(1183); - match(THIS); setState(1184); + match(THIS); + setState(1185); match(LPAREN); - setState(1186); + setState(1187); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1185); + setState(1186); argumentList(); } } - setState(1188); - match(RPAREN); setState(1189); + match(RPAREN); + setState(1190); match(SEMI); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1191); + setState(1192); _la = _input.LA(1); if (_la==LT) { { - setState(1190); + setState(1191); typeArguments(); } } - setState(1193); - match(SUPER); setState(1194); + match(SUPER); + setState(1195); match(LPAREN); - setState(1196); + setState(1197); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1195); + setState(1196); argumentList(); } } - setState(1198); - match(RPAREN); setState(1199); + match(RPAREN); + setState(1200); match(SEMI); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1200); - expressionName(); setState(1201); + expressionName(); + setState(1202); match(DOT); - setState(1203); + setState(1204); _la = _input.LA(1); if (_la==LT) { { - setState(1202); + setState(1203); typeArguments(); } } - setState(1205); - match(SUPER); setState(1206); + match(SUPER); + setState(1207); match(LPAREN); - setState(1208); + setState(1209); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1207); + setState(1208); argumentList(); } } - setState(1210); - match(RPAREN); setState(1211); + match(RPAREN); + setState(1212); match(SEMI); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1213); - primary(); setState(1214); + primary(); + setState(1215); match(DOT); - setState(1216); + setState(1217); _la = _input.LA(1); if (_la==LT) { { - setState(1215); + setState(1216); typeArguments(); } } - setState(1218); - match(SUPER); setState(1219); + match(SUPER); + setState(1220); match(LPAREN); - setState(1221); + setState(1222); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1220); + setState(1221); argumentList(); } } - setState(1223); - match(RPAREN); setState(1224); + match(RPAREN); + setState(1225); match(SEMI); } break; @@ -6326,14 +5547,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumDeclaration(this); - } } public final EnumDeclarationContext enumDeclaration() throws RecognitionException { @@ -6343,34 +5556,34 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1231); + setState(1232); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { - setState(1228); + setState(1229); classModifier(); } } - setState(1233); + setState(1234); _errHandler.sync(this); _la = _input.LA(1); } - setState(1234); - match(ENUM); setState(1235); + match(ENUM); + setState(1236); match(Identifier); - setState(1237); + setState(1238); _la = _input.LA(1); if (_la==IMPLEMENTS) { { - setState(1236); + setState(1237); superinterfaces(); } } - setState(1239); + setState(1240); enumBody(); } } @@ -6396,14 +5609,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBody(this); - } } public final EnumBodyContext enumBody() throws RecognitionException { @@ -6413,36 +5618,36 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1241); + setState(1242); match(LBRACE); - setState(1243); + setState(1244); _la = _input.LA(1); if (_la==Identifier || _la==AT) { { - setState(1242); + setState(1243); enumConstantList(); } } - setState(1246); + setState(1247); _la = _input.LA(1); if (_la==COMMA) { { - setState(1245); + setState(1246); match(COMMA); } } - setState(1249); + setState(1250); _la = _input.LA(1); if (_la==SEMI) { { - setState(1248); + setState(1249); enumBodyDeclarations(); } } - setState(1251); + setState(1252); match(RBRACE); } } @@ -6468,14 +5673,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantList(this); - } } public final EnumConstantListContext enumConstantList() throws RecognitionException { @@ -6485,25 +5682,25 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1253); + setState(1254); enumConstant(); - setState(1258); + setState(1259); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,122,_ctx); + _alt = getInterpreter().adaptivePredict(_input,123,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1254); - match(COMMA); setState(1255); + match(COMMA); + setState(1256); enumConstant(); } } } - setState(1260); + setState(1261); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,122,_ctx); + _alt = getInterpreter().adaptivePredict(_input,123,_ctx); } } } @@ -6536,14 +5733,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstant; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstant(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstant(this); - } } public final EnumConstantContext enumConstant() throws RecognitionException { @@ -6553,47 +5742,47 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1264); + setState(1265); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(1261); + setState(1262); enumConstantModifier(); } } - setState(1266); + setState(1267); _errHandler.sync(this); _la = _input.LA(1); } - setState(1267); + setState(1268); match(Identifier); - setState(1273); + setState(1274); _la = _input.LA(1); if (_la==LPAREN) { { - setState(1268); + setState(1269); match(LPAREN); - setState(1270); + setState(1271); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1269); + setState(1270); argumentList(); } } - setState(1272); + setState(1273); match(RPAREN); } } - setState(1276); + setState(1277); _la = _input.LA(1); if (_la==LBRACE) { { - setState(1275); + setState(1276); classBody(); } } @@ -6619,14 +5808,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantModifier(this); - } } public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { @@ -6635,7 +5816,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1278); + setState(1279); annotation(); } } @@ -6661,14 +5842,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBodyDeclarations(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBodyDeclarations(this); - } } public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { @@ -6678,19 +5851,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1280); + setState(1281); match(SEMI); - setState(1284); + setState(1285); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { { { - setState(1281); + setState(1282); classBodyDeclaration(); } } - setState(1286); + setState(1287); _errHandler.sync(this); _la = _input.LA(1); } @@ -6718,34 +5891,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceDeclaration(this); - } } public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); enterRule(_localctx, 198, RULE_interfaceDeclaration); try { - setState(1289); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { + setState(1290); + switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1287); + setState(1288); normalInterfaceDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1288); + setState(1289); annotationTypeDeclaration(); } break; @@ -6783,14 +5947,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalInterfaceDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalInterfaceDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalInterfaceDeclaration(this); - } } public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { @@ -6800,43 +5956,43 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1294); + setState(1295); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { - setState(1291); + setState(1292); interfaceModifier(); } } - setState(1296); + setState(1297); _errHandler.sync(this); _la = _input.LA(1); } - setState(1297); - match(INTERFACE); setState(1298); + match(INTERFACE); + setState(1299); match(Identifier); - setState(1300); + setState(1301); _la = _input.LA(1); if (_la==LT) { { - setState(1299); + setState(1300); typeParameters(); } } - setState(1303); + setState(1304); _la = _input.LA(1); if (_la==EXTENDS) { { - setState(1302); + setState(1303); extendsInterfaces(); } } - setState(1305); + setState(1306); interfaceBody(); } } @@ -6859,68 +6015,60 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceModifier(this); - } } public final InterfaceModifierContext interfaceModifier() throws RecognitionException { InterfaceModifierContext _localctx = new InterfaceModifierContext(_ctx, getState()); enterRule(_localctx, 202, RULE_interfaceModifier); try { - setState(1314); + setState(1315); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1307); + setState(1308); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1308); + setState(1309); match(PUBLIC); } break; case PROTECTED: enterOuterAlt(_localctx, 3); { - setState(1309); + setState(1310); match(PROTECTED); } break; case PRIVATE: enterOuterAlt(_localctx, 4); { - setState(1310); + setState(1311); match(PRIVATE); } break; case ABSTRACT: enterOuterAlt(_localctx, 5); { - setState(1311); + setState(1312); match(ABSTRACT); } break; case STATIC: enterOuterAlt(_localctx, 6); { - setState(1312); + setState(1313); match(STATIC); } break; case STRICTFP: enterOuterAlt(_localctx, 7); { - setState(1313); + setState(1314); match(STRICTFP); } break; @@ -6947,14 +6095,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_extendsInterfaces; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExtendsInterfaces(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExtendsInterfaces(this); - } } public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { @@ -6963,9 +6103,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1316); - match(EXTENDS); setState(1317); + match(EXTENDS); + setState(1318); interfaceTypeList(); } } @@ -6991,14 +6131,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBody(this); - } } public final InterfaceBodyContext interfaceBody() throws RecognitionException { @@ -7008,23 +6140,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1319); + setState(1320); match(LBRACE); - setState(1323); + setState(1324); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << VOID) | (1L << SEMI))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (LT - 68)) | (1L << (Identifier - 68)) | (1L << (AT - 68)))) != 0)) { { { - setState(1320); + setState(1321); interfaceMemberDeclaration(); } } - setState(1325); + setState(1326); _errHandler.sync(this); _la = _input.LA(1); } - setState(1326); + setState(1327); match(RBRACE); } } @@ -7056,55 +6188,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMemberDeclaration(this); - } } public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); enterRule(_localctx, 208, RULE_interfaceMemberDeclaration); try { - setState(1333); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,134,_ctx) ) { + setState(1334); + switch ( getInterpreter().adaptivePredict(_input,135,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1328); + setState(1329); constantDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1329); + setState(1330); interfaceMethodDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1330); + setState(1331); classDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1331); + setState(1332); interfaceDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1332); + setState(1333); match(SEMI); } break; @@ -7138,14 +6261,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantDeclaration(this); - } } public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { @@ -7155,25 +6270,25 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1338); + setState(1339); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PUBLIC) | (1L << STATIC))) != 0) || _la==AT) { { { - setState(1335); + setState(1336); constantModifier(); } } - setState(1340); + setState(1341); _errHandler.sync(this); _la = _input.LA(1); } - setState(1341); - unannType(); setState(1342); - variableDeclaratorList(); + unannType(); setState(1343); + variableDeclaratorList(); + setState(1344); match(SEMI); } } @@ -7196,47 +6311,39 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantModifier(this); - } } public final ConstantModifierContext constantModifier() throws RecognitionException { ConstantModifierContext _localctx = new ConstantModifierContext(_ctx, getState()); enterRule(_localctx, 212, RULE_constantModifier); try { - setState(1349); + setState(1350); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1345); + setState(1346); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1346); + setState(1347); match(PUBLIC); } break; case STATIC: enterOuterAlt(_localctx, 3); { - setState(1347); + setState(1348); match(STATIC); } break; case FINAL: enterOuterAlt(_localctx, 4); { - setState(1348); + setState(1349); match(FINAL); } break; @@ -7272,14 +6379,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodDeclaration(this); - } } public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { @@ -7289,23 +6388,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1354); + setState(1355); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { { { - setState(1351); + setState(1352); interfaceMethodModifier(); } } - setState(1356); + setState(1357); _errHandler.sync(this); _la = _input.LA(1); } - setState(1357); - methodHeader(); setState(1358); + methodHeader(); + setState(1359); methodBody(); } } @@ -7328,61 +6427,53 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodModifier(this); - } } public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); enterRule(_localctx, 216, RULE_interfaceMethodModifier); try { - setState(1366); + setState(1367); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1360); + setState(1361); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1361); + setState(1362); match(PUBLIC); } break; case ABSTRACT: enterOuterAlt(_localctx, 3); { - setState(1362); + setState(1363); match(ABSTRACT); } break; case DEFAULT: enterOuterAlt(_localctx, 4); { - setState(1363); + setState(1364); match(DEFAULT); } break; case STATIC: enterOuterAlt(_localctx, 5); { - setState(1364); + setState(1365); match(STATIC); } break; case STRICTFP: enterOuterAlt(_localctx, 6); { - setState(1365); + setState(1366); match(STRICTFP); } break; @@ -7416,14 +6507,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeDeclaration(this); - } } public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { @@ -7433,29 +6516,29 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1371); + setState(1372); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); + _alt = getInterpreter().adaptivePredict(_input,140,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1368); + setState(1369); interfaceModifier(); } } } - setState(1373); + setState(1374); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); + _alt = getInterpreter().adaptivePredict(_input,140,_ctx); } - setState(1374); - match(AT); setState(1375); - match(INTERFACE); + match(AT); setState(1376); - match(Identifier); + match(INTERFACE); setState(1377); + match(Identifier); + setState(1378); annotationTypeBody(); } } @@ -7481,14 +6564,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeBody(this); - } } public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { @@ -7498,23 +6573,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1379); + setState(1380); match(LBRACE); - setState(1383); + setState(1384); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SEMI))) != 0) || _la==Identifier || _la==AT) { { { - setState(1380); + setState(1381); annotationTypeMemberDeclaration(); } } - setState(1385); + setState(1386); _errHandler.sync(this); _la = _input.LA(1); } - setState(1386); + setState(1387); match(RBRACE); } } @@ -7546,55 +6621,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeMemberDeclaration(this); - } } public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { AnnotationTypeMemberDeclarationContext _localctx = new AnnotationTypeMemberDeclarationContext(_ctx, getState()); enterRule(_localctx, 222, RULE_annotationTypeMemberDeclaration); try { - setState(1393); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { + setState(1394); + switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1388); + setState(1389); annotationTypeElementDeclaration(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1389); + setState(1390); constantDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1390); + setState(1391); classDeclaration(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1391); + setState(1392); interfaceDeclaration(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1392); + setState(1393); match(SEMI); } break; @@ -7632,14 +6698,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementDeclaration(this); - } } public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { @@ -7649,47 +6707,47 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1398); + setState(1399); _errHandler.sync(this); _la = _input.LA(1); while (_la==ABSTRACT || _la==PUBLIC || _la==AT) { { { - setState(1395); + setState(1396); annotationTypeElementModifier(); } } - setState(1400); + setState(1401); _errHandler.sync(this); _la = _input.LA(1); } - setState(1401); - unannType(); setState(1402); - match(Identifier); + unannType(); setState(1403); - match(LPAREN); + match(Identifier); setState(1404); + match(LPAREN); + setState(1405); match(RPAREN); - setState(1406); + setState(1407); _la = _input.LA(1); if (_la==LBRACK || _la==AT) { { - setState(1405); + setState(1406); dims(); } } - setState(1409); + setState(1410); _la = _input.LA(1); if (_la==DEFAULT) { { - setState(1408); + setState(1409); defaultValue(); } } - setState(1411); + setState(1412); match(SEMI); } } @@ -7712,40 +6770,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotationTypeElementModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementModifier(this); - } } public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { AnnotationTypeElementModifierContext _localctx = new AnnotationTypeElementModifierContext(_ctx, getState()); enterRule(_localctx, 226, RULE_annotationTypeElementModifier); try { - setState(1416); + setState(1417); switch (_input.LA(1)) { case AT: enterOuterAlt(_localctx, 1); { - setState(1413); + setState(1414); annotation(); } break; case PUBLIC: enterOuterAlt(_localctx, 2); { - setState(1414); + setState(1415); match(PUBLIC); } break; case ABSTRACT: enterOuterAlt(_localctx, 3); { - setState(1415); + setState(1416); match(ABSTRACT); } break; @@ -7772,14 +6822,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_defaultValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDefaultValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDefaultValue(this); - } } public final DefaultValueContext defaultValue() throws RecognitionException { @@ -7788,9 +6830,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1418); - match(DEFAULT); setState(1419); + match(DEFAULT); + setState(1420); elementValue(); } } @@ -7819,41 +6861,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_annotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotation(this); - } } public final AnnotationContext annotation() throws RecognitionException { AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); enterRule(_localctx, 230, RULE_annotation); try { - setState(1424); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { + setState(1425); + switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1421); + setState(1422); normalAnnotation(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1422); + setState(1423); markerAnnotation(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1423); + setState(1424); singleElementAnnotation(); } break; @@ -7881,14 +6914,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_normalAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalAnnotation(this); - } } public final NormalAnnotationContext normalAnnotation() throws RecognitionException { @@ -7898,22 +6923,22 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1426); - match(AT); setState(1427); - typeName(); + match(AT); setState(1428); + typeName(); + setState(1429); match(LPAREN); - setState(1430); + setState(1431); _la = _input.LA(1); if (_la==Identifier) { { - setState(1429); + setState(1430); elementValuePairList(); } } - setState(1432); + setState(1433); match(RPAREN); } } @@ -7939,14 +6964,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePairList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePairList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePairList(this); - } } public final ElementValuePairListContext elementValuePairList() throws RecognitionException { @@ -7956,21 +6973,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1434); + setState(1435); elementValuePair(); - setState(1439); + setState(1440); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(1435); - match(COMMA); setState(1436); + match(COMMA); + setState(1437); elementValuePair(); } } - setState(1441); + setState(1442); _errHandler.sync(this); _la = _input.LA(1); } @@ -7996,14 +7013,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValuePair; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePair(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePair(this); - } } public final ElementValuePairContext elementValuePair() throws RecognitionException { @@ -8012,11 +7021,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1442); - match(Identifier); setState(1443); - match(ASSIGN); + match(Identifier); setState(1444); + match(ASSIGN); + setState(1445); elementValue(); } } @@ -8045,41 +7054,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValue(this); - } } public final ElementValueContext elementValue() throws RecognitionException { ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); enterRule(_localctx, 238, RULE_elementValue); try { - setState(1449); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { + setState(1450); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1446); + setState(1447); conditionalExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1447); + setState(1448); elementValueArrayInitializer(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1448); + setState(1449); annotation(); } break; @@ -8104,14 +7104,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueArrayInitializer(this); - } } public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { @@ -8121,27 +7113,27 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1451); + setState(1452); match(LBRACE); - setState(1453); + setState(1454); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1452); + setState(1453); elementValueList(); } } - setState(1456); + setState(1457); _la = _input.LA(1); if (_la==COMMA) { { - setState(1455); + setState(1456); match(COMMA); } } - setState(1458); + setState(1459); match(RBRACE); } } @@ -8167,14 +7159,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_elementValueList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueList(this); - } } public final ElementValueListContext elementValueList() throws RecognitionException { @@ -8184,25 +7168,25 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1460); + setState(1461); elementValue(); - setState(1465); + setState(1466); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,152,_ctx); + _alt = getInterpreter().adaptivePredict(_input,153,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1461); - match(COMMA); setState(1462); + match(COMMA); + setState(1463); elementValue(); } } } - setState(1467); + setState(1468); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,152,_ctx); + _alt = getInterpreter().adaptivePredict(_input,153,_ctx); } } } @@ -8225,14 +7209,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_markerAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMarkerAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMarkerAnnotation(this); - } } public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { @@ -8241,9 +7217,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1468); - match(AT); setState(1469); + match(AT); + setState(1470); typeName(); } } @@ -8269,14 +7245,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_singleElementAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleElementAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleElementAnnotation(this); - } } public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { @@ -8285,15 +7253,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1471); - match(AT); setState(1472); - typeName(); + match(AT); setState(1473); - match(LPAREN); + typeName(); setState(1474); - elementValue(); + match(LPAREN); setState(1475); + elementValue(); + setState(1476); match(RPAREN); } } @@ -8316,14 +7284,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayInitializer(this); - } } public final ArrayInitializerContext arrayInitializer() throws RecognitionException { @@ -8333,27 +7293,27 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1477); + setState(1478); match(LBRACE); - setState(1479); + setState(1480); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1478); + setState(1479); variableInitializerList(); } } - setState(1482); + setState(1483); _la = _input.LA(1); if (_la==COMMA) { { - setState(1481); + setState(1482); match(COMMA); } } - setState(1484); + setState(1485); match(RBRACE); } } @@ -8379,14 +7339,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_variableInitializerList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializerList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializerList(this); - } } public final VariableInitializerListContext variableInitializerList() throws RecognitionException { @@ -8396,25 +7348,25 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1486); + setState(1487); variableInitializer(); - setState(1491); + setState(1492); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,155,_ctx); + _alt = getInterpreter().adaptivePredict(_input,156,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1487); - match(COMMA); setState(1488); + match(COMMA); + setState(1489); variableInitializer(); } } } - setState(1493); + setState(1494); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,155,_ctx); + _alt = getInterpreter().adaptivePredict(_input,156,_ctx); } } } @@ -8437,14 +7389,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_block; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlock(this); - } } public final BlockContext block() throws RecognitionException { @@ -8454,18 +7398,18 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1494); + setState(1495); match(LBRACE); - setState(1496); + setState(1497); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1495); + setState(1496); blockStatements(); } } - setState(1498); + setState(1499); match(RBRACE); } } @@ -8491,14 +7435,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_blockStatements; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatements(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatements(this); - } } public final BlockStatementsContext blockStatements() throws RecognitionException { @@ -8508,19 +7444,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1500); + setState(1501); blockStatement(); - setState(1504); + setState(1505); _errHandler.sync(this); _la = _input.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE) | (1L << SEMI))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { { - setState(1501); + setState(1502); blockStatement(); } } - setState(1506); + setState(1507); _errHandler.sync(this); _la = _input.LA(1); } @@ -8551,41 +7487,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_blockStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatement(this); - } } public final BlockStatementContext blockStatement() throws RecognitionException { BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); enterRule(_localctx, 256, RULE_blockStatement); try { - setState(1510); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + setState(1511); + switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1507); + setState(1508); localVariableDeclarationStatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1508); + setState(1509); classDeclaration(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1509); + setState(1510); statement(); } break; @@ -8610,14 +7537,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclarationStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclarationStatement(this); - } } public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { @@ -8626,9 +7545,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1512); - localVariableDeclaration(); setState(1513); + localVariableDeclaration(); + setState(1514); match(SEMI); } } @@ -8660,14 +7579,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclaration(this); - } } public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { @@ -8677,23 +7588,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1518); + setState(1519); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1515); + setState(1516); variableModifier(); } } - setState(1520); + setState(1521); _errHandler.sync(this); _la = _input.LA(1); } - setState(1521); - unannType(); setState(1522); + unannType(); + setState(1523); variableDeclaratorList(); } } @@ -8731,62 +7642,53 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatement(this); - } } public final StatementContext statement() throws RecognitionException { StatementContext _localctx = new StatementContext(_ctx, getState()); enterRule(_localctx, 262, RULE_statement); try { - setState(1530); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,160,_ctx) ) { + setState(1531); + switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1524); + setState(1525); statementWithoutTrailingSubstatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1525); + setState(1526); labeledStatement(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1526); + setState(1527); ifThenStatement(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1527); + setState(1528); ifThenElseStatement(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1528); + setState(1529); whileStatement(); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1529); + setState(1530); forStatement(); } break; @@ -8823,55 +7725,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementNoShortIf(this); - } } public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); enterRule(_localctx, 264, RULE_statementNoShortIf); try { - setState(1537); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { + setState(1538); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1532); + setState(1533); statementWithoutTrailingSubstatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1533); + setState(1534); labeledStatementNoShortIf(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1534); + setState(1535); ifThenElseStatementNoShortIf(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1535); + setState(1536); whileStatementNoShortIf(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1536); + setState(1537); forStatementNoShortIf(); } break; @@ -8929,33 +7822,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementWithoutTrailingSubstatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementWithoutTrailingSubstatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementWithoutTrailingSubstatement(this); - } } public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); enterRule(_localctx, 266, RULE_statementWithoutTrailingSubstatement); try { - setState(1551); + setState(1552); switch (_input.LA(1)) { case LBRACE: enterOuterAlt(_localctx, 1); { - setState(1539); + setState(1540); block(); } break; case SEMI: enterOuterAlt(_localctx, 2); { - setState(1540); + setState(1541); emptyStatement(); } break; @@ -8984,70 +7869,70 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 3); { - setState(1541); + setState(1542); expressionStatement(); } break; case ASSERT: enterOuterAlt(_localctx, 4); { - setState(1542); + setState(1543); assertStatement(); } break; case SWITCH: enterOuterAlt(_localctx, 5); { - setState(1543); + setState(1544); switchStatement(); } break; case DO: enterOuterAlt(_localctx, 6); { - setState(1544); + setState(1545); doStatement(); } break; case BREAK: enterOuterAlt(_localctx, 7); { - setState(1545); + setState(1546); breakStatement(); } break; case CONTINUE: enterOuterAlt(_localctx, 8); { - setState(1546); + setState(1547); continueStatement(); } break; case RETURN: enterOuterAlt(_localctx, 9); { - setState(1547); + setState(1548); returnStatement(); } break; case SYNCHRONIZED: enterOuterAlt(_localctx, 10); { - setState(1548); + setState(1549); synchronizedStatement(); } break; case THROW: enterOuterAlt(_localctx, 11); { - setState(1549); + setState(1550); throwStatement(); } break; case TRY: enterOuterAlt(_localctx, 12); { - setState(1550); + setState(1551); tryStatement(); } break; @@ -9071,14 +7956,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_emptyStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEmptyStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEmptyStatement(this); - } } public final EmptyStatementContext emptyStatement() throws RecognitionException { @@ -9087,7 +7964,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1553); + setState(1554); match(SEMI); } } @@ -9111,14 +7988,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_labeledStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatement(this); - } } public final LabeledStatementContext labeledStatement() throws RecognitionException { @@ -9127,11 +7996,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1555); - match(Identifier); setState(1556); - match(COLON); + match(Identifier); setState(1557); + match(COLON); + setState(1558); statement(); } } @@ -9155,14 +8024,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_labeledStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatementNoShortIf(this); - } } public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { @@ -9171,11 +8032,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1559); - match(Identifier); setState(1560); - match(COLON); + match(Identifier); setState(1561); + match(COLON); + setState(1562); statementNoShortIf(); } } @@ -9198,14 +8059,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expressionStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionStatement(this); - } } public final ExpressionStatementContext expressionStatement() throws RecognitionException { @@ -9214,9 +8067,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1563); - statementExpression(); setState(1564); + statementExpression(); + setState(1565); match(SEMI); } } @@ -9257,69 +8110,60 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpression(this); - } } public final StatementExpressionContext statementExpression() throws RecognitionException { StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); enterRule(_localctx, 276, RULE_statementExpression); try { - setState(1573); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + setState(1574); + switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1566); + setState(1567); assignment(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1567); + setState(1568); preIncrementExpression(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1568); + setState(1569); preDecrementExpression(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1569); + setState(1570); postIncrementExpression(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1570); + setState(1571); postDecrementExpression(); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1571); + setState(1572); methodInvocation(); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1572); + setState(1573); classInstanceCreationExpression(); } break; @@ -9347,14 +8191,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenStatement(this); - } } public final IfThenStatementContext ifThenStatement() throws RecognitionException { @@ -9363,15 +8199,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1575); - match(IF); setState(1576); - match(LPAREN); + match(IF); setState(1577); - expression(); + match(LPAREN); setState(1578); - match(RPAREN); + expression(); setState(1579); + match(RPAREN); + setState(1580); statement(); } } @@ -9400,14 +8236,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenElseStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatement(this); - } } public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { @@ -9416,19 +8244,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1581); - match(IF); setState(1582); - match(LPAREN); + match(IF); setState(1583); - expression(); + match(LPAREN); setState(1584); - match(RPAREN); + expression(); setState(1585); - statementNoShortIf(); + match(RPAREN); setState(1586); - match(ELSE); + statementNoShortIf(); setState(1587); + match(ELSE); + setState(1588); statement(); } } @@ -9457,14 +8285,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_ifThenElseStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatementNoShortIf(this); - } } public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { @@ -9473,19 +8293,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1589); - match(IF); setState(1590); - match(LPAREN); + match(IF); setState(1591); - expression(); + match(LPAREN); setState(1592); - match(RPAREN); + expression(); setState(1593); - statementNoShortIf(); + match(RPAREN); setState(1594); - match(ELSE); + statementNoShortIf(); setState(1595); + match(ELSE); + setState(1596); statementNoShortIf(); } } @@ -9511,46 +8331,37 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assertStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssertStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssertStatement(this); - } } public final AssertStatementContext assertStatement() throws RecognitionException { AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); enterRule(_localctx, 284, RULE_assertStatement); try { - setState(1607); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { + setState(1608); + switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1597); - match(ASSERT); setState(1598); - expression(); + match(ASSERT); setState(1599); + expression(); + setState(1600); match(SEMI); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1601); - match(ASSERT); setState(1602); - expression(); + match(ASSERT); setState(1603); - match(COLON); - setState(1604); expression(); + setState(1604); + match(COLON); setState(1605); + expression(); + setState(1606); match(SEMI); } break; @@ -9578,14 +8389,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchStatement(this); - } } public final SwitchStatementContext switchStatement() throws RecognitionException { @@ -9594,15 +8397,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1609); - match(SWITCH); setState(1610); - match(LPAREN); + match(SWITCH); setState(1611); - expression(); + match(LPAREN); setState(1612); - match(RPAREN); + expression(); setState(1613); + match(RPAREN); + setState(1614); switchBlock(); } } @@ -9634,14 +8437,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchBlock; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlock(this); - } } public final SwitchBlockContext switchBlock() throws RecognitionException { @@ -9652,39 +8447,39 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1615); + setState(1616); match(LBRACE); - setState(1619); + setState(1620); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,165,_ctx); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1616); + setState(1617); switchBlockStatementGroup(); } } } - setState(1621); + setState(1622); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,165,_ctx); + _alt = getInterpreter().adaptivePredict(_input,166,_ctx); } - setState(1625); + setState(1626); _errHandler.sync(this); _la = _input.LA(1); while (_la==CASE || _la==DEFAULT) { { { - setState(1622); + setState(1623); switchLabel(); } } - setState(1627); + setState(1628); _errHandler.sync(this); _la = _input.LA(1); } - setState(1628); + setState(1629); match(RBRACE); } } @@ -9710,14 +8505,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlockStatementGroup(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlockStatementGroup(this); - } } public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { @@ -9726,9 +8513,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1630); - switchLabels(); setState(1631); + switchLabels(); + setState(1632); blockStatements(); } } @@ -9754,14 +8541,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchLabels; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabels(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabels(this); - } } public final SwitchLabelsContext switchLabels() throws RecognitionException { @@ -9771,19 +8550,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1633); + setState(1634); switchLabel(); - setState(1637); + setState(1638); _errHandler.sync(this); _la = _input.LA(1); while (_la==CASE || _la==DEFAULT) { { { - setState(1634); + setState(1635); switchLabel(); } } - setState(1639); + setState(1640); _errHandler.sync(this); _la = _input.LA(1); } @@ -9811,51 +8590,42 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_switchLabel; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabel(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabel(this); - } } public final SwitchLabelContext switchLabel() throws RecognitionException { SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); enterRule(_localctx, 294, RULE_switchLabel); try { - setState(1650); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { + setState(1651); + switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1640); - match(CASE); setState(1641); - constantExpression(); + match(CASE); setState(1642); + constantExpression(); + setState(1643); match(COLON); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1644); - match(CASE); setState(1645); - enumConstantName(); + match(CASE); setState(1646); + enumConstantName(); + setState(1647); match(COLON); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1648); - match(DEFAULT); setState(1649); + match(DEFAULT); + setState(1650); match(COLON); } break; @@ -9878,14 +8648,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enumConstantName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantName(this); - } } public final EnumConstantNameContext enumConstantName() throws RecognitionException { @@ -9894,7 +8656,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1652); + setState(1653); match(Identifier); } } @@ -9920,14 +8682,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_whileStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatement(this); - } } public final WhileStatementContext whileStatement() throws RecognitionException { @@ -9936,15 +8690,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1654); - match(WHILE); setState(1655); - match(LPAREN); + match(WHILE); setState(1656); - expression(); + match(LPAREN); setState(1657); - match(RPAREN); + expression(); setState(1658); + match(RPAREN); + setState(1659); statement(); } } @@ -9970,14 +8724,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_whileStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatementNoShortIf(this); - } } public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { @@ -9986,15 +8732,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1660); - match(WHILE); setState(1661); - match(LPAREN); + match(WHILE); setState(1662); - expression(); + match(LPAREN); setState(1663); - match(RPAREN); + expression(); setState(1664); + match(RPAREN); + setState(1665); statementNoShortIf(); } } @@ -10020,14 +8766,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_doStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDoStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDoStatement(this); - } } public final DoStatementContext doStatement() throws RecognitionException { @@ -10036,19 +8774,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1666); - match(DO); setState(1667); - statement(); + match(DO); setState(1668); - match(WHILE); + statement(); setState(1669); - match(LPAREN); + match(WHILE); setState(1670); - expression(); + match(LPAREN); setState(1671); - match(RPAREN); + expression(); setState(1672); + match(RPAREN); + setState(1673); match(SEMI); } } @@ -10074,34 +8812,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatement(this); - } } public final ForStatementContext forStatement() throws RecognitionException { ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); enterRule(_localctx, 304, RULE_forStatement); try { - setState(1676); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { + setState(1677); + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1674); + setState(1675); basicForStatement(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1675); + setState(1676); enhancedForStatement(); } break; @@ -10129,34 +8858,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatementNoShortIf(this); - } } public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); enterRule(_localctx, 306, RULE_forStatementNoShortIf); try { - setState(1680); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + setState(1681); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1678); + setState(1679); basicForStatementNoShortIf(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1679); + setState(1680); enhancedForStatementNoShortIf(); } break; @@ -10190,14 +8910,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_basicForStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatement(this); - } } public final BasicForStatementContext basicForStatement() throws RecognitionException { @@ -10207,44 +8919,44 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1682); - match(FOR); setState(1683); + match(FOR); + setState(1684); match(LPAREN); - setState(1685); + setState(1686); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1684); + setState(1685); forInit(); } } - setState(1687); + setState(1688); match(SEMI); - setState(1689); + setState(1690); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1688); + setState(1689); expression(); } } - setState(1691); + setState(1692); match(SEMI); - setState(1693); + setState(1694); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1692); + setState(1693); forUpdate(); } } - setState(1695); - match(RPAREN); setState(1696); + match(RPAREN); + setState(1697); statement(); } } @@ -10276,14 +8988,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_basicForStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatementNoShortIf(this); - } } public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { @@ -10293,44 +8997,44 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1698); - match(FOR); setState(1699); + match(FOR); + setState(1700); match(LPAREN); - setState(1701); + setState(1702); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1700); + setState(1701); forInit(); } } - setState(1703); + setState(1704); match(SEMI); - setState(1705); + setState(1706); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1704); + setState(1705); expression(); } } - setState(1707); + setState(1708); match(SEMI); - setState(1709); + setState(1710); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & ((1L << (INC - 79)) | (1L << (DEC - 79)) | (1L << (Identifier - 79)) | (1L << (AT - 79)))) != 0)) { { - setState(1708); + setState(1709); forUpdate(); } } - setState(1711); - match(RPAREN); setState(1712); + match(RPAREN); + setState(1713); statementNoShortIf(); } } @@ -10356,34 +9060,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forInit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForInit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForInit(this); - } } public final ForInitContext forInit() throws RecognitionException { ForInitContext _localctx = new ForInitContext(_ctx, getState()); enterRule(_localctx, 312, RULE_forInit); try { - setState(1716); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { + setState(1717); + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1714); + setState(1715); statementExpressionList(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1715); + setState(1716); localVariableDeclaration(); } break; @@ -10408,14 +9103,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_forUpdate; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForUpdate(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForUpdate(this); - } } public final ForUpdateContext forUpdate() throws RecognitionException { @@ -10424,7 +9111,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1718); + setState(1719); statementExpressionList(); } } @@ -10450,14 +9137,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_statementExpressionList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpressionList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpressionList(this); - } } public final StatementExpressionListContext statementExpressionList() throws RecognitionException { @@ -10467,21 +9146,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1720); + setState(1721); statementExpression(); - setState(1725); + setState(1726); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(1721); - match(COMMA); setState(1722); + match(COMMA); + setState(1723); statementExpression(); } } - setState(1727); + setState(1728); _errHandler.sync(this); _la = _input.LA(1); } @@ -10521,14 +9200,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enhancedForStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatement(this); - } } public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { @@ -10538,35 +9209,35 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1728); - match(FOR); setState(1729); + match(FOR); + setState(1730); match(LPAREN); - setState(1733); + setState(1734); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1730); + setState(1731); variableModifier(); } } - setState(1735); + setState(1736); _errHandler.sync(this); _la = _input.LA(1); } - setState(1736); - unannType(); setState(1737); - variableDeclaratorId(); + unannType(); setState(1738); - match(COLON); + variableDeclaratorId(); setState(1739); - expression(); + match(COLON); setState(1740); - match(RPAREN); + expression(); setState(1741); + match(RPAREN); + setState(1742); statement(); } } @@ -10604,14 +9275,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_enhancedForStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatementNoShortIf(this); - } } public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { @@ -10621,35 +9284,35 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1743); - match(FOR); setState(1744); + match(FOR); + setState(1745); match(LPAREN); - setState(1748); + setState(1749); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1745); + setState(1746); variableModifier(); } } - setState(1750); + setState(1751); _errHandler.sync(this); _la = _input.LA(1); } - setState(1751); - unannType(); setState(1752); - variableDeclaratorId(); + unannType(); setState(1753); - match(COLON); + variableDeclaratorId(); setState(1754); - expression(); + match(COLON); setState(1755); - match(RPAREN); + expression(); setState(1756); + match(RPAREN); + setState(1757); statementNoShortIf(); } } @@ -10670,14 +9333,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_breakStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBreakStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBreakStatement(this); - } } public final BreakStatementContext breakStatement() throws RecognitionException { @@ -10687,18 +9342,18 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1758); + setState(1759); match(BREAK); - setState(1760); + setState(1761); _la = _input.LA(1); if (_la==Identifier) { { - setState(1759); + setState(1760); match(Identifier); } } - setState(1762); + setState(1763); match(SEMI); } } @@ -10719,14 +9374,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_continueStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterContinueStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitContinueStatement(this); - } } public final ContinueStatementContext continueStatement() throws RecognitionException { @@ -10736,18 +9383,18 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1764); + setState(1765); match(CONTINUE); - setState(1766); + setState(1767); _la = _input.LA(1); if (_la==Identifier) { { - setState(1765); + setState(1766); match(Identifier); } } - setState(1768); + setState(1769); match(SEMI); } } @@ -10770,14 +9417,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_returnStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReturnStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReturnStatement(this); - } } public final ReturnStatementContext returnStatement() throws RecognitionException { @@ -10787,18 +9426,18 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1770); + setState(1771); match(RETURN); - setState(1772); + setState(1773); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(1771); + setState(1772); expression(); } } - setState(1774); + setState(1775); match(SEMI); } } @@ -10821,14 +9460,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_throwStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrowStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrowStatement(this); - } } public final ThrowStatementContext throwStatement() throws RecognitionException { @@ -10837,11 +9468,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1776); - match(THROW); setState(1777); - expression(); + match(THROW); setState(1778); + expression(); + setState(1779); match(SEMI); } } @@ -10867,14 +9498,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_synchronizedStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSynchronizedStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSynchronizedStatement(this); - } } public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { @@ -10883,15 +9506,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1780); - match(SYNCHRONIZED); setState(1781); - match(LPAREN); + match(SYNCHRONIZED); setState(1782); - expression(); + match(LPAREN); setState(1783); - match(RPAREN); + expression(); setState(1784); + match(RPAREN); + setState(1785); block(); } } @@ -10923,14 +9546,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_tryStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryStatement(this); - } } public final TryStatementContext tryStatement() throws RecognitionException { @@ -10938,44 +9553,43 @@ public class Java8Parser extends Parser { enterRule(_localctx, 332, RULE_tryStatement); int _la; try { - setState(1798); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) { + setState(1799); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1786); - match(TRY); setState(1787); - block(); + match(TRY); setState(1788); + block(); + setState(1789); catches(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1790); - match(TRY); setState(1791); + match(TRY); + setState(1792); block(); - setState(1793); + setState(1794); _la = _input.LA(1); if (_la==CATCH) { { - setState(1792); + setState(1793); catches(); } } - setState(1795); + setState(1796); finally_(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1797); + setState(1798); tryWithResourcesStatement(); } break; @@ -11003,14 +9617,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catches; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatches(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatches(this); - } } public final CatchesContext catches() throws RecognitionException { @@ -11020,19 +9626,19 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1800); + setState(1801); catchClause(); - setState(1804); + setState(1805); _errHandler.sync(this); _la = _input.LA(1); while (_la==CATCH) { { { - setState(1801); + setState(1802); catchClause(); } } - setState(1806); + setState(1807); _errHandler.sync(this); _la = _input.LA(1); } @@ -11060,14 +9666,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchClause(this); - } } public final CatchClauseContext catchClause() throws RecognitionException { @@ -11076,15 +9674,15 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1807); - match(CATCH); setState(1808); - match(LPAREN); + match(CATCH); setState(1809); - catchFormalParameter(); + match(LPAREN); setState(1810); - match(RPAREN); + catchFormalParameter(); setState(1811); + match(RPAREN); + setState(1812); block(); } } @@ -11116,14 +9714,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchFormalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchFormalParameter(this); - } } public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { @@ -11133,23 +9723,23 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1816); + setState(1817); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1813); + setState(1814); variableModifier(); } } - setState(1818); + setState(1819); _errHandler.sync(this); _la = _input.LA(1); } - setState(1819); - catchType(); setState(1820); + catchType(); + setState(1821); variableDeclaratorId(); } } @@ -11178,14 +9768,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_catchType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchType(this); - } } public final CatchTypeContext catchType() throws RecognitionException { @@ -11195,21 +9777,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1822); + setState(1823); unannClassType(); - setState(1827); + setState(1828); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITOR) { { { - setState(1823); - match(BITOR); setState(1824); + match(BITOR); + setState(1825); classType(); } } - setState(1829); + setState(1830); _errHandler.sync(this); _la = _input.LA(1); } @@ -11234,14 +9816,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_finally_; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFinally_(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFinally_(this); - } } public final Finally_Context finally_() throws RecognitionException { @@ -11250,9 +9824,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1830); - match(FINALLY); setState(1831); + match(FINALLY); + setState(1832); block(); } } @@ -11284,14 +9858,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_tryWithResourcesStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryWithResourcesStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryWithResourcesStatement(this); - } } public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { @@ -11301,26 +9867,26 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1833); - match(TRY); setState(1834); - resourceSpecification(); + match(TRY); setState(1835); + resourceSpecification(); + setState(1836); block(); - setState(1837); + setState(1838); _la = _input.LA(1); if (_la==CATCH) { { - setState(1836); + setState(1837); catches(); } } - setState(1840); + setState(1841); _la = _input.LA(1); if (_la==FINALLY) { { - setState(1839); + setState(1840); finally_(); } } @@ -11346,14 +9912,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resourceSpecification; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceSpecification(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceSpecification(this); - } } public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { @@ -11363,20 +9921,20 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1842); - match(LPAREN); setState(1843); + match(LPAREN); + setState(1844); resourceList(); - setState(1845); + setState(1846); _la = _input.LA(1); if (_la==SEMI) { { - setState(1844); + setState(1845); match(SEMI); } } - setState(1847); + setState(1848); match(RPAREN); } } @@ -11402,14 +9960,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resourceList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceList(this); - } } public final ResourceListContext resourceList() throws RecognitionException { @@ -11419,25 +9969,25 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1849); + setState(1850); resource(); - setState(1854); + setState(1855); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,192,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1850); - match(SEMI); setState(1851); + match(SEMI); + setState(1852); resource(); } } } - setState(1856); + setState(1857); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,192,_ctx); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); } } } @@ -11472,14 +10022,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_resource; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResource(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResource(this); - } } public final ResourceContext resource() throws RecognitionException { @@ -11489,27 +10031,27 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(1860); + setState(1861); _errHandler.sync(this); _la = _input.LA(1); while (_la==FINAL || _la==AT) { { { - setState(1857); + setState(1858); variableModifier(); } } - setState(1862); + setState(1863); _errHandler.sync(this); _la = _input.LA(1); } - setState(1863); - unannType(); setState(1864); - variableDeclaratorId(); + unannType(); setState(1865); - match(ASSIGN); + variableDeclaratorId(); setState(1866); + match(ASSIGN); + setState(1867); expression(); } } @@ -11541,14 +10083,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimary(this); - } } public final PrimaryContext primary() throws RecognitionException { @@ -11558,37 +10092,36 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(1870); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) { + setState(1871); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { case 1: { - setState(1868); + setState(1869); primaryNoNewArray_lfno_primary(); } break; case 2: { - setState(1869); + setState(1870); arrayCreationExpression(); } break; } - setState(1875); + setState(1876); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,195,_ctx); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(1872); + setState(1873); primaryNoNewArray_lf_primary(); } } } - setState(1877); + setState(1878); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,195,_ctx); + _alt = getInterpreter().adaptivePredict(_input,196,_ctx); } } } @@ -11632,14 +10165,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray(this); - } } public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { @@ -11647,115 +10172,114 @@ public class Java8Parser extends Parser { enterRule(_localctx, 354, RULE_primaryNoNewArray); int _la; try { - setState(1907); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) { + setState(1908); + switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1878); + setState(1879); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1879); + setState(1880); typeName(); - setState(1884); + setState(1885); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1880); - match(LBRACK); setState(1881); + match(LBRACK); + setState(1882); match(RBRACK); } } - setState(1886); + setState(1887); _errHandler.sync(this); _la = _input.LA(1); } - setState(1887); - match(DOT); setState(1888); + match(DOT); + setState(1889); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1890); - match(VOID); setState(1891); - match(DOT); + match(VOID); setState(1892); + match(DOT); + setState(1893); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1893); + setState(1894); match(THIS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1894); - typeName(); setState(1895); - match(DOT); + typeName(); setState(1896); + match(DOT); + setState(1897); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1898); - match(LPAREN); setState(1899); - expression(); + match(LPAREN); setState(1900); + expression(); + setState(1901); match(RPAREN); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1902); + setState(1903); classInstanceCreationExpression(); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1903); + setState(1904); fieldAccess(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1904); + setState(1905); arrayAccess(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(1905); + setState(1906); methodInvocation(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(1906); + setState(1907); methodReference(); } break; @@ -11777,14 +10301,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_arrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_arrayAccess(this); - } } public final PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess() throws RecognitionException { @@ -11832,14 +10348,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_arrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_arrayAccess(this); - } } public final PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() throws RecognitionException { @@ -11847,108 +10355,107 @@ public class Java8Parser extends Parser { enterRule(_localctx, 358, RULE_primaryNoNewArray_lfno_arrayAccess); int _la; try { - setState(1939); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) { + setState(1940); + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1911); + setState(1912); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1912); + setState(1913); typeName(); - setState(1917); + setState(1918); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1913); - match(LBRACK); setState(1914); + match(LBRACK); + setState(1915); match(RBRACK); } } - setState(1919); + setState(1920); _errHandler.sync(this); _la = _input.LA(1); } - setState(1920); - match(DOT); setState(1921); + match(DOT); + setState(1922); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1923); - match(VOID); setState(1924); - match(DOT); + match(VOID); setState(1925); + match(DOT); + setState(1926); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1926); + setState(1927); match(THIS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1927); - typeName(); setState(1928); - match(DOT); + typeName(); setState(1929); + match(DOT); + setState(1930); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1931); - match(LPAREN); setState(1932); - expression(); + match(LPAREN); setState(1933); + expression(); + setState(1934); match(RPAREN); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1935); + setState(1936); classInstanceCreationExpression(); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1936); + setState(1937); fieldAccess(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1937); + setState(1938); methodInvocation(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(1938); + setState(1939); methodReference(); } break; @@ -11985,55 +10492,46 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary(this); - } } public final PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary() throws RecognitionException { PrimaryNoNewArray_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primaryContext(_ctx, getState()); enterRule(_localctx, 360, RULE_primaryNoNewArray_lf_primary); try { - setState(1946); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { + setState(1947); + switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1941); + setState(1942); classInstanceCreationExpression_lf_primary(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1942); + setState(1943); fieldAccess_lf_primary(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1943); + setState(1944); arrayAccess_lf_primary(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1944); + setState(1945); methodInvocation_lf_primary(); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1945); + setState(1946); methodReference_lf_primary(); } break; @@ -12055,14 +10553,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); - } } public final PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() throws RecognitionException { @@ -12101,48 +10591,39 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); - } } public final PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() throws RecognitionException { PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(_ctx, getState()); enterRule(_localctx, 364, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); try { - setState(1954); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { + setState(1955); + switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1950); + setState(1951); classInstanceCreationExpression_lf_primary(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1951); + setState(1952); fieldAccess_lf_primary(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1952); + setState(1953); methodInvocation_lf_primary(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1953); + setState(1954); methodReference_lf_primary(); } break; @@ -12191,14 +10672,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary(this); - } } public final PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() throws RecognitionException { @@ -12206,142 +10679,141 @@ public class Java8Parser extends Parser { enterRule(_localctx, 366, RULE_primaryNoNewArray_lfno_primary); int _la; try { - setState(1996); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,204,_ctx) ) { + setState(1997); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(1956); + setState(1957); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(1957); + setState(1958); typeName(); - setState(1962); + setState(1963); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1958); - match(LBRACK); setState(1959); + match(LBRACK); + setState(1960); match(RBRACK); } } - setState(1964); + setState(1965); _errHandler.sync(this); _la = _input.LA(1); } - setState(1965); - match(DOT); setState(1966); + match(DOT); + setState(1967); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(1968); + setState(1969); unannPrimitiveType(); - setState(1973); + setState(1974); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(1969); - match(LBRACK); setState(1970); + match(LBRACK); + setState(1971); match(RBRACK); } } - setState(1975); + setState(1976); _errHandler.sync(this); _la = _input.LA(1); } - setState(1976); - match(DOT); setState(1977); + match(DOT); + setState(1978); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(1979); - match(VOID); setState(1980); - match(DOT); + match(VOID); setState(1981); + match(DOT); + setState(1982); match(CLASS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(1982); + setState(1983); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(1983); - typeName(); setState(1984); - match(DOT); + typeName(); setState(1985); + match(DOT); + setState(1986); match(THIS); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(1987); - match(LPAREN); setState(1988); - expression(); + match(LPAREN); setState(1989); + expression(); + setState(1990); match(RPAREN); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(1991); + setState(1992); classInstanceCreationExpression_lfno_primary(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(1992); + setState(1993); fieldAccess_lfno_primary(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(1993); + setState(1994); arrayAccess_lfno_primary(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(1994); + setState(1995); methodInvocation_lfno_primary(); } break; case 12: enterOuterAlt(_localctx, 12); { - setState(1995); + setState(1996); methodReference_lfno_primary(); } break; @@ -12363,14 +10835,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); - } } public final PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() throws RecognitionException { @@ -12421,14 +10885,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); - } } public final PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() throws RecognitionException { @@ -12436,135 +10892,134 @@ public class Java8Parser extends Parser { enterRule(_localctx, 370, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); int _la; try { - setState(2039); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,207,_ctx) ) { + setState(2040); + switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2000); + setState(2001); literal(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2001); + setState(2002); typeName(); - setState(2006); + setState(2007); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2002); - match(LBRACK); setState(2003); + match(LBRACK); + setState(2004); match(RBRACK); } } - setState(2008); + setState(2009); _errHandler.sync(this); _la = _input.LA(1); } - setState(2009); - match(DOT); setState(2010); + match(DOT); + setState(2011); match(CLASS); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2012); + setState(2013); unannPrimitiveType(); - setState(2017); + setState(2018); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2013); - match(LBRACK); setState(2014); + match(LBRACK); + setState(2015); match(RBRACK); } } - setState(2019); + setState(2020); _errHandler.sync(this); _la = _input.LA(1); } - setState(2020); - match(DOT); setState(2021); + match(DOT); + setState(2022); match(CLASS); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2023); - match(VOID); setState(2024); - match(DOT); + match(VOID); setState(2025); + match(DOT); + setState(2026); match(CLASS); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2026); + setState(2027); match(THIS); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2027); - typeName(); setState(2028); - match(DOT); + typeName(); setState(2029); + match(DOT); + setState(2030); match(THIS); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(2031); - match(LPAREN); setState(2032); - expression(); + match(LPAREN); setState(2033); + expression(); + setState(2034); match(RPAREN); } break; case 8: enterOuterAlt(_localctx, 8); { - setState(2035); + setState(2036); classInstanceCreationExpression_lfno_primary(); } break; case 9: enterOuterAlt(_localctx, 9); { - setState(2036); + setState(2037); fieldAccess_lfno_primary(); } break; case 10: enterOuterAlt(_localctx, 10); { - setState(2037); + setState(2038); methodInvocation_lfno_primary(); } break; case 11: enterOuterAlt(_localctx, 11); { - setState(2038); + setState(2039); methodReference_lfno_primary(); } break; @@ -12614,14 +11069,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression(this); - } } public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { @@ -12629,96 +11076,95 @@ public class Java8Parser extends Parser { enterRule(_localctx, 372, RULE_classInstanceCreationExpression); int _la; try { - setState(2124); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + setState(2125); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2041); + setState(2042); match(NEW); - setState(2043); + setState(2044); _la = _input.LA(1); if (_la==LT) { { - setState(2042); + setState(2043); typeArguments(); } } - setState(2048); + setState(2049); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2045); + setState(2046); annotation(); } } - setState(2050); + setState(2051); _errHandler.sync(this); _la = _input.LA(1); } - setState(2051); + setState(2052); match(Identifier); - setState(2062); + setState(2063); _errHandler.sync(this); _la = _input.LA(1); while (_la==DOT) { { { - setState(2052); + setState(2053); match(DOT); - setState(2056); + setState(2057); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2053); + setState(2054); annotation(); } } - setState(2058); + setState(2059); _errHandler.sync(this); _la = _input.LA(1); } - setState(2059); + setState(2060); match(Identifier); } } - setState(2064); + setState(2065); _errHandler.sync(this); _la = _input.LA(1); } - setState(2066); + setState(2067); _la = _input.LA(1); if (_la==LT) { { - setState(2065); + setState(2066); typeArgumentsOrDiamond(); } } - setState(2068); + setState(2069); match(LPAREN); - setState(2070); + setState(2071); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2069); + setState(2070); argumentList(); } } - setState(2072); + setState(2073); match(RPAREN); - setState(2074); + setState(2075); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2073); + setState(2074); classBody(); } } @@ -12728,64 +11174,64 @@ public class Java8Parser extends Parser { case 2: enterOuterAlt(_localctx, 2); { - setState(2076); - expressionName(); setState(2077); - match(DOT); + expressionName(); setState(2078); + match(DOT); + setState(2079); match(NEW); - setState(2080); + setState(2081); _la = _input.LA(1); if (_la==LT) { { - setState(2079); + setState(2080); typeArguments(); } } - setState(2085); + setState(2086); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2082); + setState(2083); annotation(); } } - setState(2087); + setState(2088); _errHandler.sync(this); _la = _input.LA(1); } - setState(2088); + setState(2089); match(Identifier); - setState(2090); + setState(2091); _la = _input.LA(1); if (_la==LT) { { - setState(2089); + setState(2090); typeArgumentsOrDiamond(); } } - setState(2092); + setState(2093); match(LPAREN); - setState(2094); + setState(2095); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2093); + setState(2094); argumentList(); } } - setState(2096); + setState(2097); match(RPAREN); - setState(2098); + setState(2099); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2097); + setState(2098); classBody(); } } @@ -12795,64 +11241,64 @@ public class Java8Parser extends Parser { case 3: enterOuterAlt(_localctx, 3); { - setState(2100); - primary(); setState(2101); - match(DOT); + primary(); setState(2102); + match(DOT); + setState(2103); match(NEW); - setState(2104); + setState(2105); _la = _input.LA(1); if (_la==LT) { { - setState(2103); + setState(2104); typeArguments(); } } - setState(2109); + setState(2110); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2106); + setState(2107); annotation(); } } - setState(2111); + setState(2112); _errHandler.sync(this); _la = _input.LA(1); } - setState(2112); + setState(2113); match(Identifier); - setState(2114); + setState(2115); _la = _input.LA(1); if (_la==LT) { { - setState(2113); + setState(2114); typeArgumentsOrDiamond(); } } - setState(2116); + setState(2117); match(LPAREN); - setState(2118); + setState(2119); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2117); + setState(2118); argumentList(); } } - setState(2120); + setState(2121); match(RPAREN); - setState(2122); + setState(2123); _la = _input.LA(1); if (_la==LBRACE) { { - setState(2121); + setState(2122); classBody(); } } @@ -12896,14 +11342,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lf_primary(this); - } } public final ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() throws RecognitionException { @@ -12913,63 +11351,62 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2126); - match(DOT); setState(2127); + match(DOT); + setState(2128); match(NEW); - setState(2129); + setState(2130); _la = _input.LA(1); if (_la==LT) { { - setState(2128); + setState(2129); typeArguments(); } } - setState(2134); + setState(2135); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2131); + setState(2132); annotation(); } } - setState(2136); + setState(2137); _errHandler.sync(this); _la = _input.LA(1); } - setState(2137); + setState(2138); match(Identifier); - setState(2139); + setState(2140); _la = _input.LA(1); if (_la==LT) { { - setState(2138); + setState(2139); typeArgumentsOrDiamond(); } } - setState(2141); + setState(2142); match(LPAREN); - setState(2143); + setState(2144); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2142); + setState(2143); argumentList(); } } - setState(2145); + setState(2146); match(RPAREN); - setState(2147); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { + setState(2148); + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { case 1: { - setState(2146); + setState(2147); classBody(); } break; @@ -13017,14 +11454,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lfno_primary(this); - } } public final ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() throws RecognitionException { @@ -13032,96 +11461,95 @@ public class Java8Parser extends Parser { enterRule(_localctx, 376, RULE_classInstanceCreationExpression_lfno_primary); int _la; try { - setState(2208); + setState(2209); switch (_input.LA(1)) { case NEW: enterOuterAlt(_localctx, 1); { - setState(2149); + setState(2150); match(NEW); - setState(2151); + setState(2152); _la = _input.LA(1); if (_la==LT) { { - setState(2150); + setState(2151); typeArguments(); } } - setState(2156); + setState(2157); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2153); + setState(2154); annotation(); } } - setState(2158); + setState(2159); _errHandler.sync(this); _la = _input.LA(1); } - setState(2159); + setState(2160); match(Identifier); - setState(2170); + setState(2171); _errHandler.sync(this); _la = _input.LA(1); while (_la==DOT) { { { - setState(2160); + setState(2161); match(DOT); - setState(2164); + setState(2165); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2161); + setState(2162); annotation(); } } - setState(2166); + setState(2167); _errHandler.sync(this); _la = _input.LA(1); } - setState(2167); + setState(2168); match(Identifier); } } - setState(2172); + setState(2173); _errHandler.sync(this); _la = _input.LA(1); } - setState(2174); + setState(2175); _la = _input.LA(1); if (_la==LT) { { - setState(2173); + setState(2174); typeArgumentsOrDiamond(); } } - setState(2176); + setState(2177); match(LPAREN); - setState(2178); + setState(2179); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2177); + setState(2178); argumentList(); } } - setState(2180); + setState(2181); match(RPAREN); - setState(2182); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,237,_ctx) ) { + setState(2183); + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { case 1: { - setState(2181); + setState(2182); classBody(); } break; @@ -13131,65 +11559,64 @@ public class Java8Parser extends Parser { case Identifier: enterOuterAlt(_localctx, 2); { - setState(2184); - expressionName(); setState(2185); - match(DOT); + expressionName(); setState(2186); + match(DOT); + setState(2187); match(NEW); - setState(2188); + setState(2189); _la = _input.LA(1); if (_la==LT) { { - setState(2187); + setState(2188); typeArguments(); } } - setState(2193); + setState(2194); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2190); + setState(2191); annotation(); } } - setState(2195); + setState(2196); _errHandler.sync(this); _la = _input.LA(1); } - setState(2196); + setState(2197); match(Identifier); - setState(2198); + setState(2199); _la = _input.LA(1); if (_la==LT) { { - setState(2197); + setState(2198); typeArgumentsOrDiamond(); } } - setState(2200); + setState(2201); match(LPAREN); - setState(2202); + setState(2203); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2201); + setState(2202); argumentList(); } } - setState(2204); + setState(2205); match(RPAREN); - setState(2206); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { + setState(2207); + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { case 1: { - setState(2205); + setState(2206); classBody(); } break; @@ -13219,36 +11646,27 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentsOrDiamond(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentsOrDiamond(this); - } } public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); enterRule(_localctx, 378, RULE_typeArgumentsOrDiamond); try { - setState(2213); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { + setState(2214); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2210); + setState(2211); typeArguments(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2211); - match(LT); setState(2212); + match(LT); + setState(2213); match(GT); } break; @@ -13277,57 +11695,48 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess(this); - } } public final FieldAccessContext fieldAccess() throws RecognitionException { FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); enterRule(_localctx, 380, RULE_fieldAccess); try { - setState(2228); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + setState(2229); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2215); - primary(); setState(2216); - match(DOT); + primary(); setState(2217); + match(DOT); + setState(2218); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2219); - match(SUPER); setState(2220); - match(DOT); + match(SUPER); setState(2221); + match(DOT); + setState(2222); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2222); - typeName(); setState(2223); - match(DOT); + typeName(); setState(2224); - match(SUPER); - setState(2225); match(DOT); + setState(2225); + match(SUPER); setState(2226); + match(DOT); + setState(2227); match(Identifier); } break; @@ -13350,14 +11759,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lf_primary(this); - } } public final FieldAccess_lf_primaryContext fieldAccess_lf_primary() throws RecognitionException { @@ -13366,9 +11767,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2230); - match(DOT); setState(2231); + match(DOT); + setState(2232); match(Identifier); } } @@ -13392,45 +11793,37 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_fieldAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lfno_primary(this); - } } public final FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() throws RecognitionException { FieldAccess_lfno_primaryContext _localctx = new FieldAccess_lfno_primaryContext(_ctx, getState()); enterRule(_localctx, 384, RULE_fieldAccess_lfno_primary); try { - setState(2242); + setState(2243); switch (_input.LA(1)) { case SUPER: enterOuterAlt(_localctx, 1); { - setState(2233); - match(SUPER); setState(2234); - match(DOT); + match(SUPER); setState(2235); + match(DOT); + setState(2236); match(Identifier); } break; case Identifier: enterOuterAlt(_localctx, 2); { - setState(2236); - typeName(); setState(2237); - match(DOT); + typeName(); setState(2238); - match(SUPER); - setState(2239); match(DOT); + setState(2239); + match(SUPER); setState(2240); + match(DOT); + setState(2241); match(Identifier); } break; @@ -13472,14 +11865,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess(this); - } } public final ArrayAccessContext arrayAccess() throws RecognitionException { @@ -13489,51 +11874,50 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2254); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,247,_ctx) ) { + setState(2255); + switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) { case 1: { - setState(2244); - expressionName(); setState(2245); - match(LBRACK); + expressionName(); setState(2246); - expression(); + match(LBRACK); setState(2247); + expression(); + setState(2248); match(RBRACK); } break; case 2: { - setState(2249); - primaryNoNewArray_lfno_arrayAccess(); setState(2250); - match(LBRACK); + primaryNoNewArray_lfno_arrayAccess(); setState(2251); - expression(); + match(LBRACK); setState(2252); + expression(); + setState(2253); match(RBRACK); } break; } - setState(2263); + setState(2264); _errHandler.sync(this); _la = _input.LA(1); while (_la==LBRACK) { { { - setState(2256); - primaryNoNewArray_lf_arrayAccess(); setState(2257); - match(LBRACK); + primaryNoNewArray_lf_arrayAccess(); setState(2258); - expression(); + match(LBRACK); setState(2259); + expression(); + setState(2260); match(RBRACK); } } - setState(2265); + setState(2266); _errHandler.sync(this); _la = _input.LA(1); } @@ -13570,14 +11954,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lf_primary(this); - } } public final ArrayAccess_lf_primaryContext arrayAccess_lf_primary() throws RecognitionException { @@ -13588,36 +11964,36 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2266); - primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); setState(2267); - match(LBRACK); + primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); setState(2268); - expression(); + match(LBRACK); setState(2269); + expression(); + setState(2270); match(RBRACK); } - setState(2278); + setState(2279); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,249,_ctx); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2271); - primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); setState(2272); - match(LBRACK); + primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); setState(2273); - expression(); + match(LBRACK); setState(2274); + expression(); + setState(2275); match(RBRACK); } } } - setState(2280); + setState(2281); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,249,_ctx); + _alt = getInterpreter().adaptivePredict(_input,250,_ctx); } } } @@ -13655,14 +12031,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lfno_primary(this); - } } public final ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() throws RecognitionException { @@ -13672,55 +12040,54 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2291); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,250,_ctx) ) { + setState(2292); + switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { case 1: { - setState(2281); - expressionName(); setState(2282); - match(LBRACK); + expressionName(); setState(2283); - expression(); + match(LBRACK); setState(2284); + expression(); + setState(2285); match(RBRACK); } break; case 2: { - setState(2286); - primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); setState(2287); - match(LBRACK); + primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); setState(2288); - expression(); + match(LBRACK); setState(2289); + expression(); + setState(2290); match(RBRACK); } break; } - setState(2300); + setState(2301); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,251,_ctx); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2293); - primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); setState(2294); - match(LBRACK); + primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); setState(2295); - expression(); + match(LBRACK); setState(2296); + expression(); + setState(2297); match(RBRACK); } } } - setState(2302); + setState(2303); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,251,_ctx); + _alt = getInterpreter().adaptivePredict(_input,252,_ctx); } } } @@ -13759,14 +12126,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation(this); - } } public final MethodInvocationContext methodInvocation() throws RecognitionException { @@ -13774,195 +12133,194 @@ public class Java8Parser extends Parser { enterRule(_localctx, 392, RULE_methodInvocation); int _la; try { - setState(2371); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,263,_ctx) ) { + setState(2372); + switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2303); - methodName(); setState(2304); + methodName(); + setState(2305); match(LPAREN); - setState(2306); + setState(2307); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2305); + setState(2306); argumentList(); } } - setState(2308); + setState(2309); match(RPAREN); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2310); - typeName(); setState(2311); + typeName(); + setState(2312); match(DOT); - setState(2313); + setState(2314); _la = _input.LA(1); if (_la==LT) { { - setState(2312); + setState(2313); typeArguments(); } } - setState(2315); - match(Identifier); setState(2316); + match(Identifier); + setState(2317); match(LPAREN); - setState(2318); + setState(2319); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2317); + setState(2318); argumentList(); } } - setState(2320); + setState(2321); match(RPAREN); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2322); - expressionName(); setState(2323); + expressionName(); + setState(2324); match(DOT); - setState(2325); + setState(2326); _la = _input.LA(1); if (_la==LT) { { - setState(2324); + setState(2325); typeArguments(); } } - setState(2327); - match(Identifier); setState(2328); + match(Identifier); + setState(2329); match(LPAREN); - setState(2330); + setState(2331); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2329); + setState(2330); argumentList(); } } - setState(2332); + setState(2333); match(RPAREN); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2334); - primary(); setState(2335); + primary(); + setState(2336); match(DOT); - setState(2337); + setState(2338); _la = _input.LA(1); if (_la==LT) { { - setState(2336); + setState(2337); typeArguments(); } } - setState(2339); - match(Identifier); setState(2340); + match(Identifier); + setState(2341); match(LPAREN); - setState(2342); + setState(2343); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2341); + setState(2342); argumentList(); } } - setState(2344); + setState(2345); match(RPAREN); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2346); - match(SUPER); setState(2347); + match(SUPER); + setState(2348); match(DOT); - setState(2349); + setState(2350); _la = _input.LA(1); if (_la==LT) { { - setState(2348); + setState(2349); typeArguments(); } } - setState(2351); - match(Identifier); setState(2352); + match(Identifier); + setState(2353); match(LPAREN); - setState(2354); + setState(2355); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2353); + setState(2354); argumentList(); } } - setState(2356); + setState(2357); match(RPAREN); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2357); - typeName(); setState(2358); - match(DOT); + typeName(); setState(2359); - match(SUPER); - setState(2360); match(DOT); - setState(2362); + setState(2360); + match(SUPER); + setState(2361); + match(DOT); + setState(2363); _la = _input.LA(1); if (_la==LT) { { - setState(2361); + setState(2362); typeArguments(); } } - setState(2364); - match(Identifier); setState(2365); + match(Identifier); + setState(2366); match(LPAREN); - setState(2367); + setState(2368); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2366); + setState(2367); argumentList(); } } - setState(2369); + setState(2370); match(RPAREN); } break; @@ -13991,14 +12349,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lf_primary(this); - } } public final MethodInvocation_lf_primaryContext methodInvocation_lf_primary() throws RecognitionException { @@ -14008,31 +12358,31 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2373); + setState(2374); match(DOT); - setState(2375); + setState(2376); _la = _input.LA(1); if (_la==LT) { { - setState(2374); + setState(2375); typeArguments(); } } - setState(2377); - match(Identifier); setState(2378); + match(Identifier); + setState(2379); match(LPAREN); - setState(2380); + setState(2381); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2379); + setState(2380); argumentList(); } } - setState(2382); + setState(2383); match(RPAREN); } } @@ -14068,14 +12418,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodInvocation_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lfno_primary(this); - } } public final MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() throws RecognitionException { @@ -14083,162 +12425,161 @@ public class Java8Parser extends Parser { enterRule(_localctx, 396, RULE_methodInvocation_lfno_primary); int _la; try { - setState(2440); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,275,_ctx) ) { + setState(2441); + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2384); - methodName(); setState(2385); + methodName(); + setState(2386); match(LPAREN); - setState(2387); + setState(2388); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2386); + setState(2387); argumentList(); } } - setState(2389); + setState(2390); match(RPAREN); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2391); - typeName(); setState(2392); + typeName(); + setState(2393); match(DOT); - setState(2394); + setState(2395); _la = _input.LA(1); if (_la==LT) { { - setState(2393); + setState(2394); typeArguments(); } } - setState(2396); - match(Identifier); setState(2397); + match(Identifier); + setState(2398); match(LPAREN); - setState(2399); + setState(2400); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2398); + setState(2399); argumentList(); } } - setState(2401); + setState(2402); match(RPAREN); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2403); - expressionName(); setState(2404); + expressionName(); + setState(2405); match(DOT); - setState(2406); + setState(2407); _la = _input.LA(1); if (_la==LT) { { - setState(2405); + setState(2406); typeArguments(); } } - setState(2408); - match(Identifier); setState(2409); + match(Identifier); + setState(2410); match(LPAREN); - setState(2411); + setState(2412); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2410); + setState(2411); argumentList(); } } - setState(2413); + setState(2414); match(RPAREN); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2415); - match(SUPER); setState(2416); + match(SUPER); + setState(2417); match(DOT); - setState(2418); + setState(2419); _la = _input.LA(1); if (_la==LT) { { - setState(2417); + setState(2418); typeArguments(); } } - setState(2420); - match(Identifier); setState(2421); + match(Identifier); + setState(2422); match(LPAREN); - setState(2423); + setState(2424); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2422); + setState(2423); argumentList(); } } - setState(2425); + setState(2426); match(RPAREN); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2426); - typeName(); setState(2427); - match(DOT); + typeName(); setState(2428); - match(SUPER); - setState(2429); match(DOT); - setState(2431); + setState(2429); + match(SUPER); + setState(2430); + match(DOT); + setState(2432); _la = _input.LA(1); if (_la==LT) { { - setState(2430); + setState(2431); typeArguments(); } } - setState(2433); - match(Identifier); setState(2434); + match(Identifier); + setState(2435); match(LPAREN); - setState(2436); + setState(2437); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (BANG - 69)) | (1L << (TILDE - 69)) | (1L << (INC - 69)) | (1L << (DEC - 69)) | (1L << (ADD - 69)) | (1L << (SUB - 69)) | (1L << (Identifier - 69)) | (1L << (AT - 69)))) != 0)) { { - setState(2435); + setState(2436); argumentList(); } } - setState(2438); + setState(2439); match(RPAREN); } break; @@ -14266,14 +12607,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_argumentList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArgumentList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArgumentList(this); - } } public final ArgumentListContext argumentList() throws RecognitionException { @@ -14283,21 +12616,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2442); + setState(2443); expression(); - setState(2447); + setState(2448); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(2443); - match(COMMA); setState(2444); + match(COMMA); + setState(2445); expression(); } } - setState(2449); + setState(2450); _errHandler.sync(this); _la = _input.LA(1); } @@ -14341,14 +12674,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference(this); - } } public final MethodReferenceContext methodReference() throws RecognitionException { @@ -14356,141 +12681,140 @@ public class Java8Parser extends Parser { enterRule(_localctx, 400, RULE_methodReference); int _la; try { - setState(2497); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,283,_ctx) ) { + setState(2498); + switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2450); - expressionName(); setState(2451); + expressionName(); + setState(2452); match(COLONCOLON); - setState(2453); + setState(2454); _la = _input.LA(1); if (_la==LT) { { - setState(2452); + setState(2453); typeArguments(); } } - setState(2455); + setState(2456); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2457); - referenceType(); setState(2458); + referenceType(); + setState(2459); match(COLONCOLON); - setState(2460); + setState(2461); _la = _input.LA(1); if (_la==LT) { { - setState(2459); + setState(2460); typeArguments(); } } - setState(2462); + setState(2463); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2464); - primary(); setState(2465); + primary(); + setState(2466); match(COLONCOLON); - setState(2467); + setState(2468); _la = _input.LA(1); if (_la==LT) { { - setState(2466); + setState(2467); typeArguments(); } } - setState(2469); + setState(2470); match(Identifier); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2471); - match(SUPER); setState(2472); + match(SUPER); + setState(2473); match(COLONCOLON); - setState(2474); + setState(2475); _la = _input.LA(1); if (_la==LT) { { - setState(2473); + setState(2474); typeArguments(); } } - setState(2476); + setState(2477); match(Identifier); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2477); - typeName(); setState(2478); - match(DOT); + typeName(); setState(2479); - match(SUPER); + match(DOT); setState(2480); + match(SUPER); + setState(2481); match(COLONCOLON); - setState(2482); + setState(2483); _la = _input.LA(1); if (_la==LT) { { - setState(2481); + setState(2482); typeArguments(); } } - setState(2484); + setState(2485); match(Identifier); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2486); - classType(); setState(2487); + classType(); + setState(2488); match(COLONCOLON); - setState(2489); + setState(2490); _la = _input.LA(1); if (_la==LT) { { - setState(2488); + setState(2489); typeArguments(); } } - setState(2491); + setState(2492); match(NEW); } break; case 7: enterOuterAlt(_localctx, 7); { - setState(2493); - arrayType(); setState(2494); - match(COLONCOLON); + arrayType(); setState(2495); + match(COLONCOLON); + setState(2496); match(NEW); } break; @@ -14516,14 +12840,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lf_primary(this); - } } public final MethodReference_lf_primaryContext methodReference_lf_primary() throws RecognitionException { @@ -14533,18 +12849,18 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2499); + setState(2500); match(COLONCOLON); - setState(2501); + setState(2502); _la = _input.LA(1); if (_la==LT) { { - setState(2500); + setState(2501); typeArguments(); } } - setState(2503); + setState(2504); match(Identifier); } } @@ -14583,14 +12899,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_methodReference_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lfno_primary(this); - } } public final MethodReference_lfno_primaryContext methodReference_lfno_primary() throws RecognitionException { @@ -14598,121 +12906,120 @@ public class Java8Parser extends Parser { enterRule(_localctx, 404, RULE_methodReference_lfno_primary); int _la; try { - setState(2545); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,290,_ctx) ) { + setState(2546); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2505); - expressionName(); setState(2506); + expressionName(); + setState(2507); match(COLONCOLON); - setState(2508); + setState(2509); _la = _input.LA(1); if (_la==LT) { { - setState(2507); + setState(2508); typeArguments(); } } - setState(2510); + setState(2511); match(Identifier); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2512); - referenceType(); setState(2513); + referenceType(); + setState(2514); match(COLONCOLON); - setState(2515); + setState(2516); _la = _input.LA(1); if (_la==LT) { { - setState(2514); + setState(2515); typeArguments(); } } - setState(2517); + setState(2518); match(Identifier); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2519); - match(SUPER); setState(2520); + match(SUPER); + setState(2521); match(COLONCOLON); - setState(2522); + setState(2523); _la = _input.LA(1); if (_la==LT) { { - setState(2521); + setState(2522); typeArguments(); } } - setState(2524); + setState(2525); match(Identifier); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2525); - typeName(); setState(2526); - match(DOT); + typeName(); setState(2527); - match(SUPER); + match(DOT); setState(2528); + match(SUPER); + setState(2529); match(COLONCOLON); - setState(2530); + setState(2531); _la = _input.LA(1); if (_la==LT) { { - setState(2529); + setState(2530); typeArguments(); } } - setState(2532); + setState(2533); match(Identifier); } break; case 5: enterOuterAlt(_localctx, 5); { - setState(2534); - classType(); setState(2535); + classType(); + setState(2536); match(COLONCOLON); - setState(2537); + setState(2538); _la = _input.LA(1); if (_la==LT) { { - setState(2536); + setState(2537); typeArguments(); } } - setState(2539); + setState(2540); match(NEW); } break; case 6: enterOuterAlt(_localctx, 6); { - setState(2541); - arrayType(); setState(2542); - match(COLONCOLON); + arrayType(); setState(2543); + match(COLONCOLON); + setState(2544); match(NEW); } break; @@ -14749,38 +13056,28 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_arrayCreationExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayCreationExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayCreationExpression(this); - } } public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); enterRule(_localctx, 406, RULE_arrayCreationExpression); try { - setState(2569); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + setState(2570); + switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2547); - match(NEW); setState(2548); - primitiveType(); + match(NEW); setState(2549); + primitiveType(); + setState(2550); dimExprs(); - setState(2551); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { + setState(2552); + switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { case 1: { - setState(2550); + setState(2551); dims(); } break; @@ -14790,18 +13087,17 @@ public class Java8Parser extends Parser { case 2: enterOuterAlt(_localctx, 2); { - setState(2553); - match(NEW); setState(2554); - classOrInterfaceType(); + match(NEW); setState(2555); + classOrInterfaceType(); + setState(2556); dimExprs(); - setState(2557); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { + setState(2558); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { case 1: { - setState(2556); + setState(2557); dims(); } break; @@ -14811,26 +13107,26 @@ public class Java8Parser extends Parser { case 3: enterOuterAlt(_localctx, 3); { - setState(2559); - match(NEW); setState(2560); - primitiveType(); + match(NEW); setState(2561); - dims(); + primitiveType(); setState(2562); + dims(); + setState(2563); arrayInitializer(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2564); - match(NEW); setState(2565); - classOrInterfaceType(); + match(NEW); setState(2566); - dims(); + classOrInterfaceType(); setState(2567); + dims(); + setState(2568); arrayInitializer(); } break; @@ -14858,14 +13154,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dimExprs; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExprs(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExprs(this); - } } public final DimExprsContext dimExprs() throws RecognitionException { @@ -14875,23 +13163,23 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2571); + setState(2572); dimExpr(); - setState(2575); + setState(2576); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,294,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(2572); + setState(2573); dimExpr(); } } } - setState(2577); + setState(2578); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,294,_ctx); + _alt = getInterpreter().adaptivePredict(_input,295,_ctx); } } } @@ -14920,14 +13208,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_dimExpr; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExpr(this); - } } public final DimExprContext dimExpr() throws RecognitionException { @@ -14937,25 +13217,25 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2581); + setState(2582); _errHandler.sync(this); _la = _input.LA(1); while (_la==AT) { { { - setState(2578); + setState(2579); annotation(); } } - setState(2583); + setState(2584); _errHandler.sync(this); _la = _input.LA(1); } - setState(2584); - match(LBRACK); setState(2585); - expression(); + match(LBRACK); setState(2586); + expression(); + setState(2587); match(RBRACK); } } @@ -14978,14 +13258,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_constantExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantExpression(this); - } } public final ConstantExpressionContext constantExpression() throws RecognitionException { @@ -14994,7 +13266,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2588); + setState(2589); expression(); } } @@ -15020,34 +13292,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpression(this); - } } public final ExpressionContext expression() throws RecognitionException { ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); enterRule(_localctx, 414, RULE_expression); try { - setState(2592); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) { + setState(2593); + switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2590); + setState(2591); lambdaExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2591); + setState(2592); assignmentExpression(); } break; @@ -15075,14 +13338,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaExpression(this); - } } public final LambdaExpressionContext lambdaExpression() throws RecognitionException { @@ -15091,11 +13346,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2594); - lambdaParameters(); setState(2595); - match(ARROW); + lambdaParameters(); setState(2596); + match(ARROW); + setState(2597); lambdaBody(); } } @@ -15115,21 +13370,10 @@ public class Java8Parser extends Parser { public FormalParameterListContext formalParameterList() { return getRuleContext(FormalParameterListContext.class,0); } - public InferredFormalParameterListContext inferredFormalParameterList() { - return getRuleContext(InferredFormalParameterListContext.class,0); - } 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 Java8Listener ) ((Java8Listener)listener).enterLambdaParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaParameters(this); - } } public final LambdaParametersContext lambdaParameters() throws RecognitionException { @@ -15137,45 +13381,35 @@ public class Java8Parser extends Parser { enterRule(_localctx, 418, RULE_lambdaParameters); int _la; try { - setState(2608); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) { - case 1: + setState(2605); + switch (_input.LA(1)) { + case Identifier: enterOuterAlt(_localctx, 1); { - setState(2598); + setState(2599); match(Identifier); } break; - case 2: + case LPAREN: enterOuterAlt(_localctx, 2); { - setState(2599); + setState(2600); match(LPAREN); - setState(2601); + setState(2602); _la = _input.LA(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { { - setState(2600); + setState(2601); formalParameterList(); } } - setState(2603); - match(RPAREN); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { setState(2604); - match(LPAREN); - setState(2605); - inferredFormalParameterList(); - setState(2606); match(RPAREN); } break; + default: + throw new NoViableAltException(this); } } catch (RecognitionException re) { @@ -15198,14 +13432,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_inferredFormalParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInferredFormalParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInferredFormalParameterList(this); - } } public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { @@ -15215,21 +13441,21 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2610); + setState(2607); match(Identifier); - setState(2615); + setState(2612); _errHandler.sync(this); _la = _input.LA(1); while (_la==COMMA) { { { - setState(2611); + setState(2608); match(COMMA); - setState(2612); + setState(2609); match(Identifier); } } - setState(2617); + setState(2614); _errHandler.sync(this); _la = _input.LA(1); } @@ -15257,21 +13483,13 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_lambdaBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaBody(this); - } } public final LambdaBodyContext lambdaBody() throws RecognitionException { LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); enterRule(_localctx, 422, RULE_lambdaBody); try { - setState(2620); + setState(2617); switch (_input.LA(1)) { case BOOLEAN: case BYTE: @@ -15302,14 +13520,14 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 1); { - setState(2618); + setState(2615); expression(); } break; case LBRACE: enterOuterAlt(_localctx, 2); { - setState(2619); + setState(2616); block(); } break; @@ -15339,34 +13557,25 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignmentExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentExpression(this); - } } public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); enterRule(_localctx, 424, RULE_assignmentExpression); try { - setState(2624); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,301,_ctx) ) { + setState(2621); + switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2622); + setState(2619); conditionalExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2623); + setState(2620); assignment(); } break; @@ -15397,14 +13606,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignment; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignment(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignment(this); - } } public final AssignmentContext assignment() throws RecognitionException { @@ -15413,11 +13614,11 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2626); + setState(2623); leftHandSide(); - setState(2627); + setState(2624); assignmentOperator(); - setState(2628); + setState(2625); expression(); } } @@ -15446,41 +13647,32 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_leftHandSide; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLeftHandSide(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLeftHandSide(this); - } } public final LeftHandSideContext leftHandSide() throws RecognitionException { LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); enterRule(_localctx, 428, RULE_leftHandSide); try { - setState(2633); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { + setState(2630); + switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2630); + setState(2627); expressionName(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2631); + setState(2628); fieldAccess(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2632); + setState(2629); arrayAccess(); } break; @@ -15502,14 +13694,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_assignmentOperator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentOperator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentOperator(this); - } } public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { @@ -15519,7 +13703,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2635); + setState(2632); _la = _input.LA(1); if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (ASSIGN - 66)) | (1L << (ADD_ASSIGN - 66)) | (1L << (SUB_ASSIGN - 66)) | (1L << (MUL_ASSIGN - 66)) | (1L << (DIV_ASSIGN - 66)) | (1L << (AND_ASSIGN - 66)) | (1L << (OR_ASSIGN - 66)) | (1L << (XOR_ASSIGN - 66)) | (1L << (MOD_ASSIGN - 66)) | (1L << (LSHIFT_ASSIGN - 66)) | (1L << (RSHIFT_ASSIGN - 66)) | (1L << (URSHIFT_ASSIGN - 66)))) != 0)) ) { _errHandler.recoverInline(this); @@ -15553,42 +13737,33 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalExpression(this); - } } public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); enterRule(_localctx, 432, RULE_conditionalExpression); try { - setState(2644); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { + setState(2641); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2637); + setState(2634); conditionalOrExpression(0); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2638); + setState(2635); conditionalOrExpression(0); - setState(2639); + setState(2636); match(QUESTION); - setState(2640); + setState(2637); expression(); - setState(2641); + setState(2638); match(COLON); - setState(2642); + setState(2639); conditionalExpression(); } break; @@ -15616,14 +13791,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalOrExpression(this); - } } public final ConditionalOrExpressionContext conditionalOrExpression() throws RecognitionException { @@ -15642,13 +13809,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2647); + setState(2644); conditionalAndExpression(0); } _ctx.stop = _input.LT(-1); - setState(2654); + setState(2651); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,304,_ctx); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -15657,18 +13824,18 @@ public class Java8Parser extends Parser { { _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); - setState(2649); + setState(2646); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2650); + setState(2647); match(OR); - setState(2651); + setState(2648); conditionalAndExpression(0); } } } - setState(2656); + setState(2653); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,304,_ctx); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); } } } @@ -15694,14 +13861,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_conditionalAndExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalAndExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalAndExpression(this); - } } public final ConditionalAndExpressionContext conditionalAndExpression() throws RecognitionException { @@ -15720,13 +13879,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2658); + setState(2655); inclusiveOrExpression(0); } _ctx.stop = _input.LT(-1); - setState(2665); + setState(2662); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -15735,18 +13894,18 @@ public class Java8Parser extends Parser { { _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); - setState(2660); + setState(2657); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2661); + setState(2658); match(AND); - setState(2662); + setState(2659); inclusiveOrExpression(0); } } } - setState(2667); + setState(2664); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + _alt = getInterpreter().adaptivePredict(_input,306,_ctx); } } } @@ -15772,14 +13931,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_inclusiveOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInclusiveOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInclusiveOrExpression(this); - } } public final InclusiveOrExpressionContext inclusiveOrExpression() throws RecognitionException { @@ -15798,13 +13949,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2669); + setState(2666); exclusiveOrExpression(0); } _ctx.stop = _input.LT(-1); - setState(2676); + setState(2673); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -15813,18 +13964,18 @@ public class Java8Parser extends Parser { { _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); - setState(2671); + setState(2668); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2672); + setState(2669); match(BITOR); - setState(2673); + setState(2670); exclusiveOrExpression(0); } } } - setState(2678); + setState(2675); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); + _alt = getInterpreter().adaptivePredict(_input,307,_ctx); } } } @@ -15850,14 +14001,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_exclusiveOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExclusiveOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExclusiveOrExpression(this); - } } public final ExclusiveOrExpressionContext exclusiveOrExpression() throws RecognitionException { @@ -15876,13 +14019,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2680); + setState(2677); andExpression(0); } _ctx.stop = _input.LT(-1); - setState(2687); + setState(2684); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -15891,18 +14034,18 @@ public class Java8Parser extends Parser { { _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); - setState(2682); + setState(2679); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2683); + setState(2680); match(CARET); - setState(2684); + setState(2681); andExpression(0); } } } - setState(2689); + setState(2686); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); + _alt = getInterpreter().adaptivePredict(_input,308,_ctx); } } } @@ -15928,14 +14071,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_andExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAndExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAndExpression(this); - } } public final AndExpressionContext andExpression() throws RecognitionException { @@ -15954,13 +14089,13 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2691); + setState(2688); equalityExpression(0); } _ctx.stop = _input.LT(-1); - setState(2698); + setState(2695); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -15969,18 +14104,18 @@ public class Java8Parser extends Parser { { _localctx = new AndExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_andExpression); - setState(2693); + setState(2690); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2694); + setState(2691); match(BITAND); - setState(2695); + setState(2692); equalityExpression(0); } } } - setState(2700); + setState(2697); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); + _alt = getInterpreter().adaptivePredict(_input,309,_ctx); } } } @@ -16006,14 +14141,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_equalityExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEqualityExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEqualityExpression(this); - } } public final EqualityExpressionContext equalityExpression() throws RecognitionException { @@ -16032,30 +14159,29 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2702); + setState(2699); relationalExpression(0); } _ctx.stop = _input.LT(-1); - setState(2712); + setState(2709); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,310,_ctx); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2710); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,309,_ctx) ) { + setState(2707); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { case 1: { _localctx = new EqualityExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2704); + setState(2701); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2705); + setState(2702); match(EQUAL); - setState(2706); + setState(2703); relationalExpression(0); } break; @@ -16063,20 +14189,20 @@ public class Java8Parser extends Parser { { _localctx = new EqualityExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2707); + setState(2704); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2708); + setState(2705); match(NOTEQUAL); - setState(2709); + setState(2706); relationalExpression(0); } break; } } } - setState(2714); + setState(2711); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,310,_ctx); + _alt = getInterpreter().adaptivePredict(_input,311,_ctx); } } } @@ -16105,14 +14231,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_relationalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterRelationalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitRelationalExpression(this); - } } public final RelationalExpressionContext relationalExpression() throws RecognitionException { @@ -16131,30 +14249,29 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2716); + setState(2713); shiftExpression(0); } _ctx.stop = _input.LT(-1); - setState(2735); + setState(2732); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,312,_ctx); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2733); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,311,_ctx) ) { + setState(2730); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { case 1: { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2718); + setState(2715); if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(2719); + setState(2716); match(LT); - setState(2720); + setState(2717); shiftExpression(0); } break; @@ -16162,11 +14279,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2721); + setState(2718); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(2722); + setState(2719); match(GT); - setState(2723); + setState(2720); shiftExpression(0); } break; @@ -16174,11 +14291,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2724); + setState(2721); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2725); + setState(2722); match(LE); - setState(2726); + setState(2723); shiftExpression(0); } break; @@ -16186,11 +14303,11 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2727); + setState(2724); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2728); + setState(2725); match(GE); - setState(2729); + setState(2726); shiftExpression(0); } break; @@ -16198,20 +14315,20 @@ public class Java8Parser extends Parser { { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2730); + setState(2727); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2731); + setState(2728); match(INSTANCEOF); - setState(2732); + setState(2729); referenceType(); } break; } } } - setState(2737); + setState(2734); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,312,_ctx); + _alt = getInterpreter().adaptivePredict(_input,313,_ctx); } } } @@ -16237,14 +14354,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_shiftExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterShiftExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitShiftExpression(this); - } } public final ShiftExpressionContext shiftExpression() throws RecognitionException { @@ -16263,32 +14372,31 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2739); + setState(2736); additiveExpression(0); } _ctx.stop = _input.LT(-1); - setState(2756); + setState(2753); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2754); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,313,_ctx) ) { + setState(2751); + switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) { case 1: { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2741); + setState(2738); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2742); + setState(2739); match(LT); - setState(2743); + setState(2740); match(LT); - setState(2744); + setState(2741); additiveExpression(0); } break; @@ -16296,13 +14404,13 @@ public class Java8Parser extends Parser { { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2745); + setState(2742); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2746); + setState(2743); match(GT); - setState(2747); + setState(2744); match(GT); - setState(2748); + setState(2745); additiveExpression(0); } break; @@ -16310,24 +14418,24 @@ public class Java8Parser extends Parser { { _localctx = new ShiftExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2749); + setState(2746); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2747); + match(GT); + setState(2748); + match(GT); + setState(2749); + match(GT); setState(2750); - match(GT); - setState(2751); - match(GT); - setState(2752); - match(GT); - setState(2753); additiveExpression(0); } break; } } } - setState(2758); + setState(2755); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); + _alt = getInterpreter().adaptivePredict(_input,315,_ctx); } } } @@ -16353,14 +14461,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_additiveExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditiveExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditiveExpression(this); - } } public final AdditiveExpressionContext additiveExpression() throws RecognitionException { @@ -16379,30 +14479,29 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2760); + setState(2757); multiplicativeExpression(0); } _ctx.stop = _input.LT(-1); - setState(2770); + setState(2767); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,316,_ctx); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2768); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) { + setState(2765); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { case 1: { _localctx = new AdditiveExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2762); + setState(2759); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2763); + setState(2760); match(ADD); - setState(2764); + setState(2761); multiplicativeExpression(0); } break; @@ -16410,20 +14509,20 @@ public class Java8Parser extends Parser { { _localctx = new AdditiveExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2765); + setState(2762); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2766); + setState(2763); match(SUB); - setState(2767); + setState(2764); multiplicativeExpression(0); } break; } } } - setState(2772); + setState(2769); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,316,_ctx); + _alt = getInterpreter().adaptivePredict(_input,317,_ctx); } } } @@ -16449,14 +14548,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_multiplicativeExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMultiplicativeExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMultiplicativeExpression(this); - } } public final MultiplicativeExpressionContext multiplicativeExpression() throws RecognitionException { @@ -16475,30 +14566,29 @@ public class Java8Parser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(2774); + setState(2771); unaryExpression(); } _ctx.stop = _input.LT(-1); - setState(2787); + setState(2784); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(2785); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,317,_ctx) ) { + setState(2782); + switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { case 1: { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2776); + setState(2773); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2777); + setState(2774); match(MUL); - setState(2778); + setState(2775); unaryExpression(); } break; @@ -16506,11 +14596,11 @@ public class Java8Parser extends Parser { { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2779); + setState(2776); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2780); + setState(2777); match(DIV); - setState(2781); + setState(2778); unaryExpression(); } break; @@ -16518,20 +14608,20 @@ public class Java8Parser extends Parser { { _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2782); + setState(2779); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2783); + setState(2780); match(MOD); - setState(2784); + setState(2781); unaryExpression(); } break; } } } - setState(2789); + setState(2786); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,318,_ctx); + _alt = getInterpreter().adaptivePredict(_input,319,_ctx); } } } @@ -16563,51 +14653,43 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unaryExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpression(this); - } } public final UnaryExpressionContext unaryExpression() throws RecognitionException { UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); enterRule(_localctx, 454, RULE_unaryExpression); try { - setState(2797); + setState(2794); switch (_input.LA(1)) { case INC: enterOuterAlt(_localctx, 1); { - setState(2790); + setState(2787); preIncrementExpression(); } break; case DEC: enterOuterAlt(_localctx, 2); { - setState(2791); + setState(2788); preDecrementExpression(); } break; case ADD: enterOuterAlt(_localctx, 3); { - setState(2792); + setState(2789); match(ADD); - setState(2793); + setState(2790); unaryExpression(); } break; case SUB: enterOuterAlt(_localctx, 4); { - setState(2794); + setState(2791); match(SUB); - setState(2795); + setState(2792); unaryExpression(); } break; @@ -16636,7 +14718,7 @@ public class Java8Parser extends Parser { case AT: enterOuterAlt(_localctx, 5); { - setState(2796); + setState(2793); unaryExpressionNotPlusMinus(); } break; @@ -16663,14 +14745,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_preIncrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreIncrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreIncrementExpression(this); - } } public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { @@ -16679,9 +14753,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2799); + setState(2796); match(INC); - setState(2800); + setState(2797); unaryExpression(); } } @@ -16704,14 +14778,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_preDecrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreDecrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreDecrementExpression(this); - } } public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { @@ -16720,9 +14786,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2802); + setState(2799); match(DEC); - setState(2803); + setState(2800); unaryExpression(); } } @@ -16751,52 +14817,43 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_unaryExpressionNotPlusMinus; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpressionNotPlusMinus(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpressionNotPlusMinus(this); - } } public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); enterRule(_localctx, 460, RULE_unaryExpressionNotPlusMinus); try { - setState(2811); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) { + setState(2808); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2805); + setState(2802); postfixExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2806); + setState(2803); match(TILDE); - setState(2807); + setState(2804); unaryExpression(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2808); + setState(2805); match(BANG); - setState(2809); + setState(2806); unaryExpression(); } break; case 4: enterOuterAlt(_localctx, 4); { - setState(2810); + setState(2807); castExpression(); } break; @@ -16836,14 +14893,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostfixExpression(this); - } } public final PostfixExpressionContext postfixExpression() throws RecognitionException { @@ -16853,39 +14902,38 @@ public class Java8Parser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(2815); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { + setState(2812); + switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { case 1: { - setState(2813); + setState(2810); primary(); } break; case 2: { - setState(2814); + setState(2811); expressionName(); } break; } - setState(2821); + setState(2818); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,323,_ctx); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { - setState(2819); + setState(2816); switch (_input.LA(1)) { case INC: { - setState(2817); + setState(2814); postIncrementExpression_lf_postfixExpression(); } break; case DEC: { - setState(2818); + setState(2815); postDecrementExpression_lf_postfixExpression(); } break; @@ -16894,9 +14942,9 @@ public class Java8Parser extends Parser { } } } - setState(2823); + setState(2820); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,323,_ctx); + _alt = getInterpreter().adaptivePredict(_input,324,_ctx); } } } @@ -16919,14 +14967,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postIncrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression(this); - } } public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { @@ -16935,9 +14975,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2824); + setState(2821); postfixExpression(); - setState(2825); + setState(2822); match(INC); } } @@ -16957,14 +14997,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postIncrementExpression_lf_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression_lf_postfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression_lf_postfixExpression(this); - } } public final PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression() throws RecognitionException { @@ -16973,7 +15005,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2827); + setState(2824); match(INC); } } @@ -16996,14 +15028,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postDecrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression(this); - } } public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { @@ -17012,9 +15036,9 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2829); + setState(2826); postfixExpression(); - setState(2830); + setState(2827); match(DEC); } } @@ -17034,14 +15058,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_postDecrementExpression_lf_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression_lf_postfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression_lf_postfixExpression(this); - } } public final PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression() throws RecognitionException { @@ -17050,7 +15066,7 @@ public class Java8Parser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(2832); + setState(2829); match(DEC); } } @@ -17091,14 +15107,6 @@ public class Java8Parser extends Parser { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_castExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCastExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCastExpression(this); - } } public final CastExpressionContext castExpression() throws RecognitionException { @@ -17106,73 +15114,72 @@ public class Java8Parser extends Parser { enterRule(_localctx, 472, RULE_castExpression); int _la; try { - setState(2861); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,326,_ctx) ) { + setState(2858); + switch ( getInterpreter().adaptivePredict(_input,327,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(2834); + setState(2831); match(LPAREN); - setState(2835); + setState(2832); primitiveType(); - setState(2836); + setState(2833); match(RPAREN); - setState(2837); + setState(2834); unaryExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(2839); + setState(2836); match(LPAREN); - setState(2840); + setState(2837); referenceType(); - setState(2844); + setState(2841); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITAND) { { { - setState(2841); + setState(2838); additionalBound(); } } - setState(2846); + setState(2843); _errHandler.sync(this); _la = _input.LA(1); } - setState(2847); + setState(2844); match(RPAREN); - setState(2848); + setState(2845); unaryExpressionNotPlusMinus(); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(2850); + setState(2847); match(LPAREN); - setState(2851); + setState(2848); referenceType(); - setState(2855); + setState(2852); _errHandler.sync(this); _la = _input.LA(1); while (_la==BITAND) { { { - setState(2852); + setState(2849); additionalBound(); } } - setState(2857); + setState(2854); _errHandler.sync(this); _la = _input.LA(1); } - setState(2858); + setState(2855); match(RPAREN); - setState(2859); + setState(2856); lambdaExpression(); } break; @@ -17334,7 +15341,7 @@ public class Java8Parser extends Parser { private static final int _serializedATNSegments = 2; private static final String _serializedATNSegment0 = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3m\u0b32\4\2\t\2\4"+ + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3m\u0b2f\4\2\t\2\4"+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -17402,364 +15409,364 @@ public class Java8Parser extends Parser { ",\3,\5,\u032c\n,\3,\3,\3-\3-\3-\3-\3-\3-\3-\3-\5-\u0338\n-\3.\3.\3.\3"+ ".\3/\3/\3/\7/\u0341\n/\f/\16/\u0344\13/\3\60\3\60\3\60\3\61\3\61\3\61"+ "\3\62\3\62\3\62\7\62\u034f\n\62\f\62\16\62\u0352\13\62\3\63\3\63\7\63"+ - "\u0356\n\63\f\63\16\63\u0359\13\63\3\63\3\63\3\64\3\64\3\64\3\64\5\64"+ - "\u0361\n\64\3\65\3\65\3\65\3\65\3\65\5\65\u0368\n\65\3\66\7\66\u036b\n"+ - "\66\f\66\16\66\u036e\13\66\3\66\5\66\u0371\n\66\3\66\3\66\3\66\3\67\3"+ - "\67\3\67\3\67\3\67\3\67\3\67\3\67\5\67\u037e\n\67\38\38\38\78\u0383\n"+ - "8\f8\168\u0386\138\39\39\39\59\u038b\n9\3:\3:\5:\u038f\n:\3;\3;\5;\u0393"+ - "\n;\3<\3<\5<\u0397\n<\3=\3=\5=\u039b\n=\3>\3>\3>\5>\u03a0\n>\3?\3?\5?"+ - "\u03a4\n?\3?\3?\7?\u03a8\n?\f?\16?\u03ab\13?\3@\3@\5@\u03af\n@\3@\3@\3"+ - "@\7@\u03b4\n@\f@\16@\u03b7\13@\3@\3@\5@\u03bb\n@\5@\u03bd\n@\3A\3A\7A"+ - "\u03c1\nA\fA\16A\u03c4\13A\3A\3A\5A\u03c8\nA\3B\3B\5B\u03cc\nB\3C\3C\3"+ - "D\3D\3E\3E\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\5G\u03df\nG\3H\7H\u03e2\n"+ - "H\fH\16H\u03e5\13H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\5I\u03f4\nI"+ - "\3J\5J\u03f7\nJ\3J\3J\5J\u03fb\nJ\3J\3J\7J\u03ff\nJ\fJ\16J\u0402\13J\3"+ - "J\3J\3J\5J\u0407\nJ\5J\u0409\nJ\3K\3K\5K\u040d\nK\3L\3L\3L\5L\u0412\n"+ - "L\3L\3L\5L\u0416\nL\3M\3M\3M\3M\3M\5M\u041d\nM\3N\3N\3N\7N\u0422\nN\f"+ - "N\16N\u0425\13N\3N\3N\3N\7N\u042a\nN\fN\16N\u042d\13N\5N\u042f\nN\3O\7"+ - "O\u0432\nO\fO\16O\u0435\13O\3O\5O\u0438\nO\3O\3O\3P\3P\5P\u043e\nP\3Q"+ - "\7Q\u0441\nQ\fQ\16Q\u0444\13Q\3Q\3Q\7Q\u0448\nQ\fQ\16Q\u044b\13Q\3Q\3"+ - "Q\3Q\3Q\5Q\u0451\nQ\3R\7R\u0454\nR\fR\16R\u0457\13R\3R\3R\3R\5R\u045c"+ - "\nR\3R\3R\3S\3S\3S\3T\3T\3T\7T\u0466\nT\fT\16T\u0469\13T\3U\3U\5U\u046d"+ - "\nU\3V\3V\5V\u0471\nV\3W\3W\3X\3X\3X\3Y\7Y\u0479\nY\fY\16Y\u047c\13Y\3"+ - "Y\3Y\5Y\u0480\nY\3Y\3Y\3Z\3Z\3Z\3Z\5Z\u0488\nZ\3[\5[\u048b\n[\3[\3[\3"+ - "[\5[\u0490\n[\3[\3[\3\\\3\\\3]\3]\5]\u0498\n]\3]\5]\u049b\n]\3]\3]\3^"+ - "\5^\u04a0\n^\3^\3^\3^\5^\u04a5\n^\3^\3^\3^\5^\u04aa\n^\3^\3^\3^\5^\u04af"+ - "\n^\3^\3^\3^\3^\3^\5^\u04b6\n^\3^\3^\3^\5^\u04bb\n^\3^\3^\3^\3^\3^\3^"+ - "\5^\u04c3\n^\3^\3^\3^\5^\u04c8\n^\3^\3^\3^\5^\u04cd\n^\3_\7_\u04d0\n_"+ - "\f_\16_\u04d3\13_\3_\3_\3_\5_\u04d8\n_\3_\3_\3`\3`\5`\u04de\n`\3`\5`\u04e1"+ - "\n`\3`\5`\u04e4\n`\3`\3`\3a\3a\3a\7a\u04eb\na\fa\16a\u04ee\13a\3b\7b\u04f1"+ - "\nb\fb\16b\u04f4\13b\3b\3b\3b\5b\u04f9\nb\3b\5b\u04fc\nb\3b\5b\u04ff\n"+ - "b\3c\3c\3d\3d\7d\u0505\nd\fd\16d\u0508\13d\3e\3e\5e\u050c\ne\3f\7f\u050f"+ - "\nf\ff\16f\u0512\13f\3f\3f\3f\5f\u0517\nf\3f\5f\u051a\nf\3f\3f\3g\3g\3"+ - "g\3g\3g\3g\3g\5g\u0525\ng\3h\3h\3h\3i\3i\7i\u052c\ni\fi\16i\u052f\13i"+ - "\3i\3i\3j\3j\3j\3j\3j\5j\u0538\nj\3k\7k\u053b\nk\fk\16k\u053e\13k\3k\3"+ - "k\3k\3k\3l\3l\3l\3l\5l\u0548\nl\3m\7m\u054b\nm\fm\16m\u054e\13m\3m\3m"+ - "\3m\3n\3n\3n\3n\3n\3n\5n\u0559\nn\3o\7o\u055c\no\fo\16o\u055f\13o\3o\3"+ - "o\3o\3o\3o\3p\3p\7p\u0568\np\fp\16p\u056b\13p\3p\3p\3q\3q\3q\3q\3q\5q"+ - "\u0574\nq\3r\7r\u0577\nr\fr\16r\u057a\13r\3r\3r\3r\3r\3r\5r\u0581\nr\3"+ - "r\5r\u0584\nr\3r\3r\3s\3s\3s\5s\u058b\ns\3t\3t\3t\3u\3u\3u\5u\u0593\n"+ - "u\3v\3v\3v\3v\5v\u0599\nv\3v\3v\3w\3w\3w\7w\u05a0\nw\fw\16w\u05a3\13w"+ - "\3x\3x\3x\3x\3y\3y\3y\5y\u05ac\ny\3z\3z\5z\u05b0\nz\3z\5z\u05b3\nz\3z"+ - "\3z\3{\3{\3{\7{\u05ba\n{\f{\16{\u05bd\13{\3|\3|\3|\3}\3}\3}\3}\3}\3}\3"+ - "~\3~\5~\u05ca\n~\3~\5~\u05cd\n~\3~\3~\3\177\3\177\3\177\7\177\u05d4\n"+ - "\177\f\177\16\177\u05d7\13\177\3\u0080\3\u0080\5\u0080\u05db\n\u0080\3"+ - "\u0080\3\u0080\3\u0081\3\u0081\7\u0081\u05e1\n\u0081\f\u0081\16\u0081"+ - "\u05e4\13\u0081\3\u0082\3\u0082\3\u0082\5\u0082\u05e9\n\u0082\3\u0083"+ - "\3\u0083\3\u0083\3\u0084\7\u0084\u05ef\n\u0084\f\u0084\16\u0084\u05f2"+ + "\u0356\n\63\f\63\16\63\u0359\13\63\3\63\3\63\3\64\3\64\3\64\5\64\u0360"+ + "\n\64\3\65\3\65\3\65\3\65\3\65\5\65\u0367\n\65\3\66\7\66\u036a\n\66\f"+ + "\66\16\66\u036d\13\66\3\66\5\66\u0370\n\66\3\66\3\66\3\66\3\67\3\67\3"+ + "\67\3\67\3\67\3\67\3\67\3\67\5\67\u037d\n\67\38\38\38\78\u0382\n8\f8\16"+ + "8\u0385\138\39\39\39\59\u038a\n9\3:\3:\5:\u038e\n:\3;\3;\5;\u0392\n;\3"+ + "<\3<\5<\u0396\n<\3=\3=\5=\u039a\n=\3>\3>\3>\5>\u039f\n>\3?\3?\5?\u03a3"+ + "\n?\3?\3?\7?\u03a7\n?\f?\16?\u03aa\13?\3@\3@\5@\u03ae\n@\3@\3@\3@\7@\u03b3"+ + "\n@\f@\16@\u03b6\13@\3@\3@\5@\u03ba\n@\5@\u03bc\n@\3A\3A\7A\u03c0\nA\f"+ + "A\16A\u03c3\13A\3A\3A\5A\u03c7\nA\3B\3B\5B\u03cb\nB\3C\3C\3D\3D\3E\3E"+ + "\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\5G\u03de\nG\3H\7H\u03e1\nH\fH\16H\u03e4"+ + "\13H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\5I\u03f3\nI\3J\5J\u03f6\n"+ + "J\3J\3J\5J\u03fa\nJ\3J\3J\7J\u03fe\nJ\fJ\16J\u0401\13J\3J\5J\u0404\nJ"+ + "\3J\3J\5J\u0408\nJ\5J\u040a\nJ\3K\3K\5K\u040e\nK\3L\3L\3L\5L\u0413\nL"+ + "\3L\3L\5L\u0417\nL\3M\3M\3M\3M\3M\5M\u041e\nM\3N\3N\3N\7N\u0423\nN\fN"+ + "\16N\u0426\13N\3N\3N\3N\7N\u042b\nN\fN\16N\u042e\13N\5N\u0430\nN\3O\7"+ + "O\u0433\nO\fO\16O\u0436\13O\3O\5O\u0439\nO\3O\3O\3P\3P\5P\u043f\nP\3Q"+ + "\7Q\u0442\nQ\fQ\16Q\u0445\13Q\3Q\3Q\7Q\u0449\nQ\fQ\16Q\u044c\13Q\3Q\3"+ + "Q\3Q\3Q\5Q\u0452\nQ\3R\7R\u0455\nR\fR\16R\u0458\13R\3R\3R\3R\5R\u045d"+ + "\nR\3R\3R\3S\3S\3S\3T\3T\3T\7T\u0467\nT\fT\16T\u046a\13T\3U\3U\5U\u046e"+ + "\nU\3V\3V\5V\u0472\nV\3W\3W\3X\3X\3X\3Y\7Y\u047a\nY\fY\16Y\u047d\13Y\3"+ + "Y\3Y\5Y\u0481\nY\3Y\3Y\3Z\3Z\3Z\3Z\5Z\u0489\nZ\3[\5[\u048c\n[\3[\3[\3"+ + "[\5[\u0491\n[\3[\3[\3\\\3\\\3]\3]\5]\u0499\n]\3]\5]\u049c\n]\3]\3]\3^"+ + "\5^\u04a1\n^\3^\3^\3^\5^\u04a6\n^\3^\3^\3^\5^\u04ab\n^\3^\3^\3^\5^\u04b0"+ + "\n^\3^\3^\3^\3^\3^\5^\u04b7\n^\3^\3^\3^\5^\u04bc\n^\3^\3^\3^\3^\3^\3^"+ + "\5^\u04c4\n^\3^\3^\3^\5^\u04c9\n^\3^\3^\3^\5^\u04ce\n^\3_\7_\u04d1\n_"+ + "\f_\16_\u04d4\13_\3_\3_\3_\5_\u04d9\n_\3_\3_\3`\3`\5`\u04df\n`\3`\5`\u04e2"+ + "\n`\3`\5`\u04e5\n`\3`\3`\3a\3a\3a\7a\u04ec\na\fa\16a\u04ef\13a\3b\7b\u04f2"+ + "\nb\fb\16b\u04f5\13b\3b\3b\3b\5b\u04fa\nb\3b\5b\u04fd\nb\3b\5b\u0500\n"+ + "b\3c\3c\3d\3d\7d\u0506\nd\fd\16d\u0509\13d\3e\3e\5e\u050d\ne\3f\7f\u0510"+ + "\nf\ff\16f\u0513\13f\3f\3f\3f\5f\u0518\nf\3f\5f\u051b\nf\3f\3f\3g\3g\3"+ + "g\3g\3g\3g\3g\5g\u0526\ng\3h\3h\3h\3i\3i\7i\u052d\ni\fi\16i\u0530\13i"+ + "\3i\3i\3j\3j\3j\3j\3j\5j\u0539\nj\3k\7k\u053c\nk\fk\16k\u053f\13k\3k\3"+ + "k\3k\3k\3l\3l\3l\3l\5l\u0549\nl\3m\7m\u054c\nm\fm\16m\u054f\13m\3m\3m"+ + "\3m\3n\3n\3n\3n\3n\3n\5n\u055a\nn\3o\7o\u055d\no\fo\16o\u0560\13o\3o\3"+ + "o\3o\3o\3o\3p\3p\7p\u0569\np\fp\16p\u056c\13p\3p\3p\3q\3q\3q\3q\3q\5q"+ + "\u0575\nq\3r\7r\u0578\nr\fr\16r\u057b\13r\3r\3r\3r\3r\3r\5r\u0582\nr\3"+ + "r\5r\u0585\nr\3r\3r\3s\3s\3s\5s\u058c\ns\3t\3t\3t\3u\3u\3u\5u\u0594\n"+ + "u\3v\3v\3v\3v\5v\u059a\nv\3v\3v\3w\3w\3w\7w\u05a1\nw\fw\16w\u05a4\13w"+ + "\3x\3x\3x\3x\3y\3y\3y\5y\u05ad\ny\3z\3z\5z\u05b1\nz\3z\5z\u05b4\nz\3z"+ + "\3z\3{\3{\3{\7{\u05bb\n{\f{\16{\u05be\13{\3|\3|\3|\3}\3}\3}\3}\3}\3}\3"+ + "~\3~\5~\u05cb\n~\3~\5~\u05ce\n~\3~\3~\3\177\3\177\3\177\7\177\u05d5\n"+ + "\177\f\177\16\177\u05d8\13\177\3\u0080\3\u0080\5\u0080\u05dc\n\u0080\3"+ + "\u0080\3\u0080\3\u0081\3\u0081\7\u0081\u05e2\n\u0081\f\u0081\16\u0081"+ + "\u05e5\13\u0081\3\u0082\3\u0082\3\u0082\5\u0082\u05ea\n\u0082\3\u0083"+ + "\3\u0083\3\u0083\3\u0084\7\u0084\u05f0\n\u0084\f\u0084\16\u0084\u05f3"+ "\13\u0084\3\u0084\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085"+ - "\3\u0085\5\u0085\u05fd\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086"+ - "\5\u0086\u0604\n\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+ - "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u0612\n\u0087"+ + "\3\u0085\5\u0085\u05fe\n\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086"+ + "\5\u0086\u0605\n\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+ + "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u0613\n\u0087"+ "\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a"+ "\3\u008a\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c"+ - "\3\u008c\3\u008c\5\u008c\u0628\n\u008c\3\u008d\3\u008d\3\u008d\3\u008d"+ + "\3\u008c\3\u008c\5\u008c\u0629\n\u008c\3\u008d\3\u008d\3\u008d\3\u008d"+ "\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ "\3\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+ "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+ - "\3\u0090\5\u0090\u064a\n\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091"+ - "\3\u0091\3\u0092\3\u0092\7\u0092\u0654\n\u0092\f\u0092\16\u0092\u0657"+ - "\13\u0092\3\u0092\7\u0092\u065a\n\u0092\f\u0092\16\u0092\u065d\13\u0092"+ - "\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\7\u0094\u0666"+ - "\n\u0094\f\u0094\16\u0094\u0669\13\u0094\3\u0095\3\u0095\3\u0095\3\u0095"+ - "\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095\u0675\n\u0095"+ + "\3\u0090\5\u0090\u064b\n\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091"+ + "\3\u0091\3\u0092\3\u0092\7\u0092\u0655\n\u0092\f\u0092\16\u0092\u0658"+ + "\13\u0092\3\u0092\7\u0092\u065b\n\u0092\f\u0092\16\u0092\u065e\13\u0092"+ + "\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\7\u0094\u0667"+ + "\n\u0094\f\u0094\16\u0094\u066a\13\u0094\3\u0095\3\u0095\3\u0095\3\u0095"+ + "\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095\u0676\n\u0095"+ "\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0098"+ "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099"+ - "\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\5\u009a\u068f\n\u009a"+ - "\3\u009b\3\u009b\5\u009b\u0693\n\u009b\3\u009c\3\u009c\3\u009c\5\u009c"+ - "\u0698\n\u009c\3\u009c\3\u009c\5\u009c\u069c\n\u009c\3\u009c\3\u009c\5"+ - "\u009c\u06a0\n\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\5"+ - "\u009d\u06a8\n\u009d\3\u009d\3\u009d\5\u009d\u06ac\n\u009d\3\u009d\3\u009d"+ - "\5\u009d\u06b0\n\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\5\u009e"+ - "\u06b7\n\u009e\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\7\u00a0\u06be\n"+ - "\u00a0\f\u00a0\16\u00a0\u06c1\13\u00a0\3\u00a1\3\u00a1\3\u00a1\7\u00a1"+ - "\u06c6\n\u00a1\f\u00a1\16\u00a1\u06c9\13\u00a1\3\u00a1\3\u00a1\3\u00a1"+ - "\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u06d5"+ - "\n\u00a2\f\u00a2\16\u00a2\u06d8\13\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2"+ - "\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3\5\u00a3\u06e3\n\u00a3\3\u00a3"+ - "\3\u00a3\3\u00a4\3\u00a4\5\u00a4\u06e9\n\u00a4\3\u00a4\3\u00a4\3\u00a5"+ - "\3\u00a5\5\u00a5\u06ef\n\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6"+ + "\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\5\u009a\u0690\n\u009a"+ + "\3\u009b\3\u009b\5\u009b\u0694\n\u009b\3\u009c\3\u009c\3\u009c\5\u009c"+ + "\u0699\n\u009c\3\u009c\3\u009c\5\u009c\u069d\n\u009c\3\u009c\3\u009c\5"+ + "\u009c\u06a1\n\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\5"+ + "\u009d\u06a9\n\u009d\3\u009d\3\u009d\5\u009d\u06ad\n\u009d\3\u009d\3\u009d"+ + "\5\u009d\u06b1\n\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\5\u009e"+ + "\u06b8\n\u009e\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\7\u00a0\u06bf\n"+ + "\u00a0\f\u00a0\16\u00a0\u06c2\13\u00a0\3\u00a1\3\u00a1\3\u00a1\7\u00a1"+ + "\u06c7\n\u00a1\f\u00a1\16\u00a1\u06ca\13\u00a1\3\u00a1\3\u00a1\3\u00a1"+ + "\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u06d6"+ + "\n\u00a2\f\u00a2\16\u00a2\u06d9\13\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2"+ + "\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3\5\u00a3\u06e4\n\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a4\3\u00a4\5\u00a4\u06ea\n\u00a4\3\u00a4\3\u00a4\3\u00a5"+ + "\3\u00a5\5\u00a5\u06f0\n\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6"+ "\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8"+ - "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\5\u00a8\u0704\n\u00a8\3\u00a8"+ - "\3\u00a8\3\u00a8\5\u00a8\u0709\n\u00a8\3\u00a9\3\u00a9\7\u00a9\u070d\n"+ - "\u00a9\f\u00a9\16\u00a9\u0710\13\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa"+ - "\3\u00aa\3\u00aa\3\u00ab\7\u00ab\u0719\n\u00ab\f\u00ab\16\u00ab\u071c"+ - "\13\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\7\u00ac\u0724"+ - "\n\u00ac\f\u00ac\16\u00ac\u0727\13\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ae"+ - "\3\u00ae\3\u00ae\3\u00ae\5\u00ae\u0730\n\u00ae\3\u00ae\5\u00ae\u0733\n"+ - "\u00ae\3\u00af\3\u00af\3\u00af\5\u00af\u0738\n\u00af\3\u00af\3\u00af\3"+ - "\u00b0\3\u00b0\3\u00b0\7\u00b0\u073f\n\u00b0\f\u00b0\16\u00b0\u0742\13"+ - "\u00b0\3\u00b1\7\u00b1\u0745\n\u00b1\f\u00b1\16\u00b1\u0748\13\u00b1\3"+ - "\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\5\u00b2\u0751\n"+ - "\u00b2\3\u00b2\7\u00b2\u0754\n\u00b2\f\u00b2\16\u00b2\u0757\13\u00b2\3"+ - "\u00b3\3\u00b3\3\u00b3\3\u00b3\7\u00b3\u075d\n\u00b3\f\u00b3\16\u00b3"+ - "\u0760\13\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3"+ + "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\5\u00a8\u0705\n\u00a8\3\u00a8"+ + "\3\u00a8\3\u00a8\5\u00a8\u070a\n\u00a8\3\u00a9\3\u00a9\7\u00a9\u070e\n"+ + "\u00a9\f\u00a9\16\u00a9\u0711\13\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa"+ + "\3\u00aa\3\u00aa\3\u00ab\7\u00ab\u071a\n\u00ab\f\u00ab\16\u00ab\u071d"+ + "\13\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\7\u00ac\u0725"+ + "\n\u00ac\f\u00ac\16\u00ac\u0728\13\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ae"+ + "\3\u00ae\3\u00ae\3\u00ae\5\u00ae\u0731\n\u00ae\3\u00ae\5\u00ae\u0734\n"+ + "\u00ae\3\u00af\3\u00af\3\u00af\5\u00af\u0739\n\u00af\3\u00af\3\u00af\3"+ + "\u00b0\3\u00b0\3\u00b0\7\u00b0\u0740\n\u00b0\f\u00b0\16\u00b0\u0743\13"+ + "\u00b0\3\u00b1\7\u00b1\u0746\n\u00b1\f\u00b1\16\u00b1\u0749\13\u00b1\3"+ + "\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\5\u00b2\u0752\n"+ + "\u00b2\3\u00b2\7\u00b2\u0755\n\u00b2\f\u00b2\16\u00b2\u0758\13\u00b2\3"+ + "\u00b3\3\u00b3\3\u00b3\3\u00b3\7\u00b3\u075e\n\u00b3\f\u00b3\16\u00b3"+ + "\u0761\13\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3"+ "\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3"+ - "\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3\u0776\n\u00b3\3\u00b4\3\u00b4"+ - "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\7\u00b5\u077e\n\u00b5\f\u00b5\16\u00b5"+ - "\u0781\13\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3\u0777\n\u00b3\3\u00b4\3\u00b4"+ + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\7\u00b5\u077f\n\u00b5\f\u00b5\16\u00b5"+ + "\u0782\13\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ - "\3\u00b5\3\u00b5\3\u00b5\5\u00b5\u0796\n\u00b5\3\u00b6\3\u00b6\3\u00b6"+ - "\3\u00b6\3\u00b6\5\u00b6\u079d\n\u00b6\3\u00b7\3\u00b7\3\u00b8\3\u00b8"+ - "\3\u00b8\3\u00b8\5\u00b8\u07a5\n\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ - "\7\u00b9\u07ab\n\u00b9\f\u00b9\16\u00b9\u07ae\13\u00b9\3\u00b9\3\u00b9"+ - "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\7\u00b9\u07b6\n\u00b9\f\u00b9\16\u00b9"+ - "\u07b9\13\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b5\3\u00b5\3\u00b5\5\u00b5\u0797\n\u00b5\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\5\u00b6\u079e\n\u00b6\3\u00b7\3\u00b7\3\u00b8\3\u00b8"+ + "\3\u00b8\3\u00b8\5\u00b8\u07a6\n\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ + "\7\u00b9\u07ac\n\u00b9\f\u00b9\16\u00b9\u07af\13\u00b9\3\u00b9\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\7\u00b9\u07b7\n\u00b9\f\u00b9\16\u00b9"+ + "\u07ba\13\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ - "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u07cf\n\u00b9\3\u00ba\3\u00ba"+ - "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\7\u00bb\u07d7\n\u00bb\f\u00bb\16\u00bb"+ - "\u07da\13\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\7\u00bb"+ - "\u07e2\n\u00bb\f\u00bb\16\u00bb\u07e5\13\u00bb\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u07d0\n\u00b9\3\u00ba\3\u00ba"+ + "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\7\u00bb\u07d8\n\u00bb\f\u00bb\16\u00bb"+ + "\u07db\13\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\7\u00bb"+ + "\u07e3\n\u00bb\f\u00bb\16\u00bb\u07e6\13\u00bb\3\u00bb\3\u00bb\3\u00bb"+ "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb"+ - "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\5\u00bb\u07fa"+ - "\n\u00bb\3\u00bc\3\u00bc\5\u00bc\u07fe\n\u00bc\3\u00bc\7\u00bc\u0801\n"+ - "\u00bc\f\u00bc\16\u00bc\u0804\13\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc"+ - "\u0809\n\u00bc\f\u00bc\16\u00bc\u080c\13\u00bc\3\u00bc\7\u00bc\u080f\n"+ - "\u00bc\f\u00bc\16\u00bc\u0812\13\u00bc\3\u00bc\5\u00bc\u0815\n\u00bc\3"+ - "\u00bc\3\u00bc\5\u00bc\u0819\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u081d\n\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u0823\n\u00bc\3\u00bc\7\u00bc"+ - "\u0826\n\u00bc\f\u00bc\16\u00bc\u0829\13\u00bc\3\u00bc\3\u00bc\5\u00bc"+ - "\u082d\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u0831\n\u00bc\3\u00bc\3\u00bc\5"+ - "\u00bc\u0835\n\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u083b\n\u00bc"+ - "\3\u00bc\7\u00bc\u083e\n\u00bc\f\u00bc\16\u00bc\u0841\13\u00bc\3\u00bc"+ - "\3\u00bc\5\u00bc\u0845\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u0849\n\u00bc\3"+ - "\u00bc\3\u00bc\5\u00bc\u084d\n\u00bc\5\u00bc\u084f\n\u00bc\3\u00bd\3\u00bd"+ - "\3\u00bd\5\u00bd\u0854\n\u00bd\3\u00bd\7\u00bd\u0857\n\u00bd\f\u00bd\16"+ - "\u00bd\u085a\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u085e\n\u00bd\3\u00bd\3"+ - "\u00bd\5\u00bd\u0862\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0866\n\u00bd\3\u00be"+ - "\3\u00be\5\u00be\u086a\n\u00be\3\u00be\7\u00be\u086d\n\u00be\f\u00be\16"+ - "\u00be\u0870\13\u00be\3\u00be\3\u00be\3\u00be\7\u00be\u0875\n\u00be\f"+ - "\u00be\16\u00be\u0878\13\u00be\3\u00be\7\u00be\u087b\n\u00be\f\u00be\16"+ - "\u00be\u087e\13\u00be\3\u00be\5\u00be\u0881\n\u00be\3\u00be\3\u00be\5"+ - "\u00be\u0885\n\u00be\3\u00be\3\u00be\5\u00be\u0889\n\u00be\3\u00be\3\u00be"+ - "\3\u00be\3\u00be\5\u00be\u088f\n\u00be\3\u00be\7\u00be\u0892\n\u00be\f"+ - "\u00be\16\u00be\u0895\13\u00be\3\u00be\3\u00be\5\u00be\u0899\n\u00be\3"+ - "\u00be\3\u00be\5\u00be\u089d\n\u00be\3\u00be\3\u00be\5\u00be\u08a1\n\u00be"+ - "\5\u00be\u08a3\n\u00be\3\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a8\n\u00bf\3"+ + "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\5\u00bb\u07fb"+ + "\n\u00bb\3\u00bc\3\u00bc\5\u00bc\u07ff\n\u00bc\3\u00bc\7\u00bc\u0802\n"+ + "\u00bc\f\u00bc\16\u00bc\u0805\13\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc"+ + "\u080a\n\u00bc\f\u00bc\16\u00bc\u080d\13\u00bc\3\u00bc\7\u00bc\u0810\n"+ + "\u00bc\f\u00bc\16\u00bc\u0813\13\u00bc\3\u00bc\5\u00bc\u0816\n\u00bc\3"+ + "\u00bc\3\u00bc\5\u00bc\u081a\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u081e\n\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u0824\n\u00bc\3\u00bc\7\u00bc"+ + "\u0827\n\u00bc\f\u00bc\16\u00bc\u082a\13\u00bc\3\u00bc\3\u00bc\5\u00bc"+ + "\u082e\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u0832\n\u00bc\3\u00bc\3\u00bc\5"+ + "\u00bc\u0836\n\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u083c\n\u00bc"+ + "\3\u00bc\7\u00bc\u083f\n\u00bc\f\u00bc\16\u00bc\u0842\13\u00bc\3\u00bc"+ + "\3\u00bc\5\u00bc\u0846\n\u00bc\3\u00bc\3\u00bc\5\u00bc\u084a\n\u00bc\3"+ + "\u00bc\3\u00bc\5\u00bc\u084e\n\u00bc\5\u00bc\u0850\n\u00bc\3\u00bd\3\u00bd"+ + "\3\u00bd\5\u00bd\u0855\n\u00bd\3\u00bd\7\u00bd\u0858\n\u00bd\f\u00bd\16"+ + "\u00bd\u085b\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u085f\n\u00bd\3\u00bd\3"+ + "\u00bd\5\u00bd\u0863\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0867\n\u00bd\3\u00be"+ + "\3\u00be\5\u00be\u086b\n\u00be\3\u00be\7\u00be\u086e\n\u00be\f\u00be\16"+ + "\u00be\u0871\13\u00be\3\u00be\3\u00be\3\u00be\7\u00be\u0876\n\u00be\f"+ + "\u00be\16\u00be\u0879\13\u00be\3\u00be\7\u00be\u087c\n\u00be\f\u00be\16"+ + "\u00be\u087f\13\u00be\3\u00be\5\u00be\u0882\n\u00be\3\u00be\3\u00be\5"+ + "\u00be\u0886\n\u00be\3\u00be\3\u00be\5\u00be\u088a\n\u00be\3\u00be\3\u00be"+ + "\3\u00be\3\u00be\5\u00be\u0890\n\u00be\3\u00be\7\u00be\u0893\n\u00be\f"+ + "\u00be\16\u00be\u0896\13\u00be\3\u00be\3\u00be\5\u00be\u089a\n\u00be\3"+ + "\u00be\3\u00be\5\u00be\u089e\n\u00be\3\u00be\3\u00be\5\u00be\u08a2\n\u00be"+ + "\5\u00be\u08a4\n\u00be\3\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a9\n\u00bf\3"+ "\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0"+ - "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08b7\n\u00c0\3\u00c1\3\u00c1"+ + "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08b8\n\u00c0\3\u00c1\3\u00c1"+ "\3\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2"+ - "\3\u00c2\5\u00c2\u08c5\n\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ - "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3\u08d1\n\u00c3\3\u00c3"+ - "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\7\u00c3\u08d8\n\u00c3\f\u00c3\16\u00c3"+ - "\u08db\13\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ - "\3\u00c4\3\u00c4\3\u00c4\7\u00c4\u08e7\n\u00c4\f\u00c4\16\u00c4\u08ea"+ + "\3\u00c2\5\u00c2\u08c6\n\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3\u08d2\n\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\7\u00c3\u08d9\n\u00c3\f\u00c3\16\u00c3"+ + "\u08dc\13\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ + "\3\u00c4\3\u00c4\3\u00c4\7\u00c4\u08e8\n\u00c4\f\u00c4\16\u00c4\u08eb"+ "\13\u00c4\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ - "\3\u00c5\3\u00c5\5\u00c5\u08f6\n\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ - "\3\u00c5\7\u00c5\u08fd\n\u00c5\f\u00c5\16\u00c5\u0900\13\u00c5\3\u00c6"+ - "\3\u00c6\3\u00c6\5\u00c6\u0905\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ - "\3\u00c6\5\u00c6\u090c\n\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0911\n"+ - "\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0918\n\u00c6\3"+ - "\u00c6\3\u00c6\3\u00c6\5\u00c6\u091d\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3"+ - "\u00c6\3\u00c6\5\u00c6\u0924\n\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0929"+ - "\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0930\n\u00c6"+ - "\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0935\n\u00c6\3\u00c6\3\u00c6\3\u00c6"+ - "\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u093d\n\u00c6\3\u00c6\3\u00c6\3\u00c6"+ - "\5\u00c6\u0942\n\u00c6\3\u00c6\3\u00c6\5\u00c6\u0946\n\u00c6\3\u00c7\3"+ - "\u00c7\5\u00c7\u094a\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u094f\n\u00c7"+ - "\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0956\n\u00c8\3\u00c8"+ - "\3\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u095d\n\u00c8\3\u00c8\3\u00c8"+ - "\3\u00c8\5\u00c8\u0962\n\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8"+ - "\5\u00c8\u0969\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u096e\n\u00c8\3"+ - "\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0975\n\u00c8\3\u00c8\3"+ - "\u00c8\3\u00c8\5\u00c8\u097a\n\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3"+ - "\u00c8\3\u00c8\5\u00c8\u0982\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0987"+ - "\n\u00c8\3\u00c8\3\u00c8\5\u00c8\u098b\n\u00c8\3\u00c9\3\u00c9\3\u00c9"+ - "\7\u00c9\u0990\n\u00c9\f\u00c9\16\u00c9\u0993\13\u00c9\3\u00ca\3\u00ca"+ - "\3\u00ca\5\u00ca\u0998\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca"+ - "\5\u00ca\u099f\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca"+ - "\u09a6\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09ad\n"+ - "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09b5\n"+ - "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09bc\n\u00ca\3"+ - "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09c4\n\u00ca\3"+ - "\u00cb\3\u00cb\5\u00cb\u09c8\n\u00cb\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3"+ - "\u00cc\5\u00cc\u09cf\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5"+ - "\u00cc\u09d6\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09dd"+ - "\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09e5"+ - "\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09ec\n\u00cc"+ - "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09f4\n\u00cc"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09fa\n\u00cd\3\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\5\u00cd\u0a00\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0a0c\n\u00cd"+ - "\3\u00ce\3\u00ce\7\u00ce\u0a10\n\u00ce\f\u00ce\16\u00ce\u0a13\13\u00ce"+ - "\3\u00cf\7\u00cf\u0a16\n\u00cf\f\u00cf\16\u00cf\u0a19\13\u00cf\3\u00cf"+ - "\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d1\3\u00d1\5\u00d1\u0a23"+ + "\3\u00c5\3\u00c5\5\u00c5\u08f7\n\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\7\u00c5\u08fe\n\u00c5\f\u00c5\16\u00c5\u0901\13\u00c5\3\u00c6"+ + "\3\u00c6\3\u00c6\5\u00c6\u0906\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\5\u00c6\u090d\n\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0912\n"+ + "\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0919\n\u00c6\3"+ + "\u00c6\3\u00c6\3\u00c6\5\u00c6\u091e\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3"+ + "\u00c6\3\u00c6\5\u00c6\u0925\n\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u092a"+ + "\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0931\n\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0936\n\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u093e\n\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\5\u00c6\u0943\n\u00c6\3\u00c6\3\u00c6\5\u00c6\u0947\n\u00c6\3\u00c7\3"+ + "\u00c7\5\u00c7\u094b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0950\n\u00c7"+ + "\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0957\n\u00c8\3\u00c8"+ + "\3\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u095e\n\u00c8\3\u00c8\3\u00c8"+ + "\3\u00c8\5\u00c8\u0963\n\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8"+ + "\5\u00c8\u096a\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u096f\n\u00c8\3"+ + "\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0976\n\u00c8\3\u00c8\3"+ + "\u00c8\3\u00c8\5\u00c8\u097b\n\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3"+ + "\u00c8\3\u00c8\5\u00c8\u0983\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0988"+ + "\n\u00c8\3\u00c8\3\u00c8\5\u00c8\u098c\n\u00c8\3\u00c9\3\u00c9\3\u00c9"+ + "\7\u00c9\u0991\n\u00c9\f\u00c9\16\u00c9\u0994\13\u00c9\3\u00ca\3\u00ca"+ + "\3\u00ca\5\u00ca\u0999\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca"+ + "\5\u00ca\u09a0\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca"+ + "\u09a7\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09ae\n"+ + "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09b6\n"+ + "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09bd\n\u00ca\3"+ + "\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u09c5\n\u00ca\3"+ + "\u00cb\3\u00cb\5\u00cb\u09c9\n\u00cb\3\u00cb\3\u00cb\3\u00cc\3\u00cc\3"+ + "\u00cc\5\u00cc\u09d0\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5"+ + "\u00cc\u09d7\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09de"+ + "\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09e6"+ + "\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09ed\n\u00cc"+ + "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u09f5\n\u00cc"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09fb\n\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\5\u00cd\u0a01\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0a0d\n\u00cd"+ + "\3\u00ce\3\u00ce\7\u00ce\u0a11\n\u00ce\f\u00ce\16\u00ce\u0a14\13\u00ce"+ + "\3\u00cf\7\u00cf\u0a17\n\u00cf\f\u00cf\16\u00cf\u0a1a\13\u00cf\3\u00cf"+ + "\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d1\3\u00d1\5\u00d1\u0a24"+ "\n\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\5\u00d3"+ - "\u0a2c\n\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u0a33\n"+ - "\u00d3\3\u00d4\3\u00d4\3\u00d4\7\u00d4\u0a38\n\u00d4\f\u00d4\16\u00d4"+ - "\u0a3b\13\u00d4\3\u00d5\3\u00d5\5\u00d5\u0a3f\n\u00d5\3\u00d6\3\u00d6"+ - "\5\u00d6\u0a43\n\u00d6\3\u00d7\3\u00d7\3\u00d7\3\u00d7\3\u00d8\3\u00d8"+ - "\3\u00d8\5\u00d8\u0a4c\n\u00d8\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00da"+ - "\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da\u0a57\n\u00da\3\u00db\3\u00db"+ - "\3\u00db\3\u00db\3\u00db\3\u00db\7\u00db\u0a5f\n\u00db\f\u00db\16\u00db"+ - "\u0a62\13\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\7\u00dc"+ - "\u0a6a\n\u00dc\f\u00dc\16\u00dc\u0a6d\13\u00dc\3\u00dd\3\u00dd\3\u00dd"+ - "\3\u00dd\3\u00dd\3\u00dd\7\u00dd\u0a75\n\u00dd\f\u00dd\16\u00dd\u0a78"+ - "\13\u00dd\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\7\u00de\u0a80"+ - "\n\u00de\f\u00de\16\u00de\u0a83\13\u00de\3\u00df\3\u00df\3\u00df\3\u00df"+ - "\3\u00df\3\u00df\7\u00df\u0a8b\n\u00df\f\u00df\16\u00df\u0a8e\13\u00df"+ - "\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0"+ - "\7\u00e0\u0a99\n\u00e0\f\u00e0\16\u00e0\u0a9c\13\u00e0\3\u00e1\3\u00e1"+ + "\u0a2d\n\u00d3\3\u00d3\5\u00d3\u0a30\n\u00d3\3\u00d4\3\u00d4\3\u00d4\7"+ + "\u00d4\u0a35\n\u00d4\f\u00d4\16\u00d4\u0a38\13\u00d4\3\u00d5\3\u00d5\5"+ + "\u00d5\u0a3c\n\u00d5\3\u00d6\3\u00d6\5\u00d6\u0a40\n\u00d6\3\u00d7\3\u00d7"+ + "\3\u00d7\3\u00d7\3\u00d8\3\u00d8\3\u00d8\5\u00d8\u0a49\n\u00d8\3\u00d9"+ + "\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\3\u00da\5\u00da"+ + "\u0a54\n\u00da\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\7\u00db"+ + "\u0a5c\n\u00db\f\u00db\16\u00db\u0a5f\13\u00db\3\u00dc\3\u00dc\3\u00dc"+ + "\3\u00dc\3\u00dc\3\u00dc\7\u00dc\u0a67\n\u00dc\f\u00dc\16\u00dc\u0a6a"+ + "\13\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\7\u00dd\u0a72"+ + "\n\u00dd\f\u00dd\16\u00dd\u0a75\13\u00dd\3\u00de\3\u00de\3\u00de\3\u00de"+ + "\3\u00de\3\u00de\7\u00de\u0a7d\n\u00de\f\u00de\16\u00de\u0a80\13\u00de"+ + "\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df\7\u00df\u0a88\n\u00df"+ + "\f\u00df\16\u00df\u0a8b\13\u00df\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0"+ + "\3\u00e0\3\u00e0\3\u00e0\3\u00e0\7\u00e0\u0a96\n\u00e0\f\u00e0\16\u00e0"+ + "\u0a99\13\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ "\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ - "\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\7\u00e1\u0ab0"+ - "\n\u00e1\f\u00e1\16\u00e1\u0ab3\13\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e1\3\u00e1\7\u00e1\u0aad\n\u00e1\f\u00e1\16\u00e1\u0ab0\13\u00e1"+ "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ - "\3\u00e2\3\u00e2\3\u00e2\7\u00e2\u0ac5\n\u00e2\f\u00e2\16\u00e2\u0ac8"+ - "\13\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ - "\3\u00e3\7\u00e3\u0ad3\n\u00e3\f\u00e3\16\u00e3\u0ad6\13\u00e3\3\u00e4"+ - "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ - "\3\u00e4\3\u00e4\7\u00e4\u0ae4\n\u00e4\f\u00e4\16\u00e4\u0ae7\13\u00e4"+ - "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\5\u00e5\u0af0"+ - "\n\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8"+ - "\3\u00e8\3\u00e8\3\u00e8\3\u00e8\5\u00e8\u0afe\n\u00e8\3\u00e9\3\u00e9"+ - "\5\u00e9\u0b02\n\u00e9\3\u00e9\3\u00e9\7\u00e9\u0b06\n\u00e9\f\u00e9\16"+ - "\u00e9\u0b09\13\u00e9\3\u00ea\3\u00ea\3\u00ea\3\u00eb\3\u00eb\3\u00ec"+ - "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ - "\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u0b1d\n\u00ee\f\u00ee\16\u00ee\u0b20"+ - "\13\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u0b28"+ - "\n\u00ee\f\u00ee\16\u00ee\u0b2b\13\u00ee\3\u00ee\3\u00ee\3\u00ee\5\u00ee"+ - "\u0b30\n\u00ee\3\u00ee\2\17\66:@\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0"+ - "\u01c2\u01c4\u01c6\u00ef\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&("+ - "*,.\60\62\64\668:<>@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\u0126\u0128\u012a\u012c"+ - "\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144"+ - "\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c"+ - "\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174"+ - "\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c"+ - "\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4"+ - "\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc"+ - "\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4"+ - "\u01d6\u01d8\u01da\2\6\3\2\65:\7\2\7\7\n\n\35\35\37\37\'\'\4\2\20\20\26"+ - "\26\4\2DD]g\u0c26\2\u01dc\3\2\2\2\4\u01e0\3\2\2\2\6\u01f0\3\2\2\2\b\u01f4"+ - "\3\2\2\2\n\u01f6\3\2\2\2\f\u01f8\3\2\2\2\16\u01fd\3\2\2\2\20\u0201\3\2"+ - "\2\2\22\u0220\3\2\2\2\24\u0222\3\2\2\2\26\u0230\3\2\2\2\30\u0237\3\2\2"+ - "\2\32\u0239\3\2\2\2\34\u023b\3\2\2\2\36\u0240\3\2\2\2 \u024e\3\2\2\2\""+ - "\u0253\3\2\2\2$\u0268\3\2\2\2&\u026f\3\2\2\2(\u027b\3\2\2\2*\u027d\3\2"+ - "\2\2,\u0280\3\2\2\2.\u0284\3\2\2\2\60\u028e\3\2\2\2\62\u0293\3\2\2\2\64"+ - "\u029e\3\2\2\2\66\u02a0\3\2\2\28\u02b0\3\2\2\2:\u02b2\3\2\2\2<\u02c2\3"+ - "\2\2\2>\u02c4\3\2\2\2@\u02c6\3\2\2\2B\u02d2\3\2\2\2D\u02e5\3\2\2\2F\u02f3"+ - "\3\2\2\2H\u02f9\3\2\2\2J\u02fb\3\2\2\2L\u02ff\3\2\2\2N\u0305\3\2\2\2P"+ - "\u030c\3\2\2\2R\u0316\3\2\2\2T\u031a\3\2\2\2V\u031f\3\2\2\2X\u0337\3\2"+ - "\2\2Z\u0339\3\2\2\2\\\u033d\3\2\2\2^\u0345\3\2\2\2`\u0348\3\2\2\2b\u034b"+ - "\3\2\2\2d\u0353\3\2\2\2f\u0360\3\2\2\2h\u0367\3\2\2\2j\u036c\3\2\2\2l"+ - "\u037d\3\2\2\2n\u037f\3\2\2\2p\u0387\3\2\2\2r\u038c\3\2\2\2t\u0392\3\2"+ - "\2\2v\u0396\3\2\2\2x\u039a\3\2\2\2z\u039f\3\2\2\2|\u03a3\3\2\2\2~\u03bc"+ - "\3\2\2\2\u0080\u03be\3\2\2\2\u0082\u03c9\3\2\2\2\u0084\u03cd\3\2\2\2\u0086"+ - "\u03cf\3\2\2\2\u0088\u03d1\3\2\2\2\u008a\u03d3\3\2\2\2\u008c\u03de\3\2"+ - "\2\2\u008e\u03e3\3\2\2\2\u0090\u03f3\3\2\2\2\u0092\u0408\3\2\2\2\u0094"+ - "\u040c\3\2\2\2\u0096\u040e\3\2\2\2\u0098\u041c\3\2\2\2\u009a\u042e\3\2"+ - "\2\2\u009c\u0433\3\2\2\2\u009e\u043d\3\2\2\2\u00a0\u0450\3\2\2\2\u00a2"+ - "\u0455\3\2\2\2\u00a4\u045f\3\2\2\2\u00a6\u0462\3\2\2\2\u00a8\u046c\3\2"+ - "\2\2\u00aa\u0470\3\2\2\2\u00ac\u0472\3\2\2\2\u00ae\u0474\3\2\2\2\u00b0"+ - "\u047a\3\2\2\2\u00b2\u0487\3\2\2\2\u00b4\u048a\3\2\2\2\u00b6\u0493\3\2"+ - "\2\2\u00b8\u0495\3\2\2\2\u00ba\u04cc\3\2\2\2\u00bc\u04d1\3\2\2\2\u00be"+ - "\u04db\3\2\2\2\u00c0\u04e7\3\2\2\2\u00c2\u04f2\3\2\2\2\u00c4\u0500\3\2"+ - "\2\2\u00c6\u0502\3\2\2\2\u00c8\u050b\3\2\2\2\u00ca\u0510\3\2\2\2\u00cc"+ - "\u0524\3\2\2\2\u00ce\u0526\3\2\2\2\u00d0\u0529\3\2\2\2\u00d2\u0537\3\2"+ - "\2\2\u00d4\u053c\3\2\2\2\u00d6\u0547\3\2\2\2\u00d8\u054c\3\2\2\2\u00da"+ - "\u0558\3\2\2\2\u00dc\u055d\3\2\2\2\u00de\u0565\3\2\2\2\u00e0\u0573\3\2"+ - "\2\2\u00e2\u0578\3\2\2\2\u00e4\u058a\3\2\2\2\u00e6\u058c\3\2\2\2\u00e8"+ - "\u0592\3\2\2\2\u00ea\u0594\3\2\2\2\u00ec\u059c\3\2\2\2\u00ee\u05a4\3\2"+ - "\2\2\u00f0\u05ab\3\2\2\2\u00f2\u05ad\3\2\2\2\u00f4\u05b6\3\2\2\2\u00f6"+ - "\u05be\3\2\2\2\u00f8\u05c1\3\2\2\2\u00fa\u05c7\3\2\2\2\u00fc\u05d0\3\2"+ - "\2\2\u00fe\u05d8\3\2\2\2\u0100\u05de\3\2\2\2\u0102\u05e8\3\2\2\2\u0104"+ - "\u05ea\3\2\2\2\u0106\u05f0\3\2\2\2\u0108\u05fc\3\2\2\2\u010a\u0603\3\2"+ - "\2\2\u010c\u0611\3\2\2\2\u010e\u0613\3\2\2\2\u0110\u0615\3\2\2\2\u0112"+ - "\u0619\3\2\2\2\u0114\u061d\3\2\2\2\u0116\u0627\3\2\2\2\u0118\u0629\3\2"+ - "\2\2\u011a\u062f\3\2\2\2\u011c\u0637\3\2\2\2\u011e\u0649\3\2\2\2\u0120"+ - "\u064b\3\2\2\2\u0122\u0651\3\2\2\2\u0124\u0660\3\2\2\2\u0126\u0663\3\2"+ - "\2\2\u0128\u0674\3\2\2\2\u012a\u0676\3\2\2\2\u012c\u0678\3\2\2\2\u012e"+ - "\u067e\3\2\2\2\u0130\u0684\3\2\2\2\u0132\u068e\3\2\2\2\u0134\u0692\3\2"+ - "\2\2\u0136\u0694\3\2\2\2\u0138\u06a4\3\2\2\2\u013a\u06b6\3\2\2\2\u013c"+ - "\u06b8\3\2\2\2\u013e\u06ba\3\2\2\2\u0140\u06c2\3\2\2\2\u0142\u06d1\3\2"+ - "\2\2\u0144\u06e0\3\2\2\2\u0146\u06e6\3\2\2\2\u0148\u06ec\3\2\2\2\u014a"+ - "\u06f2\3\2\2\2\u014c\u06f6\3\2\2\2\u014e\u0708\3\2\2\2\u0150\u070a\3\2"+ - "\2\2\u0152\u0711\3\2\2\2\u0154\u071a\3\2\2\2\u0156\u0720\3\2\2\2\u0158"+ - "\u0728\3\2\2\2\u015a\u072b\3\2\2\2\u015c\u0734\3\2\2\2\u015e\u073b\3\2"+ - "\2\2\u0160\u0746\3\2\2\2\u0162\u0750\3\2\2\2\u0164\u0775\3\2\2\2\u0166"+ - "\u0777\3\2\2\2\u0168\u0795\3\2\2\2\u016a\u079c\3\2\2\2\u016c\u079e\3\2"+ - "\2\2\u016e\u07a4\3\2\2\2\u0170\u07ce\3\2\2\2\u0172\u07d0\3\2\2\2\u0174"+ - "\u07f9\3\2\2\2\u0176\u084e\3\2\2\2\u0178\u0850\3\2\2\2\u017a\u08a2\3\2"+ - "\2\2\u017c\u08a7\3\2\2\2\u017e\u08b6\3\2\2\2\u0180\u08b8\3\2\2\2\u0182"+ - "\u08c4\3\2\2\2\u0184\u08d0\3\2\2\2\u0186\u08dc\3\2\2\2\u0188\u08f5\3\2"+ - "\2\2\u018a\u0945\3\2\2\2\u018c\u0947\3\2\2\2\u018e\u098a\3\2\2\2\u0190"+ - "\u098c\3\2\2\2\u0192\u09c3\3\2\2\2\u0194\u09c5\3\2\2\2\u0196\u09f3\3\2"+ - "\2\2\u0198\u0a0b\3\2\2\2\u019a\u0a0d\3\2\2\2\u019c\u0a17\3\2\2\2\u019e"+ - "\u0a1e\3\2\2\2\u01a0\u0a22\3\2\2\2\u01a2\u0a24\3\2\2\2\u01a4\u0a32\3\2"+ - "\2\2\u01a6\u0a34\3\2\2\2\u01a8\u0a3e\3\2\2\2\u01aa\u0a42\3\2\2\2\u01ac"+ - "\u0a44\3\2\2\2\u01ae\u0a4b\3\2\2\2\u01b0\u0a4d\3\2\2\2\u01b2\u0a56\3\2"+ - "\2\2\u01b4\u0a58\3\2\2\2\u01b6\u0a63\3\2\2\2\u01b8\u0a6e\3\2\2\2\u01ba"+ - "\u0a79\3\2\2\2\u01bc\u0a84\3\2\2\2\u01be\u0a8f\3\2\2\2\u01c0\u0a9d\3\2"+ - "\2\2\u01c2\u0ab4\3\2\2\2\u01c4\u0ac9\3\2\2\2\u01c6\u0ad7\3\2\2\2\u01c8"+ - "\u0aef\3\2\2\2\u01ca\u0af1\3\2\2\2\u01cc\u0af4\3\2\2\2\u01ce\u0afd\3\2"+ - "\2\2\u01d0\u0b01\3\2\2\2\u01d2\u0b0a\3\2\2\2\u01d4\u0b0d\3\2\2\2\u01d6"+ - "\u0b0f\3\2\2\2\u01d8\u0b12\3\2\2\2\u01da\u0b2f\3\2\2\2\u01dc\u01dd\t\2"+ - "\2\2\u01dd\3\3\2\2\2\u01de\u01e1\5\6\4\2\u01df\u01e1\5\16\b\2\u01e0\u01de"+ - "\3\2\2\2\u01e0\u01df\3\2\2\2\u01e1\5\3\2\2\2\u01e2\u01e4\5\u00e8u\2\u01e3"+ - "\u01e2\3\2\2\2\u01e4\u01e7\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e5\u01e6\3\2"+ - "\2\2\u01e6\u01e8\3\2\2\2\u01e7\u01e5\3\2\2\2\u01e8\u01f1\5\b\5\2\u01e9"+ - "\u01eb\5\u00e8u\2\u01ea\u01e9\3\2\2\2\u01eb\u01ee\3\2\2\2\u01ec\u01ea"+ - "\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed\u01ef\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ef"+ - "\u01f1\7\5\2\2\u01f0\u01e5\3\2\2\2\u01f0\u01ec\3\2\2\2\u01f1\7\3\2\2\2"+ - "\u01f2\u01f5\5\n\6\2\u01f3\u01f5\5\f\7\2\u01f4\u01f2\3\2\2\2\u01f4\u01f3"+ - "\3\2\2\2\u01f5\t\3\2\2\2\u01f6\u01f7\t\3\2\2\u01f7\13\3\2\2\2\u01f8\u01f9"+ - "\t\4\2\2\u01f9\r\3\2\2\2\u01fa\u01fe\5\20\t\2\u01fb\u01fe\5\36\20\2\u01fc"+ - "\u01fe\5 \21\2\u01fd\u01fa\3\2\2\2\u01fd\u01fb\3\2\2\2\u01fd\u01fc\3\2"+ - "\2\2\u01fe\17\3\2\2\2\u01ff\u0202\5\26\f\2\u0200\u0202\5\34\17\2\u0201"+ - "\u01ff\3\2\2\2\u0201\u0200\3\2\2\2\u0202\u0207\3\2\2\2\u0203\u0206\5\24"+ - "\13\2\u0204\u0206\5\32\16\2\u0205\u0203\3\2\2\2\u0205\u0204\3\2\2\2\u0206"+ - "\u0209\3\2\2\2\u0207\u0205\3\2\2\2\u0207\u0208\3\2\2\2\u0208\21\3\2\2"+ - "\2\u0209\u0207\3\2\2\2\u020a\u020c\5\u00e8u\2\u020b\u020a\3\2\2\2\u020c"+ - "\u020f\3\2\2\2\u020d\u020b\3\2\2\2\u020d\u020e\3\2\2\2\u020e\u0210\3\2"+ - "\2\2\u020f\u020d\3\2\2\2\u0210\u0212\7h\2\2\u0211\u0213\5,\27\2\u0212"+ - "\u0211\3\2\2\2\u0212\u0213\3\2\2\2\u0213\u0221\3\2\2\2\u0214\u0215\5\20"+ - "\t\2\u0215\u0219\7C\2\2\u0216\u0218\5\u00e8u\2\u0217\u0216\3\2\2\2\u0218"+ - "\u021b\3\2\2\2\u0219\u0217\3\2\2\2\u0219\u021a\3\2\2\2\u021a\u021c\3\2"+ - "\2\2\u021b\u0219\3\2\2\2\u021c\u021e\7h\2\2\u021d\u021f\5,\27\2\u021e"+ - "\u021d\3\2\2\2\u021e\u021f\3\2\2\2\u021f\u0221\3\2\2\2\u0220\u020d\3\2"+ - "\2\2\u0220\u0214\3\2\2\2\u0221\23\3\2\2\2\u0222\u0226\7C\2\2\u0223\u0225"+ - "\5\u00e8u\2\u0224\u0223\3\2\2\2\u0225\u0228\3\2\2\2\u0226\u0224\3\2\2"+ - "\2\u0226\u0227\3\2\2\2\u0227\u0229\3\2\2\2\u0228\u0226\3\2\2\2\u0229\u022b"+ - "\7h\2\2\u022a\u022c\5,\27\2\u022b\u022a\3\2\2\2\u022b\u022c\3\2\2\2\u022c"+ - "\25\3\2\2\2\u022d\u022f\5\u00e8u\2\u022e\u022d\3\2\2\2\u022f\u0232\3\2"+ - "\2\2\u0230\u022e\3\2\2\2\u0230\u0231\3\2\2\2\u0231\u0233\3\2\2\2\u0232"+ - "\u0230\3\2\2\2\u0233\u0235\7h\2\2\u0234\u0236\5,\27\2\u0235\u0234\3\2"+ - "\2\2\u0235\u0236\3\2\2\2\u0236\27\3\2\2\2\u0237\u0238\5\22\n\2\u0238\31"+ - "\3\2\2\2\u0239\u023a\5\24\13\2\u023a\33\3\2\2\2\u023b\u023c\5\26\f\2\u023c"+ - "\35\3\2\2\2\u023d\u023f\5\u00e8u\2\u023e\u023d\3\2\2\2\u023f\u0242\3\2"+ - "\2\2\u0240\u023e\3\2\2\2\u0240\u0241\3\2\2\2\u0241\u0243\3\2\2\2\u0242"+ - "\u0240\3\2\2\2\u0243\u0244\7h\2\2\u0244\37\3\2\2\2\u0245\u0246\5\6\4\2"+ - "\u0246\u0247\5\"\22\2\u0247\u024f\3\2\2\2\u0248\u0249\5\20\t\2\u0249\u024a"+ - "\5\"\22\2\u024a\u024f\3\2\2\2\u024b\u024c\5\36\20\2\u024c\u024d\5\"\22"+ - "\2\u024d\u024f\3\2\2\2\u024e\u0245\3\2\2\2\u024e\u0248\3\2\2\2\u024e\u024b"+ - "\3\2\2\2\u024f!\3\2\2\2\u0250\u0252\5\u00e8u\2\u0251\u0250\3\2\2\2\u0252"+ - "\u0255\3\2\2\2\u0253\u0251\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u0256\3\2"+ - "\2\2\u0255\u0253\3\2\2\2\u0256\u0257\7?\2\2\u0257\u0262\7@\2\2\u0258\u025a"+ - "\5\u00e8u\2\u0259\u0258\3\2\2\2\u025a\u025d\3\2\2\2\u025b\u0259\3\2\2"+ - "\2\u025b\u025c\3\2\2\2\u025c\u025e\3\2\2\2\u025d\u025b\3\2\2\2\u025e\u025f"+ - "\7?\2\2\u025f\u0261\7@\2\2\u0260\u025b\3\2\2\2\u0261\u0264\3\2\2\2\u0262"+ - "\u0260\3\2\2\2\u0262\u0263\3\2\2\2\u0263#\3\2\2\2\u0264\u0262\3\2\2\2"+ - "\u0265\u0267\5&\24\2\u0266\u0265\3\2\2\2\u0267\u026a\3\2\2\2\u0268\u0266"+ - "\3\2\2\2\u0268\u0269\3\2\2\2\u0269\u026b\3\2\2\2\u026a\u0268\3\2\2\2\u026b"+ - "\u026d\7h\2\2\u026c\u026e\5(\25\2\u026d\u026c\3\2\2\2\u026d\u026e\3\2"+ - "\2\2\u026e%\3\2\2\2\u026f\u0270\5\u00e8u\2\u0270\'\3\2\2\2\u0271\u0272"+ - "\7\23\2\2\u0272\u027c\5\36\20\2\u0273\u0274\7\23\2\2\u0274\u0278\5\20"+ - "\t\2\u0275\u0277\5*\26\2\u0276\u0275\3\2\2\2\u0277\u027a\3\2\2\2\u0278"+ - "\u0276\3\2\2\2\u0278\u0279\3\2\2\2\u0279\u027c\3\2\2\2\u027a\u0278\3\2"+ - "\2\2\u027b\u0271\3\2\2\2\u027b\u0273\3\2\2\2\u027c)\3\2\2\2\u027d\u027e"+ - "\7W\2\2\u027e\u027f\5\30\r\2\u027f+\3\2\2\2\u0280\u0281\7F\2\2\u0281\u0282"+ - "\5.\30\2\u0282\u0283\7E\2\2\u0283-\3\2\2\2\u0284\u0289\5\60\31\2\u0285"+ - "\u0286\7B\2\2\u0286\u0288\5\60\31\2\u0287\u0285\3\2\2\2\u0288\u028b\3"+ - "\2\2\2\u0289\u0287\3\2\2\2\u0289\u028a\3\2\2\2\u028a/\3\2\2\2\u028b\u0289"+ - "\3\2\2\2\u028c\u028f\5\16\b\2\u028d\u028f\5\62\32\2\u028e\u028c\3\2\2"+ - "\2\u028e\u028d\3\2\2\2\u028f\61\3\2\2\2\u0290\u0292\5\u00e8u\2\u0291\u0290"+ - "\3\2\2\2\u0292\u0295\3\2\2\2\u0293\u0291\3\2\2\2\u0293\u0294\3\2\2\2\u0294"+ + "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\7\u00e2\u0ac2"+ + "\n\u00e2\f\u00e2\16\u00e2\u0ac5\13\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ + "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3\u0ad0\n\u00e3\f\u00e3"+ + "\16\u00e3\u0ad3\13\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ + "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u0ae1\n\u00e4"+ + "\f\u00e4\16\u00e4\u0ae4\13\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ + "\3\u00e5\3\u00e5\5\u00e5\u0aed\n\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e7"+ + "\3\u00e7\3\u00e7\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\5\u00e8"+ + "\u0afb\n\u00e8\3\u00e9\3\u00e9\5\u00e9\u0aff\n\u00e9\3\u00e9\3\u00e9\7"+ + "\u00e9\u0b03\n\u00e9\f\u00e9\16\u00e9\u0b06\13\u00e9\3\u00ea\3\u00ea\3"+ + "\u00ea\3\u00eb\3\u00eb\3\u00ec\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ee"+ + "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\7\u00ee\u0b1a"+ + "\n\u00ee\f\u00ee\16\u00ee\u0b1d\13\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+ + "\3\u00ee\3\u00ee\7\u00ee\u0b25\n\u00ee\f\u00ee\16\u00ee\u0b28\13\u00ee"+ + "\3\u00ee\3\u00ee\3\u00ee\5\u00ee\u0b2d\n\u00ee\3\u00ee\2\17\66:@\u01b4"+ + "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u00ef\2\4\6\b\n"+ + "\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@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\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138"+ + "\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150"+ + "\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168"+ + "\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180"+ + "\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198"+ + "\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0"+ + "\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8"+ + "\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\2\6\3\2\65:\7\2"+ + "\7\7\n\n\35\35\37\37\'\'\4\2\20\20\26\26\4\2DD]g\u0c22\2\u01dc\3\2\2\2"+ + "\4\u01e0\3\2\2\2\6\u01f0\3\2\2\2\b\u01f4\3\2\2\2\n\u01f6\3\2\2\2\f\u01f8"+ + "\3\2\2\2\16\u01fd\3\2\2\2\20\u0201\3\2\2\2\22\u0220\3\2\2\2\24\u0222\3"+ + "\2\2\2\26\u0230\3\2\2\2\30\u0237\3\2\2\2\32\u0239\3\2\2\2\34\u023b\3\2"+ + "\2\2\36\u0240\3\2\2\2 \u024e\3\2\2\2\"\u0253\3\2\2\2$\u0268\3\2\2\2&\u026f"+ + "\3\2\2\2(\u027b\3\2\2\2*\u027d\3\2\2\2,\u0280\3\2\2\2.\u0284\3\2\2\2\60"+ + "\u028e\3\2\2\2\62\u0293\3\2\2\2\64\u029e\3\2\2\2\66\u02a0\3\2\2\28\u02b0"+ + "\3\2\2\2:\u02b2\3\2\2\2<\u02c2\3\2\2\2>\u02c4\3\2\2\2@\u02c6\3\2\2\2B"+ + "\u02d2\3\2\2\2D\u02e5\3\2\2\2F\u02f3\3\2\2\2H\u02f9\3\2\2\2J\u02fb\3\2"+ + "\2\2L\u02ff\3\2\2\2N\u0305\3\2\2\2P\u030c\3\2\2\2R\u0316\3\2\2\2T\u031a"+ + "\3\2\2\2V\u031f\3\2\2\2X\u0337\3\2\2\2Z\u0339\3\2\2\2\\\u033d\3\2\2\2"+ + "^\u0345\3\2\2\2`\u0348\3\2\2\2b\u034b\3\2\2\2d\u0353\3\2\2\2f\u035f\3"+ + "\2\2\2h\u0366\3\2\2\2j\u036b\3\2\2\2l\u037c\3\2\2\2n\u037e\3\2\2\2p\u0386"+ + "\3\2\2\2r\u038b\3\2\2\2t\u0391\3\2\2\2v\u0395\3\2\2\2x\u0399\3\2\2\2z"+ + "\u039e\3\2\2\2|\u03a2\3\2\2\2~\u03bb\3\2\2\2\u0080\u03bd\3\2\2\2\u0082"+ + "\u03c8\3\2\2\2\u0084\u03cc\3\2\2\2\u0086\u03ce\3\2\2\2\u0088\u03d0\3\2"+ + "\2\2\u008a\u03d2\3\2\2\2\u008c\u03dd\3\2\2\2\u008e\u03e2\3\2\2\2\u0090"+ + "\u03f2\3\2\2\2\u0092\u0409\3\2\2\2\u0094\u040d\3\2\2\2\u0096\u040f\3\2"+ + "\2\2\u0098\u041d\3\2\2\2\u009a\u042f\3\2\2\2\u009c\u0434\3\2\2\2\u009e"+ + "\u043e\3\2\2\2\u00a0\u0451\3\2\2\2\u00a2\u0456\3\2\2\2\u00a4\u0460\3\2"+ + "\2\2\u00a6\u0463\3\2\2\2\u00a8\u046d\3\2\2\2\u00aa\u0471\3\2\2\2\u00ac"+ + "\u0473\3\2\2\2\u00ae\u0475\3\2\2\2\u00b0\u047b\3\2\2\2\u00b2\u0488\3\2"+ + "\2\2\u00b4\u048b\3\2\2\2\u00b6\u0494\3\2\2\2\u00b8\u0496\3\2\2\2\u00ba"+ + "\u04cd\3\2\2\2\u00bc\u04d2\3\2\2\2\u00be\u04dc\3\2\2\2\u00c0\u04e8\3\2"+ + "\2\2\u00c2\u04f3\3\2\2\2\u00c4\u0501\3\2\2\2\u00c6\u0503\3\2\2\2\u00c8"+ + "\u050c\3\2\2\2\u00ca\u0511\3\2\2\2\u00cc\u0525\3\2\2\2\u00ce\u0527\3\2"+ + "\2\2\u00d0\u052a\3\2\2\2\u00d2\u0538\3\2\2\2\u00d4\u053d\3\2\2\2\u00d6"+ + "\u0548\3\2\2\2\u00d8\u054d\3\2\2\2\u00da\u0559\3\2\2\2\u00dc\u055e\3\2"+ + "\2\2\u00de\u0566\3\2\2\2\u00e0\u0574\3\2\2\2\u00e2\u0579\3\2\2\2\u00e4"+ + "\u058b\3\2\2\2\u00e6\u058d\3\2\2\2\u00e8\u0593\3\2\2\2\u00ea\u0595\3\2"+ + "\2\2\u00ec\u059d\3\2\2\2\u00ee\u05a5\3\2\2\2\u00f0\u05ac\3\2\2\2\u00f2"+ + "\u05ae\3\2\2\2\u00f4\u05b7\3\2\2\2\u00f6\u05bf\3\2\2\2\u00f8\u05c2\3\2"+ + "\2\2\u00fa\u05c8\3\2\2\2\u00fc\u05d1\3\2\2\2\u00fe\u05d9\3\2\2\2\u0100"+ + "\u05df\3\2\2\2\u0102\u05e9\3\2\2\2\u0104\u05eb\3\2\2\2\u0106\u05f1\3\2"+ + "\2\2\u0108\u05fd\3\2\2\2\u010a\u0604\3\2\2\2\u010c\u0612\3\2\2\2\u010e"+ + "\u0614\3\2\2\2\u0110\u0616\3\2\2\2\u0112\u061a\3\2\2\2\u0114\u061e\3\2"+ + "\2\2\u0116\u0628\3\2\2\2\u0118\u062a\3\2\2\2\u011a\u0630\3\2\2\2\u011c"+ + "\u0638\3\2\2\2\u011e\u064a\3\2\2\2\u0120\u064c\3\2\2\2\u0122\u0652\3\2"+ + "\2\2\u0124\u0661\3\2\2\2\u0126\u0664\3\2\2\2\u0128\u0675\3\2\2\2\u012a"+ + "\u0677\3\2\2\2\u012c\u0679\3\2\2\2\u012e\u067f\3\2\2\2\u0130\u0685\3\2"+ + "\2\2\u0132\u068f\3\2\2\2\u0134\u0693\3\2\2\2\u0136\u0695\3\2\2\2\u0138"+ + "\u06a5\3\2\2\2\u013a\u06b7\3\2\2\2\u013c\u06b9\3\2\2\2\u013e\u06bb\3\2"+ + "\2\2\u0140\u06c3\3\2\2\2\u0142\u06d2\3\2\2\2\u0144\u06e1\3\2\2\2\u0146"+ + "\u06e7\3\2\2\2\u0148\u06ed\3\2\2\2\u014a\u06f3\3\2\2\2\u014c\u06f7\3\2"+ + "\2\2\u014e\u0709\3\2\2\2\u0150\u070b\3\2\2\2\u0152\u0712\3\2\2\2\u0154"+ + "\u071b\3\2\2\2\u0156\u0721\3\2\2\2\u0158\u0729\3\2\2\2\u015a\u072c\3\2"+ + "\2\2\u015c\u0735\3\2\2\2\u015e\u073c\3\2\2\2\u0160\u0747\3\2\2\2\u0162"+ + "\u0751\3\2\2\2\u0164\u0776\3\2\2\2\u0166\u0778\3\2\2\2\u0168\u0796\3\2"+ + "\2\2\u016a\u079d\3\2\2\2\u016c\u079f\3\2\2\2\u016e\u07a5\3\2\2\2\u0170"+ + "\u07cf\3\2\2\2\u0172\u07d1\3\2\2\2\u0174\u07fa\3\2\2\2\u0176\u084f\3\2"+ + "\2\2\u0178\u0851\3\2\2\2\u017a\u08a3\3\2\2\2\u017c\u08a8\3\2\2\2\u017e"+ + "\u08b7\3\2\2\2\u0180\u08b9\3\2\2\2\u0182\u08c5\3\2\2\2\u0184\u08d1\3\2"+ + "\2\2\u0186\u08dd\3\2\2\2\u0188\u08f6\3\2\2\2\u018a\u0946\3\2\2\2\u018c"+ + "\u0948\3\2\2\2\u018e\u098b\3\2\2\2\u0190\u098d\3\2\2\2\u0192\u09c4\3\2"+ + "\2\2\u0194\u09c6\3\2\2\2\u0196\u09f4\3\2\2\2\u0198\u0a0c\3\2\2\2\u019a"+ + "\u0a0e\3\2\2\2\u019c\u0a18\3\2\2\2\u019e\u0a1f\3\2\2\2\u01a0\u0a23\3\2"+ + "\2\2\u01a2\u0a25\3\2\2\2\u01a4\u0a2f\3\2\2\2\u01a6\u0a31\3\2\2\2\u01a8"+ + "\u0a3b\3\2\2\2\u01aa\u0a3f\3\2\2\2\u01ac\u0a41\3\2\2\2\u01ae\u0a48\3\2"+ + "\2\2\u01b0\u0a4a\3\2\2\2\u01b2\u0a53\3\2\2\2\u01b4\u0a55\3\2\2\2\u01b6"+ + "\u0a60\3\2\2\2\u01b8\u0a6b\3\2\2\2\u01ba\u0a76\3\2\2\2\u01bc\u0a81\3\2"+ + "\2\2\u01be\u0a8c\3\2\2\2\u01c0\u0a9a\3\2\2\2\u01c2\u0ab1\3\2\2\2\u01c4"+ + "\u0ac6\3\2\2\2\u01c6\u0ad4\3\2\2\2\u01c8\u0aec\3\2\2\2\u01ca\u0aee\3\2"+ + "\2\2\u01cc\u0af1\3\2\2\2\u01ce\u0afa\3\2\2\2\u01d0\u0afe\3\2\2\2\u01d2"+ + "\u0b07\3\2\2\2\u01d4\u0b0a\3\2\2\2\u01d6\u0b0c\3\2\2\2\u01d8\u0b0f\3\2"+ + "\2\2\u01da\u0b2c\3\2\2\2\u01dc\u01dd\t\2\2\2\u01dd\3\3\2\2\2\u01de\u01e1"+ + "\5\6\4\2\u01df\u01e1\5\16\b\2\u01e0\u01de\3\2\2\2\u01e0\u01df\3\2\2\2"+ + "\u01e1\5\3\2\2\2\u01e2\u01e4\5\u00e8u\2\u01e3\u01e2\3\2\2\2\u01e4\u01e7"+ + "\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e5\u01e6\3\2\2\2\u01e6\u01e8\3\2\2\2\u01e7"+ + "\u01e5\3\2\2\2\u01e8\u01f1\5\b\5\2\u01e9\u01eb\5\u00e8u\2\u01ea\u01e9"+ + "\3\2\2\2\u01eb\u01ee\3\2\2\2\u01ec\u01ea\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed"+ + "\u01ef\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ef\u01f1\7\5\2\2\u01f0\u01e5\3\2"+ + "\2\2\u01f0\u01ec\3\2\2\2\u01f1\7\3\2\2\2\u01f2\u01f5\5\n\6\2\u01f3\u01f5"+ + "\5\f\7\2\u01f4\u01f2\3\2\2\2\u01f4\u01f3\3\2\2\2\u01f5\t\3\2\2\2\u01f6"+ + "\u01f7\t\3\2\2\u01f7\13\3\2\2\2\u01f8\u01f9\t\4\2\2\u01f9\r\3\2\2\2\u01fa"+ + "\u01fe\5\20\t\2\u01fb\u01fe\5\36\20\2\u01fc\u01fe\5 \21\2\u01fd\u01fa"+ + "\3\2\2\2\u01fd\u01fb\3\2\2\2\u01fd\u01fc\3\2\2\2\u01fe\17\3\2\2\2\u01ff"+ + "\u0202\5\26\f\2\u0200\u0202\5\34\17\2\u0201\u01ff\3\2\2\2\u0201\u0200"+ + "\3\2\2\2\u0202\u0207\3\2\2\2\u0203\u0206\5\24\13\2\u0204\u0206\5\32\16"+ + "\2\u0205\u0203\3\2\2\2\u0205\u0204\3\2\2\2\u0206\u0209\3\2\2\2\u0207\u0205"+ + "\3\2\2\2\u0207\u0208\3\2\2\2\u0208\21\3\2\2\2\u0209\u0207\3\2\2\2\u020a"+ + "\u020c\5\u00e8u\2\u020b\u020a\3\2\2\2\u020c\u020f\3\2\2\2\u020d\u020b"+ + "\3\2\2\2\u020d\u020e\3\2\2\2\u020e\u0210\3\2\2\2\u020f\u020d\3\2\2\2\u0210"+ + "\u0212\7h\2\2\u0211\u0213\5,\27\2\u0212\u0211\3\2\2\2\u0212\u0213\3\2"+ + "\2\2\u0213\u0221\3\2\2\2\u0214\u0215\5\20\t\2\u0215\u0219\7C\2\2\u0216"+ + "\u0218\5\u00e8u\2\u0217\u0216\3\2\2\2\u0218\u021b\3\2\2\2\u0219\u0217"+ + "\3\2\2\2\u0219\u021a\3\2\2\2\u021a\u021c\3\2\2\2\u021b\u0219\3\2\2\2\u021c"+ + "\u021e\7h\2\2\u021d\u021f\5,\27\2\u021e\u021d\3\2\2\2\u021e\u021f\3\2"+ + "\2\2\u021f\u0221\3\2\2\2\u0220\u020d\3\2\2\2\u0220\u0214\3\2\2\2\u0221"+ + "\23\3\2\2\2\u0222\u0226\7C\2\2\u0223\u0225\5\u00e8u\2\u0224\u0223\3\2"+ + "\2\2\u0225\u0228\3\2\2\2\u0226\u0224\3\2\2\2\u0226\u0227\3\2\2\2\u0227"+ + "\u0229\3\2\2\2\u0228\u0226\3\2\2\2\u0229\u022b\7h\2\2\u022a\u022c\5,\27"+ + "\2\u022b\u022a\3\2\2\2\u022b\u022c\3\2\2\2\u022c\25\3\2\2\2\u022d\u022f"+ + "\5\u00e8u\2\u022e\u022d\3\2\2\2\u022f\u0232\3\2\2\2\u0230\u022e\3\2\2"+ + "\2\u0230\u0231\3\2\2\2\u0231\u0233\3\2\2\2\u0232\u0230\3\2\2\2\u0233\u0235"+ + "\7h\2\2\u0234\u0236\5,\27\2\u0235\u0234\3\2\2\2\u0235\u0236\3\2\2\2\u0236"+ + "\27\3\2\2\2\u0237\u0238\5\22\n\2\u0238\31\3\2\2\2\u0239\u023a\5\24\13"+ + "\2\u023a\33\3\2\2\2\u023b\u023c\5\26\f\2\u023c\35\3\2\2\2\u023d\u023f"+ + "\5\u00e8u\2\u023e\u023d\3\2\2\2\u023f\u0242\3\2\2\2\u0240\u023e\3\2\2"+ + "\2\u0240\u0241\3\2\2\2\u0241\u0243\3\2\2\2\u0242\u0240\3\2\2\2\u0243\u0244"+ + "\7h\2\2\u0244\37\3\2\2\2\u0245\u0246\5\6\4\2\u0246\u0247\5\"\22\2\u0247"+ + "\u024f\3\2\2\2\u0248\u0249\5\20\t\2\u0249\u024a\5\"\22\2\u024a\u024f\3"+ + "\2\2\2\u024b\u024c\5\36\20\2\u024c\u024d\5\"\22\2\u024d\u024f\3\2\2\2"+ + "\u024e\u0245\3\2\2\2\u024e\u0248\3\2\2\2\u024e\u024b\3\2\2\2\u024f!\3"+ + "\2\2\2\u0250\u0252\5\u00e8u\2\u0251\u0250\3\2\2\2\u0252\u0255\3\2\2\2"+ + "\u0253\u0251\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u0256\3\2\2\2\u0255\u0253"+ + "\3\2\2\2\u0256\u0257\7?\2\2\u0257\u0262\7@\2\2\u0258\u025a\5\u00e8u\2"+ + "\u0259\u0258\3\2\2\2\u025a\u025d\3\2\2\2\u025b\u0259\3\2\2\2\u025b\u025c"+ + "\3\2\2\2\u025c\u025e\3\2\2\2\u025d\u025b\3\2\2\2\u025e\u025f\7?\2\2\u025f"+ + "\u0261\7@\2\2\u0260\u025b\3\2\2\2\u0261\u0264\3\2\2\2\u0262\u0260\3\2"+ + "\2\2\u0262\u0263\3\2\2\2\u0263#\3\2\2\2\u0264\u0262\3\2\2\2\u0265\u0267"+ + "\5&\24\2\u0266\u0265\3\2\2\2\u0267\u026a\3\2\2\2\u0268\u0266\3\2\2\2\u0268"+ + "\u0269\3\2\2\2\u0269\u026b\3\2\2\2\u026a\u0268\3\2\2\2\u026b\u026d\7h"+ + "\2\2\u026c\u026e\5(\25\2\u026d\u026c\3\2\2\2\u026d\u026e\3\2\2\2\u026e"+ + "%\3\2\2\2\u026f\u0270\5\u00e8u\2\u0270\'\3\2\2\2\u0271\u0272\7\23\2\2"+ + "\u0272\u027c\5\36\20\2\u0273\u0274\7\23\2\2\u0274\u0278\5\20\t\2\u0275"+ + "\u0277\5*\26\2\u0276\u0275\3\2\2\2\u0277\u027a\3\2\2\2\u0278\u0276\3\2"+ + "\2\2\u0278\u0279\3\2\2\2\u0279\u027c\3\2\2\2\u027a\u0278\3\2\2\2\u027b"+ + "\u0271\3\2\2\2\u027b\u0273\3\2\2\2\u027c)\3\2\2\2\u027d\u027e\7W\2\2\u027e"+ + "\u027f\5\30\r\2\u027f+\3\2\2\2\u0280\u0281\7F\2\2\u0281\u0282\5.\30\2"+ + "\u0282\u0283\7E\2\2\u0283-\3\2\2\2\u0284\u0289\5\60\31\2\u0285\u0286\7"+ + "B\2\2\u0286\u0288\5\60\31\2\u0287\u0285\3\2\2\2\u0288\u028b\3\2\2\2\u0289"+ + "\u0287\3\2\2\2\u0289\u028a\3\2\2\2\u028a/\3\2\2\2\u028b\u0289\3\2\2\2"+ + "\u028c\u028f\5\16\b\2\u028d\u028f\5\62\32\2\u028e\u028c\3\2\2\2\u028e"+ + "\u028d\3\2\2\2\u028f\61\3\2\2\2\u0290\u0292\5\u00e8u\2\u0291\u0290\3\2"+ + "\2\2\u0292\u0295\3\2\2\2\u0293\u0291\3\2\2\2\u0293\u0294\3\2\2\2\u0294"+ "\u0296\3\2\2\2\u0295\u0293\3\2\2\2\u0296\u0298\7I\2\2\u0297\u0299\5\64"+ "\33\2\u0298\u0297\3\2\2\2\u0298\u0299\3\2\2\2\u0299\63\3\2\2\2\u029a\u029b"+ "\7\23\2\2\u029b\u029f\5\16\b\2\u029c\u029d\7*\2\2\u029d\u029f\5\16\b\2"+ @@ -17823,745 +15830,745 @@ public class Java8Parser extends Parser { "\u0350\3\2\2\2\u0353\u0357\7=\2\2\u0354\u0356\5f\64\2\u0355\u0354\3\2"+ "\2\2\u0356\u0359\3\2\2\2\u0357\u0355\3\2\2\2\u0357\u0358\3\2\2\2\u0358"+ "\u035a\3\2\2\2\u0359\u0357\3\2\2\2\u035a\u035b\7>\2\2\u035be\3\2\2\2\u035c"+ - "\u0361\5h\65\2\u035d\u0361\5\u00acW\2\u035e\u0361\5\u00aeX\2\u035f\u0361"+ - "\5\u00b0Y\2\u0360\u035c\3\2\2\2\u0360\u035d\3\2\2\2\u0360\u035e\3\2\2"+ - "\2\u0360\u035f\3\2\2\2\u0361g\3\2\2\2\u0362\u0368\5j\66\2\u0363\u0368"+ - "\5\u008eH\2\u0364\u0368\5T+\2\u0365\u0368\5\u00c8e\2\u0366\u0368\7A\2"+ - "\2\u0367\u0362\3\2\2\2\u0367\u0363\3\2\2\2\u0367\u0364\3\2\2\2\u0367\u0365"+ - "\3\2\2\2\u0367\u0366\3\2\2\2\u0368i\3\2\2\2\u0369\u036b\5l\67\2\u036a"+ - "\u0369\3\2\2\2\u036b\u036e\3\2\2\2\u036c\u036a\3\2\2\2\u036c\u036d\3\2"+ - "\2\2\u036d\u0370\3\2\2\2\u036e\u036c\3\2\2\2\u036f\u0371\5v<\2\u0370\u036f"+ - "\3\2\2\2\u0370\u0371\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\5n8\2\u0373"+ - "\u0374\7A\2\2\u0374k\3\2\2\2\u0375\u037e\5\u00e8u\2\u0376\u037e\7%\2\2"+ - "\u0377\u037e\7$\2\2\u0378\u037e\7#\2\2\u0379\u037e\7(\2\2\u037a\u037e"+ - "\7\24\2\2\u037b\u037e\7\60\2\2\u037c\u037e\7\63\2\2\u037d\u0375\3\2\2"+ - "\2\u037d\u0376\3\2\2\2\u037d\u0377\3\2\2\2\u037d\u0378\3\2\2\2\u037d\u0379"+ - "\3\2\2\2\u037d\u037a\3\2\2\2\u037d\u037b\3\2\2\2\u037d\u037c\3\2\2\2\u037e"+ - "m\3\2\2\2\u037f\u0384\5p9\2\u0380\u0381\7B\2\2\u0381\u0383\5p9\2\u0382"+ - "\u0380\3\2\2\2\u0383\u0386\3\2\2\2\u0384\u0382\3\2\2\2\u0384\u0385\3\2"+ - "\2\2\u0385o\3\2\2\2\u0386\u0384\3\2\2\2\u0387\u038a\5r:\2\u0388\u0389"+ - "\7D\2\2\u0389\u038b\5t;\2\u038a\u0388\3\2\2\2\u038a\u038b\3\2\2\2\u038b"+ - "q\3\2\2\2\u038c\u038e\7h\2\2\u038d\u038f\5\"\22\2\u038e\u038d\3\2\2\2"+ - "\u038e\u038f\3\2\2\2\u038fs\3\2\2\2\u0390\u0393\5\u01a0\u00d1\2\u0391"+ - "\u0393\5\u00fa~\2\u0392\u0390\3\2\2\2\u0392\u0391\3\2\2\2\u0393u\3\2\2"+ - "\2\u0394\u0397\5x=\2\u0395\u0397\5z>\2\u0396\u0394\3\2\2\2\u0396\u0395"+ - "\3\2\2\2\u0397w\3\2\2\2\u0398\u039b\5\b\5\2\u0399\u039b\7\5\2\2\u039a"+ - "\u0398\3\2\2\2\u039a\u0399\3\2\2\2\u039by\3\2\2\2\u039c\u03a0\5|?\2\u039d"+ - "\u03a0\5\u008aF\2\u039e\u03a0\5\u008cG\2\u039f\u039c\3\2\2\2\u039f\u039d"+ - "\3\2\2\2\u039f\u039e\3\2\2\2\u03a0{\3\2\2\2\u03a1\u03a4\5\u0082B\2\u03a2"+ - "\u03a4\5\u0088E\2\u03a3\u03a1\3\2\2\2\u03a3\u03a2\3\2\2\2\u03a4\u03a9"+ - "\3\2\2\2\u03a5\u03a8\5\u0080A\2\u03a6\u03a8\5\u0086D\2\u03a7\u03a5\3\2"+ - "\2\2\u03a7\u03a6\3\2\2\2\u03a8\u03ab\3\2\2\2\u03a9\u03a7\3\2\2\2\u03a9"+ - "\u03aa\3\2\2\2\u03aa}\3\2\2\2\u03ab\u03a9\3\2\2\2\u03ac\u03ae\7h\2\2\u03ad"+ - "\u03af\5,\27\2\u03ae\u03ad\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03bd\3\2"+ - "\2\2\u03b0\u03b1\5|?\2\u03b1\u03b5\7C\2\2\u03b2\u03b4\5\u00e8u\2\u03b3"+ - "\u03b2\3\2\2\2\u03b4\u03b7\3\2\2\2\u03b5\u03b3\3\2\2\2\u03b5\u03b6\3\2"+ - "\2\2\u03b6\u03b8\3\2\2\2\u03b7\u03b5\3\2\2\2\u03b8\u03ba\7h\2\2\u03b9"+ - "\u03bb\5,\27\2\u03ba\u03b9\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bd\3\2"+ - "\2\2\u03bc\u03ac\3\2\2\2\u03bc\u03b0\3\2\2\2\u03bd\177\3\2\2\2\u03be\u03c2"+ - "\7C\2\2\u03bf\u03c1\5\u00e8u\2\u03c0\u03bf\3\2\2\2\u03c1\u03c4\3\2\2\2"+ - "\u03c2\u03c0\3\2\2\2\u03c2\u03c3\3\2\2\2\u03c3\u03c5\3\2\2\2\u03c4\u03c2"+ - "\3\2\2\2\u03c5\u03c7\7h\2\2\u03c6\u03c8\5,\27\2\u03c7\u03c6\3\2\2\2\u03c7"+ - "\u03c8\3\2\2\2\u03c8\u0081\3\2\2\2\u03c9\u03cb\7h\2\2\u03ca\u03cc\5,\27"+ - "\2\u03cb\u03ca\3\2\2\2\u03cb\u03cc\3\2\2\2\u03cc\u0083\3\2\2\2\u03cd\u03ce"+ - "\5~@\2\u03ce\u0085\3\2\2\2\u03cf\u03d0\5\u0080A\2\u03d0\u0087\3\2\2\2"+ - "\u03d1\u03d2\5\u0082B\2\u03d2\u0089\3\2\2\2\u03d3\u03d4\7h\2\2\u03d4\u008b"+ - "\3\2\2\2\u03d5\u03d6\5x=\2\u03d6\u03d7\5\"\22\2\u03d7\u03df\3\2\2\2\u03d8"+ - "\u03d9\5|?\2\u03d9\u03da\5\"\22\2\u03da\u03df\3\2\2\2\u03db\u03dc\5\u008a"+ - "F\2\u03dc\u03dd\5\"\22\2\u03dd\u03df\3\2\2\2\u03de\u03d5\3\2\2\2\u03de"+ - "\u03d8\3\2\2\2\u03de\u03db\3\2\2\2\u03df\u008d\3\2\2\2\u03e0\u03e2\5\u0090"+ - "I\2\u03e1\u03e0\3\2\2\2\u03e2\u03e5\3\2\2\2\u03e3\u03e1\3\2\2\2\u03e3"+ - "\u03e4\3\2\2\2\u03e4\u03e6\3\2\2\2\u03e5\u03e3\3\2\2\2\u03e6\u03e7\5\u0092"+ - "J\2\u03e7\u03e8\5\u00aaV\2\u03e8\u008f\3\2\2\2\u03e9\u03f4\5\u00e8u\2"+ - "\u03ea\u03f4\7%\2\2\u03eb\u03f4\7$\2\2\u03ec\u03f4\7#\2\2\u03ed\u03f4"+ - "\7\3\2\2\u03ee\u03f4\7(\2\2\u03ef\u03f4\7\24\2\2\u03f0\u03f4\7,\2\2\u03f1"+ - "\u03f4\7 \2\2\u03f2\u03f4\7)\2\2\u03f3\u03e9\3\2\2\2\u03f3\u03ea\3\2\2"+ - "\2\u03f3\u03eb\3\2\2\2\u03f3\u03ec\3\2\2\2\u03f3\u03ed\3\2\2\2\u03f3\u03ee"+ - "\3\2\2\2\u03f3\u03ef\3\2\2\2\u03f3\u03f0\3\2\2\2\u03f3\u03f1\3\2\2\2\u03f3"+ - "\u03f2\3\2\2\2\u03f4\u0091\3\2\2\2\u03f5\u03f7\5\u0094K\2\u03f6\u03f5"+ - "\3\2\2\2\u03f6\u03f7\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8\u03fa\5\u0096L"+ - "\2\u03f9\u03fb\5\u00a4S\2\u03fa\u03f9\3\2\2\2\u03fa\u03fb\3\2\2\2\u03fb"+ - "\u0409\3\2\2\2\u03fc\u0400\5Z.\2\u03fd\u03ff\5\u00e8u\2\u03fe\u03fd\3"+ - "\2\2\2\u03ff\u0402\3\2\2\2\u0400\u03fe\3\2\2\2\u0400\u0401\3\2\2\2\u0401"+ - "\u0403\3\2\2\2\u0402\u0400\3\2\2\2\u0403\u0404\5\u0094K\2\u0404\u0406"+ - "\5\u0096L\2\u0405\u0407\5\u00a4S\2\u0406\u0405\3\2\2\2\u0406\u0407\3\2"+ - "\2\2\u0407\u0409\3\2\2\2\u0408\u03f6\3\2\2\2\u0408\u03fc\3\2\2\2\u0409"+ - "\u0093\3\2\2\2\u040a\u040d\5v<\2\u040b\u040d\7\62\2\2\u040c\u040a\3\2"+ - "\2\2\u040c\u040b\3\2\2\2\u040d\u0095\3\2\2\2\u040e\u040f\7h\2\2\u040f"+ - "\u0411\7;\2\2\u0410\u0412\5\u0098M\2\u0411\u0410\3\2\2\2\u0411\u0412\3"+ - "\2\2\2\u0412\u0413\3\2\2\2\u0413\u0415\7<\2\2\u0414\u0416\5\"\22\2\u0415"+ - "\u0414\3\2\2\2\u0415\u0416\3\2\2\2\u0416\u0097\3\2\2\2\u0417\u0418\5\u009a"+ - "N\2\u0418\u0419\7B\2\2\u0419\u041a\5\u00a0Q\2\u041a\u041d\3\2\2\2\u041b"+ - "\u041d\5\u00a0Q\2\u041c\u0417\3\2\2\2\u041c\u041b\3\2\2\2\u041d\u0099"+ - "\3\2\2\2\u041e\u0423\5\u009cO\2\u041f\u0420\7B\2\2\u0420\u0422\5\u009c"+ - "O\2\u0421\u041f\3\2\2\2\u0422\u0425\3\2\2\2\u0423\u0421\3\2\2\2\u0423"+ - "\u0424\3\2\2\2\u0424\u042f\3\2\2\2\u0425\u0423\3\2\2\2\u0426\u042b\5\u00a2"+ - "R\2\u0427\u0428\7B\2\2\u0428\u042a\5\u009cO\2\u0429\u0427\3\2\2\2\u042a"+ - "\u042d\3\2\2\2\u042b\u0429\3\2\2\2\u042b\u042c\3\2\2\2\u042c\u042f\3\2"+ - "\2\2\u042d\u042b\3\2\2\2\u042e\u041e\3\2\2\2\u042e\u0426\3\2\2\2\u042f"+ - "\u009b\3\2\2\2\u0430\u0432\5\u009eP\2\u0431\u0430\3\2\2\2\u0432\u0435"+ - "\3\2\2\2\u0433\u0431\3\2\2\2\u0433\u0434\3\2\2\2\u0434\u0437\3\2\2\2\u0435"+ - "\u0433\3\2\2\2\u0436\u0438\5v<\2\u0437\u0436\3\2\2\2\u0437\u0438\3\2\2"+ - "\2\u0438\u0439\3\2\2\2\u0439\u043a\5r:\2\u043a\u009d\3\2\2\2\u043b\u043e"+ - "\5\u00e8u\2\u043c\u043e\7\24\2\2\u043d\u043b\3\2\2\2\u043d\u043c\3\2\2"+ - "\2\u043e\u009f\3\2\2\2\u043f\u0441\5\u009eP\2\u0440\u043f\3\2\2\2\u0441"+ - "\u0444\3\2\2\2\u0442\u0440\3\2\2\2\u0442\u0443\3\2\2\2\u0443\u0445\3\2"+ - "\2\2\u0444\u0442\3\2\2\2\u0445\u0449\5v<\2\u0446\u0448\5\u00e8u\2\u0447"+ - "\u0446\3\2\2\2\u0448\u044b\3\2\2\2\u0449\u0447\3\2\2\2\u0449\u044a\3\2"+ - "\2\2\u044a\u044c\3\2\2\2\u044b\u0449\3\2\2\2\u044c\u044d\7j\2\2\u044d"+ - "\u044e\5r:\2\u044e\u0451\3\2\2\2\u044f\u0451\5\u009cO\2\u0450\u0442\3"+ - "\2\2\2\u0450\u044f\3\2\2\2\u0451\u00a1\3\2\2\2\u0452\u0454\5\u00e8u\2"+ - "\u0453\u0452\3\2\2\2\u0454\u0457\3\2\2\2\u0455\u0453\3\2\2\2\u0455\u0456"+ - "\3\2\2\2\u0456\u0458\3\2\2\2\u0457\u0455\3\2\2\2\u0458\u045b\5v<\2\u0459"+ - "\u045a\7h\2\2\u045a\u045c\7C\2\2\u045b\u0459\3\2\2\2\u045b\u045c\3\2\2"+ - "\2\u045c\u045d\3\2\2\2\u045d\u045e\7-\2\2\u045e\u00a3\3\2\2\2\u045f\u0460"+ - "\7/\2\2\u0460\u0461\5\u00a6T\2\u0461\u00a5\3\2\2\2\u0462\u0467\5\u00a8"+ - "U\2\u0463\u0464\7B\2\2\u0464\u0466\5\u00a8U\2\u0465\u0463\3\2\2\2\u0466"+ - "\u0469\3\2\2\2\u0467\u0465\3\2\2\2\u0467\u0468\3\2\2\2\u0468\u00a7\3\2"+ - "\2\2\u0469\u0467\3\2\2\2\u046a\u046d\5\22\n\2\u046b\u046d\5\36\20\2\u046c"+ - "\u046a\3\2\2\2\u046c\u046b\3\2\2\2\u046d\u00a9\3\2\2\2\u046e\u0471\5\u00fe"+ - "\u0080\2\u046f\u0471\7A\2\2\u0470\u046e\3\2\2\2\u0470\u046f\3\2\2\2\u0471"+ - "\u00ab\3\2\2\2\u0472\u0473\5\u00fe\u0080\2\u0473\u00ad\3\2\2\2\u0474\u0475"+ - "\7(\2\2\u0475\u0476\5\u00fe\u0080\2\u0476\u00af\3\2\2\2\u0477\u0479\5"+ - "\u00b2Z\2\u0478\u0477\3\2\2\2\u0479\u047c\3\2\2\2\u047a\u0478\3\2\2\2"+ - "\u047a\u047b\3\2\2\2\u047b\u047d\3\2\2\2\u047c\u047a\3\2\2\2\u047d\u047f"+ - "\5\u00b4[\2\u047e\u0480\5\u00a4S\2\u047f\u047e\3\2\2\2\u047f\u0480\3\2"+ - "\2\2\u0480\u0481\3\2\2\2\u0481\u0482\5\u00b8]\2\u0482\u00b1\3\2\2\2\u0483"+ - "\u0488\5\u00e8u\2\u0484\u0488\7%\2\2\u0485\u0488\7$\2\2\u0486\u0488\7"+ - "#\2\2\u0487\u0483\3\2\2\2\u0487\u0484\3\2\2\2\u0487\u0485\3\2\2\2\u0487"+ - "\u0486\3\2\2\2\u0488\u00b3\3\2\2\2\u0489\u048b\5Z.\2\u048a\u0489\3\2\2"+ - "\2\u048a\u048b\3\2\2\2\u048b\u048c\3\2\2\2\u048c\u048d\5\u00b6\\\2\u048d"+ - "\u048f\7;\2\2\u048e\u0490\5\u0098M\2\u048f\u048e\3\2\2\2\u048f\u0490\3"+ - "\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\7<\2\2\u0492\u00b5\3\2\2\2\u0493"+ - "\u0494\7h\2\2\u0494\u00b7\3\2\2\2\u0495\u0497\7=\2\2\u0496\u0498\5\u00ba"+ - "^\2\u0497\u0496\3\2\2\2\u0497\u0498\3\2\2\2\u0498\u049a\3\2\2\2\u0499"+ - "\u049b\5\u0100\u0081\2\u049a\u0499\3\2\2\2\u049a\u049b\3\2\2\2\u049b\u049c"+ - "\3\2\2\2\u049c\u049d\7>\2\2\u049d\u00b9\3\2\2\2\u049e\u04a0\5,\27\2\u049f"+ - "\u049e\3\2\2\2\u049f\u04a0\3\2\2\2\u04a0\u04a1\3\2\2\2\u04a1\u04a2\7-"+ - "\2\2\u04a2\u04a4\7;\2\2\u04a3\u04a5\5\u0190\u00c9\2\u04a4\u04a3\3\2\2"+ - "\2\u04a4\u04a5\3\2\2\2\u04a5\u04a6\3\2\2\2\u04a6\u04a7\7<\2\2\u04a7\u04cd"+ - "\7A\2\2\u04a8\u04aa\5,\27\2\u04a9\u04a8\3\2\2\2\u04a9\u04aa\3\2\2\2\u04aa"+ - "\u04ab\3\2\2\2\u04ab\u04ac\7*\2\2\u04ac\u04ae\7;\2\2\u04ad\u04af\5\u0190"+ - "\u00c9\2\u04ae\u04ad\3\2\2\2\u04ae\u04af\3\2\2\2\u04af\u04b0\3\2\2\2\u04b0"+ - "\u04b1\7<\2\2\u04b1\u04cd\7A\2\2\u04b2\u04b3\5<\37\2\u04b3\u04b5\7C\2"+ - "\2\u04b4\u04b6\5,\27\2\u04b5\u04b4\3\2\2\2\u04b5\u04b6\3\2\2\2\u04b6\u04b7"+ - "\3\2\2\2\u04b7\u04b8\7*\2\2\u04b8\u04ba\7;\2\2\u04b9\u04bb\5\u0190\u00c9"+ - "\2\u04ba\u04b9\3\2\2\2\u04ba\u04bb\3\2\2\2\u04bb\u04bc\3\2\2\2\u04bc\u04bd"+ - "\7<\2\2\u04bd\u04be\7A\2\2\u04be\u04cd\3\2\2\2\u04bf\u04c0\5\u0162\u00b2"+ - "\2\u04c0\u04c2\7C\2\2\u04c1\u04c3\5,\27\2\u04c2\u04c1\3\2\2\2\u04c2\u04c3"+ - "\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4\u04c5\7*\2\2\u04c5\u04c7\7;\2\2\u04c6"+ - "\u04c8\5\u0190\u00c9\2\u04c7\u04c6\3\2\2\2\u04c7\u04c8\3\2\2\2\u04c8\u04c9"+ - "\3\2\2\2\u04c9\u04ca\7<\2\2\u04ca\u04cb\7A\2\2\u04cb\u04cd\3\2\2\2\u04cc"+ - "\u049f\3\2\2\2\u04cc\u04a9\3\2\2\2\u04cc\u04b2\3\2\2\2\u04cc\u04bf\3\2"+ - "\2\2\u04cd\u00bb\3\2\2\2\u04ce\u04d0\5X-\2\u04cf\u04ce\3\2\2\2\u04d0\u04d3"+ - "\3\2\2\2\u04d1\u04cf\3\2\2\2\u04d1\u04d2\3\2\2\2\u04d2\u04d4\3\2\2\2\u04d3"+ - "\u04d1\3\2\2\2\u04d4\u04d5\7\22\2\2\u04d5\u04d7\7h\2\2\u04d6\u04d8\5`"+ - "\61\2\u04d7\u04d6\3\2\2\2\u04d7\u04d8\3\2\2\2\u04d8\u04d9\3\2\2\2\u04d9"+ - "\u04da\5\u00be`\2\u04da\u00bd\3\2\2\2\u04db\u04dd\7=\2\2\u04dc\u04de\5"+ - "\u00c0a\2\u04dd\u04dc\3\2\2\2\u04dd\u04de\3\2\2\2\u04de\u04e0\3\2\2\2"+ - "\u04df\u04e1\7B\2\2\u04e0\u04df\3\2\2\2\u04e0\u04e1\3\2\2\2\u04e1\u04e3"+ - "\3\2\2\2\u04e2\u04e4\5\u00c6d\2\u04e3\u04e2\3\2\2\2\u04e3\u04e4\3\2\2"+ - "\2\u04e4\u04e5\3\2\2\2\u04e5\u04e6\7>\2\2\u04e6\u00bf\3\2\2\2\u04e7\u04ec"+ - "\5\u00c2b\2\u04e8\u04e9\7B\2\2\u04e9\u04eb\5\u00c2b\2\u04ea\u04e8\3\2"+ - "\2\2\u04eb\u04ee\3\2\2\2\u04ec\u04ea\3\2\2\2\u04ec\u04ed\3\2\2\2\u04ed"+ - "\u00c1\3\2\2\2\u04ee\u04ec\3\2\2\2\u04ef\u04f1\5\u00c4c\2\u04f0\u04ef"+ - "\3\2\2\2\u04f1\u04f4\3\2\2\2\u04f2\u04f0\3\2\2\2\u04f2\u04f3\3\2\2\2\u04f3"+ - "\u04f5\3\2\2\2\u04f4\u04f2\3\2\2\2\u04f5\u04fb\7h\2\2\u04f6\u04f8\7;\2"+ - "\2\u04f7\u04f9\5\u0190\u00c9\2\u04f8\u04f7\3\2\2\2\u04f8\u04f9\3\2\2\2"+ - "\u04f9\u04fa\3\2\2\2\u04fa\u04fc\7<\2\2\u04fb\u04f6\3\2\2\2\u04fb\u04fc"+ - "\3\2\2\2\u04fc\u04fe\3\2\2\2\u04fd\u04ff\5d\63\2\u04fe\u04fd\3\2\2\2\u04fe"+ - "\u04ff\3\2\2\2\u04ff\u00c3\3\2\2\2\u0500\u0501\5\u00e8u\2\u0501\u00c5"+ - "\3\2\2\2\u0502\u0506\7A\2\2\u0503\u0505\5f\64\2\u0504\u0503\3\2\2\2\u0505"+ - "\u0508\3\2\2\2\u0506\u0504\3\2\2\2\u0506\u0507\3\2\2\2\u0507\u00c7\3\2"+ - "\2\2\u0508\u0506\3\2\2\2\u0509\u050c\5\u00caf\2\u050a\u050c\5\u00dco\2"+ - "\u050b\u0509\3\2\2\2\u050b\u050a\3\2\2\2\u050c\u00c9\3\2\2\2\u050d\u050f"+ - "\5\u00ccg\2\u050e\u050d\3\2\2\2\u050f\u0512\3\2\2\2\u0510\u050e\3\2\2"+ - "\2\u0510\u0511\3\2\2\2\u0511\u0513\3\2\2\2\u0512\u0510\3\2\2\2\u0513\u0514"+ - "\7\36\2\2\u0514\u0516\7h\2\2\u0515\u0517\5Z.\2\u0516\u0515\3\2\2\2\u0516"+ - "\u0517\3\2\2\2\u0517\u0519\3\2\2\2\u0518\u051a\5\u00ceh\2\u0519\u0518"+ - "\3\2\2\2\u0519\u051a\3\2\2\2\u051a\u051b\3\2\2\2\u051b\u051c\5\u00d0i"+ - "\2\u051c\u00cb\3\2\2\2\u051d\u0525\5\u00e8u\2\u051e\u0525\7%\2\2\u051f"+ - "\u0525\7$\2\2\u0520\u0525\7#\2\2\u0521\u0525\7\3\2\2\u0522\u0525\7(\2"+ - "\2\u0523\u0525\7)\2\2\u0524\u051d\3\2\2\2\u0524\u051e\3\2\2\2\u0524\u051f"+ - "\3\2\2\2\u0524\u0520\3\2\2\2\u0524\u0521\3\2\2\2\u0524\u0522\3\2\2\2\u0524"+ - "\u0523\3\2\2\2\u0525\u00cd\3\2\2\2\u0526\u0527\7\23\2\2\u0527\u0528\5"+ - "b\62\2\u0528\u00cf\3\2\2\2\u0529\u052d\7=\2\2\u052a\u052c\5\u00d2j\2\u052b"+ - "\u052a\3\2\2\2\u052c\u052f\3\2\2\2\u052d\u052b\3\2\2\2\u052d\u052e\3\2"+ - "\2\2\u052e\u0530\3\2\2\2\u052f\u052d\3\2\2\2\u0530\u0531\7>\2\2\u0531"+ - "\u00d1\3\2\2\2\u0532\u0538\5\u00d4k\2\u0533\u0538\5\u00d8m\2\u0534\u0538"+ - "\5T+\2\u0535\u0538\5\u00c8e\2\u0536\u0538\7A\2\2\u0537\u0532\3\2\2\2\u0537"+ - "\u0533\3\2\2\2\u0537\u0534\3\2\2\2\u0537\u0535\3\2\2\2\u0537\u0536\3\2"+ - "\2\2\u0538\u00d3\3\2\2\2\u0539\u053b\5\u00d6l\2\u053a\u0539\3\2\2\2\u053b"+ - "\u053e\3\2\2\2\u053c\u053a\3\2\2\2\u053c\u053d\3\2\2\2\u053d\u053f\3\2"+ - "\2\2\u053e\u053c\3\2\2\2\u053f\u0540\5v<\2\u0540\u0541\5n8\2\u0541\u0542"+ - "\7A\2\2\u0542\u00d5\3\2\2\2\u0543\u0548\5\u00e8u\2\u0544\u0548\7%\2\2"+ - "\u0545\u0548\7(\2\2\u0546\u0548\7\24\2\2\u0547\u0543\3\2\2\2\u0547\u0544"+ - "\3\2\2\2\u0547\u0545\3\2\2\2\u0547\u0546\3\2\2\2\u0548\u00d7\3\2\2\2\u0549"+ - "\u054b\5\u00dan\2\u054a\u0549\3\2\2\2\u054b\u054e\3\2\2\2\u054c\u054a"+ - "\3\2\2\2\u054c\u054d\3\2\2\2\u054d\u054f\3\2\2\2\u054e\u054c\3\2\2\2\u054f"+ - "\u0550\5\u0092J\2\u0550\u0551\5\u00aaV\2\u0551\u00d9\3\2\2\2\u0552\u0559"+ - "\5\u00e8u\2\u0553\u0559\7%\2\2\u0554\u0559\7\3\2\2\u0555\u0559\7\16\2"+ - "\2\u0556\u0559\7(\2\2\u0557\u0559\7)\2\2\u0558\u0552\3\2\2\2\u0558\u0553"+ - "\3\2\2\2\u0558\u0554\3\2\2\2\u0558\u0555\3\2\2\2\u0558\u0556\3\2\2\2\u0558"+ - "\u0557\3\2\2\2\u0559\u00db\3\2\2\2\u055a\u055c\5\u00ccg\2\u055b\u055a"+ - "\3\2\2\2\u055c\u055f\3\2\2\2\u055d\u055b\3\2\2\2\u055d\u055e\3\2\2\2\u055e"+ - "\u0560\3\2\2\2\u055f\u055d\3\2\2\2\u0560\u0561\7i\2\2\u0561\u0562\7\36"+ - "\2\2\u0562\u0563\7h\2\2\u0563\u0564\5\u00dep\2\u0564\u00dd\3\2\2\2\u0565"+ - "\u0569\7=\2\2\u0566\u0568\5\u00e0q\2\u0567\u0566\3\2\2\2\u0568\u056b\3"+ - "\2\2\2\u0569\u0567\3\2\2\2\u0569\u056a\3\2\2\2\u056a\u056c\3\2\2\2\u056b"+ - "\u0569\3\2\2\2\u056c\u056d\7>\2\2\u056d\u00df\3\2\2\2\u056e\u0574\5\u00e2"+ - "r\2\u056f\u0574\5\u00d4k\2\u0570\u0574\5T+\2\u0571\u0574\5\u00c8e\2\u0572"+ - "\u0574\7A\2\2\u0573\u056e\3\2\2\2\u0573\u056f\3\2\2\2\u0573\u0570\3\2"+ - "\2\2\u0573\u0571\3\2\2\2\u0573\u0572\3\2\2\2\u0574\u00e1\3\2\2\2\u0575"+ - "\u0577\5\u00e4s\2\u0576\u0575\3\2\2\2\u0577\u057a\3\2\2\2\u0578\u0576"+ - "\3\2\2\2\u0578\u0579\3\2\2\2\u0579\u057b\3\2\2\2\u057a\u0578\3\2\2\2\u057b"+ - "\u057c\5v<\2\u057c\u057d\7h\2\2\u057d\u057e\7;\2\2\u057e\u0580\7<\2\2"+ - "\u057f\u0581\5\"\22\2\u0580\u057f\3\2\2\2\u0580\u0581\3\2\2\2\u0581\u0583"+ - "\3\2\2\2\u0582\u0584\5\u00e6t\2\u0583\u0582\3\2\2\2\u0583\u0584\3\2\2"+ - "\2\u0584\u0585\3\2\2\2\u0585\u0586\7A\2\2\u0586\u00e3\3\2\2\2\u0587\u058b"+ - "\5\u00e8u\2\u0588\u058b\7%\2\2\u0589\u058b\7\3\2\2\u058a\u0587\3\2\2\2"+ - "\u058a\u0588\3\2\2\2\u058a\u0589\3\2\2\2\u058b\u00e5\3\2\2\2\u058c\u058d"+ - "\7\16\2\2\u058d\u058e\5\u00f0y\2\u058e\u00e7\3\2\2\2\u058f\u0593\5\u00ea"+ - "v\2\u0590\u0593\5\u00f6|\2\u0591\u0593\5\u00f8}\2\u0592\u058f\3\2\2\2"+ - "\u0592\u0590\3\2\2\2\u0592\u0591\3\2\2\2\u0593\u00e9\3\2\2\2\u0594\u0595"+ - "\7i\2\2\u0595\u0596\58\35\2\u0596\u0598\7;\2\2\u0597\u0599\5\u00ecw\2"+ - "\u0598\u0597\3\2\2\2\u0598\u0599\3\2\2\2\u0599\u059a\3\2\2\2\u059a\u059b"+ - "\7<\2\2\u059b\u00eb\3\2\2\2\u059c\u05a1\5\u00eex\2\u059d\u059e\7B\2\2"+ - "\u059e\u05a0\5\u00eex\2\u059f\u059d\3\2\2\2\u05a0\u05a3\3\2\2\2\u05a1"+ - "\u059f\3\2\2\2\u05a1\u05a2\3\2\2\2\u05a2\u00ed\3\2\2\2\u05a3\u05a1\3\2"+ - "\2\2\u05a4\u05a5\7h\2\2\u05a5\u05a6\7D\2\2\u05a6\u05a7\5\u00f0y\2\u05a7"+ - "\u00ef\3\2\2\2\u05a8\u05ac\5\u01b2\u00da\2\u05a9\u05ac\5\u00f2z\2\u05aa"+ - "\u05ac\5\u00e8u\2\u05ab\u05a8\3\2\2\2\u05ab\u05a9\3\2\2\2\u05ab\u05aa"+ - "\3\2\2\2\u05ac\u00f1\3\2\2\2\u05ad\u05af\7=\2\2\u05ae\u05b0\5\u00f4{\2"+ - "\u05af\u05ae\3\2\2\2\u05af\u05b0\3\2\2\2\u05b0\u05b2\3\2\2\2\u05b1\u05b3"+ - "\7B\2\2\u05b2\u05b1\3\2\2\2\u05b2\u05b3\3\2\2\2\u05b3\u05b4\3\2\2\2\u05b4"+ - "\u05b5\7>\2\2\u05b5\u00f3\3\2\2\2\u05b6\u05bb\5\u00f0y\2\u05b7\u05b8\7"+ - "B\2\2\u05b8\u05ba\5\u00f0y\2\u05b9\u05b7\3\2\2\2\u05ba\u05bd\3\2\2\2\u05bb"+ - "\u05b9\3\2\2\2\u05bb\u05bc\3\2\2\2\u05bc\u00f5\3\2\2\2\u05bd\u05bb\3\2"+ - "\2\2\u05be\u05bf\7i\2\2\u05bf\u05c0\58\35\2\u05c0\u00f7\3\2\2\2\u05c1"+ - "\u05c2\7i\2\2\u05c2\u05c3\58\35\2\u05c3\u05c4\7;\2\2\u05c4\u05c5\5\u00f0"+ - "y\2\u05c5\u05c6\7<\2\2\u05c6\u00f9\3\2\2\2\u05c7\u05c9\7=\2\2\u05c8\u05ca"+ - "\5\u00fc\177\2\u05c9\u05c8\3\2\2\2\u05c9\u05ca\3\2\2\2\u05ca\u05cc\3\2"+ - "\2\2\u05cb\u05cd\7B\2\2\u05cc\u05cb\3\2\2\2\u05cc\u05cd\3\2\2\2\u05cd"+ - "\u05ce\3\2\2\2\u05ce\u05cf\7>\2\2\u05cf\u00fb\3\2\2\2\u05d0\u05d5\5t;"+ - "\2\u05d1\u05d2\7B\2\2\u05d2\u05d4\5t;\2\u05d3\u05d1\3\2\2\2\u05d4\u05d7"+ - "\3\2\2\2\u05d5\u05d3\3\2\2\2\u05d5\u05d6\3\2\2\2\u05d6\u00fd\3\2\2\2\u05d7"+ - "\u05d5\3\2\2\2\u05d8\u05da\7=\2\2\u05d9\u05db\5\u0100\u0081\2\u05da\u05d9"+ - "\3\2\2\2\u05da\u05db\3\2\2\2\u05db\u05dc\3\2\2\2\u05dc\u05dd\7>\2\2\u05dd"+ - "\u00ff\3\2\2\2\u05de\u05e2\5\u0102\u0082\2\u05df\u05e1\5\u0102\u0082\2"+ - "\u05e0\u05df\3\2\2\2\u05e1\u05e4\3\2\2\2\u05e2\u05e0\3\2\2\2\u05e2\u05e3"+ - "\3\2\2\2\u05e3\u0101\3\2\2\2\u05e4\u05e2\3\2\2\2\u05e5\u05e9\5\u0104\u0083"+ - "\2\u05e6\u05e9\5T+\2\u05e7\u05e9\5\u0108\u0085\2\u05e8\u05e5\3\2\2\2\u05e8"+ - "\u05e6\3\2\2\2\u05e8\u05e7\3\2\2\2\u05e9\u0103\3\2\2\2\u05ea\u05eb\5\u0106"+ - "\u0084\2\u05eb\u05ec\7A\2\2\u05ec\u0105\3\2\2\2\u05ed\u05ef\5\u009eP\2"+ - "\u05ee\u05ed\3\2\2\2\u05ef\u05f2\3\2\2\2\u05f0\u05ee\3\2\2\2\u05f0\u05f1"+ - "\3\2\2\2\u05f1\u05f3\3\2\2\2\u05f2\u05f0\3\2\2\2\u05f3\u05f4\5v<\2\u05f4"+ - "\u05f5\5n8\2\u05f5\u0107\3\2\2\2\u05f6\u05fd\5\u010c\u0087\2\u05f7\u05fd"+ - "\5\u0110\u0089\2\u05f8\u05fd\5\u0118\u008d\2\u05f9\u05fd\5\u011a\u008e"+ - "\2\u05fa\u05fd\5\u012c\u0097\2\u05fb\u05fd\5\u0132\u009a\2\u05fc\u05f6"+ - "\3\2\2\2\u05fc\u05f7\3\2\2\2\u05fc\u05f8\3\2\2\2\u05fc\u05f9\3\2\2\2\u05fc"+ - "\u05fa\3\2\2\2\u05fc\u05fb\3\2\2\2\u05fd\u0109\3\2\2\2\u05fe\u0604\5\u010c"+ - "\u0087\2\u05ff\u0604\5\u0112\u008a\2\u0600\u0604\5\u011c\u008f\2\u0601"+ - "\u0604\5\u012e\u0098\2\u0602\u0604\5\u0134\u009b\2\u0603\u05fe\3\2\2\2"+ - "\u0603\u05ff\3\2\2\2\u0603\u0600\3\2\2\2\u0603\u0601\3\2\2\2\u0603\u0602"+ - "\3\2\2\2\u0604\u010b\3\2\2\2\u0605\u0612\5\u00fe\u0080\2\u0606\u0612\5"+ - "\u010e\u0088\2\u0607\u0612\5\u0114\u008b\2\u0608\u0612\5\u011e\u0090\2"+ - "\u0609\u0612\5\u0120\u0091\2\u060a\u0612\5\u0130\u0099\2\u060b\u0612\5"+ - "\u0144\u00a3\2\u060c\u0612\5\u0146\u00a4\2\u060d\u0612\5\u0148\u00a5\2"+ - "\u060e\u0612\5\u014c\u00a7\2\u060f\u0612\5\u014a\u00a6\2\u0610\u0612\5"+ - "\u014e\u00a8\2\u0611\u0605\3\2\2\2\u0611\u0606\3\2\2\2\u0611\u0607\3\2"+ - "\2\2\u0611\u0608\3\2\2\2\u0611\u0609\3\2\2\2\u0611\u060a\3\2\2\2\u0611"+ - "\u060b\3\2\2\2\u0611\u060c\3\2\2\2\u0611\u060d\3\2\2\2\u0611\u060e\3\2"+ - "\2\2\u0611\u060f\3\2\2\2\u0611\u0610\3\2\2\2\u0612\u010d\3\2\2\2\u0613"+ - "\u0614\7A\2\2\u0614\u010f\3\2\2\2\u0615\u0616\7h\2\2\u0616\u0617\7J\2"+ - "\2\u0617\u0618\5\u0108\u0085\2\u0618\u0111\3\2\2\2\u0619\u061a\7h\2\2"+ - "\u061a\u061b\7J\2\2\u061b\u061c\5\u010a\u0086\2\u061c\u0113\3\2\2\2\u061d"+ - "\u061e\5\u0116\u008c\2\u061e\u061f\7A\2\2\u061f\u0115\3\2\2\2\u0620\u0628"+ - "\5\u01ac\u00d7\2\u0621\u0628\5\u01ca\u00e6\2\u0622\u0628\5\u01cc\u00e7"+ - "\2\u0623\u0628\5\u01d2\u00ea\2\u0624\u0628\5\u01d6\u00ec\2\u0625\u0628"+ - "\5\u018a\u00c6\2\u0626\u0628\5\u0176\u00bc\2\u0627\u0620\3\2\2\2\u0627"+ - "\u0621\3\2\2\2\u0627\u0622\3\2\2\2\u0627\u0623\3\2\2\2\u0627\u0624\3\2"+ - "\2\2\u0627\u0625\3\2\2\2\u0627\u0626\3\2\2\2\u0628\u0117\3\2\2\2\u0629"+ - "\u062a\7\30\2\2\u062a\u062b\7;\2\2\u062b\u062c\5\u01a0\u00d1\2\u062c\u062d"+ - "\7<\2\2\u062d\u062e\5\u0108\u0085\2\u062e\u0119\3\2\2\2\u062f\u0630\7"+ - "\30\2\2\u0630\u0631\7;\2\2\u0631\u0632\5\u01a0\u00d1\2\u0632\u0633\7<"+ - "\2\2\u0633\u0634\5\u010a\u0086\2\u0634\u0635\7\21\2\2\u0635\u0636\5\u0108"+ - "\u0085\2\u0636\u011b\3\2\2\2\u0637\u0638\7\30\2\2\u0638\u0639\7;\2\2\u0639"+ - "\u063a\5\u01a0\u00d1\2\u063a\u063b\7<\2\2\u063b\u063c\5\u010a\u0086\2"+ - "\u063c\u063d\7\21\2\2\u063d\u063e\5\u010a\u0086\2\u063e\u011d\3\2\2\2"+ - "\u063f\u0640\7\4\2\2\u0640\u0641\5\u01a0\u00d1\2\u0641\u0642\7A\2\2\u0642"+ - "\u064a\3\2\2\2\u0643\u0644\7\4\2\2\u0644\u0645\5\u01a0\u00d1\2\u0645\u0646"+ - "\7J\2\2\u0646\u0647\5\u01a0\u00d1\2\u0647\u0648\7A\2\2\u0648\u064a\3\2"+ - "\2\2\u0649\u063f\3\2\2\2\u0649\u0643\3\2\2\2\u064a\u011f\3\2\2\2\u064b"+ - "\u064c\7+\2\2\u064c\u064d\7;\2\2\u064d\u064e\5\u01a0\u00d1\2\u064e\u064f"+ - "\7<\2\2\u064f\u0650\5\u0122\u0092\2\u0650\u0121\3\2\2\2\u0651\u0655\7"+ - "=\2\2\u0652\u0654\5\u0124\u0093\2\u0653\u0652\3\2\2\2\u0654\u0657\3\2"+ - "\2\2\u0655\u0653\3\2\2\2\u0655\u0656\3\2\2\2\u0656\u065b\3\2\2\2\u0657"+ - "\u0655\3\2\2\2\u0658\u065a\5\u0128\u0095\2\u0659\u0658\3\2\2\2\u065a\u065d"+ - "\3\2\2\2\u065b\u0659\3\2\2\2\u065b\u065c\3\2\2\2\u065c\u065e\3\2\2\2\u065d"+ - "\u065b\3\2\2\2\u065e\u065f\7>\2\2\u065f\u0123\3\2\2\2\u0660\u0661\5\u0126"+ - "\u0094\2\u0661\u0662\5\u0100\u0081\2\u0662\u0125\3\2\2\2\u0663\u0667\5"+ - "\u0128\u0095\2\u0664\u0666\5\u0128\u0095\2\u0665\u0664\3\2\2\2\u0666\u0669"+ - "\3\2\2\2\u0667\u0665\3\2\2\2\u0667\u0668\3\2\2\2\u0668\u0127\3\2\2\2\u0669"+ - "\u0667\3\2\2\2\u066a\u066b\7\b\2\2\u066b\u066c\5\u019e\u00d0\2\u066c\u066d"+ - "\7J\2\2\u066d\u0675\3\2\2\2\u066e\u066f\7\b\2\2\u066f\u0670\5\u012a\u0096"+ - "\2\u0670\u0671\7J\2\2\u0671\u0675\3\2\2\2\u0672\u0673\7\16\2\2\u0673\u0675"+ - "\7J\2\2\u0674\u066a\3\2\2\2\u0674\u066e\3\2\2\2\u0674\u0672\3\2\2\2\u0675"+ - "\u0129\3\2\2\2\u0676\u0677\7h\2\2\u0677\u012b\3\2\2\2\u0678\u0679\7\64"+ - "\2\2\u0679\u067a\7;\2\2\u067a\u067b\5\u01a0\u00d1\2\u067b\u067c\7<\2\2"+ - "\u067c\u067d\5\u0108\u0085\2\u067d\u012d\3\2\2\2\u067e\u067f\7\64\2\2"+ - "\u067f\u0680\7;\2\2\u0680\u0681\5\u01a0\u00d1\2\u0681\u0682\7<\2\2\u0682"+ - "\u0683\5\u010a\u0086\2\u0683\u012f\3\2\2\2\u0684\u0685\7\17\2\2\u0685"+ - "\u0686\5\u0108\u0085\2\u0686\u0687\7\64\2\2\u0687\u0688\7;\2\2\u0688\u0689"+ - "\5\u01a0\u00d1\2\u0689\u068a\7<\2\2\u068a\u068b\7A\2\2\u068b\u0131\3\2"+ - "\2\2\u068c\u068f\5\u0136\u009c\2\u068d\u068f\5\u0140\u00a1\2\u068e\u068c"+ - "\3\2\2\2\u068e\u068d\3\2\2\2\u068f\u0133\3\2\2\2\u0690\u0693\5\u0138\u009d"+ - "\2\u0691\u0693\5\u0142\u00a2\2\u0692\u0690\3\2\2\2\u0692\u0691\3\2\2\2"+ - "\u0693\u0135\3\2\2\2\u0694\u0695\7\27\2\2\u0695\u0697\7;\2\2\u0696\u0698"+ - "\5\u013a\u009e\2\u0697\u0696\3\2\2\2\u0697\u0698\3\2\2\2\u0698\u0699\3"+ - "\2\2\2\u0699\u069b\7A\2\2\u069a\u069c\5\u01a0\u00d1\2\u069b\u069a\3\2"+ - "\2\2\u069b\u069c\3\2\2\2\u069c\u069d\3\2\2\2\u069d\u069f\7A\2\2\u069e"+ - "\u06a0\5\u013c\u009f\2\u069f\u069e\3\2\2\2\u069f\u06a0\3\2\2\2\u06a0\u06a1"+ - "\3\2\2\2\u06a1\u06a2\7<\2\2\u06a2\u06a3\5\u0108\u0085\2\u06a3\u0137\3"+ - "\2\2\2\u06a4\u06a5\7\27\2\2\u06a5\u06a7\7;\2\2\u06a6\u06a8\5\u013a\u009e"+ - "\2\u06a7\u06a6\3\2\2\2\u06a7\u06a8\3\2\2\2\u06a8\u06a9\3\2\2\2\u06a9\u06ab"+ - "\7A\2\2\u06aa\u06ac\5\u01a0\u00d1\2\u06ab\u06aa\3\2\2\2\u06ab\u06ac\3"+ - "\2\2\2\u06ac\u06ad\3\2\2\2\u06ad\u06af\7A\2\2\u06ae\u06b0\5\u013c\u009f"+ - "\2\u06af\u06ae\3\2\2\2\u06af\u06b0\3\2\2\2\u06b0\u06b1\3\2\2\2\u06b1\u06b2"+ - "\7<\2\2\u06b2\u06b3\5\u010a\u0086\2\u06b3\u0139\3\2\2\2\u06b4\u06b7\5"+ - "\u013e\u00a0\2\u06b5\u06b7\5\u0106\u0084\2\u06b6\u06b4\3\2\2\2\u06b6\u06b5"+ - "\3\2\2\2\u06b7\u013b\3\2\2\2\u06b8\u06b9\5\u013e\u00a0\2\u06b9\u013d\3"+ - "\2\2\2\u06ba\u06bf\5\u0116\u008c\2\u06bb\u06bc\7B\2\2\u06bc\u06be\5\u0116"+ - "\u008c\2\u06bd\u06bb\3\2\2\2\u06be\u06c1\3\2\2\2\u06bf\u06bd\3\2\2\2\u06bf"+ - "\u06c0\3\2\2\2\u06c0\u013f\3\2\2\2\u06c1\u06bf\3\2\2\2\u06c2\u06c3\7\27"+ - "\2\2\u06c3\u06c7\7;\2\2\u06c4\u06c6\5\u009eP\2\u06c5\u06c4\3\2\2\2\u06c6"+ - "\u06c9\3\2\2\2\u06c7\u06c5\3\2\2\2\u06c7\u06c8\3\2\2\2\u06c8\u06ca\3\2"+ - "\2\2\u06c9\u06c7\3\2\2\2\u06ca\u06cb\5v<\2\u06cb\u06cc\5r:\2\u06cc\u06cd"+ - "\7J\2\2\u06cd\u06ce\5\u01a0\u00d1\2\u06ce\u06cf\7<\2\2\u06cf\u06d0\5\u0108"+ - "\u0085\2\u06d0\u0141\3\2\2\2\u06d1\u06d2\7\27\2\2\u06d2\u06d6\7;\2\2\u06d3"+ - "\u06d5\5\u009eP\2\u06d4\u06d3\3\2\2\2\u06d5\u06d8\3\2\2\2\u06d6\u06d4"+ - "\3\2\2\2\u06d6\u06d7\3\2\2\2\u06d7\u06d9\3\2\2\2\u06d8\u06d6\3\2\2\2\u06d9"+ - "\u06da\5v<\2\u06da\u06db\5r:\2\u06db\u06dc\7J\2\2\u06dc\u06dd\5\u01a0"+ - "\u00d1\2\u06dd\u06de\7<\2\2\u06de\u06df\5\u010a\u0086\2\u06df\u0143\3"+ - "\2\2\2\u06e0\u06e2\7\6\2\2\u06e1\u06e3\7h\2\2\u06e2\u06e1\3\2\2\2\u06e2"+ - "\u06e3\3\2\2\2\u06e3\u06e4\3\2\2\2\u06e4\u06e5\7A\2\2\u06e5\u0145\3\2"+ - "\2\2\u06e6\u06e8\7\r\2\2\u06e7\u06e9\7h\2\2\u06e8\u06e7\3\2\2\2\u06e8"+ - "\u06e9\3\2\2\2\u06e9\u06ea\3\2\2\2\u06ea\u06eb\7A\2\2\u06eb\u0147\3\2"+ - "\2\2\u06ec\u06ee\7&\2\2\u06ed\u06ef\5\u01a0\u00d1\2\u06ee\u06ed\3\2\2"+ - "\2\u06ee\u06ef\3\2\2\2\u06ef\u06f0\3\2\2\2\u06f0\u06f1\7A\2\2\u06f1\u0149"+ - "\3\2\2\2\u06f2\u06f3\7.\2\2\u06f3\u06f4\5\u01a0\u00d1\2\u06f4\u06f5\7"+ - "A\2\2\u06f5\u014b\3\2\2\2\u06f6\u06f7\7,\2\2\u06f7\u06f8\7;\2\2\u06f8"+ - "\u06f9\5\u01a0\u00d1\2\u06f9\u06fa\7<\2\2\u06fa\u06fb\5\u00fe\u0080\2"+ - "\u06fb\u014d\3\2\2\2\u06fc\u06fd\7\61\2\2\u06fd\u06fe\5\u00fe\u0080\2"+ - "\u06fe\u06ff\5\u0150\u00a9\2\u06ff\u0709\3\2\2\2\u0700\u0701\7\61\2\2"+ - "\u0701\u0703\5\u00fe\u0080\2\u0702\u0704\5\u0150\u00a9\2\u0703\u0702\3"+ - "\2\2\2\u0703\u0704\3\2\2\2\u0704\u0705\3\2\2\2\u0705\u0706\5\u0158\u00ad"+ - "\2\u0706\u0709\3\2\2\2\u0707\u0709\5\u015a\u00ae\2\u0708\u06fc\3\2\2\2"+ - "\u0708\u0700\3\2\2\2\u0708\u0707\3\2\2\2\u0709\u014f\3\2\2\2\u070a\u070e"+ - "\5\u0152\u00aa\2\u070b\u070d\5\u0152\u00aa\2\u070c\u070b\3\2\2\2\u070d"+ - "\u0710\3\2\2\2\u070e\u070c\3\2\2\2\u070e\u070f\3\2\2\2\u070f\u0151\3\2"+ - "\2\2\u0710\u070e\3\2\2\2\u0711\u0712\7\t\2\2\u0712\u0713\7;\2\2\u0713"+ - "\u0714\5\u0154\u00ab\2\u0714\u0715\7<\2\2\u0715\u0716\5\u00fe\u0080\2"+ - "\u0716\u0153\3\2\2\2\u0717\u0719\5\u009eP\2\u0718\u0717\3\2\2\2\u0719"+ - "\u071c\3\2\2\2\u071a\u0718\3\2\2\2\u071a\u071b\3\2\2\2\u071b\u071d\3\2"+ - "\2\2\u071c\u071a\3\2\2\2\u071d\u071e\5\u0156\u00ac\2\u071e\u071f\5r:\2"+ - "\u071f\u0155\3\2\2\2\u0720\u0725\5~@\2\u0721\u0722\7X\2\2\u0722\u0724"+ - "\5\22\n\2\u0723\u0721\3\2\2\2\u0724\u0727\3\2\2\2\u0725\u0723\3\2\2\2"+ - "\u0725\u0726\3\2\2\2\u0726\u0157\3\2\2\2\u0727\u0725\3\2\2\2\u0728\u0729"+ - "\7\25\2\2\u0729\u072a\5\u00fe\u0080\2\u072a\u0159\3\2\2\2\u072b\u072c"+ - "\7\61\2\2\u072c\u072d\5\u015c\u00af\2\u072d\u072f\5\u00fe\u0080\2\u072e"+ - "\u0730\5\u0150\u00a9\2\u072f\u072e\3\2\2\2\u072f\u0730\3\2\2\2\u0730\u0732"+ - "\3\2\2\2\u0731\u0733\5\u0158\u00ad\2\u0732\u0731\3\2\2\2\u0732\u0733\3"+ - "\2\2\2\u0733\u015b\3\2\2\2\u0734\u0735\7;\2\2\u0735\u0737\5\u015e\u00b0"+ - "\2\u0736\u0738\7A\2\2\u0737\u0736\3\2\2\2\u0737\u0738\3\2\2\2\u0738\u0739"+ - "\3\2\2\2\u0739\u073a\7<\2\2\u073a\u015d\3\2\2\2\u073b\u0740\5\u0160\u00b1"+ - "\2\u073c\u073d\7A\2\2\u073d\u073f\5\u0160\u00b1\2\u073e\u073c\3\2\2\2"+ - "\u073f\u0742\3\2\2\2\u0740\u073e\3\2\2\2\u0740\u0741\3\2\2\2\u0741\u015f"+ - "\3\2\2\2\u0742\u0740\3\2\2\2\u0743\u0745\5\u009eP\2\u0744\u0743\3\2\2"+ - "\2\u0745\u0748\3\2\2\2\u0746\u0744\3\2\2\2\u0746\u0747\3\2\2\2\u0747\u0749"+ - "\3\2\2\2\u0748\u0746\3\2\2\2\u0749\u074a\5v<\2\u074a\u074b\5r:\2\u074b"+ - "\u074c\7D\2\2\u074c\u074d\5\u01a0\u00d1\2\u074d\u0161\3\2\2\2\u074e\u0751"+ - "\5\u0170\u00b9\2\u074f\u0751\5\u0198\u00cd\2\u0750\u074e\3\2\2\2\u0750"+ - "\u074f\3\2\2\2\u0751\u0755\3\2\2\2\u0752\u0754\5\u016a\u00b6\2\u0753\u0752"+ - "\3\2\2\2\u0754\u0757\3\2\2\2\u0755\u0753\3\2\2\2\u0755\u0756\3\2\2\2\u0756"+ - "\u0163\3\2\2\2\u0757\u0755\3\2\2\2\u0758\u0776\5\2\2\2\u0759\u075e\58"+ - "\35\2\u075a\u075b\7?\2\2\u075b\u075d\7@\2\2\u075c\u075a\3\2\2\2\u075d"+ - "\u0760\3\2\2\2\u075e\u075c\3\2\2\2\u075e\u075f\3\2\2\2\u075f\u0761\3\2"+ - "\2\2\u0760\u075e\3\2\2\2\u0761\u0762\7C\2\2\u0762\u0763\7\13\2\2\u0763"+ - "\u0776\3\2\2\2\u0764\u0765\7\62\2\2\u0765\u0766\7C\2\2\u0766\u0776\7\13"+ - "\2\2\u0767\u0776\7-\2\2\u0768\u0769\58\35\2\u0769\u076a\7C\2\2\u076a\u076b"+ - "\7-\2\2\u076b\u0776\3\2\2\2\u076c\u076d\7;\2\2\u076d\u076e\5\u01a0\u00d1"+ - "\2\u076e\u076f\7<\2\2\u076f\u0776\3\2\2\2\u0770\u0776\5\u0176\u00bc\2"+ - "\u0771\u0776\5\u017e\u00c0\2\u0772\u0776\5\u0184\u00c3\2\u0773\u0776\5"+ - "\u018a\u00c6\2\u0774\u0776\5\u0192\u00ca\2\u0775\u0758\3\2\2\2\u0775\u0759"+ - "\3\2\2\2\u0775\u0764\3\2\2\2\u0775\u0767\3\2\2\2\u0775\u0768\3\2\2\2\u0775"+ - "\u076c\3\2\2\2\u0775\u0770\3\2\2\2\u0775\u0771\3\2\2\2\u0775\u0772\3\2"+ - "\2\2\u0775\u0773\3\2\2\2\u0775\u0774\3\2\2\2\u0776\u0165\3\2\2\2\u0777"+ - "\u0778\3\2\2\2\u0778\u0167\3\2\2\2\u0779\u0796\5\2\2\2\u077a\u077f\58"+ - "\35\2\u077b\u077c\7?\2\2\u077c\u077e\7@\2\2\u077d\u077b\3\2\2\2\u077e"+ - "\u0781\3\2\2\2\u077f\u077d\3\2\2\2\u077f\u0780\3\2\2\2\u0780\u0782\3\2"+ - "\2\2\u0781\u077f\3\2\2\2\u0782\u0783\7C\2\2\u0783\u0784\7\13\2\2\u0784"+ - "\u0796\3\2\2\2\u0785\u0786\7\62\2\2\u0786\u0787\7C\2\2\u0787\u0796\7\13"+ - "\2\2\u0788\u0796\7-\2\2\u0789\u078a\58\35\2\u078a\u078b\7C\2\2\u078b\u078c"+ - "\7-\2\2\u078c\u0796\3\2\2\2\u078d\u078e\7;\2\2\u078e\u078f\5\u01a0\u00d1"+ - "\2\u078f\u0790\7<\2\2\u0790\u0796\3\2\2\2\u0791\u0796\5\u0176\u00bc\2"+ - "\u0792\u0796\5\u017e\u00c0\2\u0793\u0796\5\u018a\u00c6\2\u0794\u0796\5"+ - "\u0192\u00ca\2\u0795\u0779\3\2\2\2\u0795\u077a\3\2\2\2\u0795\u0785\3\2"+ - "\2\2\u0795\u0788\3\2\2\2\u0795\u0789\3\2\2\2\u0795\u078d\3\2\2\2\u0795"+ - "\u0791\3\2\2\2\u0795\u0792\3\2\2\2\u0795\u0793\3\2\2\2\u0795\u0794\3\2"+ - "\2\2\u0796\u0169\3\2\2\2\u0797\u079d\5\u0178\u00bd\2\u0798\u079d\5\u0180"+ - "\u00c1\2\u0799\u079d\5\u0186\u00c4\2\u079a\u079d\5\u018c\u00c7\2\u079b"+ - "\u079d\5\u0194\u00cb\2\u079c\u0797\3\2\2\2\u079c\u0798\3\2\2\2\u079c\u0799"+ - "\3\2\2\2\u079c\u079a\3\2\2\2\u079c\u079b\3\2\2\2\u079d\u016b\3\2\2\2\u079e"+ - "\u079f\3\2\2\2\u079f\u016d\3\2\2\2\u07a0\u07a5\5\u0178\u00bd\2\u07a1\u07a5"+ - "\5\u0180\u00c1\2\u07a2\u07a5\5\u018c\u00c7\2\u07a3\u07a5\5\u0194\u00cb"+ - "\2\u07a4\u07a0\3\2\2\2\u07a4\u07a1\3\2\2\2\u07a4\u07a2\3\2\2\2\u07a4\u07a3"+ - "\3\2\2\2\u07a5\u016f\3\2\2\2\u07a6\u07cf\5\2\2\2\u07a7\u07ac\58\35\2\u07a8"+ - "\u07a9\7?\2\2\u07a9\u07ab\7@\2\2\u07aa\u07a8\3\2\2\2\u07ab\u07ae\3\2\2"+ - "\2\u07ac\u07aa\3\2\2\2\u07ac\u07ad\3\2\2\2\u07ad\u07af\3\2\2\2\u07ae\u07ac"+ - "\3\2\2\2\u07af\u07b0\7C\2\2\u07b0\u07b1\7\13\2\2\u07b1\u07cf\3\2\2\2\u07b2"+ - "\u07b7\5x=\2\u07b3\u07b4\7?\2\2\u07b4\u07b6\7@\2\2\u07b5\u07b3\3\2\2\2"+ - "\u07b6\u07b9\3\2\2\2\u07b7\u07b5\3\2\2\2\u07b7\u07b8\3\2\2\2\u07b8\u07ba"+ - "\3\2\2\2\u07b9\u07b7\3\2\2\2\u07ba\u07bb\7C\2\2\u07bb\u07bc\7\13\2\2\u07bc"+ - "\u07cf\3\2\2\2\u07bd\u07be\7\62\2\2\u07be\u07bf\7C\2\2\u07bf\u07cf\7\13"+ - "\2\2\u07c0\u07cf\7-\2\2\u07c1\u07c2\58\35\2\u07c2\u07c3\7C\2\2\u07c3\u07c4"+ - "\7-\2\2\u07c4\u07cf\3\2\2\2\u07c5\u07c6\7;\2\2\u07c6\u07c7\5\u01a0\u00d1"+ - "\2\u07c7\u07c8\7<\2\2\u07c8\u07cf\3\2\2\2\u07c9\u07cf\5\u017a\u00be\2"+ - "\u07ca\u07cf\5\u0182\u00c2\2\u07cb\u07cf\5\u0188\u00c5\2\u07cc\u07cf\5"+ - "\u018e\u00c8\2\u07cd\u07cf\5\u0196\u00cc\2\u07ce\u07a6\3\2\2\2\u07ce\u07a7"+ - "\3\2\2\2\u07ce\u07b2\3\2\2\2\u07ce\u07bd\3\2\2\2\u07ce\u07c0\3\2\2\2\u07ce"+ - "\u07c1\3\2\2\2\u07ce\u07c5\3\2\2\2\u07ce\u07c9\3\2\2\2\u07ce\u07ca\3\2"+ - "\2\2\u07ce\u07cb\3\2\2\2\u07ce\u07cc\3\2\2\2\u07ce\u07cd\3\2\2\2\u07cf"+ - "\u0171\3\2\2\2\u07d0\u07d1\3\2\2\2\u07d1\u0173\3\2\2\2\u07d2\u07fa\5\2"+ - "\2\2\u07d3\u07d8\58\35\2\u07d4\u07d5\7?\2\2\u07d5\u07d7\7@\2\2\u07d6\u07d4"+ - "\3\2\2\2\u07d7\u07da\3\2\2\2\u07d8\u07d6\3\2\2\2\u07d8\u07d9\3\2\2\2\u07d9"+ - "\u07db\3\2\2\2\u07da\u07d8\3\2\2\2\u07db\u07dc\7C\2\2\u07dc\u07dd\7\13"+ - "\2\2\u07dd\u07fa\3\2\2\2\u07de\u07e3\5x=\2\u07df\u07e0\7?\2\2\u07e0\u07e2"+ - "\7@\2\2\u07e1\u07df\3\2\2\2\u07e2\u07e5\3\2\2\2\u07e3\u07e1\3\2\2\2\u07e3"+ - "\u07e4\3\2\2\2\u07e4\u07e6\3\2\2\2\u07e5\u07e3\3\2\2\2\u07e6\u07e7\7C"+ - "\2\2\u07e7\u07e8\7\13\2\2\u07e8\u07fa\3\2\2\2\u07e9\u07ea\7\62\2\2\u07ea"+ - "\u07eb\7C\2\2\u07eb\u07fa\7\13\2\2\u07ec\u07fa\7-\2\2\u07ed\u07ee\58\35"+ - "\2\u07ee\u07ef\7C\2\2\u07ef\u07f0\7-\2\2\u07f0\u07fa\3\2\2\2\u07f1\u07f2"+ - "\7;\2\2\u07f2\u07f3\5\u01a0\u00d1\2\u07f3\u07f4\7<\2\2\u07f4\u07fa\3\2"+ - "\2\2\u07f5\u07fa\5\u017a\u00be\2\u07f6\u07fa\5\u0182\u00c2\2\u07f7\u07fa"+ - "\5\u018e\u00c8\2\u07f8\u07fa\5\u0196\u00cc\2\u07f9\u07d2\3\2\2\2\u07f9"+ - "\u07d3\3\2\2\2\u07f9\u07de\3\2\2\2\u07f9\u07e9\3\2\2\2\u07f9\u07ec\3\2"+ - "\2\2\u07f9\u07ed\3\2\2\2\u07f9\u07f1\3\2\2\2\u07f9\u07f5\3\2\2\2\u07f9"+ - "\u07f6\3\2\2\2\u07f9\u07f7\3\2\2\2\u07f9\u07f8\3\2\2\2\u07fa\u0175\3\2"+ - "\2\2\u07fb\u07fd\7!\2\2\u07fc\u07fe\5,\27\2\u07fd\u07fc\3\2\2\2\u07fd"+ - "\u07fe\3\2\2\2\u07fe\u0802\3\2\2\2\u07ff\u0801\5\u00e8u\2\u0800\u07ff"+ - "\3\2\2\2\u0801\u0804\3\2\2\2\u0802\u0800\3\2\2\2\u0802\u0803\3\2\2\2\u0803"+ - "\u0805\3\2\2\2\u0804\u0802\3\2\2\2\u0805\u0810\7h\2\2\u0806\u080a\7C\2"+ - "\2\u0807\u0809\5\u00e8u\2\u0808\u0807\3\2\2\2\u0809\u080c\3\2\2\2\u080a"+ - "\u0808\3\2\2\2\u080a\u080b\3\2\2\2\u080b\u080d\3\2\2\2\u080c\u080a\3\2"+ - "\2\2\u080d\u080f\7h\2\2\u080e\u0806\3\2\2\2\u080f\u0812\3\2\2\2\u0810"+ - "\u080e\3\2\2\2\u0810\u0811\3\2\2\2\u0811\u0814\3\2\2\2\u0812\u0810\3\2"+ - "\2\2\u0813\u0815\5\u017c\u00bf\2\u0814\u0813\3\2\2\2\u0814\u0815\3\2\2"+ - "\2\u0815\u0816\3\2\2\2\u0816\u0818\7;\2\2\u0817\u0819\5\u0190\u00c9\2"+ - "\u0818\u0817\3\2\2\2\u0818\u0819\3\2\2\2\u0819\u081a\3\2\2\2\u081a\u081c"+ - "\7<\2\2\u081b\u081d\5d\63\2\u081c\u081b\3\2\2\2\u081c\u081d\3\2\2\2\u081d"+ - "\u084f\3\2\2\2\u081e\u081f\5<\37\2\u081f\u0820\7C\2\2\u0820\u0822\7!\2"+ - "\2\u0821\u0823\5,\27\2\u0822\u0821\3\2\2\2\u0822\u0823\3\2\2\2\u0823\u0827"+ - "\3\2\2\2\u0824\u0826\5\u00e8u\2\u0825\u0824\3\2\2\2\u0826\u0829\3\2\2"+ - "\2\u0827\u0825\3\2\2\2\u0827\u0828\3\2\2\2\u0828\u082a\3\2\2\2\u0829\u0827"+ - "\3\2\2\2\u082a\u082c\7h\2\2\u082b\u082d\5\u017c\u00bf\2\u082c\u082b\3"+ - "\2\2\2\u082c\u082d\3\2\2\2\u082d\u082e\3\2\2\2\u082e\u0830\7;\2\2\u082f"+ - "\u0831\5\u0190\u00c9\2\u0830\u082f\3\2\2\2\u0830\u0831\3\2\2\2\u0831\u0832"+ - "\3\2\2\2\u0832\u0834\7<\2\2\u0833\u0835\5d\63\2\u0834\u0833\3\2\2\2\u0834"+ - "\u0835\3\2\2\2\u0835\u084f\3\2\2\2\u0836\u0837\5\u0162\u00b2\2\u0837\u0838"+ - "\7C\2\2\u0838\u083a\7!\2\2\u0839\u083b\5,\27\2\u083a\u0839\3\2\2\2\u083a"+ - "\u083b\3\2\2\2\u083b\u083f\3\2\2\2\u083c\u083e\5\u00e8u\2\u083d\u083c"+ - "\3\2\2\2\u083e\u0841\3\2\2\2\u083f\u083d\3\2\2\2\u083f\u0840\3\2\2\2\u0840"+ - "\u0842\3\2\2\2\u0841\u083f\3\2\2\2\u0842\u0844\7h\2\2\u0843\u0845\5\u017c"+ - "\u00bf\2\u0844\u0843\3\2\2\2\u0844\u0845\3\2\2\2\u0845\u0846\3\2\2\2\u0846"+ - "\u0848\7;\2\2\u0847\u0849\5\u0190\u00c9\2\u0848\u0847\3\2\2\2\u0848\u0849"+ - "\3\2\2\2\u0849\u084a\3\2\2\2\u084a\u084c\7<\2\2\u084b\u084d\5d\63\2\u084c"+ - "\u084b\3\2\2\2\u084c\u084d\3\2\2\2\u084d\u084f\3\2\2\2\u084e\u07fb\3\2"+ - "\2\2\u084e\u081e\3\2\2\2\u084e\u0836\3\2\2\2\u084f\u0177\3\2\2\2\u0850"+ - "\u0851\7C\2\2\u0851\u0853\7!\2\2\u0852\u0854\5,\27\2\u0853\u0852\3\2\2"+ - "\2\u0853\u0854\3\2\2\2\u0854\u0858\3\2\2\2\u0855\u0857\5\u00e8u\2\u0856"+ - "\u0855\3\2\2\2\u0857\u085a\3\2\2\2\u0858\u0856\3\2\2\2\u0858\u0859\3\2"+ - "\2\2\u0859\u085b\3\2\2\2\u085a\u0858\3\2\2\2\u085b\u085d\7h\2\2\u085c"+ - "\u085e\5\u017c\u00bf\2\u085d\u085c\3\2\2\2\u085d\u085e\3\2\2\2\u085e\u085f"+ - "\3\2\2\2\u085f\u0861\7;\2\2\u0860\u0862\5\u0190\u00c9\2\u0861\u0860\3"+ - "\2\2\2\u0861\u0862\3\2\2\2\u0862\u0863\3\2\2\2\u0863\u0865\7<\2\2\u0864"+ - "\u0866\5d\63\2\u0865\u0864\3\2\2\2\u0865\u0866\3\2\2\2\u0866\u0179\3\2"+ - "\2\2\u0867\u0869\7!\2\2\u0868\u086a\5,\27\2\u0869\u0868\3\2\2\2\u0869"+ - "\u086a\3\2\2\2\u086a\u086e\3\2\2\2\u086b\u086d\5\u00e8u\2\u086c\u086b"+ - "\3\2\2\2\u086d\u0870\3\2\2\2\u086e\u086c\3\2\2\2\u086e\u086f\3\2\2\2\u086f"+ - "\u0871\3\2\2\2\u0870\u086e\3\2\2\2\u0871\u087c\7h\2\2\u0872\u0876\7C\2"+ - "\2\u0873\u0875\5\u00e8u\2\u0874\u0873\3\2\2\2\u0875\u0878\3\2\2\2\u0876"+ - "\u0874\3\2\2\2\u0876\u0877\3\2\2\2\u0877\u0879\3\2\2\2\u0878\u0876\3\2"+ - "\2\2\u0879\u087b\7h\2\2\u087a\u0872\3\2\2\2\u087b\u087e\3\2\2\2\u087c"+ - "\u087a\3\2\2\2\u087c\u087d\3\2\2\2\u087d\u0880\3\2\2\2\u087e\u087c\3\2"+ - "\2\2\u087f\u0881\5\u017c\u00bf\2\u0880\u087f\3\2\2\2\u0880\u0881\3\2\2"+ - "\2\u0881\u0882\3\2\2\2\u0882\u0884\7;\2\2\u0883\u0885\5\u0190\u00c9\2"+ - "\u0884\u0883\3\2\2\2\u0884\u0885\3\2\2\2\u0885\u0886\3\2\2\2\u0886\u0888"+ - "\7<\2\2\u0887\u0889\5d\63\2\u0888\u0887\3\2\2\2\u0888\u0889\3\2\2\2\u0889"+ - "\u08a3\3\2\2\2\u088a\u088b\5<\37\2\u088b\u088c\7C\2\2\u088c\u088e\7!\2"+ - "\2\u088d\u088f\5,\27\2\u088e\u088d\3\2\2\2\u088e\u088f\3\2\2\2\u088f\u0893"+ - "\3\2\2\2\u0890\u0892\5\u00e8u\2\u0891\u0890\3\2\2\2\u0892\u0895\3\2\2"+ - "\2\u0893\u0891\3\2\2\2\u0893\u0894\3\2\2\2\u0894\u0896\3\2\2\2\u0895\u0893"+ - "\3\2\2\2\u0896\u0898\7h\2\2\u0897\u0899\5\u017c\u00bf\2\u0898\u0897\3"+ - "\2\2\2\u0898\u0899\3\2\2\2\u0899\u089a\3\2\2\2\u089a\u089c\7;\2\2\u089b"+ - "\u089d\5\u0190\u00c9\2\u089c\u089b\3\2\2\2\u089c\u089d\3\2\2\2\u089d\u089e"+ - "\3\2\2\2\u089e\u08a0\7<\2\2\u089f\u08a1\5d\63\2\u08a0\u089f\3\2\2\2\u08a0"+ - "\u08a1\3\2\2\2\u08a1\u08a3\3\2\2\2\u08a2\u0867\3\2\2\2\u08a2\u088a\3\2"+ - "\2\2\u08a3\u017b\3\2\2\2\u08a4\u08a8\5,\27\2\u08a5\u08a6\7F\2\2\u08a6"+ - "\u08a8\7E\2\2\u08a7\u08a4\3\2\2\2\u08a7\u08a5\3\2\2\2\u08a8\u017d\3\2"+ - "\2\2\u08a9\u08aa\5\u0162\u00b2\2\u08aa\u08ab\7C\2\2\u08ab\u08ac\7h\2\2"+ - "\u08ac\u08b7\3\2\2\2\u08ad\u08ae\7*\2\2\u08ae\u08af\7C\2\2\u08af\u08b7"+ - "\7h\2\2\u08b0\u08b1\58\35\2\u08b1\u08b2\7C\2\2\u08b2\u08b3\7*\2\2\u08b3"+ - "\u08b4\7C\2\2\u08b4\u08b5\7h\2\2\u08b5\u08b7\3\2\2\2\u08b6\u08a9\3\2\2"+ - "\2\u08b6\u08ad\3\2\2\2\u08b6\u08b0\3\2\2\2\u08b7\u017f\3\2\2\2\u08b8\u08b9"+ - "\7C\2\2\u08b9\u08ba\7h\2\2\u08ba\u0181\3\2\2\2\u08bb\u08bc\7*\2\2\u08bc"+ - "\u08bd\7C\2\2\u08bd\u08c5\7h\2\2\u08be\u08bf\58\35\2\u08bf\u08c0\7C\2"+ - "\2\u08c0\u08c1\7*\2\2\u08c1\u08c2\7C\2\2\u08c2\u08c3\7h\2\2\u08c3\u08c5"+ - "\3\2\2\2\u08c4\u08bb\3\2\2\2\u08c4\u08be\3\2\2\2\u08c5\u0183\3\2\2\2\u08c6"+ - "\u08c7\5<\37\2\u08c7\u08c8\7?\2\2\u08c8\u08c9\5\u01a0\u00d1\2\u08c9\u08ca"+ - "\7@\2\2\u08ca\u08d1\3\2\2\2\u08cb\u08cc\5\u0168\u00b5\2\u08cc\u08cd\7"+ - "?\2\2\u08cd\u08ce\5\u01a0\u00d1\2\u08ce\u08cf\7@\2\2\u08cf\u08d1\3\2\2"+ - "\2\u08d0\u08c6\3\2\2\2\u08d0\u08cb\3\2\2\2\u08d1\u08d9\3\2\2\2\u08d2\u08d3"+ - "\5\u0166\u00b4\2\u08d3\u08d4\7?\2\2\u08d4\u08d5\5\u01a0\u00d1\2\u08d5"+ - "\u08d6\7@\2\2\u08d6\u08d8\3\2\2\2\u08d7\u08d2\3\2\2\2\u08d8\u08db\3\2"+ - "\2\2\u08d9\u08d7\3\2\2\2\u08d9\u08da\3\2\2\2\u08da\u0185\3\2\2\2\u08db"+ - "\u08d9\3\2\2\2\u08dc\u08dd\5\u016e\u00b8\2\u08dd\u08de\7?\2\2\u08de\u08df"+ - "\5\u01a0\u00d1\2\u08df\u08e0\7@\2\2\u08e0\u08e8\3\2\2\2\u08e1\u08e2\5"+ - "\u016c\u00b7\2\u08e2\u08e3\7?\2\2\u08e3\u08e4\5\u01a0\u00d1\2\u08e4\u08e5"+ - "\7@\2\2\u08e5\u08e7\3\2\2\2\u08e6\u08e1\3\2\2\2\u08e7\u08ea\3\2\2\2\u08e8"+ - "\u08e6\3\2\2\2\u08e8\u08e9\3\2\2\2\u08e9\u0187\3\2\2\2\u08ea\u08e8\3\2"+ - "\2\2\u08eb\u08ec\5<\37\2\u08ec\u08ed\7?\2\2\u08ed\u08ee\5\u01a0\u00d1"+ - "\2\u08ee\u08ef\7@\2\2\u08ef\u08f6\3\2\2\2\u08f0\u08f1\5\u0174\u00bb\2"+ - "\u08f1\u08f2\7?\2\2\u08f2\u08f3\5\u01a0\u00d1\2\u08f3\u08f4\7@\2\2\u08f4"+ - "\u08f6\3\2\2\2\u08f5\u08eb\3\2\2\2\u08f5\u08f0\3\2\2\2\u08f6\u08fe\3\2"+ - "\2\2\u08f7\u08f8\5\u0172\u00ba\2\u08f8\u08f9\7?\2\2\u08f9\u08fa\5\u01a0"+ - "\u00d1\2\u08fa\u08fb\7@\2\2\u08fb\u08fd\3\2\2\2\u08fc\u08f7\3\2\2\2\u08fd"+ - "\u0900\3\2\2\2\u08fe\u08fc\3\2\2\2\u08fe\u08ff\3\2\2\2\u08ff\u0189\3\2"+ - "\2\2\u0900\u08fe\3\2\2\2\u0901\u0902\5> \2\u0902\u0904\7;\2\2\u0903\u0905"+ - "\5\u0190\u00c9\2\u0904\u0903\3\2\2\2\u0904\u0905\3\2\2\2\u0905\u0906\3"+ - "\2\2\2\u0906\u0907\7<\2\2\u0907\u0946\3\2\2\2\u0908\u0909\58\35\2\u0909"+ - "\u090b\7C\2\2\u090a\u090c\5,\27\2\u090b\u090a\3\2\2\2\u090b\u090c\3\2"+ - "\2\2\u090c\u090d\3\2\2\2\u090d\u090e\7h\2\2\u090e\u0910\7;\2\2\u090f\u0911"+ - "\5\u0190\u00c9\2\u0910\u090f\3\2\2\2\u0910\u0911\3\2\2\2\u0911\u0912\3"+ - "\2\2\2\u0912\u0913\7<\2\2\u0913\u0946\3\2\2\2\u0914\u0915\5<\37\2\u0915"+ - "\u0917\7C\2\2\u0916\u0918\5,\27\2\u0917\u0916\3\2\2\2\u0917\u0918\3\2"+ - "\2\2\u0918\u0919\3\2\2\2\u0919\u091a\7h\2\2\u091a\u091c\7;\2\2\u091b\u091d"+ - "\5\u0190\u00c9\2\u091c\u091b\3\2\2\2\u091c\u091d\3\2\2\2\u091d\u091e\3"+ - "\2\2\2\u091e\u091f\7<\2\2\u091f\u0946\3\2\2\2\u0920\u0921\5\u0162\u00b2"+ - "\2\u0921\u0923\7C\2\2\u0922\u0924\5,\27\2\u0923\u0922\3\2\2\2\u0923\u0924"+ - "\3\2\2\2\u0924\u0925\3\2\2\2\u0925\u0926\7h\2\2\u0926\u0928\7;\2\2\u0927"+ - "\u0929\5\u0190\u00c9\2\u0928\u0927\3\2\2\2\u0928\u0929\3\2\2\2\u0929\u092a"+ - "\3\2\2\2\u092a\u092b\7<\2\2\u092b\u0946\3\2\2\2\u092c\u092d\7*\2\2\u092d"+ - "\u092f\7C\2\2\u092e\u0930\5,\27\2\u092f\u092e\3\2\2\2\u092f\u0930\3\2"+ - "\2\2\u0930\u0931\3\2\2\2\u0931\u0932\7h\2\2\u0932\u0934\7;\2\2\u0933\u0935"+ - "\5\u0190\u00c9\2\u0934\u0933\3\2\2\2\u0934\u0935\3\2\2\2\u0935\u0936\3"+ - "\2\2\2\u0936\u0946\7<\2\2\u0937\u0938\58\35\2\u0938\u0939\7C\2\2\u0939"+ - "\u093a\7*\2\2\u093a\u093c\7C\2\2\u093b\u093d\5,\27\2\u093c\u093b\3\2\2"+ - "\2\u093c\u093d\3\2\2\2\u093d\u093e\3\2\2\2\u093e\u093f\7h\2\2\u093f\u0941"+ - "\7;\2\2\u0940\u0942\5\u0190\u00c9\2\u0941\u0940\3\2\2\2\u0941\u0942\3"+ - "\2\2\2\u0942\u0943\3\2\2\2\u0943\u0944\7<\2\2\u0944\u0946\3\2\2\2\u0945"+ - "\u0901\3\2\2\2\u0945\u0908\3\2\2\2\u0945\u0914\3\2\2\2\u0945\u0920\3\2"+ - "\2\2\u0945\u092c\3\2\2\2\u0945\u0937\3\2\2\2\u0946\u018b\3\2\2\2\u0947"+ - "\u0949\7C\2\2\u0948\u094a\5,\27\2\u0949\u0948\3\2\2\2\u0949\u094a\3\2"+ - "\2\2\u094a\u094b\3\2\2\2\u094b\u094c\7h\2\2\u094c\u094e\7;\2\2\u094d\u094f"+ - "\5\u0190\u00c9\2\u094e\u094d\3\2\2\2\u094e\u094f\3\2\2\2\u094f\u0950\3"+ - "\2\2\2\u0950\u0951\7<\2\2\u0951\u018d\3\2\2\2\u0952\u0953\5> \2\u0953"+ - "\u0955\7;\2\2\u0954\u0956\5\u0190\u00c9\2\u0955\u0954\3\2\2\2\u0955\u0956"+ - "\3\2\2\2\u0956\u0957\3\2\2\2\u0957\u0958\7<\2\2\u0958\u098b\3\2\2\2\u0959"+ - "\u095a\58\35\2\u095a\u095c\7C\2\2\u095b\u095d\5,\27\2\u095c\u095b\3\2"+ - "\2\2\u095c\u095d\3\2\2\2\u095d\u095e\3\2\2\2\u095e\u095f\7h\2\2\u095f"+ - "\u0961\7;\2\2\u0960\u0962\5\u0190\u00c9\2\u0961\u0960\3\2\2\2\u0961\u0962"+ - "\3\2\2\2\u0962\u0963\3\2\2\2\u0963\u0964\7<\2\2\u0964\u098b\3\2\2\2\u0965"+ - "\u0966\5<\37\2\u0966\u0968\7C\2\2\u0967\u0969\5,\27\2\u0968"; + "\u0360\5h\65\2\u035d\u0360\5\u00acW\2\u035e\u0360\5\u00aeX\2\u035f\u035c"+ + "\3\2\2\2\u035f\u035d\3\2\2\2\u035f\u035e\3\2\2\2\u0360g\3\2\2\2\u0361"+ + "\u0367\5j\66\2\u0362\u0367\5\u008eH\2\u0363\u0367\5T+\2\u0364\u0367\5"+ + "\u00c8e\2\u0365\u0367\7A\2\2\u0366\u0361\3\2\2\2\u0366\u0362\3\2\2\2\u0366"+ + "\u0363\3\2\2\2\u0366\u0364\3\2\2\2\u0366\u0365\3\2\2\2\u0367i\3\2\2\2"+ + "\u0368\u036a\5l\67\2\u0369\u0368\3\2\2\2\u036a\u036d\3\2\2\2\u036b\u0369"+ + "\3\2\2\2\u036b\u036c\3\2\2\2\u036c\u036f\3\2\2\2\u036d\u036b\3\2\2\2\u036e"+ + "\u0370\5v<\2\u036f\u036e\3\2\2\2\u036f\u0370\3\2\2\2\u0370\u0371\3\2\2"+ + "\2\u0371\u0372\5n8\2\u0372\u0373\7A\2\2\u0373k\3\2\2\2\u0374\u037d\5\u00e8"+ + "u\2\u0375\u037d\7%\2\2\u0376\u037d\7$\2\2\u0377\u037d\7#\2\2\u0378\u037d"+ + "\7(\2\2\u0379\u037d\7\24\2\2\u037a\u037d\7\60\2\2\u037b\u037d\7\63\2\2"+ + "\u037c\u0374\3\2\2\2\u037c\u0375\3\2\2\2\u037c\u0376\3\2\2\2\u037c\u0377"+ + "\3\2\2\2\u037c\u0378\3\2\2\2\u037c\u0379\3\2\2\2\u037c\u037a\3\2\2\2\u037c"+ + "\u037b\3\2\2\2\u037dm\3\2\2\2\u037e\u0383\5p9\2\u037f\u0380\7B\2\2\u0380"+ + "\u0382\5p9\2\u0381\u037f\3\2\2\2\u0382\u0385\3\2\2\2\u0383\u0381\3\2\2"+ + "\2\u0383\u0384\3\2\2\2\u0384o\3\2\2\2\u0385\u0383\3\2\2\2\u0386\u0389"+ + "\5r:\2\u0387\u0388\7D\2\2\u0388\u038a\5t;\2\u0389\u0387\3\2\2\2\u0389"+ + "\u038a\3\2\2\2\u038aq\3\2\2\2\u038b\u038d\7h\2\2\u038c\u038e\5\"\22\2"+ + "\u038d\u038c\3\2\2\2\u038d\u038e\3\2\2\2\u038es\3\2\2\2\u038f\u0392\5"+ + "\u01a0\u00d1\2\u0390\u0392\5\u00fa~\2\u0391\u038f\3\2\2\2\u0391\u0390"+ + "\3\2\2\2\u0392u\3\2\2\2\u0393\u0396\5x=\2\u0394\u0396\5z>\2\u0395\u0393"+ + "\3\2\2\2\u0395\u0394\3\2\2\2\u0396w\3\2\2\2\u0397\u039a\5\b\5\2\u0398"+ + "\u039a\7\5\2\2\u0399\u0397\3\2\2\2\u0399\u0398\3\2\2\2\u039ay\3\2\2\2"+ + "\u039b\u039f\5|?\2\u039c\u039f\5\u008aF\2\u039d\u039f\5\u008cG\2\u039e"+ + "\u039b\3\2\2\2\u039e\u039c\3\2\2\2\u039e\u039d\3\2\2\2\u039f{\3\2\2\2"+ + "\u03a0\u03a3\5\u0082B\2\u03a1\u03a3\5\u0088E\2\u03a2\u03a0\3\2\2\2\u03a2"+ + "\u03a1\3\2\2\2\u03a3\u03a8\3\2\2\2\u03a4\u03a7\5\u0080A\2\u03a5\u03a7"+ + "\5\u0086D\2\u03a6\u03a4\3\2\2\2\u03a6\u03a5\3\2\2\2\u03a7\u03aa\3\2\2"+ + "\2\u03a8\u03a6\3\2\2\2\u03a8\u03a9\3\2\2\2\u03a9}\3\2\2\2\u03aa\u03a8"+ + "\3\2\2\2\u03ab\u03ad\7h\2\2\u03ac\u03ae\5,\27\2\u03ad\u03ac\3\2\2\2\u03ad"+ + "\u03ae\3\2\2\2\u03ae\u03bc\3\2\2\2\u03af\u03b0\5|?\2\u03b0\u03b4\7C\2"+ + "\2\u03b1\u03b3\5\u00e8u\2\u03b2\u03b1\3\2\2\2\u03b3\u03b6\3\2\2\2\u03b4"+ + "\u03b2\3\2\2\2\u03b4\u03b5\3\2\2\2\u03b5\u03b7\3\2\2\2\u03b6\u03b4\3\2"+ + "\2\2\u03b7\u03b9\7h\2\2\u03b8\u03ba\5,\27\2\u03b9\u03b8\3\2\2\2\u03b9"+ + "\u03ba\3\2\2\2\u03ba\u03bc\3\2\2\2\u03bb\u03ab\3\2\2\2\u03bb\u03af\3\2"+ + "\2\2\u03bc\177\3\2\2\2\u03bd\u03c1\7C\2\2\u03be\u03c0\5\u00e8u\2\u03bf"+ + "\u03be\3\2\2\2\u03c0\u03c3\3\2\2\2\u03c1\u03bf\3\2\2\2\u03c1\u03c2\3\2"+ + "\2\2\u03c2\u03c4\3\2\2\2\u03c3\u03c1\3\2\2\2\u03c4\u03c6\7h\2\2\u03c5"+ + "\u03c7\5,\27\2\u03c6\u03c5\3\2\2\2\u03c6\u03c7\3\2\2\2\u03c7\u0081\3\2"+ + "\2\2\u03c8\u03ca\7h\2\2\u03c9\u03cb\5,\27\2\u03ca\u03c9\3\2\2\2\u03ca"+ + "\u03cb\3\2\2\2\u03cb\u0083\3\2\2\2\u03cc\u03cd\5~@\2\u03cd\u0085\3\2\2"+ + "\2\u03ce\u03cf\5\u0080A\2\u03cf\u0087\3\2\2\2\u03d0\u03d1\5\u0082B\2\u03d1"+ + "\u0089\3\2\2\2\u03d2\u03d3\7h\2\2\u03d3\u008b\3\2\2\2\u03d4\u03d5\5x="+ + "\2\u03d5\u03d6\5\"\22\2\u03d6\u03de\3\2\2\2\u03d7\u03d8\5|?\2\u03d8\u03d9"+ + "\5\"\22\2\u03d9\u03de\3\2\2\2\u03da\u03db\5\u008aF\2\u03db\u03dc\5\"\22"+ + "\2\u03dc\u03de\3\2\2\2\u03dd\u03d4\3\2\2\2\u03dd\u03d7\3\2\2\2\u03dd\u03da"+ + "\3\2\2\2\u03de\u008d\3\2\2\2\u03df\u03e1\5\u0090I\2\u03e0\u03df\3\2\2"+ + "\2\u03e1\u03e4\3\2\2\2\u03e2\u03e0\3\2\2\2\u03e2\u03e3\3\2\2\2\u03e3\u03e5"+ + "\3\2\2\2\u03e4\u03e2\3\2\2\2\u03e5\u03e6\5\u0092J\2\u03e6\u03e7\5\u00aa"+ + "V\2\u03e7\u008f\3\2\2\2\u03e8\u03f3\5\u00e8u\2\u03e9\u03f3\7%\2\2\u03ea"+ + "\u03f3\7$\2\2\u03eb\u03f3\7#\2\2\u03ec\u03f3\7\3\2\2\u03ed\u03f3\7(\2"+ + "\2\u03ee\u03f3\7\24\2\2\u03ef\u03f3\7,\2\2\u03f0\u03f3\7 \2\2\u03f1\u03f3"+ + "\7)\2\2\u03f2\u03e8\3\2\2\2\u03f2\u03e9\3\2\2\2\u03f2\u03ea\3\2\2\2\u03f2"+ + "\u03eb\3\2\2\2\u03f2\u03ec\3\2\2\2\u03f2\u03ed\3\2\2\2\u03f2\u03ee\3\2"+ + "\2\2\u03f2\u03ef\3\2\2\2\u03f2\u03f0\3\2\2\2\u03f2\u03f1\3\2\2\2\u03f3"+ + "\u0091\3\2\2\2\u03f4\u03f6\5\u0094K\2\u03f5\u03f4\3\2\2\2\u03f5\u03f6"+ + "\3\2\2\2\u03f6\u03f7\3\2\2\2\u03f7\u03f9\5\u0096L\2\u03f8\u03fa\5\u00a4"+ + "S\2\u03f9\u03f8\3\2\2\2\u03f9\u03fa\3\2\2\2\u03fa\u040a\3\2\2\2\u03fb"+ + "\u03ff\5Z.\2\u03fc\u03fe\5\u00e8u\2\u03fd\u03fc\3\2\2\2\u03fe\u0401\3"+ + "\2\2\2\u03ff\u03fd\3\2\2\2\u03ff\u0400\3\2\2\2\u0400\u0403\3\2\2\2\u0401"+ + "\u03ff\3\2\2\2\u0402\u0404\5\u0094K\2\u0403\u0402\3\2\2\2\u0403\u0404"+ + "\3\2\2\2\u0404\u0405\3\2\2\2\u0405\u0407\5\u0096L\2\u0406\u0408\5\u00a4"+ + "S\2\u0407\u0406\3\2\2\2\u0407\u0408\3\2\2\2\u0408\u040a\3\2\2\2\u0409"+ + "\u03f5\3\2\2\2\u0409\u03fb\3\2\2\2\u040a\u0093\3\2\2\2\u040b\u040e\5v"+ + "<\2\u040c\u040e\7\62\2\2\u040d\u040b\3\2\2\2\u040d\u040c\3\2\2\2\u040e"+ + "\u0095\3\2\2\2\u040f\u0410\7h\2\2\u0410\u0412\7;\2\2\u0411\u0413\5\u0098"+ + "M\2\u0412\u0411\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u0414\3\2\2\2\u0414"+ + "\u0416\7<\2\2\u0415\u0417\5\"\22\2\u0416\u0415\3\2\2\2\u0416\u0417\3\2"+ + "\2\2\u0417\u0097\3\2\2\2\u0418\u0419\5\u009aN\2\u0419\u041a\7B\2\2\u041a"+ + "\u041b\5\u00a0Q\2\u041b\u041e\3\2\2\2\u041c\u041e\5\u00a0Q\2\u041d\u0418"+ + "\3\2\2\2\u041d\u041c\3\2\2\2\u041e\u0099\3\2\2\2\u041f\u0424\5\u009cO"+ + "\2\u0420\u0421\7B\2\2\u0421\u0423\5\u009cO\2\u0422\u0420\3\2\2\2\u0423"+ + "\u0426\3\2\2\2\u0424\u0422\3\2\2\2\u0424\u0425\3\2\2\2\u0425\u0430\3\2"+ + "\2\2\u0426\u0424\3\2\2\2\u0427\u042c\5\u00a2R\2\u0428\u0429\7B\2\2\u0429"+ + "\u042b\5\u009cO\2\u042a\u0428\3\2\2\2\u042b\u042e\3\2\2\2\u042c\u042a"+ + "\3\2\2\2\u042c\u042d\3\2\2\2\u042d\u0430\3\2\2\2\u042e\u042c\3\2\2\2\u042f"+ + "\u041f\3\2\2\2\u042f\u0427\3\2\2\2\u0430\u009b\3\2\2\2\u0431\u0433\5\u009e"+ + "P\2\u0432\u0431\3\2\2\2\u0433\u0436\3\2\2\2\u0434\u0432\3\2\2\2\u0434"+ + "\u0435\3\2\2\2\u0435\u0438\3\2\2\2\u0436\u0434\3\2\2\2\u0437\u0439\5v"+ + "<\2\u0438\u0437\3\2\2\2\u0438\u0439\3\2\2\2\u0439\u043a\3\2\2\2\u043a"+ + "\u043b\5r:\2\u043b\u009d\3\2\2\2\u043c\u043f\5\u00e8u\2\u043d\u043f\7"+ + "\24\2\2\u043e\u043c\3\2\2\2\u043e\u043d\3\2\2\2\u043f\u009f\3\2\2\2\u0440"+ + "\u0442\5\u009eP\2\u0441\u0440\3\2\2\2\u0442\u0445\3\2\2\2\u0443\u0441"+ + "\3\2\2\2\u0443\u0444\3\2\2\2\u0444\u0446\3\2\2\2\u0445\u0443\3\2\2\2\u0446"+ + "\u044a\5v<\2\u0447\u0449\5\u00e8u\2\u0448\u0447\3\2\2\2\u0449\u044c\3"+ + "\2\2\2\u044a\u0448\3\2\2\2\u044a\u044b\3\2\2\2\u044b\u044d\3\2\2\2\u044c"+ + "\u044a\3\2\2\2\u044d\u044e\7j\2\2\u044e\u044f\5r:\2\u044f\u0452\3\2\2"+ + "\2\u0450\u0452\5\u009cO\2\u0451\u0443\3\2\2\2\u0451\u0450\3\2\2\2\u0452"+ + "\u00a1\3\2\2\2\u0453\u0455\5\u00e8u\2\u0454\u0453\3\2\2\2\u0455\u0458"+ + "\3\2\2\2\u0456\u0454\3\2\2\2\u0456\u0457\3\2\2\2\u0457\u0459\3\2\2\2\u0458"+ + "\u0456\3\2\2\2\u0459\u045c\5v<\2\u045a\u045b\7h\2\2\u045b\u045d\7C\2\2"+ + "\u045c\u045a\3\2\2\2\u045c\u045d\3\2\2\2\u045d\u045e\3\2\2\2\u045e\u045f"+ + "\7-\2\2\u045f\u00a3\3\2\2\2\u0460\u0461\7/\2\2\u0461\u0462\5\u00a6T\2"+ + "\u0462\u00a5\3\2\2\2\u0463\u0468\5\u00a8U\2\u0464\u0465\7B\2\2\u0465\u0467"+ + "\5\u00a8U\2\u0466\u0464\3\2\2\2\u0467\u046a\3\2\2\2\u0468\u0466\3\2\2"+ + "\2\u0468\u0469\3\2\2\2\u0469\u00a7\3\2\2\2\u046a\u0468\3\2\2\2\u046b\u046e"+ + "\5\22\n\2\u046c\u046e\5\36\20\2\u046d\u046b\3\2\2\2\u046d\u046c\3\2\2"+ + "\2\u046e\u00a9\3\2\2\2\u046f\u0472\5\u00fe\u0080\2\u0470\u0472\7A\2\2"+ + "\u0471\u046f\3\2\2\2\u0471\u0470\3\2\2\2\u0472\u00ab\3\2\2\2\u0473\u0474"+ + "\5\u00fe\u0080\2\u0474\u00ad\3\2\2\2\u0475\u0476\7(\2\2\u0476\u0477\5"+ + "\u00fe\u0080\2\u0477\u00af\3\2\2\2\u0478\u047a\5\u00b2Z\2\u0479\u0478"+ + "\3\2\2\2\u047a\u047d\3\2\2\2\u047b\u0479\3\2\2\2\u047b\u047c\3\2\2\2\u047c"+ + "\u047e\3\2\2\2\u047d\u047b\3\2\2\2\u047e\u0480\5\u00b4[\2\u047f\u0481"+ + "\5\u00a4S\2\u0480\u047f\3\2\2\2\u0480\u0481\3\2\2\2\u0481\u0482\3\2\2"+ + "\2\u0482\u0483\5\u00b8]\2\u0483\u00b1\3\2\2\2\u0484\u0489\5\u00e8u\2\u0485"+ + "\u0489\7%\2\2\u0486\u0489\7$\2\2\u0487\u0489\7#\2\2\u0488\u0484\3\2\2"+ + "\2\u0488\u0485\3\2\2\2\u0488\u0486\3\2\2\2\u0488\u0487\3\2\2\2\u0489\u00b3"+ + "\3\2\2\2\u048a\u048c\5Z.\2\u048b\u048a\3\2\2\2\u048b\u048c\3\2\2\2\u048c"+ + "\u048d\3\2\2\2\u048d\u048e\5\u00b6\\\2\u048e\u0490\7;\2\2\u048f\u0491"+ + "\5\u0098M\2\u0490\u048f\3\2\2\2\u0490\u0491\3\2\2\2\u0491\u0492\3\2\2"+ + "\2\u0492\u0493\7<\2\2\u0493\u00b5\3\2\2\2\u0494\u0495\7h\2\2\u0495\u00b7"+ + "\3\2\2\2\u0496\u0498\7=\2\2\u0497\u0499\5\u00ba^\2\u0498\u0497\3\2\2\2"+ + "\u0498\u0499\3\2\2\2\u0499\u049b\3\2\2\2\u049a\u049c\5\u0100\u0081\2\u049b"+ + "\u049a\3\2\2\2\u049b\u049c\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\7>"+ + "\2\2\u049e\u00b9\3\2\2\2\u049f\u04a1\5,\27\2\u04a0\u049f\3\2\2\2\u04a0"+ + "\u04a1\3\2\2\2\u04a1\u04a2\3\2\2\2\u04a2\u04a3\7-\2\2\u04a3\u04a5\7;\2"+ + "\2\u04a4\u04a6\5\u0190\u00c9\2\u04a5\u04a4\3\2\2\2\u04a5\u04a6\3\2\2\2"+ + "\u04a6\u04a7\3\2\2\2\u04a7\u04a8\7<\2\2\u04a8\u04ce\7A\2\2\u04a9\u04ab"+ + "\5,\27\2\u04aa\u04a9\3\2\2\2\u04aa\u04ab\3\2\2\2\u04ab\u04ac\3\2\2\2\u04ac"+ + "\u04ad\7*\2\2\u04ad\u04af\7;\2\2\u04ae\u04b0\5\u0190\u00c9\2\u04af\u04ae"+ + "\3\2\2\2\u04af\u04b0\3\2\2\2\u04b0\u04b1\3\2\2\2\u04b1\u04b2\7<\2\2\u04b2"+ + "\u04ce\7A\2\2\u04b3\u04b4\5<\37\2\u04b4\u04b6\7C\2\2\u04b5\u04b7\5,\27"+ + "\2\u04b6\u04b5\3\2\2\2\u04b6\u04b7\3\2\2\2\u04b7\u04b8\3\2\2\2\u04b8\u04b9"+ + "\7*\2\2\u04b9\u04bb\7;\2\2\u04ba\u04bc\5\u0190\u00c9\2\u04bb\u04ba\3\2"+ + "\2\2\u04bb\u04bc\3\2\2\2\u04bc\u04bd\3\2\2\2\u04bd\u04be\7<\2\2\u04be"+ + "\u04bf\7A\2\2\u04bf\u04ce\3\2\2\2\u04c0\u04c1\5\u0162\u00b2\2\u04c1\u04c3"+ + "\7C\2\2\u04c2\u04c4\5,\27\2\u04c3\u04c2\3\2\2\2\u04c3\u04c4\3\2\2\2\u04c4"+ + "\u04c5\3\2\2\2\u04c5\u04c6\7*\2\2\u04c6\u04c8\7;\2\2\u04c7\u04c9\5\u0190"+ + "\u00c9\2\u04c8\u04c7\3\2\2\2\u04c8\u04c9\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca"+ + "\u04cb\7<\2\2\u04cb\u04cc\7A\2\2\u04cc\u04ce\3\2\2\2\u04cd\u04a0\3\2\2"+ + "\2\u04cd\u04aa\3\2\2\2\u04cd\u04b3\3\2\2\2\u04cd\u04c0\3\2\2\2\u04ce\u00bb"+ + "\3\2\2\2\u04cf\u04d1\5X-\2\u04d0\u04cf\3\2\2\2\u04d1\u04d4\3\2\2\2\u04d2"+ + "\u04d0\3\2\2\2\u04d2\u04d3\3\2\2\2\u04d3\u04d5\3\2\2\2\u04d4\u04d2\3\2"+ + "\2\2\u04d5\u04d6\7\22\2\2\u04d6\u04d8\7h\2\2\u04d7\u04d9\5`\61\2\u04d8"+ + "\u04d7\3\2\2\2\u04d8\u04d9\3\2\2\2\u04d9\u04da\3\2\2\2\u04da\u04db\5\u00be"+ + "`\2\u04db\u00bd\3\2\2\2\u04dc\u04de\7=\2\2\u04dd\u04df\5\u00c0a\2\u04de"+ + "\u04dd\3\2\2\2\u04de\u04df\3\2\2\2\u04df\u04e1\3\2\2\2\u04e0\u04e2\7B"+ + "\2\2\u04e1\u04e0\3\2\2\2\u04e1\u04e2\3\2\2\2\u04e2\u04e4\3\2\2\2\u04e3"+ + "\u04e5\5\u00c6d\2\u04e4\u04e3\3\2\2\2\u04e4\u04e5\3\2\2\2\u04e5\u04e6"+ + "\3\2\2\2\u04e6\u04e7\7>\2\2\u04e7\u00bf\3\2\2\2\u04e8\u04ed\5\u00c2b\2"+ + "\u04e9\u04ea\7B\2\2\u04ea\u04ec\5\u00c2b\2\u04eb\u04e9\3\2\2\2\u04ec\u04ef"+ + "\3\2\2\2\u04ed\u04eb\3\2\2\2\u04ed\u04ee\3\2\2\2\u04ee\u00c1\3\2\2\2\u04ef"+ + "\u04ed\3\2\2\2\u04f0\u04f2\5\u00c4c\2\u04f1\u04f0\3\2\2\2\u04f2\u04f5"+ + "\3\2\2\2\u04f3\u04f1\3\2\2\2\u04f3\u04f4\3\2\2\2\u04f4\u04f6\3\2\2\2\u04f5"+ + "\u04f3\3\2\2\2\u04f6\u04fc\7h\2\2\u04f7\u04f9\7;\2\2\u04f8\u04fa\5\u0190"+ + "\u00c9\2\u04f9\u04f8\3\2\2\2\u04f9\u04fa\3\2\2\2\u04fa\u04fb\3\2\2\2\u04fb"+ + "\u04fd\7<\2\2\u04fc\u04f7\3\2\2\2\u04fc\u04fd\3\2\2\2\u04fd\u04ff\3\2"+ + "\2\2\u04fe\u0500\5d\63\2\u04ff\u04fe\3\2\2\2\u04ff\u0500\3\2\2\2\u0500"+ + "\u00c3\3\2\2\2\u0501\u0502\5\u00e8u\2\u0502\u00c5\3\2\2\2\u0503\u0507"+ + "\7A\2\2\u0504\u0506\5f\64\2\u0505\u0504\3\2\2\2\u0506\u0509\3\2\2\2\u0507"+ + "\u0505\3\2\2\2\u0507\u0508\3\2\2\2\u0508\u00c7\3\2\2\2\u0509\u0507\3\2"+ + "\2\2\u050a\u050d\5\u00caf\2\u050b\u050d\5\u00dco\2\u050c\u050a\3\2\2\2"+ + "\u050c\u050b\3\2\2\2\u050d\u00c9\3\2\2\2\u050e\u0510\5\u00ccg\2\u050f"+ + "\u050e\3\2\2\2\u0510\u0513\3\2\2\2\u0511\u050f\3\2\2\2\u0511\u0512\3\2"+ + "\2\2\u0512\u0514\3\2\2\2\u0513\u0511\3\2\2\2\u0514\u0515\7\36\2\2\u0515"+ + "\u0517\7h\2\2\u0516\u0518\5Z.\2\u0517\u0516\3\2\2\2\u0517\u0518\3\2\2"+ + "\2\u0518\u051a\3\2\2\2\u0519\u051b\5\u00ceh\2\u051a\u0519\3\2\2\2\u051a"+ + "\u051b\3\2\2\2\u051b\u051c\3\2\2\2\u051c\u051d\5\u00d0i\2\u051d\u00cb"+ + "\3\2\2\2\u051e\u0526\5\u00e8u\2\u051f\u0526\7%\2\2\u0520\u0526\7$\2\2"+ + "\u0521\u0526\7#\2\2\u0522\u0526\7\3\2\2\u0523\u0526\7(\2\2\u0524\u0526"+ + "\7)\2\2\u0525\u051e\3\2\2\2\u0525\u051f\3\2\2\2\u0525\u0520\3\2\2\2\u0525"+ + "\u0521\3\2\2\2\u0525\u0522\3\2\2\2\u0525\u0523\3\2\2\2\u0525\u0524\3\2"+ + "\2\2\u0526\u00cd\3\2\2\2\u0527\u0528\7\23\2\2\u0528\u0529\5b\62\2\u0529"+ + "\u00cf\3\2\2\2\u052a\u052e\7=\2\2\u052b\u052d\5\u00d2j\2\u052c\u052b\3"+ + "\2\2\2\u052d\u0530\3\2\2\2\u052e\u052c\3\2\2\2\u052e\u052f\3\2\2\2\u052f"+ + "\u0531\3\2\2\2\u0530\u052e\3\2\2\2\u0531\u0532\7>\2\2\u0532\u00d1\3\2"+ + "\2\2\u0533\u0539\5\u00d4k\2\u0534\u0539\5\u00d8m\2\u0535\u0539\5T+\2\u0536"+ + "\u0539\5\u00c8e\2\u0537\u0539\7A\2\2\u0538\u0533\3\2\2\2\u0538\u0534\3"+ + "\2\2\2\u0538\u0535\3\2\2\2\u0538\u0536\3\2\2\2\u0538\u0537\3\2\2\2\u0539"+ + "\u00d3\3\2\2\2\u053a\u053c\5\u00d6l\2\u053b\u053a\3\2\2\2\u053c\u053f"+ + "\3\2\2\2\u053d\u053b\3\2\2\2\u053d\u053e\3\2\2\2\u053e\u0540\3\2\2\2\u053f"+ + "\u053d\3\2\2\2\u0540\u0541\5v<\2\u0541\u0542\5n8\2\u0542\u0543\7A\2\2"+ + "\u0543\u00d5\3\2\2\2\u0544\u0549\5\u00e8u\2\u0545\u0549\7%\2\2\u0546\u0549"+ + "\7(\2\2\u0547\u0549\7\24\2\2\u0548\u0544\3\2\2\2\u0548\u0545\3\2\2\2\u0548"+ + "\u0546\3\2\2\2\u0548\u0547\3\2\2\2\u0549\u00d7\3\2\2\2\u054a\u054c\5\u00da"+ + "n\2\u054b\u054a\3\2\2\2\u054c\u054f\3\2\2\2\u054d\u054b\3\2\2\2\u054d"+ + "\u054e\3\2\2\2\u054e\u0550\3\2\2\2\u054f\u054d\3\2\2\2\u0550\u0551\5\u0092"+ + "J\2\u0551\u0552\5\u00aaV\2\u0552\u00d9\3\2\2\2\u0553\u055a\5\u00e8u\2"+ + "\u0554\u055a\7%\2\2\u0555\u055a\7\3\2\2\u0556\u055a\7\16\2\2\u0557\u055a"+ + "\7(\2\2\u0558\u055a\7)\2\2\u0559\u0553\3\2\2\2\u0559\u0554\3\2\2\2\u0559"+ + "\u0555\3\2\2\2\u0559\u0556\3\2\2\2\u0559\u0557\3\2\2\2\u0559\u0558\3\2"+ + "\2\2\u055a\u00db\3\2\2\2\u055b\u055d\5\u00ccg\2\u055c\u055b\3\2\2\2\u055d"+ + "\u0560\3\2\2\2\u055e\u055c\3\2\2\2\u055e\u055f\3\2\2\2\u055f\u0561\3\2"+ + "\2\2\u0560\u055e\3\2\2\2\u0561\u0562\7i\2\2\u0562\u0563\7\36\2\2\u0563"+ + "\u0564\7h\2\2\u0564\u0565\5\u00dep\2\u0565\u00dd\3\2\2\2\u0566\u056a\7"+ + "=\2\2\u0567\u0569\5\u00e0q\2\u0568\u0567\3\2\2\2\u0569\u056c\3\2\2\2\u056a"+ + "\u0568\3\2\2\2\u056a\u056b\3\2\2\2\u056b\u056d\3\2\2\2\u056c\u056a\3\2"+ + "\2\2\u056d\u056e\7>\2\2\u056e\u00df\3\2\2\2\u056f\u0575\5\u00e2r\2\u0570"+ + "\u0575\5\u00d4k\2\u0571\u0575\5T+\2\u0572\u0575\5\u00c8e\2\u0573\u0575"+ + "\7A\2\2\u0574\u056f\3\2\2\2\u0574\u0570\3\2\2\2\u0574\u0571\3\2\2\2\u0574"+ + "\u0572\3\2\2\2\u0574\u0573\3\2\2\2\u0575\u00e1\3\2\2\2\u0576\u0578\5\u00e4"+ + "s\2\u0577\u0576\3\2\2\2\u0578\u057b\3\2\2\2\u0579\u0577\3\2\2\2\u0579"+ + "\u057a\3\2\2\2\u057a\u057c\3\2\2\2\u057b\u0579\3\2\2\2\u057c\u057d\5v"+ + "<\2\u057d\u057e\7h\2\2\u057e\u057f\7;\2\2\u057f\u0581\7<\2\2\u0580\u0582"+ + "\5\"\22\2\u0581\u0580\3\2\2\2\u0581\u0582\3\2\2\2\u0582\u0584\3\2\2\2"+ + "\u0583\u0585\5\u00e6t\2\u0584\u0583\3\2\2\2\u0584\u0585\3\2\2\2\u0585"+ + "\u0586\3\2\2\2\u0586\u0587\7A\2\2\u0587\u00e3\3\2\2\2\u0588\u058c\5\u00e8"+ + "u\2\u0589\u058c\7%\2\2\u058a\u058c\7\3\2\2\u058b\u0588\3\2\2\2\u058b\u0589"+ + "\3\2\2\2\u058b\u058a\3\2\2\2\u058c\u00e5\3\2\2\2\u058d\u058e\7\16\2\2"+ + "\u058e\u058f\5\u00f0y\2\u058f\u00e7\3\2\2\2\u0590\u0594\5\u00eav\2\u0591"+ + "\u0594\5\u00f6|\2\u0592\u0594\5\u00f8}\2\u0593\u0590\3\2\2\2\u0593\u0591"+ + "\3\2\2\2\u0593\u0592\3\2\2\2\u0594\u00e9\3\2\2\2\u0595\u0596\7i\2\2\u0596"+ + "\u0597\58\35\2\u0597\u0599\7;\2\2\u0598\u059a\5\u00ecw\2\u0599\u0598\3"+ + "\2\2\2\u0599\u059a\3\2\2\2\u059a\u059b\3\2\2\2\u059b\u059c\7<\2\2\u059c"+ + "\u00eb\3\2\2\2\u059d\u05a2\5\u00eex\2\u059e\u059f\7B\2\2\u059f\u05a1\5"+ + "\u00eex\2\u05a0\u059e\3\2\2\2\u05a1\u05a4\3\2\2\2\u05a2\u05a0\3\2\2\2"+ + "\u05a2\u05a3\3\2\2\2\u05a3\u00ed\3\2\2\2\u05a4\u05a2\3\2\2\2\u05a5\u05a6"+ + "\7h\2\2\u05a6\u05a7\7D\2\2\u05a7\u05a8\5\u00f0y\2\u05a8\u00ef\3\2\2\2"+ + "\u05a9\u05ad\5\u01b2\u00da\2\u05aa\u05ad\5\u00f2z\2\u05ab\u05ad\5\u00e8"+ + "u\2\u05ac\u05a9\3\2\2\2\u05ac\u05aa\3\2\2\2\u05ac\u05ab\3\2\2\2\u05ad"+ + "\u00f1\3\2\2\2\u05ae\u05b0\7=\2\2\u05af\u05b1\5\u00f4{\2\u05b0\u05af\3"+ + "\2\2\2\u05b0\u05b1\3\2\2\2\u05b1\u05b3\3\2\2\2\u05b2\u05b4\7B\2\2\u05b3"+ + "\u05b2\3\2\2\2\u05b3\u05b4\3\2\2\2\u05b4\u05b5\3\2\2\2\u05b5\u05b6\7>"+ + "\2\2\u05b6\u00f3\3\2\2\2\u05b7\u05bc\5\u00f0y\2\u05b8\u05b9\7B\2\2\u05b9"+ + "\u05bb\5\u00f0y\2\u05ba\u05b8\3\2\2\2\u05bb\u05be\3\2\2\2\u05bc\u05ba"+ + "\3\2\2\2\u05bc\u05bd\3\2\2\2\u05bd\u00f5\3\2\2\2\u05be\u05bc\3\2\2\2\u05bf"+ + "\u05c0\7i\2\2\u05c0\u05c1\58\35\2\u05c1\u00f7\3\2\2\2\u05c2\u05c3\7i\2"+ + "\2\u05c3\u05c4\58\35\2\u05c4\u05c5\7;\2\2\u05c5\u05c6\5\u00f0y\2\u05c6"+ + "\u05c7\7<\2\2\u05c7\u00f9\3\2\2\2\u05c8\u05ca\7=\2\2\u05c9\u05cb\5\u00fc"+ + "\177\2\u05ca\u05c9\3\2\2\2\u05ca\u05cb\3\2\2\2\u05cb\u05cd\3\2\2\2\u05cc"+ + "\u05ce\7B\2\2\u05cd\u05cc\3\2\2\2\u05cd\u05ce\3\2\2\2\u05ce\u05cf\3\2"+ + "\2\2\u05cf\u05d0\7>\2\2\u05d0\u00fb\3\2\2\2\u05d1\u05d6\5t;\2\u05d2\u05d3"+ + "\7B\2\2\u05d3\u05d5\5t;\2\u05d4\u05d2\3\2\2\2\u05d5\u05d8\3\2\2\2\u05d6"+ + "\u05d4\3\2\2\2\u05d6\u05d7\3\2\2\2\u05d7\u00fd\3\2\2\2\u05d8\u05d6\3\2"+ + "\2\2\u05d9\u05db\7=\2\2\u05da\u05dc\5\u0100\u0081\2\u05db\u05da\3\2\2"+ + "\2\u05db\u05dc\3\2\2\2\u05dc\u05dd\3\2\2\2\u05dd\u05de\7>\2\2\u05de\u00ff"+ + "\3\2\2\2\u05df\u05e3\5\u0102\u0082\2\u05e0\u05e2\5\u0102\u0082\2\u05e1"+ + "\u05e0\3\2\2\2\u05e2\u05e5\3\2\2\2\u05e3\u05e1\3\2\2\2\u05e3\u05e4\3\2"+ + "\2\2\u05e4\u0101\3\2\2\2\u05e5\u05e3\3\2\2\2\u05e6\u05ea\5\u0104\u0083"+ + "\2\u05e7\u05ea\5T+\2\u05e8\u05ea\5\u0108\u0085\2\u05e9\u05e6\3\2\2\2\u05e9"+ + "\u05e7\3\2\2\2\u05e9\u05e8\3\2\2\2\u05ea\u0103\3\2\2\2\u05eb\u05ec\5\u0106"+ + "\u0084\2\u05ec\u05ed\7A\2\2\u05ed\u0105\3\2\2\2\u05ee\u05f0\5\u009eP\2"+ + "\u05ef\u05ee\3\2\2\2\u05f0\u05f3\3\2\2\2\u05f1\u05ef\3\2\2\2\u05f1\u05f2"+ + "\3\2\2\2\u05f2\u05f4\3\2\2\2\u05f3\u05f1\3\2\2\2\u05f4\u05f5\5v<\2\u05f5"+ + "\u05f6\5n8\2\u05f6\u0107\3\2\2\2\u05f7\u05fe\5\u010c\u0087\2\u05f8\u05fe"+ + "\5\u0110\u0089\2\u05f9\u05fe\5\u0118\u008d\2\u05fa\u05fe\5\u011a\u008e"+ + "\2\u05fb\u05fe\5\u012c\u0097\2\u05fc\u05fe\5\u0132\u009a\2\u05fd\u05f7"+ + "\3\2\2\2\u05fd\u05f8\3\2\2\2\u05fd\u05f9\3\2\2\2\u05fd\u05fa\3\2\2\2\u05fd"+ + "\u05fb\3\2\2\2\u05fd\u05fc\3\2\2\2\u05fe\u0109\3\2\2\2\u05ff\u0605\5\u010c"+ + "\u0087\2\u0600\u0605\5\u0112\u008a\2\u0601\u0605\5\u011c\u008f\2\u0602"+ + "\u0605\5\u012e\u0098\2\u0603\u0605\5\u0134\u009b\2\u0604\u05ff\3\2\2\2"+ + "\u0604\u0600\3\2\2\2\u0604\u0601\3\2\2\2\u0604\u0602\3\2\2\2\u0604\u0603"+ + "\3\2\2\2\u0605\u010b\3\2\2\2\u0606\u0613\5\u00fe\u0080\2\u0607\u0613\5"+ + "\u010e\u0088\2\u0608\u0613\5\u0114\u008b\2\u0609\u0613\5\u011e\u0090\2"+ + "\u060a\u0613\5\u0120\u0091\2\u060b\u0613\5\u0130\u0099\2\u060c\u0613\5"+ + "\u0144\u00a3\2\u060d\u0613\5\u0146\u00a4\2\u060e\u0613\5\u0148\u00a5\2"+ + "\u060f\u0613\5\u014c\u00a7\2\u0610\u0613\5\u014a\u00a6\2\u0611\u0613\5"+ + "\u014e\u00a8\2\u0612\u0606\3\2\2\2\u0612\u0607\3\2\2\2\u0612\u0608\3\2"+ + "\2\2\u0612\u0609\3\2\2\2\u0612\u060a\3\2\2\2\u0612\u060b\3\2\2\2\u0612"+ + "\u060c\3\2\2\2\u0612\u060d\3\2\2\2\u0612\u060e\3\2\2\2\u0612\u060f\3\2"+ + "\2\2\u0612\u0610\3\2\2\2\u0612\u0611\3\2\2\2\u0613\u010d\3\2\2\2\u0614"+ + "\u0615\7A\2\2\u0615\u010f\3\2\2\2\u0616\u0617\7h\2\2\u0617\u0618\7J\2"+ + "\2\u0618\u0619\5\u0108\u0085\2\u0619\u0111\3\2\2\2\u061a\u061b\7h\2\2"+ + "\u061b\u061c\7J\2\2\u061c\u061d\5\u010a\u0086\2\u061d\u0113\3\2\2\2\u061e"+ + "\u061f\5\u0116\u008c\2\u061f\u0620\7A\2\2\u0620\u0115\3\2\2\2\u0621\u0629"+ + "\5\u01ac\u00d7\2\u0622\u0629\5\u01ca\u00e6\2\u0623\u0629\5\u01cc\u00e7"+ + "\2\u0624\u0629\5\u01d2\u00ea\2\u0625\u0629\5\u01d6\u00ec\2\u0626\u0629"+ + "\5\u018a\u00c6\2\u0627\u0629\5\u0176\u00bc\2\u0628\u0621\3\2\2\2\u0628"+ + "\u0622\3\2\2\2\u0628\u0623\3\2\2\2\u0628\u0624\3\2\2\2\u0628\u0625\3\2"+ + "\2\2\u0628\u0626\3\2\2\2\u0628\u0627\3\2\2\2\u0629\u0117\3\2\2\2\u062a"+ + "\u062b\7\30\2\2\u062b\u062c\7;\2\2\u062c\u062d\5\u01a0\u00d1\2\u062d\u062e"+ + "\7<\2\2\u062e\u062f\5\u0108\u0085\2\u062f\u0119\3\2\2\2\u0630\u0631\7"+ + "\30\2\2\u0631\u0632\7;\2\2\u0632\u0633\5\u01a0\u00d1\2\u0633\u0634\7<"+ + "\2\2\u0634\u0635\5\u010a\u0086\2\u0635\u0636\7\21\2\2\u0636\u0637\5\u0108"+ + "\u0085\2\u0637\u011b\3\2\2\2\u0638\u0639\7\30\2\2\u0639\u063a\7;\2\2\u063a"+ + "\u063b\5\u01a0\u00d1\2\u063b\u063c\7<\2\2\u063c\u063d\5\u010a\u0086\2"+ + "\u063d\u063e\7\21\2\2\u063e\u063f\5\u010a\u0086\2\u063f\u011d\3\2\2\2"+ + "\u0640\u0641\7\4\2\2\u0641\u0642\5\u01a0\u00d1\2\u0642\u0643\7A\2\2\u0643"+ + "\u064b\3\2\2\2\u0644\u0645\7\4\2\2\u0645\u0646\5\u01a0\u00d1\2\u0646\u0647"+ + "\7J\2\2\u0647\u0648\5\u01a0\u00d1\2\u0648\u0649\7A\2\2\u0649\u064b\3\2"+ + "\2\2\u064a\u0640\3\2\2\2\u064a\u0644\3\2\2\2\u064b\u011f\3\2\2\2\u064c"+ + "\u064d\7+\2\2\u064d\u064e\7;\2\2\u064e\u064f\5\u01a0\u00d1\2\u064f\u0650"+ + "\7<\2\2\u0650\u0651\5\u0122\u0092\2\u0651\u0121\3\2\2\2\u0652\u0656\7"+ + "=\2\2\u0653\u0655\5\u0124\u0093\2\u0654\u0653\3\2\2\2\u0655\u0658\3\2"+ + "\2\2\u0656\u0654\3\2\2\2\u0656\u0657\3\2\2\2\u0657\u065c\3\2\2\2\u0658"+ + "\u0656\3\2\2\2\u0659\u065b\5\u0128\u0095\2\u065a\u0659\3\2\2\2\u065b\u065e"+ + "\3\2\2\2\u065c\u065a\3\2\2\2\u065c\u065d\3\2\2\2\u065d\u065f\3\2\2\2\u065e"+ + "\u065c\3\2\2\2\u065f\u0660\7>\2\2\u0660\u0123\3\2\2\2\u0661\u0662\5\u0126"+ + "\u0094\2\u0662\u0663\5\u0100\u0081\2\u0663\u0125\3\2\2\2\u0664\u0668\5"+ + "\u0128\u0095\2\u0665\u0667\5\u0128\u0095\2\u0666\u0665\3\2\2\2\u0667\u066a"+ + "\3\2\2\2\u0668\u0666\3\2\2\2\u0668\u0669\3\2\2\2\u0669\u0127\3\2\2\2\u066a"+ + "\u0668\3\2\2\2\u066b\u066c\7\b\2\2\u066c\u066d\5\u019e\u00d0\2\u066d\u066e"+ + "\7J\2\2\u066e\u0676\3\2\2\2\u066f\u0670\7\b\2\2\u0670\u0671\5\u012a\u0096"+ + "\2\u0671\u0672\7J\2\2\u0672\u0676\3\2\2\2\u0673\u0674\7\16\2\2\u0674\u0676"+ + "\7J\2\2\u0675\u066b\3\2\2\2\u0675\u066f\3\2\2\2\u0675\u0673\3\2\2\2\u0676"+ + "\u0129\3\2\2\2\u0677\u0678\7h\2\2\u0678\u012b\3\2\2\2\u0679\u067a\7\64"+ + "\2\2\u067a\u067b\7;\2\2\u067b\u067c\5\u01a0\u00d1\2\u067c\u067d\7<\2\2"+ + "\u067d\u067e\5\u0108\u0085\2\u067e\u012d\3\2\2\2\u067f\u0680\7\64\2\2"+ + "\u0680\u0681\7;\2\2\u0681\u0682\5\u01a0\u00d1\2\u0682\u0683\7<\2\2\u0683"+ + "\u0684\5\u010a\u0086\2\u0684\u012f\3\2\2\2\u0685\u0686\7\17\2\2\u0686"+ + "\u0687\5\u0108\u0085\2\u0687\u0688\7\64\2\2\u0688\u0689\7;\2\2\u0689\u068a"+ + "\5\u01a0\u00d1\2\u068a\u068b\7<\2\2\u068b\u068c\7A\2\2\u068c\u0131\3\2"+ + "\2\2\u068d\u0690\5\u0136\u009c\2\u068e\u0690\5\u0140\u00a1\2\u068f\u068d"+ + "\3\2\2\2\u068f\u068e\3\2\2\2\u0690\u0133\3\2\2\2\u0691\u0694\5\u0138\u009d"+ + "\2\u0692\u0694\5\u0142\u00a2\2\u0693\u0691\3\2\2\2\u0693\u0692\3\2\2\2"+ + "\u0694\u0135\3\2\2\2\u0695\u0696\7\27\2\2\u0696\u0698\7;\2\2\u0697\u0699"+ + "\5\u013a\u009e\2\u0698\u0697\3\2\2\2\u0698\u0699\3\2\2\2\u0699\u069a\3"+ + "\2\2\2\u069a\u069c\7A\2\2\u069b\u069d\5\u01a0\u00d1\2\u069c\u069b\3\2"+ + "\2\2\u069c\u069d\3\2\2\2\u069d\u069e\3\2\2\2\u069e\u06a0\7A\2\2\u069f"+ + "\u06a1\5\u013c\u009f\2\u06a0\u069f\3\2\2\2\u06a0\u06a1\3\2\2\2\u06a1\u06a2"+ + "\3\2\2\2\u06a2\u06a3\7<\2\2\u06a3\u06a4\5\u0108\u0085\2\u06a4\u0137\3"+ + "\2\2\2\u06a5\u06a6\7\27\2\2\u06a6\u06a8\7;\2\2\u06a7\u06a9\5\u013a\u009e"+ + "\2\u06a8\u06a7\3\2\2\2\u06a8\u06a9\3\2\2\2\u06a9\u06aa\3\2\2\2\u06aa\u06ac"+ + "\7A\2\2\u06ab\u06ad\5\u01a0\u00d1\2\u06ac\u06ab\3\2\2\2\u06ac\u06ad\3"+ + "\2\2\2\u06ad\u06ae\3\2\2\2\u06ae\u06b0\7A\2\2\u06af\u06b1\5\u013c\u009f"+ + "\2\u06b0\u06af\3\2\2\2\u06b0\u06b1\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2\u06b3"+ + "\7<\2\2\u06b3\u06b4\5\u010a\u0086\2\u06b4\u0139\3\2\2\2\u06b5\u06b8\5"+ + "\u013e\u00a0\2\u06b6\u06b8\5\u0106\u0084\2\u06b7\u06b5\3\2\2\2\u06b7\u06b6"+ + "\3\2\2\2\u06b8\u013b\3\2\2\2\u06b9\u06ba\5\u013e\u00a0\2\u06ba\u013d\3"+ + "\2\2\2\u06bb\u06c0\5\u0116\u008c\2\u06bc\u06bd\7B\2\2\u06bd\u06bf\5\u0116"+ + "\u008c\2\u06be\u06bc\3\2\2\2\u06bf\u06c2\3\2\2\2\u06c0\u06be\3\2\2\2\u06c0"+ + "\u06c1\3\2\2\2\u06c1\u013f\3\2\2\2\u06c2\u06c0\3\2\2\2\u06c3\u06c4\7\27"+ + "\2\2\u06c4\u06c8\7;\2\2\u06c5\u06c7\5\u009eP\2\u06c6\u06c5\3\2\2\2\u06c7"+ + "\u06ca\3\2\2\2\u06c8\u06c6\3\2\2\2\u06c8\u06c9\3\2\2\2\u06c9\u06cb\3\2"+ + "\2\2\u06ca\u06c8\3\2\2\2\u06cb\u06cc\5v<\2\u06cc\u06cd\5r:\2\u06cd\u06ce"+ + "\7J\2\2\u06ce\u06cf\5\u01a0\u00d1\2\u06cf\u06d0\7<\2\2\u06d0\u06d1\5\u0108"+ + "\u0085\2\u06d1\u0141\3\2\2\2\u06d2\u06d3\7\27\2\2\u06d3\u06d7\7;\2\2\u06d4"+ + "\u06d6\5\u009eP\2\u06d5\u06d4\3\2\2\2\u06d6\u06d9\3\2\2\2\u06d7\u06d5"+ + "\3\2\2\2\u06d7\u06d8\3\2\2\2\u06d8\u06da\3\2\2\2\u06d9\u06d7\3\2\2\2\u06da"+ + "\u06db\5v<\2\u06db\u06dc\5r:\2\u06dc\u06dd\7J\2\2\u06dd\u06de\5\u01a0"+ + "\u00d1\2\u06de\u06df\7<\2\2\u06df\u06e0\5\u010a\u0086\2\u06e0\u0143\3"+ + "\2\2\2\u06e1\u06e3\7\6\2\2\u06e2\u06e4\7h\2\2\u06e3\u06e2\3\2\2\2\u06e3"+ + "\u06e4\3\2\2\2\u06e4\u06e5\3\2\2\2\u06e5\u06e6\7A\2\2\u06e6\u0145\3\2"+ + "\2\2\u06e7\u06e9\7\r\2\2\u06e8\u06ea\7h\2\2\u06e9\u06e8\3\2\2\2\u06e9"+ + "\u06ea\3\2\2\2\u06ea\u06eb\3\2\2\2\u06eb\u06ec\7A\2\2\u06ec\u0147\3\2"+ + "\2\2\u06ed\u06ef\7&\2\2\u06ee\u06f0\5\u01a0\u00d1\2\u06ef\u06ee\3\2\2"+ + "\2\u06ef\u06f0\3\2\2\2\u06f0\u06f1\3\2\2\2\u06f1\u06f2\7A\2\2\u06f2\u0149"+ + "\3\2\2\2\u06f3\u06f4\7.\2\2\u06f4\u06f5\5\u01a0\u00d1\2\u06f5\u06f6\7"+ + "A\2\2\u06f6\u014b\3\2\2\2\u06f7\u06f8\7,\2\2\u06f8\u06f9\7;\2\2\u06f9"+ + "\u06fa\5\u01a0\u00d1\2\u06fa\u06fb\7<\2\2\u06fb\u06fc\5\u00fe\u0080\2"+ + "\u06fc\u014d\3\2\2\2\u06fd\u06fe\7\61\2\2\u06fe\u06ff\5\u00fe\u0080\2"+ + "\u06ff\u0700\5\u0150\u00a9\2\u0700\u070a\3\2\2\2\u0701\u0702\7\61\2\2"+ + "\u0702\u0704\5\u00fe\u0080\2\u0703\u0705\5\u0150\u00a9\2\u0704\u0703\3"+ + "\2\2\2\u0704\u0705\3\2\2\2\u0705\u0706\3\2\2\2\u0706\u0707\5\u0158\u00ad"+ + "\2\u0707\u070a\3\2\2\2\u0708\u070a\5\u015a\u00ae\2\u0709\u06fd\3\2\2\2"+ + "\u0709\u0701\3\2\2\2\u0709\u0708\3\2\2\2\u070a\u014f\3\2\2\2\u070b\u070f"+ + "\5\u0152\u00aa\2\u070c\u070e\5\u0152\u00aa\2\u070d\u070c\3\2\2\2\u070e"+ + "\u0711\3\2\2\2\u070f\u070d\3\2\2\2\u070f\u0710\3\2\2\2\u0710\u0151\3\2"+ + "\2\2\u0711\u070f\3\2\2\2\u0712\u0713\7\t\2\2\u0713\u0714\7;\2\2\u0714"+ + "\u0715\5\u0154\u00ab\2\u0715\u0716\7<\2\2\u0716\u0717\5\u00fe\u0080\2"+ + "\u0717\u0153\3\2\2\2\u0718\u071a\5\u009eP\2\u0719\u0718\3\2\2\2\u071a"+ + "\u071d\3\2\2\2\u071b\u0719\3\2\2\2\u071b\u071c\3\2\2\2\u071c\u071e\3\2"+ + "\2\2\u071d\u071b\3\2\2\2\u071e\u071f\5\u0156\u00ac\2\u071f\u0720\5r:\2"+ + "\u0720\u0155\3\2\2\2\u0721\u0726\5~@\2\u0722\u0723\7X\2\2\u0723\u0725"+ + "\5\22\n\2\u0724\u0722\3\2\2\2\u0725\u0728\3\2\2\2\u0726\u0724\3\2\2\2"+ + "\u0726\u0727\3\2\2\2\u0727\u0157\3\2\2\2\u0728\u0726\3\2\2\2\u0729\u072a"+ + "\7\25\2\2\u072a\u072b\5\u00fe\u0080\2\u072b\u0159\3\2\2\2\u072c\u072d"+ + "\7\61\2\2\u072d\u072e\5\u015c\u00af\2\u072e\u0730\5\u00fe\u0080\2\u072f"+ + "\u0731\5\u0150\u00a9\2\u0730\u072f\3\2\2\2\u0730\u0731\3\2\2\2\u0731\u0733"+ + "\3\2\2\2\u0732\u0734\5\u0158\u00ad\2\u0733\u0732\3\2\2\2\u0733\u0734\3"+ + "\2\2\2\u0734\u015b\3\2\2\2\u0735\u0736\7;\2\2\u0736\u0738\5\u015e\u00b0"+ + "\2\u0737\u0739\7A\2\2\u0738\u0737\3\2\2\2\u0738\u0739\3\2\2\2\u0739\u073a"+ + "\3\2\2\2\u073a\u073b\7<\2\2\u073b\u015d\3\2\2\2\u073c\u0741\5\u0160\u00b1"+ + "\2\u073d\u073e\7A\2\2\u073e\u0740\5\u0160\u00b1\2\u073f\u073d\3\2\2\2"+ + "\u0740\u0743\3\2\2\2\u0741\u073f\3\2\2\2\u0741\u0742\3\2\2\2\u0742\u015f"+ + "\3\2\2\2\u0743\u0741\3\2\2\2\u0744\u0746\5\u009eP\2\u0745\u0744\3\2\2"+ + "\2\u0746\u0749\3\2\2\2\u0747\u0745\3\2\2\2\u0747\u0748\3\2\2\2\u0748\u074a"+ + "\3\2\2\2\u0749\u0747\3\2\2\2\u074a\u074b\5v<\2\u074b\u074c\5r:\2\u074c"+ + "\u074d\7D\2\2\u074d\u074e\5\u01a0\u00d1\2\u074e\u0161\3\2\2\2\u074f\u0752"+ + "\5\u0170\u00b9\2\u0750\u0752\5\u0198\u00cd\2\u0751\u074f\3\2\2\2\u0751"+ + "\u0750\3\2\2\2\u0752\u0756\3\2\2\2\u0753\u0755\5\u016a\u00b6\2\u0754\u0753"+ + "\3\2\2\2\u0755\u0758\3\2\2\2\u0756\u0754\3\2\2\2\u0756\u0757\3\2\2\2\u0757"+ + "\u0163\3\2\2\2\u0758\u0756\3\2\2\2\u0759\u0777\5\2\2\2\u075a\u075f\58"+ + "\35\2\u075b\u075c\7?\2\2\u075c\u075e\7@\2\2\u075d\u075b\3\2\2\2\u075e"+ + "\u0761\3\2\2\2\u075f\u075d\3\2\2\2\u075f\u0760\3\2\2\2\u0760\u0762\3\2"+ + "\2\2\u0761\u075f\3\2\2\2\u0762\u0763\7C\2\2\u0763\u0764\7\13\2\2\u0764"+ + "\u0777\3\2\2\2\u0765\u0766\7\62\2\2\u0766\u0767\7C\2\2\u0767\u0777\7\13"+ + "\2\2\u0768\u0777\7-\2\2\u0769\u076a\58\35\2\u076a\u076b\7C\2\2\u076b\u076c"+ + "\7-\2\2\u076c\u0777\3\2\2\2\u076d\u076e\7;\2\2\u076e\u076f\5\u01a0\u00d1"+ + "\2\u076f\u0770\7<\2\2\u0770\u0777\3\2\2\2\u0771\u0777\5\u0176\u00bc\2"+ + "\u0772\u0777\5\u017e\u00c0\2\u0773\u0777\5\u0184\u00c3\2\u0774\u0777\5"+ + "\u018a\u00c6\2\u0775\u0777\5\u0192\u00ca\2\u0776\u0759\3\2\2\2\u0776\u075a"+ + "\3\2\2\2\u0776\u0765\3\2\2\2\u0776\u0768\3\2\2\2\u0776\u0769\3\2\2\2\u0776"+ + "\u076d\3\2\2\2\u0776\u0771\3\2\2\2\u0776\u0772\3\2\2\2\u0776\u0773\3\2"+ + "\2\2\u0776\u0774\3\2\2\2\u0776\u0775\3\2\2\2\u0777\u0165\3\2\2\2\u0778"+ + "\u0779\3\2\2\2\u0779\u0167\3\2\2\2\u077a\u0797\5\2\2\2\u077b\u0780\58"+ + "\35\2\u077c\u077d\7?\2\2\u077d\u077f\7@\2\2\u077e\u077c\3\2\2\2\u077f"+ + "\u0782\3\2\2\2\u0780\u077e\3\2\2\2\u0780\u0781\3\2\2\2\u0781\u0783\3\2"+ + "\2\2\u0782\u0780\3\2\2\2\u0783\u0784\7C\2\2\u0784\u0785\7\13\2\2\u0785"+ + "\u0797\3\2\2\2\u0786\u0787\7\62\2\2\u0787\u0788\7C\2\2\u0788\u0797\7\13"+ + "\2\2\u0789\u0797\7-\2\2\u078a\u078b\58\35\2\u078b\u078c\7C\2\2\u078c\u078d"+ + "\7-\2\2\u078d\u0797\3\2\2\2\u078e\u078f\7;\2\2\u078f\u0790\5\u01a0\u00d1"+ + "\2\u0790\u0791\7<\2\2\u0791\u0797\3\2\2\2\u0792\u0797\5\u0176\u00bc\2"+ + "\u0793\u0797\5\u017e\u00c0\2\u0794\u0797\5\u018a\u00c6\2\u0795\u0797\5"+ + "\u0192\u00ca\2\u0796\u077a\3\2\2\2\u0796\u077b\3\2\2\2\u0796\u0786\3\2"+ + "\2\2\u0796\u0789\3\2\2\2\u0796\u078a\3\2\2\2\u0796\u078e\3\2\2\2\u0796"+ + "\u0792\3\2\2\2\u0796\u0793\3\2\2\2\u0796\u0794\3\2\2\2\u0796\u0795\3\2"+ + "\2\2\u0797\u0169\3\2\2\2\u0798\u079e\5\u0178\u00bd\2\u0799\u079e\5\u0180"+ + "\u00c1\2\u079a\u079e\5\u0186\u00c4\2\u079b\u079e\5\u018c\u00c7\2\u079c"+ + "\u079e\5\u0194\u00cb\2\u079d\u0798\3\2\2\2\u079d\u0799\3\2\2\2\u079d\u079a"+ + "\3\2\2\2\u079d\u079b\3\2\2\2\u079d\u079c\3\2\2\2\u079e\u016b\3\2\2\2\u079f"+ + "\u07a0\3\2\2\2\u07a0\u016d\3\2\2\2\u07a1\u07a6\5\u0178\u00bd\2\u07a2\u07a6"+ + "\5\u0180\u00c1\2\u07a3\u07a6\5\u018c\u00c7\2\u07a4\u07a6\5\u0194\u00cb"+ + "\2\u07a5\u07a1\3\2\2\2\u07a5\u07a2\3\2\2\2\u07a5\u07a3\3\2\2\2\u07a5\u07a4"+ + "\3\2\2\2\u07a6\u016f\3\2\2\2\u07a7\u07d0\5\2\2\2\u07a8\u07ad\58\35\2\u07a9"+ + "\u07aa\7?\2\2\u07aa\u07ac\7@\2\2\u07ab\u07a9\3\2\2\2\u07ac\u07af\3\2\2"+ + "\2\u07ad\u07ab\3\2\2\2\u07ad\u07ae\3\2\2\2\u07ae\u07b0\3\2\2\2\u07af\u07ad"+ + "\3\2\2\2\u07b0\u07b1\7C\2\2\u07b1\u07b2\7\13\2\2\u07b2\u07d0\3\2\2\2\u07b3"+ + "\u07b8\5x=\2\u07b4\u07b5\7?\2\2\u07b5\u07b7\7@\2\2\u07b6\u07b4\3\2\2\2"+ + "\u07b7\u07ba\3\2\2\2\u07b8\u07b6\3\2\2\2\u07b8\u07b9\3\2\2\2\u07b9\u07bb"+ + "\3\2\2\2\u07ba\u07b8\3\2\2\2\u07bb\u07bc\7C\2\2\u07bc\u07bd\7\13\2\2\u07bd"+ + "\u07d0\3\2\2\2\u07be\u07bf\7\62\2\2\u07bf\u07c0\7C\2\2\u07c0\u07d0\7\13"+ + "\2\2\u07c1\u07d0\7-\2\2\u07c2\u07c3\58\35\2\u07c3\u07c4\7C\2\2\u07c4\u07c5"+ + "\7-\2\2\u07c5\u07d0\3\2\2\2\u07c6\u07c7\7;\2\2\u07c7\u07c8\5\u01a0\u00d1"+ + "\2\u07c8\u07c9\7<\2\2\u07c9\u07d0\3\2\2\2\u07ca\u07d0\5\u017a\u00be\2"+ + "\u07cb\u07d0\5\u0182\u00c2\2\u07cc\u07d0\5\u0188\u00c5\2\u07cd\u07d0\5"+ + "\u018e\u00c8\2\u07ce\u07d0\5\u0196\u00cc\2\u07cf\u07a7\3\2\2\2\u07cf\u07a8"+ + "\3\2\2\2\u07cf\u07b3\3\2\2\2\u07cf\u07be\3\2\2\2\u07cf\u07c1\3\2\2\2\u07cf"+ + "\u07c2\3\2\2\2\u07cf\u07c6\3\2\2\2\u07cf\u07ca\3\2\2\2\u07cf\u07cb\3\2"+ + "\2\2\u07cf\u07cc\3\2\2\2\u07cf\u07cd\3\2\2\2\u07cf\u07ce\3\2\2\2\u07d0"+ + "\u0171\3\2\2\2\u07d1\u07d2\3\2\2\2\u07d2\u0173\3\2\2\2\u07d3\u07fb\5\2"+ + "\2\2\u07d4\u07d9\58\35\2\u07d5\u07d6\7?\2\2\u07d6\u07d8\7@\2\2\u07d7\u07d5"+ + "\3\2\2\2\u07d8\u07db\3\2\2\2\u07d9\u07d7\3\2\2\2\u07d9\u07da\3\2\2\2\u07da"+ + "\u07dc\3\2\2\2\u07db\u07d9\3\2\2\2\u07dc\u07dd\7C\2\2\u07dd\u07de\7\13"+ + "\2\2\u07de\u07fb\3\2\2\2\u07df\u07e4\5x=\2\u07e0\u07e1\7?\2\2\u07e1\u07e3"+ + "\7@\2\2\u07e2\u07e0\3\2\2\2\u07e3\u07e6\3\2\2\2\u07e4\u07e2\3\2\2\2\u07e4"+ + "\u07e5\3\2\2\2\u07e5\u07e7\3\2\2\2\u07e6\u07e4\3\2\2\2\u07e7\u07e8\7C"+ + "\2\2\u07e8\u07e9\7\13\2\2\u07e9\u07fb\3\2\2\2\u07ea\u07eb\7\62\2\2\u07eb"+ + "\u07ec\7C\2\2\u07ec\u07fb\7\13\2\2\u07ed\u07fb\7-\2\2\u07ee\u07ef\58\35"+ + "\2\u07ef\u07f0\7C\2\2\u07f0\u07f1\7-\2\2\u07f1\u07fb\3\2\2\2\u07f2\u07f3"+ + "\7;\2\2\u07f3\u07f4\5\u01a0\u00d1\2\u07f4\u07f5\7<\2\2\u07f5\u07fb\3\2"+ + "\2\2\u07f6\u07fb\5\u017a\u00be\2\u07f7\u07fb\5\u0182\u00c2\2\u07f8\u07fb"+ + "\5\u018e\u00c8\2\u07f9\u07fb\5\u0196\u00cc\2\u07fa\u07d3\3\2\2\2\u07fa"+ + "\u07d4\3\2\2\2\u07fa\u07df\3\2\2\2\u07fa\u07ea\3\2\2\2\u07fa\u07ed\3\2"+ + "\2\2\u07fa\u07ee\3\2\2\2\u07fa\u07f2\3\2\2\2\u07fa\u07f6\3\2\2\2\u07fa"+ + "\u07f7\3\2\2\2\u07fa\u07f8\3\2\2\2\u07fa\u07f9\3\2\2\2\u07fb\u0175\3\2"+ + "\2\2\u07fc\u07fe\7!\2\2\u07fd\u07ff\5,\27\2\u07fe\u07fd\3\2\2\2\u07fe"+ + "\u07ff\3\2\2\2\u07ff\u0803\3\2\2\2\u0800\u0802\5\u00e8u\2\u0801\u0800"+ + "\3\2\2\2\u0802\u0805\3\2\2\2\u0803\u0801\3\2\2\2\u0803\u0804\3\2\2\2\u0804"+ + "\u0806\3\2\2\2\u0805\u0803\3\2\2\2\u0806\u0811\7h\2\2\u0807\u080b\7C\2"+ + "\2\u0808\u080a\5\u00e8u\2\u0809\u0808\3\2\2\2\u080a\u080d\3\2\2\2\u080b"+ + "\u0809\3\2\2\2\u080b\u080c\3\2\2\2\u080c\u080e\3\2\2\2\u080d\u080b\3\2"+ + "\2\2\u080e\u0810\7h\2\2\u080f\u0807\3\2\2\2\u0810\u0813\3\2\2\2\u0811"+ + "\u080f\3\2\2\2\u0811\u0812\3\2\2\2\u0812\u0815\3\2\2\2\u0813\u0811\3\2"+ + "\2\2\u0814\u0816\5\u017c\u00bf\2\u0815\u0814\3\2\2\2\u0815\u0816\3\2\2"+ + "\2\u0816\u0817\3\2\2\2\u0817\u0819\7;\2\2\u0818\u081a\5\u0190\u00c9\2"+ + "\u0819\u0818\3\2\2\2\u0819\u081a\3\2\2\2\u081a\u081b\3\2\2\2\u081b\u081d"+ + "\7<\2\2\u081c\u081e\5d\63\2\u081d\u081c\3\2\2\2\u081d\u081e\3\2\2\2\u081e"+ + "\u0850\3\2\2\2\u081f\u0820\5<\37\2\u0820\u0821\7C\2\2\u0821\u0823\7!\2"+ + "\2\u0822\u0824\5,\27\2\u0823\u0822\3\2\2\2\u0823\u0824\3\2\2\2\u0824\u0828"+ + "\3\2\2\2\u0825\u0827\5\u00e8u\2\u0826\u0825\3\2\2\2\u0827\u082a\3\2\2"+ + "\2\u0828\u0826\3\2\2\2\u0828\u0829\3\2\2\2\u0829\u082b\3\2\2\2\u082a\u0828"+ + "\3\2\2\2\u082b\u082d\7h\2\2\u082c\u082e\5\u017c\u00bf\2\u082d\u082c\3"+ + "\2\2\2\u082d\u082e\3\2\2\2\u082e\u082f\3\2\2\2\u082f\u0831\7;\2\2\u0830"+ + "\u0832\5\u0190\u00c9\2\u0831\u0830\3\2\2\2\u0831\u0832\3\2\2\2\u0832\u0833"+ + "\3\2\2\2\u0833\u0835\7<\2\2\u0834\u0836\5d\63\2\u0835\u0834\3\2\2\2\u0835"+ + "\u0836\3\2\2\2\u0836\u0850\3\2\2\2\u0837\u0838\5\u0162\u00b2\2\u0838\u0839"+ + "\7C\2\2\u0839\u083b\7!\2\2\u083a\u083c\5,\27\2\u083b\u083a\3\2\2\2\u083b"+ + "\u083c\3\2\2\2\u083c\u0840\3\2\2\2\u083d\u083f\5\u00e8u\2\u083e\u083d"+ + "\3\2\2\2\u083f\u0842\3\2\2\2\u0840\u083e\3\2\2\2\u0840\u0841\3\2\2\2\u0841"+ + "\u0843\3\2\2\2\u0842\u0840\3\2\2\2\u0843\u0845\7h\2\2\u0844\u0846\5\u017c"+ + "\u00bf\2\u0845\u0844\3\2\2\2\u0845\u0846\3\2\2\2\u0846\u0847\3\2\2\2\u0847"+ + "\u0849\7;\2\2\u0848\u084a\5\u0190\u00c9\2\u0849\u0848\3\2\2\2\u0849\u084a"+ + "\3\2\2\2\u084a\u084b\3\2\2\2\u084b\u084d\7<\2\2\u084c\u084e\5d\63\2\u084d"+ + "\u084c\3\2\2\2\u084d\u084e\3\2\2\2\u084e\u0850\3\2\2\2\u084f\u07fc\3\2"+ + "\2\2\u084f\u081f\3\2\2\2\u084f\u0837\3\2\2\2\u0850\u0177\3\2\2\2\u0851"+ + "\u0852\7C\2\2\u0852\u0854\7!\2\2\u0853\u0855\5,\27\2\u0854\u0853\3\2\2"+ + "\2\u0854\u0855\3\2\2\2\u0855\u0859\3\2\2\2\u0856\u0858\5\u00e8u\2\u0857"+ + "\u0856\3\2\2\2\u0858\u085b\3\2\2\2\u0859\u0857\3\2\2\2\u0859\u085a\3\2"+ + "\2\2\u085a\u085c\3\2\2\2\u085b\u0859\3\2\2\2\u085c\u085e\7h\2\2\u085d"+ + "\u085f\5\u017c\u00bf\2\u085e\u085d\3\2\2\2\u085e\u085f\3\2\2\2\u085f\u0860"+ + "\3\2\2\2\u0860\u0862\7;\2\2\u0861\u0863\5\u0190\u00c9\2\u0862\u0861\3"+ + "\2\2\2\u0862\u0863\3\2\2\2\u0863\u0864\3\2\2\2\u0864\u0866\7<\2\2\u0865"+ + "\u0867\5d\63\2\u0866\u0865\3\2\2\2\u0866\u0867\3\2\2\2\u0867\u0179\3\2"+ + "\2\2\u0868\u086a\7!\2\2\u0869\u086b\5,\27\2\u086a\u0869\3\2\2\2\u086a"+ + "\u086b\3\2\2\2\u086b\u086f\3\2\2\2\u086c\u086e\5\u00e8u\2\u086d\u086c"+ + "\3\2\2\2\u086e\u0871\3\2\2\2\u086f\u086d\3\2\2\2\u086f\u0870\3\2\2\2\u0870"+ + "\u0872\3\2\2\2\u0871\u086f\3\2\2\2\u0872\u087d\7h\2\2\u0873\u0877\7C\2"+ + "\2\u0874\u0876\5\u00e8u\2\u0875\u0874\3\2\2\2\u0876\u0879\3\2\2\2\u0877"+ + "\u0875\3\2\2\2\u0877\u0878\3\2\2\2\u0878\u087a\3\2\2\2\u0879\u0877\3\2"+ + "\2\2\u087a\u087c\7h\2\2\u087b\u0873\3\2\2\2\u087c\u087f\3\2\2\2\u087d"+ + "\u087b\3\2\2\2\u087d\u087e\3\2\2\2\u087e\u0881\3\2\2\2\u087f\u087d\3\2"+ + "\2\2\u0880\u0882\5\u017c\u00bf\2\u0881\u0880\3\2\2\2\u0881\u0882\3\2\2"+ + "\2\u0882\u0883\3\2\2\2\u0883\u0885\7;\2\2\u0884\u0886\5\u0190\u00c9\2"+ + "\u0885\u0884\3\2\2\2\u0885\u0886\3\2\2\2\u0886\u0887\3\2\2\2\u0887\u0889"+ + "\7<\2\2\u0888\u088a\5d\63\2\u0889\u0888\3\2\2\2\u0889\u088a\3\2\2\2\u088a"+ + "\u08a4\3\2\2\2\u088b\u088c\5<\37\2\u088c\u088d\7C\2\2\u088d\u088f\7!\2"+ + "\2\u088e\u0890\5,\27\2\u088f\u088e\3\2\2\2\u088f\u0890\3\2\2\2\u0890\u0894"+ + "\3\2\2\2\u0891\u0893\5\u00e8u\2\u0892\u0891\3\2\2\2\u0893\u0896\3\2\2"+ + "\2\u0894\u0892\3\2\2\2\u0894\u0895\3\2\2\2\u0895\u0897\3\2\2\2\u0896\u0894"+ + "\3\2\2\2\u0897\u0899\7h\2\2\u0898\u089a\5\u017c\u00bf\2\u0899\u0898\3"+ + "\2\2\2\u0899\u089a\3\2\2\2\u089a\u089b\3\2\2\2\u089b\u089d\7;\2\2\u089c"+ + "\u089e\5\u0190\u00c9\2\u089d\u089c\3\2\2\2\u089d\u089e\3\2\2\2\u089e\u089f"+ + "\3\2\2\2\u089f\u08a1\7<\2\2\u08a0\u08a2\5d\63\2\u08a1\u08a0\3\2\2\2\u08a1"+ + "\u08a2\3\2\2\2\u08a2\u08a4\3\2\2\2\u08a3\u0868\3\2\2\2\u08a3\u088b\3\2"+ + "\2\2\u08a4\u017b\3\2\2\2\u08a5\u08a9\5,\27\2\u08a6\u08a7\7F\2\2\u08a7"+ + "\u08a9\7E\2\2\u08a8\u08a5\3\2\2\2\u08a8\u08a6\3\2\2\2\u08a9\u017d\3\2"+ + "\2\2\u08aa\u08ab\5\u0162\u00b2\2\u08ab\u08ac\7C\2\2\u08ac\u08ad\7h\2\2"+ + "\u08ad\u08b8\3\2\2\2\u08ae\u08af\7*\2\2\u08af\u08b0\7C\2\2\u08b0\u08b8"+ + "\7h\2\2\u08b1\u08b2\58\35\2\u08b2\u08b3\7C\2\2\u08b3\u08b4\7*\2\2\u08b4"+ + "\u08b5\7C\2\2\u08b5\u08b6\7h\2\2\u08b6\u08b8\3\2\2\2\u08b7\u08aa\3\2\2"+ + "\2\u08b7\u08ae\3\2\2\2\u08b7\u08b1\3\2\2\2\u08b8\u017f\3\2\2\2\u08b9\u08ba"+ + "\7C\2\2\u08ba\u08bb\7h\2\2\u08bb\u0181\3\2\2\2\u08bc\u08bd\7*\2\2\u08bd"+ + "\u08be\7C\2\2\u08be\u08c6\7h\2\2\u08bf\u08c0\58\35\2\u08c0\u08c1\7C\2"+ + "\2\u08c1\u08c2\7*\2\2\u08c2\u08c3\7C\2\2\u08c3\u08c4\7h\2\2\u08c4\u08c6"+ + "\3\2\2\2\u08c5\u08bc\3\2\2\2\u08c5\u08bf\3\2\2\2\u08c6\u0183\3\2\2\2\u08c7"+ + "\u08c8\5<\37\2\u08c8\u08c9\7?\2\2\u08c9\u08ca\5\u01a0\u00d1\2\u08ca\u08cb"+ + "\7@\2\2\u08cb\u08d2\3\2\2\2\u08cc\u08cd\5\u0168\u00b5\2\u08cd\u08ce\7"+ + "?\2\2\u08ce\u08cf\5\u01a0\u00d1\2\u08cf\u08d0\7@\2\2\u08d0\u08d2\3\2\2"+ + "\2\u08d1\u08c7\3\2\2\2\u08d1\u08cc\3\2\2\2\u08d2\u08da\3\2\2\2\u08d3\u08d4"+ + "\5\u0166\u00b4\2\u08d4\u08d5\7?\2\2\u08d5\u08d6\5\u01a0\u00d1\2\u08d6"+ + "\u08d7\7@\2\2\u08d7\u08d9\3\2\2\2\u08d8\u08d3\3\2\2\2\u08d9\u08dc\3\2"+ + "\2\2\u08da\u08d8\3\2\2\2\u08da\u08db\3\2\2\2\u08db\u0185\3\2\2\2\u08dc"+ + "\u08da\3\2\2\2\u08dd\u08de\5\u016e\u00b8\2\u08de\u08df\7?\2\2\u08df\u08e0"+ + "\5\u01a0\u00d1\2\u08e0\u08e1\7@\2\2\u08e1\u08e9\3\2\2\2\u08e2\u08e3\5"+ + "\u016c\u00b7\2\u08e3\u08e4\7?\2\2\u08e4\u08e5\5\u01a0\u00d1\2\u08e5\u08e6"+ + "\7@\2\2\u08e6\u08e8\3\2\2\2\u08e7\u08e2\3\2\2\2\u08e8\u08eb\3\2\2\2\u08e9"+ + "\u08e7\3\2\2\2\u08e9\u08ea\3\2\2\2\u08ea\u0187\3\2\2\2\u08eb\u08e9\3\2"+ + "\2\2\u08ec\u08ed\5<\37\2\u08ed\u08ee\7?\2\2\u08ee\u08ef\5\u01a0\u00d1"+ + "\2\u08ef\u08f0\7@\2\2\u08f0\u08f7\3\2\2\2\u08f1\u08f2\5\u0174\u00bb\2"+ + "\u08f2\u08f3\7?\2\2\u08f3\u08f4\5\u01a0\u00d1\2\u08f4\u08f5\7@\2\2\u08f5"+ + "\u08f7\3\2\2\2\u08f6\u08ec\3\2\2\2\u08f6\u08f1\3\2\2\2\u08f7\u08ff\3\2"+ + "\2\2\u08f8\u08f9\5\u0172\u00ba\2\u08f9\u08fa\7?\2\2\u08fa\u08fb\5\u01a0"+ + "\u00d1\2\u08fb\u08fc\7@\2\2\u08fc\u08fe\3\2\2\2\u08fd\u08f8\3\2\2\2\u08fe"+ + "\u0901\3\2\2\2\u08ff\u08fd\3\2\2\2\u08ff\u0900\3\2\2\2\u0900\u0189\3\2"+ + "\2\2\u0901\u08ff\3\2\2\2\u0902\u0903\5> \2\u0903\u0905\7;\2\2\u0904\u0906"+ + "\5\u0190\u00c9\2\u0905\u0904\3\2\2\2\u0905\u0906\3\2\2\2\u0906\u0907\3"+ + "\2\2\2\u0907\u0908\7<\2\2\u0908\u0947\3\2\2\2\u0909\u090a\58\35\2\u090a"+ + "\u090c\7C\2\2\u090b\u090d\5,\27\2\u090c\u090b\3\2\2\2\u090c\u090d\3\2"+ + "\2\2\u090d\u090e\3\2\2\2\u090e\u090f\7h\2\2\u090f\u0911\7;\2\2\u0910\u0912"+ + "\5\u0190\u00c9\2\u0911\u0910\3\2\2\2\u0911\u0912\3\2\2\2\u0912\u0913\3"+ + "\2\2\2\u0913\u0914\7<\2\2\u0914\u0947\3\2\2\2\u0915\u0916\5<\37\2\u0916"+ + "\u0918\7C\2\2\u0917\u0919\5,\27\2\u0918\u0917\3\2\2\2\u0918\u0919\3\2"+ + "\2\2\u0919\u091a\3\2\2\2\u091a\u091b\7h\2\2\u091b\u091d\7;\2\2\u091c\u091e"+ + "\5\u0190\u00c9\2\u091d\u091c\3\2\2\2\u091d\u091e\3\2\2\2\u091e\u091f\3"+ + "\2\2\2\u091f\u0920\7<\2\2\u0920\u0947\3\2\2\2\u0921\u0922\5\u0162\u00b2"+ + "\2\u0922\u0924\7C\2\2\u0923\u0925\5,\27\2\u0924\u0923\3\2\2\2\u0924\u0925"+ + "\3\2\2\2\u0925\u0926\3\2\2\2\u0926\u0927\7h\2\2\u0927\u0929\7;\2\2\u0928"+ + "\u092a\5\u0190\u00c9\2\u0929\u0928\3\2\2\2\u0929\u092a\3\2\2\2\u092a\u092b"+ + "\3\2\2\2\u092b\u092c\7<\2\2\u092c\u0947\3\2\2\2\u092d\u092e\7*\2\2\u092e"+ + "\u0930\7C\2\2\u092f\u0931\5,\27\2\u0930\u092f\3\2\2\2\u0930\u0931\3\2"+ + "\2\2\u0931\u0932\3\2\2\2\u0932\u0933\7h\2\2\u0933\u0935\7;\2\2\u0934\u0936"+ + "\5\u0190\u00c9\2\u0935\u0934\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u0937\3"+ + "\2\2\2\u0937\u0947\7<\2\2\u0938\u0939\58\35\2\u0939\u093a\7C\2\2\u093a"+ + "\u093b\7*\2\2\u093b\u093d\7C\2\2\u093c\u093e\5,\27\2\u093d\u093c\3\2\2"+ + "\2\u093d\u093e\3\2\2\2\u093e\u093f\3\2\2\2\u093f\u0940\7h\2\2\u0940\u0942"+ + "\7;\2\2\u0941\u0943\5\u0190\u00c9\2\u0942\u0941\3\2\2\2\u0942\u0943\3"+ + "\2\2\2\u0943\u0944\3\2\2\2\u0944\u0945\7<\2\2\u0945\u0947\3\2\2\2\u0946"+ + "\u0902\3\2\2\2\u0946\u0909\3\2\2\2\u0946\u0915\3\2\2\2\u0946\u0921\3\2"+ + "\2\2\u0946\u092d\3\2\2\2\u0946\u0938\3\2\2\2\u0947\u018b\3\2\2\2\u0948"+ + "\u094a\7C\2\2\u0949\u094b\5,\27\2\u094a\u0949\3\2\2\2\u094a\u094b\3\2"+ + "\2\2\u094b\u094c\3\2\2\2\u094c\u094d\7h\2\2\u094d\u094f\7;\2\2\u094e\u0950"+ + "\5\u0190\u00c9\2\u094f\u094e\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0951\3"+ + "\2\2\2\u0951\u0952\7<\2\2\u0952\u018d\3\2\2\2\u0953\u0954\5> \2\u0954"+ + "\u0956\7;\2\2\u0955\u0957\5\u0190\u00c9\2\u0956\u0955\3\2\2\2\u0956\u0957"+ + "\3\2\2\2\u0957\u0958\3\2\2\2\u0958\u0959\7<\2\2\u0959\u098c\3\2\2\2\u095a"+ + "\u095b\58\35\2\u095b\u095d\7C\2\2\u095c\u095e\5,\27\2\u095d\u095c\3\2"+ + "\2\2\u095d\u095e\3\2\2\2\u095e\u095f\3\2\2\2\u095f\u0960\7h\2\2\u0960"+ + "\u0962\7;\2\2\u0961\u0963\5\u0190\u00c9\2\u0962\u0961\3\2\2\2\u0962\u0963"+ + "\3\2\2\2\u0963\u0964\3\2\2\2\u0964\u0965\7<\2\2\u0965\u098c\3\2\2\2\u0966"+ + "\u0967\5<\37\2\u0967\u0969\7C\2\2\u0968\u096a\5,\27\2"; private static final String _serializedATNSegment1 = - "\u0967\3\2\2\2\u0968\u0969\3\2\2\2\u0969\u096a\3\2\2\2\u096a\u096b\7h"+ - "\2\2\u096b\u096d\7;\2\2\u096c\u096e\5\u0190\u00c9\2\u096d\u096c\3\2\2"+ - "\2\u096d\u096e\3\2\2\2\u096e\u096f\3\2\2\2\u096f\u0970\7<\2\2\u0970\u098b"+ - "\3\2\2\2\u0971\u0972\7*\2\2\u0972\u0974\7C\2\2\u0973\u0975\5,\27\2\u0974"+ - "\u0973\3\2\2\2\u0974\u0975\3\2\2\2\u0975\u0976\3\2\2\2\u0976\u0977\7h"+ - "\2\2\u0977\u0979\7;\2\2\u0978\u097a\5\u0190\u00c9\2\u0979\u0978\3\2\2"+ - "\2\u0979\u097a\3\2\2\2\u097a\u097b\3\2\2\2\u097b\u098b\7<\2\2\u097c\u097d"+ - "\58\35\2\u097d\u097e\7C\2\2\u097e\u097f\7*\2\2\u097f\u0981\7C\2\2\u0980"+ - "\u0982\5,\27\2\u0981\u0980\3\2\2\2\u0981\u0982\3\2\2\2\u0982\u0983\3\2"+ - "\2\2\u0983\u0984\7h\2\2\u0984\u0986\7;\2\2\u0985\u0987\5\u0190\u00c9\2"+ - "\u0986\u0985\3\2\2\2\u0986\u0987\3\2\2\2\u0987\u0988\3\2\2\2\u0988\u0989"+ - "\7<\2\2\u0989\u098b\3\2\2\2\u098a\u0952\3\2\2\2\u098a\u0959\3\2\2\2\u098a"+ - "\u0965\3\2\2\2\u098a\u0971\3\2\2\2\u098a\u097c\3\2\2\2\u098b\u018f\3\2"+ - "\2\2\u098c\u0991\5\u01a0\u00d1\2\u098d\u098e\7B\2\2\u098e\u0990\5\u01a0"+ - "\u00d1\2\u098f\u098d\3\2\2\2\u0990\u0993\3\2\2\2\u0991\u098f\3\2\2\2\u0991"+ - "\u0992\3\2\2\2\u0992\u0191\3\2\2\2\u0993\u0991\3\2\2\2\u0994\u0995\5<"+ - "\37\2\u0995\u0997\7\\\2\2\u0996\u0998\5,\27\2\u0997\u0996\3\2\2\2\u0997"+ - "\u0998\3\2\2\2\u0998\u0999\3\2\2\2\u0999\u099a\7h\2\2\u099a\u09c4\3\2"+ - "\2\2\u099b\u099c\5\16\b\2\u099c\u099e\7\\\2\2\u099d\u099f\5,\27\2\u099e"+ - "\u099d\3\2\2\2\u099e\u099f\3\2\2\2\u099f\u09a0\3\2\2\2\u09a0\u09a1\7h"+ - "\2\2\u09a1\u09c4\3\2\2\2\u09a2\u09a3\5\u0162\u00b2\2\u09a3\u09a5\7\\\2"+ - "\2\u09a4\u09a6\5,\27\2\u09a5\u09a4\3\2\2\2\u09a5\u09a6\3\2\2\2\u09a6\u09a7"+ - "\3\2\2\2\u09a7\u09a8\7h\2\2\u09a8\u09c4\3\2\2\2\u09a9\u09aa\7*\2\2\u09aa"+ - "\u09ac\7\\\2\2\u09ab\u09ad\5,\27\2\u09ac\u09ab\3\2\2\2\u09ac\u09ad\3\2"+ - "\2\2\u09ad\u09ae\3\2\2\2\u09ae\u09c4\7h\2\2\u09af\u09b0\58\35\2\u09b0"+ - "\u09b1\7C\2\2\u09b1\u09b2\7*\2\2\u09b2\u09b4\7\\\2\2\u09b3\u09b5\5,\27"+ - "\2\u09b4\u09b3\3\2\2\2\u09b4\u09b5\3\2\2\2\u09b5\u09b6\3\2\2\2\u09b6\u09b7"+ - "\7h\2\2\u09b7\u09c4\3\2\2\2\u09b8\u09b9\5\22\n\2\u09b9\u09bb\7\\\2\2\u09ba"+ - "\u09bc\5,\27\2\u09bb\u09ba\3\2\2\2\u09bb\u09bc\3\2\2\2\u09bc\u09bd\3\2"+ - "\2\2\u09bd\u09be\7!\2\2\u09be\u09c4\3\2\2\2\u09bf\u09c0\5 \21\2\u09c0"+ - "\u09c1\7\\\2\2\u09c1\u09c2\7!\2\2\u09c2\u09c4\3\2\2\2\u09c3\u0994\3\2"+ - "\2\2\u09c3\u099b\3\2\2\2\u09c3\u09a2\3\2\2\2\u09c3\u09a9\3\2\2\2\u09c3"+ - "\u09af\3\2\2\2\u09c3\u09b8\3\2\2\2\u09c3\u09bf\3\2\2\2\u09c4\u0193\3\2"+ - "\2\2\u09c5\u09c7\7\\\2\2\u09c6\u09c8\5,\27\2\u09c7\u09c6\3\2\2\2\u09c7"+ - "\u09c8\3\2\2\2\u09c8\u09c9\3\2\2\2\u09c9\u09ca\7h\2\2\u09ca\u0195\3\2"+ - "\2\2\u09cb\u09cc\5<\37\2\u09cc\u09ce\7\\\2\2\u09cd\u09cf\5,\27\2\u09ce"+ - "\u09cd\3\2\2\2\u09ce\u09cf\3\2\2\2\u09cf\u09d0\3\2\2\2\u09d0\u09d1\7h"+ - "\2\2\u09d1\u09f4\3\2\2\2\u09d2\u09d3\5\16\b\2\u09d3\u09d5\7\\\2\2\u09d4"+ - "\u09d6\5,\27\2\u09d5\u09d4\3\2\2\2\u09d5\u09d6\3\2\2\2\u09d6\u09d7\3\2"+ - "\2\2\u09d7\u09d8\7h\2\2\u09d8\u09f4\3\2\2\2\u09d9\u09da\7*\2\2\u09da\u09dc"+ - "\7\\\2\2\u09db\u09dd\5,\27\2\u09dc\u09db\3\2\2\2\u09dc\u09dd\3\2\2\2\u09dd"+ - "\u09de\3\2\2\2\u09de\u09f4\7h\2\2\u09df\u09e0\58\35\2\u09e0\u09e1\7C\2"+ - "\2\u09e1\u09e2\7*\2\2\u09e2\u09e4\7\\\2\2\u09e3\u09e5\5,\27\2\u09e4\u09e3"+ - "\3\2\2\2\u09e4\u09e5\3\2\2\2\u09e5\u09e6\3\2\2\2\u09e6\u09e7\7h\2\2\u09e7"+ - "\u09f4\3\2\2\2\u09e8\u09e9\5\22\n\2\u09e9\u09eb\7\\\2\2\u09ea\u09ec\5"+ - ",\27\2\u09eb\u09ea\3\2\2\2\u09eb\u09ec\3\2\2\2\u09ec\u09ed\3\2\2\2\u09ed"+ - "\u09ee\7!\2\2\u09ee\u09f4\3\2\2\2\u09ef\u09f0\5 \21\2\u09f0\u09f1\7\\"+ - "\2\2\u09f1\u09f2\7!\2\2\u09f2\u09f4\3\2\2\2\u09f3\u09cb\3\2\2\2\u09f3"+ - "\u09d2\3\2\2\2\u09f3\u09d9\3\2\2\2\u09f3\u09df\3\2\2\2\u09f3\u09e8\3\2"+ - "\2\2\u09f3\u09ef\3\2\2\2\u09f4\u0197\3\2\2\2\u09f5\u09f6\7!\2\2\u09f6"+ - "\u09f7\5\6\4\2\u09f7\u09f9\5\u019a\u00ce\2\u09f8\u09fa\5\"\22\2\u09f9"+ - "\u09f8\3\2\2\2\u09f9\u09fa\3\2\2\2\u09fa\u0a0c\3\2\2\2\u09fb\u09fc\7!"+ - "\2\2\u09fc\u09fd\5\20\t\2\u09fd\u09ff\5\u019a\u00ce\2\u09fe\u0a00\5\""+ - "\22\2\u09ff\u09fe\3\2\2\2\u09ff\u0a00\3\2\2\2\u0a00\u0a0c\3\2\2\2\u0a01"+ - "\u0a02\7!\2\2\u0a02\u0a03\5\6\4\2\u0a03\u0a04\5\"\22\2\u0a04\u0a05\5\u00fa"+ - "~\2\u0a05\u0a0c\3\2\2\2\u0a06\u0a07\7!\2\2\u0a07\u0a08\5\20\t\2\u0a08"+ - "\u0a09\5\"\22\2\u0a09\u0a0a\5\u00fa~\2\u0a0a\u0a0c\3\2\2\2\u0a0b\u09f5"+ - "\3\2\2\2\u0a0b\u09fb\3\2\2\2\u0a0b\u0a01\3\2\2\2\u0a0b\u0a06\3\2\2\2\u0a0c"+ - "\u0199\3\2\2\2\u0a0d\u0a11\5\u019c\u00cf\2\u0a0e\u0a10\5\u019c\u00cf\2"+ - "\u0a0f\u0a0e\3\2\2\2\u0a10\u0a13\3\2\2\2\u0a11\u0a0f\3\2\2\2\u0a11\u0a12"+ - "\3\2\2\2\u0a12\u019b\3\2\2\2\u0a13\u0a11\3\2\2\2\u0a14\u0a16\5\u00e8u"+ - "\2\u0a15\u0a14\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a15\3\2\2\2\u0a17\u0a18"+ - "\3\2\2\2\u0a18\u0a1a\3\2\2\2\u0a19\u0a17\3\2\2\2\u0a1a\u0a1b\7?\2\2\u0a1b"+ - "\u0a1c\5\u01a0\u00d1\2\u0a1c\u0a1d\7@\2\2\u0a1d\u019d\3\2\2\2\u0a1e\u0a1f"+ - "\5\u01a0\u00d1\2\u0a1f\u019f\3\2\2\2\u0a20\u0a23\5\u01a2\u00d2\2\u0a21"+ - "\u0a23\5\u01aa\u00d6\2\u0a22\u0a20\3\2\2\2\u0a22\u0a21\3\2\2\2\u0a23\u01a1"+ - "\3\2\2\2\u0a24\u0a25\5\u01a4\u00d3\2\u0a25\u0a26\7[\2\2\u0a26\u0a27\5"+ - "\u01a8\u00d5\2\u0a27\u01a3\3\2\2\2\u0a28\u0a33\7h\2\2\u0a29\u0a2b\7;\2"+ - "\2\u0a2a\u0a2c\5\u0098M\2\u0a2b\u0a2a\3\2\2\2\u0a2b\u0a2c\3\2\2\2\u0a2c"+ - "\u0a2d\3\2\2\2\u0a2d\u0a33\7<\2\2\u0a2e\u0a2f\7;\2\2\u0a2f\u0a30\5\u01a6"+ - "\u00d4\2\u0a30\u0a31\7<\2\2\u0a31\u0a33\3\2\2\2\u0a32\u0a28\3\2\2\2\u0a32"+ - "\u0a29\3\2\2\2\u0a32\u0a2e\3\2\2\2\u0a33\u01a5\3\2\2\2\u0a34\u0a39\7h"+ - "\2\2\u0a35\u0a36\7B\2\2\u0a36\u0a38\7h\2\2\u0a37\u0a35\3\2\2\2\u0a38\u0a3b"+ - "\3\2\2\2\u0a39\u0a37\3\2\2\2\u0a39\u0a3a\3\2\2\2\u0a3a\u01a7\3\2\2\2\u0a3b"+ - "\u0a39\3\2\2\2\u0a3c\u0a3f\5\u01a0\u00d1\2\u0a3d\u0a3f\5\u00fe\u0080\2"+ - "\u0a3e\u0a3c\3\2\2\2\u0a3e\u0a3d\3\2\2\2\u0a3f\u01a9\3\2\2\2\u0a40\u0a43"+ - "\5\u01b2\u00da\2\u0a41\u0a43\5\u01ac\u00d7\2\u0a42\u0a40\3\2\2\2\u0a42"+ - "\u0a41\3\2\2\2\u0a43\u01ab\3\2\2\2\u0a44\u0a45\5\u01ae\u00d8\2\u0a45\u0a46"+ - "\5\u01b0\u00d9\2\u0a46\u0a47\5\u01a0\u00d1\2\u0a47\u01ad\3\2\2\2\u0a48"+ - "\u0a4c\5<\37\2\u0a49\u0a4c\5\u017e\u00c0\2\u0a4a\u0a4c\5\u0184\u00c3\2"+ - "\u0a4b\u0a48\3\2\2\2\u0a4b\u0a49\3\2\2\2\u0a4b\u0a4a\3\2\2\2\u0a4c\u01af"+ - "\3\2\2\2\u0a4d\u0a4e\t\5\2\2\u0a4e\u01b1\3\2\2\2\u0a4f\u0a57\5\u01b4\u00db"+ - "\2\u0a50\u0a51\5\u01b4\u00db\2\u0a51\u0a52\7I\2\2\u0a52\u0a53\5\u01a0"+ - "\u00d1\2\u0a53\u0a54\7J\2\2\u0a54\u0a55\5\u01b2\u00da\2\u0a55\u0a57\3"+ - "\2\2\2\u0a56\u0a4f\3\2\2\2\u0a56\u0a50\3\2\2\2\u0a57\u01b3\3\2\2\2\u0a58"+ - "\u0a59\b\u00db\1\2\u0a59\u0a5a\5\u01b6\u00dc\2\u0a5a\u0a60\3\2\2\2\u0a5b"+ - "\u0a5c\f\3\2\2\u0a5c\u0a5d\7P\2\2\u0a5d\u0a5f\5\u01b6\u00dc\2\u0a5e\u0a5b"+ - "\3\2\2\2\u0a5f\u0a62\3\2\2\2\u0a60\u0a5e\3\2\2\2\u0a60\u0a61\3\2\2\2\u0a61"+ - "\u01b5\3\2\2\2\u0a62\u0a60\3\2\2\2\u0a63\u0a64\b\u00dc\1\2\u0a64\u0a65"+ - "\5\u01b8\u00dd\2\u0a65\u0a6b\3\2\2\2\u0a66\u0a67\f\3\2\2\u0a67\u0a68\7"+ - "O\2\2\u0a68\u0a6a\5\u01b8\u00dd\2\u0a69\u0a66\3\2\2\2\u0a6a\u0a6d\3\2"+ - "\2\2\u0a6b\u0a69\3\2\2\2\u0a6b\u0a6c\3\2\2\2\u0a6c\u01b7\3\2\2\2\u0a6d"+ - "\u0a6b\3\2\2\2\u0a6e\u0a6f\b\u00dd\1\2\u0a6f\u0a70\5\u01ba\u00de\2\u0a70"+ - "\u0a76\3\2\2\2\u0a71\u0a72\f\3\2\2\u0a72\u0a73\7X\2\2\u0a73\u0a75\5\u01ba"+ - "\u00de\2\u0a74\u0a71\3\2\2\2\u0a75\u0a78\3\2\2\2\u0a76\u0a74\3\2\2\2\u0a76"+ - "\u0a77\3\2\2\2\u0a77\u01b9\3\2\2\2\u0a78\u0a76\3\2\2\2\u0a79\u0a7a\b\u00de"+ - "\1\2\u0a7a\u0a7b\5\u01bc\u00df\2\u0a7b\u0a81\3\2\2\2\u0a7c\u0a7d\f\3\2"+ - "\2\u0a7d\u0a7e\7Y\2\2\u0a7e\u0a80\5\u01bc\u00df\2\u0a7f\u0a7c\3\2\2\2"+ - "\u0a80\u0a83\3\2\2\2\u0a81\u0a7f\3\2\2\2\u0a81\u0a82\3\2\2\2\u0a82\u01bb"+ - "\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a84\u0a85\b\u00df\1\2\u0a85\u0a86\5\u01be"+ - "\u00e0\2\u0a86\u0a8c\3\2\2\2\u0a87\u0a88\f\3\2\2\u0a88\u0a89\7W\2\2\u0a89"+ - "\u0a8b\5\u01be\u00e0\2\u0a8a\u0a87\3\2\2\2\u0a8b\u0a8e\3\2\2\2\u0a8c\u0a8a"+ - "\3\2\2\2\u0a8c\u0a8d\3\2\2\2\u0a8d\u01bd\3\2\2\2\u0a8e\u0a8c\3\2\2\2\u0a8f"+ - "\u0a90\b\u00e0\1\2\u0a90\u0a91\5\u01c0\u00e1\2\u0a91\u0a9a\3\2\2\2\u0a92"+ - "\u0a93\f\4\2\2\u0a93\u0a94\7K\2\2\u0a94\u0a99\5\u01c0\u00e1\2\u0a95\u0a96"+ - "\f\3\2\2\u0a96\u0a97\7N\2\2\u0a97\u0a99\5\u01c0\u00e1\2\u0a98\u0a92\3"+ - "\2\2\2\u0a98\u0a95\3\2\2\2\u0a99\u0a9c\3\2\2\2\u0a9a\u0a98\3\2\2\2\u0a9a"+ - "\u0a9b\3\2\2\2\u0a9b\u01bf\3\2\2\2\u0a9c\u0a9a\3\2\2\2\u0a9d\u0a9e\b\u00e1"+ - "\1\2\u0a9e\u0a9f\5\u01c2\u00e2\2\u0a9f\u0ab1\3\2\2\2\u0aa0\u0aa1\f\7\2"+ - "\2\u0aa1\u0aa2\7F\2\2\u0aa2\u0ab0\5\u01c2\u00e2\2\u0aa3\u0aa4\f\6\2\2"+ - "\u0aa4\u0aa5\7E\2\2\u0aa5\u0ab0\5\u01c2\u00e2\2\u0aa6\u0aa7\f\5\2\2\u0aa7"+ - "\u0aa8\7L\2\2\u0aa8\u0ab0\5\u01c2\u00e2\2\u0aa9\u0aaa\f\4\2\2\u0aaa\u0aab"+ - "\7M\2\2\u0aab\u0ab0\5\u01c2\u00e2\2\u0aac\u0aad\f\3\2\2\u0aad\u0aae\7"+ - "\34\2\2\u0aae\u0ab0\5\16\b\2\u0aaf\u0aa0\3\2\2\2\u0aaf\u0aa3\3\2\2\2\u0aaf"+ - "\u0aa6\3\2\2\2\u0aaf\u0aa9\3\2\2\2\u0aaf\u0aac\3\2\2\2\u0ab0\u0ab3\3\2"+ - "\2\2\u0ab1\u0aaf\3\2\2\2\u0ab1\u0ab2\3\2\2\2\u0ab2\u01c1\3\2\2\2\u0ab3"+ - "\u0ab1\3\2\2\2\u0ab4\u0ab5\b\u00e2\1\2\u0ab5\u0ab6\5\u01c4\u00e3\2\u0ab6"+ - "\u0ac6\3\2\2\2\u0ab7\u0ab8\f\5\2\2\u0ab8\u0ab9\7F\2\2\u0ab9\u0aba\7F\2"+ - "\2\u0aba\u0ac5\5\u01c4\u00e3\2\u0abb\u0abc\f\4\2\2\u0abc\u0abd\7E\2\2"+ - "\u0abd\u0abe\7E\2\2\u0abe\u0ac5\5\u01c4\u00e3\2\u0abf\u0ac0\f\3\2\2\u0ac0"+ - "\u0ac1\7E\2\2\u0ac1\u0ac2\7E\2\2\u0ac2\u0ac3\7E\2\2\u0ac3\u0ac5\5\u01c4"+ - "\u00e3\2\u0ac4\u0ab7\3\2\2\2\u0ac4\u0abb\3\2\2\2\u0ac4\u0abf\3\2\2\2\u0ac5"+ - "\u0ac8\3\2\2\2\u0ac6\u0ac4\3\2\2\2\u0ac6\u0ac7\3\2\2\2\u0ac7\u01c3\3\2"+ - "\2\2\u0ac8\u0ac6\3\2\2\2\u0ac9\u0aca\b\u00e3\1\2\u0aca\u0acb\5\u01c6\u00e4"+ - "\2\u0acb\u0ad4\3\2\2\2\u0acc\u0acd\f\4\2\2\u0acd\u0ace\7S\2\2\u0ace\u0ad3"+ - "\5\u01c6\u00e4\2\u0acf\u0ad0\f\3\2\2\u0ad0\u0ad1\7T\2\2\u0ad1\u0ad3\5"+ - "\u01c6\u00e4\2\u0ad2\u0acc\3\2\2\2\u0ad2\u0acf\3\2\2\2\u0ad3\u0ad6\3\2"+ - "\2\2\u0ad4\u0ad2\3\2\2\2\u0ad4\u0ad5\3\2\2\2\u0ad5\u01c5\3\2\2\2\u0ad6"+ - "\u0ad4\3\2\2\2\u0ad7\u0ad8\b\u00e4\1\2\u0ad8\u0ad9\5\u01c8\u00e5\2\u0ad9"+ - "\u0ae5\3\2\2\2\u0ada\u0adb\f\5\2\2\u0adb\u0adc\7U\2\2\u0adc\u0ae4\5\u01c8"+ - "\u00e5\2\u0add\u0ade\f\4\2\2\u0ade\u0adf\7V\2\2\u0adf\u0ae4\5\u01c8\u00e5"+ - "\2\u0ae0\u0ae1\f\3\2\2\u0ae1\u0ae2\7Z\2\2\u0ae2\u0ae4\5\u01c8\u00e5\2"+ - "\u0ae3\u0ada\3\2\2\2\u0ae3\u0add\3\2\2\2\u0ae3\u0ae0\3\2\2\2\u0ae4\u0ae7"+ - "\3\2\2\2\u0ae5\u0ae3\3\2\2\2\u0ae5\u0ae6\3\2\2\2\u0ae6\u01c7\3\2\2\2\u0ae7"+ - "\u0ae5\3\2\2\2\u0ae8\u0af0\5\u01ca\u00e6\2\u0ae9\u0af0\5\u01cc\u00e7\2"+ - "\u0aea\u0aeb\7S\2\2\u0aeb\u0af0\5\u01c8\u00e5\2\u0aec\u0aed\7T\2\2\u0aed"+ - "\u0af0\5\u01c8\u00e5\2\u0aee\u0af0\5\u01ce\u00e8\2\u0aef\u0ae8\3\2\2\2"+ - "\u0aef\u0ae9\3\2\2\2\u0aef\u0aea\3\2\2\2\u0aef\u0aec\3\2\2\2\u0aef\u0aee"+ - "\3\2\2\2\u0af0\u01c9\3\2\2\2\u0af1\u0af2\7Q\2\2\u0af2\u0af3\5\u01c8\u00e5"+ - "\2\u0af3\u01cb\3\2\2\2\u0af4\u0af5\7R\2\2\u0af5\u0af6\5\u01c8\u00e5\2"+ - "\u0af6\u01cd\3\2\2\2\u0af7\u0afe\5\u01d0\u00e9\2\u0af8\u0af9\7H\2\2\u0af9"+ - "\u0afe\5\u01c8\u00e5\2\u0afa\u0afb\7G\2\2\u0afb\u0afe\5\u01c8\u00e5\2"+ - "\u0afc\u0afe\5\u01da\u00ee\2\u0afd\u0af7\3\2\2\2\u0afd\u0af8\3\2\2\2\u0afd"+ - "\u0afa\3\2\2\2\u0afd\u0afc\3\2\2\2\u0afe\u01cf\3\2\2\2\u0aff\u0b02\5\u0162"+ - "\u00b2\2\u0b00\u0b02\5<\37\2\u0b01\u0aff\3\2\2\2\u0b01\u0b00\3\2\2\2\u0b02"+ - "\u0b07\3\2\2\2\u0b03\u0b06\5\u01d4\u00eb\2\u0b04\u0b06\5\u01d8\u00ed\2"+ - "\u0b05\u0b03\3\2\2\2\u0b05\u0b04\3\2\2\2\u0b06\u0b09\3\2\2\2\u0b07\u0b05"+ - "\3\2\2\2\u0b07\u0b08\3\2\2\2\u0b08\u01d1\3\2\2\2\u0b09\u0b07\3\2\2\2\u0b0a"+ - "\u0b0b\5\u01d0\u00e9\2\u0b0b\u0b0c\7Q\2\2\u0b0c\u01d3\3\2\2\2\u0b0d\u0b0e"+ - "\7Q\2\2\u0b0e\u01d5\3\2\2\2\u0b0f\u0b10\5\u01d0\u00e9\2\u0b10\u0b11\7"+ - "R\2\2\u0b11\u01d7\3\2\2\2\u0b12\u0b13\7R\2\2\u0b13\u01d9\3\2\2\2\u0b14"+ - "\u0b15\7;\2\2\u0b15\u0b16\5\6\4\2\u0b16\u0b17\7<\2\2\u0b17\u0b18\5\u01c8"+ - "\u00e5\2\u0b18\u0b30\3\2\2\2\u0b19\u0b1a\7;\2\2\u0b1a\u0b1e\5\16\b\2\u0b1b"+ - "\u0b1d\5*\26\2\u0b1c\u0b1b\3\2\2\2\u0b1d\u0b20\3\2\2\2\u0b1e\u0b1c\3\2"+ - "\2\2\u0b1e\u0b1f\3\2\2\2\u0b1f\u0b21\3\2\2\2\u0b20\u0b1e\3\2\2\2\u0b21"+ - "\u0b22\7<\2\2\u0b22\u0b23\5\u01ce\u00e8\2\u0b23\u0b30\3\2\2\2\u0b24\u0b25"+ - "\7;\2\2\u0b25\u0b29\5\16\b\2\u0b26\u0b28\5*\26\2\u0b27\u0b26\3\2\2\2\u0b28"+ - "\u0b2b\3\2\2\2\u0b29\u0b27\3\2\2\2\u0b29\u0b2a\3\2\2\2\u0b2a\u0b2c\3\2"+ - "\2\2\u0b2b\u0b29\3\2\2\2\u0b2c\u0b2d\7<\2\2\u0b2d\u0b2e\5\u01a2\u00d2"+ - "\2\u0b2e\u0b30\3\2\2\2\u0b2f\u0b14\3\2\2\2\u0b2f\u0b19\3\2\2\2\u0b2f\u0b24"+ - "\3\2\2\2\u0b30\u01db\3\2\2\2\u0149\u01e0\u01e5\u01ec\u01f0\u01f4\u01fd"+ - "\u0201\u0205\u0207\u020d\u0212\u0219\u021e\u0220\u0226\u022b\u0230\u0235"+ - "\u0240\u024e\u0253\u025b\u0262\u0268\u026d\u0278\u027b\u0289\u028e\u0293"+ - "\u0298\u029e\u02a8\u02b0\u02ba\u02c2\u02ce\u02d2\u02d7\u02dd\u02e5\u02ee"+ - "\u02f9\u0316\u031a\u031f\u0325\u0328\u032b\u0337\u0342\u0350\u0357\u0360"+ - "\u0367\u036c\u0370\u037d\u0384\u038a\u038e\u0392\u0396\u039a\u039f\u03a3"+ - "\u03a7\u03a9\u03ae\u03b5\u03ba\u03bc\u03c2\u03c7\u03cb\u03de\u03e3\u03f3"+ - "\u03f6\u03fa\u0400\u0406\u0408\u040c\u0411\u0415\u041c\u0423\u042b\u042e"+ - "\u0433\u0437\u043d\u0442\u0449\u0450\u0455\u045b\u0467\u046c\u0470\u047a"+ - "\u047f\u0487\u048a\u048f\u0497\u049a\u049f\u04a4\u04a9\u04ae\u04b5\u04ba"+ - "\u04c2\u04c7\u04cc\u04d1\u04d7\u04dd\u04e0\u04e3\u04ec\u04f2\u04f8\u04fb"+ - "\u04fe\u0506\u050b\u0510\u0516\u0519\u0524\u052d\u0537\u053c\u0547\u054c"+ - "\u0558\u055d\u0569\u0573\u0578\u0580\u0583\u058a\u0592\u0598\u05a1\u05ab"+ - "\u05af\u05b2\u05bb\u05c9\u05cc\u05d5\u05da\u05e2\u05e8\u05f0\u05fc\u0603"+ - "\u0611\u0627\u0649\u0655\u065b\u0667\u0674\u068e\u0692\u0697\u069b\u069f"+ - "\u06a7\u06ab\u06af\u06b6\u06bf\u06c7\u06d6\u06e2\u06e8\u06ee\u0703\u0708"+ - "\u070e\u071a\u0725\u072f\u0732\u0737\u0740\u0746\u0750\u0755\u075e\u0775"+ - "\u077f\u0795\u079c\u07a4\u07ac\u07b7\u07ce\u07d8\u07e3\u07f9\u07fd\u0802"+ - "\u080a\u0810\u0814\u0818\u081c\u0822\u0827\u082c\u0830\u0834\u083a\u083f"+ - "\u0844\u0848\u084c\u084e\u0853\u0858\u085d\u0861\u0865\u0869\u086e\u0876"+ - "\u087c\u0880\u0884\u0888\u088e\u0893\u0898\u089c\u08a0\u08a2\u08a7\u08b6"+ - "\u08c4\u08d0\u08d9\u08e8\u08f5\u08fe\u0904\u090b\u0910\u0917\u091c\u0923"+ - "\u0928\u092f\u0934\u093c\u0941\u0945\u0949\u094e\u0955\u095c\u0961\u0968"+ - "\u096d\u0974\u0979\u0981\u0986\u098a\u0991\u0997\u099e\u09a5\u09ac\u09b4"+ - "\u09bb\u09c3\u09c7\u09ce\u09d5\u09dc\u09e4\u09eb\u09f3\u09f9\u09ff\u0a0b"+ - "\u0a11\u0a17\u0a22\u0a2b\u0a32\u0a39\u0a3e\u0a42\u0a4b\u0a56\u0a60\u0a6b"+ - "\u0a76\u0a81\u0a8c\u0a98\u0a9a\u0aaf\u0ab1\u0ac4\u0ac6\u0ad2\u0ad4\u0ae3"+ - "\u0ae5\u0aef\u0afd\u0b01\u0b05\u0b07\u0b1e\u0b29\u0b2f"; + "\u0969\u0968\3\2\2\2\u0969\u096a\3\2\2\2\u096a\u096b\3\2\2\2\u096b\u096c"+ + "\7h\2\2\u096c\u096e\7;\2\2\u096d\u096f\5\u0190\u00c9\2\u096e\u096d\3\2"+ + "\2\2\u096e\u096f\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0971\7<\2\2\u0971"+ + "\u098c\3\2\2\2\u0972\u0973\7*\2\2\u0973\u0975\7C\2\2\u0974\u0976\5,\27"+ + "\2\u0975\u0974\3\2\2\2\u0975\u0976\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978"+ + "\7h\2\2\u0978\u097a\7;\2\2\u0979\u097b\5\u0190\u00c9\2\u097a\u0979\3\2"+ + "\2\2\u097a\u097b\3\2\2\2\u097b\u097c\3\2\2\2\u097c\u098c\7<\2\2\u097d"+ + "\u097e\58\35\2\u097e\u097f\7C\2\2\u097f\u0980\7*\2\2\u0980\u0982\7C\2"+ + "\2\u0981\u0983\5,\27\2\u0982\u0981\3\2\2\2\u0982\u0983\3\2\2\2\u0983\u0984"+ + "\3\2\2\2\u0984\u0985\7h\2\2\u0985\u0987\7;\2\2\u0986\u0988\5\u0190\u00c9"+ + "\2\u0987\u0986\3\2\2\2\u0987\u0988\3\2\2\2\u0988\u0989\3\2\2\2\u0989\u098a"+ + "\7<\2\2\u098a\u098c\3\2\2\2\u098b\u0953\3\2\2\2\u098b\u095a\3\2\2\2\u098b"+ + "\u0966\3\2\2\2\u098b\u0972\3\2\2\2\u098b\u097d\3\2\2\2\u098c\u018f\3\2"+ + "\2\2\u098d\u0992\5\u01a0\u00d1\2\u098e\u098f\7B\2\2\u098f\u0991\5\u01a0"+ + "\u00d1\2\u0990\u098e\3\2\2\2\u0991\u0994\3\2\2\2\u0992\u0990\3\2\2\2\u0992"+ + "\u0993\3\2\2\2\u0993\u0191\3\2\2\2\u0994\u0992\3\2\2\2\u0995\u0996\5<"+ + "\37\2\u0996\u0998\7\\\2\2\u0997\u0999\5,\27\2\u0998\u0997\3\2\2\2\u0998"+ + "\u0999\3\2\2\2\u0999\u099a\3\2\2\2\u099a\u099b\7h\2\2\u099b\u09c5\3\2"+ + "\2\2\u099c\u099d\5\16\b\2\u099d\u099f\7\\\2\2\u099e\u09a0\5,\27\2\u099f"+ + "\u099e\3\2\2\2\u099f\u09a0\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u09a2\7h"+ + "\2\2\u09a2\u09c5\3\2\2\2\u09a3\u09a4\5\u0162\u00b2\2\u09a4\u09a6\7\\\2"+ + "\2\u09a5\u09a7\5,\27\2\u09a6\u09a5\3\2\2\2\u09a6\u09a7\3\2\2\2\u09a7\u09a8"+ + "\3\2\2\2\u09a8\u09a9\7h\2\2\u09a9\u09c5\3\2\2\2\u09aa\u09ab\7*\2\2\u09ab"+ + "\u09ad\7\\\2\2\u09ac\u09ae\5,\27\2\u09ad\u09ac\3\2\2\2\u09ad\u09ae\3\2"+ + "\2\2\u09ae\u09af\3\2\2\2\u09af\u09c5\7h\2\2\u09b0\u09b1\58\35\2\u09b1"+ + "\u09b2\7C\2\2\u09b2\u09b3\7*\2\2\u09b3\u09b5\7\\\2\2\u09b4\u09b6\5,\27"+ + "\2\u09b5\u09b4\3\2\2\2\u09b5\u09b6\3\2\2\2\u09b6\u09b7\3\2\2\2\u09b7\u09b8"+ + "\7h\2\2\u09b8\u09c5\3\2\2\2\u09b9\u09ba\5\22\n\2\u09ba\u09bc\7\\\2\2\u09bb"+ + "\u09bd\5,\27\2\u09bc\u09bb\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\3\2"+ + "\2\2\u09be\u09bf\7!\2\2\u09bf\u09c5\3\2\2\2\u09c0\u09c1\5 \21\2\u09c1"+ + "\u09c2\7\\\2\2\u09c2\u09c3\7!\2\2\u09c3\u09c5\3\2\2\2\u09c4\u0995\3\2"+ + "\2\2\u09c4\u099c\3\2\2\2\u09c4\u09a3\3\2\2\2\u09c4\u09aa\3\2\2\2\u09c4"+ + "\u09b0\3\2\2\2\u09c4\u09b9\3\2\2\2\u09c4\u09c0\3\2\2\2\u09c5\u0193\3\2"+ + "\2\2\u09c6\u09c8\7\\\2\2\u09c7\u09c9\5,\27\2\u09c8\u09c7\3\2\2\2\u09c8"+ + "\u09c9\3\2\2\2\u09c9\u09ca\3\2\2\2\u09ca\u09cb\7h\2\2\u09cb\u0195\3\2"+ + "\2\2\u09cc\u09cd\5<\37\2\u09cd\u09cf\7\\\2\2\u09ce\u09d0\5,\27\2\u09cf"+ + "\u09ce\3\2\2\2\u09cf\u09d0\3\2\2\2\u09d0\u09d1\3\2\2\2\u09d1\u09d2\7h"+ + "\2\2\u09d2\u09f5\3\2\2\2\u09d3\u09d4\5\16\b\2\u09d4\u09d6\7\\\2\2\u09d5"+ + "\u09d7\5,\27\2\u09d6\u09d5\3\2\2\2\u09d6\u09d7\3\2\2\2\u09d7\u09d8\3\2"+ + "\2\2\u09d8\u09d9\7h\2\2\u09d9\u09f5\3\2\2\2\u09da\u09db\7*\2\2\u09db\u09dd"+ + "\7\\\2\2\u09dc\u09de\5,\27\2\u09dd\u09dc\3\2\2\2\u09dd\u09de\3\2\2\2\u09de"+ + "\u09df\3\2\2\2\u09df\u09f5\7h\2\2\u09e0\u09e1\58\35\2\u09e1\u09e2\7C\2"+ + "\2\u09e2\u09e3\7*\2\2\u09e3\u09e5\7\\\2\2\u09e4\u09e6\5,\27\2\u09e5\u09e4"+ + "\3\2\2\2\u09e5\u09e6\3\2\2\2\u09e6\u09e7\3\2\2\2\u09e7\u09e8\7h\2\2\u09e8"+ + "\u09f5\3\2\2\2\u09e9\u09ea\5\22\n\2\u09ea\u09ec\7\\\2\2\u09eb\u09ed\5"+ + ",\27\2\u09ec\u09eb\3\2\2\2\u09ec\u09ed\3\2\2\2\u09ed\u09ee\3\2\2\2\u09ee"+ + "\u09ef\7!\2\2\u09ef\u09f5\3\2\2\2\u09f0\u09f1\5 \21\2\u09f1\u09f2\7\\"+ + "\2\2\u09f2\u09f3\7!\2\2\u09f3\u09f5\3\2\2\2\u09f4\u09cc\3\2\2\2\u09f4"+ + "\u09d3\3\2\2\2\u09f4\u09da\3\2\2\2\u09f4\u09e0\3\2\2\2\u09f4\u09e9\3\2"+ + "\2\2\u09f4\u09f0\3\2\2\2\u09f5\u0197\3\2\2\2\u09f6\u09f7\7!\2\2\u09f7"+ + "\u09f8\5\6\4\2\u09f8\u09fa\5\u019a\u00ce\2\u09f9\u09fb\5\"\22\2\u09fa"+ + "\u09f9\3\2\2\2\u09fa\u09fb\3\2\2\2\u09fb\u0a0d\3\2\2\2\u09fc\u09fd\7!"+ + "\2\2\u09fd\u09fe\5\20\t\2\u09fe\u0a00\5\u019a\u00ce\2\u09ff\u0a01\5\""+ + "\22\2\u0a00\u09ff\3\2\2\2\u0a00\u0a01\3\2\2\2\u0a01\u0a0d\3\2\2\2\u0a02"+ + "\u0a03\7!\2\2\u0a03\u0a04\5\6\4\2\u0a04\u0a05\5\"\22\2\u0a05\u0a06\5\u00fa"+ + "~\2\u0a06\u0a0d\3\2\2\2\u0a07\u0a08\7!\2\2\u0a08\u0a09\5\20\t\2\u0a09"+ + "\u0a0a\5\"\22\2\u0a0a\u0a0b\5\u00fa~\2\u0a0b\u0a0d\3\2\2\2\u0a0c\u09f6"+ + "\3\2\2\2\u0a0c\u09fc\3\2\2\2\u0a0c\u0a02\3\2\2\2\u0a0c\u0a07\3\2\2\2\u0a0d"+ + "\u0199\3\2\2\2\u0a0e\u0a12\5\u019c\u00cf\2\u0a0f\u0a11\5\u019c\u00cf\2"+ + "\u0a10\u0a0f\3\2\2\2\u0a11\u0a14\3\2\2\2\u0a12\u0a10\3\2\2\2\u0a12\u0a13"+ + "\3\2\2\2\u0a13\u019b\3\2\2\2\u0a14\u0a12\3\2\2\2\u0a15\u0a17\5\u00e8u"+ + "\2\u0a16\u0a15\3\2\2\2\u0a17\u0a1a\3\2\2\2\u0a18\u0a16\3\2\2\2\u0a18\u0a19"+ + "\3\2\2\2\u0a19\u0a1b\3\2\2\2\u0a1a\u0a18\3\2\2\2\u0a1b\u0a1c\7?\2\2\u0a1c"+ + "\u0a1d\5\u01a0\u00d1\2\u0a1d\u0a1e\7@\2\2\u0a1e\u019d\3\2\2\2\u0a1f\u0a20"+ + "\5\u01a0\u00d1\2\u0a20\u019f\3\2\2\2\u0a21\u0a24\5\u01a2\u00d2\2\u0a22"+ + "\u0a24\5\u01aa\u00d6\2\u0a23\u0a21\3\2\2\2\u0a23\u0a22\3\2\2\2\u0a24\u01a1"+ + "\3\2\2\2\u0a25\u0a26\5\u01a4\u00d3\2\u0a26\u0a27\7[\2\2\u0a27\u0a28\5"+ + "\u01a8\u00d5\2\u0a28\u01a3\3\2\2\2\u0a29\u0a30\7h\2\2\u0a2a\u0a2c\7;\2"+ + "\2\u0a2b\u0a2d\5\u0098M\2\u0a2c\u0a2b\3\2\2\2\u0a2c\u0a2d\3\2\2\2\u0a2d"+ + "\u0a2e\3\2\2\2\u0a2e\u0a30\7<\2\2\u0a2f\u0a29\3\2\2\2\u0a2f\u0a2a\3\2"+ + "\2\2\u0a30\u01a5\3\2\2\2\u0a31\u0a36\7h\2\2\u0a32\u0a33\7B\2\2\u0a33\u0a35"+ + "\7h\2\2\u0a34\u0a32\3\2\2\2\u0a35\u0a38\3\2\2\2\u0a36\u0a34\3\2\2\2\u0a36"+ + "\u0a37\3\2\2\2\u0a37\u01a7\3\2\2\2\u0a38\u0a36\3\2\2\2\u0a39\u0a3c\5\u01a0"+ + "\u00d1\2\u0a3a\u0a3c\5\u00fe\u0080\2\u0a3b\u0a39\3\2\2\2\u0a3b\u0a3a\3"+ + "\2\2\2\u0a3c\u01a9\3\2\2\2\u0a3d\u0a40\5\u01b2\u00da\2\u0a3e\u0a40\5\u01ac"+ + "\u00d7\2\u0a3f\u0a3d\3\2\2\2\u0a3f\u0a3e\3\2\2\2\u0a40\u01ab\3\2\2\2\u0a41"+ + "\u0a42\5\u01ae\u00d8\2\u0a42\u0a43\5\u01b0\u00d9\2\u0a43\u0a44\5\u01a0"+ + "\u00d1\2\u0a44\u01ad\3\2\2\2\u0a45\u0a49\5<\37\2\u0a46\u0a49\5\u017e\u00c0"+ + "\2\u0a47\u0a49\5\u0184\u00c3\2\u0a48\u0a45\3\2\2\2\u0a48\u0a46\3\2\2\2"+ + "\u0a48\u0a47\3\2\2\2\u0a49\u01af\3\2\2\2\u0a4a\u0a4b\t\5\2\2\u0a4b\u01b1"+ + "\3\2\2\2\u0a4c\u0a54\5\u01b4\u00db\2\u0a4d\u0a4e\5\u01b4\u00db\2\u0a4e"+ + "\u0a4f\7I\2\2\u0a4f\u0a50\5\u01a0\u00d1\2\u0a50\u0a51\7J\2\2\u0a51\u0a52"+ + "\5\u01b2\u00da\2\u0a52\u0a54\3\2\2\2\u0a53\u0a4c\3\2\2\2\u0a53\u0a4d\3"+ + "\2\2\2\u0a54\u01b3\3\2\2\2\u0a55\u0a56\b\u00db\1\2\u0a56\u0a57\5\u01b6"+ + "\u00dc\2\u0a57\u0a5d\3\2\2\2\u0a58\u0a59\f\3\2\2\u0a59\u0a5a\7P\2\2\u0a5a"+ + "\u0a5c\5\u01b6\u00dc\2\u0a5b\u0a58\3\2\2\2\u0a5c\u0a5f\3\2\2\2\u0a5d\u0a5b"+ + "\3\2\2\2\u0a5d\u0a5e\3\2\2\2\u0a5e\u01b5\3\2\2\2\u0a5f\u0a5d\3\2\2\2\u0a60"+ + "\u0a61\b\u00dc\1\2\u0a61\u0a62\5\u01b8\u00dd\2\u0a62\u0a68\3\2\2\2\u0a63"+ + "\u0a64\f\3\2\2\u0a64\u0a65\7O\2\2\u0a65\u0a67\5\u01b8\u00dd\2\u0a66\u0a63"+ + "\3\2\2\2\u0a67\u0a6a\3\2\2\2\u0a68\u0a66\3\2\2\2\u0a68\u0a69\3\2\2\2\u0a69"+ + "\u01b7\3\2\2\2\u0a6a\u0a68\3\2\2\2\u0a6b\u0a6c\b\u00dd\1\2\u0a6c\u0a6d"+ + "\5\u01ba\u00de\2\u0a6d\u0a73\3\2\2\2\u0a6e\u0a6f\f\3\2\2\u0a6f\u0a70\7"+ + "X\2\2\u0a70\u0a72\5\u01ba\u00de\2\u0a71\u0a6e\3\2\2\2\u0a72\u0a75\3\2"+ + "\2\2\u0a73\u0a71\3\2\2\2\u0a73\u0a74\3\2\2\2\u0a74\u01b9\3\2\2\2\u0a75"+ + "\u0a73\3\2\2\2\u0a76\u0a77\b\u00de\1\2\u0a77\u0a78\5\u01bc\u00df\2\u0a78"+ + "\u0a7e\3\2\2\2\u0a79\u0a7a\f\3\2\2\u0a7a\u0a7b\7Y\2\2\u0a7b\u0a7d\5\u01bc"+ + "\u00df\2\u0a7c\u0a79\3\2\2\2\u0a7d\u0a80\3\2\2\2\u0a7e\u0a7c\3\2\2\2\u0a7e"+ + "\u0a7f\3\2\2\2\u0a7f\u01bb\3\2\2\2\u0a80\u0a7e\3\2\2\2\u0a81\u0a82\b\u00df"+ + "\1\2\u0a82\u0a83\5\u01be\u00e0\2\u0a83\u0a89\3\2\2\2\u0a84\u0a85\f\3\2"+ + "\2\u0a85\u0a86\7W\2\2\u0a86\u0a88\5\u01be\u00e0\2\u0a87\u0a84\3\2\2\2"+ + "\u0a88\u0a8b\3\2\2\2\u0a89\u0a87\3\2\2\2\u0a89\u0a8a\3\2\2\2\u0a8a\u01bd"+ + "\3\2\2\2\u0a8b\u0a89\3\2\2\2\u0a8c\u0a8d\b\u00e0\1\2\u0a8d\u0a8e\5\u01c0"+ + "\u00e1\2\u0a8e\u0a97\3\2\2\2\u0a8f\u0a90\f\4\2\2\u0a90\u0a91\7K\2\2\u0a91"+ + "\u0a96\5\u01c0\u00e1\2\u0a92\u0a93\f\3\2\2\u0a93\u0a94\7N\2\2\u0a94\u0a96"+ + "\5\u01c0\u00e1\2\u0a95\u0a8f\3\2\2\2\u0a95\u0a92\3\2\2\2\u0a96\u0a99\3"+ + "\2\2\2\u0a97\u0a95\3\2\2\2\u0a97\u0a98\3\2\2\2\u0a98\u01bf\3\2\2\2\u0a99"+ + "\u0a97\3\2\2\2\u0a9a\u0a9b\b\u00e1\1\2\u0a9b\u0a9c\5\u01c2\u00e2\2\u0a9c"+ + "\u0aae\3\2\2\2\u0a9d\u0a9e\f\7\2\2\u0a9e\u0a9f\7F\2\2\u0a9f\u0aad\5\u01c2"+ + "\u00e2\2\u0aa0\u0aa1\f\6\2\2\u0aa1\u0aa2\7E\2\2\u0aa2\u0aad\5\u01c2\u00e2"+ + "\2\u0aa3\u0aa4\f\5\2\2\u0aa4\u0aa5\7L\2\2\u0aa5\u0aad\5\u01c2\u00e2\2"+ + "\u0aa6\u0aa7\f\4\2\2\u0aa7\u0aa8\7M\2\2\u0aa8\u0aad\5\u01c2\u00e2\2\u0aa9"+ + "\u0aaa\f\3\2\2\u0aaa\u0aab\7\34\2\2\u0aab\u0aad\5\16\b\2\u0aac\u0a9d\3"+ + "\2\2\2\u0aac\u0aa0\3\2\2\2\u0aac\u0aa3\3\2\2\2\u0aac\u0aa6\3\2\2\2\u0aac"+ + "\u0aa9\3\2\2\2\u0aad\u0ab0\3\2\2\2\u0aae\u0aac\3\2\2\2\u0aae\u0aaf\3\2"+ + "\2\2\u0aaf\u01c1\3\2\2\2\u0ab0\u0aae\3\2\2\2\u0ab1\u0ab2\b\u00e2\1\2\u0ab2"+ + "\u0ab3\5\u01c4\u00e3\2\u0ab3\u0ac3\3\2\2\2\u0ab4\u0ab5\f\5\2\2\u0ab5\u0ab6"+ + "\7F\2\2\u0ab6\u0ab7\7F\2\2\u0ab7\u0ac2\5\u01c4\u00e3\2\u0ab8\u0ab9\f\4"+ + "\2\2\u0ab9\u0aba\7E\2\2\u0aba\u0abb\7E\2\2\u0abb\u0ac2\5\u01c4\u00e3\2"+ + "\u0abc\u0abd\f\3\2\2\u0abd\u0abe\7E\2\2\u0abe\u0abf\7E\2\2\u0abf\u0ac0"+ + "\7E\2\2\u0ac0\u0ac2\5\u01c4\u00e3\2\u0ac1\u0ab4\3\2\2\2\u0ac1\u0ab8\3"+ + "\2\2\2\u0ac1\u0abc\3\2\2\2\u0ac2\u0ac5\3\2\2\2\u0ac3\u0ac1\3\2\2\2\u0ac3"+ + "\u0ac4\3\2\2\2\u0ac4\u01c3\3\2\2\2\u0ac5\u0ac3\3\2\2\2\u0ac6\u0ac7\b\u00e3"+ + "\1\2\u0ac7\u0ac8\5\u01c6\u00e4\2\u0ac8\u0ad1\3\2\2\2\u0ac9\u0aca\f\4\2"+ + "\2\u0aca\u0acb\7S\2\2\u0acb\u0ad0\5\u01c6\u00e4\2\u0acc\u0acd\f\3\2\2"+ + "\u0acd\u0ace\7T\2\2\u0ace\u0ad0\5\u01c6\u00e4\2\u0acf\u0ac9\3\2\2\2\u0acf"+ + "\u0acc\3\2\2\2\u0ad0\u0ad3\3\2\2\2\u0ad1\u0acf\3\2\2\2\u0ad1\u0ad2\3\2"+ + "\2\2\u0ad2\u01c5\3\2\2\2\u0ad3\u0ad1\3\2\2\2\u0ad4\u0ad5\b\u00e4\1\2\u0ad5"+ + "\u0ad6\5\u01c8\u00e5\2\u0ad6\u0ae2\3\2\2\2\u0ad7\u0ad8\f\5\2\2\u0ad8\u0ad9"+ + "\7U\2\2\u0ad9\u0ae1\5\u01c8\u00e5\2\u0ada\u0adb\f\4\2\2\u0adb\u0adc\7"+ + "V\2\2\u0adc\u0ae1\5\u01c8\u00e5\2\u0add\u0ade\f\3\2\2\u0ade\u0adf\7Z\2"+ + "\2\u0adf\u0ae1\5\u01c8\u00e5\2\u0ae0\u0ad7\3\2\2\2\u0ae0\u0ada\3\2\2\2"+ + "\u0ae0\u0add\3\2\2\2\u0ae1\u0ae4\3\2\2\2\u0ae2\u0ae0\3\2\2\2\u0ae2\u0ae3"+ + "\3\2\2\2\u0ae3\u01c7\3\2\2\2\u0ae4\u0ae2\3\2\2\2\u0ae5\u0aed\5\u01ca\u00e6"+ + "\2\u0ae6\u0aed\5\u01cc\u00e7\2\u0ae7\u0ae8\7S\2\2\u0ae8\u0aed\5\u01c8"+ + "\u00e5\2\u0ae9\u0aea\7T\2\2\u0aea\u0aed\5\u01c8\u00e5\2\u0aeb\u0aed\5"+ + "\u01ce\u00e8\2\u0aec\u0ae5\3\2\2\2\u0aec\u0ae6\3\2\2\2\u0aec\u0ae7\3\2"+ + "\2\2\u0aec\u0ae9\3\2\2\2\u0aec\u0aeb\3\2\2\2\u0aed\u01c9\3\2\2\2\u0aee"+ + "\u0aef\7Q\2\2\u0aef\u0af0\5\u01c8\u00e5\2\u0af0\u01cb\3\2\2\2\u0af1\u0af2"+ + "\7R\2\2\u0af2\u0af3\5\u01c8\u00e5\2\u0af3\u01cd\3\2\2\2\u0af4\u0afb\5"+ + "\u01d0\u00e9\2\u0af5\u0af6\7H\2\2\u0af6\u0afb\5\u01c8\u00e5\2\u0af7\u0af8"+ + "\7G\2\2\u0af8\u0afb\5\u01c8\u00e5\2\u0af9\u0afb\5\u01da\u00ee\2\u0afa"+ + "\u0af4\3\2\2\2\u0afa\u0af5\3\2\2\2\u0afa\u0af7\3\2\2\2\u0afa\u0af9\3\2"+ + "\2\2\u0afb\u01cf\3\2\2\2\u0afc\u0aff\5\u0162\u00b2\2\u0afd\u0aff\5<\37"+ + "\2\u0afe\u0afc\3\2\2\2\u0afe\u0afd\3\2\2\2\u0aff\u0b04\3\2\2\2\u0b00\u0b03"+ + "\5\u01d4\u00eb\2\u0b01\u0b03\5\u01d8\u00ed\2\u0b02\u0b00\3\2\2\2\u0b02"+ + "\u0b01\3\2\2\2\u0b03\u0b06\3\2\2\2\u0b04\u0b02\3\2\2\2\u0b04\u0b05\3\2"+ + "\2\2\u0b05\u01d1\3\2\2\2\u0b06\u0b04\3\2\2\2\u0b07\u0b08\5\u01d0\u00e9"+ + "\2\u0b08\u0b09\7Q\2\2\u0b09\u01d3\3\2\2\2\u0b0a\u0b0b\7Q\2\2\u0b0b\u01d5"+ + "\3\2\2\2\u0b0c\u0b0d\5\u01d0\u00e9\2\u0b0d\u0b0e\7R\2\2\u0b0e\u01d7\3"+ + "\2\2\2\u0b0f\u0b10\7R\2\2\u0b10\u01d9\3\2\2\2\u0b11\u0b12\7;\2\2\u0b12"+ + "\u0b13\5\6\4\2\u0b13\u0b14\7<\2\2\u0b14\u0b15\5\u01c8\u00e5\2\u0b15\u0b2d"+ + "\3\2\2\2\u0b16\u0b17\7;\2\2\u0b17\u0b1b\5\16\b\2\u0b18\u0b1a\5*\26\2\u0b19"+ + "\u0b18\3\2\2\2\u0b1a\u0b1d\3\2\2\2\u0b1b\u0b19\3\2\2\2\u0b1b\u0b1c\3\2"+ + "\2\2\u0b1c\u0b1e\3\2\2\2\u0b1d\u0b1b\3\2\2\2\u0b1e\u0b1f\7<\2\2\u0b1f"+ + "\u0b20\5\u01ce\u00e8\2\u0b20\u0b2d\3\2\2\2\u0b21\u0b22\7;\2\2\u0b22\u0b26"+ + "\5\16\b\2\u0b23\u0b25\5*\26\2\u0b24\u0b23\3\2\2\2\u0b25\u0b28\3\2\2\2"+ + "\u0b26\u0b24\3\2\2\2\u0b26\u0b27\3\2\2\2\u0b27\u0b29\3\2\2\2\u0b28\u0b26"+ + "\3\2\2\2\u0b29\u0b2a\7<\2\2\u0b2a\u0b2b\5\u01a2\u00d2\2\u0b2b\u0b2d\3"+ + "\2\2\2\u0b2c\u0b11\3\2\2\2\u0b2c\u0b16\3\2\2\2\u0b2c\u0b21\3\2\2\2\u0b2d"+ + "\u01db\3\2\2\2\u014a\u01e0\u01e5\u01ec\u01f0\u01f4\u01fd\u0201\u0205\u0207"+ + "\u020d\u0212\u0219\u021e\u0220\u0226\u022b\u0230\u0235\u0240\u024e\u0253"+ + "\u025b\u0262\u0268\u026d\u0278\u027b\u0289\u028e\u0293\u0298\u029e\u02a8"+ + "\u02b0\u02ba\u02c2\u02ce\u02d2\u02d7\u02dd\u02e5\u02ee\u02f9\u0316\u031a"+ + "\u031f\u0325\u0328\u032b\u0337\u0342\u0350\u0357\u035f\u0366\u036b\u036f"+ + "\u037c\u0383\u0389\u038d\u0391\u0395\u0399\u039e\u03a2\u03a6\u03a8\u03ad"+ + "\u03b4\u03b9\u03bb\u03c1\u03c6\u03ca\u03dd\u03e2\u03f2\u03f5\u03f9\u03ff"+ + "\u0403\u0407\u0409\u040d\u0412\u0416\u041d\u0424\u042c\u042f\u0434\u0438"+ + "\u043e\u0443\u044a\u0451\u0456\u045c\u0468\u046d\u0471\u047b\u0480\u0488"+ + "\u048b\u0490\u0498\u049b\u04a0\u04a5\u04aa\u04af\u04b6\u04bb\u04c3\u04c8"+ + "\u04cd\u04d2\u04d8\u04de\u04e1\u04e4\u04ed\u04f3\u04f9\u04fc\u04ff\u0507"+ + "\u050c\u0511\u0517\u051a\u0525\u052e\u0538\u053d\u0548\u054d\u0559\u055e"+ + "\u056a\u0574\u0579\u0581\u0584\u058b\u0593\u0599\u05a2\u05ac\u05b0\u05b3"+ + "\u05bc\u05ca\u05cd\u05d6\u05db\u05e3\u05e9\u05f1\u05fd\u0604\u0612\u0628"+ + "\u064a\u0656\u065c\u0668\u0675\u068f\u0693\u0698\u069c\u06a0\u06a8\u06ac"+ + "\u06b0\u06b7\u06c0\u06c8\u06d7\u06e3\u06e9\u06ef\u0704\u0709\u070f\u071b"+ + "\u0726\u0730\u0733\u0738\u0741\u0747\u0751\u0756\u075f\u0776\u0780\u0796"+ + "\u079d\u07a5\u07ad\u07b8\u07cf\u07d9\u07e4\u07fa\u07fe\u0803\u080b\u0811"+ + "\u0815\u0819\u081d\u0823\u0828\u082d\u0831\u0835\u083b\u0840\u0845\u0849"+ + "\u084d\u084f\u0854\u0859\u085e\u0862\u0866\u086a\u086f\u0877\u087d\u0881"+ + "\u0885\u0889\u088f\u0894\u0899\u089d\u08a1\u08a3\u08a8\u08b7\u08c5\u08d1"+ + "\u08da\u08e9\u08f6\u08ff\u0905\u090c\u0911\u0918\u091d\u0924\u0929\u0930"+ + "\u0935\u093d\u0942\u0946\u094a\u094f\u0956\u095d\u0962\u0969\u096e\u0975"+ + "\u097a\u0982\u0987\u098b\u0992\u0998\u099f\u09a6\u09ad\u09b5\u09bc\u09c4"+ + "\u09c8\u09cf\u09d6\u09dd\u09e5\u09ec\u09f4\u09fa\u0a00\u0a0c\u0a12\u0a18"+ + "\u0a23\u0a2c\u0a2f\u0a36\u0a3b\u0a3f\u0a48\u0a53\u0a5d\u0a68\u0a73\u0a7e"+ + "\u0a89\u0a95\u0a97\u0aac\u0aae\u0ac1\u0ac3\u0acf\u0ad1\u0ae0\u0ae2\u0aec"+ + "\u0afa\u0afe\u0b02\u0b04\u0b1b\u0b26\u0b2c"; public static final String _serializedATN = Utils.join( new String[] { _serializedATNSegment0, diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java index 14422351..f829e339 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java @@ -4,6 +4,7 @@ import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.typecheck.JavaClassName; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import org.antlr.v4.runtime.Token; @@ -24,8 +25,9 @@ public class ClassOrInterface extends GTVDeclarationContext implements IItemWith private RefTypeOrTPHOrWildcardOrGeneric superClass; protected boolean isInterface; private List implementedInterfaces; - - public ClassOrInterface(int modifiers, JavaClassName name, List fielddecl, List methods, GenericDeclarationList genericClassParameters, + private List constructors; + + public ClassOrInterface(int modifiers, JavaClassName name, List fielddecl, List methods, List constructors, GenericDeclarationList genericClassParameters, RefTypeOrTPHOrWildcardOrGeneric superClass, Boolean isInterface, List implementedInterfaces, Token offset){ super(offset); this.modifiers = modifiers; @@ -47,6 +49,7 @@ public class ClassOrInterface extends GTVDeclarationContext implements IItemWith this.implementedInterfaces = implementedInterfaces; } this.methods = methods; + this.constructors = constructors; } // Gets class name @@ -79,14 +82,22 @@ public class ClassOrInterface extends GTVDeclarationContext implements IItemWith } public RefType getType() { - return new RefType(this.getClassName(), this.getOffset()); + return generateTypeOfClass(this.getClassName(), this.getGenerics(), this.getOffset()); + } + + public static RefType generateTypeOfClass(JavaClassName name, GenericDeclarationList genericsOfClass ,Token offset){ + return new RefType(name, offset); } public RefTypeOrTPHOrWildcardOrGeneric getSuperClass() { return superClass; } - public Iterable getGenerics() { + public GenericDeclarationList getGenerics() { return this.genericClassParameters; } + + public List getConstructors() { + return constructors; + } } diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java index f8ed9be1..5670fc1e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -5,11 +5,8 @@ import java.util.ArrayList; import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; -import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; -import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; -import de.dhbwstuttgart.typeinference.constraints.Pair; import org.antlr.v4.runtime.Token; import de.dhbwstuttgart.core.IItemWithOffset; @@ -23,7 +20,7 @@ import de.dhbwstuttgart.syntaxtree.statement.Block; * @author janulrich * */ -public class Method extends Field implements IItemWithOffset +public class Method extends Field implements IItemWithOffset, TypeScope { private Block block; private ParameterList parameterlist = new ParameterList(new ArrayList<>(), new NullToken()); @@ -62,4 +59,9 @@ public class Method extends Field implements IItemWithOffset public Iterable getGenerics() { return generics; } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return this.getType(); + } } diff --git a/src/de/dhbwstuttgart/syntaxtree/TypeScope.java b/src/de/dhbwstuttgart/syntaxtree/TypeScope.java new file mode 100644 index 00000000..3631eb2e --- /dev/null +++ b/src/de/dhbwstuttgart/syntaxtree/TypeScope.java @@ -0,0 +1,10 @@ +package de.dhbwstuttgart.syntaxtree; + +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; + + +public interface TypeScope { + Iterable getGenerics(); + + RefTypeOrTPHOrWildcardOrGeneric getReturnType(); +} diff --git a/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java b/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java index c12dbd46..7a355c60 100644 --- a/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java +++ b/src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java @@ -35,8 +35,9 @@ public class ASTFactory { public ClassOrInterface createClass(java.lang.Class jreClass){ JavaClassName name = names.getName(jreClass.getName()); List methoden = new ArrayList<>(); + List konstruktoren = new ArrayList<>(); for(java.lang.reflect.Constructor constructor : jreClass.getConstructors()){ - methoden.add(createConstructor(constructor, jreClass)); + konstruktoren.add(createConstructor(constructor, jreClass)); } for(java.lang.reflect.Method method : jreClass.getMethods()){ methoden.add(createMethod(method, jreClass)); @@ -58,7 +59,8 @@ public class ASTFactory { GenericDeclarationList genericDeclarationList = createGenerics(jreClass.getTypeParameters(), jreClass, null); Token offset = new NullToken(); //Braucht keinen Offset, da diese Klasse nicht aus einem Quellcode geparst wurde - return new ClassOrInterface(modifier, name, felder, methoden, genericDeclarationList, superClass,isInterface, implementedInterfaces, offset); + + return new ClassOrInterface(modifier, name, felder, methoden, konstruktoren, genericDeclarationList, superClass,isInterface, implementedInterfaces, offset); } private de.dhbwstuttgart.syntaxtree.Constructor createConstructor(Constructor constructor, Class inClass) { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java index 88f7fd3c..6bc137c2 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java @@ -1,11 +1,11 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import de.dhbwstuttgart.syntaxtree.operator.Operator; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; // neu von Felix diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java index a8294daf..f65c6880 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/CastExpr.java @@ -1,10 +1,10 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; public class CastExpr extends Expression diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java index 8e8791ab..2f20bd23 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ForStmt.java @@ -1,10 +1,9 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; public class ForStmt extends Statement { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java index 23a4a44c..5ed2ee8e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java @@ -1,10 +1,10 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; public class InstVar extends Expression diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java index bedaf154..a22d3313 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/InstanceOf.java @@ -1,9 +1,9 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; public class InstanceOf extends BinaryExpr diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java index 21d67659..2d9cf941 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java @@ -1,37 +1,54 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.syntaxtree.FormalParameter; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.ParameterList; -import de.dhbwstuttgart.syntaxtree.type.FunN; +import de.dhbwstuttgart.syntaxtree.TypeScope; +import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; +import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; +import de.dhbwstuttgart.typeinference.constraints.Pair; +import org.antlr.v4.runtime.Token; import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import java.util.ArrayList; + /** * @author A10023 - Andreas Stadelmeier * Momentan erweitert LambdaExpression noch Expr und erbt dadurch auch von ExprStatement ist also auch ein Statement * * LambdaExpression Aufbau: - * ( ParameterList ) -> { method_body }; + * ( ParameterList ) -> { methodBody }; */ -public class LambdaExpression extends Expression{ - - - /** - * Wird bei der TYPE Methode gesetzt. Speichert den errechneten Typ des LambdaAusdrucks - */ - private FunN lambdaType; - - private Block method_body; +public class LambdaExpression extends Expression implements TypeScope { + private Block methodBody; private ParameterList params; - public LambdaExpression(int offset, int variableLength) { - super(null,null); + public LambdaExpression(RefTypeOrTPHOrWildcardOrGeneric type, ParameterList params, Block methodBody,Token offset) { + super(type,offset); + this.methodBody = methodBody; + this.params = params; } - @Override public ConstraintSet getConstraints(TypeInferenceBlockInformation info) { + TypeInferenceBlockInformation lambdaScope = new TypeInferenceBlockInformation(info, this); + ConstraintSet ret = methodBody.getConstraints(lambdaScope); throw new NotImplementedException(); + //return ret; + } + + @Override + public Iterable getGenerics() { + //Lambda-Ausdrücke haben keine Generics + return new ArrayList<>(); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + RefType type = (RefType) this.getType(); + return type.getParaList().get(0); } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarBunchDeclaration.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarBunchDeclaration.java index 192305f9..dc78c0e8 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarBunchDeclaration.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarBunchDeclaration.java @@ -1,11 +1,11 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.syntaxtree.type.Void; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.List; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java index 25d8689b..87e996b1 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java @@ -1,11 +1,12 @@ package de.dhbwstuttgart.syntaxtree.statement; +import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; + public class LocalVarDecl extends Statement { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java index 49031201..7fcf513c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java @@ -1,18 +1,24 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.exceptions.TypeinferenceException; +import de.dhbwstuttgart.syntaxtree.ClassOrInterface; +import de.dhbwstuttgart.syntaxtree.FormalParameter; +import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.ParameterList; +import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.Constraint; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption; +import de.dhbwstuttgart.typeinference.constraints.Pair; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; -import java.util.HashSet; -import java.util.Set; +import java.util.*; public class MethodCall extends Statement @@ -21,8 +27,8 @@ public class MethodCall extends Statement private Receiver receiver; private ArgumentList arglist; - public MethodCall(Receiver receiver, String methodName, ArgumentList argumentList, Token offset){ - super(TypePlaceholder.fresh(offset),offset); + public MethodCall(RefTypeOrTPHOrWildcardOrGeneric retType, Receiver receiver, String methodName, ArgumentList argumentList, Token offset){ + super(retType,offset); this.arglist = argumentList; this.name = methodName; this.receiver = receiver; @@ -49,21 +55,11 @@ public class MethodCall extends Statement @Override public ConstraintSet getConstraints(TypeInferenceBlockInformation info) { ConstraintSet ret = receiver.getConstraints(info); - ret.addAll(receiver.getConstraints(info)); - for(int i = 0;i methodConstraints = new HashSet<>(); - for(MethodAssumption m : info.getMethods(name, arglist)){ - Constraint methodConstraint = new Constraint(); - methodConstraint.add(ConstraintsFactory.createPair(receiver.getType(), m.getReceiverType(), PairOperator.SMALLERDOT, info)); - methodConstraint.add(ConstraintsFactory.createPair(m.getReturnType(), this.getType(), PairOperator.SMALLERDOT, info)); - for(int i = 0;i generateConstraint(MethodAssumption forMethod, TypeInferenceBlockInformation info){ + Constraint methodConstraint = new Constraint(); + methodConstraint.add(ConstraintsFactory.createPair(receiver.getType(), forMethod.getReceiverType(), PairOperator.SMALLERDOT, info)); + methodConstraint.add(ConstraintsFactory.createPair(forMethod.getReturnType(), this.getType(), PairOperator.SMALLERDOT, info)); + methodConstraint.addAll(generateParameterConstraints(forMethod, info)); + return methodConstraint; + } + + protected Set generateParameterConstraints(MethodAssumption forMethod, TypeInferenceBlockInformation info) { + Set ret = new HashSet<>(); + for(int i = 0;i getMethods(String name, ArgumentList arglist, TypeInferenceBlockInformation info) { + List ret = new ArrayList<>(); + for(ClassOrInterface cl : info.getAvailableClasses()){ + for(Method m : cl.getMethods()){ + if(m.getName().equals(name) && + m.getParameterList().getFormalparalist().size() == arglist.getArguments().size()){ + RefTypeOrTPHOrWildcardOrGeneric retType = info.checkGTV(m.getType()); + + ret.add(new MethodAssumption(cl.getType(), retType, convertParams(m.getParameterList(),info))); + } + } + } + return ret; + } + + protected List convertParams(ParameterList parameterList, TypeInferenceBlockInformation info){ + List params = new ArrayList<>(); + for(FormalParameter fp : parameterList.getFormalparalist()){ + params.add(info.checkGTV(fp.getType())); + } + return params; + } + + public ArgumentList getArgumentList() { + return arglist; + } + + public ConstraintSet getArgumentListConstraints(TypeInferenceBlockInformation info) { + ConstraintSet ret = new ConstraintSet(); + for(int i = 0;i getConstructors(TypeInferenceBlockInformation info, RefType ofType, ArgumentList argList){ + List ret = new ArrayList<>(); + for(ClassOrInterface cl : info.getAvailableClasses()){ + if(cl.getClassName().equals(ofType.getName())){ + for(Method m : cl.getConstructors()){ + if(m.getParameterList().getFormalparalist().size() == argList.getArguments().size()){ + ret.add(new MethodAssumption(ofType, ofType, convertParams(m.getParameterList(), info))); + } + } + } + } + return ret; } + @Override + protected Constraint generateConstraint(MethodAssumption forMethod, TypeInferenceBlockInformation info){ + Constraint methodConstraint = new Constraint(); + methodConstraint.add(ConstraintsFactory.createPair(forMethod.getReturnType(), this.getType(), PairOperator.SMALLERDOT, info)); + methodConstraint.addAll(generateParameterConstraints(forMethod, info)); + return methodConstraint; + } + + @Override + public List getMethods(String name, ArgumentList arglist, TypeInferenceBlockInformation info) { + return getConstructors(info, (RefType) this.getType(), arglist); + } @Override public ConstraintSet getConstraints(TypeInferenceBlockInformation info) { - throw new NotImplementedException(); + ConstraintSet ret = new ConstraintSet(); + ret.addAll(this.getArgumentListConstraints(info)); + //Overloading: + Set methodConstraints = new HashSet<>(); + for(MethodAssumption m : this.getConstructors(info, (RefType) this.getType(), this.getArgumentList())){ + methodConstraints.add(generateConstraint(m, info)); + } + if(methodConstraints.size()<1){ + throw new TypeinferenceException("Konstruktor in Klasse "+this.getType().toString()+" ist nicht vorhanden!",getOffset()); + } + ret.addOderConstraint(methodConstraints); + return ret; } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java index 9a664ba0..350c748f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/PostIncExpr.java @@ -3,8 +3,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; - -import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import de.dhbwstuttgart.exceptions.NotImplementedException; public class PostIncExpr extends UnaryExpr diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java index 6a2c6b6c..ba16d898 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Return.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Return.java @@ -2,7 +2,6 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; -import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintsFactory; import org.antlr.v4.runtime.Token; @@ -21,7 +20,7 @@ public class Return extends Statement public ConstraintSet getConstraints(TypeInferenceBlockInformation info) { ConstraintSet ret = retexpr.getConstraints(info); ret.addUndConstraint(ConstraintsFactory.createPair( - this.getType(),info.getCurrentMethod().getType(), info)); + this.getType(),info.getCurrentTypeScope().getReturnType(), info)); return ret; } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Super.java b/src/de/dhbwstuttgart/syntaxtree/statement/Super.java index 8151f0eb..47f5d8cc 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Super.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Super.java @@ -4,7 +4,7 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; import org.antlr.v4.runtime.Token; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import de.dhbwstuttgart.exceptions.NotImplementedException; public class Super extends Expression { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/This.java b/src/de/dhbwstuttgart/syntaxtree/statement/This.java index 6fab28fa..25d732e5 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/This.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/This.java @@ -11,7 +11,7 @@ import de.dhbwstuttgart.typeinference.constraints.Pair; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.atn.SemanticContext; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import de.dhbwstuttgart.exceptions.NotImplementedException; public class This extends Expression { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java index 8dea4bbd..e82405c0 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java @@ -8,7 +8,7 @@ public class ThisCall extends MethodCall { public ThisCall(Receiver receiver, ArgumentList arglist, int offset) { - super(null, null, null, null); + super(null, null, null, null, null); } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java index 06899933..2157560c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.java @@ -9,6 +9,6 @@ public abstract class UnaryExpr extends MethodCall public UnaryExpr(Token offset) { - super(null,null,null,null); + super(null,null,null,null,null); } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java index cb174f34..7c0caf10 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/UnaryPlus.java @@ -3,7 +3,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import de.dhbwstuttgart.exceptions.NotImplementedException; public class UnaryPlus extends Expression { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java index 1070639d..7641efb3 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java @@ -4,7 +4,7 @@ package de.dhbwstuttgart.syntaxtree.statement; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; +import de.dhbwstuttgart.exceptions.NotImplementedException; public class WhileStmt extends Statement { diff --git a/src/de/dhbwstuttgart/typedeployment/TypeInsertPoint.java b/src/de/dhbwstuttgart/typedeployment/TypeInsertPoint.java new file mode 100644 index 00000000..e57422cf --- /dev/null +++ b/src/de/dhbwstuttgart/typedeployment/TypeInsertPoint.java @@ -0,0 +1,17 @@ +package de.dhbwstuttgart.typedeployment; + +import org.antlr.v4.runtime.Token; + +public class TypeInsertPoint { + Token point; + private String insertString; + + public TypeInsertPoint(Token point, String toInsert){ + this.point = point; + this.insertString = toInsert; + } + + public String insert(String intoSource){ + return new StringBuilder(intoSource).insert(point.getStartIndex(), insertString).toString(); + } +} diff --git a/src/de/dhbwstuttgart/typeinference/ResultSet.java b/src/de/dhbwstuttgart/typeinference/ResultSet.java new file mode 100644 index 00000000..e8dbb6d7 --- /dev/null +++ b/src/de/dhbwstuttgart/typeinference/ResultSet.java @@ -0,0 +1,11 @@ +package de.dhbwstuttgart.typeinference; + +import de.dhbwstuttgart.typeinference.unify.model.UnifyPair; + +import java.util.Set; + +public class ResultSet { + public ResultSet(Set> results){ + + } +} diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java index 5cd7dab7..b0d459df 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceBlockInformation.java @@ -1,25 +1,60 @@ package de.dhbwstuttgart.typeinference.assumptions; +import com.google.common.collect.Iterables; +import com.google.common.collect.Iterators; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.FormalParameter; +import de.dhbwstuttgart.syntaxtree.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.TypeScope; +import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; +import java.util.ArrayList; import java.util.Set; +import java.util.Stack; +import java.util.stream.Collectors; public class TypeInferenceBlockInformation extends TypeInferenceInformation { - private Method methodContext; + private TypeScope methodContext; private ClassOrInterface currentClass; - public TypeInferenceBlockInformation(Set availableClasses, ClassOrInterface currentClass, Method methodContext) { + public TypeInferenceBlockInformation(Set availableClasses, + ClassOrInterface currentClass, TypeScope methodContext) { super(availableClasses); this.methodContext = methodContext; this.currentClass = currentClass; } - + public TypeInferenceBlockInformation(TypeInferenceBlockInformation oldScope, TypeScope newScope) { + this(oldScope.getAvailableClasses(), oldScope.currentClass, oldScope.methodContext); + methodContext = new TypeScopeContainer(methodContext, newScope); + } public ClassOrInterface getCurrentClass() { return currentClass; } - public Method getCurrentMethod() { + public TypeScope getCurrentTypeScope() { return methodContext; } + + private class TypeScopeContainer implements TypeScope{ + ArrayList scopes = new ArrayList<>(); + Stack types = new Stack<>(); + public TypeScopeContainer(TypeScope scope1, TypeScope scope2){ + scopes.add(scope1); + scopes.add(scope2); + types.push(scope1.getReturnType()); + types.push(scope2.getReturnType()); + } + public void add(TypeScope scope){ + } + + @Override + public Iterable getGenerics() { + return Iterables.concat(scopes.stream(). + map(TypeScope::getGenerics).collect(Collectors.toList()).toArray(new Iterable[0])); + } + + @Override + public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + return types.peek(); + } + } } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java index ec3ecb26..fe1c0cc9 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java @@ -2,14 +2,14 @@ package de.dhbwstuttgart.typeinference.assumptions; import de.dhbwstuttgart.exceptions.NotImplementedException; import de.dhbwstuttgart.parser.NullToken; -import de.dhbwstuttgart.syntaxtree.ClassOrInterface; -import de.dhbwstuttgart.syntaxtree.Field; -import de.dhbwstuttgart.syntaxtree.FormalParameter; -import de.dhbwstuttgart.syntaxtree.Method; +import de.dhbwstuttgart.syntaxtree.*; import de.dhbwstuttgart.syntaxtree.statement.ArgumentList; import de.dhbwstuttgart.syntaxtree.type.GenericRefType; +import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import de.dhbwstuttgart.typeinference.constraints.Constraint; +import de.dhbwstuttgart.typeinference.constraints.Pair; import java.util.ArrayList; import java.util.List; @@ -32,7 +32,7 @@ public class TypeInferenceInformation { classes = availableClasses; } - private RefTypeOrTPHOrWildcardOrGeneric checkGTV(RefTypeOrTPHOrWildcardOrGeneric type){ + public RefTypeOrTPHOrWildcardOrGeneric checkGTV(RefTypeOrTPHOrWildcardOrGeneric type){ if(type instanceof GenericRefType){ return TypePlaceholder.fresh(new NullToken()); }else{ @@ -40,25 +40,6 @@ public class TypeInferenceInformation { } } - public List getMethods(String name, ArgumentList arglist) { - List ret = new ArrayList<>(); - for(ClassOrInterface cl : classes){ - for(Method m : cl.getMethods()){ - if(m.getName().equals(name) && - m.getParameterList().getFormalparalist().size() == arglist.getArguments().size()){ - RefTypeOrTPHOrWildcardOrGeneric retType = checkGTV(m.getType()); - - List params = new ArrayList<>(); - for(FormalParameter fp : m.getParameterList().getFormalparalist()){ - params.add(checkGTV(fp.getType())); - } - ret.add(new MethodAssumption(cl.getType(), retType, params)); - } - } - } - return ret; - } - public List getFields(String name){ List ret = new ArrayList<>(); for(ClassOrInterface cl : classes){ diff --git a/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java b/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java index 6a13da40..51274131 100644 --- a/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java +++ b/src/de/dhbwstuttgart/typeinference/constraints/ConstraintsFactory.java @@ -9,7 +9,6 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation; import de.dhbwstuttgart.typeinference.unify.model.PairOperator; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; public class ConstraintsFactory { @@ -24,15 +23,7 @@ public class ConstraintsFactory { private static RefTypeOrTPHOrWildcardOrGeneric checkGeneric(RefTypeOrTPHOrWildcardOrGeneric type, TypeInferenceBlockInformation info){ if(type instanceof GenericRefType){ - List genericsInContext = new ArrayList<>(); - for(GenericTypeVar genericTypeVar : info.getCurrentClass().getGenerics()){ - genericsInContext.add(genericTypeVar); - } - if(info.getCurrentMethod() != null)for(GenericTypeVar genericTypeVar : info.getCurrentMethod().getGenerics()){ - genericsInContext.add(genericTypeVar); - } - - for(GenericTypeVar genericTypeVar : genericsInContext){ + for(GenericTypeVar genericTypeVar : info.getCurrentTypeScope().getGenerics()){ if(genericTypeVar.getName().equals(((GenericRefType)type).getName())){ return new RefType(((GenericRefType)type).getName(),type.getOffset()); } diff --git a/test/javFiles/Generics.jav b/test/javFiles/Generics.jav index 703ba6c2..9e4361a9 100644 --- a/test/javFiles/Generics.jav +++ b/test/javFiles/Generics.jav @@ -4,3 +4,9 @@ class Generics { return mt1(a, a); } } + +class Test { + methode(String s){ + return new Generics().mt1(s,s); + } +} diff --git a/test/javFiles/Lambda.jav b/test/javFiles/Lambda.jav new file mode 100644 index 00000000..8d394b0c --- /dev/null +++ b/test/javFiles/Lambda.jav @@ -0,0 +1,12 @@ +class Lambda{ + +String var; + +methode(){ +return () -> (f) -> { + f.apply(this,var); + return var; +}; +} + +} \ No newline at end of file diff --git a/test/parser/GeneralParserTest.java b/test/parser/GeneralParserTest.java index dc2cd424..fc293d13 100644 --- a/test/parser/GeneralParserTest.java +++ b/test/parser/GeneralParserTest.java @@ -30,6 +30,10 @@ public class GeneralParserTest{ filenames.add("ImportTest.jav"); filenames.add("CastTest.jav"); filenames.add("StatementsTest.jav"); +<<<<<<< HEAD + //filenames.add("Methods.jav"); +======= +>>>>>>> f05222fb563282945ba395047f54f6b3059b10c5 filenames.add("ImportTestGeneric.jav"); filenames.add("CastTest.jav"); //filenames.add("BoundedParameter.jav"); diff --git a/test/typeinference/JavaTXCompilerTest.java b/test/typeinference/JavaTXCompilerTest.java index 8760e321..7a73974b 100644 --- a/test/typeinference/JavaTXCompilerTest.java +++ b/test/typeinference/JavaTXCompilerTest.java @@ -17,7 +17,9 @@ public class JavaTXCompilerTest { public void test() throws IOException, ClassNotFoundException { JavaTXCompiler compiler = new JavaTXCompiler(); //compiler.parse(new File(rootDirectory+"Methods.jav")); - compiler.parse(new File(rootDirectory+"Generics.jav")); + //compiler.parse(new File(rootDirectory+"Generics.jav")); + compiler.parse(new File(rootDirectory+"MethodsEasy.jav")); + //compiler.parse(new File(rootDirectory+"Lambda.jav")); compiler.typeInference(); } } \ No newline at end of file