diff --git a/bin/mycompiler/myparser/JavaParser.jay b/bin/mycompiler/myparser/JavaParser.jay index 27d756b1..b86a9079 100755 --- a/bin/mycompiler/myparser/JavaParser.jay +++ b/bin/mycompiler/myparser/JavaParser.jay @@ -867,7 +867,15 @@ Beispiel: var = 2; Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll. Dieses Problem ist bei Feldern nicht der Fall. */ -fielddeclarator : variabledeclarator '=' expression +fielddeclarator : type variabledeclarator '=' expression + { + FieldDeclaration ret = new FieldDeclaration($2.getOffset()); + ret.setType($1); + ret.set_DeclId($2); + ret.setWert($4); + $$=ret; + } + | variabledeclarator '=' expression { FieldDeclaration ret = new FieldDeclaration($1.getOffset()); ret.set_DeclId($1); @@ -1361,9 +1369,9 @@ blockstatement :localvariabledeclarationstatement formalparameter : type variabledeclaratorid { - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($2); FP.setType($1); - FP.set_DeclId($2); + //FP.set_DeclId($2); $$=FP; } @@ -1375,9 +1383,9 @@ formalparameter : type variabledeclaratorid Parameterliste setzen $5.set_Paratyp($3.get_ParaList()); - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($5); FP.setType($1); - FP.set_DeclId($5); + //FP.set_DeclId($5); $$=FP; org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName()); @@ -1388,7 +1396,7 @@ formalparameter : type variabledeclaratorid { org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name); - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($1); // #JB# 31.03.2005 // ########################################################### @@ -1398,7 +1406,7 @@ formalparameter : type variabledeclaratorid //org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName()); //auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T ); - FP.set_DeclId($1); + //FP.set_DeclId($1); $$=FP; } diff --git a/src/mycompiler/MyCompiler.java b/src/mycompiler/MyCompiler.java index 957a26dc..1460ab22 100755 --- a/src/mycompiler/MyCompiler.java +++ b/src/mycompiler/MyCompiler.java @@ -44,9 +44,10 @@ import com.sun.corba.se.spi.orbutil.fsm.Guard.Result; import com.sun.org.apache.xerces.internal.impl.xs.identity.Field; import typinferenz.ResultSet; -import typinferenz.TypinferenzException; // ino.end import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.ParserException; +import typinferenz.exceptions.TypinferenzException; @@ -485,14 +486,16 @@ public class MyCompiler implements MyCompilerAPI */ // ino.end // ino.method.parse.21298.definition - public void parse(File file) + public SourceFile parse(File file) throws FileNotFoundException, IOException, JavaParser.yyException // ino.end // ino.method.parse.21298.body { FileReader fr = new FileReader(file); - this.m_AbstractSyntaxTree.add(this.parse2SyntaxTree(fr)); + SourceFile ret = this.parse2SyntaxTree(fr); + this.m_AbstractSyntaxTree.add(ret); fr.close(); + return ret; } // ino.end @@ -752,8 +755,8 @@ public class MyCompiler implements MyCompilerAPI try { srcFile = (SourceFile) parser.yyparse( scanner ); } catch (IOException | yyException e) { - // TODO Auto-generated catch block e.printStackTrace(); + if(e instanceof yyException)throw new ParserException((yyException)e); } ////////////////////////////////////// // Postprocessing: @@ -786,7 +789,6 @@ public class MyCompiler implements MyCompilerAPI } reader.close(); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -812,7 +814,6 @@ public class MyCompiler implements MyCompilerAPI reader.close(); gesamterSrc += fileData.toString() + "\n"; // Alle Dateien nacheinander hintereinander anhängen... } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); throw new TypinferenzException("Die übergebenen Dateien konnten nicht zum Parsen eingelesen werden."); } diff --git a/src/mycompiler/MyCompilerAPI.java b/src/mycompiler/MyCompilerAPI.java index a0d3349e..e990ba46 100755 --- a/src/mycompiler/MyCompilerAPI.java +++ b/src/mycompiler/MyCompilerAPI.java @@ -53,7 +53,7 @@ public interface MyCompilerAPI */ // ino.end // ino.method.parse.21334.declaration - public void parse(File file) + public SourceFile parse(File file) throws FileNotFoundException, IOException, JavaParser.yyException; // ino.end diff --git a/src/mycompiler/SourceFile.java b/src/mycompiler/SourceFile.java index 46c353e0..619f10b8 100755 --- a/src/mycompiler/SourceFile.java +++ b/src/mycompiler/SourceFile.java @@ -45,9 +45,9 @@ import sun.reflect.generics.reflectiveObjects.TypeVariableImpl; import typinferenz.ConstraintsSet; import typinferenz.FunN; import typinferenz.ResultSet; -import typinferenz.TypinferenzException; import typinferenz.UndConstraint; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; @@ -650,89 +650,96 @@ public class SourceFile globalAssumptions.add(klasse.getPublicFieldAssumptions()); } + ConstraintsSet oderConstraints = new ConstraintsSet(); //Alle Constraints der in dieser SourceFile enthaltenen Klassen sammeln: for(Class klasse : KlassenVektor){ - ConstraintsSet oderConstraints = klasse.typeReconstruction(finiteClosure, globalAssumptions); - - //Die Constraints in Pair's umwandeln (Karthesisches Produkt bilden): - Vector> xConstraints = new Vector>();// = oderConstraints.getConstraints(); - for(Vector uC:oderConstraints.getConstraints()){ //mit dem getConstraints-Aufruf wird das Karthesische Produkt erzeugt. - Vector cons = new Vector(); - for(UndConstraint undCons:uC){ - cons.addAll(undCons.getConstraintPairs()); - } - xConstraints.add(cons); - } - typinferenzLog.debug("Karthesisches Produkt der Constraints: "+xConstraints); - - ////////////////////////////// - // Unifizierung der Constraints: - ////////////////////////////// - for(Vector constraints : xConstraints){ - //Alle durch das Karthesische Produkt entstandenen Möglichkeiten durchgehen: - Vector> result = new Vector>(); - - //Alle FunN-Typen werden per clone-methode in RefTypes verwandelt. (Die clone Methode in FunN darf nicht überschrieben werden. - for(Pair p : constraints){ - if(p.TA1 instanceof FunN){ - p.TA1 = p.TA1.clone(); - } - if(p.TA2 instanceof FunN){ - p.TA2 = p.TA2.clone(); - } - } - - //Erst die Unifizierung erstellen: - Vector constraintsClone = (Vector)constraints.clone(); - Vector> unifyResult = Unify.unify(constraintsClone, finiteClosure); - //Dann den Ergebnissen anfügen - result.addAll(unifyResult); - - // Debugoutput:Vector> - typinferenzLog.debug("Unifiziertes Ergebnis: "+result); - - /* - // Prüfe ob eindeutige Lösung: - if(result.size()>1 && !Unify.hasSolvedForm(result.elementAt(0))){ - - typinferenzLog.debug("Keine eindeutige Lösung!"); - - }else if(result.size()>1){ - - //Replace TPH: - for(Pair res : result.elementAt(0)){ - if(res.OperatorEqual()){ - if(res.TA1 instanceof TypePlaceholder)((TypePlaceholder)res.TA1).fireReplaceTypeEvent(new CReplaceTypeEvent(res.TA1, res.TA2)); - } - } - } - */ - //typinferenzLog.debug(); - //typinferenzLog.debug(supportData.getFiniteClosure()); - //typinferenzLog.debug("Typinformationen: \n"+this.getTypeInformation(this.getMethodList(), fieldInitializers)); - - typinferenzLog.debug("\nJavaFiles:\n"); - - //typinferenzLog.debug(this.printJavaCode(new ResultSet(new Vector()))); - - - //Der Unifikationsalgorithmus kann wiederum auch mehrere Lösungen errechnen, diese werden im folgenden durchlaufen: - for(Vector resultSet : result){ - //Add Result set as a new ReconstructionResult to ret: - TypeinferenceResultSet reconstructionResult = new TypeinferenceResultSet(klasse, constraints, new ResultSet(resultSet)); - ret.add(reconstructionResult); - - //ResultSet res = new ResultSet(resultSet); - typinferenzLog.debug("JavaFile für ResultSet "+reconstructionResult+"\n"); - typinferenzLog.debug(klasse.printJavaCode(reconstructionResult)); - - } - - } - - + oderConstraints.add(klasse.typeReconstruction(finiteClosure, globalAssumptions)); } + //////////////// + //Karthesisches Produkt bilden: + //////////////// + //Die Constraints in Pair's umwandeln (Karthesisches Produkt bilden): + Vector> xConstraints = new Vector>();// = oderConstraints.getConstraints(); + for(Vector uC:oderConstraints.getConstraints()){ //mit dem getConstraints-Aufruf wird das Karthesische Produkt erzeugt. + Vector cons = new Vector(); + for(UndConstraint undCons:uC){ + cons.addAll(undCons.getConstraintPairs()); + } + xConstraints.add(cons); + } + typinferenzLog.debug("Karthesisches Produkt der Constraints: "+xConstraints); + + ////////////////////////////// + // Unifizierung der Constraints: + ////////////////////////////// + for(Vector constraints : xConstraints){ + //Alle durch das Karthesische Produkt entstandenen Möglichkeiten durchgehen: + Vector> result = new Vector>(); + + //Alle FunN-Typen werden per clone-methode in RefTypes verwandelt. (Die clone Methode in FunN darf nicht überschrieben werden. + for(Pair p : constraints){ + if(p.TA1 instanceof FunN){ + p.TA1 = p.TA1.clone(); + } + if(p.TA2 instanceof FunN){ + p.TA2 = p.TA2.clone(); + } + } + + //Erst die Unifizierung erstellen: + Vector constraintsClone = (Vector)constraints.clone(); + Vector> unifyResult = Unify.unify(constraintsClone, finiteClosure); + //Dann den Ergebnissen anfügen + result.addAll(unifyResult); + + // Debugoutput:Vector> + typinferenzLog.debug("Unifiziertes Ergebnis: "+result); + + /* + // Prüfe ob eindeutige Lösung: + if(result.size()>1 && !Unify.hasSolvedForm(result.elementAt(0))){ + + typinferenzLog.debug("Keine eindeutige Lösung!"); + + }else if(result.size()>1){ + + //Replace TPH: + for(Pair res : result.elementAt(0)){ + if(res.OperatorEqual()){ + if(res.TA1 instanceof TypePlaceholder)((TypePlaceholder)res.TA1).fireReplaceTypeEvent(new CReplaceTypeEvent(res.TA1, res.TA2)); + } + } + } + */ + //typinferenzLog.debug(); + //typinferenzLog.debug(supportData.getFiniteClosure()); + //typinferenzLog.debug("Typinformationen: \n"+this.getTypeInformation(this.getMethodList(), fieldInitializers)); + + typinferenzLog.debug("\nJavaFiles:\n"); + + //typinferenzLog.debug(this.printJavaCode(new ResultSet(new Vector()))); + + + //Für jede Klasse in diesem SourceFile gilt das selbe ResultSet: + for(Class klasse : this.KlassenVektor){ + //Der Unifikationsalgorithmus kann wiederum auch mehrere Lösungen errechnen, diese werden im folgenden durchlaufen: + for(Vector resultSet : result){ + //Add Result set as a new ReconstructionResult to ret: + TypeinferenceResultSet reconstructionResult = new TypeinferenceResultSet(klasse, constraints, new ResultSet(resultSet)); + ret.add(reconstructionResult); + + //ResultSet res = new ResultSet(resultSet); + typinferenzLog.debug("JavaFile für ResultSet "+reconstructionResult+"\n"); + typinferenzLog.debug(klasse.printJavaCode(reconstructionResult)); + + } + } + + + } + + return ret; /* // HOTI: Nur zur Info.Ich habe den Loglevel auf Info geschaltet, damit @@ -745,7 +752,7 @@ public class SourceFile TypeAssumptions basics; - basics = this.makeBasicAssumptions(); //TODO: Diese Funktion ändern, dass nur noch TypeAssumptions zurückgegeben werden. Diese sind wichtig, da hier die Standard-Library von Java als Assumptions generiert wird. + basics = this.makeBasicAssumptions(); //A.addElement(basics); //auskommentiert von Andreas Stadelmeier @@ -1380,7 +1387,9 @@ public class SourceFile return foo; */ - return new TypeAssumptions(null); //TODO: Diese TypeAssumptions mit basic-Assumptions füllen + TypeAssumptions ret = new TypeAssumptions(); + + return ret; //TODO: Diese TypeAssumptions mit basic-Assumptions füllen } // ino.end @@ -1519,7 +1528,6 @@ public class SourceFile @Override public SyntaxTreeNode getParent() { - // TODO Auto-generated method stub return null; } @@ -1543,6 +1551,5 @@ public class SourceFile //this.filename = filename; } - } // ino.end diff --git a/src/mycompiler/SyntaxTreeNode.java b/src/mycompiler/SyntaxTreeNode.java index cc8f4d6d..54dd0a74 100644 --- a/src/mycompiler/SyntaxTreeNode.java +++ b/src/mycompiler/SyntaxTreeNode.java @@ -2,7 +2,7 @@ package mycompiler; import java.util.Vector; -import typinferenz.TypinferenzException; +import typinferenz.exceptions.TypinferenzException; import mycompiler.myclass.Class; public abstract class SyntaxTreeNode { @@ -41,4 +41,14 @@ public abstract class SyntaxTreeNode { public String getDescription(){ return this.toString(); } + + @Override + public boolean equals(Object object){ + if(!(object instanceof SyntaxTreeNode))return false; + SyntaxTreeNode equal = (SyntaxTreeNode)object; + if(!equal.getDescription().equals(this.getDescription()))return false; + if(this.getParent()!=null) + if(!this.getParent().equals(equal.getParent()))return false; //auch das Elternelement überprüfen. + return true; + } } diff --git a/src/mycompiler/myclass/Class.java b/src/mycompiler/myclass/Class.java index 2d3df608..2ac0d866 100755 --- a/src/mycompiler/myclass/Class.java +++ b/src/mycompiler/myclass/Class.java @@ -57,15 +57,16 @@ import org.apache.log4j.Logger; + import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.ConstraintsSet; import typinferenz.JavaCodeResult; import typinferenz.OderConstraint; import typinferenz.ResultSet; -import typinferenz.TypinferenzException; import typinferenz.UndConstraint; import typinferenz.FunN; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; @@ -639,10 +640,11 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface // @author A10023 - Andreas Stadelmeier: ////////////////////////////// //Erzeuge Assumptions: - TypeAssumptions assumptions = this.getTypeAssumptions(); - //-- + TypeAssumptions assumptions = this.getPrivateFieldAssumptions(); + //Globale Assumptions anfügen: assumptions.add(globalAssumptions); - + + typinferenzLog.debug("Erstellte Assumptions: "+assumptions); /* //Generiere Liste mit Expressions, welche zur Initialisierung von Feldern verwendet werden. Vector fieldInitializers = new Vector(); @@ -825,11 +827,11 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface */ /** - * Die Funktion ist erst nach dem Aufruf von getMethodList() nutzbar. - * Ermittelt alle Felder und Methoden der Klasse und Erstellt eine Assumption für diese. + * Ermittelt alle privaten Felder und Methoden der Klasse und Erstellt eine Assumption für diese. + * Bemerkung: Momentan werden noch alle Felder dieser Klasse zurückgegeben. * @return Die erstellten TypeAssumptions */ - private TypeAssumptions getTypeAssumptions() { + private TypeAssumptions getPrivateFieldAssumptions() { if(this.typeAssumptions != null)return this.typeAssumptions; //Das sorgt dafür, dass die Assumptions nur einmalig generiert werden. TypeAssumptions assumptions = new TypeAssumptions(this.getName()); //this.getMethodList(); //Diese Funktion muss zuerst ausgeführt werden. @@ -848,9 +850,6 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface // assumptions.addMethodAssumption(new RefType(this.getName(),0), "", new RefType(this.getName(),0), new Vector()); //} - - typinferenzLog.debug("Erstellte Assumptions: "+assumptions); - this.typeAssumptions = assumptions; //Diese müssen anschließend nicht wieder generiert werden. return assumptions; } @@ -1166,11 +1165,6 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface JavaCodeResult classBodyCode = new JavaCodeResult(); if(this.modifiers!=null)classBodyCode.attach(this.modifiers.printJavaCode(reconstructionResult.getUnifiedConstraints())).attach(" "); - - if(superclassid == null || superclassid.get_Name().size()<1){ - int superclassidOffset = superclassid == null ? 0 : superclassid.getOffset(); - superclassid = new UsedId("Object", superclassidOffset); - } classBodyCode.attach(this.name + " extends ").attach(superclassid.printJavaCode(reconstructionResult.getUnifiedConstraints())).attach("\n"); @@ -1261,7 +1255,7 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface * @return */ public TypeAssumptions getPublicFieldAssumptions() { - TypeAssumptions ret = this.getTypeAssumptions(); + TypeAssumptions ret = this.getPrivateFieldAssumptions(); for(Field f : this.getFields()){ ret.add(f.createTypeAssumptions(this)); } @@ -1272,6 +1266,12 @@ public class Class extends SyntaxTreeNode implements AClassOrInterface public void parserPostProcessing(SyntaxTreeNode parent) { super.parserPostProcessing(parent); + //Wenn keine Superklasse, dann erbt die Klasse zwangsweise von Object: + if(superclassid == null || superclassid.get_Name().size()<1){ + int superclassidOffset = superclassid == null ? 0 : superclassid.getOffset(); + superclassid = new UsedId("Object", superclassidOffset); + } + //Alle Methoden auf Konstruktoren durchsuchen und diese umwandeln: Vector tempFields = new Vector(); for(Field f : this.getFields()){ diff --git a/src/mycompiler/myclass/Constructor.java b/src/mycompiler/myclass/Constructor.java index 2eb1259e..b7c3d789 100644 --- a/src/mycompiler/myclass/Constructor.java +++ b/src/mycompiler/myclass/Constructor.java @@ -15,8 +15,10 @@ import typinferenz.ConstraintsSet; import typinferenz.JavaCodeResult; import typinferenz.ResultSet; import typinferenz.SingleConstraint; -import typinferenz.TypinferenzException; +import typinferenz.assumptions.ConstructorAssumption; +import typinferenz.assumptions.MethodAssumption; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; public class Constructor extends Method { private Method methode; @@ -238,10 +240,17 @@ public class Constructor extends Method { @Override public TypeAssumptions createTypeAssumptions(Class classmember) { - - return this.methode.createTypeAssumptions(classmember); + Class parentClass = this.getParentClass(); + TypeAssumptions ret = new TypeAssumptions(); + ret.addConstructorAssumption(new ConstructorAssumption(this, parentClass)); + return ret; } + @Override + public SyntaxTreeNode getParent(){ + return this.methode.getParent(); + } + @Override public void parserPostProcessing(SyntaxTreeNode parent) { @@ -264,6 +273,54 @@ public class Constructor extends Method { public Type getType() { return this.methode.getType(); } + + + @Override + public boolean equals(Object obj) { + return this.methode.equals(obj); + } + + + @Override + public void set_DeclId(DeclId did) { + this.methode.set_DeclId(did); + } + + + @Override + public Vector get_Name() { + return this.methode.get_Name(); + } + + + @Override + public Vector getDeclIdVector() { + return this.methode.getDeclIdVector(); + } + + + @Override + public void setDeclIdVector(Vector vDeclId) { + this.methode.setDeclIdVector(vDeclId); + } + + + @Override + public String getIdentifier() { + return this.methode.getIdentifier(); + } + + + @Override + public String getDescription() { + return this.methode.getDescription(); + } + + + @Override + public Class getParentClass() { + return this.methode.getParentClass(); + } } diff --git a/src/mycompiler/myclass/FieldDeclaration.java b/src/mycompiler/myclass/FieldDeclaration.java index dc0b1efc..60ef42ca 100644 --- a/src/mycompiler/myclass/FieldDeclaration.java +++ b/src/mycompiler/myclass/FieldDeclaration.java @@ -7,9 +7,9 @@ import typinferenz.JavaCodeResult; import typinferenz.OderConstraint; import typinferenz.ResultSet; import typinferenz.SingleConstraint; -import typinferenz.TypinferenzException; import typinferenz.assumptions.FieldAssumption; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; import mycompiler.SyntaxTreeNode; import mycompiler.mybytecode.ClassFile; import mycompiler.myexception.JVMCodeException; @@ -54,7 +54,8 @@ public class FieldDeclaration extends Field{ @Override public String toString() { - return super.toString() + "=" + getWert().toString(); + if(getWert()!=null)return super.toString() + "=" + getWert().toString(); + return super.toString(); } @@ -74,7 +75,7 @@ public class FieldDeclaration extends Field{ ////////////////////////////// TypeAssumptions assumptions = new TypeAssumptions(); /* - * TODO: Der Feld-Assumption muss ein TPH als Typ hinzugefügt werden, falls er Typlos initialisiert wurde. Dies kann auch der Type-Algorithmus der Inst/FieldVar - Klasse machen. + * Der Feld-Assumption muss ein TPH als Typ hinzugefügt werden, falls er Typlos initialisiert wurde. Dies kann auch der Type-Algorithmus der Inst/FieldVar - Klasse machen. * Wird das Feld mit einem Typ initialisiert so muss dieser auch in die Assumptions. */ if(this.getType() == null)throw new TypinferenzException("Der Typ eines Feldes darf nicht null sein"); diff --git a/src/mycompiler/myclass/FormalParameter.java b/src/mycompiler/myclass/FormalParameter.java index 2244e00e..853356b7 100755 --- a/src/mycompiler/myclass/FormalParameter.java +++ b/src/mycompiler/myclass/FormalParameter.java @@ -3,6 +3,9 @@ package mycompiler.myclass; // ino.end // ino.module.FormalParameter.8561.import +import java.util.Vector; + +import mycompiler.SyntaxTreeNode; import mycompiler.mybytecode.ClassFile; import mycompiler.mybytecode.CodeAttribute; import mycompiler.mytype.Type; @@ -16,14 +19,19 @@ import org.apache.log4j.Logger; + + + + import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.JavaCodeResult; import typinferenz.ResultSet; import typinferenz.Typeable; import typinferenz.TypeInsertable; +import typinferenz.exceptions.TypinferenzException; // ino.class.FormalParameter.23391.declaration -public class FormalParameter implements ITypeReplacementListener, Typeable, TypeInsertable +public class FormalParameter extends SyntaxTreeNode implements ITypeReplacementListener, Typeable, TypeInsertable // ino.end // ino.class.FormalParameter.23391.body { @@ -37,6 +45,9 @@ public class FormalParameter implements ITypeReplacementListener, Typeable, Type protected static Logger inferencelog = Logger.getLogger("inference"); // ino.end + public FormalParameter(DeclId name){ + this.set_DeclId(name); + } // ino.method.setType.23404.defdescription type=javadoc @@ -68,6 +79,7 @@ public class FormalParameter implements ITypeReplacementListener, Typeable, Type // ino.end // ino.method.set_DeclId.23407.body { + if(did == null)throw new NullPointerException(); this.declid = did; } // ino.end @@ -213,5 +225,20 @@ public class FormalParameter implements ITypeReplacementListener, Typeable, Type } + + @Override + public Vector getChildren() { + return new Vector(); + } + + + + @Override + public void parserPostProcessing(SyntaxTreeNode parent) { + super.parserPostProcessing(parent); + if(this.type==null)this.type = TypePlaceholder.fresh(this); + } + + } // ino.end diff --git a/src/mycompiler/myclass/Method.java b/src/mycompiler/myclass/Method.java index 76562ccb..7fa63b75 100755 --- a/src/mycompiler/myclass/Method.java +++ b/src/mycompiler/myclass/Method.java @@ -59,7 +59,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable private Block block; // ino.end // ino.attribute.parameterlist.23491.declaration - public ParameterList parameterlist = null; + public ParameterList parameterlist = new ParameterList(); // ino.end // ino.attribute.exceptionlist.23494.declaration private ExceptionList exceptionlist; @@ -563,7 +563,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable @Override public JavaCodeResult printJavaCode(ResultSet resultSet) { JavaCodeResult ret = new JavaCodeResult(); - ret.attach(this.getType().printJavaCode(resultSet)).attach(" ").attach(this.get_Method_Name()).attach("()\n"); //TODO: hier müssen auch noch die Parameter ausgegeben werden! + ret.attach(this.getType().printJavaCode(resultSet)).attach(" ").attach(this.get_Method_Name()).attach("(").attach(this.getParameterList().printJavaCode(resultSet)).attach(")\n"); ret.attach(this.block.printJavaCode(resultSet)); return ret; @@ -668,6 +668,9 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable public Vector getChildren() { Vector ret = new Vector(); ret.add(this.block); + for(FormalParameter param : this.parameterlist){ + ret.add(param); + } return ret; } @@ -699,5 +702,14 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable return ret; } + @Override + public boolean equals(Object obj){ + if(!(obj instanceof Method))return false; + Method equals = (Method) obj; + if(!this.returntype.equals(equals.returntype))return false; + if(!this.parameterlist.equals(equals.parameterlist))return false; + return super.equals(obj); + } + } // ino.end diff --git a/src/mycompiler/myclass/UsedId.java b/src/mycompiler/myclass/UsedId.java index a16db852..b6f022da 100755 --- a/src/mycompiler/myclass/UsedId.java +++ b/src/mycompiler/myclass/UsedId.java @@ -7,7 +7,7 @@ import java.util.Vector; import typinferenz.JavaCodeResult; import typinferenz.ResultSet; -import typinferenz.TypinferenzException; +import typinferenz.exceptions.TypinferenzException; import mycompiler.IItemWithOffset; import mycompiler.mybytecode.JVMCode; import mycompiler.mytype.Type; diff --git a/src/mycompiler/myparser/JavaParser.java b/src/mycompiler/myparser/JavaParser.java index d368209d..0e3365a3 100644 --- a/src/mycompiler/myparser/JavaParser.java +++ b/src/mycompiler/myparser/JavaParser.java @@ -347,6 +347,7 @@ public Vector testPair = new Vector(); //t "constructordeclaration : modifiers constructordeclarator constructorbody", //t "constantdeclaration : modifiers type IDENTIFIER '=' expression ';'", //t "abstractmethoddeclaration : methodheader ';'", +//t "fielddeclarator : type variabledeclarator '=' expression", //t "fielddeclarator : variabledeclarator '=' expression", //t "fielddeclaration : fielddeclarator ';'", //t "fielddeclaration : type fielddeclarator", @@ -1376,6 +1377,7 @@ case 79: // line 871 "./../src/mycompiler/myparser/JavaParser.jay" { FieldDeclaration ret = new FieldDeclaration(((DeclId)yyVals[-2+yyTop]).getOffset()); + ret.setType(((Type)yyVals[-3+yyTop])); ret.set_DeclId(((DeclId)yyVals[-2+yyTop])); ret.setWert(((Expr)yyVals[0+yyTop])); yyVal=ret; @@ -1383,33 +1385,42 @@ case 79: break; case 80: // line 879 "./../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 81: + // line 887 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((FieldDeclaration)yyVals[-1+yyTop]); } break; -case 81: - // line 883 "./../src/mycompiler/myparser/JavaParser.jay" +case 82: + // line 891 "./../src/mycompiler/myparser/JavaParser.jay" { ((FieldDeclaration)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); yyVal=((FieldDeclaration)yyVals[0+yyTop]); } break; -case 82: - // line 889 "./../src/mycompiler/myparser/JavaParser.jay" +case 83: + // line 897 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((FieldDeclaration)yyVals[-1+yyTop]); } break; -case 83: - // line 894 "./../src/mycompiler/myparser/JavaParser.jay" +case 84: + // line 902 "./../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 84: - // line 901 "./../src/mycompiler/myparser/JavaParser.jay" +case 85: + // line 909 "./../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++) @@ -1419,28 +1430,28 @@ case 84: yyVal = ((FieldDeclaration)yyVals[-1+yyTop]); } break; -case 85: - // line 911 "./../src/mycompiler/myparser/JavaParser.jay" +case 86: + // line 919 "./../src/mycompiler/myparser/JavaParser.jay" { ((Method)yyVals[-1+yyTop]).set_Block(((Block)yyVals[0+yyTop])); yyVal=((Method)yyVals[-1+yyTop]); } break; -case 86: - // line 918 "./../src/mycompiler/myparser/JavaParser.jay" +case 87: + // line 926 "./../src/mycompiler/myparser/JavaParser.jay" { Block Bl = new Block(); yyVal=Bl; } break; -case 87: - // line 924 "./../src/mycompiler/myparser/JavaParser.jay" +case 88: + // line 932 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Block)yyVals[-1+yyTop]); } break; -case 88: - // line 929 "./../src/mycompiler/myparser/JavaParser.jay" +case 89: + // line 937 "./../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(); @@ -1449,8 +1460,8 @@ case 88: yyVal=CON; } break; -case 89: - // line 937 "./../src/mycompiler/myparser/JavaParser.jay" +case 90: + // line 945 "./../src/mycompiler/myparser/JavaParser.jay" { Constructor CONpara = new Constructor(null); DeclId DIconpara = new DeclId(); @@ -1460,29 +1471,29 @@ case 89: yyVal=CONpara; } break; -case 90: - // line 947 "./../src/mycompiler/myparser/JavaParser.jay" +case 91: + // line 955 "./../src/mycompiler/myparser/JavaParser.jay" { Block CBL = new Block(); yyVal=CBL; } break; -case 91: - // line 952 "./../src/mycompiler/myparser/JavaParser.jay" +case 92: + // line 960 "./../src/mycompiler/myparser/JavaParser.jay" { Block CBLexpl = new Block(); CBLexpl.set_Statement(((Statement)yyVals[-1+yyTop])); yyVal=CBLexpl; } break; -case 92: - // line 958 "./../src/mycompiler/myparser/JavaParser.jay" +case 93: + // line 966 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Block)yyVals[-1+yyTop]); } break; -case 93: - // line 962 "./../src/mycompiler/myparser/JavaParser.jay" +case 94: + // line 970 "./../src/mycompiler/myparser/JavaParser.jay" { Block CBes = new Block(); CBes.set_Statement(((Statement)yyVals[-2+yyTop])); @@ -1493,51 +1504,51 @@ case 93: yyVal=CBes; } break; -case 94: - // line 973 "./../src/mycompiler/myparser/JavaParser.jay" +case 95: + // line 981 "./../src/mycompiler/myparser/JavaParser.jay" { ExceptionList EL = new ExceptionList(); EL.set_addElem(((RefType)yyVals[0+yyTop])); yyVal=EL; } break; -case 95: - // line 980 "./../src/mycompiler/myparser/JavaParser.jay" +case 96: + // line 988 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal = ((GenericTypeVar)yyVals[0+yyTop]); } break; -case 96: - // line 985 "./../src/mycompiler/myparser/JavaParser.jay" +case 97: + // line 993 "./../src/mycompiler/myparser/JavaParser.jay" { ParaList p = new ParaList(); p.add_ParaList(((GenericTypeVar)yyVals[0+yyTop])); yyVal=p; } break; -case 97: - // line 991 "./../src/mycompiler/myparser/JavaParser.jay" +case 98: + // line 999 "./../src/mycompiler/myparser/JavaParser.jay" { ((ParaList)yyVals[-2+yyTop]).add_ParaList(((GenericTypeVar)yyVals[0+yyTop])); yyVal=((ParaList)yyVals[-2+yyTop]); } break; -case 98: - // line 998 "./../src/mycompiler/myparser/JavaParser.jay" +case 99: + // line 1006 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(),((Token)yyVals[0+yyTop]).getOffset()); } break; -case 99: - // line 1002 "./../src/mycompiler/myparser/JavaParser.jay" +case 100: + // line 1010 "./../src/mycompiler/myparser/JavaParser.jay" { BoundedGenericTypeVar gtv=new BoundedGenericTypeVar(((Token)yyVals[-2+yyTop]).getLexem(),((Token)yyVals[-2+yyTop]).getOffset()); gtv.setBounds(((Vector)yyVals[0+yyTop])); yyVal=gtv; } break; -case 100: - // line 1009 "./../src/mycompiler/myparser/JavaParser.jay" +case 101: + // line 1017 "./../src/mycompiler/myparser/JavaParser.jay" { Vector vec=new Vector(); vec.addElement(((RefType)yyVals[0+yyTop])); @@ -1545,54 +1556,54 @@ case 100: yyVal=vec; } break; -case 101: - // line 1016 "./../src/mycompiler/myparser/JavaParser.jay" +case 102: + // line 1024 "./../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 102: - // line 1023 "./../src/mycompiler/myparser/JavaParser.jay" +case 103: + // line 1031 "./../src/mycompiler/myparser/JavaParser.jay" { Vector vec=new Vector(); vec.addElement(((GenericTypeVar)yyVals[0+yyTop])); yyVal=vec; } break; -case 103: - // line 1029 "./../src/mycompiler/myparser/JavaParser.jay" +case 104: + // line 1037 "./../src/mycompiler/myparser/JavaParser.jay" { ((Vector)yyVals[-2+yyTop]).addElement(((GenericTypeVar)yyVals[0+yyTop])); yyVal=((Vector)yyVals[-2+yyTop]); } break; -case 104: - // line 1037 "./../src/mycompiler/myparser/JavaParser.jay" +case 105: + // line 1045 "./../src/mycompiler/myparser/JavaParser.jay" { ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); yyVal=((Method)yyVals[0+yyTop]); } break; -case 105: - // line 1043 "./../src/mycompiler/myparser/JavaParser.jay" +case 106: + // line 1051 "./../src/mycompiler/myparser/JavaParser.jay" { ((Method)yyVals[0+yyTop]).setType(((Type)yyVals[-1+yyTop])); yyVal=((Method)yyVals[0+yyTop]); } break; -case 106: - // line 1048 "./../src/mycompiler/myparser/JavaParser.jay" +case 107: + // line 1056 "./../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 107: - // line 1054 "./../src/mycompiler/myparser/JavaParser.jay" +case 108: + // line 1062 "./../src/mycompiler/myparser/JavaParser.jay" { ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop])); ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-3+yyTop])); @@ -1600,37 +1611,27 @@ case 107: yyVal=((Method)yyVals[0+yyTop]); } break; -case 108: - // line 1061 "./../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 109: - // line 1067 "./../src/mycompiler/myparser/JavaParser.jay" + // line 1069 "./../src/mycompiler/myparser/JavaParser.jay" { - ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+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 110: - // line 1074 "./../src/mycompiler/myparser/JavaParser.jay" + // line 1075 "./../src/mycompiler/myparser/JavaParser.jay" { - ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); + ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+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 111: - // line 1081 "./../src/mycompiler/myparser/JavaParser.jay" + // line 1082 "./../src/mycompiler/myparser/JavaParser.jay" { - ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop])); - ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+yyTop])); + ((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]); @@ -1638,14 +1639,24 @@ case 111: break; case 112: // line 1089 "./../src/mycompiler/myparser/JavaParser.jay" + { + ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop])); + ((Method)yyVals[-1+yyTop]).setGenericMethodParameters(((Vector)yyVals[-4+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 113: + // line 1097 "./../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 113: - // line 1095 "./../src/mycompiler/myparser/JavaParser.jay" +case 114: + // line 1103 "./../src/mycompiler/myparser/JavaParser.jay" { Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); @@ -1653,8 +1664,8 @@ case 113: yyVal=((Method)yyVals[0+yyTop]); } break; -case 114: - // line 1102 "./../src/mycompiler/myparser/JavaParser.jay" +case 115: + // line 1110 "./../src/mycompiler/myparser/JavaParser.jay" { Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); ((Method)yyVals[-1+yyTop]).setType(voyt); @@ -1662,8 +1673,8 @@ case 114: yyVal=((Method)yyVals[-1+yyTop]); } break; -case 115: - // line 1109 "./../src/mycompiler/myparser/JavaParser.jay" +case 116: + // line 1117 "./../src/mycompiler/myparser/JavaParser.jay" { Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-3+yyTop])); @@ -1672,8 +1683,8 @@ case 115: yyVal=((Method)yyVals[-1+yyTop]); } break; -case 116: - // line 1117 "./../src/mycompiler/myparser/JavaParser.jay" +case 117: + // line 1125 "./../src/mycompiler/myparser/JavaParser.jay" { Void Voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); ((Method)yyVals[0+yyTop]).setType(Voit); @@ -1681,8 +1692,8 @@ case 116: yyVal=((Method)yyVals[0+yyTop]); } break; -case 117: - // line 1124 "./../src/mycompiler/myparser/JavaParser.jay" +case 118: + // line 1132 "./../src/mycompiler/myparser/JavaParser.jay" { Void voit = new Void(((Token)yyVals[-1+yyTop]).getOffset()); ((Method)yyVals[0+yyTop]).set_Modifiers(((Modifiers)yyVals[-5+yyTop])); @@ -1691,8 +1702,8 @@ case 117: yyVal=((Method)yyVals[0+yyTop]); } break; -case 118: - // line 1132 "./../src/mycompiler/myparser/JavaParser.jay" +case 119: + // line 1140 "./../src/mycompiler/myparser/JavaParser.jay" { Void voyt = new Void(((Token)yyVals[-2+yyTop]).getOffset()); ((Method)yyVals[-1+yyTop]).setType(voyt); @@ -1701,8 +1712,8 @@ case 118: yyVal=((Method)yyVals[-1+yyTop]); } break; -case 119: - // line 1140 "./../src/mycompiler/myparser/JavaParser.jay" +case 120: + // line 1148 "./../src/mycompiler/myparser/JavaParser.jay" { Void voyd = new Void(((Token)yyVals[-2+yyTop]).getOffset()); ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-6+yyTop])); @@ -1712,39 +1723,39 @@ case 119: yyVal=((Method)yyVals[-1+yyTop]); } break; -case 120: - // line 1150 "./../src/mycompiler/myparser/JavaParser.jay" +case 121: + // line 1158 "./../src/mycompiler/myparser/JavaParser.jay" { /*auskommentiert von Andreas Stadelmeier (a10023) $1.setType(TypePlaceholder.fresh()); */ yyVal=((Method)yyVals[0+yyTop]); } break; -case 121: - // line 1155 "./../src/mycompiler/myparser/JavaParser.jay" +case 122: + // line 1163 "./../src/mycompiler/myparser/JavaParser.jay" { /*auskommentiert von Andreas Stadelmeier (a10023) $4.setType(TypePlaceholder.fresh());*/ ((Method)yyVals[0+yyTop]).setGenericMethodParameters(((Vector)yyVals[-2+yyTop])); yyVal=((Method)yyVals[0+yyTop]); } break; -case 122: - // line 1162 "./../src/mycompiler/myparser/JavaParser.jay" +case 123: + // line 1170 "./../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 123: - // line 1168 "./../src/mycompiler/myparser/JavaParser.jay" +case 124: + // line 1176 "./../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 124: - // line 1174 "./../src/mycompiler/myparser/JavaParser.jay" +case 125: + // line 1182 "./../src/mycompiler/myparser/JavaParser.jay" { ((Method)yyVals[-1+yyTop]).set_Modifiers(((Modifiers)yyVals[-2+yyTop])); /*auskommentiert von Andreas Stadelmeier (a10023) $2.setType(TypePlaceholder.fresh());*/ @@ -1752,32 +1763,32 @@ case 124: yyVal=((Method)yyVals[-1+yyTop]); } break; -case 125: - // line 1183 "./../src/mycompiler/myparser/JavaParser.jay" +case 126: + // line 1191 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((BaseType)yyVals[0+yyTop]); } break; -case 126: - // line 1187 "./../src/mycompiler/myparser/JavaParser.jay" +case 127: + // line 1195 "./../src/mycompiler/myparser/JavaParser.jay" { ((BaseType)yyVals[-2+yyTop]).setArray(true); } break; -case 127: - // line 1191 "./../src/mycompiler/myparser/JavaParser.jay" +case 128: + // line 1199 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((RefType)yyVals[0+yyTop]); } break; -case 128: - // line 1195 "./../src/mycompiler/myparser/JavaParser.jay" +case 129: + // line 1203 "./../src/mycompiler/myparser/JavaParser.jay" { ((RefType)yyVals[-2+yyTop]).setArray(true); } break; -case 129: - // line 1199 "./../src/mycompiler/myparser/JavaParser.jay" +case 130: + // line 1207 "./../src/mycompiler/myparser/JavaParser.jay" { FieldDeclaration IVD = new FieldDeclaration(((DeclId)yyVals[0+yyTop]).getOffset()); IVD.getDeclIdVector().addElement( ((DeclId)yyVals[0+yyTop]) ); @@ -1785,66 +1796,66 @@ case 129: yyVal = IVD; } break; -case 130: - // line 1206 "./../src/mycompiler/myparser/JavaParser.jay" +case 131: + // line 1214 "./../src/mycompiler/myparser/JavaParser.jay" { ((FieldDeclaration)yyVals[-2+yyTop]).getDeclIdVector().addElement(((DeclId)yyVals[0+yyTop])); yyVal=((FieldDeclaration)yyVals[-2+yyTop]); } break; -case 131: - // line 1212 "./../src/mycompiler/myparser/JavaParser.jay" +case 132: + // line 1220 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Block)yyVals[0+yyTop]); } break; -case 132: - // line 1217 "./../src/mycompiler/myparser/JavaParser.jay" +case 133: + // line 1225 "./../src/mycompiler/myparser/JavaParser.jay" { Block Blstat = new Block(); Blstat.set_Statement(((Statement)yyVals[0+yyTop])); yyVal=Blstat; } break; -case 133: - // line 1224 "./../src/mycompiler/myparser/JavaParser.jay" +case 134: + // line 1232 "./../src/mycompiler/myparser/JavaParser.jay" { ((Block)yyVals[-1+yyTop]).set_Statement(((Statement)yyVals[0+yyTop])); yyVal=((Block)yyVals[-1+yyTop]); } break; -case 134: - // line 1230 "./../src/mycompiler/myparser/JavaParser.jay" +case 135: + // line 1238 "./../src/mycompiler/myparser/JavaParser.jay" { ParameterList PL = new ParameterList(); PL.set_AddParameter(((FormalParameter)yyVals[0+yyTop])); yyVal = PL; } break; -case 135: - // line 1236 "./../src/mycompiler/myparser/JavaParser.jay" +case 136: + // line 1244 "./../src/mycompiler/myparser/JavaParser.jay" { ((ParameterList)yyVals[-2+yyTop]).set_AddParameter(((FormalParameter)yyVals[0+yyTop])); yyVal = ((ParameterList)yyVals[-2+yyTop]); } break; -case 136: - // line 1242 "./../src/mycompiler/myparser/JavaParser.jay" +case 137: + // line 1250 "./../src/mycompiler/myparser/JavaParser.jay" { This THCON = new This(((Token)yyVals[-3+yyTop]).getOffset(),((Token)yyVals[-3+yyTop]).getLexem().length()); yyVal=THCON; } break; -case 137: - // line 1247 "./../src/mycompiler/myparser/JavaParser.jay" +case 138: + // line 1255 "./../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 138: - // line 1256 "./../src/mycompiler/myparser/JavaParser.jay" +case 139: + // line 1264 "./../src/mycompiler/myparser/JavaParser.jay" { RefType RT = new RefType(-1); RT.set_UsedId(((UsedId)yyVals[0+yyTop])); @@ -1852,16 +1863,16 @@ case 138: yyVal=RT; } break; -case 139: - // line 1263 "./../src/mycompiler/myparser/JavaParser.jay" +case 140: + // line 1271 "./../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 140: - // line 1270 "./../src/mycompiler/myparser/JavaParser.jay" +case 141: + // line 1278 "./../src/mycompiler/myparser/JavaParser.jay" { Method met = new Method(((Token)yyVals[-2+yyTop]).getOffset()); /* #JB# 10.04.2005 */ @@ -1875,8 +1886,8 @@ case 140: yyVal = met; } break; -case 141: - // line 1283 "./../src/mycompiler/myparser/JavaParser.jay" +case 142: + // line 1291 "./../src/mycompiler/myparser/JavaParser.jay" { Method met_para = new Method(((Token)yyVals[-3+yyTop]).getOffset()); /* #JB# 10.04.2005 */ @@ -1891,8 +1902,8 @@ case 141: yyVal = met_para; } break; -case 142: - // line 1298 "./../src/mycompiler/myparser/JavaParser.jay" +case 143: + // line 1306 "./../src/mycompiler/myparser/JavaParser.jay" { BooleanType BT = new BooleanType(); /* #JB# 05.04.2005 */ @@ -1902,14 +1913,14 @@ case 142: yyVal=BT; } break; -case 143: - // line 1307 "./../src/mycompiler/myparser/JavaParser.jay" +case 144: + // line 1315 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((BaseType)yyVals[0+yyTop]); } break; -case 144: - // line 1313 "./../src/mycompiler/myparser/JavaParser.jay" +case 145: + // line 1321 "./../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()); @@ -1928,39 +1939,39 @@ case 144: yyVal=RT; } break; -case 145: - // line 1333 "./../src/mycompiler/myparser/JavaParser.jay" +case 146: + // line 1341 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((DeclId)yyVals[0+yyTop]); } break; -case 146: - // line 1354 "./../src/mycompiler/myparser/JavaParser.jay" +case 147: + // line 1362 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((LocalVarDecl)yyVals[0+yyTop]); } break; -case 147: - // line 1358 "./../src/mycompiler/myparser/JavaParser.jay" +case 148: + // line 1366 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Statement)yyVals[0+yyTop]); } break; -case 148: - // line 1363 "./../src/mycompiler/myparser/JavaParser.jay" +case 149: + // line 1371 "./../src/mycompiler/myparser/JavaParser.jay" { - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter(((DeclId)yyVals[0+yyTop])); FP.setType(((Type)yyVals[-1+yyTop])); - FP.set_DeclId(((DeclId)yyVals[0+yyTop])); + /*FP.set_DeclId($2);*/ yyVal=FP; } break; -case 149: - // line 1388 "./../src/mycompiler/myparser/JavaParser.jay" +case 150: + // line 1396 "./../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(); + FormalParameter FP = new FormalParameter(((DeclId)yyVals[0+yyTop])); /* #JB# 31.03.2005*/ /* ###########################################################*/ @@ -1970,34 +1981,34 @@ case 149: /*org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName());*/ /*auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T );*/ - FP.set_DeclId(((DeclId)yyVals[0+yyTop])); + /*FP.set_DeclId($1);*/ yyVal=FP; } break; -case 150: - // line 1407 "./../src/mycompiler/myparser/JavaParser.jay" +case 151: + // line 1415 "./../src/mycompiler/myparser/JavaParser.jay" { ArgumentList AL = new ArgumentList(); AL.expr.addElement(((Expr)yyVals[0+yyTop])); yyVal=AL; } break; -case 151: - // line 1413 "./../src/mycompiler/myparser/JavaParser.jay" +case 152: + // line 1421 "./../src/mycompiler/myparser/JavaParser.jay" { ((ArgumentList)yyVals[-2+yyTop]).expr.addElement(((Expr)yyVals[0+yyTop])); yyVal=((ArgumentList)yyVals[-2+yyTop]); } break; -case 152: - // line 1419 "./../src/mycompiler/myparser/JavaParser.jay" +case 153: + // line 1427 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((BaseType)yyVals[0+yyTop]); } break; -case 153: - // line 1424 "./../src/mycompiler/myparser/JavaParser.jay" +case 154: + // line 1432 "./../src/mycompiler/myparser/JavaParser.jay" { DeclId DI = new DeclId(); /* #JB# 10.04.2005 */ @@ -2009,62 +2020,62 @@ case 153: yyVal=DI; } break; -case 154: - // line 1436 "./../src/mycompiler/myparser/JavaParser.jay" +case 155: + // line 1444 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 155: - // line 1441 "./../src/mycompiler/myparser/JavaParser.jay" +case 156: + // line 1449 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((LocalVarDecl)yyVals[-1+yyTop]); } break; -case 156: - // line 1446 "./../src/mycompiler/myparser/JavaParser.jay" +case 157: + // line 1454 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Statement)yyVals[0+yyTop]); } break; -case 157: - // line 1450 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((IfStmt)yyVals[0+yyTop]); - } - break; case 158: - // line 1454 "./../src/mycompiler/myparser/JavaParser.jay" + // line 1458 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((IfStmt)yyVals[0+yyTop]); } break; case 159: - // line 1458 "./../src/mycompiler/myparser/JavaParser.jay" + // line 1462 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((IfStmt)yyVals[0+yyTop]); + } + break; +case 160: + // line 1466 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((WhileStmt)yyVals[0+yyTop]); } break; -case 160: - // line 1462 "./../src/mycompiler/myparser/JavaParser.jay" +case 161: + // line 1470 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((ForStmt)yyVals[0+yyTop]); } break; -case 161: - // line 1467 "./../src/mycompiler/myparser/JavaParser.jay" +case 162: + // line 1475 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 162: - // line 1471 "./../src/mycompiler/myparser/JavaParser.jay" +case 163: + // line 1479 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((NewClass)yyVals[0+yyTop]); } break; -case 163: - // line 1476 "./../src/mycompiler/myparser/JavaParser.jay" +case 164: + // line 1484 "./../src/mycompiler/myparser/JavaParser.jay" { IntegerType IT = new IntegerType(); /* #JB# 05.04.2005 */ @@ -2074,8 +2085,8 @@ case 163: yyVal=IT; } break; -case 164: - // line 1485 "./../src/mycompiler/myparser/JavaParser.jay" +case 165: + // line 1493 "./../src/mycompiler/myparser/JavaParser.jay" { CharacterType CT = new CharacterType(); /* #JB# 05.04.2005 */ @@ -2085,8 +2096,8 @@ case 164: yyVal=CT; } break; -case 165: - // line 1495 "./../src/mycompiler/myparser/JavaParser.jay" +case 166: + // line 1503 "./../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()); @@ -2095,8 +2106,8 @@ case 165: yyVal = LVD; } break; -case 166: - // line 1506 "./../src/mycompiler/myparser/JavaParser.jay" +case 167: + // line 1514 "./../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()); @@ -2105,32 +2116,32 @@ case 166: yyVal = LVD; } break; -case 167: - // line 1516 "./../src/mycompiler/myparser/JavaParser.jay" +case 168: + // line 1524 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Block)yyVals[0+yyTop]); } break; -case 168: - // line 1520 "./../src/mycompiler/myparser/JavaParser.jay" +case 169: + // line 1528 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((EmptyStmt)yyVals[0+yyTop]); } break; -case 169: - // line 1524 "./../src/mycompiler/myparser/JavaParser.jay" +case 170: + // line 1532 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((ExprStmt)yyVals[0+yyTop]); } break; -case 170: - // line 1528 "./../src/mycompiler/myparser/JavaParser.jay" +case 171: + // line 1536 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Return)yyVals[0+yyTop]); } break; -case 171: - // line 1533 "./../src/mycompiler/myparser/JavaParser.jay" +case 172: + // line 1541 "./../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])); @@ -2138,8 +2149,8 @@ case 171: yyVal=Ifst; } break; -case 172: - // line 1541 "./../src/mycompiler/myparser/JavaParser.jay" +case 173: + // line 1549 "./../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])); @@ -2148,8 +2159,8 @@ case 172: yyVal=IfstElst; } break; -case 173: - // line 1550 "./../src/mycompiler/myparser/JavaParser.jay" +case 174: + // line 1558 "./../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])); @@ -2157,8 +2168,8 @@ case 173: yyVal=Whlst; } break; -case 174: - // line 1561 "./../src/mycompiler/myparser/JavaParser.jay" +case 175: + // line 1569 "./../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])); @@ -2170,8 +2181,8 @@ case 174: yyVal = Fst; } break; -case 175: - // line 1573 "./../src/mycompiler/myparser/JavaParser.jay" +case 176: + // line 1581 "./../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])); @@ -2182,8 +2193,8 @@ case 175: yyVal = Fst; } break; -case 176: - // line 1584 "./../src/mycompiler/myparser/JavaParser.jay" +case 177: + // line 1592 "./../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])); @@ -2194,8 +2205,8 @@ case 176: yyVal = Fst; } break; -case 177: - // line 1595 "./../src/mycompiler/myparser/JavaParser.jay" +case 178: + // line 1603 "./../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])); @@ -2206,8 +2217,8 @@ case 177: yyVal = Fst; } break; -case 178: - // line 1606 "./../src/mycompiler/myparser/JavaParser.jay" +case 179: + // line 1614 "./../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])); @@ -2217,8 +2228,8 @@ case 178: yyVal = Fst; } break; -case 179: - // line 1616 "./../src/mycompiler/myparser/JavaParser.jay" +case 180: + // line 1624 "./../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])); @@ -2228,8 +2239,8 @@ case 179: yyVal = Fst; } break; -case 180: - // line 1626 "./../src/mycompiler/myparser/JavaParser.jay" +case 181: + // line 1634 "./../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])); @@ -2239,8 +2250,8 @@ case 180: yyVal = Fst; } break; -case 181: - // line 1636 "./../src/mycompiler/myparser/JavaParser.jay" +case 182: + // line 1644 "./../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])); @@ -2249,73 +2260,73 @@ case 181: yyVal = Fst; } break; -case 182: - // line 1645 "./../src/mycompiler/myparser/JavaParser.jay" +case 183: + // line 1653 "./../src/mycompiler/myparser/JavaParser.jay" { org.apache.log4j.Logger.getLogger("parser").debug("conditionalexpression"); yyVal=((Expr)yyVals[0+yyTop]); } break; -case 183: - // line 1650 "./../src/mycompiler/myparser/JavaParser.jay" +case 184: + // line 1658 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Assign)yyVals[0+yyTop]); } break; -case 184: - // line 1656 "./../src/mycompiler/myparser/JavaParser.jay" +case 185: + // line 1664 "./../src/mycompiler/myparser/JavaParser.jay" { EmptyStmt Empst = new EmptyStmt(); yyVal=Empst; } break; -case 185: - // line 1662 "./../src/mycompiler/myparser/JavaParser.jay" +case 186: + // line 1670 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[-1+yyTop]); } break; -case 186: - // line 1667 "./../src/mycompiler/myparser/JavaParser.jay" +case 187: + // line 1675 "./../src/mycompiler/myparser/JavaParser.jay" { Return ret = new Return(-1,-1); yyVal= ret; } break; -case 187: - // line 1672 "./../src/mycompiler/myparser/JavaParser.jay" +case 188: + // line 1680 "./../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 188: - // line 1679 "./../src/mycompiler/myparser/JavaParser.jay" +case 189: + // line 1687 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Statement)yyVals[0+yyTop]); } break; -case 189: - // line 1683 "./../src/mycompiler/myparser/JavaParser.jay" +case 190: + // line 1691 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((IfStmt)yyVals[0+yyTop]); } break; -case 190: - // line 1687 "./../src/mycompiler/myparser/JavaParser.jay" +case 191: + // line 1695 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((WhileStmt)yyVals[0+yyTop]); } break; -case 191: - // line 1692 "./../src/mycompiler/myparser/JavaParser.jay" +case 192: + // line 1700 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 192: - // line 1698 "./../src/mycompiler/myparser/JavaParser.jay" +case 193: + // line 1706 "./../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()); @@ -2341,8 +2352,8 @@ case 192: yyVal=Ass; } break; -case 193: - // line 1723 "./../src/mycompiler/myparser/JavaParser.jay" +case 194: + // line 1731 "./../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()); @@ -2365,44 +2376,44 @@ case 193: yyVal=Ass; } break; -case 194: - // line 1746 "./../src/mycompiler/myparser/JavaParser.jay" +case 195: + // line 1754 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Assign)yyVals[0+yyTop]); } break; -case 195: - // line 1750 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 196: - // line 1754 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; -case 197: // line 1758 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 198: +case 197: // line 1762 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 199: +case 198: // line 1766 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 199: + // line 1770 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 200: + // line 1774 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((MethodCall)yyVals[0+yyTop]); } break; -case 200: - // line 1777 "./../src/mycompiler/myparser/JavaParser.jay" +case 201: + // line 1785 "./../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])); @@ -2411,8 +2422,8 @@ case 200: yyVal=IfElno; } break; -case 201: - // line 1786 "./../src/mycompiler/myparser/JavaParser.jay" +case 202: + // line 1794 "./../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])); @@ -2420,14 +2431,14 @@ case 201: yyVal=Whstno; } break; -case 202: - // line 1794 "./../src/mycompiler/myparser/JavaParser.jay" +case 203: + // line 1802 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 203: - // line 1798 "./../src/mycompiler/myparser/JavaParser.jay" +case 204: + // line 1806 "./../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()); @@ -2438,20 +2449,20 @@ case 203: yyVal=LogOr; } break; -case 204: - // line 1811 "./../src/mycompiler/myparser/JavaParser.jay" +case 205: + // line 1819 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=null; } break; -case 205: - // line 1816 "./../src/mycompiler/myparser/JavaParser.jay" +case 206: + // line 1824 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Block)yyVals[0+yyTop]); } break; -case 206: - // line 1820 "./../src/mycompiler/myparser/JavaParser.jay" +case 207: + // line 1828 "./../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";}|*/ @@ -2461,20 +2472,20 @@ case 206: yyVal=ret; } break; -case 207: - // line 1830 "./../src/mycompiler/myparser/JavaParser.jay" +case 208: + // line 1838 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=null; } break; -case 208: - // line 1834 "./../src/mycompiler/myparser/JavaParser.jay" +case 209: + // line 1842 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((ParameterList)yyVals[-1+yyTop]); } break; -case 209: - // line 1839 "./../src/mycompiler/myparser/JavaParser.jay" +case 210: + // line 1847 "./../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])); @@ -2482,87 +2493,87 @@ case 209: yyVal=lambda; } break; -case 210: - // line 1858 "./../src/mycompiler/myparser/JavaParser.jay" +case 211: + // line 1866 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((UsedId)yyVals[0+yyTop]); } break; -case 211: - // line 1863 "./../src/mycompiler/myparser/JavaParser.jay" +case 212: + // line 1871 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=null; } break; -case 212: - // line 1867 "./../src/mycompiler/myparser/JavaParser.jay" +case 213: + // line 1875 "./../src/mycompiler/myparser/JavaParser.jay" { TimesOp TEO = new TimesOp(-1,-1); yyVal=TEO; } break; -case 213: - // line 1872 "./../src/mycompiler/myparser/JavaParser.jay" +case 214: + // line 1880 "./../src/mycompiler/myparser/JavaParser.jay" { DivideOp DEO = new DivideOp(-1,-1); yyVal=DEO; } break; -case 214: - // line 1877 "./../src/mycompiler/myparser/JavaParser.jay" +case 215: + // line 1885 "./../src/mycompiler/myparser/JavaParser.jay" { ModuloOp MEO = new ModuloOp(-1,-1); yyVal=MEO; } break; -case 215: - // line 1882 "./../src/mycompiler/myparser/JavaParser.jay" +case 216: + // line 1890 "./../src/mycompiler/myparser/JavaParser.jay" { PlusOp PEO = new PlusOp(-1,-1); yyVal=PEO; } break; -case 216: - // line 1887 "./../src/mycompiler/myparser/JavaParser.jay" +case 217: + // line 1895 "./../src/mycompiler/myparser/JavaParser.jay" { MinusOp MEO = new MinusOp(-1,-1); yyVal=MEO; } break; -case 217: - // line 1899 "./../src/mycompiler/myparser/JavaParser.jay" +case 218: + // line 1907 "./../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 218: - // line 1906 "./../src/mycompiler/myparser/JavaParser.jay" +case 219: + // line 1914 "./../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 219: - // line 1913 "./../src/mycompiler/myparser/JavaParser.jay" +case 220: + // line 1921 "./../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 220: - // line 1920 "./../src/mycompiler/myparser/JavaParser.jay" +case 221: + // line 1928 "./../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 221: - // line 1928 "./../src/mycompiler/myparser/JavaParser.jay" +case 222: + // line 1936 "./../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()); @@ -2593,8 +2604,8 @@ case 221: yyVal=MC; } break; -case 222: - // line 1958 "./../src/mycompiler/myparser/JavaParser.jay" +case 223: + // line 1966 "./../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()); @@ -2626,8 +2637,8 @@ case 222: yyVal=MCarg; } break; -case 223: - // line 1989 "./../src/mycompiler/myparser/JavaParser.jay" +case 224: + // line 1997 "./../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()); @@ -2647,8 +2658,8 @@ case 223: yyVal=MCpr; } break; -case 224: - // line 2008 "./../src/mycompiler/myparser/JavaParser.jay" +case 225: + // line 2016 "./../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()); @@ -2669,8 +2680,8 @@ case 224: yyVal=MCPA; } break; -case 225: - // line 2031 "./../src/mycompiler/myparser/JavaParser.jay" +case 226: + // line 2039 "./../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])); @@ -2679,8 +2690,8 @@ case 225: yyVal=NC; } break; -case 226: - // line 2039 "./../src/mycompiler/myparser/JavaParser.jay" +case 227: + // line 2047 "./../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])); @@ -2690,14 +2701,14 @@ case 226: yyVal=NCarg; } break; -case 227: - // line 2049 "./../src/mycompiler/myparser/JavaParser.jay" +case 228: + // line 2057 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 228: - // line 2053 "./../src/mycompiler/myparser/JavaParser.jay" +case 229: + // line 2061 "./../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()); @@ -2708,20 +2719,20 @@ case 228: yyVal=And; } break; -case 229: - // line 2069 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 230: - // line 2073 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2077 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; case 231: - // line 2077 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2081 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 232: + // line 2085 "./../src/mycompiler/myparser/JavaParser.jay" { PositivExpr POSEX=new PositivExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); UnaryPlus UP= new UnaryPlus(); @@ -2730,8 +2741,8 @@ case 231: yyVal=POSEX; } break; -case 232: - // line 2085 "./../src/mycompiler/myparser/JavaParser.jay" +case 233: + // line 2093 "./../src/mycompiler/myparser/JavaParser.jay" { NegativeExpr NEGEX=new NegativeExpr(((Expr)yyVals[0+yyTop]).getOffset(),((Expr)yyVals[0+yyTop]).getVariableLength()); UnaryMinus UM=new UnaryMinus(); @@ -2740,20 +2751,20 @@ case 232: yyVal=NEGEX; } break; -case 233: - // line 2093 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 234: - // line 2098 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2101 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; case 235: - // line 2102 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2106 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 236: + // line 2110 "./../src/mycompiler/myparser/JavaParser.jay" { if (((UsedId)yyVals[0+yyTop]).get_Name().size() > 1) { @@ -2772,38 +2783,38 @@ case 235: } } break; -case 236: - // line 2120 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 237: - // line 2124 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2128 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; case 238: - // line 2129 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2132 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; case 239: - // line 2134 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2137 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 241: - // line 2140 "./../src/mycompiler/myparser/JavaParser.jay" +case 240: + // line 2142 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 242: + // line 2148 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Literal)yyVals[0+yyTop]); } break; -case 242: - // line 2144 "./../src/mycompiler/myparser/JavaParser.jay" +case 243: + // line 2152 "./../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()); @@ -2812,24 +2823,24 @@ case 242: yyVal=T; } break; -case 243: - // line 2165 "./../src/mycompiler/myparser/JavaParser.jay" +case 244: + // line 2173 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((MethodCall)yyVals[0+yyTop]); } break; -case 244: - // line 2169 "./../src/mycompiler/myparser/JavaParser.jay" +case 245: + // line 2177 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 245: - // line 2174 "./../src/mycompiler/myparser/JavaParser.jay" +case 246: + // line 2182 "./../src/mycompiler/myparser/JavaParser.jay" {yyVal=((Expr)yyVals[0+yyTop]);} break; -case 246: - // line 2176 "./../src/mycompiler/myparser/JavaParser.jay" +case 247: + // line 2184 "./../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); @@ -2837,75 +2848,75 @@ case 246: yyVal=NE; } break; -case 247: - // line 2182 "./../src/mycompiler/myparser/JavaParser.jay" +case 248: + // line 2190 "./../src/mycompiler/myparser/JavaParser.jay" {yyVal=((CastExpr)yyVals[0+yyTop]);} break; -case 248: - // line 2184 "./../src/mycompiler/myparser/JavaParser.jay" +case 249: + // line 2192 "./../src/mycompiler/myparser/JavaParser.jay" {yyVal=((Expr)yyVals[0+yyTop]);} break; -case 250: - // line 2189 "./../src/mycompiler/myparser/JavaParser.jay" +case 251: + // line 2197 "./../src/mycompiler/myparser/JavaParser.jay" {IntLiteral IL = new IntLiteral(); IL.set_Int(((Token)yyVals[0+yyTop]).String2Int()); yyVal = IL; } break; -case 251: - // line 2194 "./../src/mycompiler/myparser/JavaParser.jay" +case 252: + // line 2202 "./../src/mycompiler/myparser/JavaParser.jay" {BoolLiteral BL = new BoolLiteral(); BL.set_Bool(((Token)yyVals[0+yyTop]).String2Bool()); yyVal = BL; } break; -case 252: - // line 2198 "./../src/mycompiler/myparser/JavaParser.jay" +case 253: + // line 2206 "./../src/mycompiler/myparser/JavaParser.jay" {CharLiteral CL = new CharLiteral(); CL.set_Char(((Token)yyVals[0+yyTop]).CharInString()); yyVal=CL; } break; -case 253: - // line 2203 "./../src/mycompiler/myparser/JavaParser.jay" +case 254: + // line 2211 "./../src/mycompiler/myparser/JavaParser.jay" { StringLiteral ST = new StringLiteral(); ST.set_String(((Token)yyVals[0+yyTop]).get_String()); yyVal=ST; } break; -case 254: - // line 2208 "./../src/mycompiler/myparser/JavaParser.jay" +case 255: + // line 2216 "./../src/mycompiler/myparser/JavaParser.jay" { LongLiteral LL = new LongLiteral(); LL.set_Long(((Token)yyVals[0+yyTop]).String2Long()); yyVal = LL; } break; -case 255: - // line 2212 "./../src/mycompiler/myparser/JavaParser.jay" +case 256: + // line 2220 "./../src/mycompiler/myparser/JavaParser.jay" { FloatLiteral FL = new FloatLiteral(); FL.set_Float(((Token)yyVals[0+yyTop]).String2Float()); yyVal = FL; } break; -case 256: - // line 2217 "./../src/mycompiler/myparser/JavaParser.jay" +case 257: + // line 2225 "./../src/mycompiler/myparser/JavaParser.jay" { DoubleLiteral DL = new DoubleLiteral(); DL.set_Double(((Token)yyVals[0+yyTop]).String2Double()); yyVal = DL; } break; -case 257: - // line 2223 "./../src/mycompiler/myparser/JavaParser.jay" +case 258: + // line 2231 "./../src/mycompiler/myparser/JavaParser.jay" { Null NN = new Null(); yyVal=NN; } break; -case 258: - // line 2229 "./../src/mycompiler/myparser/JavaParser.jay" +case 259: + // line 2237 "./../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])); @@ -2913,25 +2924,25 @@ case 258: yyVal=CaEx; } break; -case 259: - // line 2238 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 260: - // line 2242 "./../src/mycompiler/myparser/JavaParser.jay" - { - } - break; -case 261: // line 2246 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 262: +case 261: // line 2250 "./../src/mycompiler/myparser/JavaParser.jay" + { + } + break; +case 262: + // line 2254 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 263: + // line 2258 "./../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()); @@ -2942,8 +2953,8 @@ case 262: yyVal=EQ; } break; -case 263: - // line 2260 "./../src/mycompiler/myparser/JavaParser.jay" +case 264: + // line 2268 "./../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()); @@ -2954,14 +2965,14 @@ case 263: yyVal=NEQ; } break; -case 264: - // line 2271 "./../src/mycompiler/myparser/JavaParser.jay" +case 265: + // line 2279 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 265: - // line 2275 "./../src/mycompiler/myparser/JavaParser.jay" +case 266: + // line 2283 "./../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()); @@ -2972,8 +2983,8 @@ case 265: yyVal=LO; } break; -case 266: - // line 2285 "./../src/mycompiler/myparser/JavaParser.jay" +case 267: + // line 2293 "./../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()); @@ -2984,8 +2995,8 @@ case 266: yyVal=GO; } break; -case 267: - // line 2295 "./../src/mycompiler/myparser/JavaParser.jay" +case 268: + // line 2303 "./../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()); @@ -2996,8 +3007,8 @@ case 267: yyVal=LE; } break; -case 268: - // line 2305 "./../src/mycompiler/myparser/JavaParser.jay" +case 269: + // line 2313 "./../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()); @@ -3008,8 +3019,8 @@ case 268: yyVal=GE; } break; -case 269: - // line 2315 "./../src/mycompiler/myparser/JavaParser.jay" +case 270: + // line 2323 "./../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])); @@ -3017,20 +3028,20 @@ case 269: yyVal=ISO; } break; -case 270: - // line 2323 "./../src/mycompiler/myparser/JavaParser.jay" - { - yyVal=((Expr)yyVals[0+yyTop]); - } - break; case 271: - // line 2328 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2331 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; case 272: - // line 2332 "./../src/mycompiler/myparser/JavaParser.jay" + // line 2336 "./../src/mycompiler/myparser/JavaParser.jay" + { + yyVal=((Expr)yyVals[0+yyTop]); + } + break; +case 273: + // line 2340 "./../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()); @@ -3041,8 +3052,8 @@ case 272: yyVal=AD; } break; -case 273: - // line 2342 "./../src/mycompiler/myparser/JavaParser.jay" +case 274: + // line 2350 "./../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()); @@ -3053,14 +3064,14 @@ case 273: yyVal=MI; } break; -case 274: - // line 2353 "./../src/mycompiler/myparser/JavaParser.jay" +case 275: + // line 2361 "./../src/mycompiler/myparser/JavaParser.jay" { yyVal=((Expr)yyVals[0+yyTop]); } break; -case 275: - // line 2357 "./../src/mycompiler/myparser/JavaParser.jay" +case 276: + // line 2365 "./../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()); @@ -3071,8 +3082,8 @@ case 275: yyVal=ML; } break; -case 276: - // line 2367 "./../src/mycompiler/myparser/JavaParser.jay" +case 277: + // line 2375 "./../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()); @@ -3083,8 +3094,8 @@ case 276: yyVal = DV; } break; -case 277: - // line 2377 "./../src/mycompiler/myparser/JavaParser.jay" +case 278: + // line 2385 "./../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()); @@ -3095,7 +3106,7 @@ case 277: yyVal =MD; } break; - // line 3099 "-" + // line 3110 "-" } yyTop -= yyLen[yyN]; yyState = yyStates[yyTop]; @@ -3133,27 +3144,27 @@ case 277: 7, 7, 40, 40, 28, 32, 32, 3, 3, 33, 33, 15, 15, 41, 41, 41, 41, 41, 41, 29, 4, 4, 31, 16, 16, 16, 30, 113, 113, 5, - 5, 17, 17, 110, 106, 106, 10, 6, 19, 11, - 11, 11, 11, 11, 13, 42, 42, 107, 107, 108, - 108, 108, 108, 48, 94, 97, 97, 93, 93, 95, - 95, 96, 96, 12, 12, 12, 12, 12, 12, 12, + 5, 17, 17, 110, 106, 106, 10, 6, 19, 19, + 11, 11, 11, 11, 11, 13, 42, 42, 107, 107, + 108, 108, 108, 108, 48, 94, 97, 97, 93, 93, + 95, 95, 96, 96, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 39, 39, 39, 39, 18, 18, - 43, 44, 44, 50, 50, 109, 109, 38, 38, 14, - 14, 36, 36, 37, 20, 80, 80, 49, 49, 103, - 103, 35, 21, 78, 46, 81, 81, 81, 81, 81, - 71, 71, 34, 34, 47, 47, 79, 79, 79, 79, - 86, 87, 83, 84, 84, 84, 84, 84, 84, 84, - 84, 69, 69, 89, 77, 90, 90, 82, 82, 82, - 68, 99, 99, 72, 72, 72, 72, 72, 72, 88, - 85, 67, 67, 101, 45, 45, 51, 51, 70, 102, - 100, 100, 100, 100, 100, 100, 73, 74, 75, 76, - 104, 104, 104, 104, 91, 91, 66, 66, 57, 57, - 57, 57, 57, 55, 55, 55, 55, 54, 65, 65, - 53, 53, 53, 53, 56, 56, 56, 64, 64, 52, - 52, 52, 52, 52, 52, 52, 52, 111, 63, 63, - 62, 62, 62, 61, 61, 61, 61, 61, 61, 60, - 59, 59, 59, 58, 58, 58, 58, + 12, 12, 12, 12, 12, 39, 39, 39, 39, 18, + 18, 43, 44, 44, 50, 50, 109, 109, 38, 38, + 14, 14, 36, 36, 37, 20, 80, 80, 49, 49, + 103, 103, 35, 21, 78, 46, 81, 81, 81, 81, + 81, 71, 71, 34, 34, 47, 47, 79, 79, 79, + 79, 86, 87, 83, 84, 84, 84, 84, 84, 84, + 84, 84, 69, 69, 89, 77, 90, 90, 82, 82, + 82, 68, 99, 99, 72, 72, 72, 72, 72, 72, + 88, 85, 67, 67, 101, 45, 45, 51, 51, 70, + 102, 100, 100, 100, 100, 100, 100, 73, 74, 75, + 76, 104, 104, 104, 104, 91, 91, 66, 66, 57, + 57, 57, 57, 57, 55, 55, 55, 55, 54, 65, + 65, 53, 53, 53, 53, 56, 56, 56, 64, 64, + 52, 52, 52, 52, 52, 52, 52, 52, 111, 63, + 63, 62, 62, 62, 61, 61, 61, 61, 61, 61, + 60, 59, 59, 59, 58, 58, 58, 58, }; protected static final short yyLen [] = { 2, 1, 3, 1, 2, 3, 1, 2, 1, 1, 1, @@ -3163,1008 +3174,1026 @@ case 277: 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, 0, 3, 1, - 1, 1, 1, 2, 2, 3, 6, 2, 3, 2, - 2, 2, 3, 4, 2, 2, 3, 3, 4, 2, - 3, 3, 4, 2, 1, 1, 3, 1, 3, 1, - 3, 1, 3, 5, 2, 3, 6, 3, 6, 4, - 7, 2, 3, 3, 4, 5, 6, 6, 7, 1, - 4, 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, + 1, 1, 1, 2, 2, 3, 6, 2, 4, 3, + 2, 2, 2, 3, 4, 2, 2, 3, 3, 4, + 2, 3, 3, 4, 2, 1, 1, 3, 1, 3, + 1, 3, 1, 3, 5, 2, 3, 6, 3, 6, + 4, 7, 2, 3, 3, 4, 5, 6, 6, 7, + 1, 4, 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, 58, 0, 59, 56, 55, 54, 0, 57, 0, 10, 11, 0, 43, 0, 6, 0, 0, 0, 0, 0, 0, 44, 7, 0, 0, 0, 0, 16, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 95, 96, - 0, 15, 0, 45, 60, 63, 46, 142, 164, 163, + 0, 0, 0, 28, 0, 0, 0, 0, 96, 97, + 0, 15, 0, 45, 60, 63, 46, 143, 165, 164, 0, 0, 0, 0, 41, 72, 0, 73, 0, 0, - 52, 64, 0, 0, 0, 145, 0, 144, 152, 143, + 52, 64, 0, 0, 0, 146, 0, 145, 153, 144, 0, 0, 0, 0, 66, 0, 65, 18, 0, 0, 20, 0, 50, 0, 48, 0, 61, 71, 70, 0, 0, 0, 0, 30, 17, 0, 0, 29, 0, 0, - 0, 27, 0, 67, 0, 74, 0, 0, 0, 102, - 0, 131, 85, 0, 123, 42, 53, 0, 82, 80, - 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, - 0, 0, 0, 0, 75, 22, 47, 25, 49, 62, - 78, 0, 51, 19, 0, 21, 31, 100, 0, 97, - 0, 0, 0, 34, 0, 0, 0, 242, 0, 250, - 254, 256, 255, 251, 257, 252, 253, 0, 0, 0, - 184, 86, 0, 0, 129, 0, 8, 0, 0, 167, - 0, 146, 0, 0, 241, 238, 0, 0, 244, 0, - 195, 196, 0, 0, 169, 156, 132, 147, 159, 160, - 157, 158, 168, 170, 194, 0, 0, 114, 140, 149, - 0, 134, 0, 0, 0, 138, 0, 153, 130, 0, - 0, 0, 0, 0, 9, 0, 233, 274, 0, 0, - 264, 0, 0, 0, 0, 0, 0, 0, 182, 161, - 79, 229, 230, 236, 237, 162, 183, 243, 247, 88, - 0, 126, 128, 108, 83, 0, 0, 124, 0, 0, - 76, 0, 90, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 69, 0, 0, 186, 0, 0, 0, 217, - 218, 207, 0, 0, 0, 0, 87, 133, 155, 204, - 0, 0, 219, 220, 185, 215, 216, 212, 213, 214, - 211, 0, 148, 0, 141, 103, 0, 121, 0, 0, - 0, 0, 231, 232, 246, 0, 0, 0, 0, 0, + 0, 27, 0, 67, 0, 74, 0, 0, 0, 103, + 0, 132, 86, 0, 124, 42, 53, 0, 83, 81, + 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 22, 47, 25, 49, + 62, 78, 0, 51, 19, 0, 21, 31, 101, 0, + 98, 0, 0, 0, 34, 0, 0, 0, 243, 0, + 251, 255, 257, 256, 252, 258, 253, 254, 0, 0, + 0, 185, 87, 0, 0, 130, 0, 8, 0, 0, + 168, 0, 147, 0, 0, 242, 239, 0, 0, 245, + 0, 196, 197, 0, 0, 170, 157, 133, 148, 160, + 161, 158, 159, 169, 171, 195, 0, 0, 115, 141, + 150, 0, 135, 0, 0, 0, 139, 0, 154, 131, + 0, 0, 0, 0, 0, 9, 0, 234, 275, 0, + 0, 265, 0, 0, 0, 0, 0, 0, 0, 183, + 162, 80, 230, 231, 237, 238, 163, 184, 244, 248, + 89, 0, 127, 129, 109, 84, 0, 0, 0, 0, + 125, 0, 0, 0, 76, 0, 91, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 69, 0, 0, 187, + 0, 0, 0, 218, 219, 208, 0, 0, 0, 0, + 88, 134, 156, 205, 0, 0, 220, 221, 186, 216, + 217, 213, 214, 215, 212, 0, 149, 0, 142, 104, + 0, 122, 0, 0, 0, 0, 232, 233, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 115, 0, 110, 84, 0, 92, 91, - 0, 0, 101, 0, 39, 40, 0, 37, 0, 0, - 0, 187, 0, 208, 12, 221, 150, 0, 205, 209, - 206, 0, 192, 193, 135, 0, 0, 139, 0, 0, - 275, 276, 277, 0, 0, 269, 267, 268, 265, 266, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 222, 0, 118, 109, 225, 0, 258, 0, 0, - 136, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 171, 0, 190, 189, 173, 151, 223, 0, - 226, 119, 111, 137, 36, 181, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 180, 179, 0, 178, - 0, 0, 0, 0, 0, 172, 177, 176, 175, 0, - 0, 0, 174, 0, 201, 0, 200, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 116, + 0, 111, 85, 0, 93, 92, 0, 0, 102, 0, + 39, 40, 0, 37, 0, 0, 0, 188, 0, 209, + 12, 222, 151, 0, 206, 210, 207, 0, 193, 194, + 136, 0, 0, 140, 0, 0, 276, 277, 278, 0, + 0, 270, 268, 269, 266, 267, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 94, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 119, 110, 226, 0, 259, 0, 0, 137, 0, 77, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 0, 191, 190, 174, 152, 224, 0, 227, 120, 112, + 138, 36, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 181, 180, 0, 179, 0, 0, 0, + 0, 0, 173, 178, 177, 176, 0, 0, 0, 175, + 0, 202, 0, 201, }; protected static final short yyDgoto [] = { 9, 10, 11, 34, 86, 87, 88, 28, 17, 19, 89, - 56, 57, 58, 59, 60, 61, 62, 174, 64, 175, - 66, 225, 177, 0, 0, 0, 178, 29, 44, 68, - 47, 30, 35, 69, 70, 71, 72, 217, 179, 12, - 13, 180, 113, 181, 360, 182, 183, 115, 212, 283, - 184, 185, 186, 187, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 189, - 357, 190, 242, 243, 244, 245, 195, 0, 196, 197, - 198, 424, 199, 200, 425, 201, 202, 426, 203, 204, - 246, 14, 39, 40, 149, 111, 41, 0, 247, 302, - 291, 206, 358, 248, 15, 75, 76, 135, 265, 77, - 249, 153, 104, 154, + 56, 57, 58, 59, 60, 61, 62, 175, 64, 176, + 66, 226, 178, 0, 0, 0, 179, 29, 44, 68, + 47, 30, 35, 69, 70, 71, 72, 218, 180, 12, + 13, 181, 113, 182, 366, 183, 184, 115, 213, 287, + 185, 186, 187, 188, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 190, + 363, 191, 243, 244, 245, 246, 196, 0, 197, 198, + 199, 431, 200, 201, 432, 202, 203, 433, 204, 205, + 247, 14, 39, 40, 150, 111, 41, 0, 248, 306, + 295, 207, 364, 249, 15, 75, 76, 136, 269, 77, + 250, 154, 104, 155, }; - protected static final short yySindex [] = { 499, - 0, -186, 0, 0, 0, 0, -164, 0, 0, 0, - 0, 884, 0, 499, 0, 121, -103, 126, -92, -186, - -164, 0, 0, -154, -109, -109, 330, 0, -97, -6, - -154, -109, 781, 0, 2, -103, -92, -31, 0, 0, - 27, 0, 191, 0, 0, 0, 0, 0, 0, 0, - 138, 28, 303, -154, 0, 0, 138, 0, 59, 1621, - 0, 0, 239, 260, 293, 0, 56, 0, 0, 0, - 272, 277, 68, 460, 0, 249, 0, 0, -6, -109, - 0, 40, 0, 303, 0, 3494, 0, 0, 0, 319, - 28, 460, -109, 0, 0, -97, -6, 0, 2, -109, - -154, 0, -58, 0, 3104, 0, 303, 59, -39, 0, - 110, 0, 0, -109, 0, 0, 0, 82, 0, 0, - 1028, -5, 294, 298, 303, 59, 255, 0, 28, -154, - 59, 68, 249, 3186, 0, 0, 0, 0, 0, 0, - 0, 85, 0, 0, -6, 0, 0, 0, 354, 0, - 333, -115, 150, 0, 359, 362, 492, 0, 363, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1079, - 0, 0, 23, 373, 0, 191, 0, 67, 82, 0, - 3295, 0, 347, 92, 0, 0, 374, -246, 0, 365, + protected static final short yySindex [] = { 363, + 0, -245, 0, 0, 0, 0, -200, 0, 0, 0, + 0, 431, 0, 363, 0, 88, -114, 132, -80, -245, + -200, 0, 0, -81, -74, -74, 3463, 0, -98, 5, + -81, -74, 3508, 0, 8, -114, -80, -54, 0, 0, + 9, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 123, -34, 211, -81, 0, 0, 123, 0, 11, 3543, + 0, 0, 118, 203, 228, 0, 87, 0, 0, 0, + 222, 268, 312, 747, 0, 238, 0, 0, 5, -74, + 0, 22, 0, 211, 0, 3571, 0, 0, 0, 307, + -34, 747, -74, 0, 0, -98, 5, 0, 8, -74, + -81, 0, -62, 0, 3073, 0, 211, 11, -30, 0, + 74, 0, 0, -74, 0, 0, 0, 69, 0, 0, + 997, -24, 282, 291, 11, 139, 0, 322, 69, -34, + -81, 11, 84, 238, 3155, 0, 0, 0, 0, 0, + 0, 0, 89, 0, 0, 5, 0, 0, 0, 355, + 0, 343, -64, 95, 0, 366, 368, 478, 0, 373, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 101, 0, 0, -6, 361, 0, 171, 0, 115, 69, + 0, 3264, 0, 356, 91, 0, 0, 370, 47, 0, + 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, + 0, 69, 0, 26, -81, 159, 0, 380, 0, 0, + -74, -6, 101, 101, 101, 0, 47, 0, 0, 274, + 305, 0, 25, 10, 389, 337, 304, 131, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, - 82, 0, 14, -154, 331, 0, 382, 0, 0, -109, - 23, 1079, 1079, 1079, 0, -246, 0, 0, 269, 282, - 0, -28, -217, 393, 338, 311, 137, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 70, 0, 0, 0, 0, 59, 159, 0, 59, 258, - 0, 409, 0, 3349, 3397, 42, 0, -109, -58, -109, - -109, -36, 0, 522, 1028, 0, 391, 1028, 67, 0, - 0, 0, 279, 151, 660, 373, 0, 0, 0, 0, - 687, 160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1028, 0, -74, 0, 0, 28, 0, 28, -109, - 420, 18, 0, 0, 0, 1079, 1079, 1079, 1079, 1079, - -109, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 0, 0, 380, 0, 0, 714, 0, 0, - 3449, 1028, 0, 163, 0, 0, 405, 0, 792, 407, - 426, 0, 427, 0, 0, 0, 0, 290, 0, 0, - 0, 429, 0, 0, 0, 59, 59, 0, 809, 1079, - 0, 0, 0, 269, 269, 0, 0, 0, 0, 0, - -28, -28, -217, 393, 338, 311, 137, 28, 28, 412, - 295, 0, 414, 0, -58, 836, 415, 877, 1140, 1246, - 1028, 0, 930, 0, 0, 0, 301, 0, 59, 59, - 0, 419, 0, 164, 1246, 439, 957, 984, 422, 442, - 443, 0, 0, 218, 0, 0, 0, 0, 0, 308, - 0, 0, 0, 0, 0, 0, 1246, 1246, 445, 1246, - 446, 1001, 1028, 1028, 1246, 0, 0, 0, 1246, 0, - 1246, 1246, 448, 451, 452, 0, 0, 0, 0, 1246, - 1140, 1140, 0, 229, 0, 1140, 0, + 0, 255, 0, 0, 0, 0, 997, 390, 11, 141, + 0, 211, 11, 181, 0, 416, 0, 3318, 3366, 36, + 0, -74, -62, -74, -74, -37, 0, 528, 997, 0, + 400, 997, 115, 0, 0, 0, 266, 165, 461, 361, + 0, 0, 0, 0, 560, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 997, 0, 321, 0, 0, + -34, 0, -34, -74, 428, 41, 0, 0, 0, 101, + 101, 101, 101, 101, -74, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 0, 0, 997, 0, + 187, 0, 0, 681, 0, 0, 3418, 997, 0, 147, + 0, 0, 409, 0, 757, 415, 434, 0, 435, 0, + 0, 0, 0, 289, 0, 0, 0, 439, 0, 0, + 0, 11, 11, 0, 800, 101, 0, 0, 0, 274, + 274, 0, 0, 0, 0, 0, 25, 25, 10, 389, + 337, 304, 131, 0, -34, -34, 421, 290, 0, 424, + 0, -62, 839, 427, 871, 1051, 1595, 997, 0, 898, + 0, 0, 0, 297, 0, 11, 11, 0, 430, 0, + 150, 1595, 449, 926, 953, 432, 455, 460, 0, 0, + 245, 0, 0, 0, 0, 0, 308, 0, 0, 0, + 0, 0, 0, 1595, 1595, 464, 1595, 469, 970, 997, + 997, 1595, 0, 0, 0, 1595, 0, 1595, 1595, 475, + 476, 485, 0, 0, 0, 0, 1595, 1051, 1051, 0, + 262, 0, 1051, 0, }; protected static final short yyRindex [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 498, 0, -71, 0, -81, 0, 0, + 0, 0, 0, 532, 0, -110, 0, -78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, - 0, 0, 1301, 0, 0, 0, 0, 0, 0, 0, - 2008, 0, -11, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 271, 0, -83, 0, 0, 0, - 68, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -46, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, + 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, + 1977, 0, 690, 0, 0, 0, 0, 0, -13, 0, + 0, 0, 0, 0, 244, 0, -29, 0, 0, 0, + 334, 344, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 34, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, - 186, 208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, - 0, 0, 0, 455, 0, -37, 0, 625, 0, 0, - 0, 0, 0, 0, 0, 0, 1356, 0, 0, 0, - 0, 0, -20, -8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -42, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 3240, 0, 0, 2880, 2264, - 0, 2460, 2515, 1410, 1464, 1715, 1769, 1807, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 244, 0, 0, + 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, + 0, 193, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 0, 0, 0, 479, 0, 402, 0, 619, 0, + 0, 0, 0, 0, 0, 0, 0, 1325, 0, 0, + 0, 0, 0, -27, -25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -43, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 0, 0, 3209, 0, 0, 2849, + 2233, 0, 2429, 2484, 1379, 1433, 1684, 1738, 1776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 72, 0, 0, 79, 0, - 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1844, 0, - 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 247, 37, 0, 0, -39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1813, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 87, 0, 0, 0, - 0, 0, 0, 2934, 2989, 0, 0, 0, 0, 0, - 2629, 2820, 2569, 1904, 2095, 2155, 2209, 0, 0, 0, + 0, 53, 55, 0, 0, 0, 0, 0, 0, 2903, + 2958, 0, 0, 0, 0, 0, 2598, 2789, 2538, 1873, + 2064, 2124, 2178, 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, 90, 91, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3050, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3019, 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, }; protected static final short yyGindex [] = { 0, - 0, 0, 30, 0, 418, 0, 434, 487, 489, 0, - 0, 11, 0, -51, 0, 461, 0, 26, 449, 10, - -22, 543, 0, 0, 0, 0, 1467, 480, -86, -19, - 135, 37, 491, 0, 0, 313, -88, 0, -17, 136, - 44, -32, 0, -113, 0, 0, 0, 4, 220, 84, - 0, 0, 0, 0, -105, 0, 372, -78, 0, 118, - 33, 201, 207, 209, 212, 206, 0, 0, 238, 0, - 184, 0, -87, -33, -15, 39, 0, 0, -339, -166, - 1876, -222, 0, 0, 0, 0, 0, 0, 0, 0, - 242, 0, -24, 444, 0, 416, 516, 0, 57, 0, - 0, 0, -261, 112, 534, 0, 479, 421, 0, 0, - 0, -234, 0, 284, + 0, 0, 24, 0, 459, 0, 28, 526, 533, 0, + 0, 70, 0, -50, 0, 487, 0, 38, 486, 77, + -82, 524, 0, 0, 0, 0, 1131, 522, -95, -20, + 49, 39, 525, 0, 0, 341, -67, 0, -23, 73, + 17, -36, 0, -99, 0, 0, 0, -94, 257, 102, + 0, 0, 0, 0, -105, 0, 365, 13, 0, -2, + 48, 237, 249, 265, 256, 236, 0, 0, 272, 0, + 246, 0, -87, -33, -15, 40, 0, 0, -352, -160, + 1343, -176, 0, 0, 0, 0, 0, 0, 0, 0, + 301, 0, -26, 508, 0, 481, 549, 0, 75, 0, + 0, 0, -297, 108, 597, 0, 540, 489, 0, 0, + 0, -229, 0, 339, }; - protected static final short yyTable [] = { 188, - 108, 209, 9, 243, 152, 45, 46, 68, 9, 73, - 242, 148, 46, 15, 288, 91, 199, 191, 106, 27, - 264, 126, 131, 9, 112, 27, 152, 216, 188, 110, - 33, 324, 153, 325, 344, 250, 65, 80, 197, 126, - 131, 24, 73, 90, 15, 93, 191, 153, 15, 153, - 198, 26, 63, 68, 305, 22, 132, 304, 370, 422, - 46, 293, 294, 282, 94, 79, 98, 120, 91, 65, - 101, 192, 97, 46, 142, 188, 391, 256, 112, 15, - 259, 109, 65, 101, 326, 63, 210, 327, 102, 193, - 259, 211, 105, 191, 45, 122, 90, 288, 127, 210, - 192, 138, 342, 122, 211, 110, 285, 407, 123, 94, - 333, 208, 284, 304, 16, 103, 27, 22, 193, 15, - 153, 422, 422, 153, 33, 15, 422, 219, 147, 254, - 113, 120, 145, 311, 258, 22, 18, 106, 153, 15, - 15, 430, 112, 194, 116, 104, 38, 192, 117, 107, - 210, 341, 270, 214, 301, 211, 105, 260, 188, 188, - 414, 205, 74, 308, 25, 193, 83, 122, 92, 271, - 15, 215, 194, 94, 288, 32, 191, 191, 26, 343, - 24, 345, 346, 48, 26, 31, 24, 49, 303, 306, - 205, 42, 213, 272, 113, 74, 26, 309, 210, 50, - 45, 106, 214, 211, 286, 251, 272, 272, 116, 104, - 26, 273, 117, 107, 137, 98, 207, 68, 48, 194, - 335, 92, 49, 368, 394, 435, 168, 143, 99, 32, - 192, 192, 376, 98, 50, 188, 100, 205, 464, 465, - 374, 375, 151, 467, 321, 207, 99, 32, 193, 193, - 103, 38, 48, 191, 15, 366, 49, 367, 359, 334, - 105, 168, 336, 68, 347, 243, 243, 35, 50, 38, - 9, 9, 242, 242, 322, 323, 9, 9, 9, 9, - 48, 210, 118, 9, 49, 35, 211, 236, 236, 15, - 45, 153, 207, 188, 188, 168, 50, 119, 118, 237, - 237, 118, 194, 194, 241, 318, 153, 192, 153, 188, - 316, 191, 191, 255, 129, 317, 337, 389, 120, 354, - 205, 205, 304, 168, 319, 193, 320, 191, 107, 129, - 402, 188, 188, 401, 188, 412, 409, 410, 401, 188, - 277, 431, 109, 188, 401, 188, 188, 114, 446, 191, - 191, 401, 191, 121, 188, 188, 188, 191, 381, 382, - 188, 191, 123, 191, 191, 192, 192, 124, 125, 404, - 405, 134, 191, 191, 191, 207, 207, 141, 191, 194, - 15, 192, 218, 193, 193, 266, 252, 15, 15, 54, - 253, 268, 269, 15, 15, 15, 15, 205, 274, 193, - 15, 275, 278, 192, 192, 289, 192, 296, 297, 298, - 299, 192, 432, 433, 300, 192, 118, 192, 192, 292, - 290, 193, 193, 295, 193, 310, 192, 192, 192, 193, - 328, 329, 192, 193, 330, 193, 193, 194, 194, 377, - 378, 379, 380, 331, 193, 193, 193, 332, 338, 352, - 193, 355, 207, 194, 55, 205, 205, 350, 351, 369, - 362, 353, 78, 81, 395, 398, 399, 400, 403, 95, - 411, 205, 413, 417, 361, 194, 194, 434, 194, 437, - 442, 443, 444, 194, 445, 449, 451, 194, 460, 194, - 194, 461, 462, 205, 205, 466, 205, 1, 194, 194, - 194, 205, 127, 140, 194, 205, 36, 205, 205, 37, - 207, 207, 136, 166, 165, 96, 205, 205, 205, 130, - 117, 128, 205, 365, 224, 393, 207, 99, 383, 144, - 146, 221, 397, 312, 222, 384, 223, 387, 385, 363, - 280, 281, 386, 364, 150, 257, 82, 23, 207, 207, - 276, 207, 133, 261, 224, 348, 207, 0, 0, 0, - 207, 221, 207, 207, 222, 0, 223, 43, 43, 67, - 0, 207, 207, 207, 43, 43, 0, 207, 267, 416, - 349, 419, 0, 0, 428, 0, 1, 48, 48, 0, - 0, 49, 49, 313, 314, 315, 0, 0, 3, 0, - 439, 441, 67, 50, 50, 4, 5, 6, 0, 0, - 0, 0, 0, 51, 0, 0, 67, 0, 0, 0, - 52, 307, 43, 0, 0, 453, 454, 455, 43, 0, - 53, 84, 0, 0, 43, 43, 0, 48, 0, 0, - 0, 49, 43, 0, 0, 0, 0, 176, 0, 0, - 0, 43, 0, 50, 0, 0, 43, 0, 0, 0, - 0, 235, 235, 0, 43, 235, 235, 235, 235, 235, - 388, 235, 0, 0, 0, 0, 176, 0, 0, 0, - 42, 0, 0, 235, 235, 210, 235, 371, 372, 373, - 0, 0, 224, 0, 0, 0, 0, 0, 0, 221, - 356, 0, 222, 0, 223, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 43, 1, 48, 235, 224, - 0, 49, 0, 176, 0, 0, 221, 0, 3, 222, - 0, 223, 0, 50, 0, 4, 5, 6, 0, 0, - 0, 408, 0, 8, 0, 0, 224, 0, 235, 235, - 129, 0, 0, 221, 390, 1, 222, 43, 223, 0, - 84, 2, 43, 43, 0, 0, 220, 3, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 0, 158, 7, - 0, 0, 8, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 42, 0, 0, 0, 220, 0, 0, 169, - 170, 0, 0, 0, 0, 0, 176, 176, 158, 105, - 43, 0, 43, 43, 160, 161, 162, 163, 164, 165, - 166, 167, 42, 0, 224, 0, 0, 0, 0, 169, - 170, 221, 0, 0, 222, 0, 223, 0, 0, 0, - 54, 224, 0, 0, 0, 0, 43, 0, 221, 406, - 396, 222, 43, 223, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 43, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 0, 0, 221, 415, 43, 222, 0, - 223, 235, 235, 176, 0, 0, 235, 0, 0, 0, + protected static final short yyTable [] = { 189, + 153, 108, 244, 73, 45, 46, 243, 15, 27, 91, + 210, 46, 26, 209, 106, 200, 251, 192, 217, 305, + 112, 292, 125, 132, 27, 153, 211, 110, 22, 189, + 255, 198, 149, 199, 286, 268, 73, 261, 15, 211, + 125, 132, 33, 350, 24, 121, 398, 192, 80, 129, + 133, 93, 101, 429, 113, 16, 78, 81, 94, 46, + 98, 68, 91, 95, 63, 101, 309, 79, 143, 308, + 102, 193, 46, 106, 97, 109, 189, 414, 123, 259, + 83, 376, 263, 139, 328, 212, 329, 95, 114, 194, + 22, 211, 263, 45, 192, 107, 348, 63, 212, 74, + 18, 193, 90, 65, 110, 92, 137, 292, 22, 121, + 126, 117, 437, 105, 118, 429, 429, 215, 113, 194, + 429, 108, 148, 145, 147, 315, 122, 27, 138, 307, + 33, 123, 74, 225, 146, 216, 65, 106, 276, 211, + 222, 144, 123, 223, 195, 224, 103, 24, 193, 128, + 212, 95, 114, 25, 289, 90, 277, 26, 92, 107, + 288, 118, 189, 189, 340, 312, 194, 26, 342, 347, + 264, 26, 421, 271, 195, 117, 119, 105, 118, 206, + 192, 192, 118, 26, 215, 108, 292, 32, 310, 24, + 276, 31, 313, 276, 220, 15, 154, 256, 212, 154, + 45, 15, 341, 274, 349, 258, 351, 352, 401, 206, + 214, 442, 208, 100, 154, 15, 15, 290, 374, 38, + 275, 195, 99, 252, 118, 211, 42, 48, 68, 100, + 103, 49, 68, 48, 193, 193, 32, 49, 152, 343, + 99, 189, 208, 50, 68, 105, 15, 100, 15, 50, + 109, 48, 194, 194, 32, 49, 206, 382, 365, 192, + 372, 120, 373, 353, 244, 244, 107, 50, 243, 243, + 169, 68, 300, 301, 302, 303, 169, 411, 412, 304, + 237, 237, 238, 238, 212, 38, 35, 130, 121, 208, + 154, 471, 472, 45, 169, 337, 474, 325, 308, 114, + 189, 189, 130, 38, 35, 154, 360, 195, 195, 308, + 322, 330, 123, 193, 331, 320, 189, 396, 192, 192, + 321, 439, 440, 383, 384, 385, 386, 326, 327, 409, + 419, 194, 408, 408, 192, 380, 381, 438, 189, 189, + 408, 189, 206, 206, 416, 417, 189, 323, 453, 324, + 189, 408, 189, 189, 297, 298, 192, 192, 124, 192, + 135, 189, 189, 189, 192, 142, 242, 189, 192, 219, + 192, 192, 193, 193, 253, 208, 208, 387, 388, 192, + 192, 192, 257, 254, 262, 192, 195, 159, 193, 270, + 194, 194, 272, 161, 162, 163, 164, 165, 166, 167, + 168, 42, 273, 281, 118, 278, 194, 279, 170, 171, + 193, 193, 282, 193, 293, 296, 48, 299, 193, 294, + 49, 206, 193, 314, 193, 193, 332, 334, 194, 194, + 333, 194, 50, 193, 193, 193, 194, 335, 336, 193, + 194, 9, 194, 194, 48, 195, 195, 9, 49, 311, + 339, 194, 194, 194, 208, 344, 15, 194, 358, 84, + 50, 195, 9, 15, 15, 361, 368, 375, 402, 15, + 15, 15, 15, 405, 406, 407, 15, 395, 410, 418, + 206, 206, 420, 195, 195, 424, 195, 42, 441, 444, + 449, 195, 68, 225, 450, 195, 206, 195, 195, 451, + 222, 362, 338, 223, 456, 224, 195, 195, 195, 458, + 225, 452, 195, 208, 208, 467, 468, 222, 206, 206, + 223, 206, 224, 356, 357, 469, 206, 359, 473, 208, + 206, 1, 206, 206, 284, 285, 280, 167, 166, 126, + 367, 206, 206, 206, 141, 36, 117, 206, 43, 43, + 67, 208, 208, 37, 208, 43, 43, 96, 127, 208, + 225, 99, 316, 208, 371, 208, 208, 222, 389, 48, + 223, 393, 224, 49, 208, 208, 208, 369, 48, 82, + 208, 390, 49, 67, 394, 50, 355, 317, 318, 319, + 392, 126, 225, 400, 50, 126, 43, 67, 391, 222, + 404, 128, 223, 43, 224, 128, 370, 126, 151, 43, + 23, 260, 53, 134, 354, 43, 43, 128, 0, 1, + 0, 169, 265, 43, 0, 2, 0, 0, 177, 0, + 0, 3, 43, 0, 126, 0, 0, 43, 4, 5, + 6, 0, 0, 7, 128, 43, 8, 0, 423, 0, + 426, 0, 0, 435, 0, 236, 236, 0, 177, 236, + 236, 236, 236, 236, 0, 236, 0, 0, 0, 446, + 448, 0, 0, 0, 0, 0, 0, 236, 236, 211, + 236, 0, 105, 0, 377, 378, 379, 1, 0, 0, + 0, 0, 0, 20, 460, 461, 462, 43, 0, 3, + 0, 0, 68, 0, 0, 177, 4, 5, 6, 9, + 9, 21, 236, 225, 8, 9, 9, 9, 9, 0, + 222, 397, 9, 223, 0, 224, 0, 0, 0, 0, + 0, 0, 0, 154, 0, 221, 0, 0, 0, 43, + 415, 0, 236, 236, 43, 43, 0, 159, 154, 15, + 154, 0, 221, 161, 162, 163, 164, 165, 166, 167, + 168, 42, 0, 0, 159, 0, 0, 0, 170, 171, + 161, 162, 163, 164, 165, 166, 167, 168, 42, 0, + 15, 0, 0, 0, 0, 170, 171, 0, 0, 225, + 0, 177, 177, 0, 0, 43, 222, 43, 43, 223, + 0, 224, 221, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 159, 403, 0, 0, 0, 0, + 161, 162, 163, 164, 165, 166, 167, 168, 42, 0, + 0, 43, 225, 0, 221, 170, 171, 43, 0, 222, + 413, 0, 223, 0, 224, 0, 159, 0, 43, 0, + 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, + 42, 0, 0, 0, 43, 0, 0, 170, 171, 0, + 177, 225, 0, 0, 0, 236, 236, 0, 222, 422, + 236, 223, 0, 224, 0, 0, 0, 236, 0, 0, + 0, 236, 236, 0, 236, 236, 236, 0, 0, 0, + 0, 0, 236, 225, 0, 0, 0, 0, 0, 236, + 222, 0, 0, 223, 0, 224, 0, 0, 0, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 0, 425, + 225, 0, 211, 211, 211, 211, 0, 222, 436, 211, + 223, 0, 224, 0, 0, 0, 0, 15, 0, 0, + 0, 15, 0, 0, 0, 221, 0, 0, 225, 0, + 0, 0, 0, 15, 0, 222, 445, 159, 223, 0, + 224, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 42, 0, 0, 0, 225, 0, 0, 170, 171, + 15, 0, 222, 447, 0, 223, 0, 224, 0, 0, + 0, 0, 225, 1, 48, 0, 0, 0, 49, 222, + 459, 0, 223, 0, 224, 3, 0, 0, 0, 0, + 50, 0, 4, 5, 6, 0, 0, 0, 0, 225, + 8, 221, 0, 0, 0, 0, 222, 130, 0, 223, + 0, 224, 0, 159, 0, 0, 0, 84, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 42, 0, 0, + 0, 0, 0, 0, 170, 171, 0, 0, 0, 0, + 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, + 174, 0, 161, 162, 163, 164, 165, 166, 167, 168, + 42, 0, 0, 0, 0, 0, 0, 170, 171, 172, + 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 161, 162, 163, 164, 165, 166, 167, 168, 42, + 0, 0, 0, 0, 0, 221, 170, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 42, 221, 105, 0, 0, 0, 0, 170, 171, + 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, + 161, 162, 163, 164, 165, 166, 167, 168, 42, 0, + 221, 0, 0, 0, 0, 170, 171, 0, 0, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 168, 42, 221, 0, 0, + 0, 0, 0, 170, 171, 0, 0, 0, 0, 159, + 0, 0, 0, 0, 221, 161, 162, 163, 164, 165, + 166, 167, 168, 42, 0, 0, 159, 0, 0, 0, + 170, 171, 161, 162, 163, 164, 165, 166, 167, 168, + 42, 221, 0, 0, 0, 0, 0, 170, 171, 0, + 0, 0, 0, 159, 0, 0, 0, 0, 0, 161, + 162, 163, 164, 165, 166, 167, 168, 42, 79, 80, + 283, 283, 0, 0, 170, 171, 68, 68, 0, 68, + 68, 68, 68, 68, 68, 68, 68, 0, 0, 0, + 0, 156, 427, 0, 0, 0, 0, 0, 68, 0, + 0, 68, 0, 158, 0, 0, 0, 159, 0, 0, + 0, 0, 428, 161, 162, 163, 164, 165, 166, 167, + 168, 42, 0, 283, 283, 283, 0, 0, 170, 171, + 68, 235, 235, 68, 80, 235, 235, 235, 235, 235, + 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 235, 0, 235, 0, 0, 0, + 0, 0, 68, 68, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 249, 0, 0, 235, 249, + 249, 249, 249, 249, 249, 249, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 249, 249, 0, + 249, 0, 0, 0, 0, 0, 0, 0, 235, 235, + 283, 283, 283, 283, 283, 0, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 0, 0, 240, + 240, 0, 249, 240, 240, 240, 240, 240, 240, 240, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 240, 240, 0, 240, 0, 80, 80, 0, 0, + 0, 80, 249, 249, 0, 0, 283, 0, 80, 0, + 0, 0, 0, 80, 0, 80, 80, 80, 0, 0, + 0, 0, 0, 80, 0, 0, 68, 68, 0, 0, + 80, 68, 0, 0, 0, 0, 0, 0, 68, 0, + 80, 0, 68, 68, 0, 68, 68, 68, 0, 0, + 0, 68, 0, 68, 0, 0, 240, 240, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 0, + 0, 235, 235, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 235, 235, 0, - 235, 235, 235, 0, 0, 85, 0, 0, 235, 224, - 0, 0, 0, 0, 0, 235, 221, 0, 0, 222, - 0, 223, 0, 0, 0, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 220, 418, 0, 0, 210, 210, - 210, 210, 0, 0, 0, 210, 158, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 42, 220, 224, 0, 0, 0, 0, 169, 170, 221, - 429, 0, 222, 158, 223, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 42, 220, 224, - 0, 0, 0, 0, 169, 170, 221, 438, 0, 222, - 158, 223, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 42, 0, 224, 0, 0, 0, - 0, 169, 170, 221, 440, 0, 222, 0, 223, 0, - 0, 0, 0, 224, 0, 0, 0, 1, 48, 0, - 221, 452, 49, 222, 0, 223, 0, 0, 0, 3, - 0, 0, 0, 0, 50, 0, 4, 5, 6, 0, - 224, 0, 0, 0, 8, 0, 220, 221, 0, 0, - 222, 52, 223, 0, 0, 0, 0, 0, 158, 0, - 0, 84, 0, 220, 160, 161, 162, 163, 164, 165, - 166, 167, 42, 0, 0, 158, 0, 0, 0, 169, - 170, 160, 161, 162, 163, 164, 165, 166, 167, 42, - 220, 224, 0, 0, 0, 0, 169, 170, 221, 0, - 0, 222, 158, 223, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 42, 0, 0, 0, - 1, 0, 0, 169, 170, 0, 20, 0, 0, 0, - 0, 220, 3, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 0, 158, 21, 0, 0, 8, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 42, 0, 173, - 0, 0, 0, 0, 169, 170, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, - 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 42, 220, 0, 0, 0, 0, 0, 169, 170, 0, - 0, 0, 0, 158, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 42, 220, 0, - 0, 0, 105, 0, 169, 170, 0, 0, 0, 0, - 158, 0, 0, 0, 0, 220, 160, 161, 162, 163, - 164, 165, 166, 167, 42, 173, 0, 158, 0, 0, - 0, 169, 170, 160, 161, 162, 163, 164, 165, 166, - 167, 42, 220, 0, 171, 0, 0, 0, 169, 170, - 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 42, 0, - 0, 0, 0, 0, 0, 169, 170, 68, 68, 0, - 68, 68, 68, 68, 68, 68, 68, 68, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, - 0, 0, 68, 0, 0, 158, 0, 0, 105, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 42, - 0, 0, 0, 0, 0, 0, 169, 170, 0, 0, - 0, 68, 234, 234, 68, 0, 234, 234, 234, 234, - 234, 0, 234, 0, 0, 0, 0, 0, 0, 0, - 155, 420, 0, 0, 234, 234, 0, 234, 0, 0, - 0, 0, 157, 68, 68, 68, 158, 0, 0, 0, - 0, 421, 160, 161, 162, 163, 164, 165, 166, 167, - 42, 0, 0, 0, 0, 0, 248, 169, 170, 234, - 248, 248, 248, 248, 248, 248, 248, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, - 0, 248, 0, 0, 0, 0, 0, 0, 0, 234, - 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 235, 235, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 174, 249, 249, 0, 0, 0, + 249, 0, 0, 0, 0, 0, 0, 249, 0, 0, + 0, 249, 249, 172, 249, 249, 249, 0, 0, 0, + 0, 0, 249, 0, 0, 0, 0, 0, 0, 249, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 0, 240, + 240, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 0, 240, 0, 0, 0, 240, 240, 0, 240, 240, + 240, 0, 0, 0, 0, 0, 240, 105, 0, 0, + 228, 228, 0, 240, 228, 228, 228, 228, 228, 228, + 228, 0, 0, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 228, 228, 0, 228, 0, 0, 430, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 239, 239, 0, 248, 239, 239, 239, 239, 239, 239, - 239, 0, 0, 0, 0, 0, 155, 156, 0, 0, - 0, 0, 239, 239, 0, 239, 0, 0, 157, 0, - 0, 0, 158, 248, 248, 0, 0, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 42, 0, 0, 0, - 0, 0, 0, 169, 170, 0, 0, 68, 68, 0, - 0, 0, 68, 0, 0, 0, 0, 0, 0, 68, - 0, 0, 0, 68, 68, 0, 68, 68, 68, 0, - 0, 0, 68, 0, 68, 0, 0, 239, 239, 0, - 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 0, 0, 234, 234, 0, 0, 0, 234, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 234, 234, - 0, 234, 234, 234, 0, 279, 279, 0, 0, 234, - 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 0, 248, 248, 0, 0, - 0, 248, 0, 0, 0, 0, 0, 0, 248, 0, - 54, 0, 248, 248, 0, 248, 248, 248, 279, 279, - 279, 0, 0, 248, 0, 0, 0, 0, 0, 0, - 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, - 239, 239, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 239, 0, 0, 0, 239, 239, 0, 239, - 239, 239, 0, 0, 0, 116, 0, 239, 0, 0, - 0, 227, 227, 0, 239, 227, 227, 227, 227, 227, - 227, 227, 0, 0, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 227, 227, 0, 227, 0, 0, 0, - 0, 0, 279, 279, 279, 279, 279, 0, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, - 0, 0, 0, 0, 0, 202, 202, 0, 227, 202, - 202, 202, 202, 202, 202, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 202, 202, 0, - 202, 0, 0, 0, 0, 0, 279, 0, 0, 227, - 0, 0, 0, 191, 191, 0, 0, 191, 191, 191, - 191, 191, 191, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 0, 0, 191, 191, 0, 191, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 48, 0, - 235, 235, 49, 0, 235, 235, 235, 235, 235, 3, - 235, 0, 202, 202, 50, 0, 4, 5, 6, 0, - 191, 0, 235, 235, 51, 235, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 191, 0, 0, 0, 0, 0, 235, 0, 0, - 249, 0, 0, 0, 249, 249, 249, 249, 249, 249, - 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 249, 249, 0, 249, 0, 235, 235, 0, - 0, 227, 227, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 227, 227, 0, - 227, 227, 227, 0, 0, 0, 0, 249, 227, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 0, 202, 202, 249, 249, 0, - 202, 0, 0, 0, 0, 0, 0, 202, 0, 0, - 0, 202, 202, 0, 202, 202, 202, 0, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 202, - 0, 0, 0, 191, 191, 0, 0, 57, 191, 202, - 202, 202, 202, 202, 202, 191, 202, 202, 0, 191, - 191, 0, 191, 191, 191, 0, 0, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 191, 0, 0, - 235, 235, 0, 0, 0, 235, 0, 191, 191, 191, - 191, 191, 235, 191, 191, 191, 235, 235, 0, 235, - 235, 235, 0, 0, 0, 0, 0, 235, 0, 0, - 0, 240, 240, 0, 235, 240, 240, 240, 240, 240, - 240, 240, 0, 0, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 240, 240, 0, 240, 0, 0, 0, - 249, 249, 0, 0, 0, 249, 0, 0, 0, 0, - 0, 0, 249, 0, 0, 0, 249, 249, 0, 249, - 249, 249, 0, 0, 0, 0, 0, 249, 0, 0, - 0, 228, 228, 0, 249, 228, 228, 228, 228, 228, - 228, 228, 0, 0, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 228, 228, 0, 228, 0, 240, 240, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 203, 203, 0, 228, 203, 203, + 203, 203, 203, 203, 203, 0, 454, 455, 0, 457, + 0, 0, 0, 0, 463, 0, 203, 203, 464, 203, + 465, 466, 0, 0, 0, 0, 0, 0, 228, 470, + 430, 434, 192, 192, 0, 463, 192, 192, 192, 192, + 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 203, 0, 0, 192, 192, 0, 192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 236, 0, 0, 236, 236, 236, 236, 236, 0, 236, + 0, 203, 203, 0, 0, 156, 157, 0, 0, 192, + 0, 236, 236, 0, 236, 0, 0, 158, 0, 0, + 0, 159, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 42, 0, 0, 0, 192, + 192, 0, 170, 171, 0, 0, 236, 0, 0, 250, + 0, 0, 0, 250, 250, 250, 250, 250, 250, 250, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 250, 250, 0, 250, 0, 236, 236, 0, 0, + 228, 228, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 228, 228, 0, 228, + 228, 228, 0, 0, 0, 0, 250, 228, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 0, 203, 203, 250, 250, 0, 203, + 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, + 203, 203, 0, 203, 203, 203, 0, 0, 0, 0, + 0, 203, 0, 0, 0, 0, 0, 0, 203, 0, + 0, 0, 192, 192, 0, 0, 57, 192, 203, 203, + 203, 203, 203, 203, 192, 203, 203, 0, 192, 192, + 0, 192, 192, 192, 0, 0, 0, 0, 0, 192, + 0, 0, 0, 0, 0, 0, 192, 0, 0, 236, + 236, 0, 0, 0, 236, 0, 192, 192, 192, 192, + 192, 236, 192, 192, 192, 236, 236, 0, 236, 236, + 236, 0, 0, 0, 0, 0, 236, 0, 0, 0, + 241, 241, 0, 236, 241, 241, 241, 241, 241, 241, + 241, 0, 0, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 241, 241, 0, 241, 0, 0, 0, 250, + 250, 0, 0, 0, 250, 0, 0, 0, 0, 0, + 0, 250, 0, 0, 0, 250, 250, 0, 250, 250, + 250, 0, 0, 0, 0, 0, 250, 0, 0, 0, + 229, 229, 0, 250, 229, 229, 229, 229, 229, 229, + 229, 0, 0, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 229, 229, 0, 229, 0, 241, 241, 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, 203, 203, 0, 228, 203, - 203, 203, 203, 203, 203, 203, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 57, 0, 203, 203, 57, - 203, 0, 0, 0, 423, 427, 57, 0, 0, 228, - 0, 57, 0, 57, 57, 57, 0, 0, 0, 0, - 436, 57, 0, 0, 0, 0, 0, 0, 57, 0, - 270, 270, 203, 0, 270, 270, 0, 270, 57, 270, - 270, 0, 447, 448, 0, 450, 0, 0, 0, 0, - 456, 0, 270, 270, 457, 270, 458, 459, 0, 0, - 0, 0, 203, 203, 0, 463, 423, 427, 0, 0, - 0, 456, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 240, 240, 0, 0, 0, 240, 270, 0, 0, - 0, 0, 0, 240, 0, 0, 0, 240, 240, 0, - 240, 240, 240, 0, 0, 0, 0, 0, 240, 0, - 0, 0, 0, 0, 0, 240, 0, 270, 270, 0, - 0, 0, 0, 0, 0, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 0, 0, 0, 0, 0, 0, - 0, 228, 228, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 228, 228, 0, - 228, 228, 228, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 0, 203, 203, 0, 0, 0, - 203, 0, 0, 0, 0, 0, 0, 203, 0, 0, - 0, 203, 203, 0, 203, 203, 203, 0, 0, 0, - 0, 0, 203, 0, 0, 0, 261, 261, 0, 203, - 261, 261, 261, 261, 261, 261, 261, 0, 0, 203, - 203, 203, 203, 203, 203, 0, 203, 203, 261, 0, - 270, 270, 0, 0, 0, 270, 0, 0, 0, 0, - 0, 0, 270, 0, 0, 0, 270, 270, 0, 270, - 270, 270, 0, 0, 0, 0, 0, 270, 0, 0, - 0, 259, 259, 261, 270, 259, 259, 259, 259, 259, - 259, 259, 0, 0, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 259, 259, 0, 259, 0, 0, 0, - 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 204, 0, 229, 204, 204, + 204, 204, 204, 204, 204, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 57, 0, 204, 204, 57, 204, + 0, 0, 0, 0, 0, 57, 0, 0, 229, 0, + 57, 0, 57, 57, 57, 0, 0, 0, 0, 0, + 57, 0, 0, 0, 0, 0, 0, 57, 0, 271, + 271, 204, 0, 271, 271, 0, 271, 57, 271, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 260, 260, 0, 259, 260, - 260, 260, 260, 260, 260, 260, 0, 0, 0, 0, + 0, 271, 271, 0, 271, 0, 0, 0, 0, 0, + 0, 204, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 241, 241, 0, 0, 0, 241, 271, 0, 0, 0, + 0, 0, 241, 0, 0, 0, 241, 241, 0, 241, + 241, 241, 0, 0, 0, 0, 0, 241, 0, 0, + 0, 0, 0, 0, 241, 0, 271, 271, 0, 0, + 0, 0, 0, 0, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 0, 0, 0, 0, 0, 0, 0, + 229, 229, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 229, 229, 0, 229, + 229, 229, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 0, 204, 204, 0, 0, 0, 204, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, + 204, 204, 0, 204, 204, 204, 0, 0, 0, 0, + 0, 204, 0, 0, 0, 262, 262, 0, 204, 262, + 262, 262, 262, 262, 262, 262, 0, 0, 204, 204, + 204, 204, 204, 204, 0, 204, 204, 262, 0, 271, + 271, 0, 0, 0, 271, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 271, 271, 0, 271, 271, + 271, 0, 0, 0, 0, 0, 271, 0, 0, 0, + 260, 260, 262, 271, 260, 260, 260, 260, 260, 260, + 260, 0, 0, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 260, 260, 0, 260, 0, 0, 0, 0, + 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 261, 261, 0, 260, 261, 261, + 261, 261, 261, 261, 261, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 261, 261, 0, 261, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, - 260, 0, 0, 0, 0, 0, 0, 0, 259, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 260, 0, 0, 262, 262, 0, 0, 262, - 262, 262, 262, 262, 262, 262, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, - 0, 0, 260, 260, 0, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 263, 263, 0, 0, 263, 263, + 263, 263, 263, 263, 263, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, + 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, - 0, 261, 262, 0, 0, 0, 0, 0, 261, 0, - 0, 0, 0, 261, 0, 261, 261, 261, 0, 0, - 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, - 261, 0, 262, 262, 0, 0, 0, 0, 0, 0, - 261, 261, 0, 0, 261, 261, 261, 261, 261, 0, - 0, 259, 259, 0, 0, 0, 259, 0, 0, 0, - 0, 0, 0, 259, 0, 0, 0, 259, 259, 0, - 259, 259, 259, 0, 0, 0, 0, 0, 259, 0, - 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 259, 0, 259, 259, 0, - 259, 259, 259, 259, 0, 260, 260, 0, 0, 0, - 260, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 0, 260, 260, 0, 260, 260, 260, 0, 0, 0, - 0, 0, 260, 0, 0, 0, 263, 263, 0, 260, - 263, 263, 263, 263, 263, 263, 263, 0, 0, 260, - 0, 260, 260, 0, 260, 260, 260, 260, 263, 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, 0, - 262, 0, 0, 0, 0, 0, 0, 262, 0, 0, + 262, 263, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 262, 0, 262, 262, 262, 0, 0, 0, - 0, 0, 262, 263, 0, 0, 0, 271, 0, 262, - 271, 0, 271, 271, 271, 271, 0, 0, 0, 262, - 262, 0, 0, 262, 262, 262, 262, 262, 271, 271, - 0, 271, 0, 263, 263, 0, 0, 0, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 0, 0, 262, + 0, 263, 263, 0, 0, 0, 0, 0, 0, 262, + 262, 0, 0, 262, 262, 262, 262, 262, 0, 0, + 260, 260, 0, 0, 0, 260, 0, 0, 0, 0, + 0, 0, 260, 0, 0, 0, 260, 260, 0, 260, + 260, 260, 0, 0, 0, 0, 0, 260, 0, 0, + 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 260, 0, 260, 260, 0, 260, + 260, 260, 260, 0, 261, 261, 0, 0, 0, 261, + 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, + 261, 261, 0, 261, 261, 261, 0, 0, 0, 0, + 0, 261, 0, 0, 0, 264, 264, 0, 261, 264, + 264, 264, 264, 264, 264, 264, 0, 0, 261, 0, + 261, 261, 0, 261, 261, 261, 261, 264, 0, 0, + 0, 0, 0, 0, 263, 263, 0, 0, 0, 263, + 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, + 0, 263, 0, 263, 263, 263, 0, 0, 0, 0, + 0, 263, 264, 0, 0, 0, 272, 0, 263, 272, + 0, 272, 272, 272, 272, 0, 0, 0, 263, 263, + 0, 0, 263, 263, 263, 263, 263, 272, 272, 0, + 272, 0, 264, 264, 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, 272, 0, 271, 272, 0, 272, 272, 272, 272, + 273, 0, 272, 273, 0, 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 272, 272, 0, 272, 0, 0, 0, 0, - 0, 0, 0, 271, 271, 0, 0, 0, 0, 0, + 0, 273, 273, 0, 273, 0, 0, 0, 0, 0, + 0, 0, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 273, 272, 0, 273, - 0, 273, 273, 273, 273, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 273, 273, 0, - 273, 0, 0, 0, 0, 0, 0, 272, 272, 0, + 0, 0, 0, 0, 0, 274, 273, 0, 274, 0, + 274, 274, 274, 274, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 274, 274, 0, 274, + 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 263, 263, 0, 0, - 0, 263, 273, 0, 0, 0, 0, 0, 263, 156, - 0, 0, 0, 263, 0, 263, 263, 263, 0, 0, - 0, 0, 0, 263, 0, 0, 0, 0, 156, 0, - 263, 0, 273, 273, 0, 0, 0, 0, 0, 0, - 263, 263, 0, 0, 263, 263, 263, 263, 263, 0, - 0, 0, 0, 0, 0, 0, 271, 271, 0, 0, - 0, 271, 0, 173, 0, 0, 0, 0, 271, 0, - 0, 0, 271, 271, 0, 271, 271, 271, 0, 0, - 0, 0, 171, 271, 0, 0, 0, 0, 0, 0, - 271, 0, 156, 0, 156, 0, 0, 0, 0, 0, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 0, - 272, 272, 0, 0, 0, 272, 0, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 272, 272, 0, 272, - 272, 272, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 0, 0, 0, 272, 173, 105, 0, 172, 0, - 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 0, 171, 273, 273, 0, 0, 0, - 273, 0, 0, 0, 0, 0, 0, 273, 0, 0, - 0, 273, 273, 0, 273, 273, 273, 0, 0, 0, - 0, 0, 273, 0, 0, 0, 245, 245, 0, 273, - 245, 245, 245, 245, 245, 245, 245, 0, 0, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 245, 245, - 0, 245, 0, 0, 0, 0, 0, 156, 105, 0, - 263, 156, 0, 0, 0, 0, 188, 0, 0, 0, - 156, 156, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 245, 173, 0, 156, 0, 0, 0, - 0, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 0, 0, 171, 0, 0, 0, 156, 156, 0, - 0, 48, 0, 245, 245, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 0, 173, 0, - 158, 0, 0, 0, 0, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 0, 0, 171, 0, 0, - 0, 169, 170, 0, 0, 0, 0, 105, 0, 287, + 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, + 264, 274, 0, 0, 0, 0, 0, 264, 157, 0, + 0, 0, 264, 0, 264, 264, 264, 0, 0, 0, + 0, 0, 264, 0, 0, 0, 0, 157, 0, 264, + 0, 274, 274, 0, 0, 0, 0, 0, 0, 264, + 264, 0, 0, 264, 264, 264, 264, 264, 0, 0, + 0, 0, 0, 0, 0, 272, 272, 0, 0, 0, + 272, 0, 174, 0, 0, 0, 0, 272, 0, 0, + 0, 272, 272, 0, 272, 272, 272, 0, 0, 0, + 0, 172, 272, 0, 0, 0, 0, 0, 0, 272, + 0, 157, 0, 157, 0, 0, 0, 0, 0, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 0, 273, + 273, 0, 0, 0, 273, 0, 0, 0, 0, 0, + 0, 273, 0, 0, 0, 273, 273, 0, 273, 273, + 273, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 174, 105, 0, 173, 0, 0, + 0, 0, 0, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 0, 172, 274, 274, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, + 274, 274, 0, 274, 274, 274, 0, 0, 0, 0, + 0, 274, 0, 0, 0, 246, 246, 0, 274, 246, + 246, 246, 246, 246, 246, 246, 0, 0, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 246, 246, 0, + 246, 0, 0, 0, 0, 0, 157, 105, 0, 267, + 157, 0, 0, 0, 0, 189, 0, 0, 0, 157, + 157, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 246, 174, 0, 157, 0, 0, 0, 0, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 0, 0, 172, 0, 0, 0, 157, 157, 0, 0, + 48, 0, 246, 246, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 157, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 174, 0, 159, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 0, 0, 172, 0, 0, 0, + 170, 171, 0, 0, 0, 0, 105, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 0, 171, 155, 156, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 0, 105, 262, 339, 0, 0, 0, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 0, 173, 0, - 0, 0, 0, 169, 170, 0, 245, 245, 0, 0, - 0, 245, 0, 0, 0, 0, 0, 171, 245, 0, - 0, 0, 245, 245, 0, 245, 245, 245, 0, 105, - 0, 340, 0, 245, 0, 0, 0, 0, 0, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 245, 245, 245, 245, 245, 245, 0, 0, 0, - 0, 0, 48, 54, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 156, 0, 50, 0, - 0, 105, 0, 392, 0, 0, 0, 157, 0, 0, - 0, 158, 0, 0, 0, 0, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 0, 0, 0, 0, - 0, 0, 169, 170, 0, 0, 48, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 0, 139, 155, - 156, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 158, 0, 0, 0, 0, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 0, 0, 0, 0, 48, 0, 169, 170, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 156, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 158, 0, 0, 0, 0, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 0, 0, - 0, 0, 0, 0, 169, 170, 48, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 158, 0, 0, 0, 0, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 1, 48, 0, 0, 0, 49, 169, 170, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 50, 0, 4, - 5, 6, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, + 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 172, 156, 157, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, + 105, 266, 345, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 0, 174, 0, 0, + 0, 0, 170, 171, 0, 246, 246, 0, 0, 0, + 246, 0, 0, 0, 0, 0, 172, 246, 0, 0, + 0, 246, 246, 0, 246, 246, 246, 0, 105, 0, + 346, 0, 246, 0, 0, 0, 0, 0, 0, 246, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, + 246, 246, 246, 246, 246, 246, 0, 0, 0, 0, + 0, 48, 54, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 0, 50, 0, 0, + 105, 0, 399, 0, 0, 0, 158, 0, 0, 0, + 159, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 0, 0, 54, 0, 0, + 0, 170, 171, 0, 0, 48, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 0, 55, 156, 157, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 0, 54, 0, 159, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, + 0, 0, 0, 48, 0, 170, 171, 49, 0, 0, + 54, 0, 85, 0, 0, 0, 156, 157, 0, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 0, + 0, 0, 159, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 116, 0, 0, + 0, 0, 0, 170, 171, 48, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, + 0, 50, 0, 0, 0, 140, 0, 0, 0, 0, + 158, 0, 0, 0, 159, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 1, + 48, 0, 0, 0, 49, 170, 171, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 50, 0, 4, 5, + 6, 0, 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 1, 48, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 50, 0, 4, 5, 6, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 52, 1, + 48, 0, 0, 0, 49, 0, 0, 0, 84, 0, + 0, 3, 0, 0, 0, 0, 50, 0, 4, 5, + 6, 0, 0, 0, 0, 0, 51, 1, 48, 0, + 0, 0, 49, 52, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 53, 50, 0, 4, 5, 6, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 84, }; - protected short yyCheck[] = new short[3796]; + protected short yyCheck[] = new short[3873]; } class yyCheck0 { protected static final short yyCheck0 [] = { 105, - 52, 41, 40, 46, 63, 25, 26, 91, 46, 27, - 46, 100, 32, 60, 181, 33, 59, 105, 51, 123, - 134, 73, 74, 61, 57, 123, 63, 114, 134, 54, - 123, 60, 44, 62, 269, 41, 27, 44, 59, 91, - 92, 123, 60, 33, 91, 44, 134, 59, 60, 61, - 59, 123, 27, 91, 41, 12, 74, 44, 41, 399, - 80, 308, 309, 41, 35, 29, 37, 59, 86, 60, - 44, 105, 36, 93, 92, 181, 338, 129, 59, 91, - 132, 40, 73, 44, 302, 60, 109, 305, 62, 105, - 142, 109, 59, 181, 114, 40, 86, 264, 73, 122, - 134, 62, 61, 59, 122, 130, 40, 369, 91, 59, - 41, 108, 46, 44, 301, 60, 123, 74, 134, 40, - 41, 461, 462, 44, 123, 46, 466, 118, 99, 126, - 59, 123, 96, 220, 131, 92, 301, 59, 59, 60, - 61, 403, 123, 105, 59, 59, 301, 181, 59, 59, - 173, 265, 268, 44, 61, 173, 123, 132, 264, 265, - 395, 105, 27, 215, 268, 181, 32, 123, 33, 285, - 91, 62, 134, 123, 341, 268, 264, 265, 282, 268, - 60, 270, 271, 258, 282, 60, 268, 262, 211, 214, - 134, 301, 109, 44, 123, 60, 268, 215, 221, 274, - 220, 123, 44, 221, 179, 122, 44, 44, 123, 123, - 282, 62, 123, 123, 80, 44, 105, 301, 258, 181, - 62, 86, 262, 310, 62, 62, 301, 93, 44, 44, - 264, 265, 321, 62, 274, 341, 268, 181, 461, 462, - 319, 320, 301, 466, 273, 134, 62, 62, 264, 265, - 60, 44, 258, 341, 301, 307, 262, 309, 291, 256, - 123, 301, 259, 301, 301, 308, 309, 44, 274, 62, - 308, 309, 308, 309, 303, 304, 314, 315, 316, 317, - 258, 304, 44, 321, 262, 62, 304, 308, 309, 301, - 310, 44, 181, 399, 400, 301, 274, 59, 44, 308, - 309, 44, 264, 265, 121, 37, 59, 341, 61, 415, - 42, 399, 400, 59, 44, 47, 59, 335, 59, 41, - 264, 265, 44, 301, 43, 341, 45, 415, 301, 59, - 41, 437, 438, 44, 440, 41, 388, 389, 44, 445, - 157, 41, 40, 449, 44, 451, 452, 289, 41, 437, - 438, 44, 440, 61, 460, 461, 462, 445, 326, 327, - 466, 449, 91, 451, 452, 399, 400, 91, 301, 366, - 367, 123, 460, 461, 462, 264, 265, 59, 466, 341, - 301, 415, 301, 399, 400, 301, 93, 308, 309, 60, - 93, 38, 60, 314, 315, 316, 317, 341, 40, 415, - 321, 40, 40, 437, 438, 59, 440, 314, 315, 316, - 317, 445, 409, 410, 321, 449, 44, 451, 452, 46, - 329, 437, 438, 59, 440, 44, 460, 461, 462, 445, - 38, 94, 466, 449, 124, 451, 452, 399, 400, 322, - 323, 324, 325, 307, 460, 461, 462, 306, 40, 59, - 466, 301, 341, 415, 125, 399, 400, 274, 275, 40, - 301, 278, 29, 30, 60, 59, 41, 41, 40, 36, - 59, 415, 59, 59, 291, 437, 438, 59, 440, 41, - 59, 40, 40, 445, 267, 41, 41, 449, 41, 451, - 452, 41, 41, 437, 438, 267, 440, 0, 460, 461, - 462, 445, 301, 86, 466, 449, 20, 451, 452, 21, - 399, 400, 79, 59, 59, 36, 460, 461, 462, 60, - 60, 73, 466, 304, 33, 342, 415, 37, 328, 96, - 97, 40, 349, 221, 43, 329, 45, 332, 330, 302, - 169, 170, 331, 302, 101, 130, 31, 14, 437, 438, - 59, 440, 74, 133, 33, 272, 445, -1, -1, -1, - 449, 40, 451, 452, 43, -1, 45, 25, 26, 27, - -1, 460, 461, 462, 32, 33, -1, 466, 145, 396, - 59, 398, -1, -1, 401, -1, 257, 258, 258, -1, - -1, 262, 262, 222, 223, 224, -1, -1, 269, -1, - 417, 418, 60, 274, 274, 276, 277, 278, -1, -1, - -1, -1, -1, 284, -1, -1, 74, -1, -1, -1, - 291, 291, 80, -1, -1, 442, 443, 444, 86, -1, - 301, 301, -1, -1, 92, 93, -1, 258, -1, -1, - -1, 262, 100, -1, -1, -1, -1, 105, -1, -1, - -1, 109, -1, 274, -1, -1, 114, -1, -1, -1, - -1, 37, 38, -1, 122, 41, 42, 43, 44, 45, - 291, 47, -1, -1, -1, -1, 134, -1, -1, -1, - 301, -1, -1, 59, 60, 61, 62, 316, 317, 318, - -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, - 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 173, 257, 258, 94, 33, - -1, 262, -1, 181, -1, -1, 40, -1, 269, 43, - -1, 45, -1, 274, -1, 276, 277, 278, -1, -1, - -1, 370, -1, 284, -1, -1, 33, -1, 124, 125, - 291, -1, -1, 40, 41, 257, 43, 215, 45, -1, - 301, 263, 220, 221, -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, 275, -1, -1, 308, - 309, -1, -1, -1, -1, -1, 264, 265, 287, 123, - 268, -1, 270, 271, 293, 294, 295, 296, 297, 298, - 299, 300, 301, -1, 33, -1, -1, -1, -1, 308, - 309, 40, -1, -1, 43, -1, 45, -1, -1, -1, - 60, 33, -1, -1, -1, -1, 304, -1, 40, 41, - 59, 43, 310, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 321, -1, -1, -1, -1, 33, -1, - -1, -1, -1, -1, -1, 40, 41, 335, 43, -1, - 45, 257, 258, 341, -1, -1, 262, -1, -1, -1, - -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, - 276, 277, 278, -1, -1, 125, -1, -1, 284, 33, - -1, -1, -1, -1, -1, 291, 40, -1, -1, 43, - -1, 45, -1, -1, -1, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 275, 59, -1, -1, 314, 315, - 316, 317, -1, -1, -1, 321, 287, -1, -1, -1, + 63, 52, 46, 27, 25, 26, 46, 60, 123, 33, + 41, 32, 123, 108, 51, 59, 41, 105, 114, 61, + 57, 182, 73, 74, 123, 63, 109, 54, 12, 135, + 125, 59, 100, 59, 41, 135, 60, 132, 91, 122, + 91, 92, 123, 273, 123, 59, 344, 135, 44, 73, + 74, 44, 44, 406, 59, 301, 29, 30, 35, 80, + 37, 91, 86, 36, 27, 44, 41, 29, 92, 44, + 62, 105, 93, 59, 36, 40, 182, 375, 59, 130, + 32, 41, 133, 62, 60, 109, 62, 59, 59, 105, + 74, 174, 143, 114, 182, 59, 61, 60, 122, 27, + 301, 135, 33, 27, 131, 33, 79, 268, 92, 123, + 73, 59, 410, 59, 59, 468, 469, 44, 123, 135, + 473, 59, 99, 96, 97, 221, 40, 123, 80, 212, + 123, 91, 60, 33, 96, 62, 60, 123, 44, 222, + 40, 93, 123, 43, 105, 45, 60, 60, 182, 73, + 174, 123, 123, 268, 40, 86, 62, 268, 86, 123, + 46, 44, 268, 269, 259, 216, 182, 282, 263, 269, + 133, 282, 402, 146, 135, 123, 59, 123, 123, 105, + 268, 269, 44, 282, 44, 123, 347, 268, 215, 268, + 44, 60, 216, 44, 118, 40, 41, 59, 222, 44, + 221, 46, 62, 268, 272, 129, 274, 275, 62, 135, + 109, 62, 105, 268, 59, 60, 61, 180, 314, 301, + 285, 182, 44, 122, 44, 308, 301, 258, 258, 44, + 60, 262, 262, 258, 268, 269, 44, 262, 301, 59, + 62, 347, 135, 274, 274, 123, 91, 62, 301, 274, + 40, 258, 268, 269, 62, 262, 182, 325, 295, 347, + 311, 59, 313, 301, 308, 309, 301, 274, 308, 309, + 301, 301, 314, 315, 316, 317, 301, 372, 373, 321, + 308, 309, 308, 309, 308, 44, 44, 44, 61, 182, + 44, 468, 469, 314, 301, 41, 473, 273, 44, 289, + 406, 407, 59, 62, 62, 59, 41, 268, 269, 44, + 37, 302, 91, 347, 305, 42, 422, 341, 406, 407, + 47, 416, 417, 326, 327, 328, 329, 303, 304, 41, + 41, 347, 44, 44, 422, 323, 324, 41, 444, 445, + 44, 447, 268, 269, 395, 396, 452, 43, 41, 45, + 456, 44, 458, 459, 308, 309, 444, 445, 91, 447, + 123, 467, 468, 469, 452, 59, 121, 473, 456, 301, + 458, 459, 406, 407, 93, 268, 269, 330, 331, 467, + 468, 469, 61, 93, 301, 473, 347, 287, 422, 301, + 406, 407, 38, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 60, 158, 44, 40, 422, 40, 308, 309, + 444, 445, 40, 447, 59, 46, 258, 59, 452, 329, + 262, 347, 456, 44, 458, 459, 38, 124, 444, 445, + 94, 447, 274, 467, 468, 469, 452, 307, 306, 473, + 456, 40, 458, 459, 258, 406, 407, 46, 262, 291, + 61, 467, 468, 469, 347, 40, 301, 473, 59, 301, + 274, 422, 61, 308, 309, 301, 301, 40, 60, 314, + 315, 316, 317, 59, 41, 41, 321, 291, 40, 59, + 406, 407, 59, 444, 445, 59, 447, 301, 59, 41, + 59, 452, 91, 33, 40, 456, 422, 458, 459, 40, + 40, 41, 257, 43, 41, 45, 467, 468, 469, 41, + 33, 267, 473, 406, 407, 41, 41, 40, 444, 445, + 43, 447, 45, 278, 279, 41, 452, 282, 267, 422, + 456, 0, 458, 459, 170, 171, 59, 59, 59, 301, + 295, 467, 468, 469, 86, 20, 60, 473, 25, 26, + 27, 444, 445, 21, 447, 32, 33, 36, 73, 452, + 33, 37, 222, 456, 308, 458, 459, 40, 332, 258, + 43, 336, 45, 262, 467, 468, 469, 306, 258, 31, + 473, 333, 262, 60, 339, 274, 59, 223, 224, 225, + 335, 258, 33, 348, 274, 262, 73, 74, 334, 40, + 355, 258, 43, 80, 45, 262, 306, 274, 101, 86, + 14, 131, 301, 74, 276, 92, 93, 274, -1, 257, + -1, 301, 134, 100, -1, 263, -1, -1, 105, -1, + -1, 269, 109, -1, 301, -1, -1, 114, 276, 277, + 278, -1, -1, 281, 301, 122, 284, -1, 403, -1, + 405, -1, -1, 408, -1, 37, 38, -1, 135, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, 424, + 425, -1, -1, -1, -1, -1, -1, 59, 60, 61, + 62, -1, 123, -1, 320, 321, 322, 257, -1, -1, + -1, -1, -1, 263, 449, 450, 451, 174, -1, 269, + -1, -1, 301, -1, -1, 182, 276, 277, 278, 308, + 309, 281, 94, 33, 284, 314, 315, 316, 317, -1, + 40, 41, 321, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, 44, -1, 275, -1, -1, -1, 216, + 376, -1, 124, 125, 221, 222, -1, 287, 59, 60, + 61, -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, + 91, -1, -1, -1, -1, 308, 309, -1, -1, 33, + -1, 268, 269, -1, -1, 272, 40, 274, 275, 43, + -1, 45, 275, -1, -1, -1, 60, -1, -1, -1, + -1, -1, -1, -1, 287, 59, -1, -1, -1, -1, + 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, + -1, 308, 33, -1, 275, 308, 309, 314, -1, 40, + 41, -1, 43, -1, 45, -1, 287, -1, 325, -1, -1, -1, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 275, 33, -1, -1, -1, -1, 308, 309, 40, - 41, -1, 43, 287, 45, -1, -1, -1, -1, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 275, 33, - -1, -1, -1, -1, 308, 309, 40, 41, -1, 43, + 301, -1, -1, -1, 341, -1, -1, 308, 309, -1, + 347, 33, -1, -1, -1, 257, 258, -1, 40, 41, + 262, 43, -1, 45, -1, -1, -1, 269, -1, -1, + -1, 273, 274, -1, 276, 277, 278, -1, -1, -1, + -1, -1, 284, 33, -1, -1, -1, -1, -1, 291, + 40, -1, -1, 43, -1, 45, -1, -1, -1, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, 59, + 33, -1, 314, 315, 316, 317, -1, 40, 41, 321, + 43, -1, 45, -1, -1, -1, -1, 258, -1, -1, + -1, 262, -1, -1, -1, 275, -1, -1, 33, -1, + -1, -1, -1, 274, -1, 40, 41, 287, 43, -1, + 45, -1, -1, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, -1, -1, 33, -1, -1, 308, 309, + 301, -1, 40, 41, -1, 43, -1, 45, -1, -1, }; } class yyCheck1 { - protected static final short yyCheck1 [] = { 287, - 45, -1, -1, -1, -1, 293, 294, 295, 296, 297, - 298, 299, 300, 301, -1, 33, -1, -1, -1, -1, - 308, 309, 40, 41, -1, 43, -1, 45, -1, -1, - -1, -1, 33, -1, -1, -1, 257, 258, -1, 40, - 41, 262, 43, -1, 45, -1, -1, -1, 269, -1, - -1, -1, -1, 274, -1, 276, 277, 278, -1, 33, - -1, -1, -1, 284, -1, 275, 40, -1, -1, 43, - 291, 45, -1, -1, -1, -1, -1, 287, -1, -1, - 301, -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, 275, - 33, -1, -1, -1, -1, 308, 309, 40, -1, -1, - 43, 287, 45, -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, 40, -1, + protected static final short yyCheck1 [] = { -1, + -1, 33, 257, 258, -1, -1, -1, 262, 40, 41, + -1, 43, -1, 45, 269, -1, -1, -1, -1, 274, + -1, 276, 277, 278, -1, -1, -1, -1, 33, 284, + 275, -1, -1, -1, -1, 40, 291, -1, 43, -1, + 45, -1, 287, -1, -1, -1, 301, -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, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 287, -1, -1, -1, 40, -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, + -1, -1, -1, -1, -1, -1, 308, 309, 59, -1, + -1, -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, -1, -1, 275, 308, 309, -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, 123, -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, 275, + -1, -1, -1, -1, 308, 309, -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, 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, 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, 275, -1, -1, - -1, 123, -1, 308, 309, -1, -1, -1, -1, 287, - -1, -1, -1, -1, 275, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 40, -1, 287, -1, -1, -1, - 308, 309, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 275, -1, 59, -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, -1, -1, 308, 309, 37, 38, -1, 40, - 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, 62, -1, -1, 287, -1, -1, 123, -1, -1, - 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, - -1, -1, -1, -1, -1, 308, 309, -1, -1, -1, - 91, 37, 38, 94, -1, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 271, - 272, -1, -1, 59, 60, -1, 62, -1, -1, -1, - -1, 283, 123, 124, 125, 287, -1, -1, -1, -1, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - -1, -1, -1, -1, -1, 37, 308, 309, 94, 41, + 295, 296, 297, 298, 299, 300, 301, 59, 60, 170, + 171, -1, -1, 308, 309, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, - 62, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 271, 272, -1, -1, -1, -1, -1, 59, -1, -1, + 62, -1, 283, -1, -1, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, -1, 223, 224, 225, -1, -1, 308, 309, 91, + 37, 38, 94, 125, 41, 42, 43, 44, 45, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, -1, 62, -1, -1, -1, -1, + -1, 123, 124, 125, -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, 37, - 38, -1, 94, 41, 42, 43, 44, 45, 46, 47, - -1, -1, -1, -1, -1, 271, 272, -1, -1, -1, - -1, 59, 60, -1, 62, -1, -1, 283, -1, -1, - -1, 287, 124, 125, -1, -1, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, -1, -1, -1, -1, - -1, -1, 308, 309, -1, -1, 257, 258, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, - -1, -1, 273, 274, -1, 276, 277, 278, -1, -1, - -1, 282, -1, 284, -1, -1, 124, 125, -1, -1, - 291, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, - -1, 257, 258, -1, -1, -1, 262, -1, -1, -1, - -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, - 276, 277, 278, -1, 169, 170, -1, -1, 284, -1, - -1, -1, -1, -1, -1, 291, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 301, 302, 303, 304, 305, - 306, 307, 308, 309, -1, 257, 258, -1, -1, -1, - 262, -1, -1, -1, -1, -1, -1, 269, -1, 60, - -1, 273, 274, -1, 276, 277, 278, 222, 223, 224, - -1, -1, 284, -1, -1, -1, -1, -1, -1, 291, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, - 302, 303, 304, 305, 306, 307, 308, 309, -1, 257, - 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, 269, -1, -1, -1, 273, 274, -1, 276, 277, - 278, -1, -1, -1, 125, -1, 284, -1, -1, -1, - 37, 38, -1, 291, 41, 42, 43, 44, 45, 46, - 47, -1, -1, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 59, 60, -1, 62, -1, -1, -1, -1, - -1, 316, 317, 318, 319, 320, -1, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, - -1, -1, -1, -1, 37, 38, -1, 94, 41, 42, + -1, -1, -1, -1, 37, -1, -1, 94, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, - -1, -1, -1, -1, -1, 370, -1, -1, 125, -1, - -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, - 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 94, -1, -1, 59, 60, -1, 62, -1, -1, - -1, -1, -1, -1, -1, -1, 257, 258, -1, 37, - 38, 262, -1, 41, 42, 43, 44, 45, 269, 47, - -1, 124, 125, 274, -1, 276, 277, 278, -1, 94, - -1, 59, 60, 284, 62, -1, -1, -1, -1, -1, - 291, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 301, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, -1, -1, -1, -1, -1, 94, -1, -1, 37, - -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 320, + 321, 322, 323, 324, -1, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, -1, -1, 37, 38, + -1, 94, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, 60, -1, 62, -1, 124, 125, -1, -1, + 59, 60, -1, 62, -1, 257, 258, -1, -1, -1, + 262, 124, 125, -1, -1, 376, -1, 269, -1, -1, + -1, -1, 274, -1, 276, 277, 278, -1, -1, -1, + -1, -1, 284, -1, -1, 257, 258, -1, -1, 291, + 262, -1, -1, -1, -1, -1, -1, 269, -1, 301, + -1, 273, 274, -1, 276, 277, 278, -1, -1, -1, + 282, -1, 284, -1, -1, 124, 125, -1, -1, 291, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, + 302, 303, 304, 305, 306, 307, 308, 309, -1, -1, 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, 276, - 277, 278, -1, -1, -1, -1, 94, 284, -1, -1, + 277, 278, -1, -1, -1, -1, -1, 284, -1, -1, + -1, -1, -1, -1, 291, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 40, 257, 258, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, 269, -1, -1, -1, + 273, 274, 59, 276, 277, 278, -1, -1, -1, -1, + -1, 284, -1, -1, -1, -1, -1, -1, 291, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, + 303, 304, 305, 306, 307, 308, 309, -1, 257, 258, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, + -1, -1, -1, -1, -1, 284, 123, -1, -1, 37, + 38, -1, 291, 41, 42, 43, 44, 45, 46, 47, + -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 59, 60, -1, 62, -1, -1, 406, 407, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 422, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, 38, -1, 94, 41, 42, 43, + 44, 45, 46, 47, -1, 444, 445, -1, 447, -1, + -1, -1, -1, 452, -1, 59, 60, 456, 62, 458, + 459, -1, -1, -1, -1, -1, -1, 125, 467, 468, + 469, 37, 38, -1, 473, 41, 42, 43, 44, 45, + 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, + 94, -1, -1, 59, 60, -1, 62, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, + -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, + 124, 125, -1, -1, 271, 272, -1, -1, 94, -1, + 59, 60, -1, 62, -1, -1, 283, -1, -1, -1, + 287, -1, -1, -1, -1, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, -1, -1, -1, 124, 125, + -1, 308, 309, -1, -1, 94, -1, -1, 37, -1, + -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, 60, -1, 62, -1, 124, 125, -1, -1, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, 269, -1, -1, -1, 273, 274, -1, 276, 277, + 278, -1, -1, -1, -1, 94, 284, -1, -1, -1, + -1, -1, -1, 291, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 301, 302, 303, 304, 305, 306, 307, + 308, 309, -1, 257, 258, 124, 125, -1, 262, -1, }; } class yyCheck2 { protected static final short yyCheck2 [] = { -1, - -1, -1, -1, 291, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 301, 302, 303, 304, 305, 306, 307, - 308, 309, -1, 257, 258, 124, 125, -1, 262, -1, - -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, - 274, -1, 276, 277, 278, -1, -1, -1, -1, -1, - 284, -1, -1, -1, -1, -1, -1, 291, -1, -1, - -1, 257, 258, -1, -1, 60, 262, 301, 302, 303, - 304, 305, 306, 269, 308, 309, -1, 273, 274, -1, - 276, 277, 278, -1, -1, -1, -1, -1, 284, -1, - -1, -1, -1, -1, -1, 291, -1, -1, 257, 258, - -1, -1, -1, 262, -1, 301, 302, 303, 304, 305, - 269, 307, 308, 309, 273, 274, -1, 276, 277, 278, - -1, -1, -1, -1, -1, 284, -1, -1, -1, 37, - 38, -1, 291, 41, 42, 43, 44, 45, 46, 47, - -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 59, 60, -1, 62, -1, -1, -1, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, - -1, -1, -1, -1, -1, 284, -1, -1, -1, 37, - 38, -1, 291, 41, 42, 43, 44, 45, 46, 47, - -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 59, 60, -1, 62, -1, 124, 125, -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, 37, 38, -1, 94, 41, 42, 43, - 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, - -1, -1, 257, 258, -1, 59, 60, 262, 62, -1, - -1, -1, 399, 400, 269, -1, -1, 125, -1, 274, - -1, 276, 277, 278, -1, -1, -1, -1, 415, 284, - -1, -1, -1, -1, -1, -1, 291, -1, 37, 38, - 94, -1, 41, 42, -1, 44, 301, 46, 47, -1, - 437, 438, -1, 440, -1, -1, -1, -1, 445, -1, - 59, 60, 449, 62, 451, 452, -1, -1, -1, -1, - 124, 125, -1, 460, 461, 462, -1, -1, -1, 466, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, - 258, -1, -1, -1, 262, 94, -1, -1, -1, -1, - -1, 269, -1, -1, -1, 273, 274, -1, 276, 277, - 278, -1, -1, -1, -1, -1, 284, -1, -1, -1, - -1, -1, -1, 291, -1, 124, 125, -1, -1, -1, - -1, -1, -1, 301, 302, 303, 304, 305, 306, 307, - 308, 309, -1, -1, -1, -1, -1, -1, -1, 257, - 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, 269, -1, -1, -1, 273, 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, -1, -1, 301, 302, 303, 304, 305, 306, 307, - 308, 309, -1, 257, 258, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, - 274, -1, 276, 277, 278, -1, -1, -1, -1, -1, - 284, -1, -1, -1, 37, 38, -1, 291, 41, 42, - 43, 44, 45, 46, 47, -1, -1, 301, 302, 303, - 304, 305, 306, -1, 308, 309, 59, -1, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, - -1, -1, -1, -1, -1, 284, -1, -1, -1, 37, - 38, 94, 291, 41, 42, 43, 44, 45, 46, 47, - -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 59, 60, -1, 62, -1, -1, -1, -1, -1, - -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 38, -1, 94, 41, 42, 43, - 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 60, -1, 62, -1, - -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 94, -1, -1, 37, 38, -1, -1, 41, 42, 43, - 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 257, 258, -1, -1, -1, 262, - 94, -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, - 124, 125, -1, -1, -1, -1, -1, -1, 301, 302, - -1, -1, 305, 306, 307, 308, 309, -1, -1, 257, - 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, 269, -1, -1, -1, 273, 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, -1, -1, 301, -1, 303, 304, -1, 306, 307, - 308, 309, -1, 257, 258, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, - 274, -1, 276, 277, 278, -1, -1, -1, -1, -1, - 284, -1, -1, -1, 37, 38, -1, 291, 41, 42, - 43, 44, 45, 46, 47, -1, -1, 301, -1, 303, - 304, -1, 306, 307, 308, 309, 59, -1, -1, -1, - -1, -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, 94, -1, -1, -1, 38, -1, 291, 41, -1, - 43, 44, 45, 46, -1, -1, -1, 301, 302, -1, - -1, 305, 306, 307, 308, 309, 59, 60, -1, 62, - -1, 124, 125, -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, 38, - -1, 94, 41, -1, 43, 44, 45, 46, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, 60, -1, 62, -1, -1, -1, -1, -1, -1, - }; -} -class yyCheck3 { - protected static final short yyCheck3 [] = { -1, - 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 38, 94, -1, 41, -1, 43, 44, - 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, -1, 62, -1, -1, - -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 257, 258, -1, -1, -1, 262, 94, - -1, -1, -1, -1, -1, 269, 40, -1, -1, -1, - 274, -1, 276, 277, 278, -1, -1, -1, -1, -1, - 284, -1, -1, -1, -1, 59, -1, 291, -1, 124, - 125, -1, -1, -1, -1, -1, -1, 301, 302, -1, - -1, 305, 306, 307, 308, 309, -1, -1, -1, -1, - -1, -1, -1, 257, 258, -1, -1, -1, 262, -1, - 40, -1, -1, -1, -1, 269, -1, -1, -1, 273, - 274, -1, 276, 277, 278, -1, -1, -1, -1, 59, - 284, -1, -1, -1, -1, -1, -1, 291, -1, 123, - -1, 125, -1, -1, -1, -1, -1, 301, 302, 303, - 304, 305, 306, 307, 308, 309, -1, 257, 258, -1, + -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, + -1, 276, 277, 278, -1, -1, -1, -1, -1, 284, + -1, -1, -1, -1, -1, -1, 291, -1, -1, -1, + 257, 258, -1, -1, 60, 262, 301, 302, 303, 304, + 305, 306, 269, 308, 309, -1, 273, 274, -1, 276, + 277, 278, -1, -1, -1, -1, -1, 284, -1, -1, + -1, -1, -1, -1, 291, -1, -1, 257, 258, -1, + -1, -1, 262, -1, 301, 302, 303, 304, 305, 269, + 307, 308, 309, 273, 274, -1, 276, 277, 278, -1, + -1, -1, -1, -1, 284, -1, -1, -1, 37, 38, + -1, 291, 41, 42, 43, 44, 45, 46, 47, -1, + -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 59, 60, -1, 62, -1, -1, -1, 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, -1, - -1, -1, -1, -1, 284, -1, -1, -1, -1, -1, - -1, 291, 40, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, 284, -1, -1, -1, 37, 38, + -1, 291, 41, 42, 43, 44, 45, 46, 47, -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, - -1, 59, 257, 258, -1, -1, -1, 262, -1, -1, + 59, 60, -1, 62, -1, 124, 125, -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, 37, 38, -1, 94, 41, 42, 43, 44, + 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 257, 258, -1, 59, 60, 262, 62, -1, -1, + -1, -1, -1, 269, -1, -1, 125, -1, 274, -1, + 276, 277, 278, -1, -1, -1, -1, -1, 284, -1, + -1, -1, -1, -1, -1, 291, -1, 37, 38, 94, + -1, 41, 42, -1, 44, 301, 46, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 60, -1, 62, -1, -1, -1, -1, -1, -1, 124, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, + -1, -1, -1, 262, 94, -1, -1, -1, -1, -1, + 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, + -1, -1, -1, -1, -1, 284, -1, -1, -1, -1, + -1, -1, 291, -1, 124, 125, -1, -1, -1, -1, + -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, -1, -1, -1, -1, -1, -1, 257, 258, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + 269, -1, -1, -1, 273, 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, + -1, -1, 301, 302, 303, 304, 305, 306, 307, 308, + 309, -1, 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, 276, 277, 278, -1, -1, -1, -1, -1, 284, -1, -1, -1, 37, 38, -1, 291, 41, 42, 43, 44, 45, 46, 47, -1, -1, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 59, 60, -1, 62, -1, - -1, -1, -1, -1, 258, 123, -1, 125, 262, -1, - -1, -1, -1, 267, -1, -1, -1, 271, 272, -1, - 274, -1, -1, -1, -1, -1, -1, -1, -1, 283, - 94, 40, -1, 287, -1, -1, -1, -1, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, -1, -1, - 59, -1, -1, -1, 308, 309, -1, -1, 258, -1, - 124, 125, 262, -1, -1, -1, -1, -1, -1, -1, - -1, 271, 272, -1, 274, -1, -1, -1, -1, -1, - -1, -1, -1, 283, -1, 40, -1, 287, -1, -1, - -1, -1, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, -1, -1, 59, -1, -1, -1, 308, 309, - -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, + 305, 306, -1, 308, 309, 59, -1, 257, 258, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, + -1, -1, -1, 273, 274, -1, 276, 277, 278, -1, + -1, -1, -1, -1, 284, -1, -1, -1, 37, 38, + 94, 291, 41, 42, 43, 44, 45, 46, 47, -1, + -1, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 59, 60, -1, 62, -1, -1, -1, -1, -1, -1, + 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, - 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, -1, 59, 271, 272, -1, 274, -1, -1, -1, - -1, -1, -1, -1, -1, 283, -1, -1, 123, 287, - 125, -1, -1, -1, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, -1, 40, -1, -1, -1, -1, - 308, 309, -1, 257, 258, -1, -1, -1, 262, -1, - -1, -1, -1, -1, 59, 269, -1, -1, -1, 273, - 274, -1, 276, 277, 278, -1, 123, -1, 125, -1, - 284, -1, -1, -1, -1, -1, -1, 291, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, - 304, 305, 306, 307, -1, -1, -1, -1, -1, 258, - 60, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, -1, 271, 272, -1, 274, -1, -1, 123, -1, - 125, -1, -1, -1, 283, -1, -1, -1, 287, -1, + -1, -1, 37, 38, -1, 94, 41, 42, 43, 44, + 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, -1, 62, -1, -1, + -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, + -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, + 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, 124, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 257, 258, -1, -1, -1, 262, 94, + -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, 124, + 125, -1, -1, -1, -1, -1, -1, 301, 302, -1, + -1, 305, 306, 307, 308, 309, -1, -1, 257, 258, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + 269, -1, -1, -1, 273, 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, + -1, -1, 301, -1, 303, 304, -1, 306, 307, 308, + 309, -1, 257, 258, -1, -1, -1, 262, -1, -1, + -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, + -1, 276, 277, 278, -1, -1, -1, -1, -1, 284, + -1, -1, -1, 37, 38, -1, 291, 41, 42, 43, + 44, 45, 46, 47, -1, -1, 301, -1, 303, 304, + -1, 306, 307, 308, 309, 59, -1, -1, -1, -1, + -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, + 94, -1, -1, -1, 38, -1, 291, 41, -1, 43, + 44, 45, 46, -1, -1, -1, 301, 302, -1, -1, + 305, 306, 307, 308, 309, 59, 60, -1, 62, -1, + 124, 125, -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, 38, -1, + 94, 41, -1, 43, 44, 45, 46, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, + 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 38, 94, -1, 41, -1, 43, 44, + }; +} +class yyCheck3 { + protected static final short yyCheck3 [] = { 45, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 60, -1, 62, -1, -1, -1, + -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 257, 258, -1, -1, -1, 262, 94, -1, + -1, -1, -1, -1, 269, 40, -1, -1, -1, 274, + -1, 276, 277, 278, -1, -1, -1, -1, -1, 284, + -1, -1, -1, -1, 59, -1, 291, -1, 124, 125, + -1, -1, -1, -1, -1, -1, 301, 302, -1, -1, + 305, 306, 307, 308, 309, -1, -1, -1, -1, -1, + -1, -1, 257, 258, -1, -1, -1, 262, -1, 40, + -1, -1, -1, -1, 269, -1, -1, -1, 273, 274, + -1, 276, 277, 278, -1, -1, -1, -1, 59, 284, + -1, -1, -1, -1, -1, -1, 291, -1, 123, -1, + 125, -1, -1, -1, -1, -1, 301, 302, 303, 304, + 305, 306, 307, 308, 309, -1, 257, 258, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, + -1, -1, 273, 274, -1, 276, 277, 278, -1, -1, + -1, -1, -1, 284, -1, -1, -1, -1, -1, -1, + 291, 40, 123, -1, 125, -1, -1, -1, -1, -1, + 301, 302, 303, 304, 305, 306, 307, 308, 309, -1, + 59, 257, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, 269, -1, -1, -1, 273, 274, -1, + 276, 277, 278, -1, -1, -1, -1, -1, 284, -1, + -1, -1, 37, 38, -1, 291, 41, 42, 43, 44, + 45, 46, 47, -1, -1, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 59, 60, -1, 62, -1, -1, + -1, -1, -1, 258, 123, -1, 125, 262, -1, -1, + -1, -1, 267, -1, -1, -1, 271, 272, -1, 274, + -1, -1, -1, -1, -1, -1, -1, -1, 283, 94, + 40, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, -1, -1, 59, + -1, -1, -1, 308, 309, -1, -1, 258, -1, 124, + 125, 262, -1, -1, -1, -1, -1, -1, -1, -1, + 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, + -1, -1, 283, -1, 40, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, -1, -1, 59, -1, -1, -1, 308, 309, -1, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, -1, -1, -1, -1, -1, -1, 258, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + -1, 59, 271, 272, -1, 274, -1, -1, -1, -1, + -1, -1, -1, -1, 283, -1, -1, 123, 287, 125, -1, -1, -1, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, -1, -1, -1, -1, -1, -1, 308, - 309, -1, -1, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, 125, 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, -1, -1, -1, - -1, 258, -1, 308, 309, 262, -1, -1, -1, -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, -1, -1, -1, -1, -1, - -1, 308, 309, 258, -1, -1, -1, 262, -1, -1, - -1, -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, 257, 258, -1, - -1, -1, 262, 308, 309, -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, -1, - -1, 301, + 299, 300, 301, -1, 40, -1, -1, -1, -1, 308, + 309, -1, 257, 258, -1, -1, -1, 262, -1, -1, + -1, -1, -1, 59, 269, -1, -1, -1, 273, 274, + -1, 276, 277, 278, -1, 123, -1, 125, -1, 284, + -1, -1, -1, -1, -1, -1, 291, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, + 305, 306, 307, -1, -1, -1, -1, -1, 258, 60, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + -1, 271, 272, -1, 274, -1, -1, 123, -1, 125, + -1, -1, -1, 283, -1, -1, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, -1, 60, -1, -1, -1, 308, 309, + -1, -1, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, 125, 271, 272, -1, 274, -1, + -1, -1, -1, -1, -1, -1, -1, 283, -1, 60, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, -1, -1, -1, -1, + 258, -1, 308, 309, 262, -1, -1, 60, -1, 125, + -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, 125, -1, -1, -1, -1, -1, + 308, 309, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, -1, 271, 272, -1, 274, -1, + -1, -1, 125, -1, -1, -1, -1, 283, -1, -1, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 257, 258, -1, -1, + -1, 262, 308, 309, -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, -1, -1, + 301, 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, 257, 258, -1, -1, + -1, 262, -1, -1, -1, 301, -1, -1, 269, -1, + -1, -1, -1, 274, -1, 276, 277, 278, -1, -1, + -1, -1, -1, 284, 257, 258, -1, -1, -1, 262, + 291, -1, -1, -1, -1, -1, 269, -1, -1, -1, + 301, 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, -1, -1, 301, }; } class yyCheckInit { - static short[] yyCheck = new short[3796]; + static short[] yyCheck = new short[3873]; protected static void yyCheckInit () { int numyycheck; int yyCheckerun = 0; for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { - if (yyCheckerun < 3796) { + if (yyCheckerun < 3873) { yyCheck[yyCheckerun] = yyCheck0.yyCheck0[numyycheck]; yyCheckerun++; } } for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { - if (yyCheckerun < 3796) { + if (yyCheckerun < 3873) { yyCheck[yyCheckerun] = yyCheck1.yyCheck1[numyycheck]; yyCheckerun++; } } for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { - if (yyCheckerun < 3796) { + if (yyCheckerun < 3873) { yyCheck[yyCheckerun] = yyCheck2.yyCheck2[numyycheck]; yyCheckerun++; } } for (numyycheck = 0; numyycheck <= 1000; numyycheck++) { - if (yyCheckerun < 3796) { + if (yyCheckerun < 3873) { yyCheck[yyCheckerun] = yyCheck3.yyCheck3[numyycheck]; yyCheckerun++; } diff --git a/src/mycompiler/myparser/JavaParser.jay b/src/mycompiler/myparser/JavaParser.jay index 27d756b1..b86a9079 100755 --- a/src/mycompiler/myparser/JavaParser.jay +++ b/src/mycompiler/myparser/JavaParser.jay @@ -867,7 +867,15 @@ Beispiel: var = 2; Bei einer lokalen Variable lässt sich hier nicht ermitteln ob die Variable deklariert werden soll oder bereits deklariert wurde und ihr nur ein Wert zugewiesen werden soll. Dieses Problem ist bei Feldern nicht der Fall. */ -fielddeclarator : variabledeclarator '=' expression +fielddeclarator : type variabledeclarator '=' expression + { + FieldDeclaration ret = new FieldDeclaration($2.getOffset()); + ret.setType($1); + ret.set_DeclId($2); + ret.setWert($4); + $$=ret; + } + | variabledeclarator '=' expression { FieldDeclaration ret = new FieldDeclaration($1.getOffset()); ret.set_DeclId($1); @@ -1361,9 +1369,9 @@ blockstatement :localvariabledeclarationstatement formalparameter : type variabledeclaratorid { - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($2); FP.setType($1); - FP.set_DeclId($2); + //FP.set_DeclId($2); $$=FP; } @@ -1375,9 +1383,9 @@ formalparameter : type variabledeclaratorid Parameterliste setzen $5.set_Paratyp($3.get_ParaList()); - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($5); FP.setType($1); - FP.set_DeclId($5); + //FP.set_DeclId($5); $$=FP; org.apache.log4j.Logger.getLogger("parser").debug("P->Polymorphes Methodenargument hinzugefuegt: Name = " + $5.get_Name() + " Typ = " + $1.getName()); @@ -1388,7 +1396,7 @@ formalparameter : type variabledeclaratorid { org.apache.log4j.Logger.getLogger("parser").debug("\nFunktionsdeklaration mit typlosen Parametern: " + $1.name); - FormalParameter FP = new FormalParameter(); + FormalParameter FP = new FormalParameter($1); // #JB# 31.03.2005 // ########################################################### @@ -1398,7 +1406,7 @@ formalparameter : type variabledeclaratorid //org.apache.log4j.Logger.getLogger("parser").debug("\n--> berechneter Name: " + T.getName()); //auskommentiert von Andreas Stadelmeier (a10023) FP.setType( T ); - FP.set_DeclId($1); + //FP.set_DeclId($1); $$=FP; } diff --git a/src/mycompiler/mystatement/Block.java b/src/mycompiler/mystatement/Block.java index b394c7c7..9546246d 100755 --- a/src/mycompiler/mystatement/Block.java +++ b/src/mycompiler/mystatement/Block.java @@ -32,14 +32,15 @@ import org.apache.log4j.Logger; + import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.JavaCodeResult; import typinferenz.SingleConstraint; import typinferenz.ConstraintsSet; import typinferenz.FreshTypeVariable; import typinferenz.ResultSet; -import typinferenz.TypinferenzException; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; @@ -308,5 +309,10 @@ public class Block extends Statement } return ret; } + + @Override + public String getDescription(){ + return "Block"; + } } // ino.end diff --git a/src/mycompiler/mystatement/EmptyStmt.java b/src/mycompiler/mystatement/EmptyStmt.java index 44bba19b..112063dd 100755 --- a/src/mycompiler/mystatement/EmptyStmt.java +++ b/src/mycompiler/mystatement/EmptyStmt.java @@ -5,6 +5,7 @@ package mycompiler.mystatement; import java.util.Hashtable; import java.util.Vector; +import mycompiler.SyntaxTreeNode; import mycompiler.mybytecode.ClassFile; import mycompiler.mybytecode.CodeAttribute; import mycompiler.myclass.Class; @@ -23,6 +24,7 @@ import org.apache.log4j.Logger; // ino.end + import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.ConstraintsSet; import typinferenz.JavaCodeResult; @@ -111,5 +113,6 @@ public class EmptyStmt extends Statement public JavaCodeResult printJavaCode(ResultSet resultSet) { return new JavaCodeResult(""); } + } // ino.end diff --git a/src/mycompiler/mystatement/LambdaExpression.java b/src/mycompiler/mystatement/LambdaExpression.java index c5a24d0d..d3181b84 100755 --- a/src/mycompiler/mystatement/LambdaExpression.java +++ b/src/mycompiler/mystatement/LambdaExpression.java @@ -10,9 +10,9 @@ import typinferenz.FreshTypeVariable; import typinferenz.FunN; import typinferenz.ResultSet; import typinferenz.Typeable; -import typinferenz.TypinferenzException; import typinferenz.assumptions.ParameterAssumption; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; import mycompiler.SyntaxTreeNode; import mycompiler.mybytecode.ClassFile; import mycompiler.mybytecode.CodeAttribute; @@ -124,7 +124,7 @@ public class LambdaExpression extends Expr{ public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); //Die Assumptions für die Parameter der LambdaExpression - TypeAssumptions ArgumentAssumptions = new TypeAssumptions(assumptions.getThisValue().getName()); + TypeAssumptions ArgumentAssumptions = new TypeAssumptions(this.getParentClass().getName()); Vector paramTypes = new Vector(); for(FormalParameter param : params.formalparameter){ diff --git a/src/mycompiler/mystatement/LocalVarDecl.java b/src/mycompiler/mystatement/LocalVarDecl.java index e73d713a..d4502a16 100755 --- a/src/mycompiler/mystatement/LocalVarDecl.java +++ b/src/mycompiler/mystatement/LocalVarDecl.java @@ -86,33 +86,6 @@ public class LocalVarDecl extends Statement implements TypeInsertable public Block block; // ino.end - - // ino.method.setType.25569.definition - public void setDeclType(Type t) - // ino.end - // ino.method.setType.25569.body - { - if(this.declType instanceof TypePlaceholder){ - ((TypePlaceholder)this.declType).removeReplacementListener(this); - } - - if(t instanceof TypePlaceholder){ - ((TypePlaceholder)t).addReplacementListener(this); - } - this.declType=t; - } - // ino.end - - // ino.method.getType.25572.definition - public Type getDeclType() - // ino.end - // ino.method.getType.25572.body - { - return this.declType; - } - // ino.end - - // ino.method.set_DeclId.25575.definition public void set_DeclId(DeclId did) // ino.end @@ -299,7 +272,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable { if(declid != null) for(int i = 0; i < declid.size(); i++) - declid.elementAt(i).codegen_LocalVarDecl(classfile, code, this.getDeclType(), paralist); + declid.elementAt(i).codegen_LocalVarDecl(classfile, code, this.getType(), paralist); } // ino.end // ino.method.getDeclidVector.25596.definition @@ -376,12 +349,12 @@ public class LocalVarDecl extends Statement implements TypeInsertable } this.setType(e.getNewType()); } - if(e.getOldType().equals(this.getDeclType())){ + if(e.getOldType().equals(this.getType())){ inferencelog.debug("Ersetze Typ in LocalVarDecl \""+this.get_Name()+"\"\n"); if(declType instanceof TypePlaceholder){ ((TypePlaceholder)declType).removeReplacementListener(this); } - this.setDeclType(e.getNewType()); + this.setType(e.getNewType()); } } // ino.end @@ -419,7 +392,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable CTripleSet resultSet = new CTripleSet(); V = V.shallowCopy(); CTypeAssumptionSet localSet = new CTypeAssumptionSet(); - CLocalVarTypeAssumption varAssum = new CLocalVarTypeAssumption(supportData.getCurrentClass(), supportData.getCurrentMethod(), supportData.getCurrentMethodParaCount(), supportData.getCurrentMethodOverloadedID(), supportData.getCurrentBlockId(), this.get_Name() ,this.getDeclType(), this.getLineNumber(),this.getOffset(),new Vector()); + CLocalVarTypeAssumption varAssum = new CLocalVarTypeAssumption(supportData.getCurrentClass(), supportData.getCurrentMethod(), supportData.getCurrentMethodParaCount(), supportData.getCurrentMethodOverloadedID(), supportData.getCurrentBlockId(), this.get_Name() ,this.getType(), this.getLineNumber(),this.getOffset(),new Vector()); Class.isFirstLocalVarDecl=true; if(this.block != null) @@ -453,7 +426,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable // ino.method.wandleRefTypeAttributes2GenericAttributes.25620.body { - Type fpType=getDeclType(); + Type fpType=getType(); // Nur wenn es sich um ein RefType-Field handelt GenericTypeVar pendantPara=ClassHelper.findGenericType(fpType,paralist,genericMethodParameters); if(pendantPara!=null){ //Wenn generisch, dann modifizieren @@ -488,7 +461,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable @Override public ConstraintsSet TYPEStmt(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); - if(this.getDeclType()==null || this.getDeclType() instanceof TypePlaceholder)this.setDeclType(TypePlaceholder.fresh(this)); + if(this.getType()==null || this.getType() instanceof TypePlaceholder)this.setType(TypePlaceholder.fresh(this)); assumptions.addLocalVarAssumption(new LocalVarAssumption(this)); //assumptions.remove(null); // falls Variable mit diesem Namen bereits vorhanden. this.setType(new Void(0)); //Return typ einer Variablendeklaration ist Void @@ -498,14 +471,14 @@ public class LocalVarDecl extends Statement implements TypeInsertable @Override public String getTypeInformation(){ String ret = "VarDeclaration "; - if(this.getDeclType()!=null)ret+= this.getDeclType().toString()+" "; + if(this.getType()!=null)ret+= this.getType().toString()+" "; ret+=this.get_Name(); return ret; } @Override public JavaCodeResult printJavaCode(ResultSet resultSet) { - return new JavaCodeResult().attach(getDeclType().printJavaCode(resultSet)) .attach( " "+this.get_Name()+";"); + return new JavaCodeResult().attach(getType().printJavaCode(resultSet)) .attach( " "+this.get_Name()+";"); } @Override diff --git a/src/mycompiler/mystatement/MethodCall.java b/src/mycompiler/mystatement/MethodCall.java index fcebc774..6b9d2eb7 100755 --- a/src/mycompiler/mystatement/MethodCall.java +++ b/src/mycompiler/mystatement/MethodCall.java @@ -664,7 +664,6 @@ public class MethodCall extends Expr */ @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { - //TODO hier muss unterschieden werden zwischen einem Konstruktor und einer Methode. //Hier der Ablauf für einen Methodenaufruf: ConstraintsSet ret = new ConstraintsSet(); //Der Return-Type des MEthodenaufrufs ist zunächst unbekannt: diff --git a/src/mycompiler/mystatement/Null.java b/src/mycompiler/mystatement/Null.java index d78fae32..58db707f 100755 --- a/src/mycompiler/mystatement/Null.java +++ b/src/mycompiler/mystatement/Null.java @@ -5,6 +5,7 @@ package mycompiler.mystatement; import java.util.Hashtable; import java.util.Vector; +import mycompiler.SyntaxTreeNode; import mycompiler.mybytecode.ClassFile; import mycompiler.mybytecode.CodeAttribute; import mycompiler.mybytecode.JVMCode; @@ -25,6 +26,7 @@ import org.apache.log4j.Logger; // ino.end + import typinferenz.ConstraintsSet; import typinferenz.JavaCodeResult; import typinferenz.ResultSet; @@ -120,5 +122,10 @@ public class Null extends Literal return new JavaCodeResult("null"); } + @Override + public Vector getChildren() { + return new Vector(); + } + } // ino.end diff --git a/src/mycompiler/mystatement/Statement.java b/src/mycompiler/mystatement/Statement.java index 032b1fd6..44a30622 100755 --- a/src/mycompiler/mystatement/Statement.java +++ b/src/mycompiler/mystatement/Statement.java @@ -145,5 +145,10 @@ public abstract class Statement extends SyntaxTreeNode implements IItemWithOffse public abstract JavaCodeResult printJavaCode(ResultSet resultSet); + @Override + public String getDescription(){ + return this.printJavaCode(new ResultSet(new Vector())).toString(); + } + } // ino.end diff --git a/src/mycompiler/mystatement/StringLiteral.java b/src/mycompiler/mystatement/StringLiteral.java index 4ad18a42..36d5fe5f 100755 --- a/src/mycompiler/mystatement/StringLiteral.java +++ b/src/mycompiler/mystatement/StringLiteral.java @@ -152,6 +152,5 @@ public class StringLiteral extends Literal return ret; } - } // ino.end diff --git a/src/mycompiler/mystatement/This.java b/src/mycompiler/mystatement/This.java index d4756945..39aa5f07 100755 --- a/src/mycompiler/mystatement/This.java +++ b/src/mycompiler/mystatement/This.java @@ -170,7 +170,8 @@ public class This extends Expr public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); //this.set_Type(new); - this.setType(assumptions.getThisValue());//Die Assumption für this als TypeVariable setzen. + //this.setType(assumptions.getThisValue());//Die Assumption für this als TypeVariable setzen. + this.setType(new RefType(this.getParentClass().getName(),0)); return ret; } @@ -192,6 +193,6 @@ public class This extends Expr Vector ret = new Vector(); return ret; } - + } // ino.end diff --git a/src/mycompiler/mytest/LambdaTest.java b/src/mycompiler/mytest/LambdaTest.java index 43aa5e30..5b3424e9 100755 --- a/src/mycompiler/mytest/LambdaTest.java +++ b/src/mycompiler/mytest/LambdaTest.java @@ -15,8 +15,8 @@ import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.apache.log4j.SimpleLayout; -import typinferenz.TypinferenzException; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; import mycompiler.MyCompiler; import mycompiler.MyCompilerAPI; import mycompiler.mytype.Type; diff --git a/src/mycompiler/mytype/TypePlaceholder.java b/src/mycompiler/mytype/TypePlaceholder.java index c1ef7abd..e68c75ae 100755 --- a/src/mycompiler/mytype/TypePlaceholder.java +++ b/src/mycompiler/mytype/TypePlaceholder.java @@ -6,6 +6,7 @@ package mycompiler.mytype; import java.util.Hashtable; import java.util.Iterator; import java.util.Vector; +import java.util.logging.Logger; import typinferenz.JavaCodeResult; import typinferenz.ResultSet; @@ -512,6 +513,16 @@ public class TypePlaceholder extends Type implements IReplaceTypeEventProvider return equalType.printJavaCode(resultSet); } + /** + * Berechnet die InsertPoints dieses TypePlaceholders. + * Alle an diesem TypePlaceholder registrierten ITypeReplacementListener werden darauf kontrolliert, + * ob sie von TypeInsertable erben. + * Diese ergeben zusammen mit den Informationen aus dem übergebenen ResultSet einen TypeInsertPoint. + * Mehrere TypeInsertPoint's ergeben ein TypeInsertSet. + * @param result Das ResultSet das den einzusetzenden Typ für diesen TPH enthält. + * @return + * @see TypeInsertPoint + */ public TypeInsertSet getTypeInsertPoints(ResultSet result) { TypeInsertSet ret = new TypeInsertSet(); for(ITypeReplacementListener ti : this.m_ReplacementListeners){ diff --git a/src/mycompiler/mytypereconstruction/TypeinferenceResultSet.java b/src/mycompiler/mytypereconstruction/TypeinferenceResultSet.java index 60d59836..9d7a2c47 100755 --- a/src/mycompiler/mytypereconstruction/TypeinferenceResultSet.java +++ b/src/mycompiler/mytypereconstruction/TypeinferenceResultSet.java @@ -11,8 +11,8 @@ import typinferenz.ConstraintsSet; import typinferenz.ResultSet; import typinferenz.TypeInsertPoint; import typinferenz.TypeInsertSet; -import typinferenz.TypinferenzException; import typinferenz.assumptions.TypeAssumptions; +import typinferenz.exceptions.TypinferenzException; import mycompiler.mytype.GenericTypeVar; import mycompiler.mytype.Pair; import mycompiler.mytype.RefType; @@ -29,7 +29,7 @@ import mycompiler.mytypereconstruction.typeassumptionkey.CTypeAssumptionKey; // ino.class.CTypeReconstructionResult.27238.description type=javadoc /** * Diese Container-Klasse kapselt alle Ergebniswerte f�r eine m�gliche - * Typkombination aller Klassen und deren Methoden sowie lokalen Variablen. Eine + * Typkombination einer Klasse und deren Methoden sowie lokalen Variablen. Eine * Instanz dieser Klasse steht f�r genau eine m�gliche Typkombination.
* Objekte dieser Klasse werden vom Typrekonstruktionsalgorithmus �ber die * Compiler-API zur�ckgegeben. diff --git a/src/typinferenz/FunNMethod.java b/src/typinferenz/FunNMethod.java index 7d14317e..bfb70782 100644 --- a/src/typinferenz/FunNMethod.java +++ b/src/typinferenz/FunNMethod.java @@ -17,10 +17,10 @@ public class FunNMethod extends Method{ ParameterList pl = new ParameterList(); Vector fpList = new Vector(); for(int i = 0;i { } //TODO: Dann die lokalen Variablen // ... (noch nicht implementiert) + //und zuletzt die Felder der Klasse in dessen Namensraum sich dieses AssumptionSet befindet. for(CTypeAssumption ass : this.getInstVarAssumptions()){ if(ass.getIdentifier().equals(variableName))return ass.getAssumedType(); diff --git a/src/typinferenz/assumptions/LocalVarAssumption.java b/src/typinferenz/assumptions/LocalVarAssumption.java index bde1c70a..cb073f4e 100644 --- a/src/typinferenz/assumptions/LocalVarAssumption.java +++ b/src/typinferenz/assumptions/LocalVarAssumption.java @@ -14,6 +14,6 @@ public class LocalVarAssumption extends Assumption { @Override public Type getAssumedType() { - return this.localVar.getDeclType(); + return this.localVar.getType(); } } diff --git a/src/typinferenz/assumptions/MethodAssumption.java b/src/typinferenz/assumptions/MethodAssumption.java index b1036cf4..e767b803 100644 --- a/src/typinferenz/assumptions/MethodAssumption.java +++ b/src/typinferenz/assumptions/MethodAssumption.java @@ -43,4 +43,16 @@ public class MethodAssumption extends FieldAssumption { return "MethodAssumption: "+this.method.toString(); } + @Override + public boolean equals(Object obj){ + if(!(obj instanceof MethodAssumption))return false; + MethodAssumption equals = (MethodAssumption)obj; + if(equals.method==null)return false; + if(equals.parentClass==null)return false; + if(!(equals.method.equals(this.method)))return false; + if(!(equals.parentClass.equals(this.parentClass)))return false; + + return true; + } + } diff --git a/src/typinferenz/assumptions/TypeAssumptions.java b/src/typinferenz/assumptions/TypeAssumptions.java index 3c1ce434..5ff0bf1b 100755 --- a/src/typinferenz/assumptions/TypeAssumptions.java +++ b/src/typinferenz/assumptions/TypeAssumptions.java @@ -1,14 +1,16 @@ package typinferenz.assumptions; import java.util.Iterator; + import mycompiler.myclass.Class; + import java.util.Vector; import sun.reflect.generics.reflectiveObjects.NotImplementedException; import typinferenz.FunN; import typinferenz.FunNInterface; import typinferenz.FunNMethod; -import typinferenz.TypinferenzException; +import typinferenz.exceptions.TypinferenzException; import mycompiler.mytype.GenericTypeVar; import mycompiler.mytype.RefType; import mycompiler.mytype.Type; @@ -46,6 +48,7 @@ public class TypeAssumptions { private Vector methodAssumptions = new Vector(); + private Vector constructorAssumptions = new Vector(); private Vector fieldAssumptions = new Vector(); private Vector localVarAssumptions = new Vector(); private Vector parameterAssumptions = new Vector(); @@ -65,9 +68,14 @@ public class TypeAssumptions { } public void addMethodAssumption(MethodAssumption mAss){ - this.methodAssumptions.add(mAss); + if(!this.methodAssumptions.contains(mAss))this.methodAssumptions.add(mAss); } - + + public void addConstructorAssumption( + ConstructorAssumption constructorAssumption) { + this.constructorAssumptions.add(constructorAssumption); + } + public void addFieldAssumption(FieldAssumption ass){ this.fieldAssumptions.add(ass); } @@ -85,12 +93,14 @@ public class TypeAssumptions { * @param withName * @return */ - public Vector getFieldVars(String withName){ + @Deprecated + public Vector getFieldVars2(String withName){ //TODO: Implementieren - return null; + return new Vector(); } - - public Type getTypeOfFieldVar(String withName, Class inClass){ + @Deprecated + public Type getTypeOfFieldVar2(String withName, Class inClass){ + //TODO: Implementieren return null; } @@ -99,8 +109,10 @@ public class TypeAssumptions { * @param withName * @return */ - public Vector getMethods(String withName){ - return null; + @Deprecated + public Vector getMethods2(String withName){ + //TODO: Implementieren + return new Vector(); } /** @@ -108,7 +120,9 @@ public class TypeAssumptions { * @param withName * @return */ - public Type getTypeOfLocalVar(String withName){ + @Deprecated + public Type getTypeOfLocalVar2(String withName){ + //TODO: Implementieren return null; } @@ -243,9 +257,13 @@ public class TypeAssumptions { return ret; } - public Type getThisValue() { + @Deprecated + public Type getThisValue2() { + if(thisClassName == null)throw new TypinferenzException("Kein Wert für this vorhanden, in diesem Kontext"); return new RefType(thisClassName, 0); } + + } diff --git a/src/typinferenz/exceptions/ParserException.java b/src/typinferenz/exceptions/ParserException.java new file mode 100644 index 00000000..70102c11 --- /dev/null +++ b/src/typinferenz/exceptions/ParserException.java @@ -0,0 +1,16 @@ +package typinferenz.exceptions; + +import mycompiler.myparser.JavaParser.yyException; + + +public class ParserException extends TypinferenzException { + + public ParserException(String message) { + super(message); + } + + public ParserException(yyException exc){ + super("Parserfehler"); + } + +} diff --git a/src/typinferenz/TypinferenzException.java b/src/typinferenz/exceptions/TypinferenzException.java similarity index 92% rename from src/typinferenz/TypinferenzException.java rename to src/typinferenz/exceptions/TypinferenzException.java index aa0e082f..0146c4be 100755 --- a/src/typinferenz/TypinferenzException.java +++ b/src/typinferenz/exceptions/TypinferenzException.java @@ -1,4 +1,4 @@ -package typinferenz; +package typinferenz.exceptions; /** * Eine RuntimeException, welche bei einem Fehler während des Typinferenzalgorithmus ausgelöst wird. diff --git a/src/userinterface/ConsoleInterface.java b/src/userinterface/ConsoleInterface.java index 045f9532..4e1c4360 100755 --- a/src/userinterface/ConsoleInterface.java +++ b/src/userinterface/ConsoleInterface.java @@ -8,7 +8,8 @@ import java.util.Vector; import mycompiler.MyCompiler; import mycompiler.MyCompilerAPI; import mycompiler.mytypereconstruction.TypeinferenceResultSet; -import typinferenz.TypinferenzException; +import typinferenz.exceptions.TypinferenzException; + import java.util.*; import org.apache.log4j.Logger; diff --git a/test/mycompiler/test/lambda/OverloadingTest.jav b/test/mycompiler/test/lambda/OverloadingTest.jav index bed6f960..bdcba2bc 100755 --- a/test/mycompiler/test/lambda/OverloadingTest.jav +++ b/test/mycompiler/test/lambda/OverloadingTest.jav @@ -2,7 +2,7 @@ class OverloadingTest{ var; - public Object clone(){ + public clone(){ return this; } @@ -14,7 +14,7 @@ class OverloadingTest{ class OverloadingTest2{ - public Object clone(){ + public clone(){ return this; } diff --git a/test/mycompiler/test/lambda/testResults/LambdaTest.log b/test/mycompiler/test/lambda/testResults/LambdaTest.log index 216cffbe..c581c3b0 100644 --- a/test/mycompiler/test/lambda/testResults/LambdaTest.log +++ b/test/mycompiler/test/lambda/testResults/LambdaTest.log @@ -1,7 +1,7 @@ Class DEBUG [Typeinference] Erstellte Assumptions: this: MatrixMethod Assumptions: -[MethodAssumption: Matrix null { []] +[] FieldVar Assumptions: -[typinferenz.assumptions.FieldAssumption@fefb1c0] +[typinferenz.assumptions.FieldAssumption@4e64fca0, typinferenz.assumptions.FieldAssumption@48059495, typinferenz.assumptions.FieldAssumption@4e64fca0, typinferenz.assumptions.FieldAssumption@48059495] LocalVar Assumptions: [] Parameter Assumptions: @@ -9,26 +9,26 @@ Parameter Assumptions: Block DEBUG [Typeinference] Prozessing statement: null Return null (( [ f, ]) -> null { [null Return null (f.apply( [ null (this(null)), m, ]))]) Block DEBUG [Typeinference] Prozessing statement: null Return null (f.apply( [ null (this(null)), m, ])) -Block DEBUG [Typeinference] Prozessing statement: TPH CJ Return TPH CF (f: TPH CD.apply( [ Matrix (this(null)), m: TPH CB, ])) -Block DEBUG [Typeinference] Prozessing statement: TPH CK Return TPH CE (( [ TPH CD f, ]) -> TPH CJ { [TPH CJ Return TPH CF (f: TPH CD.apply( [ Matrix (this(null)), m: TPH CB, ]))]) -Class DEBUG [Typeinference] Erstellte Constraints: TPH BZ < TPH BZ -[(TPH CG <. TPH CF), (Matrix <. TPH CH), (TPH CB <. TPH CI), (TPH CD <. FunN), ] -TPH CF < TPH CJ -Fun1< TPH CJ, TPH CD > < TPH CE -TPH CE < TPH CK -Fun1< TPH CK, TPH CB > < TPH CC -TPH CC < TPH BZ +Block DEBUG [Typeinference] Prozessing statement: TPH BW Return TPH BS (f: TPH BQ.apply( [ Matrix (this(null)), m: TPH BO, ])) +Block DEBUG [Typeinference] Prozessing statement: TPH BX Return TPH BR (( [ TPH BQ f, ]) -> TPH BW { [TPH BW Return TPH BS (f: TPH BQ.apply( [ Matrix (this(null)), m: TPH BO, ]))]) +Class DEBUG [Typeinference] Erstellte Constraints: TPH BM < TPH BM +[[(TPH BT <. TPH BS), (Matrix <. TPH BU), (TPH BO <. TPH BV), (TPH BQ <. FunN), ]| ] +TPH BS < TPH BW +Fun1< TPH BW, TPH BQ > < TPH BR +TPH BR < TPH BX +Fun1< TPH BX, TPH BO > < TPH BP +TPH BP < TPH BM -SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH BZ <. TPH BZ), (TPH CG <. TPH CF), (Matrix <. TPH CH), (TPH CB <. TPH CI), (TPH CD <. FunN), (TPH CF <. TPH CJ), (Fun1< TPH CJ, TPH CD > <. TPH CE), (TPH CE <. TPH CK), (Fun1< TPH CK, TPH CB > <. TPH CC), (TPH CC <. TPH BZ)]] -SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Matrix), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< ? super GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? super Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)], [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? super Matrix >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)]] +SourceFile DEBUG [Typeinference] Karthesisches Produkt der Constraints: [[(TPH BM <. TPH BM), (TPH BT <. TPH BS), (Matrix <. TPH BU), (TPH BO <. TPH BV), (TPH BQ <. FunN), (TPH BS <. TPH BW), (Fun1< TPH BW, TPH BQ > <. TPH BR), (TPH BR <. TPH BX), (Fun1< TPH BX, TPH BO > <. TPH BP), (TPH BP <. TPH BM)]] +SourceFile DEBUG [Typeinference] Unifiziertes Ergebnis: [[(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Matrix), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< ? super GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? super Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)], [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? super Matrix >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)]] SourceFile DEBUG [Typeinference] JavaFiles: -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Matrix), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Matrix), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -38,11 +38,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -52,11 +52,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -66,11 +66,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< ? extends GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -80,11 +80,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? extends Vector< ? super GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? extends Vector< ? super GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -94,11 +94,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? super Vector< GTV Integer > >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? super Vector< GTV Integer > >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; @@ -108,11 +108,11 @@ Matrix Matrix() } } -SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH CG <. TPH CF), (TPH CB <. TPH CI), (TPH CF <. TPH CJ), (TPH CK = Fun1< TPH CJ, FunN >), (TPH BZ = Fun1< Fun1< TPH CJ, FunN >, TPH CB >), (TPH CH = Vector< ? super Matrix >), (TPH CD = FunN), (TPH CE = Fun1< TPH CJ, FunN >), (TPH CC = Fun1< Fun1< TPH CJ, FunN >, TPH CB >)] +SourceFile DEBUG [Typeinference] JavaFile für ResultSet Unified Constraints: [(TPH BT <. TPH BS), (TPH BO <. TPH BV), (TPH BS <. TPH BW), (TPH BX = Fun1< TPH BW, FunN >), (TPH BM = Fun1< Fun1< TPH BW, FunN >, TPH BO >), (TPH BU = Vector< ? super Matrix >), (TPH BQ = FunN), (TPH BR = Fun1< TPH BW, FunN >), (TPH BP = Fun1< Fun1< TPH BW, FunN >, TPH BO >)] -SourceFile DEBUG [Typeinference] class Matrix extends Vector> +SourceFile DEBUG [Typeinference] class Matrix extends Vector> { -Fun1, CB> op = (CB m) -> { +Fun1, BO> op = (BO m) -> { return (FunN f) -> { return f.apply(this, m);; }; diff --git a/test/mycompiler/test/notUsedAnymore/TestAbstractInferenceTest.java b/test/mycompiler/test/notUsedAnymore/TestAbstractInferenceTest.java index e373a052..a3d26b7e 100755 --- a/test/mycompiler/test/notUsedAnymore/TestAbstractInferenceTest.java +++ b/test/mycompiler/test/notUsedAnymore/TestAbstractInferenceTest.java @@ -7,9 +7,6 @@ import mycompiler.mytypereconstruction.typeassumption.CLocalVarTypeAssumption; import mycompiler.mytypereconstruction.typeassumption.CMethodTypeAssumption; -/*TODO: -*/ - public class TestAbstractInferenceTest extends AbstractInferenceTestOLD_2 { private final static String TESTEDCLASSNAME="TestAbstractInferenceTest"; diff --git a/test/parser/FieldInitializationTest.jav b/test/parser/FieldInitializationTest.jav new file mode 100644 index 00000000..302667b9 --- /dev/null +++ b/test/parser/FieldInitializationTest.jav @@ -0,0 +1,3 @@ +class FieldInitializationTest{ + String var = "hallo"; +} \ No newline at end of file diff --git a/test/parser/GeneralParserTest.java b/test/parser/GeneralParserTest.java new file mode 100644 index 00000000..4a9d245b --- /dev/null +++ b/test/parser/GeneralParserTest.java @@ -0,0 +1,43 @@ +package parser; + +import static org.junit.Assert.*; + +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Vector; + +import junit.framework.TestCase; +import mycompiler.MyCompiler; +import mycompiler.MyCompilerAPI; + +import org.junit.Test; + +/** + * Dieser Test prüft nur, ob .java-Dateien fehlerfrei geparst werden. + * Der dabei erstellte Syntaxbaum wird nicht kontrolliert. + * @author janulrich + * + */ +public class GeneralParserTest{ + private static final String rootDirectory = System.getProperty("user.dir")+"/test/parser/"; + + @Test + public void run(){ + Vector filenames = new Vector(); + filenames.add("FieldInitializationTest.jav"); + MyCompilerAPI compiler = MyCompiler.getAPI(); + try{ + for(String filename : filenames) + compiler.parse(new File(rootDirectory + filename)); + }catch(Exception exc){ + exc.printStackTrace(); + fail(); + } + assertTrue("Tests durchlaufen",filenames.size()>0); + } + +} diff --git a/test/plugindevelopment/FunNInsertTest.jav b/test/plugindevelopment/FunNInsertTest.jav new file mode 100644 index 00000000..1709ff2e --- /dev/null +++ b/test/plugindevelopment/FunNInsertTest.jav @@ -0,0 +1,12 @@ +class FunNInsertTest{ + + Object1 var1; + Object2 var2; + Object3 var3; + op = (a) -> (b) -> (c) -> { + var1 = a; + var2 = b; + var3 = c; + }; + +} \ No newline at end of file diff --git a/test/plugindevelopment/FunNInsertTest.java b/test/plugindevelopment/FunNInsertTest.java new file mode 100644 index 00000000..bf6cabeb --- /dev/null +++ b/test/plugindevelopment/FunNInsertTest.java @@ -0,0 +1,18 @@ +package plugindevelopment; + +import java.util.Vector; + +import org.junit.Test; + +public class FunNInsertTest { + + private static final String TEST_FILE = "FunNInsertTest.jav"; + + @Test + public void run(){ + Vector mustContain = new Vector(); + mustContain.add("Fun1, Object2>, Object1> op"); + MultipleTypesInsertTester.test(this.TEST_FILE, mustContain); + } + +} diff --git a/test/plugindevelopment/MultipleTypesInsertTester.java b/test/plugindevelopment/MultipleTypesInsertTester.java new file mode 100644 index 00000000..818c955b --- /dev/null +++ b/test/plugindevelopment/MultipleTypesInsertTester.java @@ -0,0 +1,46 @@ +package plugindevelopment; + +import java.io.File; +import java.io.IOException; +import java.util.Vector; + +import junit.framework.TestCase; +import mycompiler.MyCompiler; +import mycompiler.MyCompilerAPI; +import mycompiler.myparser.JavaParser.yyException; +import mycompiler.mytypereconstruction.TypeinferenceResultSet; +import typinferenz.TypeInsertSet; + +public class MultipleTypesInsertTester { + + public static void test(String sourceFileToInfere, Vector mustContain){ + String gesamterSrc = ""; + String inferedSource = ""; + MyCompilerAPI compiler = MyCompiler.getAPI(); + try { + compiler.parse(new File(TypeInsertTester.rootDirectory + sourceFileToInfere)); + Vector results = compiler.typeReconstruction(); + //TestCase.assertTrue("Es darf nicht mehr als eine Lösungsmöglichkeit geben und nicht "+results.size(), results.size()==1); + for(TypeinferenceResultSet result : results){ + Vector points = result.getTypeInsertionPoints(); + //TestCase.assertTrue("Es muss mindestens ein TypeInsertSet vorhanden sein", points.size()>0); + for(TypeInsertSet point : points){ + //TestCase.assertTrue("Es muss mindestens ein TypeInsertPoint vorhanden sein", point.points.size()>0); + if(point.points.size()>0){ + inferedSource = point.insertAllTypes(TypeInsertTester.getFileContent(TypeInsertTester.rootDirectory + sourceFileToInfere)); + System.out.println(inferedSource); + gesamterSrc += inferedSource; + } + } + } + + } catch (IOException | yyException e) { + e.printStackTrace(); + TestCase.fail(); + } + for(String containString : mustContain){ + TestCase.assertTrue("\""+containString+"\" muss in den inferierten Lösungen vorkommen",gesamterSrc.contains(containString)); + } + } + +} diff --git a/test/plugindevelopment/OverloadingInsertTest.jav b/test/plugindevelopment/OverloadingInsertTest.jav new file mode 100644 index 00000000..5952fe38 --- /dev/null +++ b/test/plugindevelopment/OverloadingInsertTest.jav @@ -0,0 +1,20 @@ +class OverloadingInsertTest{ + + var; + + overload(){ + return this; + } +} + +class Overloading2{ + var2; + + methode(){ + return var2.overload(); + } + + overload(){ + return this; + } +} \ No newline at end of file diff --git a/test/plugindevelopment/OverloadingInsertTest.java b/test/plugindevelopment/OverloadingInsertTest.java new file mode 100644 index 00000000..845d9f3b --- /dev/null +++ b/test/plugindevelopment/OverloadingInsertTest.java @@ -0,0 +1,33 @@ +package plugindevelopment; + +import java.io.File; +import java.io.IOException; +import java.util.Vector; + +import junit.framework.TestCase; +import mycompiler.MyCompiler; +import mycompiler.MyCompilerAPI; +import mycompiler.myparser.JavaParser.yyException; +import mycompiler.mytypereconstruction.TypeinferenceResultSet; + +import org.junit.Test; + +import typinferenz.TypeInsertSet; + +public class OverloadingInsertTest { + private static final String TEST_FILE = "OverloadingInsertTest.jav"; + + @Test + public void run(){ + Vector mustContain = new Vector(); + mustContain.add("Overloading2 methode"); + mustContain.add("Overloading2 overload"); + mustContain.add("Overloading2 var2"); + mustContain.add("OverloadingInsertTest methode"); + mustContain.add("OverloadingInsertTest overload"); + mustContain.add("OverloadingInsertTest var2"); + MultipleTypesInsertTester.test(this.TEST_FILE, mustContain); + } + + +} diff --git a/test/plugindevelopment/TypeInsertTester.java b/test/plugindevelopment/TypeInsertTester.java index 4e8d42ae..febaa105 100644 --- a/test/plugindevelopment/TypeInsertTester.java +++ b/test/plugindevelopment/TypeInsertTester.java @@ -39,7 +39,7 @@ public class TypeInsertTester{ inferencelog.addAppender(logAppender); //Bei den Tests wird der Log auch in System.out geschrieben. } } - private static final String rootDirectory = System.getProperty("user.dir")+"/test/plugindevelopment/"; + static final String rootDirectory = System.getProperty("user.dir")+"/test/plugindevelopment/"; public static void test(String sourceFileToInfere, String solutionFile){ String inferedSource = ""; @@ -47,7 +47,7 @@ public class TypeInsertTester{ try { compiler.parse(new File(rootDirectory + sourceFileToInfere)); Vector results = compiler.typeReconstruction(); - TestCase.assertTrue("Es darf nicht mehr als eine Lösungsmöglichkeit geben", results.size()==1); + TestCase.assertTrue("Es darf nicht mehr als eine Lösungsmöglichkeit geben und nicht "+results.size(), results.size()==1); for(TypeinferenceResultSet result : results){ Vector points = result.getTypeInsertionPoints(); TestCase.assertTrue("Es muss mindestens ein TypeInsertSet vorhanden sein", points.size()>0); @@ -68,7 +68,7 @@ public class TypeInsertTester{ } //Source: https://stackoverflow.com/questions/326390/how-to-create-a-java-string-from-the-contents-of-a-file - private static String getFileContent(String path)throws IOException + static String getFileContent(String path)throws IOException { byte[] encoded = Files.readAllBytes(Paths.get(path)); return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(encoded)).toString(); diff --git a/test/syntaxTree/NodeEqualTest.jav b/test/syntaxTree/NodeEqualTest.jav new file mode 100644 index 00000000..15cbdba5 --- /dev/null +++ b/test/syntaxTree/NodeEqualTest.jav @@ -0,0 +1,9 @@ +class NodeEqualTest { + String var1; + void methode1(){ + var1 = "String"; + } + String methode2(String test){ + return test; + } +} \ No newline at end of file diff --git a/test/syntaxTree/NodeEqualTest.java b/test/syntaxTree/NodeEqualTest.java new file mode 100644 index 00000000..312d4a36 --- /dev/null +++ b/test/syntaxTree/NodeEqualTest.java @@ -0,0 +1,56 @@ +package syntaxTree; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import mycompiler.MyCompiler; +import mycompiler.MyCompilerAPI; +import mycompiler.SourceFile; +import mycompiler.SyntaxTreeNode; +import mycompiler.myparser.JavaParser.yyException; + +import org.junit.Test; + +import junit.framework.TestCase; + +public class NodeEqualTest extends TestCase{ + private static final String rootDirectory = System.getProperty("user.dir")+"/test/syntaxTree/"; + private static final String testFile = "NodeEqualTest.jav"; + + @Test + public void test(){ + MyCompilerAPI compiler = MyCompiler.getAPI(); + MyCompilerAPI compiler2 = MyCompiler.getAPI(); + SourceFile tree = null; + SourceFile tree2 = null; + try { + tree = compiler.parse(new File(rootDirectory + testFile)); + tree2 = compiler2.parse(new File(rootDirectory + testFile)); + } catch (IOException | yyException e) { + e.printStackTrace(); + fail(); + } + recursivlyCheckEqual(tree, tree2); + } + + private void recursivlyCheckEqual(SyntaxTreeNode node1, SyntaxTreeNode node2){ + for(SyntaxTreeNode n1 : node1.getChildren()){ + int matches = 0; + for(SyntaxTreeNode n2 : node2.getChildren()){ + if(n2.equals(n1)){ + System.out.println(n2 + " == "+n1); + matches++; + this.recursivlyCheckEqual(n1, n2); + }else{ + System.out.println(n2 + " != "+ n1); + } + } + System.out.println(""); + assertTrue("Nur eines der Children darf gleich sein, nicht "+matches, matches == 1 && node2.getChildren().size()>0); + } + } + + + +} diff --git a/tools/y.output b/tools/y.output index 44c17bac..1b0e6176 100644 --- a/tools/y.output +++ b/tools/y.output @@ -114,283 +114,284 @@ 78 abstractmethoddeclaration : methodheader ';' - 79 fielddeclarator : variabledeclarator '=' expression + 79 fielddeclarator : type variabledeclarator '=' expression + 80 | variabledeclarator '=' expression - 80 fielddeclaration : fielddeclarator ';' - 81 | type fielddeclarator - 82 | variabledeclarators ';' - 83 | type variabledeclarators ';' - 84 | modifiers type variabledeclarators ';' + 81 fielddeclaration : fielddeclarator ';' + 82 | type fielddeclarator + 83 | variabledeclarators ';' + 84 | type variabledeclarators ';' + 85 | modifiers type variabledeclarators ';' - 85 methoddeclaration : methodheader methodbody + 86 methoddeclaration : methodheader methodbody - 86 block : '{' '}' - 87 | '{' blockstatements '}' + 87 block : '{' '}' + 88 | '{' blockstatements '}' - 88 constructordeclarator : simplename '(' ')' - 89 | simplename '(' formalparameterlist ')' + 89 constructordeclarator : simplename '(' ')' + 90 | simplename '(' formalparameterlist ')' - 90 constructorbody : '{' '}' - 91 | '{' explicitconstructorinvocation '}' - 92 | '{' blockstatements '}' - 93 | '{' explicitconstructorinvocation blockstatements '}' + 91 constructorbody : '{' '}' + 92 | '{' explicitconstructorinvocation '}' + 93 | '{' blockstatements '}' + 94 | '{' explicitconstructorinvocation blockstatements '}' - 94 throws : THROWS classtypelist + 95 throws : THROWS classtypelist - 95 boundedClassParameter : boundedMethodParameter + 96 boundedClassParameter : boundedMethodParameter - 96 boundedClassParameters : boundedClassParameter - 97 | boundedClassParameters ',' boundedClassParameter + 97 boundedClassParameters : boundedClassParameter + 98 | boundedClassParameters ',' boundedClassParameter - 98 boundedMethodParameter : IDENTIFIER - 99 | IDENTIFIER EXTENDS boundedclassidentifierlist + 99 boundedMethodParameter : IDENTIFIER + 100 | IDENTIFIER EXTENDS boundedclassidentifierlist - 100 boundedclassidentifierlist : referencetype - 101 | boundedclassidentifierlist '&' referencetype + 101 boundedclassidentifierlist : referencetype + 102 | boundedclassidentifierlist '&' referencetype - 102 boundedMethodParameters : boundedMethodParameter - 103 | boundedMethodParameters ',' boundedMethodParameter + 103 boundedMethodParameters : boundedMethodParameter + 104 | boundedMethodParameters ',' boundedMethodParameter - 104 methodheader : '<' boundedMethodParameters '>' type methoddeclarator - 105 | type methoddeclarator - 106 | modifiers type methoddeclarator - 107 | modifiers '<' boundedMethodParameters '>' type methoddeclarator - 108 | type methoddeclarator throws - 109 | '<' boundedMethodParameters '>' type methoddeclarator throws - 110 | modifiers type methoddeclarator throws - 111 | modifiers '<' boundedMethodParameters '>' type methoddeclarator throws - 112 | VOID methoddeclarator - 113 | modifiers VOID methoddeclarator - 114 | VOID methoddeclarator throws - 115 | modifiers VOID methoddeclarator throws - 116 | '<' boundedMethodParameters '>' VOID methoddeclarator - 117 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator - 118 | '<' boundedMethodParameters '>' VOID methoddeclarator throws - 119 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws - 120 | methoddeclarator - 121 | '<' boundedMethodParameters '>' methoddeclarator - 122 | modifiers methoddeclarator - 123 | methoddeclarator throws - 124 | modifiers methoddeclarator throws + 105 methodheader : '<' boundedMethodParameters '>' type methoddeclarator + 106 | type methoddeclarator + 107 | modifiers type methoddeclarator + 108 | modifiers '<' boundedMethodParameters '>' type methoddeclarator + 109 | type methoddeclarator throws + 110 | '<' boundedMethodParameters '>' type methoddeclarator throws + 111 | modifiers type methoddeclarator throws + 112 | modifiers '<' boundedMethodParameters '>' type methoddeclarator throws + 113 | VOID methoddeclarator + 114 | modifiers VOID methoddeclarator + 115 | VOID methoddeclarator throws + 116 | modifiers VOID methoddeclarator throws + 117 | '<' boundedMethodParameters '>' VOID methoddeclarator + 118 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator + 119 | '<' boundedMethodParameters '>' VOID methoddeclarator throws + 120 | modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws + 121 | methoddeclarator + 122 | '<' boundedMethodParameters '>' methoddeclarator + 123 | modifiers methoddeclarator + 124 | methoddeclarator throws + 125 | modifiers methoddeclarator throws - 125 type : primitivetype - 126 | primitivetype '[' ']' - 127 | referencetype - 128 | referencetype '[' ']' + 126 type : primitivetype + 127 | primitivetype '[' ']' + 128 | referencetype + 129 | referencetype '[' ']' - 129 variabledeclarators : variabledeclarator - 130 | variabledeclarators ',' variabledeclarator + 130 variabledeclarators : variabledeclarator + 131 | variabledeclarators ',' variabledeclarator - 131 methodbody : block + 132 methodbody : block - 132 blockstatements : blockstatement - 133 | blockstatements blockstatement + 133 blockstatements : blockstatement + 134 | blockstatements blockstatement - 134 formalparameterlist : formalparameter - 135 | formalparameterlist ',' formalparameter + 135 formalparameterlist : formalparameter + 136 | formalparameterlist ',' formalparameter - 136 explicitconstructorinvocation : THIS '(' ')' ';' - 137 | THIS '(' argumentlist ')' ';' + 137 explicitconstructorinvocation : THIS '(' ')' ';' + 138 | THIS '(' argumentlist ')' ';' - 138 classtypelist : classtype - 139 | classtypelist ',' classtype + 139 classtypelist : classtype + 140 | classtypelist ',' classtype - 140 methoddeclarator : IDENTIFIER '(' ')' - 141 | IDENTIFIER '(' formalparameterlist ')' + 141 methoddeclarator : IDENTIFIER '(' ')' + 142 | IDENTIFIER '(' formalparameterlist ')' - 142 primitivetype : BOOLEAN - 143 | numerictype + 143 primitivetype : BOOLEAN + 144 | numerictype - 144 referencetype : classorinterfacetype + 145 referencetype : classorinterfacetype - 145 variabledeclarator : variabledeclaratorid + 146 variabledeclarator : variabledeclaratorid - 146 blockstatement : localvariabledeclarationstatement - 147 | statement + 147 blockstatement : localvariabledeclarationstatement + 148 | statement - 148 formalparameter : type variabledeclaratorid - 149 | variabledeclaratorid + 149 formalparameter : type variabledeclaratorid + 150 | variabledeclaratorid - 150 argumentlist : expression - 151 | argumentlist ',' expression + 151 argumentlist : expression + 152 | argumentlist ',' expression - 152 numerictype : integraltype + 153 numerictype : integraltype - 153 variabledeclaratorid : IDENTIFIER + 154 variabledeclaratorid : IDENTIFIER - 154 variableinitializer : expression + 155 variableinitializer : expression - 155 localvariabledeclarationstatement : localvariabledeclaration ';' + 156 localvariabledeclarationstatement : localvariabledeclaration ';' - 156 statement : statementwithouttrailingsubstatement - 157 | ifthenstatement - 158 | ifthenelsestatement - 159 | whilestatement - 160 | forstatement + 157 statement : statementwithouttrailingsubstatement + 158 | ifthenstatement + 159 | ifthenelsestatement + 160 | whilestatement + 161 | forstatement - 161 expression : assignmentexpression - 162 | classinstancecreationexpression + 162 expression : assignmentexpression + 163 | classinstancecreationexpression - 163 integraltype : INT - 164 | CHAR + 164 integraltype : INT + 165 | CHAR - 165 localvariabledeclaration : type variabledeclarators - 166 | variabledeclarators + 166 localvariabledeclaration : type variabledeclarators + 167 | variabledeclarators - 167 statementwithouttrailingsubstatement : block - 168 | emptystatement - 169 | expressionstatement - 170 | returnstatement + 168 statementwithouttrailingsubstatement : block + 169 | emptystatement + 170 | expressionstatement + 171 | returnstatement - 171 ifthenstatement : IF '(' expression ')' statement + 172 ifthenstatement : IF '(' expression ')' statement - 172 ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement + 173 ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement - 173 whilestatement : WHILE '(' expression ')' statement + 174 whilestatement : WHILE '(' expression ')' statement - 174 forstatement : FOR '(' expression ';' expression ';' expression ')' statement - 175 | FOR '(' expression ';' expression ';' ')' statement - 176 | FOR '(' expression ';' ';' expression ')' statement - 177 | FOR '(' ';' expression ';' expression ')' statement - 178 | FOR '(' expression ';' ';' ')' statement - 179 | FOR '(' ';' expression ';' ')' statement - 180 | FOR '(' ';' ';' expression ')' statement - 181 | FOR '(' ';' ';' ')' statement + 175 forstatement : FOR '(' expression ';' expression ';' expression ')' statement + 176 | FOR '(' expression ';' expression ';' ')' statement + 177 | FOR '(' expression ';' ';' expression ')' statement + 178 | FOR '(' ';' expression ';' expression ')' statement + 179 | FOR '(' expression ';' ';' ')' statement + 180 | FOR '(' ';' expression ';' ')' statement + 181 | FOR '(' ';' ';' expression ')' statement + 182 | FOR '(' ';' ';' ')' statement - 182 assignmentexpression : conditionalexpression - 183 | assignment + 183 assignmentexpression : conditionalexpression + 184 | assignment - 184 emptystatement : ';' + 185 emptystatement : ';' - 185 expressionstatement : statementexpression ';' + 186 expressionstatement : statementexpression ';' - 186 returnstatement : RETURN ';' - 187 | RETURN expression ';' + 187 returnstatement : RETURN ';' + 188 | RETURN expression ';' - 188 statementnoshortif : statementwithouttrailingsubstatement - 189 | ifthenelsestatementnoshortif - 190 | whilestatementnoshortif + 189 statementnoshortif : statementwithouttrailingsubstatement + 190 | ifthenelsestatementnoshortif + 191 | whilestatementnoshortif - 191 conditionalexpression : conditionalorexpression + 192 conditionalexpression : conditionalorexpression - 192 assignment : lefthandside assignmentoperator assignmentexpression - 193 | lefthandside assignmentoperator classinstancecreationexpression + 193 assignment : lefthandside assignmentoperator assignmentexpression + 194 | lefthandside assignmentoperator classinstancecreationexpression - 194 statementexpression : assignment - 195 | preincrementexpression - 196 | predecrementexpression - 197 | postincrementexpression - 198 | postdecrementexpression - 199 | methodinvocation + 195 statementexpression : assignment + 196 | preincrementexpression + 197 | predecrementexpression + 198 | postincrementexpression + 199 | postdecrementexpression + 200 | methodinvocation - 200 ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif + 201 ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif - 201 whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif + 202 whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif - 202 conditionalorexpression : conditionalandexpression - 203 | conditionalorexpression LOGICALOR conditionalandexpression + 203 conditionalorexpression : conditionalandexpression + 204 | conditionalorexpression LOGICALOR conditionalandexpression - 204 lambdaassignmentoperator : LAMBDAASSIGNMENT + 205 lambdaassignmentoperator : LAMBDAASSIGNMENT - 205 lambdabody : block - 206 | expression + 206 lambdabody : block + 207 | expression - 207 lambdaexpressionparameter : '(' ')' - 208 | '(' formalparameterlist ')' + 208 lambdaexpressionparameter : '(' ')' + 209 | '(' formalparameterlist ')' - 209 lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody + 210 lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody - 210 lefthandside : name + 211 lefthandside : name - 211 assignmentoperator : '=' - 212 | TIMESEQUAL - 213 | DIVIDEEQUAL - 214 | MODULOEQUAL - 215 | PLUSEQUAL - 216 | MINUSEQUAL + 212 assignmentoperator : '=' + 213 | TIMESEQUAL + 214 | DIVIDEEQUAL + 215 | MODULOEQUAL + 216 | PLUSEQUAL + 217 | MINUSEQUAL - 217 preincrementexpression : INCREMENT unaryexpression + 218 preincrementexpression : INCREMENT unaryexpression - 218 predecrementexpression : DECREMENT unaryexpression + 219 predecrementexpression : DECREMENT unaryexpression - 219 postincrementexpression : postfixexpression INCREMENT + 220 postincrementexpression : postfixexpression INCREMENT - 220 postdecrementexpression : postfixexpression DECREMENT + 221 postdecrementexpression : postfixexpression DECREMENT - 221 methodinvocation : name '(' ')' - 222 | name '(' argumentlist ')' - 223 | primary '.' IDENTIFIER '(' ')' - 224 | primary '.' IDENTIFIER '(' argumentlist ')' + 222 methodinvocation : name '(' ')' + 223 | name '(' argumentlist ')' + 224 | primary '.' IDENTIFIER '(' ')' + 225 | primary '.' IDENTIFIER '(' argumentlist ')' - 225 classinstancecreationexpression : NEW classtype '(' ')' - 226 | NEW classtype '(' argumentlist ')' + 226 classinstancecreationexpression : NEW classtype '(' ')' + 227 | NEW classtype '(' argumentlist ')' - 227 conditionalandexpression : inclusiveorexpression - 228 | conditionalandexpression LOGICALAND inclusiveorexpression + 228 conditionalandexpression : inclusiveorexpression + 229 | conditionalandexpression LOGICALAND inclusiveorexpression - 229 unaryexpression : preincrementexpression - 230 | predecrementexpression - 231 | '+' unaryexpression - 232 | '-' unaryexpression - 233 | unaryexpressionnotplusminus + 230 unaryexpression : preincrementexpression + 231 | predecrementexpression + 232 | '+' unaryexpression + 233 | '-' unaryexpression + 234 | unaryexpressionnotplusminus - 234 postfixexpression : primary - 235 | name - 236 | postincrementexpression - 237 | postdecrementexpression + 235 postfixexpression : primary + 236 | name + 237 | postincrementexpression + 238 | postdecrementexpression - 238 primary : primarynonewarray + 239 primary : primarynonewarray - 239 inclusiveorexpression : exclusiveorexpression - 240 | inclusiveorexpression '|' exclusiveorexpression + 240 inclusiveorexpression : exclusiveorexpression + 241 | inclusiveorexpression '|' exclusiveorexpression - 241 primarynonewarray : literal - 242 | THIS - 243 | methodinvocation - 244 | lambdaexpression + 242 primarynonewarray : literal + 243 | THIS + 244 | methodinvocation + 245 | lambdaexpression - 245 unaryexpressionnotplusminus : postfixexpression - 246 | '!' unaryexpression - 247 | castexpression + 246 unaryexpressionnotplusminus : postfixexpression + 247 | '!' unaryexpression + 248 | castexpression - 248 exclusiveorexpression : andexpression - 249 | exclusiveorexpression '^' andexpression + 249 exclusiveorexpression : andexpression + 250 | exclusiveorexpression '^' andexpression - 250 literal : INTLITERAL - 251 | BOOLLITERAL - 252 | CHARLITERAL - 253 | STRINGLITERAL - 254 | LONGLITERAL - 255 | FLOATLITERAL - 256 | DOUBLELITERAL - 257 | JNULL + 251 literal : INTLITERAL + 252 | BOOLLITERAL + 253 | CHARLITERAL + 254 | STRINGLITERAL + 255 | LONGLITERAL + 256 | FLOATLITERAL + 257 | DOUBLELITERAL + 258 | JNULL - 258 castexpression : '(' primitivetype ')' unaryexpression + 259 castexpression : '(' primitivetype ')' unaryexpression - 259 andexpression : equalityexpression - 260 | andexpression '&' equalityexpression + 260 andexpression : equalityexpression + 261 | andexpression '&' equalityexpression - 261 equalityexpression : relationalexpression - 262 | equalityexpression EQUAL relationalexpression - 263 | equalityexpression NOTEQUAL relationalexpression + 262 equalityexpression : relationalexpression + 263 | equalityexpression EQUAL relationalexpression + 264 | equalityexpression NOTEQUAL relationalexpression - 264 relationalexpression : shiftexpression - 265 | relationalexpression '<' shiftexpression - 266 | relationalexpression '>' shiftexpression - 267 | relationalexpression LESSEQUAL shiftexpression - 268 | relationalexpression GREATEREQUAL shiftexpression - 269 | relationalexpression INSTANCEOF referencetype + 265 relationalexpression : shiftexpression + 266 | relationalexpression '<' shiftexpression + 267 | relationalexpression '>' shiftexpression + 268 | relationalexpression LESSEQUAL shiftexpression + 269 | relationalexpression GREATEREQUAL shiftexpression + 270 | relationalexpression INSTANCEOF referencetype - 270 shiftexpression : additiveexpression + 271 shiftexpression : additiveexpression - 271 additiveexpression : multiplicativeexpression - 272 | additiveexpression '+' multiplicativeexpression - 273 | additiveexpression '-' multiplicativeexpression + 272 additiveexpression : multiplicativeexpression + 273 | additiveexpression '+' multiplicativeexpression + 274 | additiveexpression '-' multiplicativeexpression - 274 multiplicativeexpression : unaryexpression - 275 | multiplicativeexpression '*' unaryexpression - 276 | multiplicativeexpression '/' unaryexpression - 277 | multiplicativeexpression '%' unaryexpression + 275 multiplicativeexpression : unaryexpression + 276 | multiplicativeexpression '*' unaryexpression + 277 | multiplicativeexpression '/' unaryexpression + 278 | multiplicativeexpression '%' unaryexpression state 0 $accept : . compilationunit $end (0) @@ -836,29 +837,29 @@ state 37 state 38 - boundedMethodParameter : IDENTIFIER . (98) - boundedMethodParameter : IDENTIFIER . EXTENDS boundedclassidentifierlist (99) + boundedMethodParameter : IDENTIFIER . (99) + boundedMethodParameter : IDENTIFIER . EXTENDS boundedclassidentifierlist (100) EXTENDS shift 100 - ',' reduce 98 - '>' reduce 98 + ',' reduce 99 + '>' reduce 99 state 39 - boundedClassParameter : boundedMethodParameter . (95) - - . reduce 95 - - -state 40 - boundedClassParameters : boundedClassParameter . (96) + boundedClassParameter : boundedMethodParameter . (96) . reduce 96 +state 40 + boundedClassParameters : boundedClassParameter . (97) + + . reduce 97 + + state 41 classidentifier : IDENTIFIER '<' boundedClassParameters . '>' (27) - boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (97) + boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (98) ',' shift 101 '>' shift 102 @@ -944,21 +945,21 @@ state 47 state 48 - primitivetype : BOOLEAN . (142) + primitivetype : BOOLEAN . (143) - . reduce 142 + . reduce 143 state 49 - integraltype : CHAR . (164) + integraltype : CHAR . (165) - . reduce 164 + . reduce 165 state 50 - integraltype : INT . (163) + integraltype : INT . (164) - . reduce 163 + . reduce 164 state 51 @@ -983,8 +984,8 @@ state 51 state 52 - methodheader : VOID . methoddeclarator (112) - methodheader : VOID . methoddeclarator throws (114) + methodheader : VOID . methoddeclarator (113) + methodheader : VOID . methoddeclarator throws (115) IDENTIFIER shift 107 . error @@ -995,25 +996,28 @@ state 52 53: shift/reduce conflict (shift 109, reduce 15) on '(' state 53 simplename : IDENTIFIER . (15) - methoddeclarator : IDENTIFIER . '(' ')' (140) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (141) - variabledeclaratorid : IDENTIFIER . (153) + methoddeclarator : IDENTIFIER . '(' ')' (141) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (142) + variabledeclaratorid : IDENTIFIER . (154) '(' shift 109 + BOOLEAN reduce 15 + CHAR reduce 15 + INT reduce 15 IDENTIFIER reduce 15 - ',' reduce 153 - ';' reduce 153 + ',' reduce 154 + ';' reduce 154 '<' reduce 15 - '=' reduce 153 + '=' reduce 154 '[' reduce 15 state 54 - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator (104) - methodheader : '<' . boundedMethodParameters '>' type methoddeclarator throws (109) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator (116) - methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator throws (118) - methodheader : '<' . boundedMethodParameters '>' methoddeclarator (121) + methodheader : '<' . boundedMethodParameters '>' type methoddeclarator (105) + methodheader : '<' . boundedMethodParameters '>' type methoddeclarator throws (110) + methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator (117) + methodheader : '<' . boundedMethodParameters '>' VOID methoddeclarator throws (119) + methodheader : '<' . boundedMethodParameters '>' methoddeclarator (122) IDENTIFIER shift 38 . error @@ -1035,7 +1039,7 @@ state 56 state 57 - methoddeclaration : methodheader . methodbody (85) + methoddeclaration : methodheader . methodbody (86) '{' shift 105 . error @@ -1051,12 +1055,12 @@ state 58 state 59 - methodheader : methoddeclarator . (120) - methodheader : methoddeclarator . throws (123) + methodheader : methoddeclarator . (121) + methodheader : methoddeclarator . throws (124) THROWS shift 114 - ';' reduce 120 - '{' reduce 120 + ';' reduce 121 + '{' reduce 121 throws goto 115 @@ -1117,8 +1121,8 @@ state 62 state 63 - fielddeclaration : variabledeclarators . ';' (82) - variabledeclarators : variabledeclarators . ',' variabledeclarator (130) + fielddeclaration : variabledeclarators . ';' (83) + variabledeclarators : variabledeclarators . ',' variabledeclarator (131) ',' shift 118 ';' shift 119 @@ -1126,35 +1130,38 @@ state 63 state 64 - fielddeclaration : fielddeclarator . ';' (80) + fielddeclaration : fielddeclarator . ';' (81) ';' shift 120 . error state 65 - fielddeclarator : variabledeclarator . '=' expression (79) - variabledeclarators : variabledeclarator . (129) + fielddeclarator : variabledeclarator . '=' expression (80) + variabledeclarators : variabledeclarator . (130) '=' shift 121 - ',' reduce 129 - ';' reduce 129 + ',' reduce 130 + ';' reduce 130 state 66 - variabledeclarator : variabledeclaratorid . (145) + variabledeclarator : variabledeclaratorid . (146) - . reduce 145 + . reduce 146 state 67 classorinterfacetype : simplename . parameter (67) - constructordeclarator : simplename . '(' ')' (88) - constructordeclarator : simplename . '(' formalparameterlist ')' (89) + constructordeclarator : simplename . '(' ')' (89) + constructordeclarator : simplename . '(' formalparameterlist ')' (90) parameter : . (68) '<' shift 103 '(' shift 122 + BOOLEAN reduce 68 + CHAR reduce 68 + INT reduce 68 IDENTIFIER reduce 68 '[' reduce 68 @@ -1162,69 +1169,86 @@ state 67 state 68 - referencetype : classorinterfacetype . (144) + referencetype : classorinterfacetype . (145) + + . reduce 145 + + +state 69 + numerictype : integraltype . (153) + + . reduce 153 + + +state 70 + primitivetype : numerictype . (144) . reduce 144 -state 69 - numerictype : integraltype . (152) - - . reduce 152 - - -state 70 - primitivetype : numerictype . (143) - - . reduce 143 - - state 71 - type : primitivetype . (125) - type : primitivetype . '[' ']' (126) + type : primitivetype . (126) + type : primitivetype . '[' ']' (127) '[' shift 123 - IDENTIFIER reduce 125 + BOOLEAN reduce 126 + CHAR reduce 126 + INT reduce 126 + IDENTIFIER reduce 126 state 72 - type : referencetype . (127) - type : referencetype . '[' ']' (128) + type : referencetype . (128) + type : referencetype . '[' ']' (129) '[' shift 124 - IDENTIFIER reduce 127 + BOOLEAN reduce 128 + CHAR reduce 128 + INT reduce 128 + IDENTIFIER reduce 128 state 73 - fielddeclaration : type . fielddeclarator (81) - fielddeclaration : type . variabledeclarators ';' (83) - methodheader : type . methoddeclarator (105) - methodheader : type . methoddeclarator throws (108) + fielddeclarator : type . variabledeclarator '=' expression (79) + fielddeclaration : type . fielddeclarator (82) + fielddeclaration : type . variabledeclarators ';' (84) + methodheader : type . methoddeclarator (106) + methodheader : type . methoddeclarator throws (109) - IDENTIFIER shift 125 + BOOLEAN shift 48 + CHAR shift 49 + INT shift 50 + IDENTIFIER shift 53 . error - methoddeclarator goto 126 - variabledeclarators goto 127 - fielddeclarator goto 128 - variabledeclarator goto 65 + methoddeclarator goto 125 + variabledeclarators goto 126 + fielddeclarator goto 127 + variabledeclarator goto 128 variabledeclaratorid goto 66 + simplename goto 43 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 129 state 74 modifiers : modifiers . modifier (44) constructordeclaration : modifiers . constructordeclarator constructorbody (76) - fielddeclaration : modifiers . type variabledeclarators ';' (84) - methodheader : modifiers . type methoddeclarator (106) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (107) - methodheader : modifiers . type methoddeclarator throws (110) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (111) - methodheader : modifiers . VOID methoddeclarator (113) - methodheader : modifiers . VOID methoddeclarator throws (115) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (117) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (119) - methodheader : modifiers . methoddeclarator (122) - methodheader : modifiers . methoddeclarator throws (124) + fielddeclaration : modifiers . type variabledeclarators ';' (85) + methodheader : modifiers . type methoddeclarator (107) + methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (108) + methodheader : modifiers . type methoddeclarator throws (111) + methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (112) + methodheader : modifiers . VOID methoddeclarator (114) + methodheader : modifiers . VOID methoddeclarator throws (116) + methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (118) + methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (120) + methodheader : modifiers . methoddeclarator (123) + methodheader : modifiers . methoddeclarator throws (125) ABSTRACT shift 1 BOOLEAN shift 48 @@ -1235,21 +1259,21 @@ state 74 PROTECTED shift 5 PUBLIC shift 6 STATIC shift 8 - VOID shift 129 + VOID shift 130 IDENTIFIER shift 84 - '<' shift 130 + '<' shift 131 . error - methoddeclarator goto 131 + methoddeclarator goto 132 simplename goto 67 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 132 + type goto 133 modifier goto 22 - constructordeclarator goto 133 + constructordeclarator goto 134 state 75 @@ -1261,10 +1285,10 @@ state 75 state 76 constructordeclaration : constructordeclarator . constructorbody (75) - '{' shift 134 + '{' shift 135 . error - constructorbody goto 135 + constructorbody goto 136 state 77 @@ -1287,7 +1311,7 @@ state 79 '{' shift 27 . error - classbody goto 136 + classbody goto 137 state 80 @@ -1298,7 +1322,7 @@ state 80 simplename goto 43 classorinterfacetype goto 46 - interfacetype goto 137 + interfacetype goto 138 state 81 @@ -1309,10 +1333,10 @@ state 81 state 82 interfaceidentifier : IDENTIFIER '<' boundedClassParameters . '>' (25) - boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (97) + boundedClassParameters : boundedClassParameters . ',' boundedClassParameter (98) ',' shift 101 - '>' shift 138 + '>' shift 139 . error @@ -1325,8 +1349,8 @@ state 83 84: shift/reduce conflict (shift 109, reduce 15) on '(' state 84 simplename : IDENTIFIER . (15) - methoddeclarator : IDENTIFIER . '(' ')' (140) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (141) + methoddeclarator : IDENTIFIER . '(' ')' (141) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (142) '(' shift 109 IDENTIFIER reduce 15 @@ -1356,10 +1380,10 @@ state 86 VOID shift 52 IDENTIFIER shift 84 '<' shift 54 - '}' shift 139 + '}' shift 140 . error - interfacememberdeclaration goto 140 + interfacememberdeclaration goto 141 abstractmethoddeclaration goto 88 constantdeclaration goto 89 methodheader goto 90 @@ -1396,33 +1420,33 @@ state 89 state 90 abstractmethoddeclaration : methodheader . ';' (78) - ';' shift 141 + ';' shift 142 . error state 91 - methodheader : type . methoddeclarator (105) - methodheader : type . methoddeclarator throws (108) + methodheader : type . methoddeclarator (106) + methodheader : type . methoddeclarator throws (109) IDENTIFIER shift 107 . error - methoddeclarator goto 126 + methoddeclarator goto 125 state 92 modifiers : modifiers . modifier (44) constantdeclaration : modifiers . type IDENTIFIER '=' expression ';' (77) - methodheader : modifiers . type methoddeclarator (106) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (107) - methodheader : modifiers . type methoddeclarator throws (110) - methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (111) - methodheader : modifiers . VOID methoddeclarator (113) - methodheader : modifiers . VOID methoddeclarator throws (115) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (117) - methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (119) - methodheader : modifiers . methoddeclarator (122) - methodheader : modifiers . methoddeclarator throws (124) + methodheader : modifiers . type methoddeclarator (107) + methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator (108) + methodheader : modifiers . type methoddeclarator throws (111) + methodheader : modifiers . '<' boundedMethodParameters '>' type methoddeclarator throws (112) + methodheader : modifiers . VOID methoddeclarator (114) + methodheader : modifiers . VOID methoddeclarator throws (116) + methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator (118) + methodheader : modifiers . '<' boundedMethodParameters '>' VOID methoddeclarator throws (120) + methodheader : modifiers . methoddeclarator (123) + methodheader : modifiers . methoddeclarator throws (125) ABSTRACT shift 1 BOOLEAN shift 48 @@ -1433,19 +1457,19 @@ state 92 PROTECTED shift 5 PUBLIC shift 6 STATIC shift 8 - VOID shift 129 + VOID shift 130 IDENTIFIER shift 84 - '<' shift 130 + '<' shift 131 . error - methoddeclarator goto 131 + methoddeclarator goto 132 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 142 + type goto 143 modifier goto 22 @@ -1457,7 +1481,7 @@ state 93 simplename goto 43 classorinterfacetype goto 46 - interfacetype goto 143 + interfacetype goto 144 state 94 @@ -1480,8 +1504,8 @@ state 96 '{' shift 27 . error - classbody goto 144 - interfaces goto 145 + classbody goto 145 + interfaces goto 146 state 97 @@ -1492,7 +1516,7 @@ state 97 '{' shift 27 . error - classbody goto 146 + classbody goto 147 state 98 @@ -1509,29 +1533,29 @@ state 99 '{' shift 33 . error - interfacebody goto 147 + interfacebody goto 148 state 100 - boundedMethodParameter : IDENTIFIER EXTENDS . boundedclassidentifierlist (99) + boundedMethodParameter : IDENTIFIER EXTENDS . boundedclassidentifierlist (100) IDENTIFIER shift 42 . error simplename goto 43 classorinterfacetype goto 68 - referencetype goto 148 - boundedclassidentifierlist goto 149 + referencetype goto 149 + boundedclassidentifierlist goto 150 state 101 - boundedClassParameters : boundedClassParameters ',' . boundedClassParameter (97) + boundedClassParameters : boundedClassParameters ',' . boundedClassParameter (98) IDENTIFIER shift 38 . error boundedMethodParameter goto 39 - boundedClassParameter goto 150 + boundedClassParameter goto 151 state 102 @@ -1543,12 +1567,12 @@ state 102 state 103 parameter : '<' . paralist '>' (69) - IDENTIFIER shift 151 - '?' shift 152 + IDENTIFIER shift 152 + '?' shift 153 . error - paralist goto 153 - wildcardparameter goto 154 + paralist goto 154 + wildcardparameter goto 155 state 104 @@ -1558,74 +1582,74 @@ state 104 state 105 - block : '{' . '}' (86) - block : '{' . blockstatements '}' (87) + block : '{' . '}' (87) + block : '{' . blockstatements '}' (88) BOOLEAN shift 48 CHAR shift 49 - FOR shift 155 - IF shift 156 + FOR shift 156 + IF shift 157 INT shift 50 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 '{' shift 105 - '}' shift 172 - '(' shift 173 + '}' shift 173 + '(' shift 174 . error - variabledeclarators goto 174 - variabledeclarator goto 175 + variabledeclarators goto 175 + variabledeclarator goto 176 variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 + simplename goto 177 + qualifiedname goto 178 + name goto 179 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 179 - block goto 180 - blockstatements goto 181 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 197 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 + type goto 180 + block goto 181 + blockstatements goto 182 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 198 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 state 106 @@ -1635,94 +1659,94 @@ state 106 state 107 - methoddeclarator : IDENTIFIER . '(' ')' (140) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (141) + methoddeclarator : IDENTIFIER . '(' ')' (141) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (142) '(' shift 109 . error state 108 - methodheader : VOID methoddeclarator . (112) - methodheader : VOID methoddeclarator . throws (114) + methodheader : VOID methoddeclarator . (113) + methodheader : VOID methoddeclarator . throws (115) THROWS shift 114 - ';' reduce 112 - '{' reduce 112 + ';' reduce 113 + '{' reduce 113 - throws goto 208 + throws goto 209 state 109 - methoddeclarator : IDENTIFIER '(' . ')' (140) - methoddeclarator : IDENTIFIER '(' . formalparameterlist ')' (141) + methoddeclarator : IDENTIFIER '(' . ')' (141) + methoddeclarator : IDENTIFIER '(' . formalparameterlist ')' (142) BOOLEAN shift 48 CHAR shift 49 INT shift 50 - IDENTIFIER shift 168 - ')' shift 209 + IDENTIFIER shift 169 + ')' shift 210 . error - variabledeclaratorid goto 210 + variabledeclaratorid goto 211 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 211 - formalparameter goto 212 - formalparameterlist goto 213 + type goto 212 + formalparameter goto 213 + formalparameterlist goto 214 state 110 - boundedMethodParameters : boundedMethodParameter . (102) + boundedMethodParameters : boundedMethodParameter . (103) - . reduce 102 + . reduce 103 state 111 - boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (103) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator (104) - methodheader : '<' boundedMethodParameters . '>' type methoddeclarator throws (109) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator (116) - methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator throws (118) - methodheader : '<' boundedMethodParameters . '>' methoddeclarator (121) + boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (104) + methodheader : '<' boundedMethodParameters . '>' type methoddeclarator (105) + methodheader : '<' boundedMethodParameters . '>' type methoddeclarator throws (110) + methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator (117) + methodheader : '<' boundedMethodParameters . '>' VOID methoddeclarator throws (119) + methodheader : '<' boundedMethodParameters . '>' methoddeclarator (122) - ',' shift 214 - '>' shift 215 + ',' shift 215 + '>' shift 216 . error state 112 - methodbody : block . (131) + methodbody : block . (132) - . reduce 131 + . reduce 132 state 113 - methoddeclaration : methodheader methodbody . (85) + methoddeclaration : methodheader methodbody . (86) - . reduce 85 + . reduce 86 state 114 - throws : THROWS . classtypelist (94) + throws : THROWS . classtypelist (95) IDENTIFIER shift 42 . error simplename goto 43 - classtype goto 216 + classtype goto 217 classorinterfacetype goto 45 - classtypelist goto 217 + classtypelist goto 218 state 115 - methodheader : methoddeclarator throws . (123) + methodheader : methoddeclarator throws . (124) - . reduce 123 + . reduce 124 state 116 @@ -1738,355 +1762,364 @@ state 117 state 118 - variabledeclarators : variabledeclarators ',' . variabledeclarator (130) + variabledeclarators : variabledeclarators ',' . variabledeclarator (131) - IDENTIFIER shift 218 + IDENTIFIER shift 219 . error - variabledeclarator goto 219 + variabledeclarator goto 220 variabledeclaratorid goto 66 state 119 - fielddeclaration : variabledeclarators ';' . (82) + fielddeclaration : variabledeclarators ';' . (83) - . reduce 82 + . reduce 83 state 120 - fielddeclaration : fielddeclarator ';' . (80) + fielddeclaration : fielddeclarator ';' . (81) - . reduce 80 + . reduce 81 state 121 - fielddeclarator : variabledeclarator '=' . expression (79) + fielddeclarator : variabledeclarator '=' . expression (80) - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 . error - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 241 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 242 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 state 122 - constructordeclarator : simplename '(' . ')' (88) - constructordeclarator : simplename '(' . formalparameterlist ')' (89) + constructordeclarator : simplename '(' . ')' (89) + constructordeclarator : simplename '(' . formalparameterlist ')' (90) BOOLEAN shift 48 CHAR shift 49 INT shift 50 - IDENTIFIER shift 168 - ')' shift 250 + IDENTIFIER shift 169 + ')' shift 251 . error - variabledeclaratorid goto 210 + variabledeclaratorid goto 211 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 211 - formalparameter goto 212 - formalparameterlist goto 251 + type goto 212 + formalparameter goto 213 + formalparameterlist goto 252 state 123 - type : primitivetype '[' . ']' (126) - - ']' shift 252 - . error - - -state 124 - type : referencetype '[' . ']' (128) + type : primitivetype '[' . ']' (127) ']' shift 253 . error -state 125 - methoddeclarator : IDENTIFIER . '(' ')' (140) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (141) - variabledeclaratorid : IDENTIFIER . (153) +state 124 + type : referencetype '[' . ']' (129) - '(' shift 109 - ',' reduce 153 - ';' reduce 153 - '=' reduce 153 - - -state 126 - methodheader : type methoddeclarator . (105) - methodheader : type methoddeclarator . throws (108) - - THROWS shift 114 - ';' reduce 105 - '{' reduce 105 - - throws goto 254 - - -state 127 - fielddeclaration : type variabledeclarators . ';' (83) - variabledeclarators : variabledeclarators . ',' variabledeclarator (130) - - ',' shift 118 - ';' shift 255 + ']' shift 254 . error -state 128 - fielddeclaration : type fielddeclarator . (81) +state 125 + methodheader : type methoddeclarator . (106) + methodheader : type methoddeclarator . throws (109) - . reduce 81 + THROWS shift 114 + ';' reduce 106 + '{' reduce 106 + + throws goto 255 + + +state 126 + fielddeclaration : type variabledeclarators . ';' (84) + variabledeclarators : variabledeclarators . ',' variabledeclarator (131) + + ',' shift 118 + ';' shift 256 + . error + + +state 127 + fielddeclaration : type fielddeclarator . (82) + + . reduce 82 + + +state 128 + fielddeclarator : type variabledeclarator . '=' expression (79) + fielddeclarator : variabledeclarator . '=' expression (80) + variabledeclarators : variabledeclarator . (130) + + '=' shift 257 + ',' reduce 130 + ';' reduce 130 state 129 - methodheader : modifiers VOID . methoddeclarator (113) - methodheader : modifiers VOID . methoddeclarator throws (115) + fielddeclarator : type . variabledeclarator '=' expression (79) + + IDENTIFIER shift 219 + . error + + variabledeclarator goto 258 + variabledeclaratorid goto 66 + + +state 130 + methodheader : modifiers VOID . methoddeclarator (114) + methodheader : modifiers VOID . methoddeclarator throws (116) IDENTIFIER shift 107 . error - methoddeclarator goto 256 + methoddeclarator goto 259 -state 130 - methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator (107) - methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator throws (111) - methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator (117) - methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator throws (119) +state 131 + methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator (108) + methodheader : modifiers '<' . boundedMethodParameters '>' type methoddeclarator throws (112) + methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator (118) + methodheader : modifiers '<' . boundedMethodParameters '>' VOID methoddeclarator throws (120) IDENTIFIER shift 38 . error boundedMethodParameter goto 110 - boundedMethodParameters goto 257 - - -state 131 - methodheader : modifiers methoddeclarator . (122) - methodheader : modifiers methoddeclarator . throws (124) - - THROWS shift 114 - ';' reduce 122 - '{' reduce 122 - - throws goto 258 + boundedMethodParameters goto 260 state 132 - fielddeclaration : modifiers type . variabledeclarators ';' (84) - methodheader : modifiers type . methoddeclarator (106) - methodheader : modifiers type . methoddeclarator throws (110) + methodheader : modifiers methoddeclarator . (123) + methodheader : modifiers methoddeclarator . throws (125) - IDENTIFIER shift 125 - . error + THROWS shift 114 + ';' reduce 123 + '{' reduce 123 - methoddeclarator goto 259 - variabledeclarators goto 260 - variabledeclarator goto 175 - variabledeclaratorid goto 66 + throws goto 261 state 133 - constructordeclaration : modifiers constructordeclarator . constructorbody (76) + fielddeclaration : modifiers type . variabledeclarators ';' (85) + methodheader : modifiers type . methoddeclarator (107) + methodheader : modifiers type . methoddeclarator throws (111) - '{' shift 134 + IDENTIFIER shift 262 . error - constructorbody goto 261 + methoddeclarator goto 263 + variabledeclarators goto 264 + variabledeclarator goto 176 + variabledeclaratorid goto 66 state 134 - constructorbody : '{' . '}' (90) - constructorbody : '{' . explicitconstructorinvocation '}' (91) - constructorbody : '{' . blockstatements '}' (92) - constructorbody : '{' . explicitconstructorinvocation blockstatements '}' (93) + constructordeclaration : modifiers constructordeclarator . constructorbody (76) + + '{' shift 135 + . error + + constructorbody goto 265 + + +state 135 + constructorbody : '{' . '}' (91) + constructorbody : '{' . explicitconstructorinvocation '}' (92) + constructorbody : '{' . blockstatements '}' (93) + constructorbody : '{' . explicitconstructorinvocation blockstatements '}' (94) BOOLEAN shift 48 CHAR shift 49 - FOR shift 155 - IF shift 156 + FOR shift 156 + IF shift 157 INT shift 50 - RETURN shift 157 - THIS shift 262 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 + RETURN shift 158 + THIS shift 266 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 '{' shift 105 - '}' shift 263 - '(' shift 173 + '}' shift 267 + '(' shift 174 . error - variabledeclarators goto 174 - variabledeclarator goto 175 + variabledeclarators goto 175 + variabledeclarator goto 176 variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 + simplename goto 177 + qualifiedname goto 178 + name goto 179 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 179 - block goto 180 - blockstatements goto 264 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 197 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - explicitconstructorinvocation goto 265 + type goto 180 + block goto 181 + blockstatements goto 268 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 198 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + explicitconstructorinvocation goto 269 -state 135 +state 136 constructordeclaration : constructordeclarator constructorbody . (75) . reduce 75 -state 136 +state 137 classdeclaration : CLASS classidentifier super interfaces classbody . (22) . reduce 22 -state 137 +state 138 interfaces : interfaces ',' interfacetype . (47) . reduce 47 -state 138 +state 139 interfaceidentifier : IDENTIFIER '<' boundedClassParameters '>' . (25) . reduce 25 -state 139 +state 140 interfacebody : '{' interfacememberdeclarations '}' . (49) . reduce 49 -state 140 +state 141 interfacememberdeclarations : interfacememberdeclarations interfacememberdeclaration . (62) . reduce 62 -state 141 +state 142 abstractmethoddeclaration : methodheader ';' . (78) . reduce 78 -state 142 +state 143 constantdeclaration : modifiers type . IDENTIFIER '=' expression ';' (77) - methodheader : modifiers type . methoddeclarator (106) - methodheader : modifiers type . methoddeclarator throws (110) + methodheader : modifiers type . methoddeclarator (107) + methodheader : modifiers type . methoddeclarator throws (111) - IDENTIFIER shift 266 + IDENTIFIER shift 270 . error - methoddeclarator goto 259 + methoddeclarator goto 263 -state 143 +state 144 extendsinterfaces : extendsinterfaces ',' interfacetype . (51) . reduce 51 -state 144 +state 145 classdeclaration : modifiers CLASS classidentifier super classbody . (19) . reduce 19 -state 145 +state 146 classdeclaration : modifiers CLASS classidentifier super interfaces . classbody (23) interfaces : interfaces . ',' interfacetype (47) @@ -2094,224 +2127,224 @@ state 145 '{' shift 27 . error - classbody goto 267 + classbody goto 271 -state 146 +state 147 classdeclaration : modifiers CLASS classidentifier interfaces classbody . (21) . reduce 21 -state 147 +state 148 interfacedeclaration : modifiers INTERFACE interfaceidentifier extendsinterfaces interfacebody . (31) . reduce 31 -state 148 - boundedclassidentifierlist : referencetype . (100) - - . reduce 100 - - state 149 - boundedMethodParameter : IDENTIFIER EXTENDS boundedclassidentifierlist . (99) - boundedclassidentifierlist : boundedclassidentifierlist . '&' referencetype (101) + boundedclassidentifierlist : referencetype . (101) - '&' shift 268 - ',' reduce 99 - '>' reduce 99 + . reduce 101 state 150 - boundedClassParameters : boundedClassParameters ',' boundedClassParameter . (97) + boundedMethodParameter : IDENTIFIER EXTENDS boundedclassidentifierlist . (100) + boundedclassidentifierlist : boundedclassidentifierlist . '&' referencetype (102) - . reduce 97 + '&' shift 272 + ',' reduce 100 + '>' reduce 100 state 151 + boundedClassParameters : boundedClassParameters ',' boundedClassParameter . (98) + + . reduce 98 + + +state 152 paralist : IDENTIFIER . (32) paralist : IDENTIFIER . '<' paralist '>' (33) - '<' shift 269 + '<' shift 273 ',' reduce 32 '>' reduce 32 -state 152 +state 153 wildcardparameter : '?' . (38) wildcardparameter : '?' . EXTENDS referencetype (39) wildcardparameter : '?' . SUPER referencetype (40) - EXTENDS shift 270 - SUPER shift 271 + EXTENDS shift 274 + SUPER shift 275 ',' reduce 38 '>' reduce 38 -state 153 +state 154 paralist : paralist . ',' IDENTIFIER (35) paralist : paralist . ',' IDENTIFIER '<' paralist '>' (36) paralist : paralist . ',' wildcardparameter (37) parameter : '<' paralist . '>' (69) - ',' shift 272 - '>' shift 273 + ',' shift 276 + '>' shift 277 . error -state 154 +state 155 paralist : wildcardparameter . (34) . reduce 34 -state 155 - forstatement : FOR . '(' expression ';' expression ';' expression ')' statement (174) - forstatement : FOR . '(' expression ';' expression ';' ')' statement (175) - forstatement : FOR . '(' expression ';' ';' expression ')' statement (176) - forstatement : FOR . '(' ';' expression ';' expression ')' statement (177) - forstatement : FOR . '(' expression ';' ';' ')' statement (178) - forstatement : FOR . '(' ';' expression ';' ')' statement (179) - forstatement : FOR . '(' ';' ';' expression ')' statement (180) - forstatement : FOR . '(' ';' ';' ')' statement (181) - - '(' shift 274 - . error - - state 156 - ifthenstatement : IF . '(' expression ')' statement (171) - ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (172) - - '(' shift 275 - . error - - -state 157 - returnstatement : RETURN . ';' (186) - returnstatement : RETURN . expression ';' (187) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 276 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 277 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 158 - primarynonewarray : THIS . (242) - - . reduce 242 - - -state 159 - whilestatement : WHILE . '(' expression ')' statement (173) + forstatement : FOR . '(' expression ';' expression ';' expression ')' statement (175) + forstatement : FOR . '(' expression ';' expression ';' ')' statement (176) + forstatement : FOR . '(' expression ';' ';' expression ')' statement (177) + forstatement : FOR . '(' ';' expression ';' expression ')' statement (178) + forstatement : FOR . '(' expression ';' ';' ')' statement (179) + forstatement : FOR . '(' ';' expression ';' ')' statement (180) + forstatement : FOR . '(' ';' ';' expression ')' statement (181) + forstatement : FOR . '(' ';' ';' ')' statement (182) '(' shift 278 . error -state 160 - literal : INTLITERAL . (250) +state 157 + ifthenstatement : IF . '(' expression ')' statement (172) + ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (173) - . reduce 250 + '(' shift 279 + . error + + +state 158 + returnstatement : RETURN . ';' (187) + returnstatement : RETURN . expression ';' (188) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 280 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 281 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 159 + primarynonewarray : THIS . (243) + + . reduce 243 + + +state 160 + whilestatement : WHILE . '(' expression ')' statement (174) + + '(' shift 282 + . error state 161 - literal : LONGLITERAL . (254) - - . reduce 254 - - -state 162 - literal : DOUBLELITERAL . (256) - - . reduce 256 - - -state 163 - literal : FLOATLITERAL . (255) - - . reduce 255 - - -state 164 - literal : BOOLLITERAL . (251) + literal : INTLITERAL . (251) . reduce 251 -state 165 - literal : JNULL . (257) +state 162 + literal : LONGLITERAL . (255) + + . reduce 255 + + +state 163 + literal : DOUBLELITERAL . (257) . reduce 257 -state 166 - literal : CHARLITERAL . (252) +state 164 + literal : FLOATLITERAL . (256) + + . reduce 256 + + +state 165 + literal : BOOLLITERAL . (252) . reduce 252 +state 166 + literal : JNULL . (258) + + . reduce 258 + + state 167 - literal : STRINGLITERAL . (253) + literal : CHARLITERAL . (253) . reduce 253 state 168 + literal : STRINGLITERAL . (254) + + . reduce 254 + + +state 169 simplename : IDENTIFIER . (15) - variabledeclaratorid : IDENTIFIER . (153) + variabledeclaratorid : IDENTIFIER . (154) IDENTIFIER reduce 15 INCREMENT reduce 15 @@ -2321,146 +2354,146 @@ state 168 TIMESEQUAL reduce 15 DIVIDEEQUAL reduce 15 MODULOEQUAL reduce 15 - ',' reduce 153 - ';' reduce 153 + ',' reduce 154 + ';' reduce 154 '.' reduce 15 '<' reduce 15 '=' reduce 15 '(' reduce 15 - ')' reduce 153 + ')' reduce 154 '[' reduce 15 -state 169 - preincrementexpression : INCREMENT . unaryexpression (217) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 280 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - state 170 - predecrementexpression : DECREMENT . unaryexpression (218) + preincrementexpression : INCREMENT . unaryexpression (218) - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 . error - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 281 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 284 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 state 171 - emptystatement : ';' . (184) + predecrementexpression : DECREMENT . unaryexpression (219) - . reduce 184 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 285 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 state 172 - block : '{' '}' . (86) + emptystatement : ';' . (185) - . reduce 86 + . reduce 185 state 173 - lambdaexpressionparameter : '(' . ')' (207) - lambdaexpressionparameter : '(' . formalparameterlist ')' (208) + block : '{' '}' . (87) + + . reduce 87 + + +state 174 + lambdaexpressionparameter : '(' . ')' (208) + lambdaexpressionparameter : '(' . formalparameterlist ')' (209) BOOLEAN shift 48 CHAR shift 49 INT shift 50 - IDENTIFIER shift 168 - ')' shift 282 + IDENTIFIER shift 169 + ')' shift 286 . error - variabledeclaratorid goto 210 + variabledeclaratorid goto 211 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 211 - formalparameter goto 212 - formalparameterlist goto 283 - - -state 174 - variabledeclarators : variabledeclarators . ',' variabledeclarator (130) - localvariabledeclaration : variabledeclarators . (166) - - ',' shift 118 - ';' reduce 166 + type goto 212 + formalparameter goto 213 + formalparameterlist goto 287 state 175 - variabledeclarators : variabledeclarator . (129) + variabledeclarators : variabledeclarators . ',' variabledeclarator (131) + localvariabledeclaration : variabledeclarators . (167) - . reduce 129 + ',' shift 118 + ';' reduce 167 state 176 + variabledeclarators : variabledeclarator . (130) + + . reduce 130 + + +state 177 name : simplename . (9) classorinterfacetype : simplename . parameter (67) parameter : . (68) @@ -2482,22 +2515,192 @@ state 176 parameter goto 104 -state 177 +state 178 name : qualifiedname . (8) . reduce 8 -178: shift/reduce conflict (shift 284, reduce 235) on '.' -state 178 +179: shift/reduce conflict (shift 288, reduce 236) on '.' +state 179 qualifiedname : name . '.' IDENTIFIER (12) - lefthandside : name . (210) - methodinvocation : name . '(' ')' (221) - methodinvocation : name . '(' argumentlist ')' (222) - postfixexpression : name . (235) + lefthandside : name . (211) + methodinvocation : name . '(' ')' (222) + methodinvocation : name . '(' argumentlist ')' (223) + postfixexpression : name . (236) - '.' shift 284 - '(' shift 285 + '.' shift 288 + '(' shift 289 + ABSTRACT reduce 236 + BOOLEAN reduce 236 + CHAR reduce 236 + FINAL reduce 236 + INSTANCEOF reduce 236 + INT reduce 236 + PRIVATE reduce 236 + PROTECTED reduce 236 + PUBLIC reduce 236 + STATIC reduce 236 + VOID reduce 236 + IDENTIFIER 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 + PLUSEQUAL reduce 211 + MINUSEQUAL reduce 211 + TIMESEQUAL reduce 211 + DIVIDEEQUAL reduce 211 + MODULOEQUAL reduce 211 + ',' reduce 236 + ';' reduce 236 + '*' reduce 236 + '<' reduce 236 + '>' reduce 236 + '}' reduce 236 + '=' reduce 211 + ')' reduce 236 + '&' reduce 236 + '+' reduce 236 + '-' reduce 236 + '|' reduce 236 + '^' reduce 236 + '/' reduce 236 + '%' reduce 236 + + +state 180 + localvariabledeclaration : type . variabledeclarators (166) + + IDENTIFIER shift 219 + . error + + variabledeclarators goto 290 + variabledeclarator goto 176 + variabledeclaratorid goto 66 + + +state 181 + statementwithouttrailingsubstatement : block . (168) + + . reduce 168 + + +state 182 + block : '{' blockstatements . '}' (88) + blockstatements : blockstatements . blockstatement (134) + + BOOLEAN shift 48 + CHAR shift 49 + FOR shift 156 + IF shift 157 + INT shift 50 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '}' shift 291 + '(' shift 174 + . error + + variabledeclarators goto 175 + variabledeclarator goto 176 + variabledeclaratorid goto 66 + simplename goto 177 + qualifiedname goto 178 + name goto 179 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 180 + block goto 181 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 292 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 183 + blockstatement : localvariabledeclarationstatement . (147) + + . reduce 147 + + +state 184 + localvariabledeclarationstatement : localvariabledeclaration . ';' (156) + + ';' shift 293 + . error + + +state 185 + lambdaexpression : lambdaexpressionparameter . lambdaassignmentoperator lambdabody (210) + + LAMBDAASSIGNMENT shift 294 + . error + + lambdaassignmentoperator goto 295 + + +state 186 + primarynonewarray : literal . (242) + + . reduce 242 + + +state 187 + primary : primarynonewarray . (239) + + . reduce 239 + + +188: shift/reduce conflict (shift 296, reduce 235) on '.' +state 188 + methodinvocation : primary . '.' IDENTIFIER '(' ')' (224) + methodinvocation : primary . '.' IDENTIFIER '(' argumentlist ')' (225) + postfixexpression : primary . (235) + + '.' shift 296 ABSTRACT reduce 235 BOOLEAN reduce 235 CHAR reduce 235 @@ -2518,18 +2721,12 @@ state 178 LOGICALAND reduce 235 INCREMENT reduce 235 DECREMENT reduce 235 - PLUSEQUAL reduce 210 - MINUSEQUAL reduce 210 - TIMESEQUAL reduce 210 - DIVIDEEQUAL reduce 210 - MODULOEQUAL reduce 210 ',' reduce 235 ';' reduce 235 '*' reduce 235 '<' reduce 235 '>' reduce 235 '}' reduce 235 - '=' reduce 210 ')' reduce 235 '&' reduce 235 '+' reduce 235 @@ -2540,216 +2737,43 @@ state 178 '%' reduce 235 -state 179 - localvariabledeclaration : type . variabledeclarators (165) - - IDENTIFIER shift 218 - . error - - variabledeclarators goto 286 - variabledeclarator goto 175 - variabledeclaratorid goto 66 - - -state 180 - statementwithouttrailingsubstatement : block . (167) - - . reduce 167 - - -state 181 - block : '{' blockstatements . '}' (87) - blockstatements : blockstatements . blockstatement (133) - - BOOLEAN shift 48 - CHAR shift 49 - FOR shift 155 - IF shift 156 - INT shift 50 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '}' shift 287 - '(' shift 173 - . error - - variabledeclarators goto 174 - variabledeclarator goto 175 - variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 179 - block goto 180 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 288 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 182 - blockstatement : localvariabledeclarationstatement . (146) - - . reduce 146 - - -state 183 - localvariabledeclarationstatement : localvariabledeclaration . ';' (155) - - ';' shift 289 - . error - - -state 184 - lambdaexpression : lambdaexpressionparameter . lambdaassignmentoperator lambdabody (209) - - LAMBDAASSIGNMENT shift 290 - . error - - lambdaassignmentoperator goto 291 - - -state 185 - primarynonewarray : literal . (241) - - . reduce 241 - - -state 186 - primary : primarynonewarray . (238) - - . reduce 238 - - -187: shift/reduce conflict (shift 292, reduce 234) on '.' -state 187 - methodinvocation : primary . '.' IDENTIFIER '(' ')' (223) - methodinvocation : primary . '.' IDENTIFIER '(' argumentlist ')' (224) - postfixexpression : primary . (234) - - '.' shift 292 - ABSTRACT reduce 234 - BOOLEAN reduce 234 - CHAR reduce 234 - FINAL reduce 234 - INSTANCEOF reduce 234 - INT reduce 234 - PRIVATE reduce 234 - PROTECTED reduce 234 - PUBLIC reduce 234 - STATIC reduce 234 - VOID reduce 234 - IDENTIFIER 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 - '%' reduce 234 - - -state 188 - postincrementexpression : postfixexpression . INCREMENT (219) - postdecrementexpression : postfixexpression . DECREMENT (220) - - INCREMENT shift 293 - DECREMENT shift 294 - . error - - state 189 - primarynonewarray : lambdaexpression . (244) + postincrementexpression : postfixexpression . INCREMENT (220) + postdecrementexpression : postfixexpression . DECREMENT (221) - . reduce 244 + INCREMENT shift 297 + DECREMENT shift 298 + . error state 190 - expressionstatement : statementexpression . ';' (185) + primarynonewarray : lambdaexpression . (245) - ';' shift 295 - . error + . reduce 245 state 191 - statementexpression : preincrementexpression . (195) + expressionstatement : statementexpression . ';' (186) - . reduce 195 + ';' shift 299 + . error state 192 - statementexpression : predecrementexpression . (196) + statementexpression : preincrementexpression . (196) . reduce 196 state 193 - statementexpression : postincrementexpression . (197) - postfixexpression : postincrementexpression . (236) + statementexpression : predecrementexpression . (197) - INCREMENT reduce 236 - DECREMENT reduce 236 - ';' reduce 197 + . reduce 197 state 194 - statementexpression : postdecrementexpression . (198) - postfixexpression : postdecrementexpression . (237) + statementexpression : postincrementexpression . (198) + postfixexpression : postincrementexpression . (237) INCREMENT reduce 237 DECREMENT reduce 237 @@ -2757,3190 +2781,437 @@ state 194 state 195 - statementwithouttrailingsubstatement : expressionstatement . (169) + statementexpression : postdecrementexpression . (199) + postfixexpression : postdecrementexpression . (238) - . reduce 169 + INCREMENT reduce 238 + DECREMENT reduce 238 + ';' reduce 199 state 196 - statement : statementwithouttrailingsubstatement . (156) + statementwithouttrailingsubstatement : expressionstatement . (170) - . reduce 156 + . reduce 170 state 197 - blockstatements : blockstatement . (132) + statement : statementwithouttrailingsubstatement . (157) - . reduce 132 + . reduce 157 state 198 - blockstatement : statement . (147) + blockstatements : blockstatement . (133) - . reduce 147 + . reduce 133 state 199 - statement : whilestatement . (159) + blockstatement : statement . (148) - . reduce 159 + . reduce 148 state 200 - statement : forstatement . (160) + statement : whilestatement . (160) . reduce 160 state 201 - statement : ifthenstatement . (157) + statement : forstatement . (161) - . reduce 157 + . reduce 161 state 202 - statement : ifthenelsestatement . (158) + statement : ifthenstatement . (158) . reduce 158 state 203 - statementwithouttrailingsubstatement : emptystatement . (168) + statement : ifthenelsestatement . (159) - . reduce 168 + . reduce 159 state 204 - statementwithouttrailingsubstatement : returnstatement . (170) + statementwithouttrailingsubstatement : emptystatement . (169) - . reduce 170 + . reduce 169 state 205 - statementexpression : assignment . (194) + statementwithouttrailingsubstatement : returnstatement . (171) - . reduce 194 + . reduce 171 state 206 - assignment : lefthandside . assignmentoperator assignmentexpression (192) - assignment : lefthandside . assignmentoperator classinstancecreationexpression (193) + statementexpression : assignment . (195) - PLUSEQUAL shift 296 - MINUSEQUAL shift 297 - TIMESEQUAL shift 298 - DIVIDEEQUAL shift 299 - MODULOEQUAL shift 300 - '=' shift 301 - . error - - assignmentoperator goto 302 + . reduce 195 state 207 - statementexpression : methodinvocation . (199) - primarynonewarray : methodinvocation . (243) + assignment : lefthandside . assignmentoperator assignmentexpression (193) + assignment : lefthandside . assignmentoperator classinstancecreationexpression (194) - INCREMENT reduce 243 - DECREMENT reduce 243 - ';' reduce 199 - '.' reduce 243 + PLUSEQUAL shift 300 + MINUSEQUAL shift 301 + TIMESEQUAL shift 302 + DIVIDEEQUAL shift 303 + MODULOEQUAL shift 304 + '=' shift 305 + . error + + assignmentoperator goto 306 state 208 - methodheader : VOID methoddeclarator throws . (114) + statementexpression : methodinvocation . (200) + primarynonewarray : methodinvocation . (244) - . reduce 114 + INCREMENT reduce 244 + DECREMENT reduce 244 + ';' reduce 200 + '.' reduce 244 state 209 - methoddeclarator : IDENTIFIER '(' ')' . (140) + methodheader : VOID methoddeclarator throws . (115) - . reduce 140 + . reduce 115 state 210 - formalparameter : variabledeclaratorid . (149) + methoddeclarator : IDENTIFIER '(' ')' . (141) - . reduce 149 + . reduce 141 state 211 - formalparameter : type . variabledeclaratorid (148) + formalparameter : variabledeclaratorid . (150) - IDENTIFIER shift 218 - . error - - variabledeclaratorid goto 303 + . reduce 150 state 212 - formalparameterlist : formalparameter . (134) + formalparameter : type . variabledeclaratorid (149) - . reduce 134 + IDENTIFIER shift 219 + . error + + variabledeclaratorid goto 307 state 213 - formalparameterlist : formalparameterlist . ',' formalparameter (135) - methoddeclarator : IDENTIFIER '(' formalparameterlist . ')' (141) + formalparameterlist : formalparameter . (135) - ',' shift 304 - ')' shift 305 - . error + . reduce 135 state 214 - boundedMethodParameters : boundedMethodParameters ',' . boundedMethodParameter (103) + formalparameterlist : formalparameterlist . ',' formalparameter (136) + methoddeclarator : IDENTIFIER '(' formalparameterlist . ')' (142) + + ',' shift 308 + ')' shift 309 + . error + + +state 215 + boundedMethodParameters : boundedMethodParameters ',' . boundedMethodParameter (104) IDENTIFIER shift 38 . error - boundedMethodParameter goto 306 + boundedMethodParameter goto 310 -state 215 - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator (104) - methodheader : '<' boundedMethodParameters '>' . type methoddeclarator throws (109) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator (116) - methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator throws (118) - methodheader : '<' boundedMethodParameters '>' . methoddeclarator (121) +state 216 + methodheader : '<' boundedMethodParameters '>' . type methoddeclarator (105) + methodheader : '<' boundedMethodParameters '>' . type methoddeclarator throws (110) + methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator (117) + methodheader : '<' boundedMethodParameters '>' . VOID methoddeclarator throws (119) + methodheader : '<' boundedMethodParameters '>' . methoddeclarator (122) BOOLEAN shift 48 CHAR shift 49 INT shift 50 - VOID shift 307 + VOID shift 311 IDENTIFIER shift 84 . error - methoddeclarator goto 308 + methoddeclarator goto 312 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 primitivetype goto 71 referencetype goto 72 - type goto 309 - - -state 216 - classtypelist : classtype . (138) - - . reduce 138 + type goto 313 state 217 - throws : THROWS classtypelist . (94) - classtypelist : classtypelist . ',' classtype (139) + classtypelist : classtype . (139) - ',' shift 310 - ';' reduce 94 - '{' reduce 94 + . reduce 139 state 218 - variabledeclaratorid : IDENTIFIER . (153) + throws : THROWS classtypelist . (95) + classtypelist : classtypelist . ',' classtype (140) - . reduce 153 + ',' shift 314 + ';' reduce 95 + '{' reduce 95 state 219 - variabledeclarators : variabledeclarators ',' variabledeclarator . (130) + variabledeclaratorid : IDENTIFIER . (154) - . reduce 130 + . reduce 154 state 220 - classinstancecreationexpression : NEW . classtype '(' ')' (225) - classinstancecreationexpression : NEW . classtype '(' argumentlist ')' (226) + variabledeclarators : variabledeclarators ',' variabledeclarator . (131) + + . reduce 131 + + +state 221 + classinstancecreationexpression : NEW . classtype '(' ')' (226) + classinstancecreationexpression : NEW . classtype '(' argumentlist ')' (227) IDENTIFIER shift 42 . error simplename goto 43 - classtype goto 311 + classtype goto 315 classorinterfacetype goto 45 -state 221 - lambdaexpressionparameter : '(' . ')' (207) - lambdaexpressionparameter : '(' . formalparameterlist ')' (208) - castexpression : '(' . primitivetype ')' unaryexpression (258) +state 222 + lambdaexpressionparameter : '(' . ')' (208) + lambdaexpressionparameter : '(' . formalparameterlist ')' (209) + castexpression : '(' . primitivetype ')' unaryexpression (259) BOOLEAN shift 48 CHAR shift 49 INT shift 50 - IDENTIFIER shift 168 - ')' shift 282 + IDENTIFIER shift 169 + ')' shift 286 . error - variabledeclaratorid goto 210 + variabledeclaratorid goto 211 simplename goto 43 classorinterfacetype goto 68 integraltype goto 69 numerictype goto 70 - primitivetype goto 312 + primitivetype goto 316 referencetype goto 72 - type goto 211 - formalparameter goto 212 - formalparameterlist goto 283 - - -state 222 - unaryexpression : '+' . unaryexpression (231) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 313 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 + type goto 212 + formalparameter goto 213 + formalparameterlist goto 287 state 223 - unaryexpression : '-' . unaryexpression (232) + unaryexpression : '+' . unaryexpression (232) - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 . error - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 314 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 317 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 state 224 - unaryexpressionnotplusminus : '!' . unaryexpression (246) + unaryexpression : '-' . unaryexpression (233) - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 . error - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 315 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 318 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 state 225 + unaryexpressionnotplusminus : '!' . unaryexpression (247) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 319 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 226 name : simplename . (9) . reduce 9 -226: shift/reduce conflict (shift 293, reduce 245) on INCREMENT -226: shift/reduce conflict (shift 294, reduce 245) on DECREMENT -state 226 - postincrementexpression : postfixexpression . INCREMENT (219) - postdecrementexpression : postfixexpression . DECREMENT (220) - unaryexpressionnotplusminus : postfixexpression . (245) - - INCREMENT shift 293 - DECREMENT shift 294 - ABSTRACT reduce 245 - BOOLEAN reduce 245 - CHAR reduce 245 - FINAL reduce 245 - INSTANCEOF reduce 245 - INT reduce 245 - PRIVATE reduce 245 - PROTECTED reduce 245 - PUBLIC reduce 245 - STATIC reduce 245 - VOID reduce 245 - IDENTIFIER reduce 245 - EQUAL reduce 245 - LESSEQUAL reduce 245 - GREATEREQUAL reduce 245 - NOTEQUAL reduce 245 - LOGICALOR reduce 245 - LOGICALAND reduce 245 - ',' reduce 245 - ';' reduce 245 - '.' reduce 245 - '*' reduce 245 - '<' reduce 245 - '>' reduce 245 - '}' reduce 245 - ')' reduce 245 - '&' reduce 245 - '+' reduce 245 - '-' reduce 245 - '|' reduce 245 - '^' reduce 245 - '/' reduce 245 - '%' reduce 245 - - +227: shift/reduce conflict (shift 297, reduce 246) on INCREMENT +227: shift/reduce conflict (shift 298, reduce 246) on DECREMENT state 227 - unaryexpression : unaryexpressionnotplusminus . (233) + postincrementexpression : postfixexpression . INCREMENT (220) + postdecrementexpression : postfixexpression . DECREMENT (221) + unaryexpressionnotplusminus : postfixexpression . (246) - . reduce 233 + INCREMENT shift 297 + DECREMENT shift 298 + ABSTRACT reduce 246 + BOOLEAN reduce 246 + CHAR reduce 246 + FINAL reduce 246 + INSTANCEOF reduce 246 + INT reduce 246 + PRIVATE reduce 246 + PROTECTED reduce 246 + PUBLIC reduce 246 + STATIC reduce 246 + VOID reduce 246 + IDENTIFIER reduce 246 + EQUAL reduce 246 + LESSEQUAL reduce 246 + GREATEREQUAL reduce 246 + NOTEQUAL reduce 246 + LOGICALOR reduce 246 + LOGICALAND 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 + '/' reduce 246 + '%' reduce 246 state 228 - multiplicativeexpression : unaryexpression . (274) + unaryexpression : unaryexpressionnotplusminus . (234) - . reduce 274 + . reduce 234 -229: shift/reduce conflict (shift 316, reduce 271) on '*' -229: shift/reduce conflict (shift 317, reduce 271) on '/' -229: shift/reduce conflict (shift 318, reduce 271) on '%' state 229 - additiveexpression : multiplicativeexpression . (271) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (275) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (276) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (277) - - '*' shift 316 - '/' shift 317 - '%' shift 318 - ABSTRACT reduce 271 - BOOLEAN reduce 271 - CHAR reduce 271 - FINAL reduce 271 - INSTANCEOF reduce 271 - INT reduce 271 - PRIVATE reduce 271 - PROTECTED reduce 271 - PUBLIC reduce 271 - STATIC reduce 271 - VOID reduce 271 - IDENTIFIER reduce 271 - EQUAL reduce 271 - LESSEQUAL reduce 271 - GREATEREQUAL 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 - - -230: shift/reduce conflict (shift 319, reduce 270) on '+' -230: shift/reduce conflict (shift 320, reduce 270) on '-' -state 230 - shiftexpression : additiveexpression . (270) - additiveexpression : additiveexpression . '+' multiplicativeexpression (272) - additiveexpression : additiveexpression . '-' multiplicativeexpression (273) - - '+' shift 319 - '-' shift 320 - ABSTRACT reduce 270 - BOOLEAN reduce 270 - CHAR reduce 270 - FINAL reduce 270 - INSTANCEOF reduce 270 - INT reduce 270 - PRIVATE reduce 270 - PROTECTED reduce 270 - PUBLIC reduce 270 - STATIC reduce 270 - VOID reduce 270 - IDENTIFIER reduce 270 - EQUAL reduce 270 - LESSEQUAL reduce 270 - GREATEREQUAL 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 - '%' reduce 270 - - -state 231 - relationalexpression : shiftexpression . (264) - - . reduce 264 - - -232: shift/reduce conflict (shift 321, reduce 261) on INSTANCEOF -232: shift/reduce conflict (shift 322, reduce 261) on LESSEQUAL -232: shift/reduce conflict (shift 323, reduce 261) on GREATEREQUAL -232: shift/reduce conflict (shift 324, reduce 261) on '<' -232: shift/reduce conflict (shift 325, reduce 261) on '>' -state 232 - equalityexpression : relationalexpression . (261) - relationalexpression : relationalexpression . '<' shiftexpression (265) - relationalexpression : relationalexpression . '>' shiftexpression (266) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (267) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (268) - relationalexpression : relationalexpression . INSTANCEOF referencetype (269) - - INSTANCEOF shift 321 - LESSEQUAL shift 322 - GREATEREQUAL shift 323 - '<' shift 324 - '>' shift 325 - ABSTRACT reduce 261 - BOOLEAN reduce 261 - CHAR reduce 261 - FINAL reduce 261 - INT reduce 261 - PRIVATE reduce 261 - PROTECTED reduce 261 - PUBLIC reduce 261 - STATIC reduce 261 - VOID reduce 261 - IDENTIFIER reduce 261 - EQUAL reduce 261 - NOTEQUAL reduce 261 - LOGICALOR reduce 261 - LOGICALAND reduce 261 - INCREMENT reduce 261 - DECREMENT reduce 261 - ',' reduce 261 - ';' reduce 261 - '.' reduce 261 - '*' reduce 261 - '}' reduce 261 - ')' reduce 261 - '&' reduce 261 - '+' reduce 261 - '-' reduce 261 - '|' reduce 261 - '^' reduce 261 - '/' reduce 261 - '%' reduce 261 - - -233: shift/reduce conflict (shift 326, reduce 259) on EQUAL -233: shift/reduce conflict (shift 327, reduce 259) on NOTEQUAL -state 233 - andexpression : equalityexpression . (259) - equalityexpression : equalityexpression . EQUAL relationalexpression (262) - equalityexpression : equalityexpression . NOTEQUAL relationalexpression (263) - - EQUAL shift 326 - NOTEQUAL shift 327 - ABSTRACT reduce 259 - BOOLEAN reduce 259 - CHAR reduce 259 - FINAL reduce 259 - INSTANCEOF reduce 259 - INT reduce 259 - PRIVATE reduce 259 - PROTECTED reduce 259 - PUBLIC reduce 259 - STATIC reduce 259 - VOID reduce 259 - IDENTIFIER reduce 259 - LESSEQUAL reduce 259 - GREATEREQUAL reduce 259 - LOGICALOR reduce 259 - LOGICALAND reduce 259 - INCREMENT reduce 259 - DECREMENT reduce 259 - ',' reduce 259 - ';' reduce 259 - '.' reduce 259 - '*' reduce 259 - '<' reduce 259 - '>' reduce 259 - '}' reduce 259 - ')' reduce 259 - '&' reduce 259 - '+' reduce 259 - '-' reduce 259 - '|' reduce 259 - '^' reduce 259 - '/' reduce 259 - '%' reduce 259 - - -234: shift/reduce conflict (shift 328, reduce 248) on '&' -state 234 - exclusiveorexpression : andexpression . (248) - andexpression : andexpression . '&' equalityexpression (260) - - '&' shift 328 - ABSTRACT reduce 248 - BOOLEAN reduce 248 - CHAR reduce 248 - FINAL reduce 248 - INSTANCEOF reduce 248 - INT reduce 248 - PRIVATE reduce 248 - PROTECTED reduce 248 - PUBLIC reduce 248 - STATIC reduce 248 - VOID reduce 248 - IDENTIFIER 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 - '%' reduce 248 - - -235: shift/reduce conflict (shift 329, reduce 239) on '^' -state 235 - inclusiveorexpression : exclusiveorexpression . (239) - exclusiveorexpression : exclusiveorexpression . '^' andexpression (249) - - '^' shift 329 - ABSTRACT reduce 239 - BOOLEAN reduce 239 - CHAR reduce 239 - FINAL reduce 239 - INSTANCEOF reduce 239 - INT reduce 239 - PRIVATE reduce 239 - PROTECTED reduce 239 - PUBLIC reduce 239 - STATIC reduce 239 - VOID reduce 239 - IDENTIFIER reduce 239 - EQUAL reduce 239 - LESSEQUAL reduce 239 - GREATEREQUAL reduce 239 - NOTEQUAL reduce 239 - LOGICALOR reduce 239 - LOGICALAND reduce 239 - INCREMENT reduce 239 - DECREMENT reduce 239 - ',' reduce 239 - ';' reduce 239 - '.' reduce 239 - '*' reduce 239 - '<' reduce 239 - '>' reduce 239 - '}' reduce 239 - ')' reduce 239 - '&' reduce 239 - '+' reduce 239 - '-' reduce 239 - '|' reduce 239 - '/' reduce 239 - '%' reduce 239 - - -236: shift/reduce conflict (shift 330, reduce 227) on '|' -state 236 - conditionalandexpression : inclusiveorexpression . (227) - inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (240) - - '|' shift 330 - ABSTRACT reduce 227 - BOOLEAN reduce 227 - CHAR reduce 227 - FINAL reduce 227 - INSTANCEOF reduce 227 - INT reduce 227 - PRIVATE reduce 227 - PROTECTED reduce 227 - PUBLIC reduce 227 - STATIC reduce 227 - VOID reduce 227 - IDENTIFIER reduce 227 - EQUAL reduce 227 - LESSEQUAL reduce 227 - GREATEREQUAL reduce 227 - NOTEQUAL reduce 227 - LOGICALOR reduce 227 - LOGICALAND reduce 227 - INCREMENT reduce 227 - DECREMENT reduce 227 - ',' reduce 227 - ';' reduce 227 - '.' reduce 227 - '*' reduce 227 - '<' reduce 227 - '>' reduce 227 - '}' reduce 227 - ')' reduce 227 - '&' reduce 227 - '+' reduce 227 - '-' reduce 227 - '^' reduce 227 - '/' reduce 227 - '%' reduce 227 - - -237: shift/reduce conflict (shift 331, reduce 202) on LOGICALAND -state 237 - conditionalorexpression : conditionalandexpression . (202) - conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (228) - - LOGICALAND shift 331 - ABSTRACT reduce 202 - BOOLEAN reduce 202 - CHAR reduce 202 - FINAL reduce 202 - INSTANCEOF reduce 202 - INT reduce 202 - PRIVATE reduce 202 - PROTECTED reduce 202 - PUBLIC reduce 202 - STATIC reduce 202 - VOID reduce 202 - IDENTIFIER reduce 202 - EQUAL reduce 202 - LESSEQUAL reduce 202 - GREATEREQUAL reduce 202 - NOTEQUAL reduce 202 - LOGICALOR reduce 202 - INCREMENT reduce 202 - DECREMENT reduce 202 - ',' reduce 202 - ';' reduce 202 - '.' reduce 202 - '*' reduce 202 - '<' reduce 202 - '>' reduce 202 - '}' reduce 202 - ')' reduce 202 - '&' reduce 202 - '+' reduce 202 - '-' reduce 202 - '|' reduce 202 - '^' reduce 202 - '/' reduce 202 - '%' reduce 202 - - -238: shift/reduce conflict (shift 332, reduce 191) on LOGICALOR -state 238 - conditionalexpression : conditionalorexpression . (191) - conditionalorexpression : conditionalorexpression . LOGICALOR conditionalandexpression (203) - - LOGICALOR shift 332 - ABSTRACT reduce 191 - BOOLEAN reduce 191 - CHAR reduce 191 - FINAL reduce 191 - INSTANCEOF reduce 191 - INT reduce 191 - PRIVATE reduce 191 - PROTECTED reduce 191 - PUBLIC reduce 191 - STATIC reduce 191 - VOID reduce 191 - IDENTIFIER reduce 191 - EQUAL reduce 191 - LESSEQUAL reduce 191 - GREATEREQUAL reduce 191 - NOTEQUAL reduce 191 - LOGICALAND reduce 191 - INCREMENT reduce 191 - DECREMENT reduce 191 - ',' reduce 191 - ';' reduce 191 - '.' reduce 191 - '*' reduce 191 - '<' reduce 191 - '>' reduce 191 - '}' reduce 191 - ')' reduce 191 - '&' reduce 191 - '+' reduce 191 - '-' reduce 191 - '|' reduce 191 - '^' reduce 191 - '/' reduce 191 - '%' reduce 191 - - -state 239 - assignmentexpression : conditionalexpression . (182) - - . reduce 182 - - -state 240 - expression : assignmentexpression . (161) - - . reduce 161 - - -state 241 - fielddeclarator : variabledeclarator '=' expression . (79) - - . reduce 79 - - -state 242 - unaryexpression : preincrementexpression . (229) - - . reduce 229 - - -state 243 - unaryexpression : predecrementexpression . (230) - - . reduce 230 - - -state 244 - postfixexpression : postincrementexpression . (236) - - . reduce 236 - - -state 245 - postfixexpression : postdecrementexpression . (237) - - . reduce 237 - - -state 246 - expression : classinstancecreationexpression . (162) - - . reduce 162 - - -state 247 - assignmentexpression : assignment . (183) - - . reduce 183 - - -state 248 - primarynonewarray : methodinvocation . (243) - - . reduce 243 - - -state 249 - unaryexpressionnotplusminus : castexpression . (247) - - . reduce 247 - - -state 250 - constructordeclarator : simplename '(' ')' . (88) - - . reduce 88 - - -state 251 - constructordeclarator : simplename '(' formalparameterlist . ')' (89) - formalparameterlist : formalparameterlist . ',' formalparameter (135) - - ',' shift 304 - ')' shift 333 - . error - - -state 252 - type : primitivetype '[' ']' . (126) - - . reduce 126 - - -state 253 - type : referencetype '[' ']' . (128) - - . reduce 128 - - -state 254 - methodheader : type methoddeclarator throws . (108) - - . reduce 108 - - -state 255 - fielddeclaration : type variabledeclarators ';' . (83) - - . reduce 83 - - -state 256 - methodheader : modifiers VOID methoddeclarator . (113) - methodheader : modifiers VOID methoddeclarator . throws (115) - - THROWS shift 114 - ';' reduce 113 - '{' reduce 113 - - throws goto 334 - - -state 257 - boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (103) - methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator (107) - methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator throws (111) - methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator (117) - methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator throws (119) - - ',' shift 214 - '>' shift 335 - . error - - -state 258 - methodheader : modifiers methoddeclarator throws . (124) - - . reduce 124 - - -state 259 - methodheader : modifiers type methoddeclarator . (106) - methodheader : modifiers type methoddeclarator . throws (110) - - THROWS shift 114 - ';' reduce 106 - '{' reduce 106 - - throws goto 336 - - -state 260 - fielddeclaration : modifiers type variabledeclarators . ';' (84) - variabledeclarators : variabledeclarators . ',' variabledeclarator (130) - - ',' shift 118 - ';' shift 337 - . error - - -state 261 - constructordeclaration : modifiers constructordeclarator constructorbody . (76) - - . reduce 76 - - -state 262 - explicitconstructorinvocation : THIS . '(' ')' ';' (136) - explicitconstructorinvocation : THIS . '(' argumentlist ')' ';' (137) - primarynonewarray : THIS . (242) - - '(' shift 338 - INCREMENT reduce 242 - DECREMENT reduce 242 - '.' reduce 242 - - -state 263 - constructorbody : '{' '}' . (90) - - . reduce 90 - - -state 264 - constructorbody : '{' blockstatements . '}' (92) - blockstatements : blockstatements . blockstatement (133) - - BOOLEAN shift 48 - CHAR shift 49 - FOR shift 155 - IF shift 156 - INT shift 50 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '}' shift 339 - '(' shift 173 - . error - - variabledeclarators goto 174 - variabledeclarator goto 175 - variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 179 - block goto 180 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 288 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 265 - constructorbody : '{' explicitconstructorinvocation . '}' (91) - constructorbody : '{' explicitconstructorinvocation . blockstatements '}' (93) - - BOOLEAN shift 48 - CHAR shift 49 - FOR shift 155 - IF shift 156 - INT shift 50 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '}' shift 340 - '(' shift 173 - . error - - variabledeclarators goto 174 - variabledeclarator goto 175 - variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 179 - block goto 180 - blockstatements goto 341 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 197 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 266 - constantdeclaration : modifiers type IDENTIFIER . '=' expression ';' (77) - methoddeclarator : IDENTIFIER . '(' ')' (140) - methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (141) - - '=' shift 342 - '(' shift 109 - . error - - -state 267 - classdeclaration : modifiers CLASS classidentifier super interfaces classbody . (23) - - . reduce 23 - - -state 268 - boundedclassidentifierlist : boundedclassidentifierlist '&' . referencetype (101) - - IDENTIFIER shift 42 - . error - - simplename goto 43 - classorinterfacetype goto 68 - referencetype goto 343 - - -state 269 - paralist : IDENTIFIER '<' . paralist '>' (33) - - IDENTIFIER shift 151 - '?' shift 152 - . error - - paralist goto 344 - wildcardparameter goto 154 - - -state 270 - wildcardparameter : '?' EXTENDS . referencetype (39) - - IDENTIFIER shift 42 - . error - - simplename goto 43 - classorinterfacetype goto 68 - referencetype goto 345 - - -state 271 - wildcardparameter : '?' SUPER . referencetype (40) - - IDENTIFIER shift 42 - . error - - simplename goto 43 - classorinterfacetype goto 68 - referencetype goto 346 - - -state 272 - paralist : paralist ',' . IDENTIFIER (35) - paralist : paralist ',' . IDENTIFIER '<' paralist '>' (36) - paralist : paralist ',' . wildcardparameter (37) - - IDENTIFIER shift 347 - '?' shift 152 - . error - - wildcardparameter goto 348 - - -state 273 - parameter : '<' paralist '>' . (69) - - . reduce 69 - - -state 274 - forstatement : FOR '(' . expression ';' expression ';' expression ')' statement (174) - forstatement : FOR '(' . expression ';' expression ';' ')' statement (175) - forstatement : FOR '(' . expression ';' ';' expression ')' statement (176) - forstatement : FOR '(' . ';' expression ';' expression ')' statement (177) - forstatement : FOR '(' . expression ';' ';' ')' statement (178) - forstatement : FOR '(' . ';' expression ';' ')' statement (179) - forstatement : FOR '(' . ';' ';' expression ')' statement (180) - forstatement : FOR '(' . ';' ';' ')' statement (181) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 349 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 350 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 275 - ifthenstatement : IF '(' . expression ')' statement (171) - ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (172) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 351 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 276 - returnstatement : RETURN ';' . (186) - - . reduce 186 - - -state 277 - returnstatement : RETURN expression . ';' (187) - - ';' shift 352 - . error - - -state 278 - whilestatement : WHILE '(' . expression ')' statement (173) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 353 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -279: shift/reduce conflict (shift 284, reduce 235) on '.' -state 279 - qualifiedname : name . '.' IDENTIFIER (12) - methodinvocation : name . '(' ')' (221) - methodinvocation : name . '(' argumentlist ')' (222) - postfixexpression : name . (235) - - '.' shift 284 - '(' shift 285 - ABSTRACT reduce 235 - BOOLEAN reduce 235 - CHAR reduce 235 - FINAL reduce 235 - INSTANCEOF reduce 235 - INT reduce 235 - PRIVATE reduce 235 - PROTECTED reduce 235 - PUBLIC reduce 235 - STATIC reduce 235 - VOID reduce 235 - IDENTIFIER reduce 235 - EQUAL reduce 235 - LESSEQUAL reduce 235 - GREATEREQUAL reduce 235 - NOTEQUAL reduce 235 - LOGICALOR reduce 235 - LOGICALAND reduce 235 - INCREMENT reduce 235 - DECREMENT reduce 235 - ',' reduce 235 - ';' reduce 235 - '*' reduce 235 - '<' reduce 235 - '>' reduce 235 - '}' reduce 235 - ')' reduce 235 - '&' reduce 235 - '+' reduce 235 - '-' reduce 235 - '|' reduce 235 - '^' reduce 235 - '/' reduce 235 - '%' reduce 235 - - -state 280 - preincrementexpression : INCREMENT unaryexpression . (217) - - . reduce 217 - - -state 281 - predecrementexpression : DECREMENT unaryexpression . (218) - - . reduce 218 - - -state 282 - lambdaexpressionparameter : '(' ')' . (207) - - . reduce 207 - - -state 283 - formalparameterlist : formalparameterlist . ',' formalparameter (135) - lambdaexpressionparameter : '(' formalparameterlist . ')' (208) - - ',' shift 304 - ')' shift 354 - . error - - -state 284 - qualifiedname : name '.' . IDENTIFIER (12) - - IDENTIFIER shift 355 - . error - - -state 285 - methodinvocation : name '(' . ')' (221) - methodinvocation : name '(' . argumentlist ')' (222) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 356 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 357 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - argumentlist goto 358 - methodinvocation goto 248 - castexpression goto 249 - - -state 286 - variabledeclarators : variabledeclarators . ',' variabledeclarator (130) - localvariabledeclaration : type variabledeclarators . (165) - - ',' shift 118 - ';' reduce 165 - - -state 287 - block : '{' blockstatements '}' . (87) - - . reduce 87 - - -state 288 - blockstatements : blockstatements blockstatement . (133) - - . reduce 133 - - -state 289 - localvariabledeclarationstatement : localvariabledeclaration ';' . (155) - - . reduce 155 - - -state 290 - lambdaassignmentoperator : LAMBDAASSIGNMENT . (204) - - . reduce 204 - - -state 291 - lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator . lambdabody (209) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '{' shift 105 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 359 - lambdabody goto 360 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 361 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 292 - methodinvocation : primary '.' . IDENTIFIER '(' ')' (223) - methodinvocation : primary '.' . IDENTIFIER '(' argumentlist ')' (224) - - IDENTIFIER shift 362 - . error - - -state 293 - postincrementexpression : postfixexpression INCREMENT . (219) - - . reduce 219 - - -state 294 - postdecrementexpression : postfixexpression DECREMENT . (220) - - . reduce 220 - - -state 295 - expressionstatement : statementexpression ';' . (185) - - . reduce 185 - - -state 296 - assignmentoperator : PLUSEQUAL . (215) - - . reduce 215 - - -state 297 - assignmentoperator : MINUSEQUAL . (216) - - . reduce 216 - - -state 298 - assignmentoperator : TIMESEQUAL . (212) - - . reduce 212 - - -state 299 - assignmentoperator : DIVIDEEQUAL . (213) - - . reduce 213 - - -state 300 - assignmentoperator : MODULOEQUAL . (214) - - . reduce 214 - - -state 301 - assignmentoperator : '=' . (211) - - . reduce 211 - - -state 302 - assignment : lefthandside assignmentoperator . assignmentexpression (192) - assignment : lefthandside assignmentoperator . classinstancecreationexpression (193) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 363 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 364 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 303 - formalparameter : type variabledeclaratorid . (148) - - . reduce 148 - - -state 304 - formalparameterlist : formalparameterlist ',' . formalparameter (135) - - BOOLEAN shift 48 - CHAR shift 49 - INT shift 50 - IDENTIFIER shift 168 - . error - - variabledeclaratorid goto 210 - simplename goto 43 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 211 - formalparameter goto 365 - - -state 305 - methoddeclarator : IDENTIFIER '(' formalparameterlist ')' . (141) - - . reduce 141 - - -state 306 - boundedMethodParameters : boundedMethodParameters ',' boundedMethodParameter . (103) - - . reduce 103 - - -state 307 - methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator (116) - methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator throws (118) - - IDENTIFIER shift 107 - . error - - methoddeclarator goto 366 - - -state 308 - methodheader : '<' boundedMethodParameters '>' methoddeclarator . (121) - - . reduce 121 - - -state 309 - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator (104) - methodheader : '<' boundedMethodParameters '>' type . methoddeclarator throws (109) - - IDENTIFIER shift 107 - . error - - methoddeclarator goto 367 - - -state 310 - classtypelist : classtypelist ',' . classtype (139) - - IDENTIFIER shift 42 - . error - - simplename goto 43 - classtype goto 368 - classorinterfacetype goto 45 - - -state 311 - classinstancecreationexpression : NEW classtype . '(' ')' (225) - classinstancecreationexpression : NEW classtype . '(' argumentlist ')' (226) - - '(' shift 369 - . error - - -state 312 - type : primitivetype . (125) - type : primitivetype . '[' ']' (126) - castexpression : '(' primitivetype . ')' unaryexpression (258) - - ')' shift 370 - '[' shift 123 - IDENTIFIER reduce 125 - - -state 313 - unaryexpression : '+' unaryexpression . (231) - - . reduce 231 - - -state 314 - unaryexpression : '-' unaryexpression . (232) - - . reduce 232 - - -state 315 - unaryexpressionnotplusminus : '!' unaryexpression . (246) - - . reduce 246 - - -state 316 - multiplicativeexpression : multiplicativeexpression '*' . unaryexpression (275) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 371 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 317 - multiplicativeexpression : multiplicativeexpression '/' . unaryexpression (276) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 372 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 318 - multiplicativeexpression : multiplicativeexpression '%' . unaryexpression (277) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 373 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 319 - additiveexpression : additiveexpression '+' . multiplicativeexpression (272) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 374 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 320 - additiveexpression : additiveexpression '-' . multiplicativeexpression (273) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 375 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 321 - relationalexpression : relationalexpression INSTANCEOF . referencetype (269) - - IDENTIFIER shift 42 - . error - - simplename goto 43 - classorinterfacetype goto 68 - referencetype goto 376 - - -state 322 - relationalexpression : relationalexpression LESSEQUAL . shiftexpression (267) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 377 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 323 - relationalexpression : relationalexpression GREATEREQUAL . shiftexpression (268) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 378 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 324 - relationalexpression : relationalexpression '<' . shiftexpression (265) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 379 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 325 - relationalexpression : relationalexpression '>' . shiftexpression (266) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 380 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 326 - equalityexpression : equalityexpression EQUAL . relationalexpression (262) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 381 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 327 - equalityexpression : equalityexpression NOTEQUAL . relationalexpression (263) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 382 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 328 - andexpression : andexpression '&' . equalityexpression (260) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 383 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 329 - exclusiveorexpression : exclusiveorexpression '^' . andexpression (249) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 384 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 330 - inclusiveorexpression : inclusiveorexpression '|' . exclusiveorexpression (240) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 385 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 331 - conditionalandexpression : conditionalandexpression LOGICALAND . inclusiveorexpression (228) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 386 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 332 - conditionalorexpression : conditionalorexpression LOGICALOR . conditionalandexpression (203) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 387 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 333 - constructordeclarator : simplename '(' formalparameterlist ')' . (89) - - . reduce 89 - - -state 334 - methodheader : modifiers VOID methoddeclarator throws . (115) - - . reduce 115 - - -state 335 - methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator (107) - methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator throws (111) - methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator (117) - methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator throws (119) - - BOOLEAN shift 48 - CHAR shift 49 - INT shift 50 - VOID shift 388 - IDENTIFIER shift 42 - . error - - simplename goto 43 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 389 - - -state 336 - methodheader : modifiers type methoddeclarator throws . (110) - - . reduce 110 - - -state 337 - fielddeclaration : modifiers type variabledeclarators ';' . (84) - - . reduce 84 - - -state 338 - explicitconstructorinvocation : THIS '(' . ')' ';' (136) - explicitconstructorinvocation : THIS '(' . argumentlist ')' ';' (137) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 390 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 357 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - argumentlist goto 391 - methodinvocation goto 248 - castexpression goto 249 - - -state 339 - constructorbody : '{' blockstatements '}' . (92) - - . reduce 92 - - -state 340 - constructorbody : '{' explicitconstructorinvocation '}' . (91) - - . reduce 91 - - -state 341 - constructorbody : '{' explicitconstructorinvocation blockstatements . '}' (93) - blockstatements : blockstatements . blockstatement (133) - - BOOLEAN shift 48 - CHAR shift 49 - FOR shift 155 - IF shift 156 - INT shift 50 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 168 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '}' shift 392 - '(' shift 173 - . error - - variabledeclarators goto 174 - variabledeclarator goto 175 - variabledeclaratorid goto 66 - simplename goto 176 - qualifiedname goto 177 - name goto 178 - classorinterfacetype goto 68 - integraltype goto 69 - numerictype goto 70 - primitivetype goto 71 - referencetype goto 72 - type goto 179 - block goto 180 - localvariabledeclarationstatement goto 182 - localvariabledeclaration goto 183 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - blockstatement goto 288 - statement goto 198 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 342 - constantdeclaration : modifiers type IDENTIFIER '=' . expression ';' (77) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 393 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 343 - boundedclassidentifierlist : boundedclassidentifierlist '&' referencetype . (101) - - . reduce 101 - - -state 344 - paralist : IDENTIFIER '<' paralist . '>' (33) - paralist : paralist . ',' IDENTIFIER (35) - paralist : paralist . ',' IDENTIFIER '<' paralist '>' (36) - paralist : paralist . ',' wildcardparameter (37) - - ',' shift 272 - '>' shift 394 - . error - - -state 345 - wildcardparameter : '?' EXTENDS referencetype . (39) - - . reduce 39 - - -state 346 - wildcardparameter : '?' SUPER referencetype . (40) - - . reduce 40 - - -state 347 - paralist : paralist ',' IDENTIFIER . (35) - paralist : paralist ',' IDENTIFIER . '<' paralist '>' (36) - - '<' shift 395 - ',' reduce 35 - '>' reduce 35 - - -state 348 - paralist : paralist ',' wildcardparameter . (37) - - . reduce 37 - - -state 349 - forstatement : FOR '(' ';' . expression ';' expression ')' statement (177) - forstatement : FOR '(' ';' . expression ';' ')' statement (179) - forstatement : FOR '(' ';' . ';' expression ')' statement (180) - forstatement : FOR '(' ';' . ';' ')' statement (181) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 396 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 397 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 350 - forstatement : FOR '(' expression . ';' expression ';' expression ')' statement (174) - forstatement : FOR '(' expression . ';' expression ';' ')' statement (175) - forstatement : FOR '(' expression . ';' ';' expression ')' statement (176) - forstatement : FOR '(' expression . ';' ';' ')' statement (178) - - ';' shift 398 - . error - - -state 351 - ifthenstatement : IF '(' expression . ')' statement (171) - ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (172) - - ')' shift 399 - . error - - -state 352 - returnstatement : RETURN expression ';' . (187) - - . reduce 187 - - -state 353 - whilestatement : WHILE '(' expression . ')' statement (173) - - ')' shift 400 - . error - - -state 354 - lambdaexpressionparameter : '(' formalparameterlist ')' . (208) - - . reduce 208 - - -state 355 - qualifiedname : name '.' IDENTIFIER . (12) - - . reduce 12 - - -state 356 - methodinvocation : name '(' ')' . (221) - - . reduce 221 - - -state 357 - argumentlist : expression . (150) - - . reduce 150 - - -state 358 - argumentlist : argumentlist . ',' expression (151) - methodinvocation : name '(' argumentlist . ')' (222) - - ',' shift 401 - ')' shift 402 - . error - - -state 359 - lambdabody : block . (205) - - . reduce 205 - - -state 360 - lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody . (209) - - . reduce 209 - - -state 361 - lambdabody : expression . (206) - - . reduce 206 - - -state 362 - methodinvocation : primary '.' IDENTIFIER . '(' ')' (223) - methodinvocation : primary '.' IDENTIFIER . '(' argumentlist ')' (224) - - '(' shift 403 - . error - - -state 363 - assignment : lefthandside assignmentoperator assignmentexpression . (192) - - . reduce 192 - - -state 364 - assignment : lefthandside assignmentoperator classinstancecreationexpression . (193) - - . reduce 193 - - -state 365 - formalparameterlist : formalparameterlist ',' formalparameter . (135) - - . reduce 135 - - -state 366 - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . (116) - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . throws (118) - - THROWS shift 114 - ';' reduce 116 - '{' reduce 116 - - throws goto 404 - - -state 367 - methodheader : '<' boundedMethodParameters '>' type methoddeclarator . (104) - methodheader : '<' boundedMethodParameters '>' type methoddeclarator . throws (109) - - THROWS shift 114 - ';' reduce 104 - '{' reduce 104 - - throws goto 405 - - -state 368 - classtypelist : classtypelist ',' classtype . (139) - - . reduce 139 - - -state 369 - classinstancecreationexpression : NEW classtype '(' . ')' (225) - classinstancecreationexpression : NEW classtype '(' . argumentlist ')' (226) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 406 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 357 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - argumentlist goto 407 - methodinvocation goto 248 - castexpression goto 249 - - -state 370 - castexpression : '(' primitivetype ')' . unaryexpression (258) - - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 279 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 408 - lambdaexpression goto 189 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - methodinvocation goto 248 - castexpression goto 249 - - -state 371 - multiplicativeexpression : multiplicativeexpression '*' unaryexpression . (275) + multiplicativeexpression : unaryexpression . (275) . reduce 275 -state 372 - multiplicativeexpression : multiplicativeexpression '/' unaryexpression . (276) +230: shift/reduce conflict (shift 320, reduce 272) on '*' +230: shift/reduce conflict (shift 321, reduce 272) on '/' +230: shift/reduce conflict (shift 322, reduce 272) on '%' +state 230 + additiveexpression : multiplicativeexpression . (272) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (276) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (277) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (278) - . reduce 276 - - -state 373 - multiplicativeexpression : multiplicativeexpression '%' unaryexpression . (277) - - . reduce 277 - - -374: shift/reduce conflict (shift 316, reduce 272) on '*' -374: shift/reduce conflict (shift 317, reduce 272) on '/' -374: shift/reduce conflict (shift 318, reduce 272) on '%' -state 374 - additiveexpression : additiveexpression '+' multiplicativeexpression . (272) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (275) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (276) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (277) - - '*' shift 316 - '/' shift 317 - '%' shift 318 + '*' shift 320 + '/' shift 321 + '%' shift 322 ABSTRACT reduce 272 BOOLEAN reduce 272 CHAR reduce 272 @@ -5975,100 +3246,74 @@ state 374 '^' reduce 272 -375: shift/reduce conflict (shift 316, reduce 273) on '*' -375: shift/reduce conflict (shift 317, reduce 273) on '/' -375: shift/reduce conflict (shift 318, reduce 273) on '%' -state 375 - additiveexpression : additiveexpression '-' multiplicativeexpression . (273) - multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (275) - multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (276) - multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (277) +231: shift/reduce conflict (shift 323, reduce 271) on '+' +231: shift/reduce conflict (shift 324, reduce 271) on '-' +state 231 + shiftexpression : additiveexpression . (271) + additiveexpression : additiveexpression . '+' multiplicativeexpression (273) + additiveexpression : additiveexpression . '-' multiplicativeexpression (274) - '*' shift 316 - '/' shift 317 - '%' shift 318 - ABSTRACT reduce 273 - BOOLEAN reduce 273 - CHAR reduce 273 - FINAL reduce 273 - INSTANCEOF reduce 273 - INT reduce 273 - PRIVATE reduce 273 - PROTECTED reduce 273 - PUBLIC reduce 273 - STATIC reduce 273 - VOID reduce 273 - IDENTIFIER reduce 273 - EQUAL reduce 273 - LESSEQUAL reduce 273 - GREATEREQUAL reduce 273 - NOTEQUAL reduce 273 - LOGICALOR reduce 273 - LOGICALAND reduce 273 - INCREMENT reduce 273 - DECREMENT reduce 273 - ',' reduce 273 - ';' reduce 273 - '.' reduce 273 - '<' reduce 273 - '>' reduce 273 - '}' reduce 273 - ')' reduce 273 - '&' reduce 273 - '+' reduce 273 - '-' reduce 273 - '|' reduce 273 - '^' reduce 273 + '+' shift 323 + '-' shift 324 + ABSTRACT reduce 271 + BOOLEAN reduce 271 + CHAR reduce 271 + FINAL reduce 271 + INSTANCEOF reduce 271 + INT reduce 271 + PRIVATE reduce 271 + PROTECTED reduce 271 + PUBLIC reduce 271 + STATIC reduce 271 + VOID reduce 271 + IDENTIFIER reduce 271 + EQUAL reduce 271 + LESSEQUAL reduce 271 + GREATEREQUAL 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 + '%' reduce 271 -state 376 - relationalexpression : relationalexpression INSTANCEOF referencetype . (269) - - . reduce 269 - - -state 377 - relationalexpression : relationalexpression LESSEQUAL shiftexpression . (267) - - . reduce 267 - - -state 378 - relationalexpression : relationalexpression GREATEREQUAL shiftexpression . (268) - - . reduce 268 - - -state 379 - relationalexpression : relationalexpression '<' shiftexpression . (265) +state 232 + relationalexpression : shiftexpression . (265) . reduce 265 -state 380 - relationalexpression : relationalexpression '>' shiftexpression . (266) +233: shift/reduce conflict (shift 325, reduce 262) on INSTANCEOF +233: shift/reduce conflict (shift 326, reduce 262) on LESSEQUAL +233: shift/reduce conflict (shift 327, reduce 262) on GREATEREQUAL +233: shift/reduce conflict (shift 328, reduce 262) on '<' +233: shift/reduce conflict (shift 329, reduce 262) on '>' +state 233 + equalityexpression : relationalexpression . (262) + relationalexpression : relationalexpression . '<' shiftexpression (266) + relationalexpression : relationalexpression . '>' shiftexpression (267) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (268) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (269) + relationalexpression : relationalexpression . INSTANCEOF referencetype (270) - . reduce 266 - - -381: shift/reduce conflict (shift 321, reduce 262) on INSTANCEOF -381: shift/reduce conflict (shift 322, reduce 262) on LESSEQUAL -381: shift/reduce conflict (shift 323, reduce 262) on GREATEREQUAL -381: shift/reduce conflict (shift 324, reduce 262) on '<' -381: shift/reduce conflict (shift 325, reduce 262) on '>' -state 381 - equalityexpression : equalityexpression EQUAL relationalexpression . (262) - relationalexpression : relationalexpression . '<' shiftexpression (265) - relationalexpression : relationalexpression . '>' shiftexpression (266) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (267) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (268) - relationalexpression : relationalexpression . INSTANCEOF referencetype (269) - - INSTANCEOF shift 321 - LESSEQUAL shift 322 - GREATEREQUAL shift 323 - '<' shift 324 - '>' shift 325 + INSTANCEOF shift 325 + LESSEQUAL shift 326 + GREATEREQUAL shift 327 + '<' shift 328 + '>' shift 329 ABSTRACT reduce 262 BOOLEAN reduce 262 CHAR reduce 262 @@ -6101,65 +3346,15 @@ state 381 '%' reduce 262 -382: shift/reduce conflict (shift 321, reduce 263) on INSTANCEOF -382: shift/reduce conflict (shift 322, reduce 263) on LESSEQUAL -382: shift/reduce conflict (shift 323, reduce 263) on GREATEREQUAL -382: shift/reduce conflict (shift 324, reduce 263) on '<' -382: shift/reduce conflict (shift 325, reduce 263) on '>' -state 382 - equalityexpression : equalityexpression NOTEQUAL relationalexpression . (263) - relationalexpression : relationalexpression . '<' shiftexpression (265) - relationalexpression : relationalexpression . '>' shiftexpression (266) - relationalexpression : relationalexpression . LESSEQUAL shiftexpression (267) - relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (268) - relationalexpression : relationalexpression . INSTANCEOF referencetype (269) +234: shift/reduce conflict (shift 330, reduce 260) on EQUAL +234: shift/reduce conflict (shift 331, reduce 260) on NOTEQUAL +state 234 + andexpression : equalityexpression . (260) + equalityexpression : equalityexpression . EQUAL relationalexpression (263) + equalityexpression : equalityexpression . NOTEQUAL relationalexpression (264) - INSTANCEOF shift 321 - LESSEQUAL shift 322 - GREATEREQUAL shift 323 - '<' shift 324 - '>' shift 325 - ABSTRACT reduce 263 - BOOLEAN reduce 263 - CHAR reduce 263 - FINAL reduce 263 - INT reduce 263 - PRIVATE reduce 263 - PROTECTED reduce 263 - PUBLIC reduce 263 - STATIC reduce 263 - VOID reduce 263 - IDENTIFIER reduce 263 - EQUAL reduce 263 - NOTEQUAL reduce 263 - LOGICALOR reduce 263 - LOGICALAND reduce 263 - INCREMENT reduce 263 - DECREMENT reduce 263 - ',' reduce 263 - ';' reduce 263 - '.' reduce 263 - '*' reduce 263 - '}' reduce 263 - ')' reduce 263 - '&' reduce 263 - '+' reduce 263 - '-' reduce 263 - '|' reduce 263 - '^' reduce 263 - '/' reduce 263 - '%' reduce 263 - - -383: shift/reduce conflict (shift 326, reduce 260) on EQUAL -383: shift/reduce conflict (shift 327, reduce 260) on NOTEQUAL -state 383 - andexpression : andexpression '&' equalityexpression . (260) - equalityexpression : equalityexpression . EQUAL relationalexpression (262) - equalityexpression : equalityexpression . NOTEQUAL relationalexpression (263) - - EQUAL shift 326 - NOTEQUAL shift 327 + EQUAL shift 330 + NOTEQUAL shift 331 ABSTRACT reduce 260 BOOLEAN reduce 260 CHAR reduce 260 @@ -6195,12 +3390,12 @@ state 383 '%' reduce 260 -384: shift/reduce conflict (shift 328, reduce 249) on '&' -state 384 - exclusiveorexpression : exclusiveorexpression '^' andexpression . (249) - andexpression : andexpression . '&' equalityexpression (260) +235: shift/reduce conflict (shift 332, reduce 249) on '&' +state 235 + exclusiveorexpression : andexpression . (249) + andexpression : andexpression . '&' equalityexpression (261) - '&' shift 328 + '&' shift 332 ABSTRACT reduce 249 BOOLEAN reduce 249 CHAR reduce 249 @@ -6237,12 +3432,12 @@ state 384 '%' reduce 249 -385: shift/reduce conflict (shift 329, reduce 240) on '^' -state 385 - inclusiveorexpression : inclusiveorexpression '|' exclusiveorexpression . (240) - exclusiveorexpression : exclusiveorexpression . '^' andexpression (249) +236: shift/reduce conflict (shift 333, reduce 240) on '^' +state 236 + inclusiveorexpression : exclusiveorexpression . (240) + exclusiveorexpression : exclusiveorexpression . '^' andexpression (250) - '^' shift 329 + '^' shift 333 ABSTRACT reduce 240 BOOLEAN reduce 240 CHAR reduce 240 @@ -6279,12 +3474,12 @@ state 385 '%' reduce 240 -386: shift/reduce conflict (shift 330, reduce 228) on '|' -state 386 - conditionalandexpression : conditionalandexpression LOGICALAND inclusiveorexpression . (228) - inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (240) +237: shift/reduce conflict (shift 334, reduce 228) on '|' +state 237 + conditionalandexpression : inclusiveorexpression . (228) + inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (241) - '|' shift 330 + '|' shift 334 ABSTRACT reduce 228 BOOLEAN reduce 228 CHAR reduce 228 @@ -6321,12 +3516,12 @@ state 386 '%' reduce 228 -387: shift/reduce conflict (shift 331, reduce 203) on LOGICALAND -state 387 - conditionalorexpression : conditionalorexpression LOGICALOR conditionalandexpression . (203) - conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (228) +238: shift/reduce conflict (shift 335, reduce 203) on LOGICALAND +state 238 + conditionalorexpression : conditionalandexpression . (203) + conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (229) - LOGICALAND shift 331 + LOGICALAND shift 335 ABSTRACT reduce 203 BOOLEAN reduce 203 CHAR reduce 203 @@ -6363,1723 +3558,4719 @@ state 387 '%' reduce 203 -state 388 - methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator (117) - methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator throws (119) +239: shift/reduce conflict (shift 336, reduce 192) on LOGICALOR +state 239 + conditionalexpression : conditionalorexpression . (192) + conditionalorexpression : conditionalorexpression . LOGICALOR conditionalandexpression (204) - IDENTIFIER shift 107 - . error - - methoddeclarator goto 409 + LOGICALOR shift 336 + ABSTRACT reduce 192 + BOOLEAN reduce 192 + CHAR reduce 192 + FINAL reduce 192 + INSTANCEOF reduce 192 + INT reduce 192 + PRIVATE reduce 192 + PROTECTED reduce 192 + PUBLIC reduce 192 + STATIC reduce 192 + VOID reduce 192 + IDENTIFIER reduce 192 + EQUAL reduce 192 + LESSEQUAL reduce 192 + GREATEREQUAL reduce 192 + NOTEQUAL reduce 192 + LOGICALAND reduce 192 + INCREMENT reduce 192 + DECREMENT reduce 192 + ',' reduce 192 + ';' reduce 192 + '.' reduce 192 + '*' reduce 192 + '<' reduce 192 + '>' reduce 192 + '}' reduce 192 + ')' reduce 192 + '&' reduce 192 + '+' reduce 192 + '-' reduce 192 + '|' reduce 192 + '^' reduce 192 + '/' reduce 192 + '%' reduce 192 -state 389 - methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator (107) - methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator throws (111) +state 240 + assignmentexpression : conditionalexpression . (183) - IDENTIFIER shift 107 - . error - - methoddeclarator goto 410 + . reduce 183 -state 390 - explicitconstructorinvocation : THIS '(' ')' . ';' (136) +state 241 + expression : assignmentexpression . (162) - ';' shift 411 + . reduce 162 + + +state 242 + fielddeclarator : variabledeclarator '=' expression . (80) + + . reduce 80 + + +state 243 + unaryexpression : preincrementexpression . (230) + + . reduce 230 + + +state 244 + unaryexpression : predecrementexpression . (231) + + . reduce 231 + + +state 245 + postfixexpression : postincrementexpression . (237) + + . reduce 237 + + +state 246 + postfixexpression : postdecrementexpression . (238) + + . reduce 238 + + +state 247 + expression : classinstancecreationexpression . (163) + + . reduce 163 + + +state 248 + assignmentexpression : assignment . (184) + + . reduce 184 + + +state 249 + primarynonewarray : methodinvocation . (244) + + . reduce 244 + + +state 250 + unaryexpressionnotplusminus : castexpression . (248) + + . reduce 248 + + +state 251 + constructordeclarator : simplename '(' ')' . (89) + + . reduce 89 + + +state 252 + constructordeclarator : simplename '(' formalparameterlist . ')' (90) + formalparameterlist : formalparameterlist . ',' formalparameter (136) + + ',' shift 308 + ')' shift 337 . error -state 391 - explicitconstructorinvocation : THIS '(' argumentlist . ')' ';' (137) - argumentlist : argumentlist . ',' expression (151) +state 253 + type : primitivetype '[' ']' . (127) - ',' shift 401 - ')' shift 412 - . error + . reduce 127 -state 392 - constructorbody : '{' explicitconstructorinvocation blockstatements '}' . (93) +state 254 + type : referencetype '[' ']' . (129) - . reduce 93 + . reduce 129 -state 393 - constantdeclaration : modifiers type IDENTIFIER '=' expression . ';' (77) - - ';' shift 413 - . error - - -state 394 - paralist : IDENTIFIER '<' paralist '>' . (33) - - . reduce 33 - - -state 395 - paralist : paralist ',' IDENTIFIER '<' . paralist '>' (36) - - IDENTIFIER shift 151 - '?' shift 152 - . error - - paralist goto 414 - wildcardparameter goto 154 - - -state 396 - forstatement : FOR '(' ';' ';' . expression ')' statement (180) - forstatement : FOR '(' ';' ';' . ')' statement (181) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 415 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 416 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 397 - forstatement : FOR '(' ';' expression . ';' expression ')' statement (177) - forstatement : FOR '(' ';' expression . ';' ')' statement (179) - - ';' shift 417 - . error - - -state 398 - forstatement : FOR '(' expression ';' . expression ';' expression ')' statement (174) - forstatement : FOR '(' expression ';' . expression ';' ')' statement (175) - forstatement : FOR '(' expression ';' . ';' expression ')' statement (176) - forstatement : FOR '(' expression ';' . ';' ')' statement (178) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 418 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 419 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 399 - ifthenstatement : IF '(' expression ')' . statement (171) - ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (172) - - FOR shift 155 - IF shift 420 - RETURN shift 157 - THIS shift 158 - WHILE shift 421 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 422 - statement goto 423 - statementnoshortif goto 424 - whilestatement goto 199 - forstatement goto 200 - whilestatementnoshortif goto 425 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - ifthenelsestatementnoshortif goto 426 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 400 - whilestatement : WHILE '(' expression ')' . statement (173) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 427 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 401 - argumentlist : argumentlist ',' . expression (151) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 428 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 402 - methodinvocation : name '(' argumentlist ')' . (222) - - . reduce 222 - - -state 403 - methodinvocation : primary '.' IDENTIFIER '(' . ')' (223) - methodinvocation : primary '.' IDENTIFIER '(' . argumentlist ')' (224) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 429 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 357 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - argumentlist goto 430 - methodinvocation goto 248 - castexpression goto 249 - - -state 404 - methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator throws . (118) - - . reduce 118 - - -state 405 - methodheader : '<' boundedMethodParameters '>' type methoddeclarator throws . (109) +state 255 + methodheader : type methoddeclarator throws . (109) . reduce 109 -state 406 - classinstancecreationexpression : NEW classtype '(' ')' . (225) +state 256 + fielddeclaration : type variabledeclarators ';' . (84) - . reduce 225 + . reduce 84 -state 407 - argumentlist : argumentlist . ',' expression (151) - classinstancecreationexpression : NEW classtype '(' argumentlist . ')' (226) +state 257 + fielddeclarator : type variabledeclarator '=' . expression (79) + fielddeclarator : variabledeclarator '=' . expression (80) - ',' shift 401 - ')' shift 431 + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 338 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 258 + fielddeclarator : type variabledeclarator . '=' expression (79) + + '=' shift 339 . error -state 408 - castexpression : '(' primitivetype ')' unaryexpression . (258) - - . reduce 258 - - -state 409 - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . (117) - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . throws (119) +state 259 + methodheader : modifiers VOID methoddeclarator . (114) + methodheader : modifiers VOID methoddeclarator . throws (116) THROWS shift 114 - ';' reduce 117 - '{' reduce 117 + ';' reduce 114 + '{' reduce 114 - throws goto 432 + throws goto 340 -state 410 - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . (107) - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . throws (111) +state 260 + boundedMethodParameters : boundedMethodParameters . ',' boundedMethodParameter (104) + methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator (108) + methodheader : modifiers '<' boundedMethodParameters . '>' type methoddeclarator throws (112) + methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator (118) + methodheader : modifiers '<' boundedMethodParameters . '>' VOID methoddeclarator throws (120) + + ',' shift 215 + '>' shift 341 + . error + + +state 261 + methodheader : modifiers methoddeclarator throws . (125) + + . reduce 125 + + +state 262 + methoddeclarator : IDENTIFIER . '(' ')' (141) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (142) + variabledeclaratorid : IDENTIFIER . (154) + + '(' shift 109 + ',' reduce 154 + ';' reduce 154 + + +state 263 + methodheader : modifiers type methoddeclarator . (107) + methodheader : modifiers type methoddeclarator . throws (111) THROWS shift 114 ';' reduce 107 '{' reduce 107 - throws goto 433 + throws goto 342 -state 411 - explicitconstructorinvocation : THIS '(' ')' ';' . (136) +state 264 + fielddeclaration : modifiers type variabledeclarators . ';' (85) + variabledeclarators : variabledeclarators . ',' variabledeclarator (131) + + ',' shift 118 + ';' shift 343 + . error + + +state 265 + constructordeclaration : modifiers constructordeclarator constructorbody . (76) + + . reduce 76 + + +state 266 + explicitconstructorinvocation : THIS . '(' ')' ';' (137) + explicitconstructorinvocation : THIS . '(' argumentlist ')' ';' (138) + primarynonewarray : THIS . (243) + + '(' shift 344 + INCREMENT reduce 243 + DECREMENT reduce 243 + '.' reduce 243 + + +state 267 + constructorbody : '{' '}' . (91) + + . reduce 91 + + +state 268 + constructorbody : '{' blockstatements . '}' (93) + blockstatements : blockstatements . blockstatement (134) + + BOOLEAN shift 48 + CHAR shift 49 + FOR shift 156 + IF shift 157 + INT shift 50 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '}' shift 345 + '(' shift 174 + . error + + variabledeclarators goto 175 + variabledeclarator goto 176 + variabledeclaratorid goto 66 + simplename goto 177 + qualifiedname goto 178 + name goto 179 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 180 + block goto 181 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 292 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 269 + constructorbody : '{' explicitconstructorinvocation . '}' (92) + constructorbody : '{' explicitconstructorinvocation . blockstatements '}' (94) + + BOOLEAN shift 48 + CHAR shift 49 + FOR shift 156 + IF shift 157 + INT shift 50 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '}' shift 346 + '(' shift 174 + . error + + variabledeclarators goto 175 + variabledeclarator goto 176 + variabledeclaratorid goto 66 + simplename goto 177 + qualifiedname goto 178 + name goto 179 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 180 + block goto 181 + blockstatements goto 347 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 198 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 270 + constantdeclaration : modifiers type IDENTIFIER . '=' expression ';' (77) + methoddeclarator : IDENTIFIER . '(' ')' (141) + methoddeclarator : IDENTIFIER . '(' formalparameterlist ')' (142) + + '=' shift 348 + '(' shift 109 + . error + + +state 271 + classdeclaration : modifiers CLASS classidentifier super interfaces classbody . (23) + + . reduce 23 + + +state 272 + boundedclassidentifierlist : boundedclassidentifierlist '&' . referencetype (102) + + IDENTIFIER shift 42 + . error + + simplename goto 43 + classorinterfacetype goto 68 + referencetype goto 349 + + +state 273 + paralist : IDENTIFIER '<' . paralist '>' (33) + + IDENTIFIER shift 152 + '?' shift 153 + . error + + paralist goto 350 + wildcardparameter goto 155 + + +state 274 + wildcardparameter : '?' EXTENDS . referencetype (39) + + IDENTIFIER shift 42 + . error + + simplename goto 43 + classorinterfacetype goto 68 + referencetype goto 351 + + +state 275 + wildcardparameter : '?' SUPER . referencetype (40) + + IDENTIFIER shift 42 + . error + + simplename goto 43 + classorinterfacetype goto 68 + referencetype goto 352 + + +state 276 + paralist : paralist ',' . IDENTIFIER (35) + paralist : paralist ',' . IDENTIFIER '<' paralist '>' (36) + paralist : paralist ',' . wildcardparameter (37) + + IDENTIFIER shift 353 + '?' shift 153 + . error + + wildcardparameter goto 354 + + +state 277 + parameter : '<' paralist '>' . (69) + + . reduce 69 + + +state 278 + forstatement : FOR '(' . expression ';' expression ';' expression ')' statement (175) + forstatement : FOR '(' . expression ';' expression ';' ')' statement (176) + forstatement : FOR '(' . expression ';' ';' expression ')' statement (177) + forstatement : FOR '(' . ';' expression ';' expression ')' statement (178) + forstatement : FOR '(' . expression ';' ';' ')' statement (179) + forstatement : FOR '(' . ';' expression ';' ')' statement (180) + forstatement : FOR '(' . ';' ';' expression ')' statement (181) + forstatement : FOR '(' . ';' ';' ')' statement (182) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 355 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 356 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 279 + ifthenstatement : IF '(' . expression ')' statement (172) + ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (173) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 357 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 280 + returnstatement : RETURN ';' . (187) + + . reduce 187 + + +state 281 + returnstatement : RETURN expression . ';' (188) + + ';' shift 358 + . error + + +state 282 + whilestatement : WHILE '(' . expression ')' statement (174) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 359 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +283: shift/reduce conflict (shift 288, reduce 236) on '.' +state 283 + qualifiedname : name . '.' IDENTIFIER (12) + methodinvocation : name . '(' ')' (222) + methodinvocation : name . '(' argumentlist ')' (223) + postfixexpression : name . (236) + + '.' shift 288 + '(' shift 289 + ABSTRACT reduce 236 + BOOLEAN reduce 236 + CHAR reduce 236 + FINAL reduce 236 + INSTANCEOF reduce 236 + INT reduce 236 + PRIVATE reduce 236 + PROTECTED reduce 236 + PUBLIC reduce 236 + STATIC reduce 236 + VOID reduce 236 + IDENTIFIER 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 + '%' reduce 236 + + +state 284 + preincrementexpression : INCREMENT unaryexpression . (218) + + . reduce 218 + + +state 285 + predecrementexpression : DECREMENT unaryexpression . (219) + + . reduce 219 + + +state 286 + lambdaexpressionparameter : '(' ')' . (208) + + . reduce 208 + + +state 287 + formalparameterlist : formalparameterlist . ',' formalparameter (136) + lambdaexpressionparameter : '(' formalparameterlist . ')' (209) + + ',' shift 308 + ')' shift 360 + . error + + +state 288 + qualifiedname : name '.' . IDENTIFIER (12) + + IDENTIFIER shift 361 + . error + + +state 289 + methodinvocation : name '(' . ')' (222) + methodinvocation : name '(' . argumentlist ')' (223) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 362 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 363 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + argumentlist goto 364 + methodinvocation goto 249 + castexpression goto 250 + + +state 290 + variabledeclarators : variabledeclarators . ',' variabledeclarator (131) + localvariabledeclaration : type variabledeclarators . (166) + + ',' shift 118 + ';' reduce 166 + + +state 291 + block : '{' blockstatements '}' . (88) + + . reduce 88 + + +state 292 + blockstatements : blockstatements blockstatement . (134) + + . reduce 134 + + +state 293 + localvariabledeclarationstatement : localvariabledeclaration ';' . (156) + + . reduce 156 + + +state 294 + lambdaassignmentoperator : LAMBDAASSIGNMENT . (205) + + . reduce 205 + + +state 295 + lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator . lambdabody (210) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '{' shift 105 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 365 + lambdabody goto 366 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 367 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 296 + methodinvocation : primary '.' . IDENTIFIER '(' ')' (224) + methodinvocation : primary '.' . IDENTIFIER '(' argumentlist ')' (225) + + IDENTIFIER shift 368 + . error + + +state 297 + postincrementexpression : postfixexpression INCREMENT . (220) + + . reduce 220 + + +state 298 + postdecrementexpression : postfixexpression DECREMENT . (221) + + . reduce 221 + + +state 299 + expressionstatement : statementexpression ';' . (186) + + . reduce 186 + + +state 300 + assignmentoperator : PLUSEQUAL . (216) + + . reduce 216 + + +state 301 + assignmentoperator : MINUSEQUAL . (217) + + . reduce 217 + + +state 302 + assignmentoperator : TIMESEQUAL . (213) + + . reduce 213 + + +state 303 + assignmentoperator : DIVIDEEQUAL . (214) + + . reduce 214 + + +state 304 + assignmentoperator : MODULOEQUAL . (215) + + . reduce 215 + + +state 305 + assignmentoperator : '=' . (212) + + . reduce 212 + + +state 306 + assignment : lefthandside assignmentoperator . assignmentexpression (193) + assignment : lefthandside assignmentoperator . classinstancecreationexpression (194) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 369 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 370 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 307 + formalparameter : type variabledeclaratorid . (149) + + . reduce 149 + + +state 308 + formalparameterlist : formalparameterlist ',' . formalparameter (136) + + BOOLEAN shift 48 + CHAR shift 49 + INT shift 50 + IDENTIFIER shift 169 + . error + + variabledeclaratorid goto 211 + simplename goto 43 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 212 + formalparameter goto 371 + + +state 309 + methoddeclarator : IDENTIFIER '(' formalparameterlist ')' . (142) + + . reduce 142 + + +state 310 + boundedMethodParameters : boundedMethodParameters ',' boundedMethodParameter . (104) + + . reduce 104 + + +state 311 + methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator (117) + methodheader : '<' boundedMethodParameters '>' VOID . methoddeclarator throws (119) + + IDENTIFIER shift 107 + . error + + methoddeclarator goto 372 + + +state 312 + methodheader : '<' boundedMethodParameters '>' methoddeclarator . (122) + + . reduce 122 + + +state 313 + methodheader : '<' boundedMethodParameters '>' type . methoddeclarator (105) + methodheader : '<' boundedMethodParameters '>' type . methoddeclarator throws (110) + + IDENTIFIER shift 107 + . error + + methoddeclarator goto 373 + + +state 314 + classtypelist : classtypelist ',' . classtype (140) + + IDENTIFIER shift 42 + . error + + simplename goto 43 + classtype goto 374 + classorinterfacetype goto 45 + + +state 315 + classinstancecreationexpression : NEW classtype . '(' ')' (226) + classinstancecreationexpression : NEW classtype . '(' argumentlist ')' (227) + + '(' shift 375 + . error + + +state 316 + type : primitivetype . (126) + type : primitivetype . '[' ']' (127) + castexpression : '(' primitivetype . ')' unaryexpression (259) + + ')' shift 376 + '[' shift 123 + IDENTIFIER reduce 126 + + +state 317 + unaryexpression : '+' unaryexpression . (232) + + . reduce 232 + + +state 318 + unaryexpression : '-' unaryexpression . (233) + + . reduce 233 + + +state 319 + unaryexpressionnotplusminus : '!' unaryexpression . (247) + + . reduce 247 + + +state 320 + multiplicativeexpression : multiplicativeexpression '*' . unaryexpression (276) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 377 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 321 + multiplicativeexpression : multiplicativeexpression '/' . unaryexpression (277) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 378 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 322 + multiplicativeexpression : multiplicativeexpression '%' . unaryexpression (278) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 379 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 323 + additiveexpression : additiveexpression '+' . multiplicativeexpression (273) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 380 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 324 + additiveexpression : additiveexpression '-' . multiplicativeexpression (274) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 381 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 325 + relationalexpression : relationalexpression INSTANCEOF . referencetype (270) + + IDENTIFIER shift 42 + . error + + simplename goto 43 + classorinterfacetype goto 68 + referencetype goto 382 + + +state 326 + relationalexpression : relationalexpression LESSEQUAL . shiftexpression (268) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 383 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 327 + relationalexpression : relationalexpression GREATEREQUAL . shiftexpression (269) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 384 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 328 + relationalexpression : relationalexpression '<' . shiftexpression (266) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 385 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 329 + relationalexpression : relationalexpression '>' . shiftexpression (267) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 386 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 330 + equalityexpression : equalityexpression EQUAL . relationalexpression (263) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 387 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 331 + equalityexpression : equalityexpression NOTEQUAL . relationalexpression (264) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 388 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 332 + andexpression : andexpression '&' . equalityexpression (261) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 389 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 333 + exclusiveorexpression : exclusiveorexpression '^' . andexpression (250) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 390 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 334 + inclusiveorexpression : inclusiveorexpression '|' . exclusiveorexpression (241) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 391 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 335 + conditionalandexpression : conditionalandexpression LOGICALAND . inclusiveorexpression (229) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 392 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 336 + conditionalorexpression : conditionalorexpression LOGICALOR . conditionalandexpression (204) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 393 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 337 + constructordeclarator : simplename '(' formalparameterlist ')' . (90) + + . reduce 90 + + +state 338 + fielddeclarator : type variabledeclarator '=' expression . (79) + fielddeclarator : variabledeclarator '=' expression . (80) + + ABSTRACT reduce 80 + BOOLEAN reduce 80 + CHAR reduce 80 + FINAL reduce 80 + INT reduce 80 + PRIVATE reduce 80 + PROTECTED reduce 80 + PUBLIC reduce 80 + STATIC reduce 80 + VOID reduce 80 + IDENTIFIER reduce 80 + ';' reduce 79 + '<' reduce 80 + '}' reduce 80 + + +state 339 + fielddeclarator : type variabledeclarator '=' . expression (79) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 394 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 340 + methodheader : modifiers VOID methoddeclarator throws . (116) + + . reduce 116 + + +state 341 + methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator (108) + methodheader : modifiers '<' boundedMethodParameters '>' . type methoddeclarator throws (112) + methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator (118) + methodheader : modifiers '<' boundedMethodParameters '>' . VOID methoddeclarator throws (120) + + BOOLEAN shift 48 + CHAR shift 49 + INT shift 50 + VOID shift 395 + IDENTIFIER shift 42 + . error + + simplename goto 43 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 396 + + +state 342 + methodheader : modifiers type methoddeclarator throws . (111) + + . reduce 111 + + +state 343 + fielddeclaration : modifiers type variabledeclarators ';' . (85) + + . reduce 85 + + +state 344 + explicitconstructorinvocation : THIS '(' . ')' ';' (137) + explicitconstructorinvocation : THIS '(' . argumentlist ')' ';' (138) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 397 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 363 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + argumentlist goto 398 + methodinvocation goto 249 + castexpression goto 250 + + +state 345 + constructorbody : '{' blockstatements '}' . (93) + + . reduce 93 + + +state 346 + constructorbody : '{' explicitconstructorinvocation '}' . (92) + + . reduce 92 + + +state 347 + constructorbody : '{' explicitconstructorinvocation blockstatements . '}' (94) + blockstatements : blockstatements . blockstatement (134) + + BOOLEAN shift 48 + CHAR shift 49 + FOR shift 156 + IF shift 157 + INT shift 50 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 169 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '}' shift 399 + '(' shift 174 + . error + + variabledeclarators goto 175 + variabledeclarator goto 176 + variabledeclaratorid goto 66 + simplename goto 177 + qualifiedname goto 178 + name goto 179 + classorinterfacetype goto 68 + integraltype goto 69 + numerictype goto 70 + primitivetype goto 71 + referencetype goto 72 + type goto 180 + block goto 181 + localvariabledeclarationstatement goto 183 + localvariabledeclaration goto 184 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + blockstatement goto 292 + statement goto 199 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 348 + constantdeclaration : modifiers type IDENTIFIER '=' . expression ';' (77) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 400 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 349 + boundedclassidentifierlist : boundedclassidentifierlist '&' referencetype . (102) + + . reduce 102 + + +state 350 + paralist : IDENTIFIER '<' paralist . '>' (33) + paralist : paralist . ',' IDENTIFIER (35) + paralist : paralist . ',' IDENTIFIER '<' paralist '>' (36) + paralist : paralist . ',' wildcardparameter (37) + + ',' shift 276 + '>' shift 401 + . error + + +state 351 + wildcardparameter : '?' EXTENDS referencetype . (39) + + . reduce 39 + + +state 352 + wildcardparameter : '?' SUPER referencetype . (40) + + . reduce 40 + + +state 353 + paralist : paralist ',' IDENTIFIER . (35) + paralist : paralist ',' IDENTIFIER . '<' paralist '>' (36) + + '<' shift 402 + ',' reduce 35 + '>' reduce 35 + + +state 354 + paralist : paralist ',' wildcardparameter . (37) + + . reduce 37 + + +state 355 + forstatement : FOR '(' ';' . expression ';' expression ')' statement (178) + forstatement : FOR '(' ';' . expression ';' ')' statement (180) + forstatement : FOR '(' ';' . ';' expression ')' statement (181) + forstatement : FOR '(' ';' . ';' ')' statement (182) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 403 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 404 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 356 + forstatement : FOR '(' expression . ';' expression ';' expression ')' statement (175) + forstatement : FOR '(' expression . ';' expression ';' ')' statement (176) + forstatement : FOR '(' expression . ';' ';' expression ')' statement (177) + forstatement : FOR '(' expression . ';' ';' ')' statement (179) + + ';' shift 405 + . error + + +state 357 + ifthenstatement : IF '(' expression . ')' statement (172) + ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (173) + + ')' shift 406 + . error + + +state 358 + returnstatement : RETURN expression ';' . (188) + + . reduce 188 + + +state 359 + whilestatement : WHILE '(' expression . ')' statement (174) + + ')' shift 407 + . error + + +state 360 + lambdaexpressionparameter : '(' formalparameterlist ')' . (209) + + . reduce 209 + + +state 361 + qualifiedname : name '.' IDENTIFIER . (12) + + . reduce 12 + + +state 362 + methodinvocation : name '(' ')' . (222) + + . reduce 222 + + +state 363 + argumentlist : expression . (151) + + . reduce 151 + + +state 364 + argumentlist : argumentlist . ',' expression (152) + methodinvocation : name '(' argumentlist . ')' (223) + + ',' shift 408 + ')' shift 409 + . error + + +state 365 + lambdabody : block . (206) + + . reduce 206 + + +state 366 + lambdaexpression : lambdaexpressionparameter lambdaassignmentoperator lambdabody . (210) + + . reduce 210 + + +state 367 + lambdabody : expression . (207) + + . reduce 207 + + +state 368 + methodinvocation : primary '.' IDENTIFIER . '(' ')' (224) + methodinvocation : primary '.' IDENTIFIER . '(' argumentlist ')' (225) + + '(' shift 410 + . error + + +state 369 + assignment : lefthandside assignmentoperator assignmentexpression . (193) + + . reduce 193 + + +state 370 + assignment : lefthandside assignmentoperator classinstancecreationexpression . (194) + + . reduce 194 + + +state 371 + formalparameterlist : formalparameterlist ',' formalparameter . (136) . reduce 136 -state 412 - explicitconstructorinvocation : THIS '(' argumentlist ')' . ';' (137) +state 372 + methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . (117) + methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator . throws (119) - ';' shift 434 + THROWS shift 114 + ';' reduce 117 + '{' reduce 117 + + throws goto 411 + + +state 373 + methodheader : '<' boundedMethodParameters '>' type methoddeclarator . (105) + methodheader : '<' boundedMethodParameters '>' type methoddeclarator . throws (110) + + THROWS shift 114 + ';' reduce 105 + '{' reduce 105 + + throws goto 412 + + +state 374 + classtypelist : classtypelist ',' classtype . (140) + + . reduce 140 + + +state 375 + classinstancecreationexpression : NEW classtype '(' . ')' (226) + classinstancecreationexpression : NEW classtype '(' . argumentlist ')' (227) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 413 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 363 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + argumentlist goto 414 + methodinvocation goto 249 + castexpression goto 250 + + +state 376 + castexpression : '(' primitivetype ')' . unaryexpression (259) + + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 283 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 415 + lambdaexpression goto 190 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + methodinvocation goto 249 + castexpression goto 250 + + +state 377 + multiplicativeexpression : multiplicativeexpression '*' unaryexpression . (276) + + . reduce 276 + + +state 378 + multiplicativeexpression : multiplicativeexpression '/' unaryexpression . (277) + + . reduce 277 + + +state 379 + multiplicativeexpression : multiplicativeexpression '%' unaryexpression . (278) + + . reduce 278 + + +380: shift/reduce conflict (shift 320, reduce 273) on '*' +380: shift/reduce conflict (shift 321, reduce 273) on '/' +380: shift/reduce conflict (shift 322, reduce 273) on '%' +state 380 + additiveexpression : additiveexpression '+' multiplicativeexpression . (273) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (276) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (277) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (278) + + '*' shift 320 + '/' shift 321 + '%' shift 322 + ABSTRACT reduce 273 + BOOLEAN reduce 273 + CHAR reduce 273 + FINAL reduce 273 + INSTANCEOF reduce 273 + INT reduce 273 + PRIVATE reduce 273 + PROTECTED reduce 273 + PUBLIC reduce 273 + STATIC reduce 273 + VOID reduce 273 + IDENTIFIER reduce 273 + EQUAL reduce 273 + LESSEQUAL reduce 273 + GREATEREQUAL reduce 273 + NOTEQUAL reduce 273 + LOGICALOR reduce 273 + LOGICALAND reduce 273 + INCREMENT reduce 273 + DECREMENT reduce 273 + ',' reduce 273 + ';' reduce 273 + '.' reduce 273 + '<' reduce 273 + '>' reduce 273 + '}' reduce 273 + ')' reduce 273 + '&' reduce 273 + '+' reduce 273 + '-' reduce 273 + '|' reduce 273 + '^' reduce 273 + + +381: shift/reduce conflict (shift 320, reduce 274) on '*' +381: shift/reduce conflict (shift 321, reduce 274) on '/' +381: shift/reduce conflict (shift 322, reduce 274) on '%' +state 381 + additiveexpression : additiveexpression '-' multiplicativeexpression . (274) + multiplicativeexpression : multiplicativeexpression . '*' unaryexpression (276) + multiplicativeexpression : multiplicativeexpression . '/' unaryexpression (277) + multiplicativeexpression : multiplicativeexpression . '%' unaryexpression (278) + + '*' shift 320 + '/' shift 321 + '%' shift 322 + ABSTRACT reduce 274 + BOOLEAN reduce 274 + CHAR reduce 274 + FINAL reduce 274 + INSTANCEOF reduce 274 + INT reduce 274 + PRIVATE reduce 274 + PROTECTED reduce 274 + PUBLIC reduce 274 + STATIC reduce 274 + VOID reduce 274 + IDENTIFIER reduce 274 + EQUAL reduce 274 + LESSEQUAL reduce 274 + GREATEREQUAL reduce 274 + NOTEQUAL reduce 274 + LOGICALOR reduce 274 + LOGICALAND reduce 274 + INCREMENT reduce 274 + DECREMENT reduce 274 + ',' reduce 274 + ';' reduce 274 + '.' reduce 274 + '<' reduce 274 + '>' reduce 274 + '}' reduce 274 + ')' reduce 274 + '&' reduce 274 + '+' reduce 274 + '-' reduce 274 + '|' reduce 274 + '^' reduce 274 + + +state 382 + relationalexpression : relationalexpression INSTANCEOF referencetype . (270) + + . reduce 270 + + +state 383 + relationalexpression : relationalexpression LESSEQUAL shiftexpression . (268) + + . reduce 268 + + +state 384 + relationalexpression : relationalexpression GREATEREQUAL shiftexpression . (269) + + . reduce 269 + + +state 385 + relationalexpression : relationalexpression '<' shiftexpression . (266) + + . reduce 266 + + +state 386 + relationalexpression : relationalexpression '>' shiftexpression . (267) + + . reduce 267 + + +387: shift/reduce conflict (shift 325, reduce 263) on INSTANCEOF +387: shift/reduce conflict (shift 326, reduce 263) on LESSEQUAL +387: shift/reduce conflict (shift 327, reduce 263) on GREATEREQUAL +387: shift/reduce conflict (shift 328, reduce 263) on '<' +387: shift/reduce conflict (shift 329, reduce 263) on '>' +state 387 + equalityexpression : equalityexpression EQUAL relationalexpression . (263) + relationalexpression : relationalexpression . '<' shiftexpression (266) + relationalexpression : relationalexpression . '>' shiftexpression (267) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (268) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (269) + relationalexpression : relationalexpression . INSTANCEOF referencetype (270) + + INSTANCEOF shift 325 + LESSEQUAL shift 326 + GREATEREQUAL shift 327 + '<' shift 328 + '>' shift 329 + ABSTRACT reduce 263 + BOOLEAN reduce 263 + CHAR reduce 263 + FINAL reduce 263 + INT reduce 263 + PRIVATE reduce 263 + PROTECTED reduce 263 + PUBLIC reduce 263 + STATIC reduce 263 + VOID reduce 263 + IDENTIFIER reduce 263 + EQUAL reduce 263 + NOTEQUAL reduce 263 + LOGICALOR reduce 263 + LOGICALAND reduce 263 + INCREMENT reduce 263 + DECREMENT reduce 263 + ',' reduce 263 + ';' reduce 263 + '.' reduce 263 + '*' reduce 263 + '}' reduce 263 + ')' reduce 263 + '&' reduce 263 + '+' reduce 263 + '-' reduce 263 + '|' reduce 263 + '^' reduce 263 + '/' reduce 263 + '%' reduce 263 + + +388: shift/reduce conflict (shift 325, reduce 264) on INSTANCEOF +388: shift/reduce conflict (shift 326, reduce 264) on LESSEQUAL +388: shift/reduce conflict (shift 327, reduce 264) on GREATEREQUAL +388: shift/reduce conflict (shift 328, reduce 264) on '<' +388: shift/reduce conflict (shift 329, reduce 264) on '>' +state 388 + equalityexpression : equalityexpression NOTEQUAL relationalexpression . (264) + relationalexpression : relationalexpression . '<' shiftexpression (266) + relationalexpression : relationalexpression . '>' shiftexpression (267) + relationalexpression : relationalexpression . LESSEQUAL shiftexpression (268) + relationalexpression : relationalexpression . GREATEREQUAL shiftexpression (269) + relationalexpression : relationalexpression . INSTANCEOF referencetype (270) + + INSTANCEOF shift 325 + LESSEQUAL shift 326 + GREATEREQUAL shift 327 + '<' shift 328 + '>' shift 329 + ABSTRACT reduce 264 + BOOLEAN reduce 264 + CHAR reduce 264 + FINAL reduce 264 + INT reduce 264 + PRIVATE reduce 264 + PROTECTED reduce 264 + PUBLIC reduce 264 + STATIC reduce 264 + VOID reduce 264 + IDENTIFIER reduce 264 + EQUAL reduce 264 + NOTEQUAL reduce 264 + LOGICALOR reduce 264 + LOGICALAND reduce 264 + INCREMENT reduce 264 + DECREMENT reduce 264 + ',' reduce 264 + ';' reduce 264 + '.' reduce 264 + '*' reduce 264 + '}' reduce 264 + ')' reduce 264 + '&' reduce 264 + '+' reduce 264 + '-' reduce 264 + '|' reduce 264 + '^' reduce 264 + '/' reduce 264 + '%' reduce 264 + + +389: shift/reduce conflict (shift 330, reduce 261) on EQUAL +389: shift/reduce conflict (shift 331, reduce 261) on NOTEQUAL +state 389 + andexpression : andexpression '&' equalityexpression . (261) + equalityexpression : equalityexpression . EQUAL relationalexpression (263) + equalityexpression : equalityexpression . NOTEQUAL relationalexpression (264) + + EQUAL shift 330 + NOTEQUAL shift 331 + ABSTRACT reduce 261 + BOOLEAN reduce 261 + CHAR reduce 261 + FINAL reduce 261 + INSTANCEOF reduce 261 + INT reduce 261 + PRIVATE reduce 261 + PROTECTED reduce 261 + PUBLIC reduce 261 + STATIC reduce 261 + VOID reduce 261 + IDENTIFIER reduce 261 + LESSEQUAL reduce 261 + GREATEREQUAL reduce 261 + LOGICALOR reduce 261 + LOGICALAND reduce 261 + INCREMENT reduce 261 + DECREMENT reduce 261 + ',' reduce 261 + ';' reduce 261 + '.' reduce 261 + '*' reduce 261 + '<' reduce 261 + '>' reduce 261 + '}' reduce 261 + ')' reduce 261 + '&' reduce 261 + '+' reduce 261 + '-' reduce 261 + '|' reduce 261 + '^' reduce 261 + '/' reduce 261 + '%' reduce 261 + + +390: shift/reduce conflict (shift 332, reduce 250) on '&' +state 390 + exclusiveorexpression : exclusiveorexpression '^' andexpression . (250) + andexpression : andexpression . '&' equalityexpression (261) + + '&' shift 332 + ABSTRACT reduce 250 + BOOLEAN reduce 250 + CHAR reduce 250 + FINAL reduce 250 + INSTANCEOF reduce 250 + INT reduce 250 + PRIVATE reduce 250 + PROTECTED reduce 250 + PUBLIC reduce 250 + STATIC reduce 250 + VOID reduce 250 + IDENTIFIER reduce 250 + EQUAL reduce 250 + LESSEQUAL reduce 250 + GREATEREQUAL reduce 250 + NOTEQUAL reduce 250 + LOGICALOR reduce 250 + LOGICALAND reduce 250 + INCREMENT reduce 250 + DECREMENT reduce 250 + ',' reduce 250 + ';' reduce 250 + '.' reduce 250 + '*' reduce 250 + '<' reduce 250 + '>' reduce 250 + '}' reduce 250 + ')' reduce 250 + '+' reduce 250 + '-' reduce 250 + '|' reduce 250 + '^' reduce 250 + '/' reduce 250 + '%' reduce 250 + + +391: shift/reduce conflict (shift 333, reduce 241) on '^' +state 391 + inclusiveorexpression : inclusiveorexpression '|' exclusiveorexpression . (241) + exclusiveorexpression : exclusiveorexpression . '^' andexpression (250) + + '^' shift 333 + ABSTRACT reduce 241 + BOOLEAN reduce 241 + CHAR reduce 241 + FINAL reduce 241 + INSTANCEOF reduce 241 + INT reduce 241 + PRIVATE reduce 241 + PROTECTED reduce 241 + PUBLIC reduce 241 + STATIC reduce 241 + VOID reduce 241 + IDENTIFIER 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 + '%' reduce 241 + + +392: shift/reduce conflict (shift 334, reduce 229) on '|' +state 392 + conditionalandexpression : conditionalandexpression LOGICALAND inclusiveorexpression . (229) + inclusiveorexpression : inclusiveorexpression . '|' exclusiveorexpression (241) + + '|' shift 334 + ABSTRACT reduce 229 + BOOLEAN reduce 229 + CHAR reduce 229 + FINAL reduce 229 + INSTANCEOF reduce 229 + INT reduce 229 + PRIVATE reduce 229 + PROTECTED reduce 229 + PUBLIC reduce 229 + STATIC reduce 229 + VOID reduce 229 + IDENTIFIER reduce 229 + EQUAL reduce 229 + LESSEQUAL reduce 229 + GREATEREQUAL reduce 229 + NOTEQUAL reduce 229 + LOGICALOR reduce 229 + LOGICALAND reduce 229 + INCREMENT reduce 229 + DECREMENT reduce 229 + ',' reduce 229 + ';' reduce 229 + '.' reduce 229 + '*' reduce 229 + '<' reduce 229 + '>' reduce 229 + '}' reduce 229 + ')' reduce 229 + '&' reduce 229 + '+' reduce 229 + '-' reduce 229 + '^' reduce 229 + '/' reduce 229 + '%' reduce 229 + + +393: shift/reduce conflict (shift 335, reduce 204) on LOGICALAND +state 393 + conditionalorexpression : conditionalorexpression LOGICALOR conditionalandexpression . (204) + conditionalandexpression : conditionalandexpression . LOGICALAND inclusiveorexpression (229) + + LOGICALAND shift 335 + ABSTRACT reduce 204 + BOOLEAN reduce 204 + CHAR reduce 204 + FINAL reduce 204 + INSTANCEOF reduce 204 + INT reduce 204 + PRIVATE reduce 204 + PROTECTED reduce 204 + PUBLIC reduce 204 + STATIC reduce 204 + VOID reduce 204 + IDENTIFIER reduce 204 + EQUAL reduce 204 + LESSEQUAL reduce 204 + GREATEREQUAL reduce 204 + NOTEQUAL reduce 204 + LOGICALOR reduce 204 + INCREMENT reduce 204 + DECREMENT reduce 204 + ',' reduce 204 + ';' reduce 204 + '.' reduce 204 + '*' reduce 204 + '<' reduce 204 + '>' reduce 204 + '}' reduce 204 + ')' reduce 204 + '&' reduce 204 + '+' reduce 204 + '-' reduce 204 + '|' reduce 204 + '^' reduce 204 + '/' reduce 204 + '%' reduce 204 + + +state 394 + fielddeclarator : type variabledeclarator '=' expression . (79) + + . reduce 79 + + +state 395 + methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator (118) + methodheader : modifiers '<' boundedMethodParameters '>' VOID . methoddeclarator throws (120) + + IDENTIFIER shift 107 + . error + + methoddeclarator goto 416 + + +state 396 + methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator (108) + methodheader : modifiers '<' boundedMethodParameters '>' type . methoddeclarator throws (112) + + IDENTIFIER shift 107 + . error + + methoddeclarator goto 417 + + +state 397 + explicitconstructorinvocation : THIS '(' ')' . ';' (137) + + ';' shift 418 . error +state 398 + explicitconstructorinvocation : THIS '(' argumentlist . ')' ';' (138) + argumentlist : argumentlist . ',' expression (152) + + ',' shift 408 + ')' shift 419 + . error + + +state 399 + constructorbody : '{' explicitconstructorinvocation blockstatements '}' . (94) + + . reduce 94 + + +state 400 + constantdeclaration : modifiers type IDENTIFIER '=' expression . ';' (77) + + ';' shift 420 + . error + + +state 401 + paralist : IDENTIFIER '<' paralist '>' . (33) + + . reduce 33 + + +state 402 + paralist : paralist ',' IDENTIFIER '<' . paralist '>' (36) + + IDENTIFIER shift 152 + '?' shift 153 + . error + + paralist goto 421 + wildcardparameter goto 155 + + +state 403 + forstatement : FOR '(' ';' ';' . expression ')' statement (181) + forstatement : FOR '(' ';' ';' . ')' statement (182) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 422 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 423 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 404 + forstatement : FOR '(' ';' expression . ';' expression ')' statement (178) + forstatement : FOR '(' ';' expression . ';' ')' statement (180) + + ';' shift 424 + . error + + +state 405 + forstatement : FOR '(' expression ';' . expression ';' expression ')' statement (175) + forstatement : FOR '(' expression ';' . expression ';' ')' statement (176) + forstatement : FOR '(' expression ';' . ';' expression ')' statement (177) + forstatement : FOR '(' expression ';' . ';' ')' statement (179) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 425 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 426 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 406 + ifthenstatement : IF '(' expression ')' . statement (172) + ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (173) + + FOR shift 156 + IF shift 427 + RETURN shift 158 + THIS shift 159 + WHILE shift 428 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 429 + statement goto 430 + statementnoshortif goto 431 + whilestatement goto 200 + forstatement goto 201 + whilestatementnoshortif goto 432 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + ifthenelsestatementnoshortif goto 433 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 407 + whilestatement : WHILE '(' expression ')' . statement (174) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 434 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 408 + argumentlist : argumentlist ',' . expression (152) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 435 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 409 + methodinvocation : name '(' argumentlist ')' . (223) + + . reduce 223 + + +state 410 + methodinvocation : primary '.' IDENTIFIER '(' . ')' (224) + methodinvocation : primary '.' IDENTIFIER '(' . argumentlist ')' (225) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 436 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 363 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + argumentlist goto 437 + methodinvocation goto 249 + castexpression goto 250 + + +state 411 + methodheader : '<' boundedMethodParameters '>' VOID methoddeclarator throws . (119) + + . reduce 119 + + +state 412 + methodheader : '<' boundedMethodParameters '>' type methoddeclarator throws . (110) + + . reduce 110 + + state 413 + classinstancecreationexpression : NEW classtype '(' ')' . (226) + + . reduce 226 + + +state 414 + argumentlist : argumentlist . ',' expression (152) + classinstancecreationexpression : NEW classtype '(' argumentlist . ')' (227) + + ',' shift 408 + ')' shift 438 + . error + + +state 415 + castexpression : '(' primitivetype ')' unaryexpression . (259) + + . reduce 259 + + +state 416 + methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . (118) + methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator . throws (120) + + THROWS shift 114 + ';' reduce 118 + '{' reduce 118 + + throws goto 439 + + +state 417 + methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . (108) + methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator . throws (112) + + THROWS shift 114 + ';' reduce 108 + '{' reduce 108 + + throws goto 440 + + +state 418 + explicitconstructorinvocation : THIS '(' ')' ';' . (137) + + . reduce 137 + + +state 419 + explicitconstructorinvocation : THIS '(' argumentlist ')' . ';' (138) + + ';' shift 441 + . error + + +state 420 constantdeclaration : modifiers type IDENTIFIER '=' expression ';' . (77) . reduce 77 -state 414 +state 421 paralist : paralist . ',' IDENTIFIER (35) paralist : paralist . ',' IDENTIFIER '<' paralist '>' (36) paralist : paralist ',' IDENTIFIER '<' paralist . '>' (36) paralist : paralist . ',' wildcardparameter (37) - ',' shift 272 - '>' shift 435 - . error - - -state 415 - forstatement : FOR '(' ';' ';' ')' . statement (181) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 436 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 416 - forstatement : FOR '(' ';' ';' expression . ')' statement (180) - - ')' shift 437 - . error - - -state 417 - forstatement : FOR '(' ';' expression ';' . expression ')' statement (177) - forstatement : FOR '(' ';' expression ';' . ')' statement (179) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 438 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 439 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 418 - forstatement : FOR '(' expression ';' ';' . expression ')' statement (176) - forstatement : FOR '(' expression ';' ';' . ')' statement (178) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 440 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 441 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 419 - forstatement : FOR '(' expression ';' expression . ';' expression ')' statement (174) - forstatement : FOR '(' expression ';' expression . ';' ')' statement (175) - - ';' shift 442 - . error - - -state 420 - ifthenstatement : IF . '(' expression ')' statement (171) - ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (172) - ifthenelsestatementnoshortif : IF . '(' expression ')' statementnoshortif ELSE statementnoshortif (200) - - '(' shift 443 - . error - - -state 421 - whilestatement : WHILE . '(' expression ')' statement (173) - whilestatementnoshortif : WHILE . '(' expression ')' statementnoshortif (201) - - '(' shift 444 + ',' shift 276 + '>' shift 442 . error state 422 - statement : statementwithouttrailingsubstatement . (156) - statementnoshortif : statementwithouttrailingsubstatement . (188) + forstatement : FOR '(' ';' ';' ')' . statement (182) - BOOLEAN reduce 156 - CHAR reduce 156 - ELSE reduce 188 - FOR reduce 156 - IF reduce 156 - INT reduce 156 - RETURN reduce 156 - THIS reduce 156 - WHILE reduce 156 - INTLITERAL reduce 156 - LONGLITERAL reduce 156 - DOUBLELITERAL reduce 156 - FLOATLITERAL reduce 156 - BOOLLITERAL reduce 156 - JNULL reduce 156 - CHARLITERAL reduce 156 - STRINGLITERAL reduce 156 - IDENTIFIER reduce 156 - INCREMENT reduce 156 - DECREMENT reduce 156 - ';' reduce 156 - '{' reduce 156 - '}' reduce 156 - '(' reduce 156 + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 443 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 state 423 - ifthenstatement : IF '(' expression ')' statement . (171) + forstatement : FOR '(' ';' ';' expression . ')' statement (181) - . reduce 171 - - -state 424 - ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (172) - - ELSE shift 445 + ')' shift 444 . error +state 424 + forstatement : FOR '(' ';' expression ';' . expression ')' statement (178) + forstatement : FOR '(' ';' expression ';' . ')' statement (180) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 445 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 446 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + state 425 - statementnoshortif : whilestatementnoshortif . (190) + forstatement : FOR '(' expression ';' ';' . expression ')' statement (177) + forstatement : FOR '(' expression ';' ';' . ')' statement (179) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 447 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 448 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 426 + forstatement : FOR '(' expression ';' expression . ';' expression ')' statement (175) + forstatement : FOR '(' expression ';' expression . ';' ')' statement (176) + + ';' shift 449 + . error + + +state 427 + ifthenstatement : IF . '(' expression ')' statement (172) + ifthenelsestatement : IF . '(' expression ')' statementnoshortif ELSE statement (173) + ifthenelsestatementnoshortif : IF . '(' expression ')' statementnoshortif ELSE statementnoshortif (201) + + '(' shift 450 + . error + + +state 428 + whilestatement : WHILE . '(' expression ')' statement (174) + whilestatementnoshortif : WHILE . '(' expression ')' statementnoshortif (202) + + '(' shift 451 + . error + + +state 429 + statement : statementwithouttrailingsubstatement . (157) + statementnoshortif : statementwithouttrailingsubstatement . (189) + + BOOLEAN reduce 157 + CHAR reduce 157 + ELSE reduce 189 + FOR reduce 157 + IF reduce 157 + INT reduce 157 + RETURN reduce 157 + THIS reduce 157 + WHILE reduce 157 + INTLITERAL reduce 157 + LONGLITERAL reduce 157 + DOUBLELITERAL reduce 157 + FLOATLITERAL reduce 157 + BOOLLITERAL reduce 157 + JNULL reduce 157 + CHARLITERAL reduce 157 + STRINGLITERAL reduce 157 + IDENTIFIER reduce 157 + INCREMENT reduce 157 + DECREMENT reduce 157 + ';' reduce 157 + '{' reduce 157 + '}' reduce 157 + '(' reduce 157 + + +state 430 + ifthenstatement : IF '(' expression ')' statement . (172) + + . reduce 172 + + +state 431 + ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (173) + + ELSE shift 452 + . error + + +state 432 + statementnoshortif : whilestatementnoshortif . (191) + + . reduce 191 + + +state 433 + statementnoshortif : ifthenelsestatementnoshortif . (190) . reduce 190 -state 426 - statementnoshortif : ifthenelsestatementnoshortif . (189) - - . reduce 189 - - -state 427 - whilestatement : WHILE '(' expression ')' statement . (173) - - . reduce 173 - - -state 428 - argumentlist : argumentlist ',' expression . (151) - - . reduce 151 - - -state 429 - methodinvocation : primary '.' IDENTIFIER '(' ')' . (223) - - . reduce 223 - - -state 430 - argumentlist : argumentlist . ',' expression (151) - methodinvocation : primary '.' IDENTIFIER '(' argumentlist . ')' (224) - - ',' shift 401 - ')' shift 446 - . error - - -state 431 - classinstancecreationexpression : NEW classtype '(' argumentlist ')' . (226) - - . reduce 226 - - -state 432 - methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws . (119) - - . reduce 119 - - -state 433 - methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator throws . (111) - - . reduce 111 - - state 434 - explicitconstructorinvocation : THIS '(' argumentlist ')' ';' . (137) + whilestatement : WHILE '(' expression ')' statement . (174) - . reduce 137 + . reduce 174 state 435 + argumentlist : argumentlist ',' expression . (152) + + . reduce 152 + + +state 436 + methodinvocation : primary '.' IDENTIFIER '(' ')' . (224) + + . reduce 224 + + +state 437 + argumentlist : argumentlist . ',' expression (152) + methodinvocation : primary '.' IDENTIFIER '(' argumentlist . ')' (225) + + ',' shift 408 + ')' shift 453 + . error + + +state 438 + classinstancecreationexpression : NEW classtype '(' argumentlist ')' . (227) + + . reduce 227 + + +state 439 + methodheader : modifiers '<' boundedMethodParameters '>' VOID methoddeclarator throws . (120) + + . reduce 120 + + +state 440 + methodheader : modifiers '<' boundedMethodParameters '>' type methoddeclarator throws . (112) + + . reduce 112 + + +state 441 + explicitconstructorinvocation : THIS '(' argumentlist ')' ';' . (138) + + . reduce 138 + + +state 442 paralist : paralist ',' IDENTIFIER '<' paralist '>' . (36) . reduce 36 -state 436 - forstatement : FOR '(' ';' ';' ')' statement . (181) +state 443 + forstatement : FOR '(' ';' ';' ')' statement . (182) + + . reduce 182 + + +state 444 + forstatement : FOR '(' ';' ';' expression ')' . statement (181) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 454 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 445 + forstatement : FOR '(' ';' expression ';' ')' . statement (180) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 455 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 446 + forstatement : FOR '(' ';' expression ';' expression . ')' statement (178) + + ')' shift 456 + . error + + +state 447 + forstatement : FOR '(' expression ';' ';' ')' . statement (179) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 457 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 448 + forstatement : FOR '(' expression ';' ';' expression . ')' statement (177) + + ')' shift 458 + . error + + +state 449 + forstatement : FOR '(' expression ';' expression ';' . expression ')' statement (175) + forstatement : FOR '(' expression ';' expression ';' . ')' statement (176) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + ')' shift 459 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 460 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 450 + ifthenstatement : IF '(' . expression ')' statement (172) + ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (173) + ifthenelsestatementnoshortif : IF '(' . expression ')' statementnoshortif ELSE statementnoshortif (201) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 461 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 451 + whilestatement : WHILE '(' . expression ')' statement (174) + whilestatementnoshortif : WHILE '(' . expression ')' statementnoshortif (202) + + NEW shift 221 + THIS shift 159 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + '(' shift 222 + '+' shift 223 + '-' shift 224 + '!' shift 225 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 227 + unaryexpressionnotplusminus goto 228 + unaryexpression goto 229 + multiplicativeexpression goto 230 + additiveexpression goto 231 + shiftexpression goto 232 + relationalexpression goto 233 + equalityexpression goto 234 + andexpression goto 235 + exclusiveorexpression goto 236 + inclusiveorexpression goto 237 + conditionalandexpression goto 238 + conditionalorexpression goto 239 + conditionalexpression goto 240 + assignmentexpression goto 241 + lambdaexpression goto 190 + expression goto 462 + preincrementexpression goto 243 + predecrementexpression goto 244 + postincrementexpression goto 245 + postdecrementexpression goto 246 + classinstancecreationexpression goto 247 + assignment goto 248 + lefthandside goto 207 + methodinvocation goto 249 + castexpression goto 250 + + +state 452 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (173) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 463 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 453 + methodinvocation : primary '.' IDENTIFIER '(' argumentlist ')' . (225) + + . reduce 225 + + +state 454 + forstatement : FOR '(' ';' ';' expression ')' statement . (181) . reduce 181 -state 437 - forstatement : FOR '(' ';' ';' expression ')' . statement (180) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 447 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 438 - forstatement : FOR '(' ';' expression ';' ')' . statement (179) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 448 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 439 - forstatement : FOR '(' ';' expression ';' expression . ')' statement (177) - - ')' shift 449 - . error - - -state 440 - forstatement : FOR '(' expression ';' ';' ')' . statement (178) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 450 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 441 - forstatement : FOR '(' expression ';' ';' expression . ')' statement (176) - - ')' shift 451 - . error - - -state 442 - forstatement : FOR '(' expression ';' expression ';' . expression ')' statement (174) - forstatement : FOR '(' expression ';' expression ';' . ')' statement (175) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - ')' shift 452 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 453 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 443 - ifthenstatement : IF '(' . expression ')' statement (171) - ifthenelsestatement : IF '(' . expression ')' statementnoshortif ELSE statement (172) - ifthenelsestatementnoshortif : IF '(' . expression ')' statementnoshortif ELSE statementnoshortif (200) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 454 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 444 - whilestatement : WHILE '(' . expression ')' statement (173) - whilestatementnoshortif : WHILE '(' . expression ')' statementnoshortif (201) - - NEW shift 220 - THIS shift 158 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - '(' shift 221 - '+' shift 222 - '-' shift 223 - '!' shift 224 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 226 - unaryexpressionnotplusminus goto 227 - unaryexpression goto 228 - multiplicativeexpression goto 229 - additiveexpression goto 230 - shiftexpression goto 231 - relationalexpression goto 232 - equalityexpression goto 233 - andexpression goto 234 - exclusiveorexpression goto 235 - inclusiveorexpression goto 236 - conditionalandexpression goto 237 - conditionalorexpression goto 238 - conditionalexpression goto 239 - assignmentexpression goto 240 - lambdaexpression goto 189 - expression goto 455 - preincrementexpression goto 242 - predecrementexpression goto 243 - postincrementexpression goto 244 - postdecrementexpression goto 245 - classinstancecreationexpression goto 246 - assignment goto 247 - lefthandside goto 206 - methodinvocation goto 248 - castexpression goto 249 - - -state 445 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (172) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 456 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 446 - methodinvocation : primary '.' IDENTIFIER '(' argumentlist ')' . (224) - - . reduce 224 - - -state 447 - forstatement : FOR '(' ';' ';' expression ')' statement . (180) +state 455 + forstatement : FOR '(' ';' expression ';' ')' statement . (180) . reduce 180 -state 448 - forstatement : FOR '(' ';' expression ';' ')' statement . (179) +state 456 + forstatement : FOR '(' ';' expression ';' expression ')' . statement (178) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 464 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 457 + forstatement : FOR '(' expression ';' ';' ')' statement . (179) . reduce 179 -state 449 - forstatement : FOR '(' ';' expression ';' expression ')' . statement (177) +state 458 + forstatement : FOR '(' expression ';' ';' expression ')' . statement (177) - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 '{' shift 105 - '(' shift 173 + '(' shift 174 . error - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 457 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 465 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 -state 450 - forstatement : FOR '(' expression ';' ';' ')' statement . (178) +state 459 + forstatement : FOR '(' expression ';' expression ';' ')' . statement (176) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 466 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 460 + forstatement : FOR '(' expression ';' expression ';' expression . ')' statement (175) + + ')' shift 467 + . error + + +state 461 + ifthenstatement : IF '(' expression . ')' statement (172) + ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (173) + ifthenelsestatementnoshortif : IF '(' expression . ')' statementnoshortif ELSE statementnoshortif (201) + + ')' shift 468 + . error + + +state 462 + whilestatement : WHILE '(' expression . ')' statement (174) + whilestatementnoshortif : WHILE '(' expression . ')' statementnoshortif (202) + + ')' shift 469 + . error + + +state 463 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement . (173) + + . reduce 173 + + +state 464 + forstatement : FOR '(' ';' expression ';' expression ')' statement . (178) . reduce 178 -state 451 - forstatement : FOR '(' expression ';' ';' expression ')' . statement (176) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 458 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 452 - forstatement : FOR '(' expression ';' expression ';' ')' . statement (175) - - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 - statement goto 459 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 453 - forstatement : FOR '(' expression ';' expression ';' expression . ')' statement (174) - - ')' shift 460 - . error - - -state 454 - ifthenstatement : IF '(' expression . ')' statement (171) - ifthenelsestatement : IF '(' expression . ')' statementnoshortif ELSE statement (172) - ifthenelsestatementnoshortif : IF '(' expression . ')' statementnoshortif ELSE statementnoshortif (200) - - ')' shift 461 - . error - - -state 455 - whilestatement : WHILE '(' expression . ')' statement (173) - whilestatementnoshortif : WHILE '(' expression . ')' statementnoshortif (201) - - ')' shift 462 - . error - - -state 456 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE statement . (172) - - . reduce 172 - - -state 457 - forstatement : FOR '(' ';' expression ';' expression ')' statement . (177) +state 465 + forstatement : FOR '(' expression ';' ';' expression ')' statement . (177) . reduce 177 -state 458 - forstatement : FOR '(' expression ';' ';' expression ')' statement . (176) +state 466 + forstatement : FOR '(' expression ';' expression ';' ')' statement . (176) . reduce 176 -state 459 - forstatement : FOR '(' expression ';' expression ';' ')' statement . (175) +state 467 + forstatement : FOR '(' expression ';' expression ';' expression ')' . statement (175) + + FOR shift 156 + IF shift 157 + RETURN shift 158 + THIS shift 159 + WHILE shift 160 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 197 + statement goto 470 + whilestatement goto 200 + forstatement goto 201 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 468 + ifthenstatement : IF '(' expression ')' . statement (172) + ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (173) + ifthenelsestatementnoshortif : IF '(' expression ')' . statementnoshortif ELSE statementnoshortif (201) + + FOR shift 156 + IF shift 427 + RETURN shift 158 + THIS shift 159 + WHILE shift 428 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 429 + statement goto 430 + statementnoshortif goto 471 + whilestatement goto 200 + forstatement goto 201 + whilestatementnoshortif goto 432 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + ifthenelsestatementnoshortif goto 433 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 469 + whilestatement : WHILE '(' expression ')' . statement (174) + whilestatementnoshortif : WHILE '(' expression ')' . statementnoshortif (202) + + FOR shift 156 + IF shift 427 + RETURN shift 158 + THIS shift 159 + WHILE shift 428 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 429 + statement goto 434 + statementnoshortif goto 472 + whilestatement goto 200 + forstatement goto 201 + whilestatementnoshortif goto 432 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + ifthenelsestatementnoshortif goto 433 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 + + +state 470 + forstatement : FOR '(' expression ';' expression ';' expression ')' statement . (175) . reduce 175 -state 460 - forstatement : FOR '(' expression ';' expression ';' expression ')' . statement (174) +state 471 + ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (173) + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif . ELSE statementnoshortif (201) - FOR shift 155 - IF shift 156 - RETURN shift 157 - THIS shift 158 - WHILE shift 159 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 + ELSE shift 473 . error - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 196 + +state 472 + whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif . (202) + + . reduce 202 + + +state 473 + ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (173) + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE . statementnoshortif (201) + + FOR shift 156 + IF shift 427 + RETURN shift 158 + THIS shift 159 + WHILE shift 428 + INTLITERAL shift 161 + LONGLITERAL shift 162 + DOUBLELITERAL shift 163 + FLOATLITERAL shift 164 + BOOLLITERAL shift 165 + JNULL shift 166 + CHARLITERAL shift 167 + STRINGLITERAL shift 168 + IDENTIFIER shift 42 + INCREMENT shift 170 + DECREMENT shift 171 + ';' shift 172 + '{' shift 105 + '(' shift 174 + . error + + simplename goto 226 + qualifiedname goto 178 + name goto 179 + block goto 181 + lambdaexpressionparameter goto 185 + literal goto 186 + primarynonewarray goto 187 + primary goto 188 + postfixexpression goto 189 + lambdaexpression goto 190 + statementexpression goto 191 + preincrementexpression goto 192 + predecrementexpression goto 193 + postincrementexpression goto 194 + postdecrementexpression goto 195 + expressionstatement goto 196 + statementwithouttrailingsubstatement goto 429 statement goto 463 - whilestatement goto 199 - forstatement goto 200 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 + statementnoshortif goto 474 + whilestatement goto 200 + forstatement goto 201 + whilestatementnoshortif goto 432 + ifthenstatement goto 202 + ifthenelsestatement goto 203 + ifthenelsestatementnoshortif goto 433 + emptystatement goto 204 + returnstatement goto 205 + assignment goto 206 + lefthandside goto 207 + methodinvocation goto 208 -state 461 - ifthenstatement : IF '(' expression ')' . statement (171) - ifthenelsestatement : IF '(' expression ')' . statementnoshortif ELSE statement (172) - ifthenelsestatementnoshortif : IF '(' expression ')' . statementnoshortif ELSE statementnoshortif (200) - - FOR shift 155 - IF shift 420 - RETURN shift 157 - THIS shift 158 - WHILE shift 421 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 422 - statement goto 423 - statementnoshortif goto 464 - whilestatement goto 199 - forstatement goto 200 - whilestatementnoshortif goto 425 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - ifthenelsestatementnoshortif goto 426 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 462 - whilestatement : WHILE '(' expression ')' . statement (173) - whilestatementnoshortif : WHILE '(' expression ')' . statementnoshortif (201) - - FOR shift 155 - IF shift 420 - RETURN shift 157 - THIS shift 158 - WHILE shift 421 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 422 - statement goto 427 - statementnoshortif goto 465 - whilestatement goto 199 - forstatement goto 200 - whilestatementnoshortif goto 425 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - ifthenelsestatementnoshortif goto 426 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 463 - forstatement : FOR '(' expression ';' expression ';' expression ')' statement . (174) - - . reduce 174 - - -state 464 - ifthenelsestatement : IF '(' expression ')' statementnoshortif . ELSE statement (172) - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif . ELSE statementnoshortif (200) - - ELSE shift 466 - . error - - -state 465 - whilestatementnoshortif : WHILE '(' expression ')' statementnoshortif . (201) +state 474 + ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif . (201) . reduce 201 -state 466 - ifthenelsestatement : IF '(' expression ')' statementnoshortif ELSE . statement (172) - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE . statementnoshortif (200) - - FOR shift 155 - IF shift 420 - RETURN shift 157 - THIS shift 158 - WHILE shift 421 - INTLITERAL shift 160 - LONGLITERAL shift 161 - DOUBLELITERAL shift 162 - FLOATLITERAL shift 163 - BOOLLITERAL shift 164 - JNULL shift 165 - CHARLITERAL shift 166 - STRINGLITERAL shift 167 - IDENTIFIER shift 42 - INCREMENT shift 169 - DECREMENT shift 170 - ';' shift 171 - '{' shift 105 - '(' shift 173 - . error - - simplename goto 225 - qualifiedname goto 177 - name goto 178 - block goto 180 - lambdaexpressionparameter goto 184 - literal goto 185 - primarynonewarray goto 186 - primary goto 187 - postfixexpression goto 188 - lambdaexpression goto 189 - statementexpression goto 190 - preincrementexpression goto 191 - predecrementexpression goto 192 - postincrementexpression goto 193 - postdecrementexpression goto 194 - expressionstatement goto 195 - statementwithouttrailingsubstatement goto 422 - statement goto 456 - statementnoshortif goto 467 - whilestatement goto 199 - forstatement goto 200 - whilestatementnoshortif goto 425 - ifthenstatement goto 201 - ifthenelsestatement goto 202 - ifthenelsestatementnoshortif goto 426 - emptystatement goto 203 - returnstatement goto 204 - assignment goto 205 - lefthandside goto 206 - methodinvocation goto 207 - - -state 467 - ifthenelsestatementnoshortif : IF '(' expression ')' statementnoshortif ELSE statementnoshortif . (200) - - . reduce 200 - - Rules never reduced: packagedeclaration : PACKAGE name ';' (2) importdeclarations : importdeclaration (3) @@ -8087,35 +8278,35 @@ Rules never reduced: importdeclaration : IMPORT importqualifiedname ';' (5) importqualifiedname : name '.' IDENTIFIER (13) importqualifiedname : name '.' '*' (14) - variableinitializer : expression (154) + variableinitializer : expression (155) State 43 contains 1 shift/reduce conflict. State 53 contains 1 shift/reduce conflict. State 84 contains 1 shift/reduce conflict. -State 178 contains 1 shift/reduce conflict. -State 187 contains 1 shift/reduce conflict. -State 226 contains 2 shift/reduce conflicts. -State 229 contains 3 shift/reduce conflicts. -State 230 contains 2 shift/reduce conflicts. -State 232 contains 5 shift/reduce conflicts. -State 233 contains 2 shift/reduce conflicts. -State 234 contains 1 shift/reduce conflict. +State 179 contains 1 shift/reduce conflict. +State 188 contains 1 shift/reduce conflict. +State 227 contains 2 shift/reduce conflicts. +State 230 contains 3 shift/reduce conflicts. +State 231 contains 2 shift/reduce conflicts. +State 233 contains 5 shift/reduce conflicts. +State 234 contains 2 shift/reduce conflicts. State 235 contains 1 shift/reduce conflict. State 236 contains 1 shift/reduce conflict. State 237 contains 1 shift/reduce conflict. State 238 contains 1 shift/reduce conflict. -State 279 contains 1 shift/reduce conflict. -State 374 contains 3 shift/reduce conflicts. -State 375 contains 3 shift/reduce conflicts. -State 381 contains 5 shift/reduce conflicts. -State 382 contains 5 shift/reduce conflicts. -State 383 contains 2 shift/reduce conflicts. -State 384 contains 1 shift/reduce conflict. -State 385 contains 1 shift/reduce conflict. -State 386 contains 1 shift/reduce conflict. -State 387 contains 1 shift/reduce conflict. +State 239 contains 1 shift/reduce conflict. +State 283 contains 1 shift/reduce conflict. +State 380 contains 3 shift/reduce conflicts. +State 381 contains 3 shift/reduce conflicts. +State 387 contains 5 shift/reduce conflicts. +State 388 contains 5 shift/reduce conflicts. +State 389 contains 2 shift/reduce conflicts. +State 390 contains 1 shift/reduce conflict. +State 391 contains 1 shift/reduce conflict. +State 392 contains 1 shift/reduce conflict. +State 393 contains 1 shift/reduce conflict. 97 terminals, 116 nonterminals -278 grammar rules, 468 states +279 grammar rules, 475 states