diff --git a/bin/mycompiler/myparser/JavaLexer.lex b/bin/mycompiler/myparser/JavaLexer.lex index 4306a57a..98de6371 100755 --- a/bin/mycompiler/myparser/JavaLexer.lex +++ b/bin/mycompiler/myparser/JavaLexer.lex @@ -169,18 +169,6 @@ null { {ws}|\n { /* System.out.print(yytext()); */ } \\.\n {org.apache.log4j.Logger.getLogger("parser").debug("Kommentar: "+yytext());} "->" {this.token = new Token(JavaParser.LAMBDAASSIGNMENT, yytext(), yyline, yychar);return true;} - - - - - - - - - - - - - +">" {this.token = new Token(JavaParser.ENDOFGENERICVARDECLARATION, yytext(), yyline, yychar);return true;} diff --git a/bin/mycompiler/myparser/JavaParser.jay b/bin/mycompiler/myparser/JavaParser.jay index c485cd43..d6ad2af1 100755 --- a/bin/mycompiler/myparser/JavaParser.jay +++ b/bin/mycompiler/myparser/JavaParser.jay @@ -7,6 +7,7 @@ Backup von JavaParser.jay 10.April 17 Uhr package mycompiler.myparser; import mycompiler.myclass.FieldDeclaration; +import mycompiler.myclass.GenericDeclarationList; import mycompiler.myclass.Field; import java.util.Vector; import mycompiler.SourceFile; @@ -200,6 +201,7 @@ public Vector testPair = new Vector(); %token OP %token EOF %token LAMBDAASSIGNMENT +%token ENDOFGENERICVARDECLARATION %type classdeclaration %type interfacedeclaration @@ -903,13 +905,13 @@ fielddeclarator : } -genericdeclarationlist : '<' boundedMethodParameters '>' +genericdeclarationlist : '<' boundedMethodParameters ENDOFGENERICVARDECLARATION { - GenericDeclarationList ret = new GenericDeclarationList($2); - ret.setOffset($3.getOffset()); + GenericDeclarationList ret = new GenericDeclarationList($2,$3.getOffset()); $$ = ret; } + fielddeclaration : fielddeclarator ';' { $$=$1; diff --git a/src/mycompiler/myclass/Class.java b/src/mycompiler/myclass/Class.java index 62699f34..80c4e831 100755 --- a/src/mycompiler/myclass/Class.java +++ b/src/mycompiler/myclass/Class.java @@ -1195,7 +1195,7 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface, IItemWit classBodyCode.attach(bodyString); //Zuerst die generischen Parameter für diese Klasse berechnen: - this.createGenericTypeVars(classBodyCode.getUnresolvedTPH()); + //this.createGenericTypeVars(classBodyCode.getUnresolvedTPH()); if(this.genericClassParameters != null && this.genericClassParameters.size()>0){ ret.attach("<"); @@ -1218,7 +1218,7 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface, IItemWit * Errechnet die Generischen Parameter der Klasse für diese Klasse. * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. * @param tphs : Alle übriggebliebenen TypePLaceholder - */ + private void createGenericTypeVars(Vector tphs){ this.genericClassParameters = new GenericDeclarationList(new Vector()); for(TypePlaceholder tph : tphs){ @@ -1226,7 +1226,7 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface, IItemWit if(!this.genericClassParameters.contains(toAdd))this.genericClassParameters.add(toAdd); } } - + */ /** * Errechnet die Generischen Parameter der Klasse für diese Klasse. * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. diff --git a/src/mycompiler/myclass/GenericDeclarationList.java b/src/mycompiler/myclass/GenericDeclarationList.java index 433b5b4a..d49a4d2c 100644 --- a/src/mycompiler/myclass/GenericDeclarationList.java +++ b/src/mycompiler/myclass/GenericDeclarationList.java @@ -13,9 +13,8 @@ import mycompiler.mytype.GenericTypeVar; */ public class GenericDeclarationList extends Vector{ - public GenericDeclarationList(Vector vector) { + public GenericDeclarationList(Vector vector, int offset) { // TODO Auto-generated constructor stub } - } diff --git a/src/mycompiler/myparser/JavaLexer.lex b/src/mycompiler/myparser/JavaLexer.lex index 4306a57a..98de6371 100755 --- a/src/mycompiler/myparser/JavaLexer.lex +++ b/src/mycompiler/myparser/JavaLexer.lex @@ -169,18 +169,6 @@ null { {ws}|\n { /* System.out.print(yytext()); */ } \\.\n {org.apache.log4j.Logger.getLogger("parser").debug("Kommentar: "+yytext());} "->" {this.token = new Token(JavaParser.LAMBDAASSIGNMENT, yytext(), yyline, yychar);return true;} - - - - - - - - - - - - - +">" {this.token = new Token(JavaParser.ENDOFGENERICVARDECLARATION, yytext(), yyline, yychar);return true;} diff --git a/src/mycompiler/myparser/JavaParser.java b/src/mycompiler/myparser/JavaParser.java index e69de29b..c49921c6 100644 --- a/src/mycompiler/myparser/JavaParser.java +++ b/src/mycompiler/myparser/JavaParser.java @@ -0,0 +1,4117 @@ +// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de + + // line 2 "./../src/mycompiler/myparser/JavaParser.jay" + +/* +Backup von JavaParser.jay 10.April 17 Uhr +*/ + +package mycompiler.myparser; + +import mycompiler.myclass.FieldDeclaration; +import mycompiler.myclass.GenericDeclarationList; +import mycompiler.myclass.Field; +import java.util.Vector; +import mycompiler.SourceFile; +import mycompiler.AClassOrInterface; +import mycompiler.myclass.Class; +import mycompiler.myclass.ClassBody; +import mycompiler.myclass.Constructor; +import mycompiler.myclass.Constant; +import mycompiler.myclass.ImportDeclarations; +import mycompiler.myclass.DeclId; +import mycompiler.myclass.ExceptionList; +import mycompiler.myclass.FormalParameter; +import mycompiler.myclass.Method; +import mycompiler.myclass.ParameterList; +import mycompiler.myclass.UsedId; +import mycompiler.myinterface.Interface; +import mycompiler.myinterface.InterfaceBody; +import mycompiler.mymodifier.Abstract; +import mycompiler.mymodifier.Final; +import mycompiler.mymodifier.Modifier; +import mycompiler.mymodifier.Modifiers; +import mycompiler.mymodifier.Private; +import mycompiler.mymodifier.Protected; +import mycompiler.mymodifier.Public; +import mycompiler.mymodifier.Static; +import mycompiler.myoperator.AndOp; +import mycompiler.myoperator.DivideOp; +import mycompiler.myoperator.EqualOp; +import mycompiler.myoperator.GreaterEquOp; +import mycompiler.myoperator.GreaterOp; +import mycompiler.myoperator.LessEquOp; +import mycompiler.myoperator.LessOp; +import mycompiler.myoperator.MinusOp; +import mycompiler.myoperator.ModuloOp; +import mycompiler.myoperator.NotEqualOp; +import mycompiler.myoperator.Operator; +import mycompiler.myoperator.OrOp; +import mycompiler.myoperator.PlusOp; +import mycompiler.myoperator.TimesOp; +import mycompiler.mystatement.ArgumentList; +import mycompiler.mystatement.Assign; +import mycompiler.mystatement.Binary; +import mycompiler.mystatement.Block; +import mycompiler.mystatement.BoolLiteral; +import mycompiler.mystatement.FloatLiteral; +import mycompiler.mystatement.DoubleLiteral; +import mycompiler.mystatement.LongLiteral; +import mycompiler.mystatement.CastExpr; +import mycompiler.mystatement.CharLiteral; +import mycompiler.mystatement.EmptyStmt; +import mycompiler.mystatement.Expr; +import mycompiler.mystatement.ExprStmt; +import mycompiler.mystatement.IfStmt; +import mycompiler.mystatement.InstanceOf; +import mycompiler.mystatement.IntLiteral; +import mycompiler.mystatement.Literal; +import mycompiler.mystatement.InstVar; +import mycompiler.mystatement.LocalOrFieldVar; +import mycompiler.mystatement.LocalVarDecl; +import mycompiler.mystatement.MethodCall; +import mycompiler.mystatement.NegativeExpr; +import mycompiler.mystatement.NewClass; +import mycompiler.mystatement.NotExpr; +import mycompiler.mystatement.Null; +import mycompiler.mystatement.PositivExpr; +import mycompiler.mystatement.PostDecExpr; +import mycompiler.mystatement.PostIncExpr; +import mycompiler.mystatement.PreDecExpr; +import mycompiler.mystatement.PreIncExpr; +import mycompiler.mystatement.Receiver; +import mycompiler.mystatement.Return; +import mycompiler.mystatement.Statement; +import mycompiler.mystatement.StringLiteral; +import mycompiler.mystatement.This; +import mycompiler.mystatement.UnaryMinus; +import mycompiler.mystatement.UnaryNot; +import mycompiler.mystatement.UnaryPlus; +import mycompiler.mystatement.WhileStmt; +import mycompiler.mystatement.ForStmt; +import mycompiler.mystatement.LambdaExpression; +import mycompiler.mytype.BaseType; +import mycompiler.mytype.BooleanType; +import mycompiler.mytype.CharacterType; +import mycompiler.mytype.GenericTypeVar; +import mycompiler.mytype.BoundedGenericTypeVar; +import mycompiler.mytype.IntegerType; +import mycompiler.mytype.ParaList; +import mycompiler.mytype.RefType; +import mycompiler.mytype.Type; +import mycompiler.mytype.TypePlaceholder; +import mycompiler.mytype.Void; +import mycompiler.mytype.WildcardType; +import mycompiler.mytype.ExtendsWildcardType; +import mycompiler.mytype.SuperWildcardType; +import mycompiler.mytype.Pair; + +public class JavaParser{ +public Vector path = new Vector(); + +//PL 05-07-30 eingefuegt. ANFANG +private Vector containedTypes = new Vector(); +private Vector usedIdsToCheck = new Vector(); + //Vektor aller Typdeklarationen die in aktueller Klasse vorkommen. + //wird nach Beendigung der Klasse des Attributs der jeweiligen + //Klasse zugeordnet + //nach dem Parsen wird mit wandleGeneric2RefType die + //die RefTypes gesetzt. +void initContainedTypes() { + this.containedTypes = new Vector(); +} +void initUsedIdsToCheck() { + this.usedIdsToCheck = new Vector(); +} +//PL 05-07-30 eingefuegt. ENDE + +//LUAR 07-05-29 Anfang für Wildcard Test +public Vector testPair = new Vector(); +//LUAR 07-05-29 Ende + // line 132 "-" +// %token constants + //{ //ergaenzt PL 23.01.01 wieder entfernt 21.12.01 + public static final int ABSTRACT = 257; + public static final int BOOLEAN = 258; + public static final int BREAK = 259; + public static final int CASE = 260; + public static final int CATCH = 261; + public static final int CHAR = 262; + public static final int CLASS = 263; + public static final int CONTINUE = 264; + public static final int DEFAULT = 265; + public static final int DO = 266; + public static final int ELSE = 267; + public static final int EXTENDS = 268; + public static final int FINAL = 269; + public static final int FINALLY = 270; + public static final int FOR = 271; + public static final int IF = 272; + public static final int INSTANCEOF = 273; + public static final int INT = 274; + public static final int NEW = 275; + public static final int PRIVATE = 276; + public static final int PROTECTED = 277; + public static final int PUBLIC = 278; + public static final int PACKAGE = 279; + public static final int IMPORT = 280; + public static final int INTERFACE = 281; + public static final int IMPLEMENTS = 282; + public static final int RETURN = 283; + public static final int STATIC = 284; + public static final int SUPER = 285; + public static final int SWITCH = 286; + public static final int THIS = 287; + public static final int THROW = 288; + public static final int THROWS = 289; + public static final int TRY = 290; + public static final int VOID = 291; + public static final int WHILE = 292; + public static final int INTLITERAL = 293; + public static final int LONGLITERAL = 294; + public static final int DOUBLELITERAL = 295; + public static final int FLOATLITERAL = 296; + public static final int BOOLLITERAL = 297; + public static final int JNULL = 298; + public static final int CHARLITERAL = 299; + public static final int STRINGLITERAL = 300; + public static final int IDENTIFIER = 301; + public static final int EQUAL = 302; + public static final int LESSEQUAL = 303; + public static final int GREATEREQUAL = 304; + public static final int NOTEQUAL = 305; + public static final int LOGICALOR = 306; + public static final int LOGICALAND = 307; + public static final int INCREMENT = 308; + public static final int DECREMENT = 309; + public static final int SHIFTLEFT = 310; + public static final int SHIFTRIGHT = 311; + public static final int UNSIGNEDSHIFTRIGHT = 312; + public static final int SIGNEDSHIFTRIGHT = 313; + public static final int PLUSEQUAL = 314; + public static final int MINUSEQUAL = 315; + public static final int TIMESEQUAL = 316; + public static final int DIVIDEEQUAL = 317; + public static final int ANDEQUAL = 318; + public static final int OREQUAL = 319; + public static final int XOREQUAL = 320; + public static final int MODULOEQUAL = 321; + public static final int SHIFTLEFTEQUAL = 322; + public static final int SIGNEDSHIFTRIGHTEQUAL = 323; + public static final int UNSIGNEDSHIFTRIGHTEQUAL = 324; + public static final int BRACE = 325; + public static final int RELOP = 326; + public static final int OP = 327; + public static final int EOF = 328; + public static final int LAMBDAASSIGNMENT = 329; + public static final int ENDOFGENERICVARDECLARATION = 330; + public static final int yyErrorCode = 256; + + /** thrown for irrecoverable syntax errors and stack overflow. + */ + public static class yyException extends java.lang.Exception { + public Token token; + public yyException (String message, Token token) { + super(message); + this.token=token; + } + } + + /** must be implemented by a scanner object to supply input to the parser. + */ + public interface yyInput { + /** move on to next token. + @return false if positioned beyond tokens. + @throws IOException on input error. + */ + boolean advance () throws java.io.IOException; + /** classifies current token. + Should not be called if advance() returned false. + @return current %token or single character. + */ + int token (); + /** associated with current token. + Should not be called if advance() returned false. + @return value for token(). + */ + Object value (); + } + + /** simplified error message. + @see yyerror + */ + public void yyerror (String message) { + yyerror(message, null); + } + + /** (syntax) error message. + Can be overwritten to control message format. + @param message text to be displayed. + @param expected vector of acceptable tokens, if available. + */ + public String yyerror (String message, String[] expected) { + if (expected != null && expected.length > 0) { + System.err.print(message+", expecting"); + message+=", expecting"; + for (int n = 0; n < expected.length; ++ n){ + System.err.print(" "+expected[n]); + message+=" "+expected[n];} + System.err.println(); + return message; + } else{ + System.err.println(message); + return message;} + } + + /** debugging support, requires the package jay.yydebug. + Set to null to suppress debugging messages. + */ +//t protected jay.yydebug.yyDebug yydebug; + + protected static final int yyFinal = 15; +//t public static final String yyRule [] = { +//t "$accept : compilationunit", +//t "compilationunit : typedeclarations", +//t "compilationunit : importdeclarations typedeclarations", +//t "compilationunit : packagedeclaration importdeclarations typedeclarations", +//t "compilationunit : packagedeclaration typedeclarations", +//t "compilationunit : type type compilationunit", +//t "packagedeclaration : PACKAGE name ';'", +//t "importdeclarations : importdeclaration", +//t "importdeclarations : importdeclarations importdeclaration", +//t "importdeclaration : IMPORT importqualifiedname ';'", +//t "typedeclarations : typedeclaration", +//t "typedeclarations : typedeclarations typedeclaration", +//t "name : qualifiedname", +//t "name : simplename", +//t "typedeclaration : classdeclaration", +//t "typedeclaration : interfacedeclaration", +//t "qualifiedname : name '.' IDENTIFIER", +//t "importqualifiedname : name '.' IDENTIFIER", +//t "importqualifiedname : name '.' '*'", +//t "simplename : IDENTIFIER", +//t "classdeclaration : CLASS classidentifier classbody", +//t "classdeclaration : modifiers CLASS classidentifier classbody", +//t "classdeclaration : CLASS classidentifier super classbody", +//t "classdeclaration : modifiers CLASS classidentifier super classbody", +//t "classdeclaration : CLASS classidentifier interfaces classbody", +//t "classdeclaration : modifiers CLASS classidentifier interfaces classbody", +//t "classdeclaration : CLASS classidentifier super interfaces classbody", +//t "classdeclaration : modifiers CLASS classidentifier super interfaces classbody", +//t "interfaceidentifier : IDENTIFIER", +//t "interfaceidentifier : IDENTIFIER '<' boundedClassParameters '>'", +//t "classidentifier : IDENTIFIER", +//t "classidentifier : IDENTIFIER '<' boundedClassParameters '>'", +//t "interfacedeclaration : INTERFACE interfaceidentifier interfacebody", +//t "interfacedeclaration : modifiers INTERFACE interfaceidentifier interfacebody", +//t "interfacedeclaration : INTERFACE interfaceidentifier extendsinterfaces interfacebody", +//t "interfacedeclaration : modifiers INTERFACE interfaceidentifier extendsinterfaces interfacebody", +//t "paralist : IDENTIFIER", +//t "paralist : IDENTIFIER '<' paralist '>'", +//t "paralist : wildcardparameter", +//t "paralist : paralist ',' IDENTIFIER", +//t "paralist : paralist ',' IDENTIFIER '<' paralist '>'", +//t "paralist : paralist ',' wildcardparameter", +//t "wildcardparameter : '?'", +//t "wildcardparameter : '?' EXTENDS referencetype", +//t "wildcardparameter : '?' SUPER referencetype", +//t "classbody : '{' '}'", +//t "classbody : '{' classbodydeclarations '}'", +//t "modifiers : modifier", +//t "modifiers : modifiers modifier", +//t "super : EXTENDS classtype", +//t "interfaces : IMPLEMENTS interfacetype", +//t "interfaces : interfaces ',' interfacetype", +//t "interfacebody : '{' '}'", +//t "interfacebody : '{' interfacememberdeclarations '}'", +//t "extendsinterfaces : EXTENDS interfacetype", +//t "extendsinterfaces : extendsinterfaces ',' interfacetype", +//t "classbodydeclarations : classbodydeclaration", +//t "classbodydeclarations : classbodydeclarations classbodydeclaration", +//t "modifier : PUBLIC", +//t "modifier : PROTECTED", +//t "modifier : PRIVATE", +//t "modifier : STATIC", +//t "modifier : ABSTRACT", +//t "modifier : FINAL", +//t "classtype : classorinterfacetype", +//t "interfacememberdeclarations : interfacememberdeclaration", +//t "interfacememberdeclarations : interfacememberdeclarations interfacememberdeclaration", +//t "interfacetype : classorinterfacetype", +//t "classbodydeclaration : classmemberdeclaration", +//t "classbodydeclaration : staticinitializer", +//t "classbodydeclaration : constructordeclaration", +//t "classorinterfacetype : simplename parameter", +//t "typelist : type", +//t "typelist : typelist ',' type", +//t "parameter :", +//t "parameter : '<' typelist '>'", +//t "interfacememberdeclaration : constantdeclaration", +//t "interfacememberdeclaration : abstractmethoddeclaration", +//t "classmemberdeclaration : fielddeclaration", +//t "classmemberdeclaration : methoddeclaration", +//t "staticinitializer : STATIC block", +//t "constructordeclaration : constructordeclarator constructorbody", +//t "constructordeclaration : modifiers constructordeclarator constructorbody", +//t "constantdeclaration : modifiers type IDENTIFIER '=' expression ';'", +//t "abstractmethoddeclaration : methodheader ';'", +//t "fielddeclarator : variabledeclarator '=' expression", +//t "genericdeclarationlist : '<' boundedMethodParameters ENDOFGENERICVARDECLARATION", +//t "fielddeclaration : fielddeclarator ';'", +//t "fielddeclaration : type fielddeclarator ';'", +//t "fielddeclaration : genericdeclarationlist type fielddeclarator ';'", +//t "fielddeclaration : variabledeclarators ';'", +//t "fielddeclaration : type variabledeclarators ';'", +//t "fielddeclaration : modifiers type variabledeclarators ';'", +//t "methoddeclaration : methodheader methodbody", +//t "block : '{' '}'", +//t "block : '{' blockstatements '}'", +//t "constructordeclarator : simplename '(' ')'", +//t "constructordeclarator : simplename '(' formalparameterlist ')'", +//t "constructorbody : '{' '}'", +//t "constructorbody : '{' explicitconstructorinvocation '}'", +//t "constructorbody : '{' blockstatements '}'", +//t "constructorbody : '{' explicitconstructorinvocation blockstatements '}'", +//t "throws : THROWS classtypelist", +//t "boundedClassParameter : boundedMethodParameter", +//t "boundedClassParameters : boundedClassParameter", +//t "boundedClassParameters : boundedClassParameters ',' boundedClassParameter", +//t "boundedMethodParameter : IDENTIFIER", +//t "boundedMethodParameter : IDENTIFIER EXTENDS boundedclassidentifierlist", +//t "boundedclassidentifierlist : referencetype", +//t "boundedclassidentifierlist : boundedclassidentifierlist '&' referencetype", +//t "boundedMethodParameters : boundedMethodParameter", +//t "boundedMethodParameters : boundedMethodParameters ',' boundedMethodParameter", +//t "methodheader : genericdeclarationlist type methoddeclarator", +//t "methodheader : type methoddeclarator", +//t "methodheader : modifiers type methoddeclarator", +//t "methodheader : modifiers genericdeclarationlist type methoddeclarator", +//t "methodheader : type methoddeclarator throws", +//t "methodheader : genericdeclarationlist type methoddeclarator throws", +//t "methodheader : modifiers type methoddeclarator throws", +//t "methodheader : modifiers genericdeclarationlist type methoddeclarator throws", +//t "methodheader : VOID methoddeclarator", +//t "methodheader : modifiers VOID methoddeclarator", +//t "methodheader : VOID methoddeclarator throws", +//t "methodheader : modifiers VOID methoddeclarator throws", +//t "methodheader : genericdeclarationlist VOID methoddeclarator", +//t "methodheader : modifiers genericdeclarationlist VOID methoddeclarator", +//t "methodheader : genericdeclarationlist VOID methoddeclarator throws", +//t "methodheader : modifiers genericdeclarationlist VOID methoddeclarator throws", +//t "methodheader : methoddeclarator", +//t "methodheader : genericdeclarationlist methoddeclarator", +//t "methodheader : modifiers methoddeclarator", +//t "methodheader : methoddeclarator throws", +//t "methodheader : modifiers methoddeclarator throws", +//t "type : primitivetype", +//t "type : primitivetype '[' ']'", +//t "type : referencetype", +//t "type : referencetype '[' ']'", +//t "variabledeclarators : variabledeclarator", +//t "variabledeclarators : variabledeclarators ',' variabledeclarator", +//t "methodbody : block", +//t "blockstatements : blockstatement", +//t "blockstatements : blockstatements blockstatement", +//t "formalparameterlist : formalparameter", +//t "formalparameterlist : formalparameterlist ',' formalparameter", +//t "explicitconstructorinvocation : THIS '(' ')' ';'", +//t "explicitconstructorinvocation : THIS '(' argumentlist ')' ';'", +//t "classtypelist : classtype", +//t "classtypelist : classtypelist ',' classtype", +//t "methoddeclarator : IDENTIFIER '(' ')'", +//t "methoddeclarator : IDENTIFIER '(' formalparameterlist ')'", +//t "primitivetype : BOOLEAN", +//t "primitivetype : numerictype", +//t "referencetype : classorinterfacetype", +//t "variabledeclarator : variabledeclaratorid", +//t "blockstatement : localvariabledeclarationstatement", +//t "blockstatement : statement", +//t "formalparameter : type variabledeclaratorid", +//t "formalparameter : variabledeclaratorid", +//t "argumentlist : expression", +//t "argumentlist : argumentlist ',' expression", +//t "numerictype : integraltype", +//t "variabledeclaratorid : IDENTIFIER", +//t "variableinitializer : expression", +//t "localvariabledeclarationstatement : localvariabledeclaration ';'", +//t "statement : statementwithouttrailingsubstatement", +//t "statement : ifthenstatement", +//t "statement : ifthenelsestatement", +//t "statement : whilestatement", +//t "statement : forstatement", +//t "expression : assignmentexpression", +//t "expression : classinstancecreationexpression", +//t "integraltype : INT", +//t "integraltype : CHAR", +//t "localvariabledeclaration : type variabledeclarators", +//t "localvariabledeclaration : variabledeclarators", +//t "statementwithouttrailingsubstatement : block", +//t "statementwithouttrailingsubstatement : emptystatement", +//t "statementwithouttrailingsubstatement : expressionstatement", +//t "statementwithouttrailingsubstatement : returnstatement", +//t "ifthenstatement : IF '(' expression ')' statement", +//t "ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement", +//t "whilestatement : WHILE '(' expression ')' statement", +//t "forstatement : FOR '(' expression ';' expression ';' expression ')' statement", +//t "forstatement : FOR '(' expression ';' expression ';' ')' statement", +//t "forstatement : FOR '(' expression ';' ';' expression ')' statement", +//t "forstatement : FOR '(' ';' expression ';' expression ')' statement", +//t "forstatement : FOR '(' expression ';' ';' ')' statement", +//t "forstatement : FOR '(' ';' expression ';' ')' statement", +//t "forstatement : FOR '(' ';' ';' expression ')' statement", +//t "forstatement : FOR '(' ';' ';' ')' statement", +//t "assignmentexpression : conditionalexpression", +//t "assignmentexpression : assignment", +//t "emptystatement : ';'", +//t "expressionstatement : statementexpression ';'", +//t "returnstatement : RETURN ';'", +//t "returnstatement : RETURN expression ';'", +//t "statementnoshortif : statementwithouttrailingsubstatement", +//t "statementnoshortif : ifthenelsestatementnoshortif", +//t "statementnoshortif : whilestatementnoshortif", +//t "conditionalexpression : conditionalorexpression", +//t "assignment : lefthandside assignmentoperator assignmentexpression", +//t "assignment : lefthandside assignmentoperator classinstancecreationexpression", +//t "statementexpression : assignment", +//t "statementexpression : preincrementexpression", +//t "statementexpression : predecrementexpression", +//t "statementexpression : postincrementexpression", +//t "statementexpression : postdecrementexpression", +//t "statementexpression : methodinvocation", +//t "ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif", +//t "whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif", +//t "conditionalorexpression : conditionalandexpression", +//t "conditionalorexpression : conditionalorexpression LOGICALOR conditionalandexpression", +//t "lambdaassignmentoperator : LAMBDAASSIGNMENT", +//t "lambdabody : block", +//t "lambdabody : expression", +//t "lambdaexpressionparameter : '(' ')'", +//t "lambdaexpressionparameter : '(' formalparameterlist ')'", +//t "lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody", +//t "lefthandside : name", +//t "assignmentoperator : '='", +//t "assignmentoperator : TIMESEQUAL", +//t "assignmentoperator : DIVIDEEQUAL", +//t "assignmentoperator : MODULOEQUAL", +//t "assignmentoperator : PLUSEQUAL", +//t "assignmentoperator : MINUSEQUAL", +//t "preincrementexpression : INCREMENT unaryexpression", +//t "predecrementexpression : DECREMENT unaryexpression", +//t "postincrementexpression : postfixexpression INCREMENT", +//t "postdecrementexpression : postfixexpression DECREMENT", +//t "methodinvocation : name '(' ')'", +//t "methodinvocation : name '(' argumentlist ')'", +//t "methodinvocation : primary '.' IDENTIFIER '(' ')'", +//t "methodinvocation : primary '.' IDENTIFIER '(' argumentlist ')'", +//t "classinstancecreationexpression : NEW classtype '(' ')'", +//t "classinstancecreationexpression : NEW classtype '(' argumentlist ')'", +//t "conditionalandexpression : inclusiveorexpression", +//t "conditionalandexpression : conditionalandexpression LOGICALAND inclusiveorexpression", +//t "unaryexpression : preincrementexpression", +//t "unaryexpression : predecrementexpression", +//t "unaryexpression : '+' unaryexpression", +//t "unaryexpression : '-' unaryexpression", +//t "unaryexpression : unaryexpressionnotplusminus", +//t "postfixexpression : primary", +//t "postfixexpression : name", +//t "postfixexpression : postincrementexpression", +//t "postfixexpression : postdecrementexpression", +//t "primary : primarynonewarray", +//t "inclusiveorexpression : exclusiveorexpression", +//t "inclusiveorexpression : inclusiveorexpression '|' exclusiveorexpression", +//t "primarynonewarray : literal", +//t "primarynonewarray : THIS", +//t "primarynonewarray : methodinvocation", +//t "primarynonewarray : lambdaexpression", +//t "unaryexpressionnotplusminus : postfixexpression", +//t "unaryexpressionnotplusminus : '!' unaryexpression", +//t "unaryexpressionnotplusminus : castexpression", +//t "exclusiveorexpression : andexpression", +//t "exclusiveorexpression : exclusiveorexpression '^' andexpression", +//t "literal : INTLITERAL", +//t "literal : BOOLLITERAL", +//t "literal : CHARLITERAL", +//t "literal : STRINGLITERAL", +//t "literal : LONGLITERAL", +//t "literal : FLOATLITERAL", +//t "literal : DOUBLELITERAL", +//t "literal : JNULL", +//t "castexpression : '(' primitivetype ')' unaryexpression", +//t "andexpression : equalityexpression", +//t "andexpression : andexpression '&' equalityexpression", +//t "equalityexpression : relationalexpression", +//t "equalityexpression : equalityexpression EQUAL relationalexpression", +//t "equalityexpression : equalityexpression NOTEQUAL relationalexpression", +//t "relationalexpression : shiftexpression", +//t "relationalexpression : relationalexpression '<' shiftexpression", +//t "relationalexpression : relationalexpression '>' shiftexpression", +//t "relationalexpression : relationalexpression LESSEQUAL shiftexpression", +//t "relationalexpression : relationalexpression GREATEREQUAL shiftexpression", +//t "relationalexpression : relationalexpression INSTANCEOF referencetype", +//t "shiftexpression : additiveexpression", +//t "additiveexpression : multiplicativeexpression", +//t "additiveexpression : additiveexpression '+' multiplicativeexpression", +//t "additiveexpression : additiveexpression '-' multiplicativeexpression", +//t "multiplicativeexpression : unaryexpression", +//t "multiplicativeexpression : multiplicativeexpression '*' unaryexpression", +//t "multiplicativeexpression : multiplicativeexpression '/' unaryexpression", +//t "multiplicativeexpression : multiplicativeexpression '%' unaryexpression", +//t }; + protected static final String yyName [] = { + "end-of-file",null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,"'!'",null,null,null,"'%'","'&'", + null,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",null,null,null, + null,null,null,null,null,null,null,null,"';'","'<'","'='","'>'","'?'", + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null, + "'['",null,"']'","'^'",null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,"'{'","'|'","'}'",null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + null,null,null,null,null,null,null,null,null,null,null,null,null,null, + "ABSTRACT","BOOLEAN","BREAK","CASE","CATCH","CHAR","CLASS","CONTINUE", + "DEFAULT","DO","ELSE","EXTENDS","FINAL","FINALLY","FOR","IF", + "INSTANCEOF","INT","NEW","PRIVATE","PROTECTED","PUBLIC","PACKAGE", + "IMPORT","INTERFACE","IMPLEMENTS","RETURN","STATIC","SUPER","SWITCH", + "THIS","THROW","THROWS","TRY","VOID","WHILE","INTLITERAL", + "LONGLITERAL","DOUBLELITERAL","FLOATLITERAL","BOOLLITERAL","JNULL", + "CHARLITERAL","STRINGLITERAL","IDENTIFIER","EQUAL","LESSEQUAL", + "GREATEREQUAL","NOTEQUAL","LOGICALOR","LOGICALAND","INCREMENT", + "DECREMENT","SHIFTLEFT","SHIFTRIGHT","UNSIGNEDSHIFTRIGHT", + "SIGNEDSHIFTRIGHT","PLUSEQUAL","MINUSEQUAL","TIMESEQUAL", + "DIVIDEEQUAL","ANDEQUAL","OREQUAL","XOREQUAL","MODULOEQUAL", + "SHIFTLEFTEQUAL","SIGNEDSHIFTRIGHTEQUAL","UNSIGNEDSHIFTRIGHTEQUAL", + "BRACE","RELOP","OP","EOF","LAMBDAASSIGNMENT", + "ENDOFGENERICVARDECLARATION", + }; + + /** index-checked interface to yyName[]. + @param token single character or %token value. + @return token name or [illegal] or [unknown]. + */ +//t public static final String yyname (int token) { +//t if (token < 0 || token > yyName.length) return "[illegal]"; +//t String name; +//t if ((name = yyName[token]) != null) return name; +//t return "[unknown]"; +//t } + + /** computes list of expected tokens on error by tracing the tables. + @param state for which to compute the list. + @return list of token names. + */ + protected String[] yyExpecting (int state) { + // yyCheck durch yyCheckInit.yyCheck; ersetzt PL 25.1.01 + int token, n, len = 0; + boolean[] ok = new boolean[yyName.length]; + + if ((n = yySindex[state]) != 0) + for (token = n < 0 ? -n : 0; + token < yyName.length && n+token < yyTable.length; ++ token) + if (yyCheckInit.yyCheck[n+token] == token && !ok[token] && yyName[token] != null) { + ++ len; + ok[token] = true; + } + if ((n = yyRindex[state]) != 0) + for (token = n < 0 ? -n : 0; + token < yyName.length && n+token < yyTable.length; ++ token) + if (yyCheckInit.yyCheck[n+token] == token && !ok[token] && yyName[token] != null) { + ++ len; + ok[token] = true; + } + + String result[] = new String[len]; + for (n = token = 0; n < len; ++ token) + if (ok[token]) result[n++] = yyName[token]; + return result; + } + + /** the generated parser, with debugging messages. + Maintains a state and a value stack, currently with fixed maximum size. + @param yyLex scanner. + @param yydebug debug message writer implementing yyDebug, or null. + @return result of the last reduction, if any. + @throws yyException on irrecoverable parse error. + */ + public Object yyparse (yyInput yyLex, Object yydebug) + throws java.io.IOException, yyException { +//t this.yydebug = (jay.yydebug.yyDebug)yydebug; + return yyparse(yyLex); + } + + /** initial size and increment of the state/value stack [default 256]. + This is not final so that it can be overwritten outside of invocations + of yyparse(). + */ + protected int yyMax; + + /** executed at the beginning of a reduce action. + Used as $$ = yyDefault($1), prior to the user-specified action, if any. + Can be overwritten to provide deep copy, etc. + @param first value for $1, or null. + @return first. + */ + protected Object yyDefault (Object first) { + return first; + } + + /** the generated parser. + Maintains a state and a value stack, currently with fixed maximum size. + @param yyLex scanner. + @return result of the last reduction, if any. + @throws yyException on irrecoverable parse error. + */ + public Object yyparse (yyInput yyLex) + throws java.io.IOException, yyException { + // yyCheck durch yyCheckInit.yyCheck; ersetzt PL 23.1.01 + yyCheckInit.yyCheckInit(); // initial yyCheck eingefuegt PL 25.1.01 + if (yyMax <= 0) yyMax = 256; // initial size + int yyState = 0, yyStates[] = new int[yyMax]; // state stack + Object yyVal = null, yyVals[] = new Object[yyMax]; // value stack + int yyToken = -1; // current input + int yyErrorFlag = 0; // #tks to shift + Scanner yyScanner = (Scanner)yyLex; + String yyErrorString = "irrecoverable syntax error"; + + yyLoop: for (int yyTop = 0;; ++ yyTop) { + if (yyTop >= yyStates.length) { // dynamically increase + int[] i = new int[yyStates.length+yyMax]; + System.arraycopy(yyStates, 0, i, 0, yyStates.length); + yyStates = i; + Object[] o = new Object[yyVals.length+yyMax]; + System.arraycopy(yyVals, 0, o, 0, yyVals.length); + yyVals = o; + } + yyStates[yyTop] = yyState; + yyVals[yyTop] = yyVal; +//t if (yydebug != null) yydebug.push(yyState, yyVal); + + yyDiscarded: for (;;) { // discarding a token does not change stack + int yyN; + if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) + if (yyToken < 0) { + yyToken = yyLex.advance() ? yyLex.token() : 0; +//t if (yydebug != null) +//t yydebug.lex(yyState, yyToken, yyname(yyToken), yyLex.value()); + } + if ((yyN = yySindex[yyState]) != 0 && (yyN += yyToken) >= 0 + && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyToken) { +//t if (yydebug != null) +//t yydebug.shift(yyState, yyTable[yyN], yyErrorFlag-1); + yyState = yyTable[yyN]; // shift to yyN + yyVal = yyLex.value(); + yyToken = -1; + if (yyErrorFlag > 0) -- yyErrorFlag; + continue yyLoop; + } + if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 + && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyToken) + yyN = yyTable[yyN]; // reduce (yyN) + else + switch (yyErrorFlag) { + + case 0: + yyErrorString=yyerror("syntax error", yyExpecting(yyState)); +//t if (yydebug != null) yydebug.error("syntax error"); + + case 1: case 2: + yyErrorFlag = 3; + do { + if ((yyN = yySindex[yyStates[yyTop]]) != 0 + && (yyN += yyErrorCode) >= 0 && yyN < yyTable.length + && yyCheckInit.yyCheck[yyN] == yyErrorCode) { +//t if (yydebug != null) +//t yydebug.shift(yyStates[yyTop], yyTable[yyN], 3); + yyState = yyTable[yyN]; + yyVal = yyLex.value(); + continue yyLoop; + } +//t if (yydebug != null) yydebug.pop(yyStates[yyTop]); + } while (-- yyTop >= 0); +//t if (yydebug != null) yydebug.reject(); + throw new yyException(yyErrorString, yyScanner.token); + + case 3: + if (yyToken == 0) { +//t if (yydebug != null) yydebug.reject(); + throw new yyException(yyErrorString+"at end-of-file", yyScanner.token); + } +//t if (yydebug != null) +//t yydebug.discard(yyState, yyToken, yyname(yyToken), +//t yyLex.value()); + yyToken = -1; + continue yyDiscarded; // leave stack alone + } + } + int yyV = yyTop + 1-yyLen[yyN]; +//t if (yydebug != null) +//t yydebug.reduce(yyState, yyStates[yyV-1], yyN, yyRule[yyN], yyLen[yyN]); + yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); + switch (yyN) { +case 1: + // line 326 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((SourceFile)yyVals[0+yyTop]); + } + break; +case 2: + // line 330 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((SourceFile)yyVals[0+yyTop]).addImports(((ImportDeclarations)yyVals[-1+yyTop])); + yyVal=((SourceFile)yyVals[0+yyTop]); + } + break; +case 3: + // line 335 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Package*/ + ((SourceFile)yyVals[0+yyTop]).setPackageName(((UsedId)yyVals[-2+yyTop])); + ((SourceFile)yyVals[0+yyTop]).addImports(((ImportDeclarations)yyVals[-1+yyTop])); + yyVal=((SourceFile)yyVals[0+yyTop]); + } + break; +case 4: + // line 342 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Package*/ + ((SourceFile)yyVals[0+yyTop]).setPackageName(((UsedId)yyVals[-1+yyTop])); + yyVal=((SourceFile)yyVals[0+yyTop]); + } + break; +case 5: + // line 348 "./../src/mycompiler/myparser/JavaParser.jay" + { + this.testPair.add(new Pair(((Type)yyVals[-2+yyTop]),((Type)yyVals[-1+yyTop]))); + yyVal=((SourceFile)yyVals[0+yyTop]); + } + break; +case 6: + // line 354 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Package*/ + yyVal = ((UsedId)yyVals[-1+yyTop]); + } + break; +case 7: + // line 360 "./../src/mycompiler/myparser/JavaParser.jay" + { + ImportDeclarations declarations=new ImportDeclarations(); + declarations.addElement(((UsedId)yyVals[0+yyTop])); + yyVal=declarations; + } + break; +case 8: + // line 366 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ImportDeclarations)yyVals[-1+yyTop]).addElement(((UsedId)yyVals[0+yyTop])); + yyVal=((ImportDeclarations)yyVals[-1+yyTop]); + } + break; +case 9: + // line 372 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((UsedId)yyVals[-1+yyTop]); + } + break; +case 10: + // line 377 "./../src/mycompiler/myparser/JavaParser.jay" + { + SourceFile Scfile = new SourceFile(); + Scfile.addElement(((AClassOrInterface)yyVals[0+yyTop])); + yyVal=Scfile; + } + break; +case 11: + // line 383 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((SourceFile)yyVals[-1+yyTop]).addElement(((AClassOrInterface)yyVals[0+yyTop])); + yyVal=((SourceFile)yyVals[-1+yyTop]); + } + break; +case 12: + // line 389 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((UsedId)yyVals[0+yyTop]); + } + break; +case 13: + // line 393 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((UsedId)yyVals[0+yyTop]); + } + break; +case 14: + // line 398 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Class)yyVals[0+yyTop]); + } + break; +case 15: + // line 402 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + yyVal=((Interface)yyVals[0+yyTop]); + } + break; +case 16: + // line 409 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((UsedId)yyVals[-2+yyTop]).set_Name(((Token)yyVals[0+yyTop]).getLexem()); + ((UsedId)yyVals[-2+yyTop]).setOffset(((UsedId)yyVals[-2+yyTop]).getOffset()); + yyVal=((UsedId)yyVals[-2+yyTop]); + } + break; +case 17: + // line 416 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((UsedId)yyVals[-2+yyTop]).set_Name(((Token)yyVals[0+yyTop]).getLexem()); + ((UsedId)yyVals[-2+yyTop]).setOffset(((UsedId)yyVals[-2+yyTop]).getOffset()); + yyVal=((UsedId)yyVals[-2+yyTop]); + } + break; +case 18: + // line 422 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((UsedId)yyVals[-2+yyTop]).set_Name("*"); + ((UsedId)yyVals[-2+yyTop]).setOffset(((UsedId)yyVals[-2+yyTop]).getOffset()); + yyVal=((UsedId)yyVals[-2+yyTop]); + } + break; +case 19: + // line 430 "./../src/mycompiler/myparser/JavaParser.jay" + { + UsedId UI = new UsedId(((Token)yyVals[0+yyTop]).getOffset()); + UI.set_Name( ((Token)yyVals[0+yyTop]).getLexem() ); + UI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + yyVal = UI; + } + break; +case 20: + // line 438 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Um das hier uebersichtlicher zu halten,*/ + /* gibt es einen allumfassenden Konstruktor fuer Class*/ + /* Parameter:*/ + /* String name, */ + /* Modifiers mod,*/ + /* ClassBody classbody, */ + /* Vector containedtypes, */ + /* UsedId superclass, */ + /* Vector SuperInterfaces, */ + /* Vector Parameterliste*/ + + yyVal = new Class(((ClassAndParameter)yyVals[-1+yyTop]).getName(), null, ((ClassBody)yyVals[0+yyTop]), containedTypes, usedIdsToCheck, null, null, ((ClassAndParameter)yyVals[-1+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 21: + // line 455 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-1+yyTop]).getName(), ((Modifiers)yyVals[-3+yyTop]), ((ClassBody)yyVals[0+yyTop]), containedTypes,usedIdsToCheck, null, null, ((ClassAndParameter)yyVals[-1+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 22: + // line 461 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-2+yyTop]).getName(), null, ((ClassBody)yyVals[0+yyTop]), containedTypes,usedIdsToCheck, ((UsedId)yyVals[-1+yyTop]), null, ((ClassAndParameter)yyVals[-2+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 23: + // line 467 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-2+yyTop]).getName(), ((Modifiers)yyVals[-4+yyTop]), ((ClassBody)yyVals[0+yyTop]), containedTypes, usedIdsToCheck, ((UsedId)yyVals[-1+yyTop]), null, ((ClassAndParameter)yyVals[-2+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 24: + // line 474 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-2+yyTop]).getName(), null, ((ClassBody)yyVals[0+yyTop]), containedTypes, usedIdsToCheck, null, ((InterfaceList)yyVals[-1+yyTop]).getVector(), ((ClassAndParameter)yyVals[-2+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 25: + // line 480 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-2+yyTop]).getName(), ((Modifiers)yyVals[-4+yyTop]), ((ClassBody)yyVals[0+yyTop]), containedTypes, usedIdsToCheck, null, ((InterfaceList)yyVals[-1+yyTop]).getVector(), ((ClassAndParameter)yyVals[-2+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 26: + // line 486 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-3+yyTop]).getName(), null, ((ClassBody)yyVals[0+yyTop]), containedTypes,usedIdsToCheck, ((UsedId)yyVals[-2+yyTop]), ((InterfaceList)yyVals[-1+yyTop]).getVector(), ((ClassAndParameter)yyVals[-3+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 27: + // line 492 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new Class(((ClassAndParameter)yyVals[-3+yyTop]).getName(), ((Modifiers)yyVals[-5+yyTop]), ((ClassBody)yyVals[0+yyTop]), containedTypes, usedIdsToCheck, ((UsedId)yyVals[-2+yyTop]), ((InterfaceList)yyVals[-1+yyTop]).getVector(), ((ClassAndParameter)yyVals[-3+yyTop]).getParaVector()); + this.initContainedTypes(); + this.initUsedIdsToCheck(); + } + break; +case 28: + // line 499 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* HOTI*/ + /* Verbindet den Namen eines Interfaces mit einer optionalen Parameterliste*/ + yyVal = new InterfaceAndParameter(((Token)yyVals[0+yyTop]).getLexem()); + } + break; +case 29: + // line 505 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new InterfaceAndParameter(((Token)yyVals[-3+yyTop]).getLexem(), ((ParaList)yyVals[-1+yyTop])); + } + break; +case 30: + // line 510 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Hilfskonstrukt, um die Grammatik ueberschaubar zu halten*/ + /* Verbindet den Namen einer Klasse mit einer optionalen Parameterliste*/ + yyVal = new ClassAndParameter(((Token)yyVals[0+yyTop]).getLexem()); + } + break; +case 31: + // line 516 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = new ClassAndParameter(((Token)yyVals[-3+yyTop]).getLexem(), ((ParaList)yyVals[-1+yyTop])); + } + break; +case 32: + // line 521 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + Interface ic = new Interface(((InterfaceAndParameter)yyVals[-1+yyTop]).getName()); + ic.setParaList(((InterfaceAndParameter)yyVals[-1+yyTop]).getParaVector()); + ic.setInterfaceBody(((InterfaceBody)yyVals[0+yyTop])); + ic.setContainedTypes(containedTypes); + initContainedTypes(); + yyVal = ic; + } + break; +case 33: + // line 531 "./../src/mycompiler/myparser/JavaParser.jay" + { + Interface ic = new Interface(((InterfaceAndParameter)yyVals[-1+yyTop]).getName(), ((Modifiers)yyVals[-3+yyTop])); + ic.setInterfaceBody(((InterfaceBody)yyVals[0+yyTop])); + ic.setParaList(((InterfaceAndParameter)yyVals[-1+yyTop]).getParaVector()); + ic.setContainedTypes(containedTypes); + initContainedTypes(); + yyVal = ic; + } + break; +case 34: + // line 540 "./../src/mycompiler/myparser/JavaParser.jay" + { + Interface ic = new Interface(((InterfaceAndParameter)yyVals[-2+yyTop]).getName()); + ic.setParaList(((InterfaceAndParameter)yyVals[-2+yyTop]).getParaVector()); + ic.setSuperInterfaces(((InterfaceList)yyVals[-1+yyTop]).getVector()); + ic.setInterfaceBody(((InterfaceBody)yyVals[0+yyTop])); + ic.setContainedTypes(containedTypes); + initContainedTypes(); + yyVal = ic; + } + break; +case 35: + // line 550 "./../src/mycompiler/myparser/JavaParser.jay" + { + Interface ic = new Interface(((InterfaceAndParameter)yyVals[-2+yyTop]).getName(), ((Modifiers)yyVals[-4+yyTop])); + ic.setParaList(((InterfaceAndParameter)yyVals[-2+yyTop]).getParaVector()); + ic.setSuperInterfaces(((InterfaceList)yyVals[-1+yyTop]).getVector()); + ic.setInterfaceBody(((InterfaceBody)yyVals[0+yyTop])); + ic.setContainedTypes(containedTypes); + initContainedTypes(); + yyVal = ic; + } + break; +case 36: + // line 561 "./../src/mycompiler/myparser/JavaParser.jay" + { + ParaList pl = new ParaList(); + /* #JB# 05.04.2005 */ + /* ########################################################### */ + pl.getParalist().addElement(new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(), ((Token)yyVals[0+yyTop]).getOffset())); + /*pl.getParalist().addElement( new TypePlaceholder($1.getLexem()) );*/ + /* ########################################################### */ + org.apache.log4j.Logger.getLogger("parser").debug( "IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + " TV"); + yyVal = pl; + } + break; +case 37: + // line 572 "./../src/mycompiler/myparser/JavaParser.jay" + { + ParaList pl = new ParaList(); + RefType t = new RefType( ((Token)yyVals[-3+yyTop]).getLexem(),((Token)yyVals[-3+yyTop]).getOffset() ); + t.set_ParaList( ((ParaList)yyVals[-1+yyTop]).get_ParaList() ); + pl.getParalist().addElement(t); + org.apache.log4j.Logger.getLogger("parser").debug( "IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType"); + yyVal = pl; + } + break; +case 38: + // line 581 "./../src/mycompiler/myparser/JavaParser.jay" + { + ParaList pl = new ParaList(); + pl.getParalist().addElement(((WildcardType)yyVals[0+yyTop])); + yyVal = pl; + } + break; +case 39: + // line 587 "./../src/mycompiler/myparser/JavaParser.jay" + { + + /* #JB# 05.04.2005 */ + /* ########################################################### */ + ((ParaList)yyVals[-2+yyTop]).getParalist().addElement(new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(),((Token)yyVals[0+yyTop]).getOffset())); + /*$1.getParalist().addElement(new TypePlaceholder($3.getLexem()));*/ + /* ########################################################### */ + org.apache.log4j.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + ": TV"); + org.apache.log4j.Logger.getLogger("parser").debug( "paralist: " + ((ParaList)yyVals[-2+yyTop]).getParalist()); + yyVal=((ParaList)yyVals[-2+yyTop]); + } + break; +case 40: + // line 600 "./../src/mycompiler/myparser/JavaParser.jay" + { + RefType t = new RefType( ((Token)yyVals[-3+yyTop]).getLexem() ,((Token)yyVals[-3+yyTop]).getOffset() ); + t.set_ParaList( ((ParaList)yyVals[-1+yyTop]).get_ParaList() ); + ((ParaList)yyVals[-5+yyTop]).getParalist().addElement(t); + org.apache.log4j.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType"); + yyVal=((ParaList)yyVals[-5+yyTop]); + } + break; +case 41: + // line 608 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ParaList)yyVals[-2+yyTop]).getParalist().addElement(((WildcardType)yyVals[0+yyTop])); + yyVal=((ParaList)yyVals[-2+yyTop]); + } + break; +case 42: + // line 614 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*Luar 29.11.06 Offset auf -1, da keine Angabe vorhanden*/ + WildcardType wc = new WildcardType(-1); + yyVal = wc; + } + break; +case 43: + // line 620 "./../src/mycompiler/myparser/JavaParser.jay" + { + ExtendsWildcardType ewc = new ExtendsWildcardType(((Token)yyVals[-1+yyTop]).getOffset(),((RefType)yyVals[0+yyTop])); + yyVal = ewc; + } + break; +case 44: + // line 625 "./../src/mycompiler/myparser/JavaParser.jay" + { + SuperWildcardType swc = new SuperWildcardType(((Token)yyVals[-1+yyTop]).getOffset(),((RefType)yyVals[0+yyTop])); + yyVal = swc; + } + break; +case 45: + // line 631 "./../src/mycompiler/myparser/JavaParser.jay" + { + ClassBody CB = new ClassBody(); + yyVal = CB; + } + break; +case 46: + // line 637 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((ClassBody)yyVals[-1+yyTop]); + } + break; +case 47: + // line 642 "./../src/mycompiler/myparser/JavaParser.jay" + { + Modifiers Mod = new Modifiers(); + Mod.addModifier(((Modifier)yyVals[0+yyTop])); + yyVal = Mod; + } + break; +case 48: + // line 648 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Modifiers)yyVals[-1+yyTop]).addModifier(((Modifier)yyVals[0+yyTop])); + yyVal = ((Modifiers)yyVals[-1+yyTop]); + } + break; +case 49: + // line 654 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((UsedId)yyVals[0+yyTop]); + } + break; +case 50: + // line 659 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + InterfaceList il = new InterfaceList(); + il.addInterface(((UsedId)yyVals[0+yyTop])); + yyVal = il; + } + break; +case 51: + // line 666 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((InterfaceList)yyVals[-2+yyTop]).addInterface(((UsedId)yyVals[0+yyTop])); + yyVal = ((InterfaceList)yyVals[-2+yyTop]); + } + break; +case 52: + // line 672 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + yyVal = new InterfaceBody(); + } + break; +case 53: + // line 677 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((InterfaceBody)yyVals[-1+yyTop]); + } + break; +case 54: + // line 684 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + InterfaceList il = new InterfaceList(); + il.addInterface(((UsedId)yyVals[0+yyTop])); + yyVal = il; + } + break; +case 55: + // line 691 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((InterfaceList)yyVals[-2+yyTop]).addInterface(((UsedId)yyVals[0+yyTop])); + yyVal = ((InterfaceList)yyVals[-2+yyTop]); + } + break; +case 56: + // line 698 "./../src/mycompiler/myparser/JavaParser.jay" + { + ClassBody CB = new ClassBody(); + CB.addField( ((Field)yyVals[0+yyTop]) ); + yyVal=CB; + } + break; +case 57: + // line 704 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ClassBody)yyVals[-1+yyTop]).addField(((Field)yyVals[0+yyTop])); + yyVal = ((ClassBody)yyVals[-1+yyTop]); + } + break; +case 58: + // line 711 "./../src/mycompiler/myparser/JavaParser.jay" + { + Public Pub = new Public(); + yyVal=Pub; + } + break; +case 59: + // line 716 "./../src/mycompiler/myparser/JavaParser.jay" + { + Protected Pro = new Protected(); + yyVal=Pro; + } + break; +case 60: + // line 721 "./../src/mycompiler/myparser/JavaParser.jay" + { + Private Pri = new Private(); + yyVal=Pri; + } + break; +case 61: + // line 726 "./../src/mycompiler/myparser/JavaParser.jay" + { + Static Sta = new Static(); + yyVal=Sta; + } + break; +case 62: + // line 731 "./../src/mycompiler/myparser/JavaParser.jay" + { + Abstract Abs = new Abstract(); + yyVal=Abs; + } + break; +case 63: + // line 736 "./../src/mycompiler/myparser/JavaParser.jay" + { Final fin = new Final(); + yyVal = fin; + } + break; +case 64: + // line 742 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*PL 05-07-30 eingefuegt containedTypes ANFANG*/ + RefType RT = new RefType(-1); + /*RT.set_UsedId($1);*/ + /*RT.setName(RT.get_UsedId().get_Name_1Element());*/ + RT.set_ParaList(((UsedId)yyVals[0+yyTop]).get_RealParaList()); + RT.setName(((UsedId)yyVals[0+yyTop]).get_Name_1Element()); + containedTypes.addElement(RT); + /*PL 05-07-30 eingefuegt containedTypes ENDE*/ + + yyVal = ((UsedId)yyVals[0+yyTop]); + } + break; +case 65: + // line 757 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + InterfaceBody ib = new InterfaceBody(); + ib.addElement(((Field)yyVals[0+yyTop])); + yyVal = ib; + } + break; +case 66: + // line 764 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((InterfaceBody)yyVals[-1+yyTop]).addElement(((Field)yyVals[0+yyTop])); + yyVal = ((InterfaceBody)yyVals[-1+yyTop]); + } + break; +case 67: + // line 770 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interfaces*/ + yyVal = ((UsedId)yyVals[0+yyTop]); + } + break; +case 68: + // line 776 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Field)yyVals[0+yyTop]); + } + break; +case 69: + // line 781 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 70: + // line 785 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Field)yyVals[0+yyTop]); + } + break; +case 71: + // line 790 "./../src/mycompiler/myparser/JavaParser.jay" + { + if (((Vector)yyVals[0+yyTop]) != null) { + /*$1.set_ParaList($2.get_ParaList());*/ + ((UsedId)yyVals[-1+yyTop]).set_ParaList(((Vector)yyVals[0+yyTop]));/*Änderung von Andreas Stadelmeier. Type statt GenericVarType*/ + /* otth: originale (also diese) Parameterliste retten */ + /*((UsedId)$1).vParaOrg = new Vector( $2.get_ParaList() );*/ + } + yyVal=((UsedId)yyVals[-1+yyTop]); + } + break; +case 72: + // line 801 "./../src/mycompiler/myparser/JavaParser.jay" + { + Vector tl = new Vector(); + tl.add(((Type)yyVals[0+yyTop])); + yyVal = tl; + } + break; +case 73: + // line 807 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Vector)yyVals[-2+yyTop]).add(((Type)yyVals[0+yyTop])); + yyVal=((Vector)yyVals[-2+yyTop]); + } + break; +case 74: + // line 814 "./../src/mycompiler/myparser/JavaParser.jay" + { yyVal = null; } + break; +case 75: + // line 816 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((Vector)yyVals[-1+yyTop]); + } + break; +case 76: + // line 821 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interfaces, Spezialform Konstantendef.*/ + yyVal = ((Constant)yyVals[0+yyTop]); + } + break; +case 77: + // line 826 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((Method)yyVals[0+yyTop]); + } + break; +case 78: + // line 831 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Field)yyVals[0+yyTop]); + } + break; +case 79: + // line 835 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 80: + // line 840 "./../src/mycompiler/myparser/JavaParser.jay" + { + Method STAT = new Method(((Token)yyVals[-1+yyTop]).getOffset()); + DeclId DST = new DeclId(); + DST.set_Name(((Token)yyVals[-1+yyTop]).getLexem()); + STAT.set_DeclId(DST); + Static ST = new Static(); + Modifiers MOD = new Modifiers(); + MOD.addModifier(ST); + STAT.set_Modifiers(MOD); + STAT.set_Block(((Block)yyVals[0+yyTop])); + yyVal=STAT; + } + break; +case 81: + // line 854 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Constructor)yyVals[-1+yyTop]).set_Block(((Block)yyVals[0+yyTop])); + yyVal = ((Constructor)yyVals[-1+yyTop]); + } + break; +case 82: + // line 859 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Constructor)yyVals[-1+yyTop]).set_Block(((Block)yyVals[0+yyTop])); + ((Constructor)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); + yyVal = ((Constructor)yyVals[-1+yyTop]); + } + break; +case 83: + // line 866 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + Constant c = new Constant(((Token)yyVals[-3+yyTop]).getLexem(), ((Modifiers)yyVals[-5+yyTop])); + c.setType(((Type)yyVals[-4+yyTop])); + c.setValue(((Expr)yyVals[-1+yyTop])); + yyVal = c; + } + break; +case 84: + // line 875 "./../src/mycompiler/myparser/JavaParser.jay" + { + /* SCJU: Interface*/ + yyVal = ((Method)yyVals[-1+yyTop]); + } + break; +case 85: + // line 900 "./../src/mycompiler/myparser/JavaParser.jay" + { + FieldDeclaration ret = new FieldDeclaration(((DeclId)yyVals[-2+yyTop]).getOffset()); + ret.set_DeclId(((DeclId)yyVals[-2+yyTop])); + ret.setWert(((Expr)yyVals[0+yyTop])); + yyVal=ret; + } + break; +case 86: + // line 909 "./../src/mycompiler/myparser/JavaParser.jay" + { + GenericDeclarationList ret = new GenericDeclarationList(((Vector)yyVals[-1+yyTop]),((Token)yyVals[0+yyTop]).getOffset()); + yyVal = ret; + } + break; +case 87: + // line 916 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 88: + // line 920 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((FieldDeclaration)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + yyVal=((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 89: + // line 925 "./../src/mycompiler/myparser/JavaParser.jay" + {/*angefügt von Andreas Stadelmeier*/ + ((FieldDeclaration)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + ((FieldDeclaration)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); + yyVal=((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 90: + // line 932 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 91: + // line 937 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("T->Parser->fielddeclaration ...: type " + ((Type)yyVals[-2+yyTop])); + ((FieldDeclaration)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + yyVal = ((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 92: + // line 944 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((FieldDeclaration)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + for(int i=0;i<(((FieldDeclaration)yyVals[-1+yyTop]).getDeclIdVector().size());i++) + { + ((FieldDeclaration)yyVals[-1+yyTop]).getDeclIdVector().elementAt(i).modifiers=((Modifiers)yyVals[-3+yyTop]); + } + yyVal = ((FieldDeclaration)yyVals[-1+yyTop]); + } + break; +case 93: + // line 954 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).set_Block(((Block)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 94: + // line 961 "./../src/mycompiler/myparser/JavaParser.jay" + { + Block Bl = new Block(); + yyVal=Bl; + } + break; +case 95: + // line 967 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Block)yyVals[-1+yyTop]); + } + break; +case 96: + // line 972 "./../src/mycompiler/myparser/JavaParser.jay" + { + Constructor CON = new Constructor(null); /*TODO: Der Parser kann sowieso nicht zwischen einem Konstruktor und einer Methode unterscheiden. Das hier kann wegfallen...*/ + DeclId DIDCon = new DeclId(); + DIDCon.set_Name(((UsedId)yyVals[-2+yyTop]).get_Name_1Element()); + CON.set_DeclId(DIDCon); + yyVal=CON; + } + break; +case 97: + // line 980 "./../src/mycompiler/myparser/JavaParser.jay" + { + Constructor CONpara = new Constructor(null); + DeclId DIconpara = new DeclId(); + DIconpara.set_Name(((UsedId)yyVals[-3+yyTop]).get_Name_1Element()); + CONpara.set_DeclId(DIconpara); + CONpara.setParameterList(((ParameterList)yyVals[-1+yyTop])); + yyVal=CONpara; + } + break; +case 98: + // line 990 "./../src/mycompiler/myparser/JavaParser.jay" + { + Block CBL = new Block(); + yyVal=CBL; + } + break; +case 99: + // line 995 "./../src/mycompiler/myparser/JavaParser.jay" + { + Block CBLexpl = new Block(); + CBLexpl.set_Statement(((Statement)yyVals[-1+yyTop])); + yyVal=CBLexpl; + } + break; +case 100: + // line 1001 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Block)yyVals[-1+yyTop]); + } + break; +case 101: + // line 1005 "./../src/mycompiler/myparser/JavaParser.jay" + { + Block CBes = new Block(); + CBes.set_Statement(((Statement)yyVals[-2+yyTop])); + for(int j=0;j<((Block)yyVals[-1+yyTop]).statements.size();j++) + { + CBes.set_Statement((Statement)((Block)yyVals[-1+yyTop]).statements.elementAt(j)); + } + yyVal=CBes; + } + break; +case 102: + // line 1016 "./../src/mycompiler/myparser/JavaParser.jay" + { + ExceptionList EL = new ExceptionList(); + EL.set_addElem(((RefType)yyVals[0+yyTop])); + yyVal=EL; + } + break; +case 103: + // line 1023 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal = ((GenericTypeVar)yyVals[0+yyTop]); + } + break; +case 104: + // line 1028 "./../src/mycompiler/myparser/JavaParser.jay" + { + ParaList p = new ParaList(); + p.add_ParaList(((GenericTypeVar)yyVals[0+yyTop])); + yyVal=p; + } + break; +case 105: + // line 1034 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ParaList)yyVals[-2+yyTop]).add_ParaList(((GenericTypeVar)yyVals[0+yyTop])); + yyVal=((ParaList)yyVals[-2+yyTop]); + } + break; +case 106: + // line 1041 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(),((Token)yyVals[0+yyTop]).getOffset()); + } + break; +case 107: + // line 1045 "./../src/mycompiler/myparser/JavaParser.jay" + { + BoundedGenericTypeVar gtv=new BoundedGenericTypeVar(((Token)yyVals[-2+yyTop]).getLexem(),((Vector)yyVals[0+yyTop]),((Token)yyVals[-2+yyTop]).getOffset()); + /*gtv.setBounds($3);*/ + yyVal=gtv; + } + break; +case 108: + // line 1052 "./../src/mycompiler/myparser/JavaParser.jay" + { + Vector vec=new Vector(); + vec.addElement(((RefType)yyVals[0+yyTop])); + containedTypes.addElement(((RefType)yyVals[0+yyTop])); + yyVal=vec; + } + break; +case 109: + // line 1059 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Vector)yyVals[-2+yyTop]).addElement(((RefType)yyVals[0+yyTop])); + containedTypes.addElement(((RefType)yyVals[0+yyTop])); + yyVal=((Vector)yyVals[-2+yyTop]); + } + break; +case 110: + // line 1066 "./../src/mycompiler/myparser/JavaParser.jay" + { + Vector vec=new Vector(); + vec.addElement(((GenericTypeVar)yyVals[0+yyTop])); + yyVal=vec; + } + break; +case 111: + // line 1072 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Vector)yyVals[-2+yyTop]).addElement(((GenericTypeVar)yyVals[0+yyTop])); + yyVal=((Vector)yyVals[-2+yyTop]); + } + break; +case 112: + // line 1080 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); + ((Method)yyVals[0+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-2+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 113: + // line 1086 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 114: + // line 1091 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); + ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 115: + // line 1097 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); + ((Method)yyVals[0+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-2+yyTop])); + ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 116: + // line 1104 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 117: + // line 1110 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); + ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 118: + // line 1117 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); + ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 119: + // line 1124 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-4+yyTop])); + ((Method)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); + ((Method)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 120: + // line 1132 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); + ((Method)yyVals[0+yyTop]).setType(Voit); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 121: + // line 1138 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); + ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); + ((Method)yyVals[0+yyTop]).setType(voit); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 122: + // line 1145 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); + ((Method)yyVals[-1+yyTop]).setType(voyt); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 123: + // line 1152 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); + ((Method)yyVals[-1+yyTop]).setType(voyd); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 124: + // line 1160 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); + ((Method)yyVals[0+yyTop]).setType(Voit); + ((Method)yyVals[0+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-2+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 125: + // line 1167 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); + ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); + ((Method)yyVals[0+yyTop]).setType(voit); + ((Method)yyVals[0+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-2+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 126: + // line 1175 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); + ((Method)yyVals[-1+yyTop]).setType(voyt); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + ((Method)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 127: + // line 1183 "./../src/mycompiler/myparser/JavaParser.jay" + { + Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-4+yyTop])); + ((Method)yyVals[-1+yyTop]).setType(voyd); + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + ((Method)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 128: + // line 1193 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh()); */ + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 129: + // line 1198 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*auskommentiert von Andreas Stadelmeier (a10023) $4.setType(TypePlaceholder.fresh());*/ + ((Method)yyVals[0+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-1+yyTop])); + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 130: + // line 1205 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-1+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());*/ + yyVal=((Method)yyVals[0+yyTop]); + } + break; +case 131: + // line 1211 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh());*/ + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 132: + // line 1217 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());*/ + ((Method)yyVals[-1+yyTop]).set_ExceptionList(((ExceptionList)yyVals[0+yyTop])); + yyVal=((Method)yyVals[-1+yyTop]); + } + break; +case 133: + // line 1226 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((BaseType)yyVals[0+yyTop]); + } + break; +case 134: + // line 1230 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((BaseType)yyVals[-2+yyTop]).setArray(true); + } + break; +case 135: + // line 1234 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((RefType)yyVals[0+yyTop]); + } + break; +case 136: + // line 1238 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((RefType)yyVals[-2+yyTop]).setArray(true); + } + break; +case 137: + // line 1242 "./../src/mycompiler/myparser/JavaParser.jay" + { + FieldDeclaration IVD = new FieldDeclaration(((DeclId)yyVals[0+yyTop]).getOffset()); + IVD.getDeclIdVector().addElement( ((DeclId)yyVals[0+yyTop]) ); + IVD.setOffset(((DeclId)yyVals[0+yyTop]).getOffset()); + yyVal = IVD; + } + break; +case 138: + // line 1249 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((FieldDeclaration)yyVals[-2+yyTop]).getDeclIdVector().addElement(((DeclId)yyVals[0+yyTop])); + yyVal=((FieldDeclaration)yyVals[-2+yyTop]); + } + break; +case 139: + // line 1255 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Block)yyVals[0+yyTop]); + } + break; +case 140: + // line 1260 "./../src/mycompiler/myparser/JavaParser.jay" + { + Block Blstat = new Block(); + Blstat.set_Statement(((Statement)yyVals[0+yyTop])); + yyVal=Blstat; + } + break; +case 141: + // line 1267 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Block)yyVals[-1+yyTop]).set_Statement(((Statement)yyVals[0+yyTop])); + yyVal=((Block)yyVals[-1+yyTop]); + } + break; +case 142: + // line 1273 "./../src/mycompiler/myparser/JavaParser.jay" + { + ParameterList PL = new ParameterList(); + PL.set_AddParameter(((FormalParameter)yyVals[0+yyTop])); + yyVal = PL; + } + break; +case 143: + // line 1279 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ParameterList)yyVals[-2+yyTop]).set_AddParameter(((FormalParameter)yyVals[0+yyTop])); + yyVal = ((ParameterList)yyVals[-2+yyTop]); + } + break; +case 144: + // line 1285 "./../src/mycompiler/myparser/JavaParser.jay" + { + This THCON = new This(((Token)yyVals[-3+yyTop]).getOffset(),((Token)yyVals[-3+yyTop]).getLexem().length()); + yyVal=THCON; + } + break; +case 145: + // line 1290 "./../src/mycompiler/myparser/JavaParser.jay" + { + This THCONargl = new This(((Token)yyVals[-4+yyTop]).getOffset(),((Token)yyVals[-4+yyTop]).getLexem().length()); + THCONargl.set_ArgumentList(((ArgumentList)yyVals[-2+yyTop])); + yyVal=THCONargl; + } + break; +case 146: + // line 1299 "./../src/mycompiler/myparser/JavaParser.jay" + { + RefType RT = new RefType(-1); + RT.set_UsedId(((UsedId)yyVals[0+yyTop])); + RT.setName(RT.get_UsedId().get_Name_1Element()); + yyVal=RT; + } + break; +case 147: + // line 1306 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((RefType)yyVals[-2+yyTop]).set_UsedId(((UsedId)yyVals[0+yyTop])); + ((RefType)yyVals[-2+yyTop]).setName(((RefType)yyVals[-2+yyTop]).get_UsedId().get_Name_1Element()); + yyVal=((RefType)yyVals[-2+yyTop]); + } + break; +case 148: + // line 1313 "./../src/mycompiler/myparser/JavaParser.jay" + { + Method met = new Method(((Token)yyVals[-2+yyTop]).getOffset()); + /* #JB# 10.04.2005 */ + /* ########################################################### */ + met.setLineNumber(((Token)yyVals[-2+yyTop]).getLineNumber()); + met.setOffset(((Token)yyVals[-2+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + /* ########################################################### */ + DeclId DImethod = new DeclId(); + DImethod.set_Name(((Token)yyVals[-2+yyTop]).getLexem()); + met.set_DeclId(DImethod); + yyVal = met; + } + break; +case 149: + // line 1326 "./../src/mycompiler/myparser/JavaParser.jay" + { + Method met_para = new Method(((Token)yyVals[-3+yyTop]).getOffset()); + /* #JB# 10.04.2005 */ + /* ########################################################### */ + met_para.setLineNumber(((Token)yyVals[-3+yyTop]).getLineNumber()); + met_para.setOffset(((Token)yyVals[-3+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + /* ########################################################### */ + DeclId Dimet_para = new DeclId(); + Dimet_para.set_Name(((Token)yyVals[-3+yyTop]).getLexem()); + met_para.set_DeclId(Dimet_para); + met_para.setParameterList(((ParameterList)yyVals[-1+yyTop])); + yyVal = met_para; + } + break; +case 150: + // line 1341 "./../src/mycompiler/myparser/JavaParser.jay" + { + BooleanType BT = new BooleanType(); + /* #JB# 05.04.2005 */ + /* ########################################################### */ + /*BT.setName($1.getLexem());*/ + /* ########################################################### */ + yyVal=BT; + } + break; +case 151: + // line 1350 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((BaseType)yyVals[0+yyTop]); + } + break; +case 152: + // line 1355 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("T->Parser->referenctype: " + ((UsedId)yyVals[0+yyTop])); + RefType RT = new RefType(((UsedId)yyVals[0+yyTop]).getOffset()); + + /*ausgetauscht PL 05-07-30*/ + /*RT.set_UsedId($1); */ + /*RT.setName(RT.get_UsedId().get_Name_1Element());*/ + RT.set_ParaList(((UsedId)yyVals[0+yyTop]).get_RealParaList()); + RT.setName(((UsedId)yyVals[0+yyTop]).getQualifiedName()); + + + /*PL 05-07-30 eingefuegt containedTypes ANFANG*/ + containedTypes.addElement(RT); + /*PL 05-07-30 eingefuegt containedTypes ENDE*/ + + yyVal=RT; + } + break; +case 153: + // line 1375 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((DeclId)yyVals[0+yyTop]); + } + break; +case 154: + // line 1396 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((LocalVarDecl)yyVals[0+yyTop]); + } + break; +case 155: + // line 1400 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Statement)yyVals[0+yyTop]); + } + break; +case 156: + // line 1405 "./../src/mycompiler/myparser/JavaParser.jay" + { + FormalParameter FP = new FormalParameter(((DeclId)yyVals[0+yyTop])); + FP.setType(((Type)yyVals[-1+yyTop])); + /*FP.set_DeclId($2); //auskommentiert von Andreas Stadelmeier. DeclId wird nun dem Konstruktor von FormalParameter übergeben.*/ + yyVal=FP; + } + break; +case 157: + // line 1430 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + ((DeclId)yyVals[0+yyTop]).name); + + FormalParameter FP = new FormalParameter(((DeclId)yyVals[0+yyTop])); + + /* #JB# 31.03.2005*/ + /* ###########################################################*/ + /*Type T = TypePlaceholder.fresh(); //auskommentiert von Andreas Stadelmeier*/ + /* Type T = new TypePlaceholder(""); /* otth: Name wird automatisch berechnet * /*/ + /* ###########################################################*/ + /*org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());*/ + + /*auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );*/ + /*FP.set_DeclId($1);*/ + + yyVal=FP; + } + break; +case 158: + // line 1449 "./../src/mycompiler/myparser/JavaParser.jay" + { + ArgumentList AL = new ArgumentList(); + AL.expr.addElement(((Expr)yyVals[0+yyTop])); + yyVal=AL; + } + break; +case 159: + // line 1455 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((ArgumentList)yyVals[-2+yyTop]).expr.addElement(((Expr)yyVals[0+yyTop])); + yyVal=((ArgumentList)yyVals[-2+yyTop]); + } + break; +case 160: + // line 1461 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((BaseType)yyVals[0+yyTop]); + } + break; +case 161: + // line 1466 "./../src/mycompiler/myparser/JavaParser.jay" + { + DeclId DI = new DeclId(); + /* #JB# 10.04.2005 */ + /* ########################################################### */ + DI.setLineNumber(((Token)yyVals[0+yyTop]).getLineNumber()); + DI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + /* ########################################################### */ + DI.set_Name(((Token)yyVals[0+yyTop]).getLexem()); + yyVal=DI; + } + break; +case 162: + // line 1478 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 163: + // line 1483 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((LocalVarDecl)yyVals[-1+yyTop]); + } + break; +case 164: + // line 1488 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Statement)yyVals[0+yyTop]); + } + break; +case 165: + // line 1492 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((IfStmt)yyVals[0+yyTop]); + } + break; +case 166: + // line 1496 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((IfStmt)yyVals[0+yyTop]); + } + break; +case 167: + // line 1500 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((WhileStmt)yyVals[0+yyTop]); + } + break; +case 168: + // line 1504 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((ForStmt)yyVals[0+yyTop]); + } + break; +case 169: + // line 1509 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 170: + // line 1513 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((NewClass)yyVals[0+yyTop]); + } + break; +case 171: + // line 1518 "./../src/mycompiler/myparser/JavaParser.jay" + { + IntegerType IT = new IntegerType(); + /* #JB# 05.04.2005 */ + /* ########################################################### */ + /*IT.setName($1.getLexem());*/ + /* ########################################################### */ + yyVal=IT; + } + break; +case 172: + // line 1527 "./../src/mycompiler/myparser/JavaParser.jay" + { + CharacterType CT = new CharacterType(); + /* #JB# 05.04.2005 */ + /* ########################################################### */ + /*CT.setName($1.getLexem());*/ + /* ########################################################### */ + yyVal=CT; + } + break; +case 173: + // line 1537 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("P -> Lokale Variable angelegt!"); + LocalVarDecl LVD = new LocalVarDecl(((Type)yyVals[-1+yyTop]).getOffset(),((Type)yyVals[-1+yyTop]).getVariableLength()); + LVD.setType(((Type)yyVals[-1+yyTop])); + LVD.setDeclidVector(((FieldDeclaration)yyVals[0+yyTop]).getDeclIdVector()); + yyVal = LVD; + } + break; +case 174: + // line 1548 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("P -> Lokale Variable angelegt!"); + LocalVarDecl LVD = new LocalVarDecl(((FieldDeclaration)yyVals[0+yyTop]).getOffset(),((FieldDeclaration)yyVals[0+yyTop]).getVariableLength()); + /*auskommentiert von Andreas Stadelmeier (a10023) LVD.setType(TypePlaceholder.fresh());*/ + LVD.setDeclidVector(((FieldDeclaration)yyVals[0+yyTop]).getDeclIdVector()); + yyVal = LVD; + } + break; +case 175: + // line 1558 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Block)yyVals[0+yyTop]); + } + break; +case 176: + // line 1562 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((EmptyStmt)yyVals[0+yyTop]); + } + break; +case 177: + // line 1566 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((ExprStmt)yyVals[0+yyTop]); + } + break; +case 178: + // line 1570 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Return)yyVals[0+yyTop]); + } + break; +case 179: + // line 1575 "./../src/mycompiler/myparser/JavaParser.jay" + { + IfStmt Ifst = new IfStmt(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + Ifst.set_Expr(((Expr)yyVals[-2+yyTop])); + Ifst.set_Then_block(((Statement)yyVals[0+yyTop])); + yyVal=Ifst; + } + break; +case 180: + // line 1583 "./../src/mycompiler/myparser/JavaParser.jay" + { + IfStmt IfstElst = new IfStmt(((Expr)yyVals[-4+yyTop]).getOffset(),((Expr)yyVals[-4+yyTop]).getVariableLength()); + IfstElst.set_Expr(((Expr)yyVals[-4+yyTop])); + IfstElst.set_Then_block(((Statement)yyVals[-2+yyTop])); + IfstElst.set_Else_block(((Statement)yyVals[0+yyTop])); + yyVal=IfstElst; + } + break; +case 181: + // line 1592 "./../src/mycompiler/myparser/JavaParser.jay" + { + WhileStmt Whlst = new WhileStmt(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + Whlst.set_Expr(((Expr)yyVals[-2+yyTop])); + Whlst.set_Loop_block(((Statement)yyVals[0+yyTop])); + yyVal=Whlst; + } + break; +case 182: + // line 1603 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-6+yyTop]).getOffset(),((Expr)yyVals[-6+yyTop]).getVariableLength()); + Fst.set_head_Initializer(((Expr)yyVals[-6+yyTop])); + Fst.set_head_Condition(((Expr)yyVals[-4+yyTop])); + Fst.set_head_Loop_expr(((Expr)yyVals[-2+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 183: + // line 1615 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-5+yyTop]).getOffset(),((Expr)yyVals[-5+yyTop]).getVariableLength()); + Fst.set_head_Initializer(((Expr)yyVals[-5+yyTop])); + Fst.set_head_Condition(((Expr)yyVals[-3+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 184: + // line 1626 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-5+yyTop]).getOffset(),((Expr)yyVals[-5+yyTop]).getVariableLength()); + Fst.set_head_Initializer(((Expr)yyVals[-5+yyTop])); + Fst.set_head_Loop_expr(((Expr)yyVals[-2+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 185: + // line 1637 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-4+yyTop]).getOffset(),((Expr)yyVals[-4+yyTop]).getVariableLength()); + Fst.set_head_Condition(((Expr)yyVals[-4+yyTop])); + Fst.set_head_Loop_expr(((Expr)yyVals[-2+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 186: + // line 1648 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-4+yyTop]).getOffset(),((Expr)yyVals[-4+yyTop]).getVariableLength()); + Fst.set_head_Initializer(((Expr)yyVals[-4+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 187: + // line 1658 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-3+yyTop]).getOffset(),((Expr)yyVals[-3+yyTop]).getVariableLength()); + Fst.set_head_Condition(((Expr)yyVals[-3+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 188: + // line 1668 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + Fst.set_head_Loop_expr(((Expr)yyVals[-2+yyTop])); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 189: + // line 1678 "./../src/mycompiler/myparser/JavaParser.jay" + { + ForStmt Fst = new ForStmt(((Statement)yyVals[0+yyTop]).getOffset(),((Statement)yyVals[0+yyTop]).getVariableLength()); + Fst.set_body_Loop_block(((Statement)yyVals[0+yyTop])); + + /*Typannahme*/ + yyVal = Fst; + } + break; +case 190: + // line 1687 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("conditionalexpression"); + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 191: + // line 1692 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Assign)yyVals[0+yyTop]); + } + break; +case 192: + // line 1698 "./../src/mycompiler/myparser/JavaParser.jay" + { + EmptyStmt Empst = new EmptyStmt(); + yyVal=Empst; + } + break; +case 193: + // line 1704 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[-1+yyTop]); + } + break; +case 194: + // line 1709 "./../src/mycompiler/myparser/JavaParser.jay" + { + Return ret = new Return(-1,-1); + yyVal= ret; + } + break; +case 195: + // line 1714 "./../src/mycompiler/myparser/JavaParser.jay" + { + Return retexp = new Return(((Expr)yyVals[-1+yyTop]).getOffset(),((Expr)yyVals[-1+yyTop]).getVariableLength()); + retexp.set_ReturnExpr(((Expr)yyVals[-1+yyTop])); + yyVal=retexp; + } + break; +case 196: + // line 1721 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Statement)yyVals[0+yyTop]); + } + break; +case 197: + // line 1725 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((IfStmt)yyVals[0+yyTop]); + } + break; +case 198: + // line 1729 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((WhileStmt)yyVals[0+yyTop]); + } + break; +case 199: + // line 1734 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 200: + // line 1740 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("\nParser --> Zuweisung1!\n"); + Assign Ass = new Assign(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + LocalOrFieldVar LOFV = new LocalOrFieldVar(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + LOFV.set_UsedId(((UsedId)yyVals[-2+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) LOFV.setType(TypePlaceholder.fresh());*/ + /*auskommentiert von Andreas Stadelmeier (a10023) Ass.setType(TypePlaceholder.fresh());*/ + if( ((Operator)yyVals[-1+yyTop]) == null ) + { + org.apache.log4j.Logger.getLogger("parser").debug("\nParser --> Zuweisung1 --> " + ((Expr)yyVals[0+yyTop]) + " \n"); + Ass.set_Expr( LOFV,((Expr)yyVals[0+yyTop]) ); + } + else + { + Binary Bin = new Binary(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + Bin.set_Expr1(LOFV); + Bin.set_Operator(((Operator)yyVals[-1+yyTop])); + Bin.set_Expr2(((Expr)yyVals[0+yyTop])); + org.apache.log4j.Logger.getLogger("parser").debug("\nParser --> Zuweisung1 --> Binary\n"); + /*auskommentiert von Andreas Stadelmeier (a10023) Bin.setType(TypePlaceholder.fresh());*/ + Ass.set_Expr( LOFV, Bin ); + } + yyVal=Ass; + } + break; +case 201: + // line 1765 "./../src/mycompiler/myparser/JavaParser.jay" + { + Assign Ass =new Assign(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + LocalOrFieldVar LOFV = new LocalOrFieldVar(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + LOFV.set_UsedId(((UsedId)yyVals[-2+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) LOFV.setType(TypePlaceholder.fresh());*/ + /*auskommentiert von Andreas Stadelmeier (a10023) Ass.setType(TypePlaceholder.fresh());*/ + if(((Operator)yyVals[-1+yyTop])==null) + { + Ass.set_Expr(LOFV,((NewClass)yyVals[0+yyTop])); + } + else + { + Binary Bin = new Binary(((NewClass)yyVals[0+yyTop]).getOffset(),((NewClass)yyVals[0+yyTop]).getVariableLength()); + Bin.set_Expr1(LOFV); + Bin.set_Operator(((Operator)yyVals[-1+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) Bin.setType(TypePlaceholder.fresh());*/ + Bin.set_Expr2(((NewClass)yyVals[0+yyTop])); + Ass.set_Expr(LOFV,Bin); + } + yyVal=Ass; + } + break; +case 202: + // line 1788 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Assign)yyVals[0+yyTop]); + } + break; +case 203: + // line 1792 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 204: + // line 1796 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 205: + // line 1800 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 206: + // line 1804 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 207: + // line 1808 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((MethodCall)yyVals[0+yyTop]); + } + break; +case 208: + // line 1819 "./../src/mycompiler/myparser/JavaParser.jay" + { + IfStmt IfElno = new IfStmt(((Expr)yyVals[-4+yyTop]).getOffset(),((Expr)yyVals[-4+yyTop]).getVariableLength()); + IfElno.set_Expr(((Expr)yyVals[-4+yyTop])); + IfElno.set_Then_block(((Statement)yyVals[-2+yyTop])); + IfElno.set_Else_block(((Statement)yyVals[0+yyTop])); + yyVal=IfElno; + } + break; +case 209: + // line 1828 "./../src/mycompiler/myparser/JavaParser.jay" + { + WhileStmt Whstno = new WhileStmt(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + Whstno.set_Expr(((Expr)yyVals[-2+yyTop])); + Whstno.set_Loop_block(((Statement)yyVals[0+yyTop])); + yyVal=Whstno; + } + break; +case 210: + // line 1836 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 211: + // line 1840 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary LogOr = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + OrOp OrO = new OrOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + LogOr.set_Expr1(((Expr)yyVals[-2+yyTop])); + LogOr.set_Expr2(((Expr)yyVals[0+yyTop])); + LogOr.set_Operator(OrO); + /*auskommentiert von Andreas Stadelmeier (a10023) LogOr.setType(TypePlaceholder.fresh());*/ + yyVal=LogOr; + } + break; +case 212: + // line 1853 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=null; + } + break; +case 213: + // line 1858 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Block)yyVals[0+yyTop]); + } + break; +case 214: + // line 1862 "./../src/mycompiler/myparser/JavaParser.jay" + { + /*Lambdabody kann auch nur aus einer Expression bestehen. In diesem Fall wird ein Block erstellt, welcher als einziges Statement ein return statment mit der expression hat.*/ + /*Bsp.: Aus der Expression |var=="hallo"| wird: |{return var=="hallo";}|*/ + Block ret=new Block(); + ret.statements.add((Statement)new Return(0,0).set_ReturnExpr(((Expr)yyVals[0+yyTop]))); + /*ret.statements.add((ExprStmt)$1);*/ + yyVal=ret; + } + break; +case 215: + // line 1872 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=null; + } + break; +case 216: + // line 1876 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((ParameterList)yyVals[-1+yyTop]); + } + break; +case 217: + // line 1881 "./../src/mycompiler/myparser/JavaParser.jay" + { + LambdaExpression lambda = new LambdaExpression(/*((ParameSterList)$2).getOffset(),((ParameterList)$2).getVariableLength()*/0,0); + if(((ParameterList)yyVals[-2+yyTop])!=null)lambda.setParameterList(((ParameterList)yyVals[-2+yyTop])); + lambda.setBody((Block)((Block)yyVals[0+yyTop])); + yyVal=lambda; + } + break; +case 218: + // line 1900 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((UsedId)yyVals[0+yyTop]); + } + break; +case 219: + // line 1905 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=null; + } + break; +case 220: + // line 1909 "./../src/mycompiler/myparser/JavaParser.jay" + { + TimesOp TEO = new TimesOp(-1,-1); + yyVal=TEO; + } + break; +case 221: + // line 1914 "./../src/mycompiler/myparser/JavaParser.jay" + { + DivideOp DEO = new DivideOp(-1,-1); + yyVal=DEO; + } + break; +case 222: + // line 1919 "./../src/mycompiler/myparser/JavaParser.jay" + { + ModuloOp MEO = new ModuloOp(-1,-1); + yyVal=MEO; + } + break; +case 223: + // line 1924 "./../src/mycompiler/myparser/JavaParser.jay" + { + PlusOp PEO = new PlusOp(-1,-1); + yyVal=PEO; + } + break; +case 224: + // line 1929 "./../src/mycompiler/myparser/JavaParser.jay" + { + MinusOp MEO = new MinusOp(-1,-1); + yyVal=MEO; + } + break; +case 225: + // line 1941 "./../src/mycompiler/myparser/JavaParser.jay" + { + PreIncExpr PRINC = new PreIncExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + PRINC.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=PRINC; + } + break; +case 226: + // line 1948 "./../src/mycompiler/myparser/JavaParser.jay" + { + PreDecExpr PRDEC = new PreDecExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + PRDEC.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=PRDEC; + } + break; +case 227: + // line 1955 "./../src/mycompiler/myparser/JavaParser.jay" + { + PostIncExpr PIE = new PostIncExpr(((Expr)yyVals[-1+yyTop]).getOffset(),((Expr)yyVals[-1+yyTop]).getVariableLength()); + PIE.set_Expr(((Expr)yyVals[-1+yyTop])); + yyVal=PIE; + } + break; +case 228: + // line 1962 "./../src/mycompiler/myparser/JavaParser.jay" + { + PostDecExpr PDE = new PostDecExpr(((Expr)yyVals[-1+yyTop]).getOffset(),((Expr)yyVals[-1+yyTop]).getVariableLength()); + PDE.set_Expr(((Expr)yyVals[-1+yyTop])); + yyVal=PDE; + } + break; +case 229: + // line 1970 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("M1"); + MethodCall MC = new MethodCall(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + UsedId udidmeth = new UsedId(((UsedId)yyVals[-2+yyTop]).getOffset()); + udidmeth.set_Name((String)((((UsedId)yyVals[-2+yyTop]).get_Name()).elementAt(((UsedId)yyVals[-2+yyTop]).get_Name().size()-1))); + MC.set_UsedId(udidmeth); + Receiver rec = null; + if (((UsedId)yyVals[-2+yyTop]).get_Name().size() > 2) { + + ((UsedId)yyVals[-2+yyTop]).removeLast(); + + /*macht aus der Liste von Strings */ + /*in usedid.name einen InstVar */ + InstVar INSTVA = new InstVar(((UsedId)yyVals[-2+yyTop]),((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + + /*auskommentiert von Andreas Stadelmeier (a10023) INSTVA.setType(TypePlaceholder.fresh());*/ + rec = new Receiver(INSTVA); + } + else if (((UsedId)yyVals[-2+yyTop]).get_Name().size() == 2) { + LocalOrFieldVar LOFV = new LocalOrFieldVar(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + ((UsedId)yyVals[-2+yyTop]).removeLast(); + LOFV.set_UsedId(((UsedId)yyVals[-2+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) LOFV.setType(TypePlaceholder.fresh());*/ + rec = new Receiver(LOFV); + } + MC.set_Receiver(rec); + /*auskommentiert von Andreas Stadelmeier (a10023) MC.setType(TypePlaceholder.fresh());*/ + yyVal=MC; + } + break; +case 230: + // line 2000 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("M2"); + MethodCall MCarg = new MethodCall(((UsedId)yyVals[-3+yyTop]).getOffset(),((UsedId)yyVals[-3+yyTop]).getVariableLength()); + UsedId udidmeth = new UsedId(((UsedId)yyVals[-3+yyTop]).getOffset()); + udidmeth.set_Name((String)((((UsedId)yyVals[-3+yyTop]).get_Name()).elementAt(((UsedId)yyVals[-3+yyTop]).get_Name().size()-1))); + MCarg.set_UsedId(udidmeth); + Receiver rec = null; + if (((UsedId)yyVals[-3+yyTop]).get_Name().size() > 2) { + + ((UsedId)yyVals[-3+yyTop]).removeLast(); + + /*macht aus der Liste von Strings */ + /*in usedid.name einen InstVar */ + InstVar INSTVA = new InstVar(((UsedId)yyVals[-3+yyTop]),((UsedId)yyVals[-3+yyTop]).getOffset(),((UsedId)yyVals[-3+yyTop]).getVariableLength()); + + /*auskommentiert von Andreas Stadelmeier (a10023) INSTVA.setType(TypePlaceholder.fresh());*/ + rec = new Receiver(INSTVA); + } + else if (((UsedId)yyVals[-3+yyTop]).get_Name().size() == 2) { + LocalOrFieldVar LOFV = new LocalOrFieldVar(((UsedId)yyVals[-3+yyTop]).getOffset(),((UsedId)yyVals[-3+yyTop]).getVariableLength()); + ((UsedId)yyVals[-3+yyTop]).removeLast(); + LOFV.set_UsedId(((UsedId)yyVals[-3+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) LOFV.setType(TypePlaceholder.fresh());*/ + rec = new Receiver(LOFV); + } + MCarg.set_Receiver(rec); + MCarg.set_ArgumentList(((ArgumentList)yyVals[-1+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) MCarg.setType(TypePlaceholder.fresh());*/ + yyVal=MCarg; + } + break; +case 231: + // line 2031 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("M3"); + MethodCall MCpr = new MethodCall(((Expr)yyVals[-4+yyTop]).getOffset(),((Expr)yyVals[-4+yyTop]).getVariableLength()); + + /* PL 05-08-21 primary ist kein UsedId*/ + /*$1.usedid.set_Name($3.getLexem());*/ + /*MCpr.set_UsedId($1.get_UsedId());*/ + UsedId udidmeth = new UsedId(((Expr)yyVals[-4+yyTop]).getOffset()); + udidmeth.set_Name(((Token)yyVals[-2+yyTop]).getLexem()); + MCpr.set_UsedId(udidmeth); + + /* #JB# 04.06.2005 */ + /* ########################################################### */ + MCpr.set_Receiver(new Receiver(((Expr)yyVals[-4+yyTop]))); + /* ########################################################### */ + /*auskommentiert von Andreas Stadelmeier (a10023) MCpr.setType(TypePlaceholder.fresh());*/ + yyVal=MCpr; + } + break; +case 232: + // line 2050 "./../src/mycompiler/myparser/JavaParser.jay" + { + org.apache.log4j.Logger.getLogger("parser").debug("M4"); + MethodCall MCPA = new MethodCall(((Expr)yyVals[-5+yyTop]).getOffset(),((Expr)yyVals[-5+yyTop]).getVariableLength()); + + /* PL 05-08-21 primary ist kein UsedId*/ + /*$1.usedid.set_Name($3.getLexem());*/ + /*MCPA.set_UsedId($1.get_UsedId());*/ + UsedId udidmeth = new UsedId(((Token)yyVals[-3+yyTop]).getOffset()); + udidmeth.set_Name(((Token)yyVals[-3+yyTop]).getLexem()); + MCPA.set_UsedId(udidmeth); + + /* #JB# 04.06.2005 */ + /* ########################################################### */ + MCPA.set_Receiver(new Receiver(((Expr)yyVals[-5+yyTop]))); + /* ########################################################### */ + MCPA.set_ArgumentList(((ArgumentList)yyVals[-1+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) MCPA.setType(TypePlaceholder.fresh());*/ + yyVal=MCPA; + } + break; +case 233: + // line 2073 "./../src/mycompiler/myparser/JavaParser.jay" + { + NewClass NC = new NewClass(((UsedId)yyVals[-2+yyTop]).getOffset(),((UsedId)yyVals[-2+yyTop]).getVariableLength()); + NC.set_UsedId(((UsedId)yyVals[-2+yyTop])); + usedIdsToCheck.addElement(((UsedId)yyVals[-2+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) NC.setType(TypePlaceholder.fresh());*/ + yyVal=NC; + } + break; +case 234: + // line 2081 "./../src/mycompiler/myparser/JavaParser.jay" + { + NewClass NCarg = new NewClass(((UsedId)yyVals[-3+yyTop]).getOffset(),((UsedId)yyVals[-3+yyTop]).getVariableLength()); + NCarg.set_UsedId(((UsedId)yyVals[-3+yyTop])); + usedIdsToCheck.addElement(((UsedId)yyVals[-3+yyTop])); + NCarg.set_ArgumentList(((ArgumentList)yyVals[-1+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) NCarg.setType(TypePlaceholder.fresh());*/ + yyVal=NCarg; + } + break; +case 235: + // line 2091 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 236: + // line 2095 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary And = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + AndOp AndO = new AndOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + And.set_Expr1(((Expr)yyVals[-2+yyTop])); + And.set_Expr2(((Expr)yyVals[0+yyTop])); + And.set_Operator(AndO); + /*auskommentiert von Andreas Stadelmeier (a10023) And.setType(TypePlaceholder.fresh());*/ + yyVal=And; + } + break; +case 237: + // line 2111 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 238: + // line 2115 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 239: + // line 2119 "./../src/mycompiler/myparser/JavaParser.jay" + { + PositivExpr POSEX=new PositivExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + UnaryPlus UP= new UnaryPlus(); + POSEX.set_UnaryPlus(UP); + POSEX.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=POSEX; + } + break; +case 240: + // line 2127 "./../src/mycompiler/myparser/JavaParser.jay" + { + NegativeExpr NEGEX=new NegativeExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + UnaryMinus UM=new UnaryMinus(); + NEGEX.set_UnaryMinus(UM); + NEGEX.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=NEGEX; + } + break; +case 241: + // line 2135 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 242: + // line 2140 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 243: + // line 2144 "./../src/mycompiler/myparser/JavaParser.jay" + { + if (((UsedId)yyVals[0+yyTop]).get_Name().size() > 1) { + + /*macht aus der Liste von Strings */ + /*in usedid.name einen InstVar */ + InstVar INSTVA = new InstVar(((UsedId)yyVals[0+yyTop]),((UsedId)yyVals[0+yyTop]).getOffset(),((UsedId)yyVals[0+yyTop]).getVariableLength()); + + /*auskommentiert von Andreas Stadelmeier (a10023) INSTVA.setType(TypePlaceholder.fresh());*/ + yyVal = INSTVA; + } + else { + LocalOrFieldVar Postincexpr = new LocalOrFieldVar(((UsedId)yyVals[0+yyTop]).getOffset(),((UsedId)yyVals[0+yyTop]).getVariableLength()); + Postincexpr.set_UsedId(((UsedId)yyVals[0+yyTop])); + /*auskommentiert von Andreas Stadelmeier (a10023) Postincexpr.setType(TypePlaceholder.fresh());*/ + yyVal=Postincexpr; + } + } + break; +case 244: + // line 2162 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 245: + // line 2166 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 246: + // line 2171 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 247: + // line 2176 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 249: + // line 2182 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Literal)yyVals[0+yyTop]); + } + break; +case 250: + // line 2186 "./../src/mycompiler/myparser/JavaParser.jay" + { + This T = new This(((Token)yyVals[0+yyTop]).getOffset(),((Token)yyVals[0+yyTop]).getLexem().length()); + UsedId UT = new UsedId(((Token)yyVals[0+yyTop]).getOffset()); + UT.set_Name(((Token)yyVals[0+yyTop]).getLexem()); + T.set_UsedId(UT); + yyVal=T; + } + break; +case 251: + // line 2207 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((MethodCall)yyVals[0+yyTop]); + } + break; +case 252: + // line 2211 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 253: + // line 2216 "./../src/mycompiler/myparser/JavaParser.jay" + {yyVal=((Expr)yyVals[0+yyTop]);} + break; +case 254: + // line 2218 "./../src/mycompiler/myparser/JavaParser.jay" + {NotExpr NE=new NotExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + UnaryNot UN=new UnaryNot(); + NE.set_UnaryNot(UN); + NE.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=NE; + } + break; +case 255: + // line 2224 "./../src/mycompiler/myparser/JavaParser.jay" + {yyVal=((CastExpr)yyVals[0+yyTop]);} + break; +case 256: + // line 2226 "./../src/mycompiler/myparser/JavaParser.jay" + {yyVal=((Expr)yyVals[0+yyTop]);} + break; +case 258: + // line 2231 "./../src/mycompiler/myparser/JavaParser.jay" + {IntLiteral IL = new IntLiteral(); + IL.set_Int(((Token)yyVals[0+yyTop]).String2Int()); + yyVal = IL; + } + break; +case 259: + // line 2236 "./../src/mycompiler/myparser/JavaParser.jay" + {BoolLiteral BL = new BoolLiteral(); + BL.set_Bool(((Token)yyVals[0+yyTop]).String2Bool()); + yyVal = BL; + } + break; +case 260: + // line 2240 "./../src/mycompiler/myparser/JavaParser.jay" + {CharLiteral CL = new CharLiteral(); + CL.set_Char(((Token)yyVals[0+yyTop]).CharInString()); + yyVal=CL; + } + break; +case 261: + // line 2245 "./../src/mycompiler/myparser/JavaParser.jay" + { + StringLiteral ST = new StringLiteral(); + ST.set_String(((Token)yyVals[0+yyTop]).get_String()); + yyVal=ST; + } + break; +case 262: + // line 2250 "./../src/mycompiler/myparser/JavaParser.jay" + { LongLiteral LL = new LongLiteral(); + LL.set_Long(((Token)yyVals[0+yyTop]).String2Long()); + yyVal = LL; + } + break; +case 263: + // line 2254 "./../src/mycompiler/myparser/JavaParser.jay" + { + FloatLiteral FL = new FloatLiteral(); + FL.set_Float(((Token)yyVals[0+yyTop]).String2Float()); + yyVal = FL; + } + break; +case 264: + // line 2259 "./../src/mycompiler/myparser/JavaParser.jay" + { + DoubleLiteral DL = new DoubleLiteral(); + DL.set_Double(((Token)yyVals[0+yyTop]).String2Double()); + yyVal = DL; + } + break; +case 265: + // line 2265 "./../src/mycompiler/myparser/JavaParser.jay" + { + Null NN = new Null(); + yyVal=NN; + } + break; +case 266: + // line 2271 "./../src/mycompiler/myparser/JavaParser.jay" + { + CastExpr CaEx=new CastExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); + CaEx.set_Type(((BaseType)yyVals[-2+yyTop])); + CaEx.set_Expr(((Expr)yyVals[0+yyTop])); + yyVal=CaEx; + } + break; +case 267: + // line 2280 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 268: + // line 2284 "./../src/mycompiler/myparser/JavaParser.jay" + { + } + break; +case 269: + // line 2288 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 270: + // line 2292 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary EQ = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + EqualOp EO = new EqualOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + EQ.set_Expr1(((Expr)yyVals[-2+yyTop])); + EQ.set_Expr2(((Expr)yyVals[0+yyTop])); + EQ.set_Operator(EO); + /*auskommentiert von Andreas Stadelmeier (a10023) EQ.setType(TypePlaceholder.fresh());*/ + yyVal=EQ; + } + break; +case 271: + // line 2302 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary NEQ = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + NotEqualOp NEO = new NotEqualOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + NEQ.set_Expr1(((Expr)yyVals[-2+yyTop])); + NEQ.set_Expr2(((Expr)yyVals[0+yyTop])); + NEQ.set_Operator(NEO); + /*auskommentiert von Andreas Stadelmeier (a10023) NEQ.setType(TypePlaceholder.fresh());*/ + yyVal=NEQ; + } + break; +case 272: + // line 2313 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 273: + // line 2317 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary LO = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + LessOp LOO = new LessOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + LO.set_Expr1(((Expr)yyVals[-2+yyTop])); + LO.set_Expr2(((Expr)yyVals[0+yyTop])); + LO.set_Operator(LOO); + /*auskommentiert von Andreas Stadelmeier (a10023) LO.setType(TypePlaceholder.fresh());*/ + yyVal=LO; + } + break; +case 274: + // line 2327 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary GO = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + GreaterOp GOO = new GreaterOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + GO.set_Expr1(((Expr)yyVals[-2+yyTop])); + GO.set_Expr2(((Expr)yyVals[0+yyTop])); + GO.set_Operator( GOO ); + /*auskommentiert von Andreas Stadelmeier (a10023) GO.setType(TypePlaceholder.fresh());*/ + yyVal=GO; + } + break; +case 275: + // line 2337 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary LE = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + LessEquOp LEO = new LessEquOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + LE.set_Expr1(((Expr)yyVals[-2+yyTop])); + LE.set_Expr2(((Expr)yyVals[0+yyTop])); + LE.set_Operator(LEO); + /*auskommentiert von Andreas Stadelmeier (a10023) LE.setType(TypePlaceholder.fresh());*/ + yyVal=LE; + } + break; +case 276: + // line 2347 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary GE = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + GreaterEquOp GEO = new GreaterEquOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + GE.set_Expr1(((Expr)yyVals[-2+yyTop])); + GE.set_Expr2(((Expr)yyVals[0+yyTop])); + GE.set_Operator(GEO); + /*auskommentiert von Andreas Stadelmeier (a10023) GE.setType(TypePlaceholder.fresh());*/ + yyVal=GE; + } + break; +case 277: + // line 2357 "./../src/mycompiler/myparser/JavaParser.jay" + { + InstanceOf ISO=new InstanceOf(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + ISO.set_Expr(((Expr)yyVals[-2+yyTop])); + ISO.set_Type(((RefType)yyVals[0+yyTop])); + yyVal=ISO; + } + break; +case 278: + // line 2365 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 279: + // line 2370 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 280: + // line 2374 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary AD = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + PlusOp PO = new PlusOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + AD.set_Expr1(((Expr)yyVals[-2+yyTop])); + AD.set_Expr2(((Expr)yyVals[0+yyTop])); + AD.set_Operator(PO); + /*auskommentiert von Andreas Stadelmeier (a10023) AD.setType(TypePlaceholder.fresh());*/ + yyVal=AD; + } + break; +case 281: + // line 2384 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary MI = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + MinusOp MO = new MinusOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + MI.set_Expr1(((Expr)yyVals[-2+yyTop])); + MI.set_Expr2(((Expr)yyVals[0+yyTop])); + MI.set_Operator(MO); + /*auskommentiert von Andreas Stadelmeier (a10023) MI.setType(TypePlaceholder.fresh());*/ + yyVal=MI; + } + break; +case 282: + // line 2395 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 283: + // line 2399 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary ML = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + TimesOp TO = new TimesOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + ML.set_Expr1(((Expr)yyVals[-2+yyTop])); + ML.set_Expr2(((Expr)yyVals[0+yyTop])); + ML.set_Operator(TO); + /*auskommentiert von Andreas Stadelmeier (a10023) ML.setType(TypePlaceholder.fresh());*/ + yyVal=ML; + } + break; +case 284: + // line 2409 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary DV = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + DivideOp DO = new DivideOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + DV.set_Expr1(((Expr)yyVals[-2+yyTop])); + DV.set_Expr2(((Expr)yyVals[0+yyTop])); + DV.set_Operator(DO); + /*auskommentiert von Andreas Stadelmeier (a10023) DV.setType(TypePlaceholder.fresh());*/ + yyVal = DV; + } + break; +case 285: + // line 2419 "./../src/mycompiler/myparser/JavaParser.jay" + { + Binary MD = new Binary(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + ModuloOp MO = new ModuloOp(((Expr)yyVals[-2+yyTop]).getOffset(),((Expr)yyVals[-2+yyTop]).getVariableLength()); + MD.set_Expr1(((Expr)yyVals[-2+yyTop])); + MD.set_Expr2(((Expr)yyVals[0+yyTop])); + MD.set_Operator(MO); + /*auskommentiert von Andreas Stadelmeier (a10023) MD.setType(TypePlaceholder.fresh());*/ + yyVal =MD; + } + break; + // line 3171 "-" + } + yyTop -= yyLen[yyN]; + yyState = yyStates[yyTop]; + int yyM = yyLhs[yyN]; + if (yyState == 0 && yyM == 0) { +//t if (yydebug != null) yydebug.shift(0, yyFinal); + yyState = yyFinal; + if (yyToken < 0) { + yyToken = yyLex.advance() ? yyLex.token() : 0; +//t if (yydebug != null) +//t yydebug.lex(yyState, yyToken,yyname(yyToken), yyLex.value()); + } + if (yyToken == 0) { +//t if (yydebug != null) yydebug.accept(yyVal); + return yyVal; + } + continue yyLoop; + } + if ((yyN = yyGindex[yyM]) != 0 && (yyN += yyState) >= 0 + && yyN < yyTable.length && yyCheckInit.yyCheck[yyN] == yyState) + yyState = yyTable[yyN]; + else + yyState = yyDgoto[yyM]; +//t if (yydebug != null) yydebug.shift(yyStates[yyTop], yyState); + continue yyLoop; + } + } + } + + protected static final short yyLhs [] = { -1, + 0, 0, 0, 0, 0, 99, 27, 27, 26, 93, + 93, 28, 28, 106, 106, 24, 25, 25, 23, 1, + 1, 1, 1, 1, 1, 1, 1, 9, 9, 8, + 8, 2, 2, 2, 2, 113, 113, 113, 113, 113, + 113, 116, 116, 116, 7, 7, 41, 41, 29, 33, + 33, 3, 3, 34, 34, 16, 16, 42, 42, 42, + 42, 42, 42, 30, 4, 4, 32, 17, 17, 17, + 31, 114, 114, 115, 115, 5, 5, 18, 18, 111, + 107, 107, 10, 6, 20, 11, 12, 12, 12, 12, + 12, 12, 14, 43, 43, 108, 108, 109, 109, 109, + 109, 49, 95, 98, 98, 94, 94, 96, 96, 97, + 97, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 40, 40, 40, 40, 19, 19, 44, 45, + 45, 51, 51, 110, 110, 39, 39, 15, 15, 37, + 37, 38, 21, 81, 81, 50, 50, 104, 104, 36, + 22, 79, 47, 82, 82, 82, 82, 82, 72, 72, + 35, 35, 48, 48, 80, 80, 80, 80, 87, 88, + 84, 85, 85, 85, 85, 85, 85, 85, 85, 70, + 70, 90, 78, 91, 91, 83, 83, 83, 69, 100, + 100, 73, 73, 73, 73, 73, 73, 89, 86, 68, + 68, 102, 46, 46, 52, 52, 71, 103, 101, 101, + 101, 101, 101, 101, 74, 75, 76, 77, 105, 105, + 105, 105, 92, 92, 67, 67, 58, 58, 58, 58, + 58, 56, 56, 56, 56, 55, 66, 66, 54, 54, + 54, 54, 57, 57, 57, 65, 65, 53, 53, 53, + 53, 53, 53, 53, 53, 112, 64, 64, 63, 63, + 63, 62, 62, 62, 62, 62, 62, 61, 60, 60, + 60, 59, 59, 59, 59, + }; + protected static final short yyLen [] = { 2, + 1, 2, 3, 2, 3, 3, 1, 2, 3, 1, + 2, 1, 1, 1, 1, 3, 3, 3, 1, 3, + 4, 4, 5, 4, 5, 5, 6, 1, 4, 1, + 4, 3, 4, 4, 5, 1, 4, 1, 3, 6, + 3, 1, 3, 3, 2, 3, 1, 2, 2, 2, + 3, 2, 3, 2, 3, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 2, 1, 3, 0, 3, 1, 1, 1, 1, 2, + 2, 3, 6, 2, 3, 3, 2, 3, 4, 2, + 3, 4, 2, 2, 3, 3, 4, 2, 3, 3, + 4, 2, 1, 1, 3, 1, 3, 1, 3, 1, + 3, 3, 2, 3, 4, 3, 4, 4, 5, 2, + 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, + 2, 3, 1, 3, 1, 3, 1, 3, 1, 1, + 2, 1, 3, 4, 5, 1, 3, 3, 4, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 5, 7, + 5, 9, 8, 8, 8, 7, 7, 7, 6, 1, + 1, 1, 2, 2, 3, 1, 1, 1, 1, 3, + 3, 1, 1, 1, 1, 1, 1, 7, 5, 1, + 3, 1, 1, 1, 2, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 3, 4, + 5, 6, 4, 5, 1, 3, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 1, 1, 1, 2, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 1, 3, 1, 3, + 3, 1, 3, 3, 3, 3, 3, 1, 1, 3, + 3, 1, 3, 3, 3, + }; + protected static final short yyDefRed [] = { 0, + 62, 150, 172, 0, 63, 171, 60, 59, 58, 0, + 0, 0, 61, 19, 0, 14, 15, 0, 7, 0, + 152, 160, 151, 0, 0, 0, 0, 47, 0, 0, + 10, 0, 0, 13, 12, 0, 0, 0, 0, 0, + 0, 71, 8, 0, 0, 0, 0, 0, 0, 48, + 11, 0, 0, 0, 0, 0, 0, 20, 0, 0, + 6, 0, 9, 0, 0, 0, 0, 32, 0, 72, + 0, 134, 136, 5, 0, 0, 0, 0, 103, 104, + 0, 49, 64, 67, 50, 0, 0, 0, 0, 45, + 0, 78, 0, 79, 0, 0, 56, 68, 0, 0, + 0, 153, 0, 0, 0, 70, 0, 69, 22, 0, + 0, 24, 16, 0, 18, 0, 54, 0, 52, 0, + 65, 77, 76, 0, 0, 0, 0, 0, 34, 0, + 75, 21, 0, 0, 33, 0, 0, 0, 31, 0, + 80, 0, 0, 0, 110, 0, 0, 129, 0, 139, + 93, 0, 131, 46, 57, 0, 90, 87, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 26, 51, 29, 53, 66, 0, 84, 0, 55, + 73, 23, 0, 25, 35, 108, 0, 105, 0, 0, + 0, 250, 0, 258, 262, 264, 263, 259, 265, 260, + 261, 0, 0, 0, 192, 94, 0, 0, 137, 0, + 0, 0, 175, 0, 154, 0, 0, 249, 246, 0, + 0, 252, 0, 203, 204, 0, 0, 177, 164, 140, + 155, 167, 168, 165, 166, 176, 178, 202, 0, 0, + 122, 148, 157, 0, 142, 0, 86, 0, 0, 0, + 0, 0, 146, 0, 161, 138, 0, 0, 0, 0, + 0, 0, 241, 282, 0, 0, 272, 0, 0, 0, + 0, 0, 0, 0, 190, 169, 85, 237, 238, 244, + 245, 170, 191, 251, 255, 96, 0, 116, 91, 88, + 0, 0, 0, 132, 0, 0, 82, 0, 98, 0, + 0, 0, 27, 0, 0, 0, 194, 0, 0, 0, + 225, 226, 215, 0, 0, 0, 95, 141, 163, 212, + 0, 0, 227, 228, 193, 223, 224, 220, 221, 222, + 219, 0, 156, 0, 149, 111, 126, 117, 89, 0, + 0, 0, 239, 240, 254, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 123, 0, 0, 118, 92, 0, 100, + 99, 0, 0, 109, 0, 0, 0, 195, 0, 216, + 229, 158, 0, 213, 217, 214, 0, 200, 201, 143, + 147, 0, 0, 283, 284, 285, 0, 0, 277, 275, + 276, 273, 274, 0, 0, 0, 0, 0, 0, 0, + 127, 119, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 230, 0, 233, 0, 266, 144, 0, 83, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 198, 197, 181, 159, 231, 0, 234, 145, 189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 232, 188, + 187, 0, 186, 0, 0, 0, 0, 0, 180, 185, + 184, 183, 0, 0, 0, 182, 0, 209, 0, 208, + }; + protected static final short yyDgoto [] = { 15, + 16, 17, 68, 120, 121, 122, 58, 33, 40, 123, + 91, 92, 93, 94, 95, 96, 97, 98, 208, 100, + 209, 102, 34, 35, 37, 19, 20, 211, 59, 82, + 21, 85, 60, 69, 22, 23, 24, 25, 254, 212, + 27, 28, 213, 151, 214, 385, 215, 216, 153, 245, + 314, 217, 218, 219, 220, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 222, 382, 223, 278, 279, 280, 281, 228, 0, 229, + 230, 231, 440, 232, 233, 441, 234, 235, 442, 236, + 237, 282, 29, 79, 80, 187, 146, 81, 30, 283, + 332, 321, 239, 383, 284, 31, 106, 107, 171, 301, + 108, 285, 0, 71, 42, 0, + }; + protected static final short yySindex [] = { 1285, + 0, 0, 0, -240, 0, 0, 0, 0, 0, -236, + -236, -231, 0, 0, 0, 0, 0, 29, 0, 396, + 0, 0, 0, 35, 57, 226, 627, 0, 981, 396, + 0, 154, -92, 0, 0, 194, 159, 170, 163, -88, + 226, 0, 0, 981, 150, 161, 1285, -240, -231, 0, + 0, 396, 981, -31, -236, -236, 1870, 0, -95, -5, + 0, -16, 0, -37, -31, -236, 2564, 0, 9, 0, + 140, 0, 0, 0, -92, -88, 981, 58, 0, 0, + 144, 0, 0, 0, 0, 129, 20, 288, -31, 0, + -62, 0, 129, 0, 52, 2611, 0, 0, 50, 274, + 301, 0, 112, 97, 2681, 0, 259, 0, 0, -5, + -236, 0, 0, 0, 0, 184, 0, 288, 0, 2653, + 0, 0, 0, -62, 345, 20, 2681, -236, 0, 226, + 0, 0, -95, -5, 0, 9, -236, -31, 0, 2159, + 0, 288, 52, -27, 0, -40, 20, 0, 97, 0, + 0, -236, 0, 0, 0, 108, 0, 0, 1082, -26, + 288, 52, 171, 365, 20, 252, 52, 97, 259, 2207, + 0, 0, 0, 0, 0, 0, 20, 0, 132, 0, + 0, 0, -5, 0, 0, 0, 380, 0, 408, 409, + 525, 0, 410, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1113, 1113, 0, 0, -17, 398, 0, 29, + 246, 108, 0, 2251, 0, 394, 125, 0, 0, 411, + 64, 0, 403, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 108, 0, 323, 0, -31, 52, 52, + 404, 301, 0, 420, 0, 0, -236, -17, 1113, 1113, + 1113, 64, 0, 0, 287, 71, 0, 28, 79, 417, + 376, 347, 165, 168, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, + 52, 20, 20, 0, 52, 243, 0, 437, 0, 2311, + 2359, 117, 0, -236, 572, 1082, 0, 419, 1082, 246, + 0, 0, 0, 352, 704, 398, 0, 0, 0, 0, + 766, 178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1082, 0, 286, 0, 0, 0, 0, 0, -236, + 440, 51, 0, 0, 0, 1113, 1113, 1113, 1113, 1113, + -236, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 0, 0, 52, 52, 0, 0, 795, 0, + 0, 2403, 1082, 0, 842, 424, 444, 0, 446, 0, + 0, 0, 353, 0, 0, 0, 451, 0, 0, 0, + 0, 812, 1113, 0, 0, 0, 287, 287, 0, 0, + 0, 0, 0, 28, 28, 79, 417, 376, 347, 165, + 0, 0, 433, 359, 0, 435, 880, 442, 897, 2434, + 2474, 1082, 0, 933, 0, 382, 0, 0, 445, 0, + 2474, 458, 974, 1009, 448, 463, 469, 0, 0, 244, + 0, 0, 0, 0, 0, 402, 0, 0, 0, 2474, + 2474, 471, 2474, 474, 1036, 1082, 1082, 2474, 0, 0, + 0, 2474, 0, 2474, 2474, 477, 480, 484, 0, 0, + 0, 0, 2474, 2434, 2434, 0, 266, 0, 2434, 0, + }; + protected static final short yyRindex [] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, + 0, 0, 0, 2522, 2551, 0, 0, 0, 535, 0, + 0, -91, 0, 0, 0, 0, 0, 0, -87, 0, + 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, + 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 546, -42, 0, 0, + 0, 0, 0, 0, 0, 2716, 0, -34, 0, 0, + 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, + 249, 0, -84, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 214, 0, 0, 0, -4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 310, 13, 0, 0, 0, 0, 37, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 601, 0, 0, 0, 0, 0, 488, 0, 181, + 722, 0, 0, 0, 0, 0, 0, 0, 0, 1305, + 0, 0, 0, 0, 0, -50, -46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, + 0, 0, 0, 0, 0, 0, 0, 0, 38, 39, + 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 2061, 0, 0, 1946, 1781, 0, 5, 1869, 1389, + 1400, 1426, 1452, 1463, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 45, 0, 0, -28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1491, + 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1998, 2035, 0, 0, + 0, 0, 0, 1906, 1935, 1880, 1557, 1594, 1583, 1744, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + protected static final short yyGindex [] = { 507, + 0, 0, 2, 0, 436, 0, 406, 509, 510, 0, + 258, 0, -8, 0, 2837, 0, 465, 0, -3, -49, + 49, -127, 19, 0, 0, 61, 532, -10, 489, -129, + -44, 16, 4, 487, 0, 0, 308, -131, 0, 573, + 54, 14, -56, 0, -126, 0, 0, 0, 388, 233, + 59, 0, 0, 0, 0, -63, 0, 176, -167, 0, + 86, 75, 217, 218, 216, 221, 228, 0, 0, 256, + 0, -151, 0, -45, -6, 55, 121, 0, 0, -176, + -180, 2546, -114, 0, 0, 0, 0, 0, 0, 0, + 0, 260, 53, -51, 455, 0, 0, 513, 0, 160, + 0, 0, 0, -301, 237, 157, 0, 492, 429, 0, + 0, 0, 0, 0, 0, 0, + }; + protected static final short yyTable [] = { 36, + 38, 106, 107, 248, 115, 186, 74, 277, 205, 161, + 83, 84, 206, 242, 286, 251, 243, 250, 18, 106, + 107, 84, 253, 313, 161, 19, 161, 57, 207, 141, + 57, 30, 243, 318, 67, 28, 150, 145, 111, 308, + 50, 269, 269, 300, 18, 269, 269, 269, 269, 269, + 269, 269, 128, 99, 164, 19, 19, 128, 125, 18, + 32, 331, 110, 269, 14, 18, 84, 414, 120, 39, + 129, 113, 44, 18, 18, 103, 221, 135, 134, 243, + 43, 117, 53, 84, 18, 18, 19, 354, 41, 355, + 426, 393, 99, 156, 224, 130, 124, 112, 269, 251, + 163, 102, 121, 114, 77, 101, 221, 83, 157, 18, + 105, 125, 43, 349, 103, 350, 333, 57, 50, 318, + 127, 128, 446, 103, 224, 45, 173, 341, 269, 18, + 243, 67, 120, 225, 125, 113, 183, 185, 18, 115, + 50, 45, 18, 180, 101, 18, 18, 46, 18, 105, + 221, 160, 101, 376, 377, 18, 144, 379, 210, 130, + 124, 112, 18, 225, 296, 102, 121, 114, 224, 386, + 18, 41, 374, 127, 372, 55, 30, 373, 18, 66, + 28, 397, 398, 130, 18, 51, 56, 138, 210, 56, + 30, 318, 310, 310, 226, 2, 336, 252, 125, 3, + 51, 131, 246, 115, 256, 139, 243, 225, 316, 51, + 391, 6, 83, 54, 156, 64, 74, 63, 287, 399, + 13, 416, 65, 418, 226, 18, 13, 138, 147, 289, + 2, 2, 210, 51, 3, 3, 221, 221, 118, 62, + 2, 13, 72, 438, 3, 174, 6, 6, 310, 310, + 310, 140, 61, 73, 224, 224, 6, 244, 244, 16, + 227, 245, 245, 114, 384, 432, 19, 435, 226, 78, + 444, 74, 17, 202, 202, 18, 18, 251, 251, 250, + 250, 452, 454, 202, 113, 315, 156, 106, 107, 247, + 227, 62, 137, 225, 225, 83, 19, 438, 438, 238, + 351, 368, 438, 466, 467, 468, 269, 137, 221, 269, + 269, 269, 269, 269, 326, 327, 328, 329, 210, 210, + 142, 330, 18, 348, 124, 137, 224, 144, 346, 238, + 352, 353, 158, 347, 227, 310, 310, 310, 310, 310, + 152, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 18, 161, 226, 226, 221, 221, 18, 477, + 478, 159, 166, 335, 480, 225, 334, 221, 161, 18, + 161, 323, 324, 238, 224, 224, 240, 124, 311, 312, + 356, 170, 310, 357, 166, 224, 221, 221, 363, 221, + 210, 334, 380, 423, 221, 334, 422, 161, 221, 429, + 221, 221, 422, 178, 224, 224, 240, 224, 255, 221, + 221, 221, 224, 225, 225, 221, 224, 304, 224, 224, + 227, 227, 447, 290, 225, 422, 226, 224, 224, 224, + 404, 405, 302, 224, 343, 344, 345, 400, 401, 402, + 403, 156, 459, 225, 225, 422, 225, 305, 306, 309, + 240, 225, 319, 320, 358, 225, 322, 225, 225, 238, + 238, 325, 339, 340, 109, 112, 225, 225, 225, 359, + 360, 361, 225, 362, 226, 226, 369, 378, 387, 392, + 132, 74, 419, 2, 420, 226, 421, 3, 13, 13, + 424, 428, 227, 430, 13, 13, 13, 13, 450, 6, + 433, 13, 456, 448, 226, 226, 455, 226, 457, 2, + 458, 462, 226, 3, 464, 172, 226, 473, 226, 226, + 474, 394, 395, 396, 475, 6, 14, 226, 226, 226, + 241, 238, 479, 226, 1, 2, 240, 240, 182, 184, + 227, 227, 292, 2, 4, 3, 174, 3, 173, 288, + 133, 227, 14, 74, 294, 176, 75, 261, 76, 6, + 155, 52, 136, 133, 258, 342, 390, 259, 427, 260, + 227, 227, 26, 227, 406, 408, 407, 116, 227, 238, + 238, 409, 227, 307, 227, 227, 202, 388, 303, 410, + 238, 389, 188, 227, 227, 227, 169, 297, 47, 227, + 0, 0, 0, 0, 261, 0, 0, 0, 240, 238, + 238, 258, 238, 70, 259, 0, 260, 238, 0, 26, + 0, 238, 0, 238, 238, 0, 0, 0, 0, 104, + 375, 0, 238, 238, 238, 0, 337, 338, 238, 126, + 19, 161, 0, 0, 161, 0, 19, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 240, 240, 4, 161, + 19, 19, 0, 149, 5, 0, 0, 240, 104, 0, + 0, 7, 8, 9, 0, 11, 12, 168, 364, 13, + 0, 0, 367, 0, 0, 0, 240, 240, 0, 240, + 0, 19, 126, 0, 240, 0, 177, 0, 240, 179, + 240, 240, 181, 0, 0, 0, 0, 0, 0, 240, + 240, 240, 0, 0, 0, 240, 244, 74, 74, 0, + 74, 74, 74, 74, 74, 74, 74, 74, 0, 0, + 0, 0, 244, 0, 0, 0, 261, 0, 293, 74, + 0, 0, 74, 258, 381, 0, 259, 0, 260, 0, + 0, 0, 411, 412, 0, 0, 0, 0, 243, 243, + 0, 0, 243, 243, 243, 243, 243, 0, 243, 0, + 0, 74, 0, 0, 74, 0, 0, 0, 0, 244, + 243, 243, 218, 243, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 261, 257, + 0, 0, 0, 74, 74, 258, 0, 0, 259, 0, + 260, 192, 0, 0, 0, 243, 0, 194, 195, 196, + 197, 198, 199, 200, 201, 14, 0, 261, 0, 0, + 244, 0, 203, 204, 258, 413, 0, 259, 0, 260, + 0, 0, 0, 0, 261, 243, 257, 0, 0, 0, + 0, 258, 425, 0, 259, 0, 260, 0, 192, 0, + 0, 0, 0, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 14, 0, 261, 0, 0, 0, 0, 203, + 204, 258, 0, 1, 259, 0, 260, 0, 140, 48, + 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 417, 19, 7, 8, 9, 0, 244, 49, 19, 19, + 13, 0, 261, 0, 19, 19, 19, 19, 0, 258, + 431, 19, 259, 0, 260, 0, 0, 0, 0, 261, + 0, 0, 0, 0, 0, 0, 258, 74, 74, 259, + 0, 260, 74, 74, 0, 0, 0, 0, 0, 74, + 0, 0, 0, 74, 74, 434, 74, 74, 74, 74, + 74, 74, 74, 0, 74, 261, 0, 0, 0, 0, + 0, 0, 258, 445, 0, 259, 0, 260, 257, 0, + 0, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 192, 0, 0, 0, 243, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 14, 0, 261, 0, 0, 0, + 74, 203, 204, 258, 451, 0, 259, 0, 260, 0, + 0, 0, 0, 243, 243, 243, 243, 243, 243, 243, + 243, 0, 0, 0, 0, 218, 218, 218, 218, 0, + 257, 261, 218, 0, 0, 0, 0, 0, 258, 453, + 0, 259, 192, 260, 0, 0, 0, 0, 194, 195, + 196, 197, 198, 199, 200, 201, 14, 0, 261, 257, + 0, 0, 0, 203, 204, 258, 465, 0, 259, 0, + 260, 192, 0, 0, 0, 0, 257, 194, 195, 196, + 197, 198, 199, 200, 201, 14, 0, 0, 192, 0, + 0, 0, 203, 204, 194, 195, 196, 197, 198, 199, + 200, 201, 14, 0, 261, 0, 257, 0, 0, 203, + 204, 258, 0, 0, 259, 0, 260, 0, 192, 0, + 0, 0, 0, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 14, 0, 0, 261, 0, 0, 0, 203, + 204, 0, 258, 0, 257, 259, 0, 260, 0, 0, + 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, + 0, 257, 194, 195, 196, 197, 198, 199, 200, 201, + 14, 0, 0, 192, 0, 0, 0, 203, 204, 194, + 195, 196, 197, 198, 199, 200, 201, 14, 0, 0, + 0, 0, 0, 0, 203, 204, 0, 257, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 0, 0, 0, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 14, 0, 0, 0, 1, 0, 0, + 203, 204, 0, 4, 0, 0, 0, 0, 257, 5, + 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, + 192, 12, 0, 0, 13, 0, 194, 195, 196, 197, + 198, 199, 200, 201, 14, 0, 0, 0, 0, 0, + 0, 203, 204, 257, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, + 0, 194, 195, 196, 197, 198, 199, 200, 201, 14, + 257, 0, 0, 0, 0, 0, 203, 204, 0, 0, + 0, 0, 192, 0, 0, 0, 0, 0, 194, 195, + 196, 197, 198, 199, 200, 201, 14, 0, 0, 0, + 0, 242, 242, 203, 204, 242, 242, 242, 242, 242, + 0, 242, 0, 0, 0, 0, 257, 0, 0, 0, + 0, 0, 0, 242, 242, 0, 242, 0, 192, 0, + 0, 0, 0, 0, 194, 195, 196, 197, 198, 199, + 200, 201, 14, 0, 0, 0, 0, 0, 0, 203, + 204, 0, 0, 0, 0, 0, 0, 0, 242, 192, + 0, 0, 0, 0, 0, 194, 195, 196, 197, 198, + 199, 200, 201, 14, 0, 0, 0, 0, 0, 0, + 203, 204, 0, 0, 0, 256, 0, 0, 242, 256, + 256, 256, 256, 256, 256, 256, 247, 247, 0, 0, + 247, 247, 247, 247, 247, 247, 247, 256, 256, 0, + 256, 0, 0, 0, 0, 0, 0, 0, 247, 247, + 0, 247, 235, 235, 0, 0, 235, 235, 235, 235, + 235, 235, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 256, 0, 235, 235, 0, 235, 210, 210, + 0, 0, 210, 210, 210, 210, 210, 210, 210, 199, + 199, 0, 0, 199, 199, 199, 199, 199, 199, 199, + 210, 210, 256, 210, 0, 0, 0, 0, 0, 235, + 0, 199, 199, 247, 199, 0, 0, 243, 243, 0, + 0, 243, 243, 243, 243, 243, 0, 243, 0, 0, + 0, 1, 2, 0, 0, 210, 3, 4, 0, 243, + 243, 0, 243, 5, 0, 0, 199, 0, 6, 0, + 7, 8, 9, 10, 11, 12, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 210, 0, 242, 0, 0, + 0, 0, 0, 0, 243, 14, 199, 0, 0, 0, + 0, 0, 0, 257, 0, 0, 0, 257, 257, 257, + 257, 257, 257, 257, 0, 0, 242, 242, 242, 242, + 242, 242, 242, 242, 243, 257, 257, 0, 257, 236, + 236, 0, 0, 236, 236, 236, 236, 236, 236, 236, + 248, 248, 0, 0, 248, 248, 248, 248, 248, 248, + 248, 236, 236, 0, 236, 0, 0, 0, 0, 0, + 257, 0, 248, 248, 0, 248, 0, 0, 0, 0, + 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 0, 0, 236, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 256, 256, 256, 256, 256, 256, 256, 256, 235, 0, + 0, 247, 247, 247, 247, 247, 247, 247, 247, 0, + 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, + 0, 0, 0, 0, 210, 0, 0, 235, 235, 235, + 235, 235, 235, 235, 235, 199, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 210, 210, 210, 210, 0, 210, + 210, 0, 0, 243, 199, 199, 199, 199, 0, 199, + 199, 199, 0, 0, 0, 0, 0, 0, 0, 0, + 211, 211, 0, 0, 211, 211, 211, 211, 211, 211, + 211, 0, 243, 243, 243, 243, 243, 243, 243, 243, + 0, 0, 211, 211, 0, 211, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 278, 278, 0, + 0, 278, 278, 0, 278, 0, 278, 278, 0, 257, + 0, 0, 0, 0, 0, 0, 0, 211, 0, 278, + 278, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 0, 0, 257, 257, + 257, 257, 257, 257, 257, 257, 248, 211, 0, 0, + 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 236, 236, 236, 236, 236, + 236, 236, 0, 0, 0, 248, 248, 248, 248, 248, + 248, 248, 248, 0, 278, 267, 267, 0, 0, 267, + 267, 267, 267, 267, 267, 267, 268, 268, 0, 0, + 268, 268, 268, 268, 268, 268, 268, 267, 267, 89, + 267, 0, 0, 0, 0, 0, 0, 0, 268, 268, + 0, 268, 270, 270, 0, 0, 270, 270, 270, 270, + 270, 270, 270, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 267, 0, 270, 0, 0, 0, 0, 0, + 0, 271, 271, 268, 0, 271, 271, 271, 271, 271, + 271, 271, 0, 279, 0, 0, 279, 0, 279, 279, + 279, 279, 267, 271, 90, 0, 0, 0, 0, 270, + 0, 0, 0, 268, 279, 279, 0, 279, 0, 0, + 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 270, + 0, 0, 0, 0, 0, 280, 0, 0, 280, 279, + 280, 280, 280, 280, 0, 211, 211, 211, 211, 211, + 0, 211, 211, 278, 0, 0, 280, 280, 271, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, + 0, 0, 281, 0, 0, 281, 0, 281, 281, 281, + 281, 0, 278, 278, 278, 278, 278, 278, 278, 278, + 0, 280, 0, 281, 281, 0, 281, 253, 253, 0, + 0, 253, 253, 253, 253, 253, 253, 253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 253, 280, 253, 0, 0, 0, 1, 2, 281, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 5, 0, + 0, 267, 0, 6, 0, 7, 8, 9, 0, 0, + 164, 0, 268, 86, 253, 0, 0, 0, 281, 0, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 164, + 88, 267, 267, 0, 267, 267, 267, 267, 0, 0, + 0, 0, 268, 268, 253, 268, 268, 268, 268, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, + 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, + 270, 270, 270, 270, 270, 0, 0, 205, 279, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 164, 271, 0, 0, 271, + 271, 271, 271, 271, 0, 0, 207, 279, 279, 279, + 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 140, 0, 206, 0, 0, 0, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 280, 280, 280, 280, 280, 280, 280, 281, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, + 0, 299, 0, 253, 0, 0, 281, 281, 281, 281, + 281, 281, 281, 281, 0, 0, 0, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 253, 253, 253, 253, 253, 253, 164, 205, + 0, 0, 164, 140, 0, 317, 0, 196, 0, 0, + 0, 164, 164, 0, 164, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 164, 207, 0, + 0, 0, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 0, 0, 0, 0, 2, 205, 164, 164, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 190, 0, 6, 140, 0, 370, 0, 0, 0, 0, + 0, 191, 207, 0, 0, 192, 0, 0, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 0, 205, 0, 0, 2, 0, 203, 204, 3, 0, + 0, 0, 0, 207, 0, 0, 0, 189, 190, 0, + 6, 140, 0, 371, 0, 0, 0, 0, 0, 191, + 0, 0, 205, 298, 0, 0, 0, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 2, 0, + 0, 0, 3, 207, 203, 204, 0, 0, 0, 0, + 0, 189, 190, 0, 6, 140, 0, 415, 0, 0, + 0, 0, 205, 191, 0, 0, 0, 192, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 0, 140, 0, 203, 204, + 0, 0, 0, 0, 0, 133, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 189, 190, 133, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 135, 0, 140, 192, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 135, 0, 0, 0, 2, 0, 203, 204, + 3, 0, 0, 89, 0, 0, 0, 0, 0, 189, + 190, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 2, 0, 0, 0, 3, 0, 203, 204, 0, 0, + 89, 0, 0, 189, 190, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 0, 0, 119, 192, + 0, 0, 0, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 189, 436, 0, 0, 0, 0, + 203, 204, 89, 0, 0, 0, 191, 0, 0, 0, + 192, 0, 0, 0, 0, 437, 194, 195, 196, 197, + 198, 199, 200, 201, 14, 154, 0, 0, 0, 0, + 89, 203, 204, 0, 189, 190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 192, 0, 0, 0, 0, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 14, 61, 0, 175, 133, 133, + 0, 203, 204, 133, 133, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 0, 133, 0, 133, 133, 133, + 133, 133, 133, 0, 0, 133, 0, 135, 135, 0, + 0, 0, 135, 135, 0, 0, 0, 0, 0, 135, + 1, 2, 133, 0, 135, 3, 135, 135, 135, 135, + 135, 135, 5, 0, 135, 0, 0, 6, 0, 7, + 8, 9, 0, 0, 0, 0, 0, 13, 0, 0, + 0, 135, 0, 0, 87, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 0, 0, 1, 2, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 5, + 0, 0, 0, 0, 6, 0, 7, 8, 9, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 0, 0, 1, + 2, 88, 0, 0, 3, 0, 0, 0, 0, 0, + 0, 5, 0, 143, 0, 0, 6, 148, 7, 8, + 9, 0, 0, 0, 0, 0, 13, 1, 2, 0, + 162, 167, 3, 87, 0, 0, 0, 0, 0, 5, + 0, 0, 0, 118, 6, 0, 7, 8, 9, 0, + 148, 0, 162, 167, 13, 439, 443, 0, 0, 0, + 0, 165, 61, 61, 0, 0, 449, 61, 0, 0, + 0, 118, 0, 249, 61, 250, 0, 0, 0, 61, + 0, 61, 61, 61, 0, 460, 461, 0, 463, 61, + 0, 291, 0, 469, 295, 0, 61, 470, 0, 471, + 472, 0, 0, 250, 0, 295, 61, 0, 476, 439, + 443, 0, 0, 0, 469, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 365, 366, + }; + protected short yyCheck[] = new short[3131]; +} +class yyCheck0 { + protected static final short yyCheck0 [] = { 10, + 11, 44, 44, 44, 42, 137, 91, 159, 59, 44, + 55, 56, 59, 41, 41, 46, 144, 46, 0, 62, + 62, 66, 152, 41, 59, 60, 61, 123, 59, 86, + 123, 123, 160, 214, 123, 123, 93, 89, 44, 191, + 27, 37, 38, 170, 26, 41, 42, 43, 44, 45, + 46, 47, 44, 57, 104, 60, 91, 59, 67, 41, + 301, 61, 59, 59, 301, 47, 111, 369, 59, 301, + 69, 59, 20, 55, 56, 57, 140, 76, 75, 207, + 20, 66, 30, 128, 66, 67, 91, 60, 60, 62, + 392, 41, 96, 44, 140, 59, 59, 59, 94, 149, + 104, 59, 59, 59, 52, 57, 170, 152, 59, 91, + 57, 120, 52, 43, 96, 45, 244, 123, 105, 300, + 67, 123, 424, 105, 170, 91, 111, 257, 124, 111, + 258, 123, 123, 140, 59, 123, 133, 136, 120, 59, + 127, 91, 124, 128, 96, 127, 128, 91, 130, 96, + 214, 40, 104, 305, 306, 137, 40, 309, 140, 123, + 123, 123, 144, 170, 168, 123, 123, 123, 214, 321, + 152, 60, 304, 120, 301, 268, 268, 61, 160, 268, + 268, 349, 350, 44, 166, 29, 282, 44, 170, 282, + 282, 372, 203, 204, 140, 258, 248, 149, 123, 262, + 44, 62, 144, 123, 156, 62, 334, 214, 212, 53, + 340, 274, 257, 60, 44, 46, 301, 59, 160, 351, + 40, 373, 60, 375, 170, 207, 46, 44, 291, 59, + 258, 258, 214, 77, 262, 262, 300, 301, 301, 46, + 258, 61, 93, 420, 262, 62, 274, 274, 259, 260, + 261, 123, 59, 93, 300, 301, 274, 308, 309, 46, + 140, 308, 309, 301, 321, 417, 301, 419, 214, 301, + 422, 91, 59, 301, 301, 257, 258, 308, 309, 308, + 309, 433, 434, 301, 301, 40, 44, 330, 330, 330, + 170, 46, 44, 300, 301, 340, 301, 474, 475, 140, + 273, 59, 479, 455, 456, 457, 302, 59, 372, 305, + 306, 307, 308, 309, 314, 315, 316, 317, 300, 301, + 301, 321, 304, 37, 67, 268, 372, 40, 42, 170, + 303, 304, 59, 47, 214, 346, 347, 348, 349, 350, + 289, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 334, 44, 300, 301, 420, 421, 340, 474, + 475, 61, 105, 41, 479, 372, 44, 431, 59, 351, + 61, 308, 309, 214, 420, 421, 140, 120, 203, 204, + 302, 123, 393, 305, 127, 431, 450, 451, 41, 453, + 372, 44, 41, 41, 458, 44, 44, 301, 462, 41, + 464, 465, 44, 59, 450, 451, 170, 453, 301, 473, + 474, 475, 458, 420, 421, 479, 462, 38, 464, 465, + 300, 301, 41, 59, 431, 44, 372, 473, 474, 475, + 356, 357, 301, 479, 259, 260, 261, 352, 353, 354, + 355, 44, 41, 450, 451, 44, 453, 40, 40, 40, + 214, 458, 59, 329, 38, 462, 46, 464, 465, 300, + 301, 59, 59, 44, 59, 60, 473, 474, 475, 94, + 124, 307, 479, 306, 420, 421, 40, 59, 301, 40, + 75, 301, 59, 258, 41, 431, 41, 262, 308, 309, + 40, 59, 372, 59, 314, 315, 316, 317, 41, 274, + 59, 321, 40, 59, 450, 451, 59, 453, 40, 258, + 267, 41, 458, 262, 41, 110, 462, 41, 464, 465, + 41, 346, 347, 348, 41, 274, 301, 473, 474, 475, + 143, 372, 267, 479, 0, 0, 300, 301, 133, 134, + 420, 421, 291, 258, 0, 0, 59, 262, 59, 162, + 301, 431, 301, 47, 167, 120, 48, 33, 49, 274, + 96, 30, 76, 75, 40, 258, 334, 43, 393, 45, + 450, 451, 0, 453, 358, 360, 359, 65, 458, 420, + 421, 361, 462, 59, 464, 465, 301, 332, 183, 362, + 431, 332, 138, 473, 474, 475, 105, 169, 26, 479, + -1, -1, -1, -1, 33, -1, -1, -1, 372, 450, + 451, 40, 453, 41, 43, -1, 45, 458, -1, 47, + -1, 462, -1, 464, 465, -1, -1, -1, -1, 57, + 59, -1, 473, 474, 475, -1, 249, 250, 479, 67, + 40, 41, -1, -1, 44, -1, 46, -1, -1, -1, + -1, -1, 257, -1, -1, -1, 420, 421, 263, 59, + 60, 61, -1, 91, 269, -1, -1, 431, 96, -1, + -1, 276, 277, 278, -1, 280, 281, 105, 291, 284, + -1, -1, 295, -1, -1, -1, 450, 451, -1, 453, + -1, 91, 120, -1, 458, -1, 124, -1, 462, 127, + 464, 465, 130, -1, -1, -1, -1, -1, -1, 473, + 474, 475, -1, -1, -1, 479, 144, 37, 38, -1, + 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, + -1, -1, 160, -1, -1, -1, 33, -1, 166, 59, + -1, -1, 62, 40, 41, -1, 43, -1, 45, -1, + -1, -1, 365, 366, -1, -1, -1, -1, 37, 38, + -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, + -1, 91, -1, -1, 94, -1, -1, -1, -1, 207, + 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, 275, + -1, -1, -1, 123, 124, 40, -1, -1, 43, -1, + 45, 287, -1, -1, -1, 94, -1, 293, 294, 295, + 296, 297, 298, 299, 300, 301, -1, 33, -1, -1, + 258, -1, 308, 309, 40, 41, -1, 43, -1, 45, + -1, -1, -1, -1, 33, 124, 275, -1, -1, -1, + -1, 40, 41, -1, 43, -1, 45, -1, 287, -1, + -1, -1, -1, -1, 293, 294, 295, 296, 297, 298, + 299, 300, 301, -1, 33, -1, -1, -1, -1, 308, + 309, 40, -1, 257, 43, -1, 45, -1, 123, 263, + -1, -1, -1, -1, -1, 269, -1, -1, -1, -1, + 59, 301, 276, 277, 278, -1, 334, 281, 308, 309, + 284, -1, 33, -1, 314, 315, 316, 317, -1, 40, + 41, 321, 43, -1, 45, -1, -1, -1, -1, 33, + -1, -1, -1, -1, -1, -1, 40, 257, 258, 43, + -1, 45, 262, 263, -1, -1, -1, -1, -1, 269, + -1, -1, -1, 273, 274, 59, 276, 277, 278, 279, + 280, 281, 282, -1, 284, 33, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, -1, 45, 275, -1, + -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 287, -1, -1, -1, 273, -1, 293, 294, 295, 296, + }; +} +class yyCheck1 { + protected static final short yyCheck1 [] = { 297, + 298, 299, 300, 301, -1, 33, -1, -1, -1, 330, + 308, 309, 40, 41, -1, 43, -1, 45, -1, -1, + -1, -1, 302, 303, 304, 305, 306, 307, 308, 309, + -1, -1, -1, -1, 314, 315, 316, 317, -1, 275, + 33, 321, -1, -1, -1, -1, -1, 40, 41, -1, + 43, 287, 45, -1, -1, -1, -1, 293, 294, 295, + 296, 297, 298, 299, 300, 301, -1, 33, 275, -1, + -1, -1, 308, 309, 40, 41, -1, 43, -1, 45, + 287, -1, -1, -1, -1, 275, 293, 294, 295, 296, + 297, 298, 299, 300, 301, -1, -1, 287, -1, -1, + -1, 308, 309, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, 33, -1, 275, -1, -1, 308, 309, + 40, -1, -1, 43, -1, 45, -1, 287, -1, -1, + -1, -1, -1, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, -1, 33, -1, -1, -1, 308, 309, + -1, 40, -1, 275, 43, -1, 45, -1, -1, -1, + -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, + 275, 293, 294, 295, 296, 297, 298, 299, 300, 301, + -1, -1, 287, -1, -1, -1, 308, 309, 293, 294, + 295, 296, 297, 298, 299, 300, 301, -1, -1, -1, + -1, -1, -1, 308, 309, -1, 275, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 287, -1, + -1, -1, -1, -1, 293, 294, 295, 296, 297, 298, + 299, 300, 301, -1, -1, -1, 257, -1, -1, 308, + 309, -1, 263, -1, -1, -1, -1, 275, 269, -1, + -1, -1, -1, -1, -1, 276, 277, 278, -1, 287, + 281, -1, -1, 284, -1, 293, 294, 295, 296, 297, + 298, 299, 300, 301, -1, -1, -1, -1, -1, -1, + 308, 309, 275, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 287, -1, -1, -1, -1, -1, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 275, + -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, + -1, 287, -1, -1, -1, -1, -1, 293, 294, 295, + 296, 297, 298, 299, 300, 301, -1, -1, -1, -1, + 37, 38, 308, 309, 41, 42, 43, 44, 45, -1, + 47, -1, -1, -1, -1, 275, -1, -1, -1, -1, + -1, -1, 59, 60, -1, 62, -1, 287, -1, -1, + -1, -1, -1, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, -1, -1, -1, -1, -1, 308, 309, + -1, -1, -1, -1, -1, -1, -1, 94, 287, -1, + -1, -1, -1, -1, 293, 294, 295, 296, 297, 298, + 299, 300, 301, -1, -1, -1, -1, -1, -1, 308, + 309, -1, -1, -1, 37, -1, -1, 124, 41, 42, + 43, 44, 45, 46, 47, 37, 38, -1, -1, 41, + 42, 43, 44, 45, 46, 47, 59, 60, -1, 62, + -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, + 62, 37, 38, -1, -1, 41, 42, 43, 44, 45, + 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 94, -1, 59, 60, -1, 62, 37, 38, -1, + -1, 41, 42, 43, 44, 45, 46, 47, 37, 38, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 59, + 60, 124, 62, -1, -1, -1, -1, -1, 94, -1, + 59, 60, 124, 62, -1, -1, 37, 38, -1, -1, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + 257, 258, -1, -1, 94, 262, 263, -1, 59, 60, + -1, 62, 269, -1, -1, 94, -1, 274, -1, 276, + 277, 278, 279, 280, 281, -1, -1, 284, -1, -1, + -1, -1, -1, -1, 124, -1, 273, -1, -1, -1, + -1, -1, -1, 94, 301, 124, -1, -1, -1, -1, + -1, -1, 37, -1, -1, -1, 41, 42, 43, 44, + 45, 46, 47, -1, -1, 302, 303, 304, 305, 306, + 307, 308, 309, 124, 59, 60, -1, 62, 37, 38, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 37, + 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, + 59, 60, -1, 62, -1, -1, -1, -1, -1, 94, + -1, 59, 60, -1, 62, -1, -1, -1, -1, -1, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 273, -1, -1, -1, 94, -1, -1, -1, 124, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 302, + 303, 304, 305, 306, 307, 308, 309, 273, -1, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, -1, + -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, + -1, -1, -1, 273, -1, -1, 302, 303, 304, 305, + 306, 307, 308, 309, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 302, 303, 304, 305, 306, -1, 308, 309, + -1, -1, 273, 302, 303, 304, 305, -1, 307, 308, + 309, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, + -1, 302, 303, 304, 305, 306, 307, 308, 309, -1, + -1, 59, 60, -1, 62, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + 41, 42, -1, 44, -1, 46, 47, -1, 273, -1, + -1, -1, -1, -1, -1, -1, 94, -1, 59, 60, + -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, 302, 303, 304, + 305, 306, 307, 308, 309, 273, 124, -1, -1, -1, + -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 302, 303, 304, 305, 306, 307, 308, + 309, -1, -1, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 124, 37, 38, -1, -1, 41, 42, + 43, 44, 45, 46, 47, 37, 38, -1, -1, 41, + 42, 43, 44, 45, 46, 47, 59, 60, 60, 62, + -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, + 62, 37, 38, -1, -1, 41, 42, 43, 44, 45, + 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 94, -1, 59, -1, -1, -1, -1, -1, -1, + 37, 38, 94, -1, 41, 42, 43, 44, 45, 46, + 47, -1, 38, -1, -1, 41, -1, 43, 44, 45, + 46, 124, 59, 125, -1, -1, -1, -1, 94, -1, + }; +} +class yyCheck2 { + protected static final short yyCheck2 [] = { -1, + -1, 124, 59, 60, -1, 62, -1, -1, -1, -1, + -1, -1, -1, -1, 273, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 94, 124, -1, -1, + -1, -1, -1, 38, -1, -1, 41, 94, 43, 44, + 45, 46, -1, 302, 303, 304, 305, 306, -1, 308, + 309, 273, -1, -1, 59, 60, 124, 62, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, + 38, -1, -1, 41, -1, 43, 44, 45, 46, -1, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 94, + -1, 59, 60, -1, 62, 37, 38, -1, -1, 41, + 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 60, 124, + 62, -1, -1, -1, 257, 258, 94, -1, -1, 262, + -1, -1, -1, -1, -1, -1, 269, -1, -1, 273, + -1, 274, -1, 276, 277, 278, -1, -1, 40, -1, + 273, 284, 94, -1, -1, -1, 124, -1, 291, -1, + -1, -1, -1, -1, -1, -1, -1, 59, 301, 303, + 304, -1, 306, 307, 308, 309, -1, -1, -1, -1, + 303, 304, 124, 306, 307, 308, 309, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, + -1, -1, -1, -1, -1, 302, -1, -1, 305, 306, + 307, 308, 309, -1, -1, 59, 273, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, 302, -1, -1, 305, 306, 307, + 308, 309, -1, -1, 40, 302, 303, 304, 305, 306, + 307, 308, 309, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, 273, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, 40, -1, + -1, -1, -1, -1, -1, -1, -1, 302, 303, 304, + 305, 306, 307, 308, 309, 273, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 273, -1, -1, 302, 303, 304, 305, 306, 307, + 308, 309, -1, -1, -1, -1, -1, -1, 40, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 302, 303, 304, 305, 306, 307, 258, 59, -1, -1, + 262, 123, -1, 125, -1, 267, -1, -1, -1, 271, + 272, -1, 274, -1, -1, -1, -1, -1, -1, -1, + -1, 283, -1, -1, -1, 287, 40, -1, -1, -1, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + -1, -1, -1, -1, 258, 59, 308, 309, 262, -1, + -1, -1, -1, -1, -1, -1, -1, 271, 272, -1, + 274, 123, -1, 125, -1, -1, -1, -1, -1, 283, + 40, -1, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, -1, 59, + -1, -1, 258, -1, 308, 309, 262, -1, -1, -1, + -1, 40, -1, -1, -1, 271, 272, -1, 274, 123, + -1, 125, -1, -1, -1, -1, -1, 283, -1, -1, + 59, 287, -1, -1, -1, -1, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 258, -1, -1, -1, + 262, 40, 308, 309, -1, -1, -1, -1, -1, 271, + 272, -1, 274, 123, -1, 125, -1, -1, -1, -1, + 59, 283, -1, -1, -1, 287, -1, -1, -1, -1, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + -1, -1, -1, -1, 123, -1, 308, 309, -1, -1, + -1, -1, -1, 44, -1, -1, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, -1, 271, + 272, 62, 274, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 44, -1, 123, 287, -1, -1, -1, -1, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 62, -1, -1, -1, 258, -1, 308, 309, 262, -1, + -1, 60, -1, -1, -1, -1, -1, 271, 272, -1, + 274, -1, -1, -1, -1, -1, -1, -1, -1, 283, + -1, -1, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 258, -1, + -1, -1, 262, -1, 308, 309, -1, -1, 60, -1, + -1, 271, 272, -1, 274, -1, -1, -1, -1, -1, + -1, -1, -1, 283, -1, -1, 125, 287, -1, -1, + -1, -1, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 271, 272, -1, -1, -1, -1, 308, 309, + 60, -1, -1, -1, 283, -1, -1, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 125, -1, -1, -1, -1, 60, 308, + 309, -1, 271, 272, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 283, -1, -1, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 60, -1, 125, 257, 258, -1, 308, + 309, 262, 263, -1, -1, -1, -1, -1, 269, -1, + -1, -1, -1, 274, -1, 276, 277, 278, 279, 280, + 281, -1, -1, 284, -1, 257, 258, -1, -1, -1, + 262, 263, -1, -1, -1, -1, -1, 269, 257, 258, + 301, -1, 274, 262, 276, 277, 278, 279, 280, 281, + 269, -1, 284, -1, -1, 274, -1, 276, 277, 278, + -1, -1, -1, -1, -1, 284, -1, -1, -1, 301, + -1, -1, 291, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 301, -1, -1, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, 269, -1, -1, + -1, -1, 274, -1, 276, 277, 278, -1, -1, -1, + -1, -1, 284, -1, -1, -1, -1, -1, -1, 291, + -1, -1, -1, -1, -1, -1, -1, 257, 258, 301, + -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, + -1, 87, -1, -1, 274, 91, 276, 277, 278, -1, + -1, -1, -1, -1, 284, 257, 258, -1, 104, 105, + 262, 291, -1, -1, -1, -1, -1, 269, -1, -1, + -1, 301, 274, -1, 276, 277, 278, -1, 124, -1, + 126, 127, 284, 420, 421, -1, -1, -1, -1, 291, + 257, 258, -1, -1, 431, 262, -1, -1, -1, 301, + -1, 147, 269, 149, -1, -1, -1, 274, -1, 276, + 277, 278, -1, 450, 451, -1, 453, 284, -1, 165, + }; +} +class yyCheck3 { + protected static final short yyCheck3 [] = { -1, + 458, 168, -1, 291, 462, -1, 464, 465, -1, -1, + 177, -1, 179, 301, -1, 473, 474, 475, -1, -1, + -1, 479, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 292, 293, + }; +} +class yyCheckInit { + static short[] yyCheck = new short[3131]; + protected static void yyCheckInit () { + int numyycheck; + int yyCheckerun = 0; + for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { + if (yyCheckerun < 3131) { + yyCheck[yyCheckerun] = yyCheck0.yyCheck0[numyycheck]; + yyCheckerun++; + } + } + for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { + if (yyCheckerun < 3131) { + yyCheck[yyCheckerun] = yyCheck1.yyCheck1[numyycheck]; + yyCheckerun++; + } + } + for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { + if (yyCheckerun < 3131) { + yyCheck[yyCheckerun] = yyCheck2.yyCheck2[numyycheck]; + yyCheckerun++; + } + } + for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { + if (yyCheckerun < 3131) { + yyCheck[yyCheckerun] = yyCheck3.yyCheck3[numyycheck]; + yyCheckerun++; + } + } +} +} + diff --git a/src/mycompiler/myparser/JavaParser.jay b/src/mycompiler/myparser/JavaParser.jay index c485cd43..d6ad2af1 100755 --- a/src/mycompiler/myparser/JavaParser.jay +++ b/src/mycompiler/myparser/JavaParser.jay @@ -7,6 +7,7 @@ Backup von JavaParser.jay 10.April 17 Uhr package mycompiler.myparser; import mycompiler.myclass.FieldDeclaration; +import mycompiler.myclass.GenericDeclarationList; import mycompiler.myclass.Field; import java.util.Vector; import mycompiler.SourceFile; @@ -200,6 +201,7 @@ public Vector testPair = new Vector(); %token OP %token EOF %token LAMBDAASSIGNMENT +%token ENDOFGENERICVARDECLARATION %type classdeclaration %type interfacedeclaration @@ -903,13 +905,13 @@ fielddeclarator : } -genericdeclarationlist : '<' boundedMethodParameters '>' +genericdeclarationlist : '<' boundedMethodParameters ENDOFGENERICVARDECLARATION { - GenericDeclarationList ret = new GenericDeclarationList($2); - ret.setOffset($3.getOffset()); + GenericDeclarationList ret = new GenericDeclarationList($2,$3.getOffset()); $$ = ret; } + fielddeclaration : fielddeclarator ';' { $$=$1; diff --git a/test/parser/GeneralParserTest.java b/test/parser/GeneralParserTest.java index 3349d324..146da0dd 100644 --- a/test/parser/GeneralParserTest.java +++ b/test/parser/GeneralParserTest.java @@ -29,8 +29,8 @@ public class GeneralParserTest{ public void run(){ Vector filenames = new Vector(); filenames.add("FieldInitializationTest.jav"); - filenames.add("ImportTest.jav"); - filenames.add("BoundedParameter.jav"); + //filenames.add("ImportTest.jav"); + //filenames.add("BoundedParameter.jav"); filenames.add("GenericFieldVarTest.jav"); MyCompilerAPI compiler = MyCompiler.getAPI(); try{ diff --git a/tools/y.output b/tools/y.output index 80f01111..acc9360a 100644 --- a/tools/y.output +++ b/tools/y.output @@ -123,282 +123,284 @@ 85 fielddeclarator : variabledeclarator '=' expression - 86 fielddeclaration : fielddeclarator ';' - 87 | type fielddeclarator ';' - 88 | '<' boundedMethodParameters '>' type fielddeclarator ';' - 89 | variabledeclarators ';' - 90 | type variabledeclarators ';' - 91 | modifiers type variabledeclarators ';' + 86 genericdeclarationlist : '<' boundedMethodParameters ENDOFGENERICVARDECLARATION - 92 methoddeclaration : methodheader methodbody + 87 fielddeclaration : fielddeclarator ';' + 88 | type fielddeclarator ';' + 89 | genericdeclarationlist type fielddeclarator ';' + 90 | variabledeclarators ';' + 91 | type variabledeclarators ';' + 92 | modifiers type variabledeclarators ';' - 93 block : '{' '}' - 94 | '{' blockstatements '}' + 93 methoddeclaration : methodheader methodbody - 95 constructordeclarator : simplename '(' ')' - 96 | simplename '(' formalparameterlist ')' + 94 block : '{' '}' + 95 | '{' blockstatements '}' - 97 constructorbody : '{' '}' - 98 | '{' explicitconstructorinvocation '}' - 99 | '{' blockstatements '}' - 100 | '{' explicitconstructorinvocation blockstatements '}' + 96 constructordeclarator : simplename '(' ')' + 97 | simplename '(' formalparameterlist ')' - 101 throws : THROWS classtypelist + 98 constructorbody : '{' '}' + 99 | '{' explicitconstructorinvocation '}' + 100 | '{' blockstatements '}' + 101 | '{' explicitconstructorinvocation blockstatements '}' - 102 boundedClassParameter : boundedMethodParameter + 102 throws : THROWS classtypelist - 103 boundedClassParameters : boundedClassParameter - 104 | boundedClassParameters ',' boundedClassParameter + 103 boundedClassParameter : boundedMethodParameter - 105 boundedMethodParameter : IDENTIFIER - 106 | IDENTIFIER EXTENDS boundedclassidentifierlist + 104 boundedClassParameters : boundedClassParameter + 105 | boundedClassParameters ',' boundedClassParameter - 107 boundedclassidentifierlist : referencetype - 108 | boundedclassidentifierlist '&' referencetype + 106 boundedMethodParameter : IDENTIFIER + 107 | IDENTIFIER EXTENDS boundedclassidentifierlist - 109 boundedMethodParameters : boundedMethodParameter - 110 | boundedMethodParameters ',' boundedMethodParameter + 108 boundedclassidentifierlist : referencetype + 109 | boundedclassidentifierlist '&' referencetype - 111 methodheader : '<' boundedMethodParameters '>' type methoddeclarator - 112 | type methoddeclarator - 113 | modifiers type methoddeclarator - 114 | modifiers '<' boundedMethodParameters '>' type methoddeclarator - 115 | type methoddeclarator throws - 116 | '<' boundedMethodParameters '>' type methoddeclarator throws - 117 | modifiers type methoddeclarator throws - 118 | modifiers '<' boundedMethodParameters '>' type methoddeclarator throws - 119 | VOID methoddeclarator - 120 | modifiers VOID methoddeclarator - 121 | VOID methoddeclarator throws - 122 | modifiers VOID methoddeclarator throws - 123 | '<' boundedMethodParameters '>' VOID methoddeclarator - 124 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator - 125 | '<' boundedMethodParameters '>' VOID methoddeclarator throws - 126 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws - 127 | methoddeclarator - 128 | '<' boundedMethodParameters '>' methoddeclarator - 129 | modifiers methoddeclarator - 130 | methoddeclarator throws - 131 | modifiers methoddeclarator throws + 110 boundedMethodParameters : boundedMethodParameter + 111 | boundedMethodParameters ',' boundedMethodParameter - 132 type : primitivetype - 133 | primitivetype '[' ']' - 134 | referencetype - 135 | referencetype '[' ']' + 112 methodheader : genericdeclarationlist type methoddeclarator + 113 | type methoddeclarator + 114 | modifiers type methoddeclarator + 115 | modifiers genericdeclarationlist type methoddeclarator + 116 | type methoddeclarator throws + 117 | genericdeclarationlist type methoddeclarator throws + 118 | modifiers type methoddeclarator throws + 119 | modifiers genericdeclarationlist type methoddeclarator throws + 120 | VOID methoddeclarator + 121 | modifiers VOID methoddeclarator + 122 | VOID methoddeclarator throws + 123 | modifiers VOID methoddeclarator throws + 124 | genericdeclarationlist VOID methoddeclarator + 125 | modifiers genericdeclarationlist VOID methoddeclarator + 126 | genericdeclarationlist VOID methoddeclarator throws + 127 | modifiers genericdeclarationlist VOID methoddeclarator throws + 128 | methoddeclarator + 129 | genericdeclarationlist methoddeclarator + 130 | modifiers methoddeclarator + 131 | methoddeclarator throws + 132 | modifiers methoddeclarator throws - 136 variabledeclarators : variabledeclarator - 137 | variabledeclarators ',' variabledeclarator + 133 type : primitivetype + 134 | primitivetype '[' ']' + 135 | referencetype + 136 | referencetype '[' ']' - 138 methodbody : block + 137 variabledeclarators : variabledeclarator + 138 | variabledeclarators ',' variabledeclarator - 139 blockstatements : blockstatement - 140 | blockstatements blockstatement + 139 methodbody : block - 141 formalparameterlist : formalparameter - 142 | formalparameterlist ',' formalparameter + 140 blockstatements : blockstatement + 141 | blockstatements blockstatement - 143 explicitconstructorinvocation : THIS '(' ')' ';' - 144 | THIS '(' argumentlist ')' ';' + 142 formalparameterlist : formalparameter + 143 | formalparameterlist ',' formalparameter - 145 classtypelist : classtype - 146 | classtypelist ',' classtype + 144 explicitconstructorinvocation : THIS '(' ')' ';' + 145 | THIS '(' argumentlist ')' ';' - 147 methoddeclarator : IDENTIFIER '(' ')' - 148 | IDENTIFIER '(' formalparameterlist ')' + 146 classtypelist : classtype + 147 | classtypelist ',' classtype - 149 primitivetype : BOOLEAN - 150 | numerictype + 148 methoddeclarator : IDENTIFIER '(' ')' + 149 | IDENTIFIER '(' formalparameterlist ')' - 151 referencetype : classorinterfacetype + 150 primitivetype : BOOLEAN + 151 | numerictype - 152 variabledeclarator : variabledeclaratorid + 152 referencetype : classorinterfacetype - 153 blockstatement : localvariabledeclarationstatement - 154 | statement + 153 variabledeclarator : variabledeclaratorid - 155 formalparameter : type variabledeclaratorid - 156 | variabledeclaratorid + 154 blockstatement : localvariabledeclarationstatement + 155 | statement - 157 argumentlist : expression - 158 | argumentlist ',' expression + 156 formalparameter : type variabledeclaratorid + 157 | variabledeclaratorid - 159 numerictype : integraltype + 158 argumentlist : expression + 159 | argumentlist ',' expression - 160 variabledeclaratorid : IDENTIFIER + 160 numerictype : integraltype - 161 variableinitializer : expression + 161 variabledeclaratorid : IDENTIFIER - 162 localvariabledeclarationstatement : localvariabledeclaration ';' + 162 variableinitializer : expression - 163 statement : statementwithouttrailingsubstatement - 164 | ifthenstatement - 165 | ifthenelsestatement - 166 | whilestatement - 167 | forstatement + 163 localvariabledeclarationstatement : localvariabledeclaration ';' - 168 expression : assignmentexpression - 169 | classinstancecreationexpression + 164 statement : statementwithouttrailingsubstatement + 165 | ifthenstatement + 166 | ifthenelsestatement + 167 | whilestatement + 168 | forstatement - 170 integraltype : INT - 171 | CHAR + 169 expression : assignmentexpression + 170 | classinstancecreationexpression - 172 localvariabledeclaration : type variabledeclarators - 173 | variabledeclarators + 171 integraltype : INT + 172 | CHAR - 174 statementwithouttrailingsubstatement : block - 175 | emptystatement - 176 | expressionstatement - 177 | returnstatement + 173 localvariabledeclaration : type variabledeclarators + 174 | variabledeclarators - 178 ifthenstatement : IF '(' expression ')' statement + 175 statementwithouttrailingsubstatement : block + 176 | emptystatement + 177 | expressionstatement + 178 | returnstatement - 179 ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement + 179 ifthenstatement : IF '(' expression ')' statement - 180 whilestatement : WHILE '(' expression ')' statement + 180 ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement - 181 forstatement : FOR '(' expression ';' expression ';' expression ')' statement - 182 | FOR '(' expression ';' expression ';' ')' statement - 183 | FOR '(' expression ';' ';' expression ')' statement - 184 | FOR '(' ';' expression ';' expression ')' statement - 185 | FOR '(' expression ';' ';' ')' statement - 186 | FOR '(' ';' expression ';' ')' statement - 187 | FOR '(' ';' ';' expression ')' statement - 188 | FOR '(' ';' ';' ')' statement + 181 whilestatement : WHILE '(' expression ')' statement - 189 assignmentexpression : conditionalexpression - 190 | assignment + 182 forstatement : FOR '(' expression ';' expression ';' expression ')' statement + 183 | FOR '(' expression ';' expression ';' ')' statement + 184 | FOR '(' expression ';' ';' expression ')' statement + 185 | FOR '(' ';' expression ';' expression ')' statement + 186 | FOR '(' expression ';' ';' ')' statement + 187 | FOR '(' ';' expression ';' ')' statement + 188 | FOR '(' ';' ';' expression ')' statement + 189 | FOR '(' ';' ';' ')' statement - 191 emptystatement : ';' + 190 assignmentexpression : conditionalexpression + 191 | assignment - 192 expressionstatement : statementexpression ';' + 192 emptystatement : ';' - 193 returnstatement : RETURN ';' - 194 | RETURN expression ';' + 193 expressionstatement : statementexpression ';' - 195 statementnoshortif : statementwithouttrailingsubstatement - 196 | ifthenelsestatementnoshortif - 197 | whilestatementnoshortif + 194 returnstatement : RETURN ';' + 195 | RETURN expression ';' - 198 conditionalexpression : conditionalorexpression + 196 statementnoshortif : statementwithouttrailingsubstatement + 197 | ifthenelsestatementnoshortif + 198 | whilestatementnoshortif - 199 assignment : lefthandside assignmentoperator assignmentexpression - 200 | lefthandside assignmentoperator classinstancecreationexpression + 199 conditionalexpression : conditionalorexpression - 201 statementexpression : assignment - 202 | preincrementexpression - 203 | predecrementexpression - 204 | postincrementexpression - 205 | postdecrementexpression - 206 | methodinvocation + 200 assignment : lefthandside assignmentoperator assignmentexpression + 201 | lefthandside assignmentoperator classinstancecreationexpression - 207 ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif + 202 statementexpression : assignment + 203 | preincrementexpression + 204 | predecrementexpression + 205 | postincrementexpression + 206 | postdecrementexpression + 207 | methodinvocation - 208 whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif + 208 ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif - 209 conditionalorexpression : conditionalandexpression - 210 | conditionalorexpression LOGICALOR conditionalandexpression + 209 whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif - 211 lambdaassignmentoperator : LAMBDAASSIGNMENT + 210 conditionalorexpression : conditionalandexpression + 211 | conditionalorexpression LOGICALOR conditionalandexpression - 212 lambdabody : block - 213 | expression + 212 lambdaassignmentoperator : LAMBDAASSIGNMENT - 214 lambdaexpressionparameter : '(' ')' - 215 | '(' formalparameterlist ')' + 213 lambdabody : block + 214 | expression - 216 lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody + 215 lambdaexpressionparameter : '(' ')' + 216 | '(' formalparameterlist ')' - 217 lefthandside : name + 217 lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody - 218 assignmentoperator : '=' - 219 | TIMESEQUAL - 220 | DIVIDEEQUAL - 221 | MODULOEQUAL - 222 | PLUSEQUAL - 223 | MINUSEQUAL + 218 lefthandside : name - 224 preincrementexpression : INCREMENT unaryexpression + 219 assignmentoperator : '=' + 220 | TIMESEQUAL + 221 | DIVIDEEQUAL + 222 | MODULOEQUAL + 223 | PLUSEQUAL + 224 | MINUSEQUAL - 225 predecrementexpression : DECREMENT unaryexpression + 225 preincrementexpression : INCREMENT unaryexpression - 226 postincrementexpression : postfixexpression INCREMENT + 226 predecrementexpression : DECREMENT unaryexpression - 227 postdecrementexpression : postfixexpression DECREMENT + 227 postincrementexpression : postfixexpression INCREMENT - 228 methodinvocation : name '(' ')' - 229 | name '(' argumentlist ')' - 230 | primary '.' IDENTIFIER '(' ')' - 231 | primary '.' IDENTIFIER '(' argumentlist ')' + 228 postdecrementexpression : postfixexpression DECREMENT - 232 classinstancecreationexpression : NEW classtype '(' ')' - 233 | NEW classtype '(' argumentlist ')' + 229 methodinvocation : name '(' ')' + 230 | name '(' argumentlist ')' + 231 | primary '.' IDENTIFIER '(' ')' + 232 | primary '.' IDENTIFIER '(' argumentlist ')' - 234 conditionalandexpression : inclusiveorexpression - 235 | conditionalandexpression LOGICALAND inclusiveorexpression + 233 classinstancecreationexpression : NEW classtype '(' ')' + 234 | NEW classtype '(' argumentlist ')' - 236 unaryexpression : preincrementexpression - 237 | predecrementexpression - 238 | '+' unaryexpression - 239 | '-' unaryexpression - 240 | unaryexpressionnotplusminus + 235 conditionalandexpression : inclusiveorexpression + 236 | conditionalandexpression LOGICALAND inclusiveorexpression - 241 postfixexpression : primary - 242 | name - 243 | postincrementexpression - 244 | postdecrementexpression + 237 unaryexpression : preincrementexpression + 238 | predecrementexpression + 239 | '+' unaryexpression + 240 | '-' unaryexpression + 241 | unaryexpressionnotplusminus - 245 primary : primarynonewarray + 242 postfixexpression : primary + 243 | name + 244 | postincrementexpression + 245 | postdecrementexpression - 246 inclusiveorexpression : exclusiveorexpression - 247 | inclusiveorexpression '|' exclusiveorexpression + 246 primary : primarynonewarray - 248 primarynonewarray : literal - 249 | THIS - 250 | methodinvocation - 251 | lambdaexpression + 247 inclusiveorexpression : exclusiveorexpression + 248 | inclusiveorexpression '|' exclusiveorexpression - 252 unaryexpressionnotplusminus : postfixexpression - 253 | '!' unaryexpression - 254 | castexpression + 249 primarynonewarray : literal + 250 | THIS + 251 | methodinvocation + 252 | lambdaexpression - 255 exclusiveorexpression : andexpression - 256 | exclusiveorexpression '^' andexpression + 253 unaryexpressionnotplusminus : postfixexpression + 254 | '!' unaryexpression + 255 | castexpression - 257 literal : INTLITERAL - 258 | BOOLLITERAL - 259 | CHARLITERAL - 260 | STRINGLITERAL - 261 | LONGLITERAL - 262 | FLOATLITERAL - 263 | DOUBLELITERAL - 264 | JNULL + 256 exclusiveorexpression : andexpression + 257 | exclusiveorexpression '^' andexpression - 265 castexpression : '(' primitivetype ')' unaryexpression + 258 literal : INTLITERAL + 259 | BOOLLITERAL + 260 | CHARLITERAL + 261 | STRINGLITERAL + 262 | LONGLITERAL + 263 | FLOATLITERAL + 264 | DOUBLELITERAL + 265 | JNULL - 266 andexpression : equalityexpression - 267 | andexpression '&' equalityexpression + 266 castexpression : '(' primitivetype ')' unaryexpression - 268 equalityexpression : relationalexpression - 269 | equalityexpression EQUAL relationalexpression - 270 | equalityexpression NOTEQUAL relationalexpression + 267 andexpression : equalityexpression + 268 | andexpression '&' equalityexpression - 271 relationalexpression : shiftexpression - 272 | relationalexpression '<' shiftexpression - 273 | relationalexpression '>' shiftexpression - 274 | relationalexpression LESSEQUAL shiftexpression - 275 | relationalexpression GREATEREQUAL shiftexpression - 276 | relationalexpression INSTANCEOF referencetype + 269 equalityexpression : relationalexpression + 270 | equalityexpression EQUAL relationalexpression + 271 | equalityexpression NOTEQUAL relationalexpression - 277 shiftexpression : additiveexpression + 272 relationalexpression : shiftexpression + 273 | relationalexpression '<' shiftexpression + 274 | relationalexpression '>' shiftexpression + 275 | relationalexpression LESSEQUAL shiftexpression + 276 | relationalexpression GREATEREQUAL shiftexpression + 277 | relationalexpression INSTANCEOF referencetype - 278 additiveexpression : multiplicativeexpression - 279 | additiveexpression '+' multiplicativeexpression - 280 | additiveexpression '-' multiplicativeexpression + 278 shiftexpression : additiveexpression - 281 multiplicativeexpression : unaryexpression - 282 | multiplicativeexpression '*' unaryexpression - 283 | multiplicativeexpression '/' unaryexpression - 284 | multiplicativeexpression '%' unaryexpression + 279 additiveexpression : multiplicativeexpression + 280 | additiveexpression '+' multiplicativeexpression + 281 | additiveexpression '-' multiplicativeexpression + + 282 multiplicativeexpression : unaryexpression + 283 | multiplicativeexpression '*' unaryexpression + 284 | multiplicativeexpression '/' unaryexpression + 285 | multiplicativeexpression '%' unaryexpression state 0 $accept : . compilationunit $end (0) @@ -445,15 +447,15 @@ state 1 state 2 - primitivetype : BOOLEAN . (149) + primitivetype : BOOLEAN . (150) - . reduce 149 + . reduce 150 state 3 - integraltype : CHAR . (171) + integraltype : CHAR . (172) - . reduce 171 + . reduce 172 state 4 @@ -475,9 +477,9 @@ state 5 state 6 - integraltype : INT . (170) + integraltype : INT . (171) - . reduce 170 + . reduce 171 state 7 @@ -591,6 +593,7 @@ state 18 LOGICALAND reduce 74 INCREMENT reduce 74 DECREMENT reduce 74 + ENDOFGENERICVARDECLARATION reduce 74 ',' reduce 74 ';' reduce 74 '.' reduce 74 @@ -642,67 +645,67 @@ state 20 state 21 - referencetype : classorinterfacetype . (151) + referencetype : classorinterfacetype . (152) + + . reduce 152 + + +state 22 + numerictype : integraltype . (160) + + . reduce 160 + + +state 23 + primitivetype : numerictype . (151) . reduce 151 -state 22 - numerictype : integraltype . (159) - - . reduce 159 - - -state 23 - primitivetype : numerictype . (150) - - . reduce 150 - - state 24 - type : primitivetype . (132) - type : primitivetype . '[' ']' (133) + type : primitivetype . (133) + type : primitivetype . '[' ']' (134) '[' shift 45 - ABSTRACT reduce 132 - BOOLEAN reduce 132 - CHAR reduce 132 - CLASS reduce 132 - FINAL reduce 132 - INT reduce 132 - PRIVATE reduce 132 - PROTECTED reduce 132 - PUBLIC reduce 132 - PACKAGE reduce 132 - IMPORT reduce 132 - INTERFACE reduce 132 - STATIC reduce 132 - IDENTIFIER reduce 132 - ',' reduce 132 - '>' reduce 132 + ABSTRACT reduce 133 + BOOLEAN reduce 133 + CHAR reduce 133 + CLASS reduce 133 + FINAL reduce 133 + INT reduce 133 + PRIVATE reduce 133 + PROTECTED reduce 133 + PUBLIC reduce 133 + PACKAGE reduce 133 + IMPORT reduce 133 + INTERFACE reduce 133 + STATIC reduce 133 + IDENTIFIER reduce 133 + ',' reduce 133 + '>' reduce 133 state 25 - type : referencetype . (134) - type : referencetype . '[' ']' (135) + type : referencetype . (135) + type : referencetype . '[' ']' (136) '[' shift 46 - ABSTRACT reduce 134 - BOOLEAN reduce 134 - CHAR reduce 134 - CLASS reduce 134 - FINAL reduce 134 - INT reduce 134 - PRIVATE reduce 134 - PROTECTED reduce 134 - PUBLIC reduce 134 - PACKAGE reduce 134 - IMPORT reduce 134 - INTERFACE reduce 134 - STATIC reduce 134 - IDENTIFIER reduce 134 - ',' reduce 134 - '>' reduce 134 + ABSTRACT reduce 135 + BOOLEAN reduce 135 + CHAR reduce 135 + CLASS reduce 135 + FINAL reduce 135 + INT reduce 135 + PRIVATE reduce 135 + PROTECTED reduce 135 + PUBLIC reduce 135 + PACKAGE reduce 135 + IMPORT reduce 135 + INTERFACE reduce 135 + STATIC reduce 135 + IDENTIFIER reduce 135 + ',' reduce 135 + '>' reduce 135 state 26 @@ -940,14 +943,14 @@ state 44 state 45 - type : primitivetype '[' . ']' (133) + type : primitivetype '[' . ']' (134) ']' shift 72 . error state 46 - type : referencetype '[' . ']' (135) + type : referencetype '[' . ']' (136) ']' shift 73 . error @@ -1122,29 +1125,30 @@ state 57 '}' shift 90 . error - fielddeclaration goto 91 - methodheader goto 92 - methoddeclaration goto 93 - methoddeclarator goto 94 - classbodydeclarations goto 95 - classbodydeclaration goto 96 - classmemberdeclaration goto 97 - variabledeclarators goto 98 - fielddeclarator goto 99 - variabledeclarator goto 100 - variabledeclaratorid goto 101 - simplename goto 102 + genericdeclarationlist goto 91 + fielddeclaration goto 92 + methodheader goto 93 + methoddeclaration goto 94 + methoddeclarator goto 95 + classbodydeclarations goto 96 + classbodydeclaration goto 97 + classmemberdeclaration goto 98 + variabledeclarators goto 99 + fielddeclarator goto 100 + variabledeclarator goto 101 + variabledeclaratorid goto 102 + simplename goto 103 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 103 - modifiers goto 104 + type goto 104 + modifiers goto 105 modifier goto 28 - constructordeclaration goto 105 - constructordeclarator goto 106 - staticinitializer goto 107 + constructordeclaration goto 106 + constructordeclarator goto 107 + staticinitializer goto 108 state 58 @@ -1161,19 +1165,19 @@ state 59 '{' shift 57 . error - classbody goto 108 - interfaces goto 109 + classbody goto 109 + interfaces goto 110 state 60 classdeclaration : CLASS classidentifier interfaces . classbody (24) interfaces : interfaces . ',' interfacetype (51) - ',' shift 110 + ',' shift 111 '{' shift 57 . error - classbody goto 111 + classbody goto 112 state 61 @@ -1185,7 +1189,7 @@ state 61 state 62 qualifiedname : name '.' . IDENTIFIER (16) - IDENTIFIER shift 112 + IDENTIFIER shift 113 . error @@ -1200,8 +1204,8 @@ state 64 importqualifiedname : name '.' . IDENTIFIER (17) importqualifiedname : name '.' . '*' (18) - IDENTIFIER shift 113 - '*' shift 114 + IDENTIFIER shift 114 + '*' shift 115 . error @@ -1213,7 +1217,7 @@ state 65 boundedMethodParameter goto 79 boundedClassParameter goto 80 - boundedClassParameters goto 115 + boundedClassParameters goto 116 state 66 @@ -1224,7 +1228,7 @@ state 66 simplename goto 18 classorinterfacetype goto 84 - interfacetype goto 116 + interfacetype goto 117 state 67 @@ -1241,8 +1245,8 @@ state 67 PUBLIC shift 9 STATIC shift 13 VOID shift 87 - IDENTIFIER shift 117 - '<' shift 118 + IDENTIFIER shift 118 + '<' shift 89 '}' shift 119 . error @@ -1250,16 +1254,17 @@ state 67 interfacememberdeclaration goto 121 abstractmethoddeclaration goto 122 constantdeclaration goto 123 - methodheader goto 124 - methoddeclarator goto 94 + genericdeclarationlist goto 124 + methodheader goto 125 + methoddeclarator goto 95 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 125 - modifiers goto 126 + type goto 126 + modifiers goto 127 modifier goto 28 @@ -1273,11 +1278,11 @@ state 69 interfacedeclaration : INTERFACE interfaceidentifier extendsinterfaces . interfacebody (34) extendsinterfaces : extendsinterfaces . ',' interfacetype (55) - ',' shift 127 + ',' shift 128 '{' shift 67 . error - interfacebody goto 128 + interfacebody goto 129 state 70 @@ -1290,21 +1295,21 @@ state 71 typelist : typelist . ',' type (73) parameter : '<' typelist . '>' (75) - ',' shift 129 - '>' shift 130 + ',' shift 130 + '>' shift 131 . error state 72 - type : primitivetype '[' ']' . (133) + type : primitivetype '[' ']' . (134) - . reduce 133 + . reduce 134 state 73 - type : referencetype '[' ']' . (135) + type : referencetype '[' ']' . (136) - . reduce 135 + . reduce 136 state 74 @@ -1324,9 +1329,9 @@ state 75 '{' shift 57 . error - classbody goto 131 - super goto 132 - interfaces goto 133 + classbody goto 132 + super goto 133 + interfaces goto 134 state 76 @@ -1337,8 +1342,8 @@ state 76 '{' shift 67 . error - interfacebody goto 134 - extendsinterfaces goto 135 + interfacebody goto 135 + extendsinterfaces goto 136 state 77 @@ -1363,32 +1368,33 @@ state 77 state 78 - boundedMethodParameter : IDENTIFIER . (105) - boundedMethodParameter : IDENTIFIER . EXTENDS boundedclassidentifierlist (106) + boundedMethodParameter : IDENTIFIER . (106) + boundedMethodParameter : IDENTIFIER . EXTENDS boundedclassidentifierlist (107) - EXTENDS shift 136 - ',' reduce 105 - '>' reduce 105 + EXTENDS shift 137 + ENDOFGENERICVARDECLARATION reduce 106 + ',' reduce 106 + '>' reduce 106 state 79 - boundedClassParameter : boundedMethodParameter . (102) - - . reduce 102 - - -state 80 - boundedClassParameters : boundedClassParameter . (103) + boundedClassParameter : boundedMethodParameter . (103) . reduce 103 +state 80 + boundedClassParameters : boundedClassParameter . (104) + + . reduce 104 + + state 81 classidentifier : IDENTIFIER '<' boundedClassParameters . '>' (31) - boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (104) + boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (105) - ',' shift 137 - '>' shift 138 + ',' shift 138 + '>' shift 139 . error @@ -1420,7 +1426,7 @@ state 86 modifier : STATIC . (61) staticinitializer : STATIC . block (80) - '{' shift 139 + '{' shift 140 ABSTRACT reduce 61 BOOLEAN reduce 61 CHAR reduce 61 @@ -1434,48 +1440,43 @@ state 86 IDENTIFIER reduce 61 '<' reduce 61 - block goto 140 + block goto 141 state 87 - methodheader : VOID . methoddeclarator (119) - methodheader : VOID . methoddeclarator throws (121) + methodheader : VOID . methoddeclarator (120) + methodheader : VOID . methoddeclarator throws (122) - IDENTIFIER shift 141 + IDENTIFIER shift 142 . error - methoddeclarator goto 142 + methoddeclarator goto 143 -88: shift/reduce conflict (shift 143, reduce 19) on '(' +88: shift/reduce conflict (shift 144, reduce 19) on '(' state 88 simplename : IDENTIFIER . (19) - methoddeclarator : IDENTIFIER . '(' ')' (147) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (148) - variabledeclaratorid : IDENTIFIER . (160) + methoddeclarator : IDENTIFIER . '(' ')' (148) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (149) + variabledeclaratorid : IDENTIFIER . (161) - '(' shift 143 + '(' shift 144 IDENTIFIER reduce 19 - ',' reduce 160 - ';' reduce 160 + ',' reduce 161 + ';' reduce 161 '<' reduce 19 - '=' reduce 160 + '=' reduce 161 '[' reduce 19 state 89 - fielddeclaration : '<' . boundedMethodParameters '>' type fielddeclarator ';' (88) - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator (111) - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator throws (116) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator (123) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator throws (125) - methodheader : '<' . boundedMethodParameters '>' methoddeclarator (128) + genericdeclarationlist : '<' . boundedMethodParameters ENDOFGENERICVARDECLARATION (86) IDENTIFIER shift 78 . error - boundedMethodParameter goto 144 - boundedMethodParameters goto 145 + boundedMethodParameter goto 145 + boundedMethodParameters goto 146 state 90 @@ -1485,39 +1486,64 @@ state 90 state 91 + fielddeclaration : genericdeclarationlist . type fielddeclarator ';' (89) + methodheader : genericdeclarationlist . type methoddeclarator (112) + methodheader : genericdeclarationlist . type methoddeclarator throws (117) + methodheader : genericdeclarationlist . VOID methoddeclarator (124) + methodheader : genericdeclarationlist . VOID methoddeclarator throws (126) + methodheader : genericdeclarationlist . methoddeclarator (129) + + BOOLEAN shift 2 + CHAR shift 3 + INT shift 6 + VOID shift 147 + IDENTIFIER shift 118 + . error + + methoddeclarator goto 148 + simplename goto 18 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 149 + + +state 92 classmemberdeclaration : fielddeclaration . (78) . reduce 78 -state 92 - methoddeclaration : methodheader . methodbody (92) +state 93 + methoddeclaration : methodheader . methodbody (93) - '{' shift 139 + '{' shift 140 . error - block goto 146 - methodbody goto 147 + block goto 150 + methodbody goto 151 -state 93 +state 94 classmemberdeclaration : methoddeclaration . (79) . reduce 79 -state 94 - methodheader : methoddeclarator . (127) - methodheader : methoddeclarator . throws (130) - - THROWS shift 148 - ';' reduce 127 - '{' reduce 127 - - throws goto 149 - - state 95 + methodheader : methoddeclarator . (128) + methodheader : methoddeclarator . throws (131) + + THROWS shift 152 + ';' reduce 128 + '{' reduce 128 + + throws goto 153 + + +state 96 classbody : '{' classbodydeclarations . '}' (46) classbodydeclarations : classbodydeclarations . classbodydeclaration (57) @@ -1533,120 +1559,121 @@ state 95 VOID shift 87 IDENTIFIER shift 88 '<' shift 89 - '}' shift 150 + '}' shift 154 . error - fielddeclaration goto 91 - methodheader goto 92 - methoddeclaration goto 93 - methoddeclarator goto 94 - classbodydeclaration goto 151 - classmemberdeclaration goto 97 - variabledeclarators goto 98 - fielddeclarator goto 99 - variabledeclarator goto 100 - variabledeclaratorid goto 101 - simplename goto 102 + genericdeclarationlist goto 91 + fielddeclaration goto 92 + methodheader goto 93 + methoddeclaration goto 94 + methoddeclarator goto 95 + classbodydeclaration goto 155 + classmemberdeclaration goto 98 + variabledeclarators goto 99 + fielddeclarator goto 100 + variabledeclarator goto 101 + variabledeclaratorid goto 102 + simplename goto 103 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 103 - modifiers goto 104 + type goto 104 + modifiers goto 105 modifier goto 28 - constructordeclaration goto 105 - constructordeclarator goto 106 - staticinitializer goto 107 + constructordeclaration goto 106 + constructordeclarator goto 107 + staticinitializer goto 108 -state 96 +state 97 classbodydeclarations : classbodydeclaration . (56) . reduce 56 -state 97 +state 98 classbodydeclaration : classmemberdeclaration . (68) . reduce 68 -state 98 - fielddeclaration : variabledeclarators . ';' (89) - variabledeclarators : variabledeclarators . ',' variabledeclarator (137) - - ',' shift 152 - ';' shift 153 - . error - - state 99 - fielddeclaration : fielddeclarator . ';' (86) + fielddeclaration : variabledeclarators . ';' (90) + variabledeclarators : variabledeclarators . ',' variabledeclarator (138) - ';' shift 154 + ',' shift 156 + ';' shift 157 . error state 100 - fielddeclarator : variabledeclarator . '=' expression (85) - variabledeclarators : variabledeclarator . (136) + fielddeclaration : fielddeclarator . ';' (87) - '=' shift 155 - ',' reduce 136 - ';' reduce 136 + ';' shift 158 + . error state 101 - variabledeclarator : variabledeclaratorid . (152) + fielddeclarator : variabledeclarator . '=' expression (85) + variabledeclarators : variabledeclarator . (137) - . reduce 152 + '=' shift 159 + ',' reduce 137 + ';' reduce 137 state 102 + variabledeclarator : variabledeclaratorid . (153) + + . reduce 153 + + +state 103 classorinterfacetype : simplename . parameter (71) - constructordeclarator : simplename . '(' ')' (95) - constructordeclarator : simplename . '(' formalparameterlist ')' (96) + constructordeclarator : simplename . '(' ')' (96) + constructordeclarator : simplename . '(' formalparameterlist ')' (97) parameter : . (74) '<' shift 41 - '(' shift 156 + '(' shift 160 IDENTIFIER reduce 74 '[' reduce 74 parameter goto 42 -state 103 - fielddeclaration : type . fielddeclarator ';' (87) - fielddeclaration : type . variabledeclarators ';' (90) - methodheader : type . methoddeclarator (112) - methodheader : type . methoddeclarator throws (115) +state 104 + fielddeclaration : type . fielddeclarator ';' (88) + fielddeclaration : type . variabledeclarators ';' (91) + methodheader : type . methoddeclarator (113) + methodheader : type . methoddeclarator throws (116) - IDENTIFIER shift 157 + IDENTIFIER shift 161 . error - methoddeclarator goto 158 - variabledeclarators goto 159 - fielddeclarator goto 160 - variabledeclarator goto 100 - variabledeclaratorid goto 101 + methoddeclarator goto 162 + variabledeclarators goto 163 + fielddeclarator goto 164 + variabledeclarator goto 101 + variabledeclaratorid goto 102 -state 104 +state 105 modifiers : modifiers . modifier (48) constructordeclaration : modifiers . constructordeclarator constructorbody (82) - fielddeclaration : modifiers . type variabledeclarators ';' (91) - methodheader : modifiers . type methoddeclarator (113) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (114) - methodheader : modifiers . type methoddeclarator throws (117) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (118) - methodheader : modifiers . VOID methoddeclarator (120) - methodheader : modifiers . VOID methoddeclarator throws (122) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (124) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (126) - methodheader : modifiers . methoddeclarator (129) - methodheader : modifiers . methoddeclarator throws (131) + fielddeclaration : modifiers . type variabledeclarators ';' (92) + methodheader : modifiers . type methoddeclarator (114) + methodheader : modifiers . genericdeclarationlist type methoddeclarator (115) + methodheader : modifiers . type methoddeclarator throws (118) + methodheader : modifiers . genericdeclarationlist type methoddeclarator throws (119) + methodheader : modifiers . VOID methoddeclarator (121) + methodheader : modifiers . VOID methoddeclarator throws (123) + methodheader : modifiers . genericdeclarationlist VOID methoddeclarator (125) + methodheader : modifiers . genericdeclarationlist VOID methoddeclarator throws (127) + methodheader : modifiers . methoddeclarator (130) + methodheader : modifiers . methoddeclarator throws (132) ABSTRACT shift 1 BOOLEAN shift 2 @@ -1657,62 +1684,63 @@ state 104 PROTECTED shift 8 PUBLIC shift 9 STATIC shift 13 - VOID shift 161 - IDENTIFIER shift 117 - '<' shift 162 + VOID shift 165 + IDENTIFIER shift 118 + '<' shift 89 . error - methoddeclarator goto 163 - simplename goto 102 + genericdeclarationlist goto 166 + methoddeclarator goto 167 + simplename goto 103 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 164 + type goto 168 modifier goto 50 - constructordeclarator goto 165 + constructordeclarator goto 169 -state 105 +state 106 classbodydeclaration : constructordeclaration . (70) . reduce 70 -state 106 +state 107 constructordeclaration : constructordeclarator . constructorbody (81) - '{' shift 166 + '{' shift 170 . error - constructorbody goto 167 + constructorbody goto 171 -state 107 +state 108 classbodydeclaration : staticinitializer . (69) . reduce 69 -state 108 +state 109 classdeclaration : CLASS classidentifier super classbody . (22) . reduce 22 -state 109 +state 110 classdeclaration : CLASS classidentifier super interfaces . classbody (26) interfaces : interfaces . ',' interfacetype (51) - ',' shift 110 + ',' shift 111 '{' shift 57 . error - classbody goto 168 + classbody goto 172 -state 110 +state 111 interfaces : interfaces ',' . interfacetype (51) IDENTIFIER shift 14 @@ -1720,22 +1748,22 @@ state 110 simplename goto 18 classorinterfacetype goto 84 - interfacetype goto 169 + interfacetype goto 173 -state 111 +state 112 classdeclaration : CLASS classidentifier interfaces classbody . (24) . reduce 24 -state 112 +state 113 qualifiedname : name '.' IDENTIFIER . (16) . reduce 16 -state 113 +state 114 qualifiedname : name '.' IDENTIFIER . (16) importqualifiedname : name '.' IDENTIFIER . (17) @@ -1743,53 +1771,39 @@ state 113 '.' reduce 16 -state 114 +state 115 importqualifiedname : name '.' '*' . (18) . reduce 18 -state 115 +state 116 interfaceidentifier : IDENTIFIER '<' boundedClassParameters . '>' (29) - boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (104) + boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (105) - ',' shift 137 - '>' shift 170 + ',' shift 138 + '>' shift 174 . error -state 116 +state 117 extendsinterfaces : EXTENDS interfacetype . (54) . reduce 54 -117: shift/reduce conflict (shift 143, reduce 19) on '(' -state 117 +118: shift/reduce conflict (shift 144, reduce 19) on '(' +state 118 simplename : IDENTIFIER . (19) - methoddeclarator : IDENTIFIER . '(' ')' (147) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (148) + methoddeclarator : IDENTIFIER . '(' ')' (148) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (149) - '(' shift 143 + '(' shift 144 IDENTIFIER reduce 19 '<' reduce 19 '[' reduce 19 -state 118 - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator (111) - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator throws (116) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator (123) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator throws (125) - methodheader : '<' . boundedMethodParameters '>' methoddeclarator (128) - - IDENTIFIER shift 78 - . error - - boundedMethodParameter goto 144 - boundedMethodParameters goto 171 - - state 119 interfacebody : '{' '}' . (52) @@ -1810,24 +1824,25 @@ state 120 PUBLIC shift 9 STATIC shift 13 VOID shift 87 - IDENTIFIER shift 117 - '<' shift 118 - '}' shift 172 + IDENTIFIER shift 118 + '<' shift 89 + '}' shift 175 . error - interfacememberdeclaration goto 173 + interfacememberdeclaration goto 176 abstractmethoddeclaration goto 122 constantdeclaration goto 123 - methodheader goto 124 - methoddeclarator goto 94 + genericdeclarationlist goto 124 + methodheader goto 125 + methoddeclarator goto 95 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 125 - modifiers goto 126 + type goto 126 + modifiers goto 127 modifier goto 28 @@ -1850,35 +1865,59 @@ state 123 state 124 - abstractmethoddeclaration : methodheader . ';' (84) + methodheader : genericdeclarationlist . type methoddeclarator (112) + methodheader : genericdeclarationlist . type methoddeclarator throws (117) + methodheader : genericdeclarationlist . VOID methoddeclarator (124) + methodheader : genericdeclarationlist . VOID methoddeclarator throws (126) + methodheader : genericdeclarationlist . methoddeclarator (129) - ';' shift 174 + BOOLEAN shift 2 + CHAR shift 3 + INT shift 6 + VOID shift 147 + IDENTIFIER shift 118 . error + methoddeclarator goto 148 + simplename goto 18 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 177 + state 125 - methodheader : type . methoddeclarator (112) - methodheader : type . methoddeclarator throws (115) + abstractmethoddeclaration : methodheader . ';' (84) - IDENTIFIER shift 141 + ';' shift 178 . error - methoddeclarator goto 158 - state 126 + methodheader : type . methoddeclarator (113) + methodheader : type . methoddeclarator throws (116) + + IDENTIFIER shift 142 + . error + + methoddeclarator goto 162 + + +state 127 modifiers : modifiers . modifier (48) constantdeclaration : modifiers . type IDENTIFIER '=' expression ';' (83) - methodheader : modifiers . type methoddeclarator (113) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (114) - methodheader : modifiers . type methoddeclarator throws (117) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (118) - methodheader : modifiers . VOID methoddeclarator (120) - methodheader : modifiers . VOID methoddeclarator throws (122) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (124) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (126) - methodheader : modifiers . methoddeclarator (129) - methodheader : modifiers . methoddeclarator throws (131) + methodheader : modifiers . type methoddeclarator (114) + methodheader : modifiers . genericdeclarationlist type methoddeclarator (115) + methodheader : modifiers . type methoddeclarator throws (118) + methodheader : modifiers . genericdeclarationlist type methoddeclarator throws (119) + methodheader : modifiers . VOID methoddeclarator (121) + methodheader : modifiers . VOID methoddeclarator throws (123) + methodheader : modifiers . genericdeclarationlist VOID methoddeclarator (125) + methodheader : modifiers . genericdeclarationlist VOID methoddeclarator throws (127) + methodheader : modifiers . methoddeclarator (130) + methodheader : modifiers . methoddeclarator throws (132) ABSTRACT shift 1 BOOLEAN shift 2 @@ -1889,23 +1928,24 @@ state 126 PROTECTED shift 8 PUBLIC shift 9 STATIC shift 13 - VOID shift 161 - IDENTIFIER shift 117 - '<' shift 162 + VOID shift 165 + IDENTIFIER shift 118 + '<' shift 89 . error - methoddeclarator goto 163 + genericdeclarationlist goto 166 + methoddeclarator goto 167 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 175 + type goto 179 modifier goto 50 -state 127 +state 128 extendsinterfaces : extendsinterfaces ',' . interfacetype (55) IDENTIFIER shift 14 @@ -1913,16 +1953,16 @@ state 127 simplename goto 18 classorinterfacetype goto 84 - interfacetype goto 176 + interfacetype goto 180 -state 128 +state 129 interfacedeclaration : INTERFACE interfaceidentifier extendsinterfaces interfacebody . (34) . reduce 34 -state 129 +state 130 typelist : typelist ',' . type (73) BOOLEAN shift 2 @@ -1937,22 +1977,22 @@ state 129 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 177 + type goto 181 -state 130 +state 131 parameter : '<' typelist '>' . (75) . reduce 75 -state 131 +state 132 classdeclaration : modifiers CLASS classidentifier classbody . (21) . reduce 21 -state 132 +state 133 classdeclaration : modifiers CLASS classidentifier super . classbody (23) classdeclaration : modifiers CLASS classidentifier super . interfaces classbody (27) @@ -1960,791 +2000,823 @@ state 132 '{' shift 57 . error - classbody goto 178 - interfaces goto 179 - - -state 133 - classdeclaration : modifiers CLASS classidentifier interfaces . classbody (25) - interfaces : interfaces . ',' interfacetype (51) - - ',' shift 110 - '{' shift 57 - . error - - classbody goto 180 + classbody goto 182 + interfaces goto 183 state 134 + classdeclaration : modifiers CLASS classidentifier interfaces . classbody (25) + interfaces : interfaces . ',' interfacetype (51) + + ',' shift 111 + '{' shift 57 + . error + + classbody goto 184 + + +state 135 interfacedeclaration : modifiers INTERFACE interfaceidentifier interfacebody . (33) . reduce 33 -state 135 +state 136 interfacedeclaration : modifiers INTERFACE interfaceidentifier extendsinterfaces . interfacebody (35) extendsinterfaces : extendsinterfaces . ',' interfacetype (55) - ',' shift 127 + ',' shift 128 '{' shift 67 . error - interfacebody goto 181 + interfacebody goto 185 -state 136 - boundedMethodParameter : IDENTIFIER EXTENDS . boundedclassidentifierlist (106) +state 137 + boundedMethodParameter : IDENTIFIER EXTENDS . boundedclassidentifierlist (107) IDENTIFIER shift 14 . error simplename goto 18 classorinterfacetype goto 21 - referencetype goto 182 - boundedclassidentifierlist goto 183 + referencetype goto 186 + boundedclassidentifierlist goto 187 -state 137 - boundedClassParameters : boundedClassParameters ',' . boundedClassParameter (104) +state 138 + boundedClassParameters : boundedClassParameters ',' . boundedClassParameter (105) IDENTIFIER shift 78 . error boundedMethodParameter goto 79 - boundedClassParameter goto 184 + boundedClassParameter goto 188 -state 138 +state 139 classidentifier : IDENTIFIER '<' boundedClassParameters '>' . (31) . reduce 31 -state 139 - block : '{' . '}' (93) - block : '{' . blockstatements '}' (94) +state 140 + block : '{' . '}' (94) + block : '{' . blockstatements '}' (95) BOOLEAN shift 2 CHAR shift 3 - FOR shift 185 - IF shift 186 + FOR shift 189 + IF shift 190 INT shift 6 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 202 - '(' shift 203 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 206 + '(' shift 207 . error - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 qualifiedname goto 35 - name goto 207 + name goto 211 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 208 - block goto 209 - blockstatements goto 210 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 226 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 + type goto 212 + block goto 213 + blockstatements goto 214 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 230 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 -state 140 +state 141 staticinitializer : STATIC block . (80) . reduce 80 -state 141 - methoddeclarator : IDENTIFIER . '(' ')' (147) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (148) +state 142 + methoddeclarator : IDENTIFIER . '(' ')' (148) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (149) - '(' shift 143 + '(' shift 144 . error -state 142 - methodheader : VOID methoddeclarator . (119) - methodheader : VOID methoddeclarator . throws (121) - - THROWS shift 148 - ';' reduce 119 - '{' reduce 119 - - throws goto 237 - - state 143 - methoddeclarator : IDENTIFIER '(' . ')' (147) - methoddeclarator : IDENTIFIER '(' . formalparameterlist ')' (148) + methodheader : VOID methoddeclarator . (120) + methodheader : VOID methoddeclarator . throws (122) + + THROWS shift 152 + ';' reduce 120 + '{' reduce 120 + + throws goto 241 + + +state 144 + methoddeclarator : IDENTIFIER '(' . ')' (148) + methoddeclarator : IDENTIFIER '(' . formalparameterlist ')' (149) BOOLEAN shift 2 CHAR shift 3 INT shift 6 - IDENTIFIER shift 198 - ')' shift 238 + IDENTIFIER shift 202 + ')' shift 242 . error - variabledeclaratorid goto 239 + variabledeclaratorid goto 243 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 240 - formalparameter goto 241 - formalparameterlist goto 242 - - -state 144 - boundedMethodParameters : boundedMethodParameter . (109) - - . reduce 109 + type goto 244 + formalparameter goto 245 + formalparameterlist goto 246 state 145 - fielddeclaration : '<' boundedMethodParameters . '>' type fielddeclarator ';' (88) - boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (110) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator (111) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator throws (116) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator (123) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator throws (125) - methodheader : '<' boundedMethodParameters . '>' methoddeclarator (128) + boundedMethodParameters : boundedMethodParameter . (110) - ',' shift 243 - '>' shift 244 - . error + . reduce 110 state 146 - methodbody : block . (138) + genericdeclarationlist : '<' boundedMethodParameters . ENDOFGENERICVARDECLARATION (86) + boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (111) - . reduce 138 + ENDOFGENERICVARDECLARATION shift 247 + ',' shift 248 + . error state 147 - methoddeclaration : methodheader methodbody . (92) + methodheader : genericdeclarationlist VOID . methoddeclarator (124) + methodheader : genericdeclarationlist VOID . methoddeclarator throws (126) - . reduce 92 + IDENTIFIER shift 142 + . error + + methoddeclarator goto 249 state 148 - throws : THROWS . classtypelist (101) + methodheader : genericdeclarationlist methoddeclarator . (129) + + . reduce 129 + + +state 149 + fielddeclaration : genericdeclarationlist type . fielddeclarator ';' (89) + methodheader : genericdeclarationlist type . methoddeclarator (112) + methodheader : genericdeclarationlist type . methoddeclarator throws (117) + + IDENTIFIER shift 161 + . error + + methoddeclarator goto 250 + fielddeclarator goto 251 + variabledeclarator goto 252 + variabledeclaratorid goto 102 + + +state 150 + methodbody : block . (139) + + . reduce 139 + + +state 151 + methoddeclaration : methodheader methodbody . (93) + + . reduce 93 + + +state 152 + throws : THROWS . classtypelist (102) IDENTIFIER shift 14 . error simplename goto 18 - classtype goto 245 + classtype goto 253 classorinterfacetype goto 83 - classtypelist goto 246 + classtypelist goto 254 -state 149 - methodheader : methoddeclarator throws . (130) +state 153 + methodheader : methoddeclarator throws . (131) - . reduce 130 + . reduce 131 -state 150 +state 154 classbody : '{' classbodydeclarations '}' . (46) . reduce 46 -state 151 +state 155 classbodydeclarations : classbodydeclarations classbodydeclaration . (57) . reduce 57 -state 152 - variabledeclarators : variabledeclarators ',' . variabledeclarator (137) +state 156 + variabledeclarators : variabledeclarators ',' . variabledeclarator (138) - IDENTIFIER shift 247 + IDENTIFIER shift 255 . error - variabledeclarator goto 248 - variabledeclaratorid goto 101 + variabledeclarator goto 256 + variabledeclaratorid goto 102 -state 153 - fielddeclaration : variabledeclarators ';' . (89) +state 157 + fielddeclaration : variabledeclarators ';' . (90) - . reduce 89 + . reduce 90 -state 154 - fielddeclaration : fielddeclarator ';' . (86) +state 158 + fielddeclaration : fielddeclarator ';' . (87) - . reduce 86 + . reduce 87 -state 155 +state 159 fielddeclarator : variabledeclarator '=' . expression (85) - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 . error simplename goto 34 qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 269 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 277 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 -state 156 - constructordeclarator : simplename '(' . ')' (95) - constructordeclarator : simplename '(' . formalparameterlist ')' (96) +state 160 + constructordeclarator : simplename '(' . ')' (96) + constructordeclarator : simplename '(' . formalparameterlist ')' (97) BOOLEAN shift 2 CHAR shift 3 INT shift 6 - IDENTIFIER shift 198 - ')' shift 278 + IDENTIFIER shift 202 + ')' shift 286 . error - variabledeclaratorid goto 239 + variabledeclaratorid goto 243 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 240 - formalparameter goto 241 - formalparameterlist goto 279 - - -state 157 - methoddeclarator : IDENTIFIER . '(' ')' (147) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (148) - variabledeclaratorid : IDENTIFIER . (160) - - '(' shift 143 - ',' reduce 160 - ';' reduce 160 - '=' reduce 160 - - -state 158 - methodheader : type methoddeclarator . (112) - methodheader : type methoddeclarator . throws (115) - - THROWS shift 148 - ';' reduce 112 - '{' reduce 112 - - throws goto 280 - - -state 159 - fielddeclaration : type variabledeclarators . ';' (90) - variabledeclarators : variabledeclarators . ',' variabledeclarator (137) - - ',' shift 152 - ';' shift 281 - . error - - -state 160 - fielddeclaration : type fielddeclarator . ';' (87) - - ';' shift 282 - . error + type goto 244 + formalparameter goto 245 + formalparameterlist goto 287 state 161 - methodheader : modifiers VOID . methoddeclarator (120) - methodheader : modifiers VOID . methoddeclarator throws (122) + methoddeclarator : IDENTIFIER . '(' ')' (148) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (149) + variabledeclaratorid : IDENTIFIER . (161) - IDENTIFIER shift 141 - . error - - methoddeclarator goto 283 + '(' shift 144 + ',' reduce 161 + ';' reduce 161 + '=' reduce 161 state 162 - methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator (114) - methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator throws (118) - methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator (124) - methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator throws (126) + methodheader : type methoddeclarator . (113) + methodheader : type methoddeclarator . throws (116) - IDENTIFIER shift 78 - . error + THROWS shift 152 + ';' reduce 113 + '{' reduce 113 - boundedMethodParameter goto 144 - boundedMethodParameters goto 284 + throws goto 288 state 163 - methodheader : modifiers methoddeclarator . (129) - methodheader : modifiers methoddeclarator . throws (131) + fielddeclaration : type variabledeclarators . ';' (91) + variabledeclarators : variabledeclarators . ',' variabledeclarator (138) - THROWS shift 148 - ';' reduce 129 - '{' reduce 129 - - throws goto 285 + ',' shift 156 + ';' shift 289 + . error state 164 - fielddeclaration : modifiers type . variabledeclarators ';' (91) - methodheader : modifiers type . methoddeclarator (113) - methodheader : modifiers type . methoddeclarator throws (117) + fielddeclaration : type fielddeclarator . ';' (88) - IDENTIFIER shift 157 + ';' shift 290 . error - methoddeclarator goto 286 - variabledeclarators goto 287 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - state 165 - constructordeclaration : modifiers constructordeclarator . constructorbody (82) + methodheader : modifiers VOID . methoddeclarator (121) + methodheader : modifiers VOID . methoddeclarator throws (123) - '{' shift 166 + IDENTIFIER shift 142 . error - constructorbody goto 288 + methoddeclarator goto 291 state 166 - constructorbody : '{' . '}' (97) - constructorbody : '{' . explicitconstructorinvocation '}' (98) - constructorbody : '{' . blockstatements '}' (99) - constructorbody : '{' . explicitconstructorinvocation blockstatements '}' (100) + methodheader : modifiers genericdeclarationlist . type methoddeclarator (115) + methodheader : modifiers genericdeclarationlist . type methoddeclarator throws (119) + methodheader : modifiers genericdeclarationlist . VOID methoddeclarator (125) + methodheader : modifiers genericdeclarationlist . VOID methoddeclarator throws (127) BOOLEAN shift 2 CHAR shift 3 - FOR shift 185 - IF shift 186 INT shift 6 - RETURN shift 187 - THIS shift 289 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 290 - '(' shift 203 + VOID shift 292 + IDENTIFIER shift 14 . error - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 - qualifiedname goto 35 - name goto 207 + simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 208 - block goto 209 - blockstatements goto 291 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 226 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - explicitconstructorinvocation goto 292 + type goto 293 state 167 + methodheader : modifiers methoddeclarator . (130) + methodheader : modifiers methoddeclarator . throws (132) + + THROWS shift 152 + ';' reduce 130 + '{' reduce 130 + + throws goto 294 + + +state 168 + fielddeclaration : modifiers type . variabledeclarators ';' (92) + methodheader : modifiers type . methoddeclarator (114) + methodheader : modifiers type . methoddeclarator throws (118) + + IDENTIFIER shift 161 + . error + + methoddeclarator goto 295 + variabledeclarators goto 296 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + + +state 169 + constructordeclaration : modifiers constructordeclarator . constructorbody (82) + + '{' shift 170 + . error + + constructorbody goto 297 + + +state 170 + constructorbody : '{' . '}' (98) + constructorbody : '{' . explicitconstructorinvocation '}' (99) + constructorbody : '{' . blockstatements '}' (100) + constructorbody : '{' . explicitconstructorinvocation blockstatements '}' (101) + + BOOLEAN shift 2 + CHAR shift 3 + FOR shift 189 + IF shift 190 + INT shift 6 + RETURN shift 191 + THIS shift 298 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 299 + '(' shift 207 + . error + + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 + qualifiedname goto 35 + name goto 211 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 212 + block goto 213 + blockstatements goto 300 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 230 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + explicitconstructorinvocation goto 301 + + +state 171 constructordeclaration : constructordeclarator constructorbody . (81) . reduce 81 -state 168 +state 172 classdeclaration : CLASS classidentifier super interfaces classbody . (26) . reduce 26 -state 169 +state 173 interfaces : interfaces ',' interfacetype . (51) . reduce 51 -state 170 +state 174 interfaceidentifier : IDENTIFIER '<' boundedClassParameters '>' . (29) . reduce 29 -state 171 - boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (110) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator (111) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator throws (116) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator (123) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator throws (125) - methodheader : '<' boundedMethodParameters . '>' methoddeclarator (128) - - ',' shift 243 - '>' shift 293 - . error - - -state 172 +state 175 interfacebody : '{' interfacememberdeclarations '}' . (53) . reduce 53 -state 173 +state 176 interfacememberdeclarations : interfacememberdeclarations interfacememberdeclaration . (66) . reduce 66 -state 174 +state 177 + methodheader : genericdeclarationlist type . methoddeclarator (112) + methodheader : genericdeclarationlist type . methoddeclarator throws (117) + + IDENTIFIER shift 142 + . error + + methoddeclarator goto 250 + + +state 178 abstractmethoddeclaration : methodheader ';' . (84) . reduce 84 -state 175 +state 179 constantdeclaration : modifiers type . IDENTIFIER '=' expression ';' (83) - methodheader : modifiers type . methoddeclarator (113) - methodheader : modifiers type . methoddeclarator throws (117) + methodheader : modifiers type . methoddeclarator (114) + methodheader : modifiers type . methoddeclarator throws (118) - IDENTIFIER shift 294 + IDENTIFIER shift 302 . error - methoddeclarator goto 286 + methoddeclarator goto 295 -state 176 +state 180 extendsinterfaces : extendsinterfaces ',' interfacetype . (55) . reduce 55 -state 177 +state 181 typelist : typelist ',' type . (73) . reduce 73 -state 178 +state 182 classdeclaration : modifiers CLASS classidentifier super classbody . (23) . reduce 23 -state 179 +state 183 classdeclaration : modifiers CLASS classidentifier super interfaces . classbody (27) interfaces : interfaces . ',' interfacetype (51) - ',' shift 110 + ',' shift 111 '{' shift 57 . error - classbody goto 295 + classbody goto 303 -state 180 +state 184 classdeclaration : modifiers CLASS classidentifier interfaces classbody . (25) . reduce 25 -state 181 +state 185 interfacedeclaration : modifiers INTERFACE interfaceidentifier extendsinterfaces interfacebody . (35) . reduce 35 -state 182 - boundedclassidentifierlist : referencetype . (107) - - . reduce 107 - - -state 183 - boundedMethodParameter : IDENTIFIER EXTENDS boundedclassidentifierlist . (106) - boundedclassidentifierlist : boundedclassidentifierlist . '&' referencetype (108) - - '&' shift 296 - ',' reduce 106 - '>' reduce 106 - - -state 184 - boundedClassParameters : boundedClassParameters ',' boundedClassParameter . (104) - - . reduce 104 - - -state 185 - forstatement : FOR . '(' expression ';' expression ';' expression ')' statement (181) - forstatement : FOR . '(' expression ';' expression ';' ')' statement (182) - forstatement : FOR . '(' expression ';' ';' expression ')' statement (183) - forstatement : FOR . '(' ';' expression ';' expression ')' statement (184) - forstatement : FOR . '(' expression ';' ';' ')' statement (185) - forstatement : FOR . '(' ';' expression ';' ')' statement (186) - forstatement : FOR . '(' ';' ';' expression ')' statement (187) - forstatement : FOR . '(' ';' ';' ')' statement (188) - - '(' shift 297 - . error - - state 186 - ifthenstatement : IF . '(' expression ')' statement (178) - ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (179) + boundedclassidentifierlist : referencetype . (108) - '(' shift 298 - . error + . reduce 108 state 187 - returnstatement : RETURN . ';' (193) - returnstatement : RETURN . expression ';' (194) + boundedMethodParameter : IDENTIFIER EXTENDS boundedclassidentifierlist . (107) + boundedclassidentifierlist : boundedclassidentifierlist . '&' referencetype (109) - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 299 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 300 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 + '&' shift 304 + ENDOFGENERICVARDECLARATION reduce 107 + ',' reduce 107 + '>' reduce 107 state 188 - primarynonewarray : THIS . (249) + boundedClassParameters : boundedClassParameters ',' boundedClassParameter . (105) - . reduce 249 + . reduce 105 state 189 - whilestatement : WHILE . '(' expression ')' statement (180) + forstatement : FOR . '(' expression ';' expression ';' expression ')' statement (182) + forstatement : FOR . '(' expression ';' expression ';' ')' statement (183) + forstatement : FOR . '(' expression ';' ';' expression ')' statement (184) + forstatement : FOR . '(' ';' expression ';' expression ')' statement (185) + forstatement : FOR . '(' expression ';' ';' ')' statement (186) + forstatement : FOR . '(' ';' expression ';' ')' statement (187) + forstatement : FOR . '(' ';' ';' expression ')' statement (188) + forstatement : FOR . '(' ';' ';' ')' statement (189) - '(' shift 301 + '(' shift 305 . error state 190 - literal : INTLITERAL . (257) + ifthenstatement : IF . '(' expression ')' statement (179) + ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (180) - . reduce 257 + '(' shift 306 + . error state 191 - literal : LONGLITERAL . (261) + returnstatement : RETURN . ';' (194) + returnstatement : RETURN . expression ';' (195) - . reduce 261 + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 307 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 308 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 state 192 - literal : DOUBLELITERAL . (263) + primarynonewarray : THIS . (250) - . reduce 263 + . reduce 250 state 193 - literal : FLOATLITERAL . (262) + whilestatement : WHILE . '(' expression ')' statement (181) - . reduce 262 + '(' shift 309 + . error state 194 - literal : BOOLLITERAL . (258) + literal : INTLITERAL . (258) . reduce 258 state 195 - literal : JNULL . (264) + literal : LONGLITERAL . (262) + + . reduce 262 + + +state 196 + literal : DOUBLELITERAL . (264) . reduce 264 -state 196 - literal : CHARLITERAL . (259) +state 197 + literal : FLOATLITERAL . (263) + + . reduce 263 + + +state 198 + literal : BOOLLITERAL . (259) . reduce 259 -state 197 - literal : STRINGLITERAL . (260) +state 199 + literal : JNULL . (265) + + . reduce 265 + + +state 200 + literal : CHARLITERAL . (260) . reduce 260 -state 198 +state 201 + literal : STRINGLITERAL . (261) + + . reduce 261 + + +state 202 simplename : IDENTIFIER . (19) - variabledeclaratorid : IDENTIFIER . (160) + variabledeclaratorid : IDENTIFIER . (161) IDENTIFIER reduce 19 INCREMENT reduce 19 @@ -2754,146 +2826,146 @@ state 198 TIMESEQUAL reduce 19 DIVIDEEQUAL reduce 19 MODULOEQUAL reduce 19 - ',' reduce 160 - ';' reduce 160 + ',' reduce 161 + ';' reduce 161 '.' reduce 19 '<' reduce 19 '=' reduce 19 '(' reduce 19 - ')' reduce 160 + ')' reduce 161 '[' reduce 19 -state 199 - preincrementexpression : INCREMENT . unaryexpression (224) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 303 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 200 - predecrementexpression : DECREMENT . unaryexpression (225) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 304 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 201 - emptystatement : ';' . (191) - - . reduce 191 - - -state 202 - block : '{' '}' . (93) - - . reduce 93 - - state 203 - lambdaexpressionparameter : '(' . ')' (214) - lambdaexpressionparameter : '(' . formalparameterlist ')' (215) + preincrementexpression : INCREMENT . unaryexpression (225) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 311 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 204 + predecrementexpression : DECREMENT . unaryexpression (226) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 312 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 205 + emptystatement : ';' . (192) + + . reduce 192 + + +state 206 + block : '{' '}' . (94) + + . reduce 94 + + +state 207 + lambdaexpressionparameter : '(' . ')' (215) + lambdaexpressionparameter : '(' . formalparameterlist ')' (216) BOOLEAN shift 2 CHAR shift 3 INT shift 6 - IDENTIFIER shift 198 - ')' shift 305 + IDENTIFIER shift 202 + ')' shift 313 . error - variabledeclaratorid goto 239 + variabledeclaratorid goto 243 simplename goto 18 classorinterfacetype goto 21 integraltype goto 22 numerictype goto 23 primitivetype goto 24 referencetype goto 25 - type goto 240 - formalparameter goto 241 - formalparameterlist goto 306 + type goto 244 + formalparameter goto 245 + formalparameterlist goto 314 -state 204 - variabledeclarators : variabledeclarators . ',' variabledeclarator (137) - localvariabledeclaration : variabledeclarators . (173) +state 208 + variabledeclarators : variabledeclarators . ',' variabledeclarator (138) + localvariabledeclaration : variabledeclarators . (174) - ',' shift 152 - ';' reduce 173 + ',' shift 156 + ';' reduce 174 -state 205 - variabledeclarators : variabledeclarator . (136) +state 209 + variabledeclarators : variabledeclarator . (137) - . reduce 136 + . reduce 137 -state 206 +state 210 name : simplename . (13) classorinterfacetype : simplename . parameter (71) parameter : . (74) @@ -2915,16 +2987,174 @@ state 206 parameter goto 42 -207: shift/reduce conflict (shift 62, reduce 242) on '.' -state 207 +211: shift/reduce conflict (shift 62, reduce 243) on '.' +state 211 qualifiedname : name . '.' IDENTIFIER (16) - lefthandside : name . (217) - methodinvocation : name . '(' ')' (228) - methodinvocation : name . '(' argumentlist ')' (229) - postfixexpression : name . (242) + lefthandside : name . (218) + methodinvocation : name . '(' ')' (229) + methodinvocation : name . '(' argumentlist ')' (230) + postfixexpression : name . (243) '.' shift 62 - '(' shift 307 + '(' shift 315 + INSTANCEOF reduce 243 + EQUAL reduce 243 + LESSEQUAL reduce 243 + GREATEREQUAL reduce 243 + NOTEQUAL reduce 243 + LOGICALOR reduce 243 + LOGICALAND reduce 243 + INCREMENT reduce 243 + DECREMENT reduce 243 + PLUSEQUAL reduce 218 + MINUSEQUAL reduce 218 + TIMESEQUAL reduce 218 + DIVIDEEQUAL reduce 218 + MODULOEQUAL reduce 218 + ',' reduce 243 + ';' reduce 243 + '*' reduce 243 + '<' reduce 243 + '>' reduce 243 + '=' reduce 218 + ')' reduce 243 + '&' reduce 243 + '+' reduce 243 + '-' reduce 243 + '|' reduce 243 + '^' reduce 243 + '/' reduce 243 + '%' reduce 243 + + +state 212 + localvariabledeclaration : type . variabledeclarators (173) + + IDENTIFIER shift 255 + . error + + variabledeclarators goto 316 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + + +state 213 + statementwithouttrailingsubstatement : block . (175) + + . reduce 175 + + +state 214 + block : '{' blockstatements . '}' (95) + blockstatements : blockstatements . blockstatement (141) + + BOOLEAN shift 2 + CHAR shift 3 + FOR shift 189 + IF shift 190 + INT shift 6 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 317 + '(' shift 207 + . error + + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 + qualifiedname goto 35 + name goto 211 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 212 + block goto 213 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 318 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 215 + blockstatement : localvariabledeclarationstatement . (154) + + . reduce 154 + + +state 216 + localvariabledeclarationstatement : localvariabledeclaration . ';' (163) + + ';' shift 319 + . error + + +state 217 + lambdaexpression : lambdaexpressionparameter . lambdaassignmentoperator lambdabody (217) + + LAMBDAASSIGNMENT shift 320 + . error + + lambdaassignmentoperator goto 321 + + +state 218 + primarynonewarray : literal . (249) + + . reduce 249 + + +state 219 + primary : primarynonewarray . (246) + + . reduce 246 + + +220: shift/reduce conflict (shift 322, reduce 242) on '.' +state 220 + methodinvocation : primary . '.' IDENTIFIER '(' ')' (231) + methodinvocation : primary . '.' IDENTIFIER '(' argumentlist ')' (232) + postfixexpression : primary . (242) + + '.' shift 322 INSTANCEOF reduce 242 EQUAL reduce 242 LESSEQUAL reduce 242 @@ -2934,17 +3164,11 @@ state 207 LOGICALAND reduce 242 INCREMENT reduce 242 DECREMENT reduce 242 - PLUSEQUAL reduce 217 - MINUSEQUAL reduce 217 - TIMESEQUAL reduce 217 - DIVIDEEQUAL reduce 217 - MODULOEQUAL reduce 217 ',' reduce 242 ';' reduce 242 '*' reduce 242 '<' reduce 242 '>' reduce 242 - '=' reduce 217 ')' reduce 242 '&' reduce 242 '+' reduce 242 @@ -2955,3202 +3179,481 @@ state 207 '%' reduce 242 -state 208 - localvariabledeclaration : type . variabledeclarators (172) - - IDENTIFIER shift 247 - . error - - variabledeclarators goto 308 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - - -state 209 - statementwithouttrailingsubstatement : block . (174) - - . reduce 174 - - -state 210 - block : '{' blockstatements . '}' (94) - blockstatements : blockstatements . blockstatement (140) - - BOOLEAN shift 2 - CHAR shift 3 - FOR shift 185 - IF shift 186 - INT shift 6 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 309 - '(' shift 203 - . error - - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 - qualifiedname goto 35 - name goto 207 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 208 - block goto 209 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 310 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 211 - blockstatement : localvariabledeclarationstatement . (153) - - . reduce 153 - - -state 212 - localvariabledeclarationstatement : localvariabledeclaration . ';' (162) - - ';' shift 311 - . error - - -state 213 - lambdaexpression : lambdaexpressionparameter . lambdaassignmentoperator lambdabody (216) - - LAMBDAASSIGNMENT shift 312 - . error - - lambdaassignmentoperator goto 313 - - -state 214 - primarynonewarray : literal . (248) - - . reduce 248 - - -state 215 - primary : primarynonewarray . (245) - - . reduce 245 - - -216: shift/reduce conflict (shift 314, reduce 241) on '.' -state 216 - methodinvocation : primary . '.' IDENTIFIER '(' ')' (230) - methodinvocation : primary . '.' IDENTIFIER '(' argumentlist ')' (231) - postfixexpression : primary . (241) - - '.' shift 314 - INSTANCEOF reduce 241 - EQUAL reduce 241 - LESSEQUAL reduce 241 - GREATEREQUAL reduce 241 - NOTEQUAL reduce 241 - LOGICALOR reduce 241 - LOGICALAND reduce 241 - INCREMENT reduce 241 - DECREMENT reduce 241 - ',' reduce 241 - ';' reduce 241 - '*' reduce 241 - '<' reduce 241 - '>' reduce 241 - ')' reduce 241 - '&' reduce 241 - '+' reduce 241 - '-' reduce 241 - '|' reduce 241 - '^' reduce 241 - '/' reduce 241 - '%' reduce 241 - - -state 217 - postincrementexpression : postfixexpression . INCREMENT (226) - postdecrementexpression : postfixexpression . DECREMENT (227) - - INCREMENT shift 315 - DECREMENT shift 316 - . error - - -state 218 - primarynonewarray : lambdaexpression . (251) - - . reduce 251 - - -state 219 - expressionstatement : statementexpression . ';' (192) - - ';' shift 317 - . error - - -state 220 - statementexpression : preincrementexpression . (202) - - . reduce 202 - - state 221 - statementexpression : predecrementexpression . (203) + postincrementexpression : postfixexpression . INCREMENT (227) + postdecrementexpression : postfixexpression . DECREMENT (228) + + INCREMENT shift 323 + DECREMENT shift 324 + . error + + +state 222 + primarynonewarray : lambdaexpression . (252) + + . reduce 252 + + +state 223 + expressionstatement : statementexpression . ';' (193) + + ';' shift 325 + . error + + +state 224 + statementexpression : preincrementexpression . (203) . reduce 203 -state 222 - statementexpression : postincrementexpression . (204) - postfixexpression : postincrementexpression . (243) +state 225 + statementexpression : predecrementexpression . (204) - INCREMENT reduce 243 - DECREMENT reduce 243 - ';' reduce 204 + . reduce 204 -state 223 - statementexpression : postdecrementexpression . (205) - postfixexpression : postdecrementexpression . (244) +state 226 + statementexpression : postincrementexpression . (205) + postfixexpression : postincrementexpression . (244) INCREMENT reduce 244 DECREMENT reduce 244 ';' reduce 205 -state 224 - statementwithouttrailingsubstatement : expressionstatement . (176) - - . reduce 176 - - -state 225 - statement : statementwithouttrailingsubstatement . (163) - - . reduce 163 - - -state 226 - blockstatements : blockstatement . (139) - - . reduce 139 - - state 227 - blockstatement : statement . (154) + statementexpression : postdecrementexpression . (206) + postfixexpression : postdecrementexpression . (245) - . reduce 154 + INCREMENT reduce 245 + DECREMENT reduce 245 + ';' reduce 206 state 228 - statement : whilestatement . (166) - - . reduce 166 - - -state 229 - statement : forstatement . (167) - - . reduce 167 - - -state 230 - statement : ifthenstatement . (164) - - . reduce 164 - - -state 231 - statement : ifthenelsestatement . (165) - - . reduce 165 - - -state 232 - statementwithouttrailingsubstatement : emptystatement . (175) - - . reduce 175 - - -state 233 - statementwithouttrailingsubstatement : returnstatement . (177) + statementwithouttrailingsubstatement : expressionstatement . (177) . reduce 177 -state 234 - statementexpression : assignment . (201) +state 229 + statement : statementwithouttrailingsubstatement . (164) - . reduce 201 + . reduce 164 -state 235 - assignment : lefthandside . assignmentoperator assignmentexpression (199) - assignment : lefthandside . assignmentoperator classinstancecreationexpression (200) - - PLUSEQUAL shift 318 - MINUSEQUAL shift 319 - TIMESEQUAL shift 320 - DIVIDEEQUAL shift 321 - MODULOEQUAL shift 322 - '=' shift 323 - . error - - assignmentoperator goto 324 - - -state 236 - statementexpression : methodinvocation . (206) - primarynonewarray : methodinvocation . (250) - - INCREMENT reduce 250 - DECREMENT reduce 250 - ';' reduce 206 - '.' reduce 250 - - -state 237 - methodheader : VOID methoddeclarator throws . (121) - - . reduce 121 - - -state 238 - methoddeclarator : IDENTIFIER '(' ')' . (147) - - . reduce 147 - - -state 239 - formalparameter : variabledeclaratorid . (156) - - . reduce 156 - - -state 240 - formalparameter : type . variabledeclaratorid (155) - - IDENTIFIER shift 247 - . error - - variabledeclaratorid goto 325 - - -state 241 - formalparameterlist : formalparameter . (141) - - . reduce 141 - - -state 242 - formalparameterlist : formalparameterlist . ',' formalparameter (142) - methoddeclarator : IDENTIFIER '(' formalparameterlist . ')' (148) - - ',' shift 326 - ')' shift 327 - . error - - -state 243 - boundedMethodParameters : boundedMethodParameters ',' . boundedMethodParameter (110) - - IDENTIFIER shift 78 - . error - - boundedMethodParameter goto 328 - - -state 244 - fielddeclaration : '<' boundedMethodParameters '>' . type fielddeclarator ';' (88) - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator (111) - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator throws (116) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator (123) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator throws (125) - methodheader : '<' boundedMethodParameters '>' . methoddeclarator (128) - - BOOLEAN shift 2 - CHAR shift 3 - INT shift 6 - VOID shift 329 - IDENTIFIER shift 117 - . error - - methoddeclarator goto 330 - simplename goto 18 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 331 - - -state 245 - classtypelist : classtype . (145) - - . reduce 145 - - -state 246 - throws : THROWS classtypelist . (101) - classtypelist : classtypelist . ',' classtype (146) - - ',' shift 332 - ';' reduce 101 - '{' reduce 101 - - -state 247 - variabledeclaratorid : IDENTIFIER . (160) - - . reduce 160 - - -state 248 - variabledeclarators : variabledeclarators ',' variabledeclarator . (137) - - . reduce 137 - - -state 249 - classinstancecreationexpression : NEW . classtype '(' ')' (232) - classinstancecreationexpression : NEW . classtype '(' argumentlist ')' (233) - - IDENTIFIER shift 14 - . error - - simplename goto 18 - classtype goto 333 - classorinterfacetype goto 83 - - -state 250 - lambdaexpressionparameter : '(' . ')' (214) - lambdaexpressionparameter : '(' . formalparameterlist ')' (215) - castexpression : '(' . primitivetype ')' unaryexpression (265) - - BOOLEAN shift 2 - CHAR shift 3 - INT shift 6 - IDENTIFIER shift 198 - ')' shift 305 - . error - - variabledeclaratorid goto 239 - simplename goto 18 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 334 - referencetype goto 25 - type goto 240 - formalparameter goto 241 - formalparameterlist goto 306 - - -state 251 - unaryexpression : '+' . unaryexpression (238) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 335 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 252 - unaryexpression : '-' . unaryexpression (239) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 336 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 253 - unaryexpressionnotplusminus : '!' . unaryexpression (253) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 337 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -254: shift/reduce conflict (shift 315, reduce 252) on INCREMENT -254: shift/reduce conflict (shift 316, reduce 252) on DECREMENT -state 254 - postincrementexpression : postfixexpression . INCREMENT (226) - postdecrementexpression : postfixexpression . DECREMENT (227) - unaryexpressionnotplusminus : postfixexpression . (252) - - INCREMENT shift 315 - DECREMENT shift 316 - INSTANCEOF reduce 252 - EQUAL reduce 252 - LESSEQUAL reduce 252 - GREATEREQUAL reduce 252 - NOTEQUAL reduce 252 - LOGICALOR reduce 252 - LOGICALAND reduce 252 - ',' reduce 252 - ';' reduce 252 - '.' reduce 252 - '*' reduce 252 - '<' reduce 252 - '>' reduce 252 - ')' reduce 252 - '&' reduce 252 - '+' reduce 252 - '-' reduce 252 - '|' reduce 252 - '^' reduce 252 - '/' reduce 252 - '%' reduce 252 - - -state 255 - unaryexpression : unaryexpressionnotplusminus . (240) - - . reduce 240 - - -state 256 - multiplicativeexpression : unaryexpression . (281) - - . reduce 281 - - -257: shift/reduce conflict (shift 338, reduce 278) on '*' -257: shift/reduce conflict (shift 339, reduce 278) on '/' -257: shift/reduce conflict (shift 340, reduce 278) on '%' -state 257 - additiveexpression : multiplicativeexpression . (278) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (282) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (283) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (284) - - '*' shift 338 - '/' shift 339 - '%' shift 340 - INSTANCEOF reduce 278 - EQUAL reduce 278 - LESSEQUAL reduce 278 - GREATEREQUAL reduce 278 - NOTEQUAL reduce 278 - LOGICALOR reduce 278 - LOGICALAND reduce 278 - INCREMENT reduce 278 - DECREMENT reduce 278 - ',' reduce 278 - ';' reduce 278 - '.' reduce 278 - '<' reduce 278 - '>' reduce 278 - ')' reduce 278 - '&' reduce 278 - '+' reduce 278 - '-' reduce 278 - '|' reduce 278 - '^' reduce 278 - - -258: shift/reduce conflict (shift 341, reduce 277) on '+' -258: shift/reduce conflict (shift 342, reduce 277) on '-' -state 258 - shiftexpression : additiveexpression . (277) - additiveexpression : additiveexpression . '+' multiplicativeexpression (279) - additiveexpression : additiveexpression . '-' multiplicativeexpression (280) - - '+' shift 341 - '-' shift 342 - INSTANCEOF reduce 277 - EQUAL reduce 277 - LESSEQUAL reduce 277 - GREATEREQUAL reduce 277 - NOTEQUAL reduce 277 - LOGICALOR reduce 277 - LOGICALAND reduce 277 - INCREMENT reduce 277 - DECREMENT reduce 277 - ',' reduce 277 - ';' reduce 277 - '.' reduce 277 - '*' reduce 277 - '<' reduce 277 - '>' reduce 277 - ')' reduce 277 - '&' reduce 277 - '|' reduce 277 - '^' reduce 277 - '/' reduce 277 - '%' reduce 277 - - -state 259 - relationalexpression : shiftexpression . (271) - - . reduce 271 - - -260: shift/reduce conflict (shift 343, reduce 268) on INSTANCEOF -260: shift/reduce conflict (shift 344, reduce 268) on LESSEQUAL -260: shift/reduce conflict (shift 345, reduce 268) on GREATEREQUAL -260: shift/reduce conflict (shift 346, reduce 268) on '<' -260: shift/reduce conflict (shift 347, reduce 268) on '>' -state 260 - equalityexpression : relationalexpression . (268) - relationalexpression : relationalexpression . '<' shiftexpression (272) - relationalexpression : relationalexpression . '>' shiftexpression (273) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (274) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (275) - relationalexpression : relationalexpression . INSTANCEOF referencetype (276) - - INSTANCEOF shift 343 - LESSEQUAL shift 344 - GREATEREQUAL shift 345 - '<' shift 346 - '>' shift 347 - EQUAL reduce 268 - NOTEQUAL reduce 268 - LOGICALOR reduce 268 - LOGICALAND reduce 268 - INCREMENT reduce 268 - DECREMENT reduce 268 - ',' reduce 268 - ';' reduce 268 - '.' reduce 268 - '*' reduce 268 - ')' reduce 268 - '&' reduce 268 - '+' reduce 268 - '-' reduce 268 - '|' reduce 268 - '^' reduce 268 - '/' reduce 268 - '%' reduce 268 - - -261: shift/reduce conflict (shift 348, reduce 266) on EQUAL -261: shift/reduce conflict (shift 349, reduce 266) on NOTEQUAL -state 261 - andexpression : equalityexpression . (266) - equalityexpression : equalityexpression . EQUAL relationalexpression (269) - equalityexpression : equalityexpression . NOTEQUAL relationalexpression (270) - - EQUAL shift 348 - NOTEQUAL shift 349 - INSTANCEOF reduce 266 - LESSEQUAL reduce 266 - GREATEREQUAL reduce 266 - LOGICALOR reduce 266 - LOGICALAND reduce 266 - INCREMENT reduce 266 - DECREMENT reduce 266 - ',' reduce 266 - ';' reduce 266 - '.' reduce 266 - '*' reduce 266 - '<' reduce 266 - '>' reduce 266 - ')' reduce 266 - '&' reduce 266 - '+' reduce 266 - '-' reduce 266 - '|' reduce 266 - '^' reduce 266 - '/' reduce 266 - '%' reduce 266 - - -262: shift/reduce conflict (shift 350, reduce 255) on '&' -state 262 - exclusiveorexpression : andexpression . (255) - andexpression : andexpression . '&' equalityexpression (267) - - '&' shift 350 - INSTANCEOF reduce 255 - EQUAL reduce 255 - LESSEQUAL reduce 255 - GREATEREQUAL reduce 255 - NOTEQUAL reduce 255 - LOGICALOR reduce 255 - LOGICALAND reduce 255 - INCREMENT reduce 255 - DECREMENT reduce 255 - ',' reduce 255 - ';' reduce 255 - '.' reduce 255 - '*' reduce 255 - '<' reduce 255 - '>' reduce 255 - ')' reduce 255 - '+' reduce 255 - '-' reduce 255 - '|' reduce 255 - '^' reduce 255 - '/' reduce 255 - '%' reduce 255 - - -263: shift/reduce conflict (shift 351, reduce 246) on '^' -state 263 - inclusiveorexpression : exclusiveorexpression . (246) - exclusiveorexpression : exclusiveorexpression . '^' andexpression (256) - - '^' shift 351 - INSTANCEOF reduce 246 - EQUAL reduce 246 - LESSEQUAL reduce 246 - GREATEREQUAL reduce 246 - NOTEQUAL reduce 246 - LOGICALOR reduce 246 - LOGICALAND reduce 246 - INCREMENT reduce 246 - DECREMENT reduce 246 - ',' reduce 246 - ';' reduce 246 - '.' reduce 246 - '*' reduce 246 - '<' reduce 246 - '>' reduce 246 - ')' reduce 246 - '&' reduce 246 - '+' reduce 246 - '-' reduce 246 - '|' reduce 246 - '/' reduce 246 - '%' reduce 246 - - -264: shift/reduce conflict (shift 352, reduce 234) on '|' -state 264 - conditionalandexpression : inclusiveorexpression . (234) - inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (247) - - '|' shift 352 - INSTANCEOF reduce 234 - EQUAL reduce 234 - LESSEQUAL reduce 234 - GREATEREQUAL reduce 234 - NOTEQUAL reduce 234 - LOGICALOR reduce 234 - LOGICALAND reduce 234 - INCREMENT reduce 234 - DECREMENT reduce 234 - ',' reduce 234 - ';' reduce 234 - '.' reduce 234 - '*' reduce 234 - '<' reduce 234 - '>' reduce 234 - ')' reduce 234 - '&' reduce 234 - '+' reduce 234 - '-' reduce 234 - '^' reduce 234 - '/' reduce 234 - '%' reduce 234 - - -265: shift/reduce conflict (shift 353, reduce 209) on LOGICALAND -state 265 - conditionalorexpression : conditionalandexpression . (209) - conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (235) - - LOGICALAND shift 353 - INSTANCEOF reduce 209 - EQUAL reduce 209 - LESSEQUAL reduce 209 - GREATEREQUAL reduce 209 - NOTEQUAL reduce 209 - LOGICALOR reduce 209 - INCREMENT reduce 209 - DECREMENT reduce 209 - ',' reduce 209 - ';' reduce 209 - '.' reduce 209 - '*' reduce 209 - '<' reduce 209 - '>' reduce 209 - ')' reduce 209 - '&' reduce 209 - '+' reduce 209 - '-' reduce 209 - '|' reduce 209 - '^' reduce 209 - '/' reduce 209 - '%' reduce 209 - - -266: shift/reduce conflict (shift 354, reduce 198) on LOGICALOR -state 266 - conditionalexpression : conditionalorexpression . (198) - conditionalorexpression : conditionalorexpression . LOGICALOR conditionalandexpression (210) - - LOGICALOR shift 354 - INSTANCEOF reduce 198 - EQUAL reduce 198 - LESSEQUAL reduce 198 - GREATEREQUAL reduce 198 - NOTEQUAL reduce 198 - LOGICALAND reduce 198 - INCREMENT reduce 198 - DECREMENT reduce 198 - ',' reduce 198 - ';' reduce 198 - '.' reduce 198 - '*' reduce 198 - '<' reduce 198 - '>' reduce 198 - ')' reduce 198 - '&' reduce 198 - '+' reduce 198 - '-' reduce 198 - '|' reduce 198 - '^' reduce 198 - '/' reduce 198 - '%' reduce 198 - - -state 267 - assignmentexpression : conditionalexpression . (189) - - . reduce 189 - - -state 268 - expression : assignmentexpression . (168) - - . reduce 168 - - -state 269 - fielddeclarator : variabledeclarator '=' expression . (85) - - . reduce 85 - - -state 270 - unaryexpression : preincrementexpression . (236) - - . reduce 236 - - -state 271 - unaryexpression : predecrementexpression . (237) - - . reduce 237 - - -state 272 - postfixexpression : postincrementexpression . (243) - - . reduce 243 - - -state 273 - postfixexpression : postdecrementexpression . (244) - - . reduce 244 - - -state 274 - expression : classinstancecreationexpression . (169) - - . reduce 169 - - -state 275 - assignmentexpression : assignment . (190) - - . reduce 190 - - -state 276 - primarynonewarray : methodinvocation . (250) - - . reduce 250 - - -state 277 - unaryexpressionnotplusminus : castexpression . (254) - - . reduce 254 - - -state 278 - constructordeclarator : simplename '(' ')' . (95) - - . reduce 95 - - -state 279 - constructordeclarator : simplename '(' formalparameterlist . ')' (96) - formalparameterlist : formalparameterlist . ',' formalparameter (142) - - ',' shift 326 - ')' shift 355 - . error - - -state 280 - methodheader : type methoddeclarator throws . (115) - - . reduce 115 - - -state 281 - fielddeclaration : type variabledeclarators ';' . (90) - - . reduce 90 - - -state 282 - fielddeclaration : type fielddeclarator ';' . (87) - - . reduce 87 - - -state 283 - methodheader : modifiers VOID methoddeclarator . (120) - methodheader : modifiers VOID methoddeclarator . throws (122) - - THROWS shift 148 - ';' reduce 120 - '{' reduce 120 - - throws goto 356 - - -state 284 - boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (110) - methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator (114) - methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator throws (118) - methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator (124) - methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator throws (126) - - ',' shift 243 - '>' shift 357 - . error - - -state 285 - methodheader : modifiers methoddeclarator throws . (131) - - . reduce 131 - - -state 286 - methodheader : modifiers type methoddeclarator . (113) - methodheader : modifiers type methoddeclarator . throws (117) - - THROWS shift 148 - ';' reduce 113 - '{' reduce 113 - - throws goto 358 - - -state 287 - fielddeclaration : modifiers type variabledeclarators . ';' (91) - variabledeclarators : variabledeclarators . ',' variabledeclarator (137) - - ',' shift 152 - ';' shift 359 - . error - - -state 288 - constructordeclaration : modifiers constructordeclarator constructorbody . (82) - - . reduce 82 - - -state 289 - explicitconstructorinvocation : THIS . '(' ')' ';' (143) - explicitconstructorinvocation : THIS . '(' argumentlist ')' ';' (144) - primarynonewarray : THIS . (249) - - '(' shift 360 - INCREMENT reduce 249 - DECREMENT reduce 249 - '.' reduce 249 - - -state 290 - constructorbody : '{' '}' . (97) - - . reduce 97 - - -state 291 - constructorbody : '{' blockstatements . '}' (99) - blockstatements : blockstatements . blockstatement (140) - - BOOLEAN shift 2 - CHAR shift 3 - FOR shift 185 - IF shift 186 - INT shift 6 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 361 - '(' shift 203 - . error - - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 - qualifiedname goto 35 - name goto 207 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 208 - block goto 209 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 310 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 292 - constructorbody : '{' explicitconstructorinvocation . '}' (98) - constructorbody : '{' explicitconstructorinvocation . blockstatements '}' (100) - - BOOLEAN shift 2 - CHAR shift 3 - FOR shift 185 - IF shift 186 - INT shift 6 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 362 - '(' shift 203 - . error - - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 - qualifiedname goto 35 - name goto 207 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 208 - block goto 209 - blockstatements goto 363 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 226 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 293 - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator (111) - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator throws (116) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator (123) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator throws (125) - methodheader : '<' boundedMethodParameters '>' . methoddeclarator (128) - - BOOLEAN shift 2 - CHAR shift 3 - INT shift 6 - VOID shift 329 - IDENTIFIER shift 117 - . error - - methoddeclarator goto 330 - simplename goto 18 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 364 - - -state 294 - constantdeclaration : modifiers type IDENTIFIER . '=' expression ';' (83) - methoddeclarator : IDENTIFIER . '(' ')' (147) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (148) - - '=' shift 365 - '(' shift 143 - . error - - -state 295 - classdeclaration : modifiers CLASS classidentifier super interfaces classbody . (27) - - . reduce 27 - - -state 296 - boundedclassidentifierlist : boundedclassidentifierlist '&' . referencetype (108) - - IDENTIFIER shift 14 - . error - - simplename goto 18 - classorinterfacetype goto 21 - referencetype goto 366 - - -state 297 - forstatement : FOR '(' . expression ';' expression ';' expression ')' statement (181) - forstatement : FOR '(' . expression ';' expression ';' ')' statement (182) - forstatement : FOR '(' . expression ';' ';' expression ')' statement (183) - forstatement : FOR '(' . ';' expression ';' expression ')' statement (184) - forstatement : FOR '(' . expression ';' ';' ')' statement (185) - forstatement : FOR '(' . ';' expression ';' ')' statement (186) - forstatement : FOR '(' . ';' ';' expression ')' statement (187) - forstatement : FOR '(' . ';' ';' ')' statement (188) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 367 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 368 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 298 - ifthenstatement : IF '(' . expression ')' statement (178) - ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (179) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 369 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 299 - returnstatement : RETURN ';' . (193) - - . reduce 193 - - -state 300 - returnstatement : RETURN expression . ';' (194) - - ';' shift 370 - . error - - -state 301 - whilestatement : WHILE '(' . expression ')' statement (180) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 371 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -302: shift/reduce conflict (shift 62, reduce 242) on '.' -state 302 - qualifiedname : name . '.' IDENTIFIER (16) - methodinvocation : name . '(' ')' (228) - methodinvocation : name . '(' argumentlist ')' (229) - postfixexpression : name . (242) - - '.' shift 62 - '(' shift 307 - INSTANCEOF reduce 242 - EQUAL reduce 242 - LESSEQUAL reduce 242 - GREATEREQUAL reduce 242 - NOTEQUAL reduce 242 - LOGICALOR reduce 242 - LOGICALAND reduce 242 - INCREMENT reduce 242 - DECREMENT reduce 242 - ',' reduce 242 - ';' reduce 242 - '*' reduce 242 - '<' reduce 242 - '>' reduce 242 - ')' reduce 242 - '&' reduce 242 - '+' reduce 242 - '-' reduce 242 - '|' reduce 242 - '^' reduce 242 - '/' reduce 242 - '%' reduce 242 - - -state 303 - preincrementexpression : INCREMENT unaryexpression . (224) - - . reduce 224 - - -state 304 - predecrementexpression : DECREMENT unaryexpression . (225) - - . reduce 225 - - -state 305 - lambdaexpressionparameter : '(' ')' . (214) - - . reduce 214 - - -state 306 - formalparameterlist : formalparameterlist . ',' formalparameter (142) - lambdaexpressionparameter : '(' formalparameterlist . ')' (215) - - ',' shift 326 - ')' shift 372 - . error - - -state 307 - methodinvocation : name '(' . ')' (228) - methodinvocation : name '(' . argumentlist ')' (229) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 373 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 374 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - argumentlist goto 375 - methodinvocation goto 276 - castexpression goto 277 - - -state 308 - variabledeclarators : variabledeclarators . ',' variabledeclarator (137) - localvariabledeclaration : type variabledeclarators . (172) - - ',' shift 152 - ';' reduce 172 - - -state 309 - block : '{' blockstatements '}' . (94) - - . reduce 94 - - -state 310 - blockstatements : blockstatements blockstatement . (140) +state 230 + blockstatements : blockstatement . (140) . reduce 140 -state 311 - localvariabledeclarationstatement : localvariabledeclaration ';' . (162) - - . reduce 162 - - -state 312 - lambdaassignmentoperator : LAMBDAASSIGNMENT . (211) - - . reduce 211 - - -state 313 - lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator . lambdabody (216) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '{' shift 139 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 376 - lambdabody goto 377 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 378 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 314 - methodinvocation : primary '.' . IDENTIFIER '(' ')' (230) - methodinvocation : primary '.' . IDENTIFIER '(' argumentlist ')' (231) - - IDENTIFIER shift 379 - . error - - -state 315 - postincrementexpression : postfixexpression INCREMENT . (226) - - . reduce 226 - - -state 316 - postdecrementexpression : postfixexpression DECREMENT . (227) - - . reduce 227 - - -state 317 - expressionstatement : statementexpression ';' . (192) - - . reduce 192 - - -state 318 - assignmentoperator : PLUSEQUAL . (222) - - . reduce 222 - - -state 319 - assignmentoperator : MINUSEQUAL . (223) - - . reduce 223 - - -state 320 - assignmentoperator : TIMESEQUAL . (219) - - . reduce 219 - - -state 321 - assignmentoperator : DIVIDEEQUAL . (220) - - . reduce 220 - - -state 322 - assignmentoperator : MODULOEQUAL . (221) - - . reduce 221 - - -state 323 - assignmentoperator : '=' . (218) - - . reduce 218 - - -state 324 - assignment : lefthandside assignmentoperator . assignmentexpression (199) - assignment : lefthandside assignmentoperator . classinstancecreationexpression (200) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 380 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 381 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 325 - formalparameter : type variabledeclaratorid . (155) +state 231 + blockstatement : statement . (155) . reduce 155 -state 326 - formalparameterlist : formalparameterlist ',' . formalparameter (142) +state 232 + statement : whilestatement . (167) - BOOLEAN shift 2 - CHAR shift 3 - INT shift 6 - IDENTIFIER shift 198 + . reduce 167 + + +state 233 + statement : forstatement . (168) + + . reduce 168 + + +state 234 + statement : ifthenstatement . (165) + + . reduce 165 + + +state 235 + statement : ifthenelsestatement . (166) + + . reduce 166 + + +state 236 + statementwithouttrailingsubstatement : emptystatement . (176) + + . reduce 176 + + +state 237 + statementwithouttrailingsubstatement : returnstatement . (178) + + . reduce 178 + + +state 238 + statementexpression : assignment . (202) + + . reduce 202 + + +state 239 + assignment : lefthandside . assignmentoperator assignmentexpression (200) + assignment : lefthandside . assignmentoperator classinstancecreationexpression (201) + + PLUSEQUAL shift 326 + MINUSEQUAL shift 327 + TIMESEQUAL shift 328 + DIVIDEEQUAL shift 329 + MODULOEQUAL shift 330 + '=' shift 331 . error - variabledeclaratorid goto 239 - simplename goto 18 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 240 - formalparameter goto 382 + assignmentoperator goto 332 -state 327 - methoddeclarator : IDENTIFIER '(' formalparameterlist ')' . (148) +state 240 + statementexpression : methodinvocation . (207) + primarynonewarray : methodinvocation . (251) - . reduce 148 + INCREMENT reduce 251 + DECREMENT reduce 251 + ';' reduce 207 + '.' reduce 251 -state 328 - boundedMethodParameters : boundedMethodParameters ',' boundedMethodParameter . (110) - - . reduce 110 - - -state 329 - methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator (123) - methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator throws (125) - - IDENTIFIER shift 141 - . error - - methoddeclarator goto 383 - - -state 330 - methodheader : '<' boundedMethodParameters '>' methoddeclarator . (128) - - . reduce 128 - - -state 331 - fielddeclaration : '<' boundedMethodParameters '>' type . fielddeclarator ';' (88) - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator (111) - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator throws (116) - - IDENTIFIER shift 157 - . error - - methoddeclarator goto 384 - fielddeclarator goto 385 - variabledeclarator goto 386 - variabledeclaratorid goto 101 - - -state 332 - classtypelist : classtypelist ',' . classtype (146) - - IDENTIFIER shift 14 - . error - - simplename goto 18 - classtype goto 387 - classorinterfacetype goto 83 - - -state 333 - classinstancecreationexpression : NEW classtype . '(' ')' (232) - classinstancecreationexpression : NEW classtype . '(' argumentlist ')' (233) - - '(' shift 388 - . error - - -state 334 - type : primitivetype . (132) - type : primitivetype . '[' ']' (133) - castexpression : '(' primitivetype . ')' unaryexpression (265) - - ')' shift 389 - '[' shift 45 - IDENTIFIER reduce 132 - - -state 335 - unaryexpression : '+' unaryexpression . (238) - - . reduce 238 - - -state 336 - unaryexpression : '-' unaryexpression . (239) - - . reduce 239 - - -state 337 - unaryexpressionnotplusminus : '!' unaryexpression . (253) - - . reduce 253 - - -state 338 - multiplicativeexpression : multiplicativeexpression '*' . unaryexpression (282) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 390 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 339 - multiplicativeexpression : multiplicativeexpression '/' . unaryexpression (283) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 391 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 340 - multiplicativeexpression : multiplicativeexpression '%' . unaryexpression (284) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 392 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 341 - additiveexpression : additiveexpression '+' . multiplicativeexpression (279) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 393 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 342 - additiveexpression : additiveexpression '-' . multiplicativeexpression (280) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 394 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 343 - relationalexpression : relationalexpression INSTANCEOF . referencetype (276) - - IDENTIFIER shift 14 - . error - - simplename goto 18 - classorinterfacetype goto 21 - referencetype goto 395 - - -state 344 - relationalexpression : relationalexpression LESSEQUAL . shiftexpression (274) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 396 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 345 - relationalexpression : relationalexpression GREATEREQUAL . shiftexpression (275) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 397 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 346 - relationalexpression : relationalexpression '<' . shiftexpression (272) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 398 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 347 - relationalexpression : relationalexpression '>' . shiftexpression (273) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 399 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 348 - equalityexpression : equalityexpression EQUAL . relationalexpression (269) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 400 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 349 - equalityexpression : equalityexpression NOTEQUAL . relationalexpression (270) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 401 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 350 - andexpression : andexpression '&' . equalityexpression (267) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 402 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 351 - exclusiveorexpression : exclusiveorexpression '^' . andexpression (256) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 403 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 352 - inclusiveorexpression : inclusiveorexpression '|' . exclusiveorexpression (247) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 404 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 353 - conditionalandexpression : conditionalandexpression LOGICALAND . inclusiveorexpression (235) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 405 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 354 - conditionalorexpression : conditionalorexpression LOGICALOR . conditionalandexpression (210) - - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 406 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 - - -state 355 - constructordeclarator : simplename '(' formalparameterlist ')' . (96) - - . reduce 96 - - -state 356 - methodheader : modifiers VOID methoddeclarator throws . (122) +state 241 + methodheader : VOID methoddeclarator throws . (122) . reduce 122 -state 357 - methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator (114) - methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator throws (118) - methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator (124) - methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator throws (126) +state 242 + methoddeclarator : IDENTIFIER '(' ')' . (148) - BOOLEAN shift 2 - CHAR shift 3 - INT shift 6 - VOID shift 407 - IDENTIFIER shift 14 - . error - - simplename goto 18 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 408 + . reduce 148 -state 358 - methodheader : modifiers type methoddeclarator throws . (117) - - . reduce 117 - - -state 359 - fielddeclaration : modifiers type variabledeclarators ';' . (91) - - . reduce 91 - - -state 360 - explicitconstructorinvocation : THIS '(' . ')' ';' (143) - explicitconstructorinvocation : THIS '(' . argumentlist ')' ';' (144) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 409 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 374 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - argumentlist goto 410 - methodinvocation goto 276 - castexpression goto 277 - - -state 361 - constructorbody : '{' blockstatements '}' . (99) - - . reduce 99 - - -state 362 - constructorbody : '{' explicitconstructorinvocation '}' . (98) - - . reduce 98 - - -state 363 - constructorbody : '{' explicitconstructorinvocation blockstatements . '}' (100) - blockstatements : blockstatements . blockstatement (140) - - BOOLEAN shift 2 - CHAR shift 3 - FOR shift 185 - IF shift 186 - INT shift 6 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 198 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '}' shift 411 - '(' shift 203 - . error - - variabledeclarators goto 204 - variabledeclarator goto 205 - variabledeclaratorid goto 101 - simplename goto 206 - qualifiedname goto 35 - name goto 207 - classorinterfacetype goto 21 - integraltype goto 22 - numerictype goto 23 - primitivetype goto 24 - referencetype goto 25 - type goto 208 - block goto 209 - localvariabledeclarationstatement goto 211 - localvariabledeclaration goto 212 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - blockstatement goto 310 - statement goto 227 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 364 - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator (111) - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator throws (116) - - IDENTIFIER shift 141 - . error - - methoddeclarator goto 384 - - -state 365 - constantdeclaration : modifiers type IDENTIFIER '=' . expression ';' (83) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 412 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 366 - boundedclassidentifierlist : boundedclassidentifierlist '&' referencetype . (108) - - . reduce 108 - - -state 367 - forstatement : FOR '(' ';' . expression ';' expression ')' statement (184) - forstatement : FOR '(' ';' . expression ';' ')' statement (186) - forstatement : FOR '(' ';' . ';' expression ')' statement (187) - forstatement : FOR '(' ';' . ';' ')' statement (188) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 413 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 414 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 368 - forstatement : FOR '(' expression . ';' expression ';' expression ')' statement (181) - forstatement : FOR '(' expression . ';' expression ';' ')' statement (182) - forstatement : FOR '(' expression . ';' ';' expression ')' statement (183) - forstatement : FOR '(' expression . ';' ';' ')' statement (185) - - ';' shift 415 - . error - - -state 369 - ifthenstatement : IF '(' expression . ')' statement (178) - ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (179) - - ')' shift 416 - . error - - -state 370 - returnstatement : RETURN expression ';' . (194) - - . reduce 194 - - -state 371 - whilestatement : WHILE '(' expression . ')' statement (180) - - ')' shift 417 - . error - - -state 372 - lambdaexpressionparameter : '(' formalparameterlist ')' . (215) - - . reduce 215 - - -state 373 - methodinvocation : name '(' ')' . (228) - - . reduce 228 - - -state 374 - argumentlist : expression . (157) +state 243 + formalparameter : variabledeclaratorid . (157) . reduce 157 -state 375 - argumentlist : argumentlist . ',' expression (158) - methodinvocation : name '(' argumentlist . ')' (229) +state 244 + formalparameter : type . variabledeclaratorid (156) - ',' shift 418 - ')' shift 419 + IDENTIFIER shift 255 . error - -state 376 - lambdabody : block . (212) - - . reduce 212 + variabledeclaratorid goto 333 -state 377 - lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody . (216) - - . reduce 216 - - -state 378 - lambdabody : expression . (213) - - . reduce 213 - - -state 379 - methodinvocation : primary '.' IDENTIFIER . '(' ')' (230) - methodinvocation : primary '.' IDENTIFIER . '(' argumentlist ')' (231) - - '(' shift 420 - . error - - -state 380 - assignment : lefthandside assignmentoperator assignmentexpression . (199) - - . reduce 199 - - -state 381 - assignment : lefthandside assignmentoperator classinstancecreationexpression . (200) - - . reduce 200 - - -state 382 - formalparameterlist : formalparameterlist ',' formalparameter . (142) +state 245 + formalparameterlist : formalparameter . (142) . reduce 142 -state 383 - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . (123) - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . throws (125) +state 246 + formalparameterlist : formalparameterlist . ',' formalparameter (143) + methoddeclarator : IDENTIFIER '(' formalparameterlist . ')' (149) - THROWS shift 148 - ';' reduce 123 - '{' reduce 123 - - throws goto 421 - - -state 384 - methodheader : '<' boundedMethodParameters '>' type methoddeclarator . (111) - methodheader : '<' boundedMethodParameters '>' type methoddeclarator . throws (116) - - THROWS shift 148 - ';' reduce 111 - '{' reduce 111 - - throws goto 422 - - -state 385 - fielddeclaration : '<' boundedMethodParameters '>' type fielddeclarator . ';' (88) - - ';' shift 423 + ',' shift 334 + ')' shift 335 . error -state 386 +state 247 + genericdeclarationlist : '<' boundedMethodParameters ENDOFGENERICVARDECLARATION . (86) + + . reduce 86 + + +state 248 + boundedMethodParameters : boundedMethodParameters ',' . boundedMethodParameter (111) + + IDENTIFIER shift 78 + . error + + boundedMethodParameter goto 336 + + +state 249 + methodheader : genericdeclarationlist VOID methoddeclarator . (124) + methodheader : genericdeclarationlist VOID methoddeclarator . throws (126) + + THROWS shift 152 + ';' reduce 124 + '{' reduce 124 + + throws goto 337 + + +state 250 + methodheader : genericdeclarationlist type methoddeclarator . (112) + methodheader : genericdeclarationlist type methoddeclarator . throws (117) + + THROWS shift 152 + ';' reduce 112 + '{' reduce 112 + + throws goto 338 + + +state 251 + fielddeclaration : genericdeclarationlist type fielddeclarator . ';' (89) + + ';' shift 339 + . error + + +state 252 fielddeclarator : variabledeclarator . '=' expression (85) - '=' shift 155 + '=' shift 159 . error -state 387 - classtypelist : classtypelist ',' classtype . (146) +state 253 + classtypelist : classtype . (146) . reduce 146 -state 388 - classinstancecreationexpression : NEW classtype '(' . ')' (232) - classinstancecreationexpression : NEW classtype '(' . argumentlist ')' (233) +state 254 + throws : THROWS classtypelist . (102) + classtypelist : classtypelist . ',' classtype (147) + + ',' shift 340 + ';' reduce 102 + '{' reduce 102 + + +state 255 + variabledeclaratorid : IDENTIFIER . (161) + + . reduce 161 + + +state 256 + variabledeclarators : variabledeclarators ',' variabledeclarator . (138) + + . reduce 138 + + +state 257 + classinstancecreationexpression : NEW . classtype '(' ')' (233) + classinstancecreationexpression : NEW . classtype '(' argumentlist ')' (234) - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 424 - '+' shift 251 - '-' shift 252 - '!' shift 253 + . error + + simplename goto 18 + classtype goto 341 + classorinterfacetype goto 83 + + +state 258 + lambdaexpressionparameter : '(' . ')' (215) + lambdaexpressionparameter : '(' . formalparameterlist ')' (216) + castexpression : '(' . primitivetype ')' unaryexpression (266) + + BOOLEAN shift 2 + CHAR shift 3 + INT shift 6 + IDENTIFIER shift 202 + ')' shift 313 + . error + + variabledeclaratorid goto 243 + simplename goto 18 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 342 + referencetype goto 25 + type goto 244 + formalparameter goto 245 + formalparameterlist goto 314 + + +state 259 + unaryexpression : '+' . unaryexpression (239) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 . error simplename goto 34 qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 374 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - argumentlist goto 425 - methodinvocation goto 276 - castexpression goto 277 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 343 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 -state 389 - castexpression : '(' primitivetype ')' . unaryexpression (265) +state 260 + unaryexpression : '-' . unaryexpression (240) - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 . error simplename goto 34 qualifiedname goto 35 - name goto 302 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 426 - lambdaexpression goto 218 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - methodinvocation goto 276 - castexpression goto 277 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 344 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 -state 390 - multiplicativeexpression : multiplicativeexpression '*' unaryexpression . (282) +state 261 + unaryexpressionnotplusminus : '!' . unaryexpression (254) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 345 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +262: shift/reduce conflict (shift 323, reduce 253) on INCREMENT +262: shift/reduce conflict (shift 324, reduce 253) on DECREMENT +state 262 + postincrementexpression : postfixexpression . INCREMENT (227) + postdecrementexpression : postfixexpression . DECREMENT (228) + unaryexpressionnotplusminus : postfixexpression . (253) + + INCREMENT shift 323 + DECREMENT shift 324 + INSTANCEOF reduce 253 + EQUAL reduce 253 + LESSEQUAL reduce 253 + GREATEREQUAL reduce 253 + NOTEQUAL reduce 253 + LOGICALOR reduce 253 + LOGICALAND reduce 253 + ',' reduce 253 + ';' reduce 253 + '.' reduce 253 + '*' reduce 253 + '<' reduce 253 + '>' reduce 253 + ')' reduce 253 + '&' reduce 253 + '+' reduce 253 + '-' reduce 253 + '|' reduce 253 + '^' reduce 253 + '/' reduce 253 + '%' reduce 253 + + +state 263 + unaryexpression : unaryexpressionnotplusminus . (241) + + . reduce 241 + + +state 264 + multiplicativeexpression : unaryexpression . (282) . reduce 282 -state 391 - multiplicativeexpression : multiplicativeexpression '/' unaryexpression . (283) +265: shift/reduce conflict (shift 346, reduce 279) on '*' +265: shift/reduce conflict (shift 347, reduce 279) on '/' +265: shift/reduce conflict (shift 348, reduce 279) on '%' +state 265 + additiveexpression : multiplicativeexpression . (279) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (283) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (284) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (285) - . reduce 283 - - -state 392 - multiplicativeexpression : multiplicativeexpression '%' unaryexpression . (284) - - . reduce 284 - - -393: shift/reduce conflict (shift 338, reduce 279) on '*' -393: shift/reduce conflict (shift 339, reduce 279) on '/' -393: shift/reduce conflict (shift 340, reduce 279) on '%' -state 393 - additiveexpression : additiveexpression '+' multiplicativeexpression . (279) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (282) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (283) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (284) - - '*' shift 338 - '/' shift 339 - '%' shift 340 + '*' shift 346 + '/' shift 347 + '%' shift 348 INSTANCEOF reduce 279 EQUAL reduce 279 LESSEQUAL reduce 279 @@ -6173,88 +3676,62 @@ state 393 '^' reduce 279 -394: shift/reduce conflict (shift 338, reduce 280) on '*' -394: shift/reduce conflict (shift 339, reduce 280) on '/' -394: shift/reduce conflict (shift 340, reduce 280) on '%' -state 394 - additiveexpression : additiveexpression '-' multiplicativeexpression . (280) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (282) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (283) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (284) +266: shift/reduce conflict (shift 349, reduce 278) on '+' +266: shift/reduce conflict (shift 350, reduce 278) on '-' +state 266 + shiftexpression : additiveexpression . (278) + additiveexpression : additiveexpression . '+' multiplicativeexpression (280) + additiveexpression : additiveexpression . '-' multiplicativeexpression (281) - '*' shift 338 - '/' shift 339 - '%' shift 340 - INSTANCEOF reduce 280 - EQUAL reduce 280 - LESSEQUAL reduce 280 - GREATEREQUAL reduce 280 - NOTEQUAL reduce 280 - LOGICALOR reduce 280 - LOGICALAND reduce 280 - INCREMENT reduce 280 - DECREMENT reduce 280 - ',' reduce 280 - ';' reduce 280 - '.' reduce 280 - '<' reduce 280 - '>' reduce 280 - ')' reduce 280 - '&' reduce 280 - '+' reduce 280 - '-' reduce 280 - '|' reduce 280 - '^' reduce 280 + '+' shift 349 + '-' shift 350 + INSTANCEOF reduce 278 + EQUAL reduce 278 + LESSEQUAL reduce 278 + GREATEREQUAL reduce 278 + NOTEQUAL reduce 278 + LOGICALOR reduce 278 + LOGICALAND reduce 278 + INCREMENT reduce 278 + DECREMENT reduce 278 + ',' reduce 278 + ';' reduce 278 + '.' reduce 278 + '*' reduce 278 + '<' reduce 278 + '>' reduce 278 + ')' reduce 278 + '&' reduce 278 + '|' reduce 278 + '^' reduce 278 + '/' reduce 278 + '%' reduce 278 -state 395 - relationalexpression : relationalexpression INSTANCEOF referencetype . (276) - - . reduce 276 - - -state 396 - relationalexpression : relationalexpression LESSEQUAL shiftexpression . (274) - - . reduce 274 - - -state 397 - relationalexpression : relationalexpression GREATEREQUAL shiftexpression . (275) - - . reduce 275 - - -state 398 - relationalexpression : relationalexpression '<' shiftexpression . (272) +state 267 + relationalexpression : shiftexpression . (272) . reduce 272 -state 399 - relationalexpression : relationalexpression '>' shiftexpression . (273) +268: shift/reduce conflict (shift 351, reduce 269) on INSTANCEOF +268: shift/reduce conflict (shift 352, reduce 269) on LESSEQUAL +268: shift/reduce conflict (shift 353, reduce 269) on GREATEREQUAL +268: shift/reduce conflict (shift 354, reduce 269) on '<' +268: shift/reduce conflict (shift 355, reduce 269) on '>' +state 268 + equalityexpression : relationalexpression . (269) + relationalexpression : relationalexpression . '<' shiftexpression (273) + relationalexpression : relationalexpression . '>' shiftexpression (274) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (275) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (276) + relationalexpression : relationalexpression . INSTANCEOF referencetype (277) - . reduce 273 - - -400: shift/reduce conflict (shift 343, reduce 269) on INSTANCEOF -400: shift/reduce conflict (shift 344, reduce 269) on LESSEQUAL -400: shift/reduce conflict (shift 345, reduce 269) on GREATEREQUAL -400: shift/reduce conflict (shift 346, reduce 269) on '<' -400: shift/reduce conflict (shift 347, reduce 269) on '>' -state 400 - equalityexpression : equalityexpression EQUAL relationalexpression . (269) - relationalexpression : relationalexpression . '<' shiftexpression (272) - relationalexpression : relationalexpression . '>' shiftexpression (273) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (274) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (275) - relationalexpression : relationalexpression . INSTANCEOF referencetype (276) - - INSTANCEOF shift 343 - LESSEQUAL shift 344 - GREATEREQUAL shift 345 - '<' shift 346 - '>' shift 347 + INSTANCEOF shift 351 + LESSEQUAL shift 352 + GREATEREQUAL shift 353 + '<' shift 354 + '>' shift 355 EQUAL reduce 269 NOTEQUAL reduce 269 LOGICALOR reduce 269 @@ -6275,53 +3752,15 @@ state 400 '%' reduce 269 -401: shift/reduce conflict (shift 343, reduce 270) on INSTANCEOF -401: shift/reduce conflict (shift 344, reduce 270) on LESSEQUAL -401: shift/reduce conflict (shift 345, reduce 270) on GREATEREQUAL -401: shift/reduce conflict (shift 346, reduce 270) on '<' -401: shift/reduce conflict (shift 347, reduce 270) on '>' -state 401 - equalityexpression : equalityexpression NOTEQUAL relationalexpression . (270) - relationalexpression : relationalexpression . '<' shiftexpression (272) - relationalexpression : relationalexpression . '>' shiftexpression (273) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (274) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (275) - relationalexpression : relationalexpression . INSTANCEOF referencetype (276) +269: shift/reduce conflict (shift 356, reduce 267) on EQUAL +269: shift/reduce conflict (shift 357, reduce 267) on NOTEQUAL +state 269 + andexpression : equalityexpression . (267) + equalityexpression : equalityexpression . EQUAL relationalexpression (270) + equalityexpression : equalityexpression . NOTEQUAL relationalexpression (271) - INSTANCEOF shift 343 - LESSEQUAL shift 344 - GREATEREQUAL shift 345 - '<' shift 346 - '>' shift 347 - EQUAL reduce 270 - NOTEQUAL reduce 270 - LOGICALOR reduce 270 - LOGICALAND reduce 270 - INCREMENT reduce 270 - DECREMENT reduce 270 - ',' reduce 270 - ';' reduce 270 - '.' reduce 270 - '*' reduce 270 - ')' reduce 270 - '&' reduce 270 - '+' reduce 270 - '-' reduce 270 - '|' reduce 270 - '^' reduce 270 - '/' reduce 270 - '%' reduce 270 - - -402: shift/reduce conflict (shift 348, reduce 267) on EQUAL -402: shift/reduce conflict (shift 349, reduce 267) on NOTEQUAL -state 402 - andexpression : andexpression '&' equalityexpression . (267) - equalityexpression : equalityexpression . EQUAL relationalexpression (269) - equalityexpression : equalityexpression . NOTEQUAL relationalexpression (270) - - EQUAL shift 348 - NOTEQUAL shift 349 + EQUAL shift 356 + NOTEQUAL shift 357 INSTANCEOF reduce 267 LESSEQUAL reduce 267 GREATEREQUAL reduce 267 @@ -6345,12 +3784,12 @@ state 402 '%' reduce 267 -403: shift/reduce conflict (shift 350, reduce 256) on '&' -state 403 - exclusiveorexpression : exclusiveorexpression '^' andexpression . (256) - andexpression : andexpression . '&' equalityexpression (267) +270: shift/reduce conflict (shift 358, reduce 256) on '&' +state 270 + exclusiveorexpression : andexpression . (256) + andexpression : andexpression . '&' equalityexpression (268) - '&' shift 350 + '&' shift 358 INSTANCEOF reduce 256 EQUAL reduce 256 LESSEQUAL reduce 256 @@ -6375,12 +3814,12 @@ state 403 '%' reduce 256 -404: shift/reduce conflict (shift 351, reduce 247) on '^' -state 404 - inclusiveorexpression : inclusiveorexpression '|' exclusiveorexpression . (247) - exclusiveorexpression : exclusiveorexpression . '^' andexpression (256) +271: shift/reduce conflict (shift 359, reduce 247) on '^' +state 271 + inclusiveorexpression : exclusiveorexpression . (247) + exclusiveorexpression : exclusiveorexpression . '^' andexpression (257) - '^' shift 351 + '^' shift 359 INSTANCEOF reduce 247 EQUAL reduce 247 LESSEQUAL reduce 247 @@ -6405,12 +3844,12 @@ state 404 '%' reduce 247 -405: shift/reduce conflict (shift 352, reduce 235) on '|' -state 405 - conditionalandexpression : conditionalandexpression LOGICALAND inclusiveorexpression . (235) - inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (247) +272: shift/reduce conflict (shift 360, reduce 235) on '|' +state 272 + conditionalandexpression : inclusiveorexpression . (235) + inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (248) - '|' shift 352 + '|' shift 360 INSTANCEOF reduce 235 EQUAL reduce 235 LESSEQUAL reduce 235 @@ -6435,12 +3874,12 @@ state 405 '%' reduce 235 -406: shift/reduce conflict (shift 353, reduce 210) on LOGICALAND -state 406 - conditionalorexpression : conditionalorexpression LOGICALOR conditionalandexpression . (210) - conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (235) +273: shift/reduce conflict (shift 361, reduce 210) on LOGICALAND +state 273 + conditionalorexpression : conditionalandexpression . (210) + conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (236) - LOGICALAND shift 353 + LOGICALAND shift 361 INSTANCEOF reduce 210 EQUAL reduce 210 LESSEQUAL reduce 210 @@ -6465,1693 +3904,4209 @@ state 406 '%' reduce 210 -state 407 - methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator (124) - methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator throws (126) +274: shift/reduce conflict (shift 362, reduce 199) on LOGICALOR +state 274 + conditionalexpression : conditionalorexpression . (199) + conditionalorexpression : conditionalorexpression . LOGICALOR conditionalandexpression (211) - IDENTIFIER shift 141 - . error - - methoddeclarator goto 427 + LOGICALOR shift 362 + INSTANCEOF reduce 199 + EQUAL reduce 199 + LESSEQUAL reduce 199 + GREATEREQUAL reduce 199 + NOTEQUAL reduce 199 + LOGICALAND reduce 199 + INCREMENT reduce 199 + DECREMENT reduce 199 + ',' reduce 199 + ';' reduce 199 + '.' reduce 199 + '*' reduce 199 + '<' reduce 199 + '>' reduce 199 + ')' reduce 199 + '&' reduce 199 + '+' reduce 199 + '-' reduce 199 + '|' reduce 199 + '^' reduce 199 + '/' reduce 199 + '%' reduce 199 -state 408 - methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator (114) - methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator throws (118) +state 275 + assignmentexpression : conditionalexpression . (190) - IDENTIFIER shift 141 - . error - - methoddeclarator goto 428 + . reduce 190 -state 409 - explicitconstructorinvocation : THIS '(' ')' . ';' (143) +state 276 + expression : assignmentexpression . (169) - ';' shift 429 + . reduce 169 + + +state 277 + fielddeclarator : variabledeclarator '=' expression . (85) + + . reduce 85 + + +state 278 + unaryexpression : preincrementexpression . (237) + + . reduce 237 + + +state 279 + unaryexpression : predecrementexpression . (238) + + . reduce 238 + + +state 280 + postfixexpression : postincrementexpression . (244) + + . reduce 244 + + +state 281 + postfixexpression : postdecrementexpression . (245) + + . reduce 245 + + +state 282 + expression : classinstancecreationexpression . (170) + + . reduce 170 + + +state 283 + assignmentexpression : assignment . (191) + + . reduce 191 + + +state 284 + primarynonewarray : methodinvocation . (251) + + . reduce 251 + + +state 285 + unaryexpressionnotplusminus : castexpression . (255) + + . reduce 255 + + +state 286 + constructordeclarator : simplename '(' ')' . (96) + + . reduce 96 + + +state 287 + constructordeclarator : simplename '(' formalparameterlist . ')' (97) + formalparameterlist : formalparameterlist . ',' formalparameter (143) + + ',' shift 334 + ')' shift 363 . error -state 410 - explicitconstructorinvocation : THIS '(' argumentlist . ')' ';' (144) - argumentlist : argumentlist . ',' expression (158) - - ',' shift 418 - ')' shift 430 - . error - - -state 411 - constructorbody : '{' explicitconstructorinvocation blockstatements '}' . (100) - - . reduce 100 - - -state 412 - constantdeclaration : modifiers type IDENTIFIER '=' expression . ';' (83) - - ';' shift 431 - . error - - -state 413 - forstatement : FOR '(' ';' ';' . expression ')' statement (187) - forstatement : FOR '(' ';' ';' . ')' statement (188) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 432 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 433 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 414 - forstatement : FOR '(' ';' expression . ';' expression ')' statement (184) - forstatement : FOR '(' ';' expression . ';' ')' statement (186) - - ';' shift 434 - . error - - -state 415 - forstatement : FOR '(' expression ';' . expression ';' expression ')' statement (181) - forstatement : FOR '(' expression ';' . expression ';' ')' statement (182) - forstatement : FOR '(' expression ';' . ';' expression ')' statement (183) - forstatement : FOR '(' expression ';' . ';' ')' statement (185) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 435 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 436 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 416 - ifthenstatement : IF '(' expression ')' . statement (178) - ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (179) - - FOR shift 185 - IF shift 437 - RETURN shift 187 - THIS shift 188 - WHILE shift 438 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 439 - statement goto 440 - statementnoshortif goto 441 - whilestatement goto 228 - forstatement goto 229 - whilestatementnoshortif goto 442 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - ifthenelsestatementnoshortif goto 443 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 417 - whilestatement : WHILE '(' expression ')' . statement (180) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 444 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 418 - argumentlist : argumentlist ',' . expression (158) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 445 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 419 - methodinvocation : name '(' argumentlist ')' . (229) - - . reduce 229 - - -state 420 - methodinvocation : primary '.' IDENTIFIER '(' . ')' (230) - methodinvocation : primary '.' IDENTIFIER '(' . argumentlist ')' (231) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 446 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 374 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - argumentlist goto 447 - methodinvocation goto 276 - castexpression goto 277 - - -state 421 - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator throws . (125) - - . reduce 125 - - -state 422 - methodheader : '<' boundedMethodParameters '>' type methoddeclarator throws . (116) +state 288 + methodheader : type methoddeclarator throws . (116) . reduce 116 -state 423 - fielddeclaration : '<' boundedMethodParameters '>' type fielddeclarator ';' . (88) +state 289 + fielddeclaration : type variabledeclarators ';' . (91) + + . reduce 91 + + +state 290 + fielddeclaration : type fielddeclarator ';' . (88) . reduce 88 -state 424 - classinstancecreationexpression : NEW classtype '(' ')' . (232) +state 291 + methodheader : modifiers VOID methoddeclarator . (121) + methodheader : modifiers VOID methoddeclarator . throws (123) - . reduce 232 + THROWS shift 152 + ';' reduce 121 + '{' reduce 121 + + throws goto 364 -state 425 - argumentlist : argumentlist . ',' expression (158) - classinstancecreationexpression : NEW classtype '(' argumentlist . ')' (233) +state 292 + methodheader : modifiers genericdeclarationlist VOID . methoddeclarator (125) + methodheader : modifiers genericdeclarationlist VOID . methoddeclarator throws (127) - ',' shift 418 - ')' shift 448 + IDENTIFIER shift 142 . error - -state 426 - castexpression : '(' primitivetype ')' unaryexpression . (265) - - . reduce 265 + methoddeclarator goto 365 -state 427 - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . (124) - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . throws (126) +state 293 + methodheader : modifiers genericdeclarationlist type . methoddeclarator (115) + methodheader : modifiers genericdeclarationlist type . methoddeclarator throws (119) - THROWS shift 148 - ';' reduce 124 - '{' reduce 124 + IDENTIFIER shift 142 + . error - throws goto 449 + methoddeclarator goto 366 -state 428 - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . (114) - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . throws (118) +state 294 + methodheader : modifiers methoddeclarator throws . (132) - THROWS shift 148 + . reduce 132 + + +state 295 + methodheader : modifiers type methoddeclarator . (114) + methodheader : modifiers type methoddeclarator . throws (118) + + THROWS shift 152 ';' reduce 114 '{' reduce 114 - throws goto 450 + throws goto 367 -state 429 - explicitconstructorinvocation : THIS '(' ')' ';' . (143) +state 296 + fielddeclaration : modifiers type variabledeclarators . ';' (92) + variabledeclarators : variabledeclarators . ',' variabledeclarator (138) + + ',' shift 156 + ';' shift 368 + . error + + +state 297 + constructordeclaration : modifiers constructordeclarator constructorbody . (82) + + . reduce 82 + + +state 298 + explicitconstructorinvocation : THIS . '(' ')' ';' (144) + explicitconstructorinvocation : THIS . '(' argumentlist ')' ';' (145) + primarynonewarray : THIS . (250) + + '(' shift 369 + INCREMENT reduce 250 + DECREMENT reduce 250 + '.' reduce 250 + + +state 299 + constructorbody : '{' '}' . (98) + + . reduce 98 + + +state 300 + constructorbody : '{' blockstatements . '}' (100) + blockstatements : blockstatements . blockstatement (141) + + BOOLEAN shift 2 + CHAR shift 3 + FOR shift 189 + IF shift 190 + INT shift 6 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 370 + '(' shift 207 + . error + + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 + qualifiedname goto 35 + name goto 211 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 212 + block goto 213 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 318 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 301 + constructorbody : '{' explicitconstructorinvocation . '}' (99) + constructorbody : '{' explicitconstructorinvocation . blockstatements '}' (101) + + BOOLEAN shift 2 + CHAR shift 3 + FOR shift 189 + IF shift 190 + INT shift 6 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 371 + '(' shift 207 + . error + + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 + qualifiedname goto 35 + name goto 211 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 212 + block goto 213 + blockstatements goto 372 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 230 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 302 + constantdeclaration : modifiers type IDENTIFIER . '=' expression ';' (83) + methoddeclarator : IDENTIFIER . '(' ')' (148) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (149) + + '=' shift 373 + '(' shift 144 + . error + + +state 303 + classdeclaration : modifiers CLASS classidentifier super interfaces classbody . (27) + + . reduce 27 + + +state 304 + boundedclassidentifierlist : boundedclassidentifierlist '&' . referencetype (109) + + IDENTIFIER shift 14 + . error + + simplename goto 18 + classorinterfacetype goto 21 + referencetype goto 374 + + +state 305 + forstatement : FOR '(' . expression ';' expression ';' expression ')' statement (182) + forstatement : FOR '(' . expression ';' expression ';' ')' statement (183) + forstatement : FOR '(' . expression ';' ';' expression ')' statement (184) + forstatement : FOR '(' . ';' expression ';' expression ')' statement (185) + forstatement : FOR '(' . expression ';' ';' ')' statement (186) + forstatement : FOR '(' . ';' expression ';' ')' statement (187) + forstatement : FOR '(' . ';' ';' expression ')' statement (188) + forstatement : FOR '(' . ';' ';' ')' statement (189) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 375 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 376 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 306 + ifthenstatement : IF '(' . expression ')' statement (179) + ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (180) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 377 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 307 + returnstatement : RETURN ';' . (194) + + . reduce 194 + + +state 308 + returnstatement : RETURN expression . ';' (195) + + ';' shift 378 + . error + + +state 309 + whilestatement : WHILE '(' . expression ')' statement (181) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 379 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +310: shift/reduce conflict (shift 62, reduce 243) on '.' +state 310 + qualifiedname : name . '.' IDENTIFIER (16) + methodinvocation : name . '(' ')' (229) + methodinvocation : name . '(' argumentlist ')' (230) + postfixexpression : name . (243) + + '.' shift 62 + '(' shift 315 + INSTANCEOF reduce 243 + EQUAL reduce 243 + LESSEQUAL reduce 243 + GREATEREQUAL reduce 243 + NOTEQUAL reduce 243 + LOGICALOR reduce 243 + LOGICALAND reduce 243 + INCREMENT reduce 243 + DECREMENT reduce 243 + ',' reduce 243 + ';' reduce 243 + '*' reduce 243 + '<' reduce 243 + '>' reduce 243 + ')' reduce 243 + '&' reduce 243 + '+' reduce 243 + '-' reduce 243 + '|' reduce 243 + '^' reduce 243 + '/' reduce 243 + '%' reduce 243 + + +state 311 + preincrementexpression : INCREMENT unaryexpression . (225) + + . reduce 225 + + +state 312 + predecrementexpression : DECREMENT unaryexpression . (226) + + . reduce 226 + + +state 313 + lambdaexpressionparameter : '(' ')' . (215) + + . reduce 215 + + +state 314 + formalparameterlist : formalparameterlist . ',' formalparameter (143) + lambdaexpressionparameter : '(' formalparameterlist . ')' (216) + + ',' shift 334 + ')' shift 380 + . error + + +state 315 + methodinvocation : name '(' . ')' (229) + methodinvocation : name '(' . argumentlist ')' (230) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 381 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 382 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + argumentlist goto 383 + methodinvocation goto 284 + castexpression goto 285 + + +state 316 + variabledeclarators : variabledeclarators . ',' variabledeclarator (138) + localvariabledeclaration : type variabledeclarators . (173) + + ',' shift 156 + ';' reduce 173 + + +state 317 + block : '{' blockstatements '}' . (95) + + . reduce 95 + + +state 318 + blockstatements : blockstatements blockstatement . (141) + + . reduce 141 + + +state 319 + localvariabledeclarationstatement : localvariabledeclaration ';' . (163) + + . reduce 163 + + +state 320 + lambdaassignmentoperator : LAMBDAASSIGNMENT . (212) + + . reduce 212 + + +state 321 + lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator . lambdabody (217) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '{' shift 140 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 384 + lambdabody goto 385 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 386 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 322 + methodinvocation : primary '.' . IDENTIFIER '(' ')' (231) + methodinvocation : primary '.' . IDENTIFIER '(' argumentlist ')' (232) + + IDENTIFIER shift 387 + . error + + +state 323 + postincrementexpression : postfixexpression INCREMENT . (227) + + . reduce 227 + + +state 324 + postdecrementexpression : postfixexpression DECREMENT . (228) + + . reduce 228 + + +state 325 + expressionstatement : statementexpression ';' . (193) + + . reduce 193 + + +state 326 + assignmentoperator : PLUSEQUAL . (223) + + . reduce 223 + + +state 327 + assignmentoperator : MINUSEQUAL . (224) + + . reduce 224 + + +state 328 + assignmentoperator : TIMESEQUAL . (220) + + . reduce 220 + + +state 329 + assignmentoperator : DIVIDEEQUAL . (221) + + . reduce 221 + + +state 330 + assignmentoperator : MODULOEQUAL . (222) + + . reduce 222 + + +state 331 + assignmentoperator : '=' . (219) + + . reduce 219 + + +state 332 + assignment : lefthandside assignmentoperator . assignmentexpression (200) + assignment : lefthandside assignmentoperator . classinstancecreationexpression (201) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 388 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 389 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 333 + formalparameter : type variabledeclaratorid . (156) + + . reduce 156 + + +state 334 + formalparameterlist : formalparameterlist ',' . formalparameter (143) + + BOOLEAN shift 2 + CHAR shift 3 + INT shift 6 + IDENTIFIER shift 202 + . error + + variabledeclaratorid goto 243 + simplename goto 18 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 244 + formalparameter goto 390 + + +state 335 + methoddeclarator : IDENTIFIER '(' formalparameterlist ')' . (149) + + . reduce 149 + + +state 336 + boundedMethodParameters : boundedMethodParameters ',' boundedMethodParameter . (111) + + . reduce 111 + + +state 337 + methodheader : genericdeclarationlist VOID methoddeclarator throws . (126) + + . reduce 126 + + +state 338 + methodheader : genericdeclarationlist type methoddeclarator throws . (117) + + . reduce 117 + + +state 339 + fielddeclaration : genericdeclarationlist type fielddeclarator ';' . (89) + + . reduce 89 + + +state 340 + classtypelist : classtypelist ',' . classtype (147) + + IDENTIFIER shift 14 + . error + + simplename goto 18 + classtype goto 391 + classorinterfacetype goto 83 + + +state 341 + classinstancecreationexpression : NEW classtype . '(' ')' (233) + classinstancecreationexpression : NEW classtype . '(' argumentlist ')' (234) + + '(' shift 392 + . error + + +state 342 + type : primitivetype . (133) + type : primitivetype . '[' ']' (134) + castexpression : '(' primitivetype . ')' unaryexpression (266) + + ')' shift 393 + '[' shift 45 + IDENTIFIER reduce 133 + + +state 343 + unaryexpression : '+' unaryexpression . (239) + + . reduce 239 + + +state 344 + unaryexpression : '-' unaryexpression . (240) + + . reduce 240 + + +state 345 + unaryexpressionnotplusminus : '!' unaryexpression . (254) + + . reduce 254 + + +state 346 + multiplicativeexpression : multiplicativeexpression '*' . unaryexpression (283) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 394 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 347 + multiplicativeexpression : multiplicativeexpression '/' . unaryexpression (284) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 395 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 348 + multiplicativeexpression : multiplicativeexpression '%' . unaryexpression (285) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 396 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 349 + additiveexpression : additiveexpression '+' . multiplicativeexpression (280) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 397 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 350 + additiveexpression : additiveexpression '-' . multiplicativeexpression (281) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 398 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 351 + relationalexpression : relationalexpression INSTANCEOF . referencetype (277) + + IDENTIFIER shift 14 + . error + + simplename goto 18 + classorinterfacetype goto 21 + referencetype goto 399 + + +state 352 + relationalexpression : relationalexpression LESSEQUAL . shiftexpression (275) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 400 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 353 + relationalexpression : relationalexpression GREATEREQUAL . shiftexpression (276) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 401 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 354 + relationalexpression : relationalexpression '<' . shiftexpression (273) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 402 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 355 + relationalexpression : relationalexpression '>' . shiftexpression (274) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 403 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 356 + equalityexpression : equalityexpression EQUAL . relationalexpression (270) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 404 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 357 + equalityexpression : equalityexpression NOTEQUAL . relationalexpression (271) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 405 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 358 + andexpression : andexpression '&' . equalityexpression (268) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 406 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 359 + exclusiveorexpression : exclusiveorexpression '^' . andexpression (257) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 407 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 360 + inclusiveorexpression : inclusiveorexpression '|' . exclusiveorexpression (248) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 408 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 361 + conditionalandexpression : conditionalandexpression LOGICALAND . inclusiveorexpression (236) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 409 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 362 + conditionalorexpression : conditionalorexpression LOGICALOR . conditionalandexpression (211) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 410 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 363 + constructordeclarator : simplename '(' formalparameterlist ')' . (97) + + . reduce 97 + + +state 364 + methodheader : modifiers VOID methoddeclarator throws . (123) + + . reduce 123 + + +state 365 + methodheader : modifiers genericdeclarationlist VOID methoddeclarator . (125) + methodheader : modifiers genericdeclarationlist VOID methoddeclarator . throws (127) + + THROWS shift 152 + ';' reduce 125 + '{' reduce 125 + + throws goto 411 + + +state 366 + methodheader : modifiers genericdeclarationlist type methoddeclarator . (115) + methodheader : modifiers genericdeclarationlist type methoddeclarator . throws (119) + + THROWS shift 152 + ';' reduce 115 + '{' reduce 115 + + throws goto 412 + + +state 367 + methodheader : modifiers type methoddeclarator throws . (118) + + . reduce 118 + + +state 368 + fielddeclaration : modifiers type variabledeclarators ';' . (92) + + . reduce 92 + + +state 369 + explicitconstructorinvocation : THIS '(' . ')' ';' (144) + explicitconstructorinvocation : THIS '(' . argumentlist ')' ';' (145) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 413 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 382 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + argumentlist goto 414 + methodinvocation goto 284 + castexpression goto 285 + + +state 370 + constructorbody : '{' blockstatements '}' . (100) + + . reduce 100 + + +state 371 + constructorbody : '{' explicitconstructorinvocation '}' . (99) + + . reduce 99 + + +state 372 + constructorbody : '{' explicitconstructorinvocation blockstatements . '}' (101) + blockstatements : blockstatements . blockstatement (141) + + BOOLEAN shift 2 + CHAR shift 3 + FOR shift 189 + IF shift 190 + INT shift 6 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 202 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '}' shift 415 + '(' shift 207 + . error + + variabledeclarators goto 208 + variabledeclarator goto 209 + variabledeclaratorid goto 102 + simplename goto 210 + qualifiedname goto 35 + name goto 211 + classorinterfacetype goto 21 + integraltype goto 22 + numerictype goto 23 + primitivetype goto 24 + referencetype goto 25 + type goto 212 + block goto 213 + localvariabledeclarationstatement goto 215 + localvariabledeclaration goto 216 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + blockstatement goto 318 + statement goto 231 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 373 + constantdeclaration : modifiers type IDENTIFIER '=' . expression ';' (83) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 416 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 374 + boundedclassidentifierlist : boundedclassidentifierlist '&' referencetype . (109) + + . reduce 109 + + +state 375 + forstatement : FOR '(' ';' . expression ';' expression ')' statement (185) + forstatement : FOR '(' ';' . expression ';' ')' statement (187) + forstatement : FOR '(' ';' . ';' expression ')' statement (188) + forstatement : FOR '(' ';' . ';' ')' statement (189) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 417 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 418 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 376 + forstatement : FOR '(' expression . ';' expression ';' expression ')' statement (182) + forstatement : FOR '(' expression . ';' expression ';' ')' statement (183) + forstatement : FOR '(' expression . ';' ';' expression ')' statement (184) + forstatement : FOR '(' expression . ';' ';' ')' statement (186) + + ';' shift 419 + . error + + +state 377 + ifthenstatement : IF '(' expression . ')' statement (179) + ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (180) + + ')' shift 420 + . error + + +state 378 + returnstatement : RETURN expression ';' . (195) + + . reduce 195 + + +state 379 + whilestatement : WHILE '(' expression . ')' statement (181) + + ')' shift 421 + . error + + +state 380 + lambdaexpressionparameter : '(' formalparameterlist ')' . (216) + + . reduce 216 + + +state 381 + methodinvocation : name '(' ')' . (229) + + . reduce 229 + + +state 382 + argumentlist : expression . (158) + + . reduce 158 + + +state 383 + argumentlist : argumentlist . ',' expression (159) + methodinvocation : name '(' argumentlist . ')' (230) + + ',' shift 422 + ')' shift 423 + . error + + +state 384 + lambdabody : block . (213) + + . reduce 213 + + +state 385 + lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody . (217) + + . reduce 217 + + +state 386 + lambdabody : expression . (214) + + . reduce 214 + + +state 387 + methodinvocation : primary '.' IDENTIFIER . '(' ')' (231) + methodinvocation : primary '.' IDENTIFIER . '(' argumentlist ')' (232) + + '(' shift 424 + . error + + +state 388 + assignment : lefthandside assignmentoperator assignmentexpression . (200) + + . reduce 200 + + +state 389 + assignment : lefthandside assignmentoperator classinstancecreationexpression . (201) + + . reduce 201 + + +state 390 + formalparameterlist : formalparameterlist ',' formalparameter . (143) . reduce 143 -state 430 - explicitconstructorinvocation : THIS '(' argumentlist ')' . ';' (144) +state 391 + classtypelist : classtypelist ',' classtype . (147) - ';' shift 451 + . reduce 147 + + +state 392 + classinstancecreationexpression : NEW classtype '(' . ')' (233) + classinstancecreationexpression : NEW classtype '(' . argumentlist ')' (234) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 425 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 382 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + argumentlist goto 426 + methodinvocation goto 284 + castexpression goto 285 + + +state 393 + castexpression : '(' primitivetype ')' . unaryexpression (266) + + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 310 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 427 + lambdaexpression goto 222 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + methodinvocation goto 284 + castexpression goto 285 + + +state 394 + multiplicativeexpression : multiplicativeexpression '*' unaryexpression . (283) + + . reduce 283 + + +state 395 + multiplicativeexpression : multiplicativeexpression '/' unaryexpression . (284) + + . reduce 284 + + +state 396 + multiplicativeexpression : multiplicativeexpression '%' unaryexpression . (285) + + . reduce 285 + + +397: shift/reduce conflict (shift 346, reduce 280) on '*' +397: shift/reduce conflict (shift 347, reduce 280) on '/' +397: shift/reduce conflict (shift 348, reduce 280) on '%' +state 397 + additiveexpression : additiveexpression '+' multiplicativeexpression . (280) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (283) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (284) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (285) + + '*' shift 346 + '/' shift 347 + '%' shift 348 + INSTANCEOF reduce 280 + EQUAL reduce 280 + LESSEQUAL reduce 280 + GREATEREQUAL reduce 280 + NOTEQUAL reduce 280 + LOGICALOR reduce 280 + LOGICALAND reduce 280 + INCREMENT reduce 280 + DECREMENT reduce 280 + ',' reduce 280 + ';' reduce 280 + '.' reduce 280 + '<' reduce 280 + '>' reduce 280 + ')' reduce 280 + '&' reduce 280 + '+' reduce 280 + '-' reduce 280 + '|' reduce 280 + '^' reduce 280 + + +398: shift/reduce conflict (shift 346, reduce 281) on '*' +398: shift/reduce conflict (shift 347, reduce 281) on '/' +398: shift/reduce conflict (shift 348, reduce 281) on '%' +state 398 + additiveexpression : additiveexpression '-' multiplicativeexpression . (281) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (283) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (284) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (285) + + '*' shift 346 + '/' shift 347 + '%' shift 348 + INSTANCEOF reduce 281 + EQUAL reduce 281 + LESSEQUAL reduce 281 + GREATEREQUAL reduce 281 + NOTEQUAL reduce 281 + LOGICALOR reduce 281 + LOGICALAND reduce 281 + INCREMENT reduce 281 + DECREMENT reduce 281 + ',' reduce 281 + ';' reduce 281 + '.' reduce 281 + '<' reduce 281 + '>' reduce 281 + ')' reduce 281 + '&' reduce 281 + '+' reduce 281 + '-' reduce 281 + '|' reduce 281 + '^' reduce 281 + + +state 399 + relationalexpression : relationalexpression INSTANCEOF referencetype . (277) + + . reduce 277 + + +state 400 + relationalexpression : relationalexpression LESSEQUAL shiftexpression . (275) + + . reduce 275 + + +state 401 + relationalexpression : relationalexpression GREATEREQUAL shiftexpression . (276) + + . reduce 276 + + +state 402 + relationalexpression : relationalexpression '<' shiftexpression . (273) + + . reduce 273 + + +state 403 + relationalexpression : relationalexpression '>' shiftexpression . (274) + + . reduce 274 + + +404: shift/reduce conflict (shift 351, reduce 270) on INSTANCEOF +404: shift/reduce conflict (shift 352, reduce 270) on LESSEQUAL +404: shift/reduce conflict (shift 353, reduce 270) on GREATEREQUAL +404: shift/reduce conflict (shift 354, reduce 270) on '<' +404: shift/reduce conflict (shift 355, reduce 270) on '>' +state 404 + equalityexpression : equalityexpression EQUAL relationalexpression . (270) + relationalexpression : relationalexpression . '<' shiftexpression (273) + relationalexpression : relationalexpression . '>' shiftexpression (274) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (275) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (276) + relationalexpression : relationalexpression . INSTANCEOF referencetype (277) + + INSTANCEOF shift 351 + LESSEQUAL shift 352 + GREATEREQUAL shift 353 + '<' shift 354 + '>' shift 355 + EQUAL reduce 270 + NOTEQUAL reduce 270 + LOGICALOR reduce 270 + LOGICALAND reduce 270 + INCREMENT reduce 270 + DECREMENT reduce 270 + ',' reduce 270 + ';' reduce 270 + '.' reduce 270 + '*' reduce 270 + ')' reduce 270 + '&' reduce 270 + '+' reduce 270 + '-' reduce 270 + '|' reduce 270 + '^' reduce 270 + '/' reduce 270 + '%' reduce 270 + + +405: shift/reduce conflict (shift 351, reduce 271) on INSTANCEOF +405: shift/reduce conflict (shift 352, reduce 271) on LESSEQUAL +405: shift/reduce conflict (shift 353, reduce 271) on GREATEREQUAL +405: shift/reduce conflict (shift 354, reduce 271) on '<' +405: shift/reduce conflict (shift 355, reduce 271) on '>' +state 405 + equalityexpression : equalityexpression NOTEQUAL relationalexpression . (271) + relationalexpression : relationalexpression . '<' shiftexpression (273) + relationalexpression : relationalexpression . '>' shiftexpression (274) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (275) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (276) + relationalexpression : relationalexpression . INSTANCEOF referencetype (277) + + INSTANCEOF shift 351 + LESSEQUAL shift 352 + GREATEREQUAL shift 353 + '<' shift 354 + '>' shift 355 + EQUAL reduce 271 + NOTEQUAL reduce 271 + LOGICALOR reduce 271 + LOGICALAND reduce 271 + INCREMENT reduce 271 + DECREMENT reduce 271 + ',' reduce 271 + ';' reduce 271 + '.' reduce 271 + '*' reduce 271 + ')' reduce 271 + '&' reduce 271 + '+' reduce 271 + '-' reduce 271 + '|' reduce 271 + '^' reduce 271 + '/' reduce 271 + '%' reduce 271 + + +406: shift/reduce conflict (shift 356, reduce 268) on EQUAL +406: shift/reduce conflict (shift 357, reduce 268) on NOTEQUAL +state 406 + andexpression : andexpression '&' equalityexpression . (268) + equalityexpression : equalityexpression . EQUAL relationalexpression (270) + equalityexpression : equalityexpression . NOTEQUAL relationalexpression (271) + + EQUAL shift 356 + NOTEQUAL shift 357 + INSTANCEOF reduce 268 + LESSEQUAL reduce 268 + GREATEREQUAL reduce 268 + LOGICALOR reduce 268 + LOGICALAND reduce 268 + INCREMENT reduce 268 + DECREMENT reduce 268 + ',' reduce 268 + ';' reduce 268 + '.' reduce 268 + '*' reduce 268 + '<' reduce 268 + '>' reduce 268 + ')' reduce 268 + '&' reduce 268 + '+' reduce 268 + '-' reduce 268 + '|' reduce 268 + '^' reduce 268 + '/' reduce 268 + '%' reduce 268 + + +407: shift/reduce conflict (shift 358, reduce 257) on '&' +state 407 + exclusiveorexpression : exclusiveorexpression '^' andexpression . (257) + andexpression : andexpression . '&' equalityexpression (268) + + '&' shift 358 + INSTANCEOF reduce 257 + EQUAL reduce 257 + LESSEQUAL reduce 257 + GREATEREQUAL reduce 257 + NOTEQUAL reduce 257 + LOGICALOR reduce 257 + LOGICALAND reduce 257 + INCREMENT reduce 257 + DECREMENT reduce 257 + ',' reduce 257 + ';' reduce 257 + '.' reduce 257 + '*' reduce 257 + '<' reduce 257 + '>' reduce 257 + ')' reduce 257 + '+' reduce 257 + '-' reduce 257 + '|' reduce 257 + '^' reduce 257 + '/' reduce 257 + '%' reduce 257 + + +408: shift/reduce conflict (shift 359, reduce 248) on '^' +state 408 + inclusiveorexpression : inclusiveorexpression '|' exclusiveorexpression . (248) + exclusiveorexpression : exclusiveorexpression . '^' andexpression (257) + + '^' shift 359 + INSTANCEOF reduce 248 + EQUAL reduce 248 + LESSEQUAL reduce 248 + GREATEREQUAL reduce 248 + NOTEQUAL reduce 248 + LOGICALOR reduce 248 + LOGICALAND reduce 248 + INCREMENT reduce 248 + DECREMENT reduce 248 + ',' reduce 248 + ';' reduce 248 + '.' reduce 248 + '*' reduce 248 + '<' reduce 248 + '>' reduce 248 + ')' reduce 248 + '&' reduce 248 + '+' reduce 248 + '-' reduce 248 + '|' reduce 248 + '/' reduce 248 + '%' reduce 248 + + +409: shift/reduce conflict (shift 360, reduce 236) on '|' +state 409 + conditionalandexpression : conditionalandexpression LOGICALAND inclusiveorexpression . (236) + inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (248) + + '|' shift 360 + INSTANCEOF reduce 236 + EQUAL reduce 236 + LESSEQUAL reduce 236 + GREATEREQUAL reduce 236 + NOTEQUAL reduce 236 + LOGICALOR reduce 236 + LOGICALAND reduce 236 + INCREMENT reduce 236 + DECREMENT reduce 236 + ',' reduce 236 + ';' reduce 236 + '.' reduce 236 + '*' reduce 236 + '<' reduce 236 + '>' reduce 236 + ')' reduce 236 + '&' reduce 236 + '+' reduce 236 + '-' reduce 236 + '^' reduce 236 + '/' reduce 236 + '%' reduce 236 + + +410: shift/reduce conflict (shift 361, reduce 211) on LOGICALAND +state 410 + conditionalorexpression : conditionalorexpression LOGICALOR conditionalandexpression . (211) + conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (236) + + LOGICALAND shift 361 + INSTANCEOF reduce 211 + EQUAL reduce 211 + LESSEQUAL reduce 211 + GREATEREQUAL reduce 211 + NOTEQUAL reduce 211 + LOGICALOR reduce 211 + INCREMENT reduce 211 + DECREMENT reduce 211 + ',' reduce 211 + ';' reduce 211 + '.' reduce 211 + '*' reduce 211 + '<' reduce 211 + '>' reduce 211 + ')' reduce 211 + '&' reduce 211 + '+' reduce 211 + '-' reduce 211 + '|' reduce 211 + '^' reduce 211 + '/' reduce 211 + '%' reduce 211 + + +state 411 + methodheader : modifiers genericdeclarationlist VOID methoddeclarator throws . (127) + + . reduce 127 + + +state 412 + methodheader : modifiers genericdeclarationlist type methoddeclarator throws . (119) + + . reduce 119 + + +state 413 + explicitconstructorinvocation : THIS '(' ')' . ';' (144) + + ';' shift 428 . error -state 431 +state 414 + explicitconstructorinvocation : THIS '(' argumentlist . ')' ';' (145) + argumentlist : argumentlist . ',' expression (159) + + ',' shift 422 + ')' shift 429 + . error + + +state 415 + constructorbody : '{' explicitconstructorinvocation blockstatements '}' . (101) + + . reduce 101 + + +state 416 + constantdeclaration : modifiers type IDENTIFIER '=' expression . ';' (83) + + ';' shift 430 + . error + + +state 417 + forstatement : FOR '(' ';' ';' . expression ')' statement (188) + forstatement : FOR '(' ';' ';' . ')' statement (189) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 431 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 432 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 418 + forstatement : FOR '(' ';' expression . ';' expression ')' statement (185) + forstatement : FOR '(' ';' expression . ';' ')' statement (187) + + ';' shift 433 + . error + + +state 419 + forstatement : FOR '(' expression ';' . expression ';' expression ')' statement (182) + forstatement : FOR '(' expression ';' . expression ';' ')' statement (183) + forstatement : FOR '(' expression ';' . ';' expression ')' statement (184) + forstatement : FOR '(' expression ';' . ';' ')' statement (186) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 434 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 435 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 420 + ifthenstatement : IF '(' expression ')' . statement (179) + ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (180) + + FOR shift 189 + IF shift 436 + RETURN shift 191 + THIS shift 192 + WHILE shift 437 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 438 + statement goto 439 + statementnoshortif goto 440 + whilestatement goto 232 + forstatement goto 233 + whilestatementnoshortif goto 441 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + ifthenelsestatementnoshortif goto 442 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 421 + whilestatement : WHILE '(' expression ')' . statement (181) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 443 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 422 + argumentlist : argumentlist ',' . expression (159) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 444 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 423 + methodinvocation : name '(' argumentlist ')' . (230) + + . reduce 230 + + +state 424 + methodinvocation : primary '.' IDENTIFIER '(' . ')' (231) + methodinvocation : primary '.' IDENTIFIER '(' . argumentlist ')' (232) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 445 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 382 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + argumentlist goto 446 + methodinvocation goto 284 + castexpression goto 285 + + +state 425 + classinstancecreationexpression : NEW classtype '(' ')' . (233) + + . reduce 233 + + +state 426 + argumentlist : argumentlist . ',' expression (159) + classinstancecreationexpression : NEW classtype '(' argumentlist . ')' (234) + + ',' shift 422 + ')' shift 447 + . error + + +state 427 + castexpression : '(' primitivetype ')' unaryexpression . (266) + + . reduce 266 + + +state 428 + explicitconstructorinvocation : THIS '(' ')' ';' . (144) + + . reduce 144 + + +state 429 + explicitconstructorinvocation : THIS '(' argumentlist ')' . ';' (145) + + ';' shift 448 + . error + + +state 430 constantdeclaration : modifiers type IDENTIFIER '=' expression ';' . (83) . reduce 83 -state 432 - forstatement : FOR '(' ';' ';' ')' . statement (188) +state 431 + forstatement : FOR '(' ';' ';' ')' . statement (189) - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 . error simplename goto 34 qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 452 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 449 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 432 + forstatement : FOR '(' ';' ';' expression . ')' statement (188) + + ')' shift 450 + . error state 433 - forstatement : FOR '(' ';' ';' expression . ')' statement (187) + forstatement : FOR '(' ';' expression ';' . expression ')' statement (185) + forstatement : FOR '(' ';' expression ';' . ')' statement (187) - ')' shift 453 + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 451 + '+' shift 259 + '-' shift 260 + '!' shift 261 . error + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 452 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + state 434 - forstatement : FOR '(' ';' expression ';' . expression ')' statement (184) - forstatement : FOR '(' ';' expression ';' . ')' statement (186) + forstatement : FOR '(' expression ';' ';' . expression ')' statement (184) + forstatement : FOR '(' expression ';' ';' . ')' statement (186) - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 454 - '+' shift 251 - '-' shift 252 - '!' shift 253 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 453 + '+' shift 259 + '-' shift 260 + '!' shift 261 . error simplename goto 34 qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 455 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 454 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 state 435 - forstatement : FOR '(' expression ';' ';' . expression ')' statement (183) - forstatement : FOR '(' expression ';' ';' . ')' statement (185) + forstatement : FOR '(' expression ';' expression . ';' expression ')' statement (182) + forstatement : FOR '(' expression ';' expression . ';' ')' statement (183) - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 456 - '+' shift 251 - '-' shift 252 - '!' shift 253 + ';' shift 455 . error - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 457 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - state 436 - forstatement : FOR '(' expression ';' expression . ';' expression ')' statement (181) - forstatement : FOR '(' expression ';' expression . ';' ')' statement (182) + ifthenstatement : IF . '(' expression ')' statement (179) + ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (180) + ifthenelsestatementnoshortif : IF . '(' expression ')' statementnoshortif ELSE statementnoshortif (208) - ';' shift 458 + '(' shift 456 . error state 437 - ifthenstatement : IF . '(' expression ')' statement (178) - ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (179) - ifthenelsestatementnoshortif : IF . '(' expression ')' statementnoshortif ELSE statementnoshortif (207) + whilestatement : WHILE . '(' expression ')' statement (181) + whilestatementnoshortif : WHILE . '(' expression ')' statementnoshortif (209) - '(' shift 459 + '(' shift 457 . error state 438 - whilestatement : WHILE . '(' expression ')' statement (180) - whilestatementnoshortif : WHILE . '(' expression ')' statementnoshortif (208) + statement : statementwithouttrailingsubstatement . (164) + statementnoshortif : statementwithouttrailingsubstatement . (196) - '(' shift 460 - . error + BOOLEAN reduce 164 + CHAR reduce 164 + ELSE reduce 196 + FOR reduce 164 + IF reduce 164 + INT reduce 164 + RETURN reduce 164 + THIS reduce 164 + WHILE reduce 164 + INTLITERAL reduce 164 + LONGLITERAL reduce 164 + DOUBLELITERAL reduce 164 + FLOATLITERAL reduce 164 + BOOLLITERAL reduce 164 + JNULL reduce 164 + CHARLITERAL reduce 164 + STRINGLITERAL reduce 164 + IDENTIFIER reduce 164 + INCREMENT reduce 164 + DECREMENT reduce 164 + ';' reduce 164 + '{' reduce 164 + '}' reduce 164 + '(' reduce 164 state 439 - statement : statementwithouttrailingsubstatement . (163) - statementnoshortif : statementwithouttrailingsubstatement . (195) + ifthenstatement : IF '(' expression ')' statement . (179) - BOOLEAN reduce 163 - CHAR reduce 163 - ELSE reduce 195 - FOR reduce 163 - IF reduce 163 - INT reduce 163 - RETURN reduce 163 - THIS reduce 163 - WHILE reduce 163 - INTLITERAL reduce 163 - LONGLITERAL reduce 163 - DOUBLELITERAL reduce 163 - FLOATLITERAL reduce 163 - BOOLLITERAL reduce 163 - JNULL reduce 163 - CHARLITERAL reduce 163 - STRINGLITERAL reduce 163 - IDENTIFIER reduce 163 - INCREMENT reduce 163 - DECREMENT reduce 163 - ';' reduce 163 - '{' reduce 163 - '}' reduce 163 - '(' reduce 163 + . reduce 179 state 440 - ifthenstatement : IF '(' expression ')' statement . (178) + ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (180) - . reduce 178 - - -state 441 - ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (179) - - ELSE shift 461 + ELSE shift 458 . error +state 441 + statementnoshortif : whilestatementnoshortif . (198) + + . reduce 198 + + state 442 - statementnoshortif : whilestatementnoshortif . (197) + statementnoshortif : ifthenelsestatementnoshortif . (197) . reduce 197 state 443 - statementnoshortif : ifthenelsestatementnoshortif . (196) - - . reduce 196 - - -state 444 - whilestatement : WHILE '(' expression ')' statement . (180) - - . reduce 180 - - -state 445 - argumentlist : argumentlist ',' expression . (158) - - . reduce 158 - - -state 446 - methodinvocation : primary '.' IDENTIFIER '(' ')' . (230) - - . reduce 230 - - -state 447 - argumentlist : argumentlist . ',' expression (158) - methodinvocation : primary '.' IDENTIFIER '(' argumentlist . ')' (231) - - ',' shift 418 - ')' shift 462 - . error - - -state 448 - classinstancecreationexpression : NEW classtype '(' argumentlist ')' . (233) - - . reduce 233 - - -state 449 - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws . (126) - - . reduce 126 - - -state 450 - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator throws . (118) - - . reduce 118 - - -state 451 - explicitconstructorinvocation : THIS '(' argumentlist ')' ';' . (144) - - . reduce 144 - - -state 452 - forstatement : FOR '(' ';' ';' ')' statement . (188) - - . reduce 188 - - -state 453 - forstatement : FOR '(' ';' ';' expression ')' . statement (187) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 463 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 454 - forstatement : FOR '(' ';' expression ';' ')' . statement (186) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 464 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 455 - forstatement : FOR '(' ';' expression ';' expression . ')' statement (184) - - ')' shift 465 - . error - - -state 456 - forstatement : FOR '(' expression ';' ';' ')' . statement (185) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 466 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 457 - forstatement : FOR '(' expression ';' ';' expression . ')' statement (183) - - ')' shift 467 - . error - - -state 458 - forstatement : FOR '(' expression ';' expression ';' . expression ')' statement (181) - forstatement : FOR '(' expression ';' expression ';' . ')' statement (182) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - ')' shift 468 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 469 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 459 - ifthenstatement : IF '(' . expression ')' statement (178) - ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (179) - ifthenelsestatementnoshortif : IF '(' . expression ')' statementnoshortif ELSE statementnoshortif (207) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 470 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 460 - whilestatement : WHILE '(' . expression ')' statement (180) - whilestatementnoshortif : WHILE '(' . expression ')' statementnoshortif (208) - - NEW shift 249 - THIS shift 188 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - '(' shift 250 - '+' shift 251 - '-' shift 252 - '!' shift 253 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 254 - unaryexpressionnotplusminus goto 255 - unaryexpression goto 256 - multiplicativeexpression goto 257 - additiveexpression goto 258 - shiftexpression goto 259 - relationalexpression goto 260 - equalityexpression goto 261 - andexpression goto 262 - exclusiveorexpression goto 263 - inclusiveorexpression goto 264 - conditionalandexpression goto 265 - conditionalorexpression goto 266 - conditionalexpression goto 267 - assignmentexpression goto 268 - lambdaexpression goto 218 - expression goto 471 - preincrementexpression goto 270 - predecrementexpression goto 271 - postincrementexpression goto 272 - postdecrementexpression goto 273 - classinstancecreationexpression goto 274 - assignment goto 275 - lefthandside goto 235 - methodinvocation goto 276 - castexpression goto 277 - - -state 461 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (179) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 472 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 462 - methodinvocation : primary '.' IDENTIFIER '(' argumentlist ')' . (231) - - . reduce 231 - - -state 463 - forstatement : FOR '(' ';' ';' expression ')' statement . (187) - - . reduce 187 - - -state 464 - forstatement : FOR '(' ';' expression ';' ')' statement . (186) - - . reduce 186 - - -state 465 - forstatement : FOR '(' ';' expression ';' expression ')' . statement (184) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 473 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 466 - forstatement : FOR '(' expression ';' ';' ')' statement . (185) - - . reduce 185 - - -state 467 - forstatement : FOR '(' expression ';' ';' expression ')' . statement (183) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 474 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 468 - forstatement : FOR '(' expression ';' expression ';' ')' . statement (182) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 475 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 469 - forstatement : FOR '(' expression ';' expression ';' expression . ')' statement (181) - - ')' shift 476 - . error - - -state 470 - ifthenstatement : IF '(' expression . ')' statement (178) - ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (179) - ifthenelsestatementnoshortif : IF '(' expression . ')' statementnoshortif ELSE statementnoshortif (207) - - ')' shift 477 - . error - - -state 471 - whilestatement : WHILE '(' expression . ')' statement (180) - whilestatementnoshortif : WHILE '(' expression . ')' statementnoshortif (208) - - ')' shift 478 - . error - - -state 472 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement . (179) - - . reduce 179 - - -state 473 - forstatement : FOR '(' ';' expression ';' expression ')' statement . (184) - - . reduce 184 - - -state 474 - forstatement : FOR '(' expression ';' ';' expression ')' statement . (183) - - . reduce 183 - - -state 475 - forstatement : FOR '(' expression ';' expression ';' ')' statement . (182) - - . reduce 182 - - -state 476 - forstatement : FOR '(' expression ';' expression ';' expression ')' . statement (181) - - FOR shift 185 - IF shift 186 - RETURN shift 187 - THIS shift 188 - WHILE shift 189 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 225 - statement goto 479 - whilestatement goto 228 - forstatement goto 229 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 477 - ifthenstatement : IF '(' expression ')' . statement (178) - ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (179) - ifthenelsestatementnoshortif : IF '(' expression ')' . statementnoshortif ELSE statementnoshortif (207) - - FOR shift 185 - IF shift 437 - RETURN shift 187 - THIS shift 188 - WHILE shift 438 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 439 - statement goto 440 - statementnoshortif goto 480 - whilestatement goto 228 - forstatement goto 229 - whilestatementnoshortif goto 442 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - ifthenelsestatementnoshortif goto 443 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 478 - whilestatement : WHILE '(' expression ')' . statement (180) - whilestatementnoshortif : WHILE '(' expression ')' . statementnoshortif (208) - - FOR shift 185 - IF shift 437 - RETURN shift 187 - THIS shift 188 - WHILE shift 438 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 - IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 - . error - - simplename goto 34 - qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 439 - statement goto 444 - statementnoshortif goto 481 - whilestatement goto 228 - forstatement goto 229 - whilestatementnoshortif goto 442 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - ifthenelsestatementnoshortif goto 443 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 - - -state 479 - forstatement : FOR '(' expression ';' expression ';' expression ')' statement . (181) + whilestatement : WHILE '(' expression ')' statement . (181) . reduce 181 -state 480 - ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (179) - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif . ELSE statementnoshortif (207) +state 444 + argumentlist : argumentlist ',' expression . (159) - ELSE shift 482 + . reduce 159 + + +state 445 + methodinvocation : primary '.' IDENTIFIER '(' ')' . (231) + + . reduce 231 + + +state 446 + argumentlist : argumentlist . ',' expression (159) + methodinvocation : primary '.' IDENTIFIER '(' argumentlist . ')' (232) + + ',' shift 422 + ')' shift 459 . error -state 481 - whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif . (208) +state 447 + classinstancecreationexpression : NEW classtype '(' argumentlist ')' . (234) - . reduce 208 + . reduce 234 -state 482 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (179) - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE . statementnoshortif (207) +state 448 + explicitconstructorinvocation : THIS '(' argumentlist ')' ';' . (145) - FOR shift 185 - IF shift 437 - RETURN shift 187 - THIS shift 188 - WHILE shift 438 - INTLITERAL shift 190 - LONGLITERAL shift 191 - DOUBLELITERAL shift 192 - FLOATLITERAL shift 193 - BOOLLITERAL shift 194 - JNULL shift 195 - CHARLITERAL shift 196 - STRINGLITERAL shift 197 + . reduce 145 + + +state 449 + forstatement : FOR '(' ';' ';' ')' statement . (189) + + . reduce 189 + + +state 450 + forstatement : FOR '(' ';' ';' expression ')' . statement (188) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 IDENTIFIER shift 14 - INCREMENT shift 199 - DECREMENT shift 200 - ';' shift 201 - '{' shift 139 - '(' shift 203 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 . error simplename goto 34 qualifiedname goto 35 - name goto 207 - block goto 209 - lambdaexpressionparameter goto 213 - literal goto 214 - primarynonewarray goto 215 - primary goto 216 - postfixexpression goto 217 - lambdaexpression goto 218 - statementexpression goto 219 - preincrementexpression goto 220 - predecrementexpression goto 221 - postincrementexpression goto 222 - postdecrementexpression goto 223 - expressionstatement goto 224 - statementwithouttrailingsubstatement goto 439 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 460 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 451 + forstatement : FOR '(' ';' expression ';' ')' . statement (187) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 461 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 452 + forstatement : FOR '(' ';' expression ';' expression . ')' statement (185) + + ')' shift 462 + . error + + +state 453 + forstatement : FOR '(' expression ';' ';' ')' . statement (186) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 463 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 454 + forstatement : FOR '(' expression ';' ';' expression . ')' statement (184) + + ')' shift 464 + . error + + +state 455 + forstatement : FOR '(' expression ';' expression ';' . expression ')' statement (182) + forstatement : FOR '(' expression ';' expression ';' . ')' statement (183) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + ')' shift 465 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 466 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 456 + ifthenstatement : IF '(' . expression ')' statement (179) + ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (180) + ifthenelsestatementnoshortif : IF '(' . expression ')' statementnoshortif ELSE statementnoshortif (208) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 467 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 457 + whilestatement : WHILE '(' . expression ')' statement (181) + whilestatementnoshortif : WHILE '(' . expression ')' statementnoshortif (209) + + NEW shift 257 + THIS shift 192 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + '(' shift 258 + '+' shift 259 + '-' shift 260 + '!' shift 261 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 262 + unaryexpressionnotplusminus goto 263 + unaryexpression goto 264 + multiplicativeexpression goto 265 + additiveexpression goto 266 + shiftexpression goto 267 + relationalexpression goto 268 + equalityexpression goto 269 + andexpression goto 270 + exclusiveorexpression goto 271 + inclusiveorexpression goto 272 + conditionalandexpression goto 273 + conditionalorexpression goto 274 + conditionalexpression goto 275 + assignmentexpression goto 276 + lambdaexpression goto 222 + expression goto 468 + preincrementexpression goto 278 + predecrementexpression goto 279 + postincrementexpression goto 280 + postdecrementexpression goto 281 + classinstancecreationexpression goto 282 + assignment goto 283 + lefthandside goto 239 + methodinvocation goto 284 + castexpression goto 285 + + +state 458 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (180) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 469 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 459 + methodinvocation : primary '.' IDENTIFIER '(' argumentlist ')' . (232) + + . reduce 232 + + +state 460 + forstatement : FOR '(' ';' ';' expression ')' statement . (188) + + . reduce 188 + + +state 461 + forstatement : FOR '(' ';' expression ';' ')' statement . (187) + + . reduce 187 + + +state 462 + forstatement : FOR '(' ';' expression ';' expression ')' . statement (185) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 470 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 463 + forstatement : FOR '(' expression ';' ';' ')' statement . (186) + + . reduce 186 + + +state 464 + forstatement : FOR '(' expression ';' ';' expression ')' . statement (184) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 471 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 465 + forstatement : FOR '(' expression ';' expression ';' ')' . statement (183) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 statement goto 472 - statementnoshortif goto 483 - whilestatement goto 228 - forstatement goto 229 - whilestatementnoshortif goto 442 - ifthenstatement goto 230 - ifthenelsestatement goto 231 - ifthenelsestatementnoshortif goto 443 - emptystatement goto 232 - returnstatement goto 233 - assignment goto 234 - lefthandside goto 235 - methodinvocation goto 236 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 -state 483 - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif . (207) +state 466 + forstatement : FOR '(' expression ';' expression ';' expression . ')' statement (182) - . reduce 207 + ')' shift 473 + . error + + +state 467 + ifthenstatement : IF '(' expression . ')' statement (179) + ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (180) + ifthenelsestatementnoshortif : IF '(' expression . ')' statementnoshortif ELSE statementnoshortif (208) + + ')' shift 474 + . error + + +state 468 + whilestatement : WHILE '(' expression . ')' statement (181) + whilestatementnoshortif : WHILE '(' expression . ')' statementnoshortif (209) + + ')' shift 475 + . error + + +state 469 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement . (180) + + . reduce 180 + + +state 470 + forstatement : FOR '(' ';' expression ';' expression ')' statement . (185) + + . reduce 185 + + +state 471 + forstatement : FOR '(' expression ';' ';' expression ')' statement . (184) + + . reduce 184 + + +state 472 + forstatement : FOR '(' expression ';' expression ';' ')' statement . (183) + + . reduce 183 + + +state 473 + forstatement : FOR '(' expression ';' expression ';' expression ')' . statement (182) + + FOR shift 189 + IF shift 190 + RETURN shift 191 + THIS shift 192 + WHILE shift 193 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 229 + statement goto 476 + whilestatement goto 232 + forstatement goto 233 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 474 + ifthenstatement : IF '(' expression ')' . statement (179) + ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (180) + ifthenelsestatementnoshortif : IF '(' expression ')' . statementnoshortif ELSE statementnoshortif (208) + + FOR shift 189 + IF shift 436 + RETURN shift 191 + THIS shift 192 + WHILE shift 437 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 438 + statement goto 439 + statementnoshortif goto 477 + whilestatement goto 232 + forstatement goto 233 + whilestatementnoshortif goto 441 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + ifthenelsestatementnoshortif goto 442 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 475 + whilestatement : WHILE '(' expression ')' . statement (181) + whilestatementnoshortif : WHILE '(' expression ')' . statementnoshortif (209) + + FOR shift 189 + IF shift 436 + RETURN shift 191 + THIS shift 192 + WHILE shift 437 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 438 + statement goto 443 + statementnoshortif goto 478 + whilestatement goto 232 + forstatement goto 233 + whilestatementnoshortif goto 441 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + ifthenelsestatementnoshortif goto 442 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 476 + forstatement : FOR '(' expression ';' expression ';' expression ')' statement . (182) + + . reduce 182 + + +state 477 + ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (180) + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif . ELSE statementnoshortif (208) + + ELSE shift 479 + . error + + +state 478 + whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif . (209) + + . reduce 209 + + +state 479 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (180) + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE . statementnoshortif (208) + + FOR shift 189 + IF shift 436 + RETURN shift 191 + THIS shift 192 + WHILE shift 437 + INTLITERAL shift 194 + LONGLITERAL shift 195 + DOUBLELITERAL shift 196 + FLOATLITERAL shift 197 + BOOLLITERAL shift 198 + JNULL shift 199 + CHARLITERAL shift 200 + STRINGLITERAL shift 201 + IDENTIFIER shift 14 + INCREMENT shift 203 + DECREMENT shift 204 + ';' shift 205 + '{' shift 140 + '(' shift 207 + . error + + simplename goto 34 + qualifiedname goto 35 + name goto 211 + block goto 213 + lambdaexpressionparameter goto 217 + literal goto 218 + primarynonewarray goto 219 + primary goto 220 + postfixexpression goto 221 + lambdaexpression goto 222 + statementexpression goto 223 + preincrementexpression goto 224 + predecrementexpression goto 225 + postincrementexpression goto 226 + postdecrementexpression goto 227 + expressionstatement goto 228 + statementwithouttrailingsubstatement goto 438 + statement goto 469 + statementnoshortif goto 480 + whilestatement goto 232 + forstatement goto 233 + whilestatementnoshortif goto 441 + ifthenstatement goto 234 + ifthenelsestatement goto 235 + ifthenelsestatementnoshortif goto 442 + emptystatement goto 236 + returnstatement goto 237 + assignment goto 238 + lefthandside goto 239 + methodinvocation goto 240 + + +state 480 + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif . (208) + + . reduce 208 Rules never reduced: @@ -8164,35 +8119,35 @@ Rules never reduced: wildcardparameter : '?' (42) wildcardparameter : '?' EXTENDS referencetype (43) wildcardparameter : '?' SUPER referencetype (44) - variableinitializer : expression (161) + variableinitializer : expression (162) State 18 contains 1 shift/reduce conflict. State 88 contains 1 shift/reduce conflict. -State 117 contains 1 shift/reduce conflict. -State 207 contains 1 shift/reduce conflict. -State 216 contains 1 shift/reduce conflict. -State 254 contains 2 shift/reduce conflicts. -State 257 contains 3 shift/reduce conflicts. -State 258 contains 2 shift/reduce conflicts. -State 260 contains 5 shift/reduce conflicts. -State 261 contains 2 shift/reduce conflicts. -State 262 contains 1 shift/reduce conflict. -State 263 contains 1 shift/reduce conflict. -State 264 contains 1 shift/reduce conflict. -State 265 contains 1 shift/reduce conflict. -State 266 contains 1 shift/reduce conflict. -State 302 contains 1 shift/reduce conflict. -State 393 contains 3 shift/reduce conflicts. -State 394 contains 3 shift/reduce conflicts. -State 400 contains 5 shift/reduce conflicts. -State 401 contains 5 shift/reduce conflicts. -State 402 contains 2 shift/reduce conflicts. -State 403 contains 1 shift/reduce conflict. -State 404 contains 1 shift/reduce conflict. -State 405 contains 1 shift/reduce conflict. -State 406 contains 1 shift/reduce conflict. +State 118 contains 1 shift/reduce conflict. +State 211 contains 1 shift/reduce conflict. +State 220 contains 1 shift/reduce conflict. +State 262 contains 2 shift/reduce conflicts. +State 265 contains 3 shift/reduce conflicts. +State 266 contains 2 shift/reduce conflicts. +State 268 contains 5 shift/reduce conflicts. +State 269 contains 2 shift/reduce conflicts. +State 270 contains 1 shift/reduce conflict. +State 271 contains 1 shift/reduce conflict. +State 272 contains 1 shift/reduce conflict. +State 273 contains 1 shift/reduce conflict. +State 274 contains 1 shift/reduce conflict. +State 310 contains 1 shift/reduce conflict. +State 397 contains 3 shift/reduce conflicts. +State 398 contains 3 shift/reduce conflicts. +State 404 contains 5 shift/reduce conflicts. +State 405 contains 5 shift/reduce conflicts. +State 406 contains 2 shift/reduce conflicts. +State 407 contains 1 shift/reduce conflict. +State 408 contains 1 shift/reduce conflict. +State 409 contains 1 shift/reduce conflict. +State 410 contains 1 shift/reduce conflict. -97 terminals, 117 nonterminals -285 grammar rules, 484 states +98 terminals, 118 nonterminals +286 grammar rules, 481 states