Program: 76145
Project: 76145
Buggy source:
int yyparse(){
  int yyn;
  int yym;
  int yystate;
  String yys;
  boolean doaction;
  init_stacks();
  yynerrs=0;
  yyerrflag=0;
  yychar=-1;
  yystate=0;
  state_push(yystate);
  while (true) {
    doaction=true;
    if (yydebug)     debug("String_Node_Str");
    for (yyn=yydefred[yystate]; yyn == 0; yyn=yydefred[yystate]) {
      if (yydebug)       debug("String_Node_Str" + yyn + "String_Node_Str"+ yystate+ "String_Node_Str"+ yychar);
      if (yychar < 0) {
        yychar=yylex();
        if (yychar < 0) {
          yychar=0;
          if (yydebug)           yylexdebug(yystate,yychar);
        }
      }
      yyn=yysindex[yystate];
      if ((yyn != 0) && (yyn+=yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
        if (yydebug)         debug("String_Node_Str" + yystate + "String_Node_Str"+ yytable[yyn]+ "String_Node_Str");
        yystate=yytable[yyn];
        state_push(yystate);
        val_push(yylval);
        yychar=-1;
        if (yyerrflag > 0)         --yyerrflag;
        doaction=false;
        break;
      }
      yyn=yyrindex[yystate];
      if ((yyn != 0) && (yyn+=yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
        if (yydebug)         debug("String_Node_Str");
        yyn=yytable[yyn];
        doaction=true;
        break;
      }
 else {
        if (yyerrflag == 0) {
          yyerror("String_Node_Str");
          yynerrs++;
        }
        if (yyerrflag < 3) {
          yyerrflag=3;
          while (true) {
            if (stateptr < 0) {
              yyerror("String_Node_Str");
              return 1;
            }
            yyn=yysindex[state_peek(0)];
            if ((yyn != 0) && (yyn+=YYERRCODE) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
              if (yydebug)               debug("String_Node_Str" + state_peek(0) + "String_Node_Str"+ yytable[yyn]+ "String_Node_Str");
              yystate=yytable[yyn];
              state_push(yystate);
              val_push(yylval);
              doaction=false;
              break;
            }
 else {
              if (yydebug)               debug("String_Node_Str" + state_peek(0) + "String_Node_Str");
              if (stateptr < 0) {
                yyerror("String_Node_Str");
                return 1;
              }
              state_pop();
              val_pop();
            }
          }
        }
 else {
          if (yychar == 0)           return 1;
          if (yydebug) {
            yys=null;
            if (yychar <= YYMAXTOKEN)             yys=yyname[yychar];
            if (yys == null)             yys="String_Node_Str";
            debug("String_Node_Str" + yystate + "String_Node_Str"+ yychar+ "String_Node_Str"+ yys+ "String_Node_Str");
          }
          yychar=-1;
        }
      }
    }
    if (!doaction)     continue;
    yym=yylen[yyn];
    if (yydebug)     debug("String_Node_Str" + yystate + "String_Node_Str"+ yym+ "String_Node_Str"+ yyn+ "String_Node_Str"+ yyrule[yyn]+ "String_Node_Str");
    if (yym > 0) {
      try {
        yyval=(JavaParserval)val_peek(yym - 1).clone();
      }
 catch (      CloneNotSupportedException e) {
        yyerror("String_Node_Str");
      }
    }
 else {
      yyval=new JavaParserval();
    }
switch (yyn) {
case 1:
{
        _theAST=(CompileUnitNode)val_peek(0).obj;
      }
    break;
case 2:
{
    yyval.obj=new IntLitNode(val_peek(0).sval);
  }
break;
case 3:
{
yyval.obj=new LongLitNode(val_peek(0).sval);
}
break;
case 4:
{
yyval.obj=new FloatLitNode(val_peek(0).sval);
}
break;
case 5:
{
yyval.obj=new DoubleLitNode(val_peek(0).sval);
}
break;
case 6:
{
yyval.obj=new BoolLitNode("String_Node_Str");
}
break;
case 7:
{
yyval.obj=new BoolLitNode("String_Node_Str");
}
break;
case 8:
{
yyval.obj=new CharLitNode(val_peek(0).sval);
}
break;
case 9:
{
yyval.obj=new StringLitNode(val_peek(0).sval);
}
break;
case 14:
{
yyval.obj=BoolTypeNode.instance;
}
break;
case 15:
{
yyval.obj=CharTypeNode.instance;
}
break;
case 16:
{
yyval.obj=ByteTypeNode.instance;
}
break;
case 17:
{
yyval.obj=ShortTypeNode.instance;
}
break;
case 18:
{
yyval.obj=IntTypeNode.instance;
}
break;
case 19:
{
yyval.obj=FloatTypeNode.instance;
}
break;
case 20:
{
yyval.obj=LongTypeNode.instance;
}
break;
case 21:
{
yyval.obj=DoubleTypeNode.instance;
}
break;
case 22:
{
yyval.obj=new TypeNameNode((NameNode)val_peek(0).obj);
}
break;
case 23:
{
yyval.obj=new ArrayTypeNode((TypeNode)val_peek(1).obj);
}
break;
case 24:
{
yyval.obj=new CompileUnitNode((TreeNode)val_peek(2).obj,(List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 25:
{
yyval.obj=val_peek(1).obj;
}
break;
case 26:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 27:
{
yyval.obj=new LinkedList();
}
break;
case 28:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 29:
{
yyval.obj=new LinkedList();
}
break;
case 30:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 31:
{
yyval.obj=val_peek(0).obj;
}
break;
case 36:
{
yyval.obj=new ImportNode((NameNode)val_peek(1).obj);
}
break;
case 37:
{
yyval.obj=new ImportOnDemandNode((NameNode)val_peek(3).obj);
}
break;
case 38:
{
NameNode name=(NameNode)val_peek(3).obj;
List body=(List)val_peek(0).obj;
Iterator bodyItr=body.iterator();
boolean constructorFound=false;
while (!constructorFound && bodyItr.hasNext()) {
Object member=bodyItr.next();
if (member instanceof ConstructorDeclNode) {
constructorFound=true;
}
}
if (!constructorFound) {
body.add(new ConstructorDeclNode(Modifier.PUBLIC_MOD,new NameNode(name.getQualifier(),name.getIdent()),new LinkedList(),new LinkedList(),new BlockNode(new LinkedList()),new SuperConstructorCallNode(new LinkedList())));
}
yyval.obj=new ClassDeclNode(val_peek(5).ival,name,(List)val_peek(1).obj,(List)body,(TypeNameNode)val_peek(2).obj);
}
break;
case 39:
{
yyval.obj=val_peek(0).obj;
}
break;
case 40:
{
yyval.obj=new TypeNameNode(new NameNode(AbsentTreeNode.instance,"String_Node_Str"));
}
break;
case 41:
{
yyval.obj=val_peek(0).obj;
}
break;
case 42:
{
yyval.obj=new LinkedList();
}
break;
case 43:
{
yyval.obj=val_peek(1).obj;
}
break;
case 44:
{
}
break;
case 45:
{
yyval.obj=new LinkedList();
}
break;
case 47:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 49:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 50:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 51:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 52:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 53:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 54:
{
yyval.obj=cons(val_peek(1).obj);
}
break;
case 55:
{
Modifier.checkFieldModifiers(val_peek(3).ival);
List result=new LinkedList();
List varDecls=(List)val_peek(1).obj;
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new FieldDeclNode(val_peek(3).ival,makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 56:
{
}
break;
case 57:
{
yyval.ival=Modifier.NO_MOD;
}
break;
case 58:
{
yyval.ival=val_peek(0).ival;
}
break;
case 59:
{
yyval.ival=(val_peek(1).ival | val_peek(0).ival);
if ((val_peek(1).ival & val_peek(0).ival) != 0) {
yyerror("String_Node_Str");
}
}
break;
case 60:
{
yyval.ival=Modifier.PUBLIC_MOD;
}
break;
case 61:
{
yyval.ival=Modifier.PROTECTED_MOD;
}
break;
case 62:
{
yyval.ival=Modifier.PRIVATE_MOD;
}
break;
case 63:
{
yyval.ival=Modifier.STATIC_MOD;
}
break;
case 64:
{
yyval.ival=Modifier.FINAL_MOD;
}
break;
case 65:
{
yyval.ival=Modifier.ABSTRACT_MOD;
}
break;
case 66:
{
yyval.ival=Modifier.NATIVE_MOD;
}
break;
case 67:
{
yyval.ival=Modifier.SYNCHRONIZED_MOD;
}
break;
case 68:
{
yyval.ival=Modifier.TRANSIENT_MOD;
}
break;
case 69:
{
yyval.ival=Modifier.VOLATILE_MOD;
}
break;
case 70:
{
yyval.ival=Modifier.STRICTFP_MOD;
}
break;
case 71:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 72:
{
yyval.obj=cons(val_peek(0).obj,(List)val_peek(2).obj);
}
break;
case 73:
{
yyval.obj=new DeclaratorNode(val_peek(0).ival,(NameNode)val_peek(1).obj,AbsentTreeNode.instance);
}
break;
case 74:
{
yyval.obj=new DeclaratorNode(val_peek(2).ival,(NameNode)val_peek(3).obj,(ExprNode)val_peek(0).obj);
}
break;
case 77:
{
Modifier.checkMethodModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj,makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 78:
{
Modifier.checkMethodModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj,makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 79:
{
yyval.obj=VoidTypeNode.instance;
}
break;
case 80:
{
}
break;
case 81:
{
yyval.obj=new LinkedList();
}
break;
case 82:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 83:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 84:
{
Modifier.checkParameterModifiers(val_peek(3).ival);
yyval.obj=new ParameterNode(val_peek(3).ival,makeArrayType((TypeNode)val_peek(2).obj,val_peek(0).ival),(NameNode)val_peek(1).obj);
}
break;
case 85:
{
}
break;
case 86:
{
yyval.obj=new LinkedList();
}
break;
case 87:
{
yyval.obj=val_peek(0).obj;
}
break;
case 88:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 89:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 91:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 92:
{
Modifier.checkConstructorModifiers(val_peek(9).ival);
yyval.obj=new ConstructorDeclNode(val_peek(9).ival,new NameNode(AbsentTreeNode.instance,val_peek(8).sval),(List)val_peek(6).obj,(List)val_peek(4).obj,new BlockNode((List)val_peek(1).obj),(ConstructorCallNode)val_peek(2).obj);
}
break;
case 93:
{
Modifier.checkConstructorModifiers(val_peek(8).ival);
yyval.obj=new ConstructorDeclNode(val_peek(8).ival,new NameNode(AbsentTreeNode.instance,val_peek(7).sval),(List)val_peek(5).obj,(List)val_peek(3).obj,new BlockNode((List)val_peek(1).obj),new SuperConstructorCallNode(new LinkedList()));
}
break;
case 94:
{
yyval.obj=new ThisConstructorCallNode((List)val_peek(2).obj);
}
break;
case 95:
{
yyval.obj=new SuperConstructorCallNode((List)val_peek(2).obj);
}
break;
case 96:
{
yyval.obj=new StaticInitNode((BlockNode)val_peek(0).obj);
}
break;
case 97:
{
yyval.obj=new InstanceInitNode((BlockNode)val_peek(0).obj);
}
break;
case 98:
{
Modifier.checkInterfaceModifiers(val_peek(4).ival);
yyval.obj=new InterfaceDeclNode(val_peek(4).ival,(NameNode)val_peek(2).obj,(List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 99:
{
}
break;
case 100:
{
yyval.obj=new LinkedList();
}
break;
case 101:
{
yyval.obj=val_peek(0).obj;
}
break;
case 102:
{
yyval.obj=val_peek(1).obj;
}
break;
case 103:
{
yyval.obj=new LinkedList();
}
break;
case 104:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 106:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 107:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 108:
{
yyval.obj=cons(val_peek(1).obj);
}
break;
case 109:
{
int modifiers=val_peek(3).ival;
modifiers|=(Modifier.STATIC_MOD | Modifier.FINAL_MOD);
Modifier.checkConstantFieldModifiers(modifiers);
List varDecls=(List)val_peek(1).obj;
Iterator itr=varDecls.iterator();
List result=new LinkedList();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new FieldDeclNode(modifiers,makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 110:
{
Modifier.checkMethodSignatureModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,AbsentTreeNode.instance,makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 111:
{
Modifier.checkMethodSignatureModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,AbsentTreeNode.instance,makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 112:
{
yyval.obj=new ArrayInitNode((List)val_peek(1).obj);
}
break;
case 113:
{
yyval.obj=new ArrayInitNode((List)val_peek(2).obj);
}
break;
case 114:
{
yyval.obj=new ArrayInitNode(new LinkedList());
}
break;
case 115:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 116:
{
yyval.obj=append((List)val_peek(2).obj,val_peek(0).obj);
}
break;
case 119:
{
yyval.obj=new BlockNode((List)val_peek(1).obj);
}
break;
case 120:
{
}
break;
case 121:
{
yyval.obj=new LinkedList();
}
break;
case 122:
{
yyval.obj=val_peek(0).obj;
}
break;
case 123:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 124:
{
yyval.obj=val_peek(0).obj;
}
break;
case 125:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 126:
{
yyval.obj=cons(new UserTypeDeclStmtNode((UserTypeDeclNode)val_peek(0).obj));
}
break;
case 127:
{
Modifier.checkLocalVariableModifiers(val_peek(3).ival);
List varDecls=(List)val_peek(1).obj;
List result=new LinkedList();
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new LocalVarDeclNode(val_peek(3).ival,makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 128:
{
List varDecls=(List)val_peek(1).obj;
List result=new LinkedList();
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new LocalVarDeclNode(Modifier.NO_MOD,makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 131:
{
yyval.obj=new ExprStmtNode((ExprNode)val_peek(1).obj);
}
break;
case 137:
{
yyval.obj=new EmptyStmtNode();
}
break;
case 138:
{
yyval.obj=new LabeledStmtNode((NameNode)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 139:
{
yyval.obj=val_peek(0).obj;
}
break;
case 140:
{
yyval.obj=val_peek(0).obj;
}
break;
case 141:
{
yyval.obj=val_peek(0).obj;
}
break;
case 142:
{
yyval.obj=val_peek(0).obj;
}
break;
case 143:
{
yyval.obj=val_peek(0).obj;
}
break;
case 144:
{
yyval.obj=val_peek(0).obj;
}
break;
case 145:
{
yyval.obj=val_peek(0).obj;
}
break;
case 146:
{
yyval.obj=new IfStmtNode((ExprNode)val_peek(2).obj,(StatementNode)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 147:
{
yyval.obj=new IfStmtNode((ExprNode)val_peek(4).obj,(StatementNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 148:
{
yyval.obj=new SwitchNode((ExprNode)val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 149:
{
yyval.obj=val_peek(1).obj;
}
break;
case 150:
{
yyval.obj=new LinkedList();
}
break;
case 151:
{
yyval.obj=cons(new SwitchBranchNode((List)val_peek(2).obj,(List)val_peek(1).obj),(List)val_peek(0).obj);
}
break;
case 152:
{
yyval.obj=cons(new SwitchBranchNode((List)val_peek(0).obj,new LinkedList()));
}
break;
case 153:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 154:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 155:
{
yyval.obj=new CaseNode((TreeNode)val_peek(1).obj);
}
break;
case 156:
{
yyval.obj=new CaseNode(AbsentTreeNode.instance);
}
break;
case 157:
{
yyval.obj=new LoopNode(new EmptyStmtNode(),(ExprNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 158:
{
yyval.obj=new LoopNode((TreeNode)val_peek(5).obj,(ExprNode)val_peek(2).obj,new EmptyStmtNode());
}
break;
case 159:
{
yyval.obj=new ForNode((List)val_peek(5).obj,(ExprNode)val_peek(4).obj,(List)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 160:
{
yyval.obj=new ForNode((List)val_peek(4).obj,new BoolLitNode("String_Node_Str"),(List)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 161:
{
yyval.obj=val_peek(1).obj;
}
break;
case 162:
{
yyval.obj=val_peek(0).obj;
}
break;
case 163:
{
}
break;
case 164:
{
yyval.obj=new LinkedList();
}
break;
case 165:
{
}
break;
case 166:
{
yyval.obj=new LinkedList();
}
break;
case 167:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 168:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 169:
{
yyval.obj=new BreakNode((TreeNode)val_peek(1).obj);
}
break;
case 170:
{
yyval.obj=new ContinueNode((TreeNode)val_peek(1).obj);
}
break;
case 171:
{
yyval.obj=new ReturnNode((TreeNode)val_peek(1).obj);
}
break;
case 172:
{
yyval.obj=new ThrowNode((ExprNode)val_peek(1).obj);
}
break;
case 173:
{
}
break;
case 174:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 175:
{
yyval.obj=new SynchronizedNode((ExprNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 176:
{
yyval.obj=new TryNode((BlockNode)val_peek(1).obj,new LinkedList(),(TreeNode)val_peek(0).obj);
}
break;
case 177:
{
yyval.obj=new TryNode((BlockNode)val_peek(1).obj,(List)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 178:
{
yyval.obj=new TryNode((BlockNode)val_peek(2).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj);
}
break;
case 179:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 180:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 181:
{
yyval.obj=new CatchNode((ParameterNode)val_peek(2).obj,(BlockNode)val_peek(0).obj);
}
break;
case 182:
{
yyval.obj=val_peek(0).obj;
}
break;
case 183:
{
yyval.obj=new ObjectNode((NameNode)val_peek(0).obj);
}
break;
case 185:
{
yyval.obj=new TypeClassAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 186:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 187:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 188:
{
yyval.obj=new OuterThisAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 189:
{
yyval.obj=new OuterSuperAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 193:
{
yyval.obj=new NullPntrNode();
}
break;
case 194:
{
yyval.obj=new ThisNode();
}
break;
case 195:
{
yyval.obj=val_peek(1).obj;
}
break;
case 196:
{
yyval.obj=new ObjectNode((NameNode)val_peek(1).obj);
}
break;
case 198:
{
yyval.obj=val_peek(0).obj;
}
break;
case 200:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 201:
{
yyval.obj=val_peek(0).obj;
}
break;
case 203:
{
yyval.obj=new NameNode(AbsentTreeNode.instance,val_peek(0).sval);
}
break;
case 204:
{
yyval.obj=new NameNode((NameNode)val_peek(2).obj,val_peek(0).sval);
}
break;
case 205:
{
yyval.obj=new ArrayAccessNode(new ObjectNode((NameNode)val_peek(3).obj),(ExprNode)val_peek(1).obj);
}
break;
case 206:
{
yyval.obj=new ArrayAccessNode((ExprNode)val_peek(3).obj,(ExprNode)val_peek(1).obj);
}
break;
case 207:
{
yyval.obj=new ObjectFieldAccessNode((ExprNode)val_peek(2).obj,(NameNode)val_peek(0).obj);
}
break;
case 208:
{
yyval.obj=new SuperFieldAccessNode((NameNode)val_peek(0).obj);
}
break;
case 209:
{
yyval.obj=new MethodCallNode(new ObjectNode((NameNode)val_peek(3).obj),(List)val_peek(1).obj);
}
break;
case 210:
{
yyval.obj=new MethodCallNode((FieldAccessNode)val_peek(3).obj,(List)val_peek(1).obj);
}
break;
case 211:
{
}
break;
case 212:
{
yyval.obj=new LinkedList();
}
break;
case 213:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 214:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 215:
{
yyval.obj=new AllocateNode((TypeNameNode)val_peek(3).obj,(List)val_peek(1).obj,AbsentTreeNode.instance);
}
break;
case 216:
{
yyval.obj=new AllocateAnonymousClassNode((TypeNameNode)val_peek(4).obj,(List)val_peek(2).obj,(List)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 217:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,(List)val_peek(1).obj,val_peek(0).ival,AbsentTreeNode.instance);
}
break;
case 218:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,new LinkedList(),val_peek(1).ival,(TreeNode)val_peek(0).obj);
}
break;
case 219:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,(List)val_peek(1).obj,val_peek(0).ival,AbsentTreeNode.instance);
}
break;
case 220:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,new LinkedList(),val_peek(1).ival,(TreeNode)val_peek(0).obj);
}
break;
case 221:
{
yyval.obj=new AllocateNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(3).sval)),(List)val_peek(1).obj,(ExprNode)val_peek(6).obj);
}
break;
case 222:
{
yyval.obj=new AllocateAnonymousClassNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(4).sval)),(List)val_peek(2).obj,(List)val_peek(0).obj,(ExprNode)val_peek(7).obj);
}
break;
case 223:
{
yyval.obj=new AllocateNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(3).sval)),(List)val_peek(1).obj,new ObjectNode((NameNode)val_peek(6).obj));
}
break;
case 224:
{
yyval.obj=new AllocateAnonymousClassNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(4).sval)),(List)val_peek(2).obj,(List)val_peek(0).obj,new ObjectNode((NameNode)val_peek(7).obj));
}
break;
case 225:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 226:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 227:
{
yyval.obj=val_peek(1).obj;
}
break;
case 228:
{
}
break;
case 229:
{
yyval.ival=0;
}
break;
case 230:
{
yyval.ival=1;
}
break;
case 231:
{
yyval.ival=val_peek(1).ival + 1;
}
break;
case 235:
{
yyval.obj=new PostIncrNode((ExprNode)val_peek(1).obj);
}
break;
case 236:
{
yyval.obj=new PostDecrNode((ExprNode)val_peek(1).obj);
}
break;
case 239:
{
yyval.obj=new UnaryPlusNode((ExprNode)val_peek(0).obj);
}
break;
case 240:
{
yyval.obj=new UnaryMinusNode((ExprNode)val_peek(0).obj);
}
break;
case 242:
{
yyval.obj=new PreIncrNode((ExprNode)val_peek(0).obj);
}
break;
case 243:
{
yyval.obj=new PreDecrNode((ExprNode)val_peek(0).obj);
}
break;
case 245:
{
yyval.obj=new ComplementNode((ExprNode)val_peek(0).obj);
}
break;
case 246:
{
yyval.obj=new NotNode((ExprNode)val_peek(0).obj);
}
break;
case 248:
{
yyval.obj=new CastNode((TypeNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 249:
{
yyval.obj=new CastNode((TypeNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 250:
{
yyval.obj=new CastNode(new TypeNameNode((NameNode)val_peek(2).obj),(ExprNode)val_peek(0).obj);
}
break;
case 251:
{
}
break;
case 252:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 254:
{
yyval.obj=new MultNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 255:
{
yyval.obj=new DivNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 256:
{
yyval.obj=new RemNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 257:
{
yyval.obj=new PlusNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 258:
{
yyval.obj=new MinusNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 259:
{
yyval.obj=new LeftShiftLogNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 260:
{
yyval.obj=new RightShiftLogNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 261:
{
yyval.obj=new RightShiftArithNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 262:
{
yyval.obj=new LTNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 263:
{
yyval.obj=new GTNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 264:
{
yyval.obj=new LENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 265:
{
yyval.obj=new GENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 266:
{
yyval.obj=new InstanceOfNode((ExprNode)val_peek(2).obj,(TypeNode)val_peek(0).obj);
}
break;
case 267:
{
yyval.obj=new EQNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 268:
{
yyval.obj=new NENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 269:
{
yyval.obj=new BitAndNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 270:
{
yyval.obj=new BitOrNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 271:
{
yyval.obj=new BitXorNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 272:
{
yyval.obj=new CandNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 273:
{
yyval.obj=new CorNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 274:
{
yyval.obj=new IfExprNode((ExprNode)val_peek(4).obj,(ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 276:
{
yyval.obj=new AssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 277:
{
yyval.obj=new MultAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 278:
{
yyval.obj=new DivAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 279:
{
yyval.obj=new RemAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 280:
{
yyval.obj=new PlusAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 281:
{
yyval.obj=new MinusAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 282:
{
yyval.obj=new LeftShiftLogAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 283:
{
yyval.obj=new RightShiftLogAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 284:
{
yyval.obj=new RightShiftArithAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 285:
{
yyval.obj=new BitAndAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 286:
{
yyval.obj=new BitXorAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 287:
{
yyval.obj=new BitOrAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
}
if (yydebug) debug("String_Node_Str");
state_drop(yym);
yystate=state_peek(0);
val_drop(yym);
yym=yylhs[yyn];
if (yystate == 0 && yym == 0) {
debug("String_Node_Str" + YYFINAL + "String_Node_Str");
yystate=YYFINAL;
state_push(YYFINAL);
val_push(yyval);
if (yychar < 0) {
yychar=yylex();
if (yychar < 0) yychar=0;
if (yydebug) yylexdebug(yystate,yychar);
}
if (yychar == 0) break;
}
 else {
yyn=yygindex[yym];
if ((yyn != 0) && (yyn+=yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate=yytable[yyn];
 else yystate=yydgoto[yym];
debug("String_Node_Str" + state_peek(0) + "String_Node_Str"+ yystate+ "String_Node_Str");
state_push(yystate);
val_push(yyval);
}
}
return 0;
}

Fixed version (ground truth):
int yyparse(){
  int yyn;
  int yym;
  int yystate;
  String yys;
  boolean doaction;
  init_stacks();
  yynerrs=0;
  yyerrflag=0;
  yychar=-1;
  yystate=0;
  state_push(yystate);
  while (true) {
    doaction=true;
    if (yydebug)     debug("String_Node_Str");
    for (yyn=yydefred[yystate]; yyn == 0; yyn=yydefred[yystate]) {
      if (yydebug)       debug("String_Node_Str" + yyn + "String_Node_Str"+ yystate+ "String_Node_Str"+ yychar);
      if (yychar < 0) {
        yychar=yylex();
        if (yychar < 0) {
          yychar=0;
          if (yydebug)           yylexdebug(yystate,yychar);
        }
      }
      yyn=yysindex[yystate];
      if ((yyn != 0) && (yyn+=yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
        if (yydebug)         debug("String_Node_Str" + yystate + "String_Node_Str"+ yytable[yyn]+ "String_Node_Str");
        yystate=yytable[yyn];
        state_push(yystate);
        val_push(yylval);
        yychar=-1;
        if (yyerrflag > 0)         --yyerrflag;
        doaction=false;
        break;
      }
      yyn=yyrindex[yystate];
      if ((yyn != 0) && (yyn+=yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
        if (yydebug)         debug("String_Node_Str");
        yyn=yytable[yyn];
        doaction=true;
        break;
      }
 else {
        if (yyerrflag == 0) {
          yyerror("String_Node_Str");
          yynerrs++;
        }
        if (yyerrflag < 3) {
          yyerrflag=3;
          while (true) {
            if (stateptr < 0) {
              yyerror("String_Node_Str");
              return 1;
            }
            yyn=yysindex[state_peek(0)];
            if ((yyn != 0) && (yyn+=YYERRCODE) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
              if (yydebug)               debug("String_Node_Str" + state_peek(0) + "String_Node_Str"+ yytable[yyn]+ "String_Node_Str");
              yystate=yytable[yyn];
              state_push(yystate);
              val_push(yylval);
              doaction=false;
              break;
            }
 else {
              if (yydebug)               debug("String_Node_Str" + state_peek(0) + "String_Node_Str");
              if (stateptr < 0) {
                yyerror("String_Node_Str");
                return 1;
              }
              state_pop();
              val_pop();
            }
          }
        }
 else {
          if (yychar == 0)           return 1;
          if (yydebug) {
            yys=null;
            if (yychar <= YYMAXTOKEN)             yys=yyname[yychar];
            if (yys == null)             yys="String_Node_Str";
            debug("String_Node_Str" + yystate + "String_Node_Str"+ yychar+ "String_Node_Str"+ yys+ "String_Node_Str");
          }
          yychar=-1;
        }
      }
    }
    if (!doaction)     continue;
    yym=yylen[yyn];
    if (yydebug)     debug("String_Node_Str" + yystate + "String_Node_Str"+ yym+ "String_Node_Str"+ yyn+ "String_Node_Str"+ yyrule[yyn]+ "String_Node_Str");
    if (yym > 0) {
      try {
        yyval=(JavaParserval)val_peek(yym - 1).clone();
      }
 catch (      CloneNotSupportedException e) {
        yyerror("String_Node_Str");
      }
    }
 else {
      yyval=new JavaParserval();
    }
switch (yyn) {
case 1:
{
        _theAST=(CompileUnitNode)val_peek(0).obj;
      }
    break;
case 2:
{
    yyval.obj=new IntLitNode(val_peek(0).sval);
  }
break;
case 3:
{
yyval.obj=new LongLitNode(val_peek(0).sval);
}
break;
case 4:
{
yyval.obj=new FloatLitNode(val_peek(0).sval);
}
break;
case 5:
{
yyval.obj=new DoubleLitNode(val_peek(0).sval);
}
break;
case 6:
{
yyval.obj=new BoolLitNode("String_Node_Str");
}
break;
case 7:
{
yyval.obj=new BoolLitNode("String_Node_Str");
}
break;
case 8:
{
yyval.obj=new CharLitNode(val_peek(0).sval);
}
break;
case 9:
{
yyval.obj=new StringLitNode(val_peek(0).sval);
}
break;
case 14:
{
yyval.obj=BoolTypeNode.instance;
}
break;
case 15:
{
yyval.obj=CharTypeNode.instance;
}
break;
case 16:
{
yyval.obj=ByteTypeNode.instance;
}
break;
case 17:
{
yyval.obj=ShortTypeNode.instance;
}
break;
case 18:
{
yyval.obj=IntTypeNode.instance;
}
break;
case 19:
{
yyval.obj=FloatTypeNode.instance;
}
break;
case 20:
{
yyval.obj=LongTypeNode.instance;
}
break;
case 21:
{
yyval.obj=DoubleTypeNode.instance;
}
break;
case 22:
{
yyval.obj=new TypeNameNode((NameNode)val_peek(0).obj);
}
break;
case 23:
{
yyval.obj=new ArrayTypeNode((TypeNode)val_peek(1).obj);
}
break;
case 24:
{
yyval.obj=new CompileUnitNode((TreeNode)val_peek(2).obj,(List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 25:
{
yyval.obj=val_peek(1).obj;
}
break;
case 26:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 27:
{
yyval.obj=new LinkedList();
}
break;
case 28:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 29:
{
yyval.obj=new LinkedList();
}
break;
case 30:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 31:
{
yyval.obj=val_peek(0).obj;
}
break;
case 36:
{
yyval.obj=new ImportNode((NameNode)val_peek(1).obj);
}
break;
case 37:
{
yyval.obj=new ImportOnDemandNode((NameNode)val_peek(3).obj);
}
break;
case 38:
{
NameNode name=(NameNode)val_peek(3).obj;
List body=(List)val_peek(0).obj;
Iterator bodyItr=body.iterator();
boolean constructorFound=false;
while (!constructorFound && bodyItr.hasNext()) {
Object member=bodyItr.next();
if (member instanceof ConstructorDeclNode) {
constructorFound=true;
}
}
if (!constructorFound) {
body.add(new ConstructorDeclNode(Modifier.PUBLIC_MOD,new NameNode(name.getQualifier(),name.getIdent()),new LinkedList(),new LinkedList(),new BlockNode(new LinkedList()),new SuperConstructorCallNode(new LinkedList())));
}
yyval.obj=new ClassDeclNode(val_peek(5).ival,name,(List)val_peek(1).obj,(List)body,(TypeNameNode)val_peek(2).obj);
}
break;
case 39:
{
yyval.obj=val_peek(0).obj;
}
break;
case 40:
{
yyval.obj=new TypeNameNode(new NameNode(AbsentTreeNode.instance,"String_Node_Str"));
}
break;
case 41:
{
yyval.obj=val_peek(0).obj;
}
break;
case 42:
{
yyval.obj=new LinkedList();
}
break;
case 43:
{
yyval.obj=val_peek(1).obj;
}
break;
case 44:
{
}
break;
case 45:
{
yyval.obj=new LinkedList();
}
break;
case 47:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 49:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 50:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 51:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 52:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 53:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 54:
{
yyval.obj=cons(val_peek(1).obj);
}
break;
case 55:
{
Modifier.checkFieldModifiers(val_peek(3).ival);
List result=new LinkedList();
List varDecls=(List)val_peek(1).obj;
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new FieldDeclNode(val_peek(3).ival,TypeUtility.makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 56:
{
}
break;
case 57:
{
yyval.ival=Modifier.NO_MOD;
}
break;
case 58:
{
yyval.ival=val_peek(0).ival;
}
break;
case 59:
{
yyval.ival=(val_peek(1).ival | val_peek(0).ival);
if ((val_peek(1).ival & val_peek(0).ival) != 0) {
yyerror("String_Node_Str");
}
}
break;
case 60:
{
yyval.ival=Modifier.PUBLIC_MOD;
}
break;
case 61:
{
yyval.ival=Modifier.PROTECTED_MOD;
}
break;
case 62:
{
yyval.ival=Modifier.PRIVATE_MOD;
}
break;
case 63:
{
yyval.ival=Modifier.STATIC_MOD;
}
break;
case 64:
{
yyval.ival=Modifier.FINAL_MOD;
}
break;
case 65:
{
yyval.ival=Modifier.ABSTRACT_MOD;
}
break;
case 66:
{
yyval.ival=Modifier.NATIVE_MOD;
}
break;
case 67:
{
yyval.ival=Modifier.SYNCHRONIZED_MOD;
}
break;
case 68:
{
yyval.ival=Modifier.TRANSIENT_MOD;
}
break;
case 69:
{
yyval.ival=Modifier.VOLATILE_MOD;
}
break;
case 70:
{
yyval.ival=Modifier.STRICTFP_MOD;
}
break;
case 71:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 72:
{
yyval.obj=cons(val_peek(0).obj,(List)val_peek(2).obj);
}
break;
case 73:
{
yyval.obj=new DeclaratorNode(val_peek(0).ival,(NameNode)val_peek(1).obj,AbsentTreeNode.instance);
}
break;
case 74:
{
yyval.obj=new DeclaratorNode(val_peek(2).ival,(NameNode)val_peek(3).obj,(ExprNode)val_peek(0).obj);
}
break;
case 77:
{
Modifier.checkMethodModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj,TypeUtility.makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 78:
{
Modifier.checkMethodModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj,TypeUtility.makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 79:
{
yyval.obj=VoidTypeNode.instance;
}
break;
case 80:
{
}
break;
case 81:
{
yyval.obj=new LinkedList();
}
break;
case 82:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 83:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 84:
{
Modifier.checkParameterModifiers(val_peek(3).ival);
yyval.obj=new ParameterNode(val_peek(3).ival,TypeUtility.makeArrayType((TypeNode)val_peek(2).obj,val_peek(0).ival),(NameNode)val_peek(1).obj);
}
break;
case 85:
{
}
break;
case 86:
{
yyval.obj=new LinkedList();
}
break;
case 87:
{
yyval.obj=val_peek(0).obj;
}
break;
case 88:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 89:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 91:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 92:
{
Modifier.checkConstructorModifiers(val_peek(9).ival);
yyval.obj=new ConstructorDeclNode(val_peek(9).ival,new NameNode(AbsentTreeNode.instance,val_peek(8).sval),(List)val_peek(6).obj,(List)val_peek(4).obj,new BlockNode((List)val_peek(1).obj),(ConstructorCallNode)val_peek(2).obj);
}
break;
case 93:
{
Modifier.checkConstructorModifiers(val_peek(8).ival);
yyval.obj=new ConstructorDeclNode(val_peek(8).ival,new NameNode(AbsentTreeNode.instance,val_peek(7).sval),(List)val_peek(5).obj,(List)val_peek(3).obj,new BlockNode((List)val_peek(1).obj),new SuperConstructorCallNode(new LinkedList()));
}
break;
case 94:
{
yyval.obj=new ThisConstructorCallNode((List)val_peek(2).obj);
}
break;
case 95:
{
yyval.obj=new SuperConstructorCallNode((List)val_peek(2).obj);
}
break;
case 96:
{
yyval.obj=new StaticInitNode((BlockNode)val_peek(0).obj);
}
break;
case 97:
{
yyval.obj=new InstanceInitNode((BlockNode)val_peek(0).obj);
}
break;
case 98:
{
Modifier.checkInterfaceModifiers(val_peek(4).ival);
yyval.obj=new InterfaceDeclNode(val_peek(4).ival,(NameNode)val_peek(2).obj,(List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 99:
{
}
break;
case 100:
{
yyval.obj=new LinkedList();
}
break;
case 101:
{
yyval.obj=val_peek(0).obj;
}
break;
case 102:
{
yyval.obj=val_peek(1).obj;
}
break;
case 103:
{
yyval.obj=new LinkedList();
}
break;
case 104:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 106:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 107:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 108:
{
yyval.obj=cons(val_peek(1).obj);
}
break;
case 109:
{
int modifiers=val_peek(3).ival;
modifiers|=(Modifier.STATIC_MOD | Modifier.FINAL_MOD);
Modifier.checkConstantFieldModifiers(modifiers);
List varDecls=(List)val_peek(1).obj;
Iterator itr=varDecls.iterator();
List result=new LinkedList();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new FieldDeclNode(modifiers,TypeUtility.makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 110:
{
Modifier.checkMethodSignatureModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,AbsentTreeNode.instance,TypeUtility.makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 111:
{
Modifier.checkMethodSignatureModifiers(val_peek(8).ival);
yyval.obj=new MethodDeclNode(val_peek(8).ival,(NameNode)val_peek(6).obj,(List)val_peek(4).obj,(List)val_peek(1).obj,AbsentTreeNode.instance,TypeUtility.makeArrayType((TypeNode)val_peek(7).obj,val_peek(2).ival));
}
break;
case 112:
{
yyval.obj=new ArrayInitNode((List)val_peek(1).obj);
}
break;
case 113:
{
yyval.obj=new ArrayInitNode((List)val_peek(2).obj);
}
break;
case 114:
{
yyval.obj=new ArrayInitNode(new LinkedList());
}
break;
case 115:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 116:
{
yyval.obj=append((List)val_peek(2).obj,val_peek(0).obj);
}
break;
case 119:
{
yyval.obj=new BlockNode((List)val_peek(1).obj);
}
break;
case 120:
{
}
break;
case 121:
{
yyval.obj=new LinkedList();
}
break;
case 122:
{
yyval.obj=val_peek(0).obj;
}
break;
case 123:
{
yyval.obj=appendLists((List)val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 124:
{
yyval.obj=val_peek(0).obj;
}
break;
case 125:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 126:
{
yyval.obj=cons(new UserTypeDeclStmtNode((UserTypeDeclNode)val_peek(0).obj));
}
break;
case 127:
{
Modifier.checkLocalVariableModifiers(val_peek(3).ival);
List varDecls=(List)val_peek(1).obj;
List result=new LinkedList();
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new LocalVarDeclNode(val_peek(3).ival,TypeUtility.makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 128:
{
List varDecls=(List)val_peek(1).obj;
List result=new LinkedList();
Iterator itr=varDecls.iterator();
while (itr.hasNext()) {
DeclaratorNode decl=(DeclaratorNode)itr.next();
result=cons(new LocalVarDeclNode(Modifier.NO_MOD,TypeUtility.makeArrayType((TypeNode)val_peek(2).obj,decl.getDims()),decl.getName(),decl.getInitExpr()),result);
}
yyval.obj=result;
}
break;
case 131:
{
yyval.obj=new ExprStmtNode((ExprNode)val_peek(1).obj);
}
break;
case 137:
{
yyval.obj=new EmptyStmtNode();
}
break;
case 138:
{
yyval.obj=new LabeledStmtNode((NameNode)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 139:
{
yyval.obj=val_peek(0).obj;
}
break;
case 140:
{
yyval.obj=val_peek(0).obj;
}
break;
case 141:
{
yyval.obj=val_peek(0).obj;
}
break;
case 142:
{
yyval.obj=val_peek(0).obj;
}
break;
case 143:
{
yyval.obj=val_peek(0).obj;
}
break;
case 144:
{
yyval.obj=val_peek(0).obj;
}
break;
case 145:
{
yyval.obj=val_peek(0).obj;
}
break;
case 146:
{
yyval.obj=new IfStmtNode((ExprNode)val_peek(2).obj,(StatementNode)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 147:
{
yyval.obj=new IfStmtNode((ExprNode)val_peek(4).obj,(StatementNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 148:
{
yyval.obj=new SwitchNode((ExprNode)val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 149:
{
yyval.obj=val_peek(1).obj;
}
break;
case 150:
{
yyval.obj=new LinkedList();
}
break;
case 151:
{
yyval.obj=cons(new SwitchBranchNode((List)val_peek(2).obj,(List)val_peek(1).obj),(List)val_peek(0).obj);
}
break;
case 152:
{
yyval.obj=cons(new SwitchBranchNode((List)val_peek(0).obj,new LinkedList()));
}
break;
case 153:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 154:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 155:
{
yyval.obj=new CaseNode((TreeNode)val_peek(1).obj);
}
break;
case 156:
{
yyval.obj=new CaseNode(AbsentTreeNode.instance);
}
break;
case 157:
{
yyval.obj=new LoopNode(new EmptyStmtNode(),(ExprNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 158:
{
yyval.obj=new LoopNode((TreeNode)val_peek(5).obj,(ExprNode)val_peek(2).obj,new EmptyStmtNode());
}
break;
case 159:
{
yyval.obj=new ForNode((List)val_peek(5).obj,(ExprNode)val_peek(4).obj,(List)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 160:
{
yyval.obj=new ForNode((List)val_peek(4).obj,new BoolLitNode("String_Node_Str"),(List)val_peek(2).obj,(StatementNode)val_peek(0).obj);
}
break;
case 161:
{
yyval.obj=val_peek(1).obj;
}
break;
case 162:
{
yyval.obj=val_peek(0).obj;
}
break;
case 163:
{
}
break;
case 164:
{
yyval.obj=new LinkedList();
}
break;
case 165:
{
}
break;
case 166:
{
yyval.obj=new LinkedList();
}
break;
case 167:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 168:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 169:
{
yyval.obj=new BreakNode((TreeNode)val_peek(1).obj);
}
break;
case 170:
{
yyval.obj=new ContinueNode((TreeNode)val_peek(1).obj);
}
break;
case 171:
{
yyval.obj=new ReturnNode((TreeNode)val_peek(1).obj);
}
break;
case 172:
{
yyval.obj=new ThrowNode((ExprNode)val_peek(1).obj);
}
break;
case 173:
{
}
break;
case 174:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 175:
{
yyval.obj=new SynchronizedNode((ExprNode)val_peek(2).obj,(TreeNode)val_peek(0).obj);
}
break;
case 176:
{
yyval.obj=new TryNode((BlockNode)val_peek(1).obj,new LinkedList(),(TreeNode)val_peek(0).obj);
}
break;
case 177:
{
yyval.obj=new TryNode((BlockNode)val_peek(1).obj,(List)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 178:
{
yyval.obj=new TryNode((BlockNode)val_peek(2).obj,(List)val_peek(1).obj,(TreeNode)val_peek(0).obj);
}
break;
case 179:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 180:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 181:
{
yyval.obj=new CatchNode((ParameterNode)val_peek(2).obj,(BlockNode)val_peek(0).obj);
}
break;
case 182:
{
yyval.obj=val_peek(0).obj;
}
break;
case 183:
{
yyval.obj=new ObjectNode((NameNode)val_peek(0).obj);
}
break;
case 185:
{
yyval.obj=new TypeClassAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 186:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 187:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 188:
{
yyval.obj=new OuterThisAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 189:
{
yyval.obj=new OuterSuperAccessNode(new TypeNameNode((NameNode)val_peek(2).obj));
}
break;
case 193:
{
yyval.obj=new NullPntrNode();
}
break;
case 194:
{
yyval.obj=new ThisNode();
}
break;
case 195:
{
yyval.obj=val_peek(1).obj;
}
break;
case 196:
{
yyval.obj=new ObjectNode((NameNode)val_peek(1).obj);
}
break;
case 198:
{
yyval.obj=val_peek(0).obj;
}
break;
case 200:
{
yyval.obj=new TypeClassAccessNode((TypeNode)val_peek(2).obj);
}
break;
case 201:
{
yyval.obj=val_peek(0).obj;
}
break;
case 203:
{
yyval.obj=new NameNode(AbsentTreeNode.instance,val_peek(0).sval);
}
break;
case 204:
{
yyval.obj=new NameNode((NameNode)val_peek(2).obj,val_peek(0).sval);
}
break;
case 205:
{
yyval.obj=new ArrayAccessNode(new ObjectNode((NameNode)val_peek(3).obj),(ExprNode)val_peek(1).obj);
}
break;
case 206:
{
yyval.obj=new ArrayAccessNode((ExprNode)val_peek(3).obj,(ExprNode)val_peek(1).obj);
}
break;
case 207:
{
yyval.obj=new ObjectFieldAccessNode((ExprNode)val_peek(2).obj,(NameNode)val_peek(0).obj);
}
break;
case 208:
{
yyval.obj=new SuperFieldAccessNode((NameNode)val_peek(0).obj);
}
break;
case 209:
{
yyval.obj=new MethodCallNode(new ObjectNode((NameNode)val_peek(3).obj),(List)val_peek(1).obj);
}
break;
case 210:
{
yyval.obj=new MethodCallNode((FieldAccessNode)val_peek(3).obj,(List)val_peek(1).obj);
}
break;
case 211:
{
}
break;
case 212:
{
yyval.obj=new LinkedList();
}
break;
case 213:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 214:
{
yyval.obj=cons(val_peek(2).obj,(List)val_peek(0).obj);
}
break;
case 215:
{
yyval.obj=new AllocateNode((TypeNameNode)val_peek(3).obj,(List)val_peek(1).obj,AbsentTreeNode.instance);
}
break;
case 216:
{
yyval.obj=new AllocateAnonymousClassNode((TypeNameNode)val_peek(4).obj,(List)val_peek(2).obj,(List)val_peek(0).obj,AbsentTreeNode.instance);
}
break;
case 217:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,(List)val_peek(1).obj,val_peek(0).ival,AbsentTreeNode.instance);
}
break;
case 218:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,new LinkedList(),val_peek(1).ival,(TreeNode)val_peek(0).obj);
}
break;
case 219:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,(List)val_peek(1).obj,val_peek(0).ival,AbsentTreeNode.instance);
}
break;
case 220:
{
yyval.obj=new AllocateArrayNode((TypeNode)val_peek(2).obj,new LinkedList(),val_peek(1).ival,(TreeNode)val_peek(0).obj);
}
break;
case 221:
{
yyval.obj=new AllocateNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(3).sval)),(List)val_peek(1).obj,(ExprNode)val_peek(6).obj);
}
break;
case 222:
{
yyval.obj=new AllocateAnonymousClassNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(4).sval)),(List)val_peek(2).obj,(List)val_peek(0).obj,(ExprNode)val_peek(7).obj);
}
break;
case 223:
{
yyval.obj=new AllocateNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(3).sval)),(List)val_peek(1).obj,new ObjectNode((NameNode)val_peek(6).obj));
}
break;
case 224:
{
yyval.obj=new AllocateAnonymousClassNode(new TypeNameNode(new NameNode(AbsentTreeNode.instance,val_peek(4).sval)),(List)val_peek(2).obj,(List)val_peek(0).obj,new ObjectNode((NameNode)val_peek(7).obj));
}
break;
case 225:
{
yyval.obj=cons(val_peek(0).obj);
}
break;
case 226:
{
yyval.obj=cons(val_peek(1).obj,(List)val_peek(0).obj);
}
break;
case 227:
{
yyval.obj=val_peek(1).obj;
}
break;
case 228:
{
}
break;
case 229:
{
yyval.ival=0;
}
break;
case 230:
{
yyval.ival=1;
}
break;
case 231:
{
yyval.ival=val_peek(1).ival + 1;
}
break;
case 235:
{
yyval.obj=new PostIncrNode((ExprNode)val_peek(1).obj);
}
break;
case 236:
{
yyval.obj=new PostDecrNode((ExprNode)val_peek(1).obj);
}
break;
case 239:
{
yyval.obj=new UnaryPlusNode((ExprNode)val_peek(0).obj);
}
break;
case 240:
{
yyval.obj=new UnaryMinusNode((ExprNode)val_peek(0).obj);
}
break;
case 242:
{
yyval.obj=new PreIncrNode((ExprNode)val_peek(0).obj);
}
break;
case 243:
{
yyval.obj=new PreDecrNode((ExprNode)val_peek(0).obj);
}
break;
case 245:
{
yyval.obj=new ComplementNode((ExprNode)val_peek(0).obj);
}
break;
case 246:
{
yyval.obj=new NotNode((ExprNode)val_peek(0).obj);
}
break;
case 248:
{
yyval.obj=new CastNode((TypeNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 249:
{
yyval.obj=new CastNode((TypeNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 250:
{
yyval.obj=new CastNode(new TypeNameNode((NameNode)val_peek(2).obj),(ExprNode)val_peek(0).obj);
}
break;
case 251:
{
}
break;
case 252:
{
yyval.obj=AbsentTreeNode.instance;
}
break;
case 254:
{
yyval.obj=new MultNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 255:
{
yyval.obj=new DivNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 256:
{
yyval.obj=new RemNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 257:
{
yyval.obj=new PlusNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 258:
{
yyval.obj=new MinusNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 259:
{
yyval.obj=new LeftShiftLogNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 260:
{
yyval.obj=new RightShiftLogNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 261:
{
yyval.obj=new RightShiftArithNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 262:
{
yyval.obj=new LTNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 263:
{
yyval.obj=new GTNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 264:
{
yyval.obj=new LENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 265:
{
yyval.obj=new GENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 266:
{
yyval.obj=new InstanceOfNode((ExprNode)val_peek(2).obj,(TypeNode)val_peek(0).obj);
}
break;
case 267:
{
yyval.obj=new EQNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 268:
{
yyval.obj=new NENode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 269:
{
yyval.obj=new BitAndNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 270:
{
yyval.obj=new BitOrNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 271:
{
yyval.obj=new BitXorNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 272:
{
yyval.obj=new CandNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 273:
{
yyval.obj=new CorNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 274:
{
yyval.obj=new IfExprNode((ExprNode)val_peek(4).obj,(ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 276:
{
yyval.obj=new AssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 277:
{
yyval.obj=new MultAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 278:
{
yyval.obj=new DivAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 279:
{
yyval.obj=new RemAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 280:
{
yyval.obj=new PlusAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 281:
{
yyval.obj=new MinusAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 282:
{
yyval.obj=new LeftShiftLogAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 283:
{
yyval.obj=new RightShiftLogAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 284:
{
yyval.obj=new RightShiftArithAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 285:
{
yyval.obj=new BitAndAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 286:
{
yyval.obj=new BitXorAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
case 287:
{
yyval.obj=new BitOrAssignNode((ExprNode)val_peek(2).obj,(ExprNode)val_peek(0).obj);
}
break;
}
if (yydebug) debug("String_Node_Str");
state_drop(yym);
yystate=state_peek(0);
val_drop(yym);
yym=yylhs[yyn];
if (yystate == 0 && yym == 0) {
debug("String_Node_Str" + YYFINAL + "String_Node_Str");
yystate=YYFINAL;
state_push(YYFINAL);
val_push(yyval);
if (yychar < 0) {
yychar=yylex();
if (yychar < 0) yychar=0;
if (yydebug) yylexdebug(yystate,yychar);
}
if (yychar == 0) break;
}
 else {
yyn=yygindex[yym];
if ((yyn != 0) && (yyn+=yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate=yytable[yyn];
 else yystate=yydgoto[yym];
debug("String_Node_Str" + state_peek(0) + "String_Node_Str"+ yystate+ "String_Node_Str");
state_push(yystate);
val_push(yyval);
}
}
return 0;
}