OO1Parser.java

Go to the documentation of this file.
00001 /* Generated By:JavaCC: Do not edit this line. OO1Parser.java */
00002 package plp.orientadaObjetos1.parser;
00003 
00004 import java.util.Vector;
00005 import java.io.*;
00006 import java.util.List;
00007 import plp.orientadaObjetos1.*;
00008 import plp.orientadaObjetos1.util.*;
00009 import plp.orientadaObjetos1.expressao.*;
00010 import plp.orientadaObjetos1.expressao.leftExpression.*;
00011 import plp.orientadaObjetos1.expressao.binaria.*;
00012 import plp.orientadaObjetos1.expressao.unaria.*;
00013 import plp.orientadaObjetos1.expressao.valor.*;
00014 import plp.orientadaObjetos1.comando.*;
00015 import plp.orientadaObjetos1.declaracao.classe.*;
00016 import plp.orientadaObjetos1.declaracao.variavel.*;
00017 import plp.orientadaObjetos1.declaracao.*;
00018 import plp.orientadaObjetos1.declaracao.procedimento.*;
00019 import plp.orientadaObjetos1.memoria.*;
00020 import plp.orientadaObjetos1.excecao.declaracao.*;
00021 import plp.orientadaObjetos1.excecao.execucao.*;
00022 import plp.orientadaObjetos1.memoria.colecao.*;
00026 public class OO1Parser implements OO1ParserConstants {
00027 
00034     public static void main(String args[]) {
00035             OO1Parser parser = null;
00036             if (args.length == 0) {
00037                 System.out.println("OO1 PLP Parser Version 0.0.1:  Reading from standard input . . .");
00038                 parser = new OO1Parser(System.in);
00039             } else if (args.length == 1) {
00040                 System.out.println("OO1 PLP Parser Version 0.0.1:  Reading from file " + args[0] + " . . .");
00041                 try {
00042                         parser = new OO1Parser(new java.io.FileInputStream(args[0]));
00043                 } catch (java.io.FileNotFoundException e) {
00044                         System.out.println("Java Parser Version 1.0.2:  File " + args[0] + " not found.");
00045                         return;
00046                 }
00047             } else {
00048                 System.out.println("OO1 PLP Parser Version 0.0.1:  Usage is one of:");
00049                 System.out.println("         java OO1Parser < inputfile");
00050                 System.out.println("OR");
00051                 System.out.println("         java OO1Parser inputfile");
00052                 return;
00053             }
00054             try {
00055                 Programa programa = parser.processaEntrada();
00056                 System.out.println("OO1 PLP Parser Version 0.0.1:  OO1 program parsed successfully.");
00057                 if( programa.checaTipo(new ContextoCompilacaoOO1(new ListaValor())) ) {
00058                       programa.executar(new ContextoExecucaoOO1());
00059                 }
00060                 else {
00061                       System.out.println("Erro de tipo");
00062                 }
00063             } catch (Exception e) {
00064                 System.out.println("OO1 PLP Parser Version 0.0.1:  Encountered errors during parse.");
00065                 e.printStackTrace();
00066             }
00067         }
00068 
00069         public static ListaValor criaListaValor(List valores) {
00070       if (valores.size() == 0) {
00071           return new ListaValor();
00072       }
00073 
00074       Valor primeiro = (Valor) valores.get(0);
00075       valores.remove(0);
00076       return new ListaValor(primeiro, criaListaValor(valores));
00077   }
00078 
00083   final public Programa processaEntrada() throws ParseException {
00084     Programa retorno;
00085     retorno = PPrograma();
00086     jj_consume_token(0);
00087                 {if (true) return retorno;}
00088     throw new Error("Missing return statement in function");
00089   }
00090 
00091 /*
00092  * A partir de agora, serão expostos através desse tipo de comentário
00093  * as partes da BNF envolvidas no codigo mostrado em seguida.
00094  */
00095 
00096 
00100   final public Programa PPrograma() throws ParseException {
00101         DecClasse decClasse = null;
00102         Comando comando     = null;
00103     jj_consume_token(LBRACE);
00104     decClasse = PDecClasse();
00105     jj_consume_token(SEMICOLON);
00106     comando = PComando();
00107     jj_consume_token(RBRACE);
00108                 {if (true) return new Programa(decClasse, comando);}
00109     throw new Error("Missing return statement in function");
00110   }
00111 
00115   final public Comando PComando() throws ParseException {
00116         Comando retorno;
00117     if (jj_2_1(2147483647)) {
00118       retorno = PComandoSequencial();
00119     } else {
00120       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00121       case COMAND_SKIP:
00122       case WHILE:
00123       case READ:
00124       case WRITE:
00125       case IF:
00126       case THIS:
00127       case IDENTIFIER:
00128       case LPAREN:
00129       case LBRACE:
00130         retorno = PComandoSimples();
00131         break;
00132       default:
00133         jj_la1[0] = jj_gen;
00134         jj_consume_token(-1);
00135         throw new ParseException();
00136       }
00137     }
00138         {if (true) return retorno;}
00139     throw new Error("Missing return statement in function");
00140   }
00141 
00145   final public Sequencial PComandoSequencial() throws ParseException {
00146         Comando c1;
00147         Comando c2;
00148     c1 = PComandoSimples();
00149     jj_consume_token(SEMICOLON);
00150     c2 = PComando();
00151                 {if (true) return new Sequencial(c1, c2);}
00152     throw new Error("Missing return statement in function");
00153   }
00154 
00167   final public Comando PComandoSimples() throws ParseException {
00168         Comando retorno;
00169     if (jj_2_2(2147483647)) {
00170       retorno = PSkip();
00171     } else if (jj_2_3(2147483647)) {
00172       retorno = PComDeclaracao();
00173     } else if (jj_2_4(2147483647)) {
00174       retorno = PWhile();
00175     } else if (jj_2_5(2147483647)) {
00176       retorno = PIfThenElse();
00177     } else if (jj_2_6(2147483647)) {
00178       retorno = PIO();
00179     } else if (jj_2_7(2147483647)) {
00180       retorno = PChamadaMetodo();
00181     } else if (jj_2_8(2147483647)) {
00182       retorno = PNew();
00183     } else if (jj_2_9(2147483647)) {
00184       retorno = PAtribuicao();
00185     } else {
00186       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00187       case LPAREN:
00188         jj_consume_token(LPAREN);
00189         retorno = PComando();
00190         jj_consume_token(RPAREN);
00191         break;
00192       default:
00193         jj_la1[1] = jj_gen;
00194         jj_consume_token(-1);
00195         throw new ParseException();
00196       }
00197     }
00198         {if (true) return retorno;}
00199     throw new Error("Missing return statement in function");
00200   }
00201 
00205   final public Skip PSkip() throws ParseException {
00206     jj_consume_token(COMAND_SKIP);
00207                 {if (true) return new Skip();}
00208     throw new Error("Missing return statement in function");
00209   }
00210 
00214   final public ComDeclaracao PComDeclaracao() throws ParseException {
00215         Declaracao dec;
00216         Comando comando;
00217     jj_consume_token(LBRACE);
00218     dec = PDecVariavel();
00219     jj_consume_token(SEMICOLON);
00220     comando = PComando();
00221     jj_consume_token(RBRACE);
00222                 {if (true) return new ComDeclaracao(dec, comando);}
00223     throw new Error("Missing return statement in function");
00224   }
00225 
00229   final public While PWhile() throws ParseException {
00230         Expressao expressao;
00231         Comando comando;
00232     jj_consume_token(WHILE);
00233     expressao = PExpressao();
00234     jj_consume_token(DO);
00235     jj_consume_token(LBRACE);
00236     comando = PComando();
00237     jj_consume_token(RBRACE);
00238                 {if (true) return new While(expressao, comando);}
00239     throw new Error("Missing return statement in function");
00240   }
00241 
00246   final public IfThenElse PIfThenElse() throws ParseException {
00247         Expressao expressao;
00248         Comando comandoThen;
00249         Comando comandoElse;
00250         IfThenElse resposta;
00251     if (jj_2_10(2147483647)) {
00252       jj_consume_token(IF);
00253       expressao = PExpressao();
00254       jj_consume_token(THEN);
00255       jj_consume_token(LBRACE);
00256       comandoThen = PComando();
00257       jj_consume_token(RBRACE);
00258       jj_consume_token(ELSE);
00259       jj_consume_token(LBRACE);
00260       comandoElse = PComando();
00261       jj_consume_token(RBRACE);
00262                         resposta = new IfThenElse (expressao, comandoThen, comandoElse);
00263     } else {
00264       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00265       case IF:
00266         jj_consume_token(IF);
00267         expressao = PExpressao();
00268         jj_consume_token(THEN);
00269         jj_consume_token(LBRACE);
00270         comandoThen = PComando();
00271         jj_consume_token(RBRACE);
00272                         resposta = new IfThenElse (expressao, comandoThen, new Skip());
00273         break;
00274       default:
00275         jj_la1[2] = jj_gen;
00276         jj_consume_token(-1);
00277         throw new ParseException();
00278       }
00279     }
00280                 {if (true) return resposta;}
00281     throw new Error("Missing return statement in function");
00282   }
00283 
00288   final public ChamadaMetodo PChamadaMetodo() throws ParseException {
00289         Expressao expressao;
00290         Id nomeMetodo;
00291         ListaExpressao parametros= null;
00292     if (jj_2_11(2147483647)) {
00293       expressao = PExpressaoChamadora();
00294       jj_consume_token(DOT);
00295       nomeMetodo = PId();
00296       jj_consume_token(LPAREN);
00297       jj_consume_token(RPAREN);
00298     } else {
00299       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00300       case THIS:
00301       case IDENTIFIER:
00302       case LPAREN:
00303         expressao = PExpressaoChamadora();
00304         jj_consume_token(DOT);
00305         nomeMetodo = PId();
00306         jj_consume_token(LPAREN);
00307         parametros = PListaExpressao();
00308         jj_consume_token(RPAREN);
00309         break;
00310       default:
00311         jj_la1[3] = jj_gen;
00312         jj_consume_token(-1);
00313         throw new ParseException();
00314       }
00315     }
00316                 if (parametros == null){
00317                         parametros = new ListaExpressao();
00318                 }
00319                 {if (true) return new ChamadaMetodo(expressao, nomeMetodo, parametros);}
00320     throw new Error("Missing return statement in function");
00321   }
00322 
00326   final public ListaExpressao PListaExpressao() throws ParseException {
00327         ListaExpressao retorno;
00328         Expressao exp;
00329     if (jj_2_12(2147483647)) {
00330       retorno = PListaExpressaoComposta();
00331     } else {
00332       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00333       case NOT:
00334       case LENGTH:
00335       case TRUE:
00336       case FALSE:
00337       case THIS:
00338       case NULL:
00339       case INTEGER_LITERAL:
00340       case STRING_LITERAL:
00341       case IDENTIFIER:
00342       case LPAREN:
00343       case MINUS:
00344         exp = PListaExpressaoAtomica();
00345                         retorno = new ListaExpressao(exp);
00346         break;
00347       default:
00348         jj_la1[4] = jj_gen;
00349         jj_consume_token(-1);
00350         throw new ParseException();
00351       }
00352     }
00353                 {if (true) return retorno;}
00354     throw new Error("Missing return statement in function");
00355   }
00356 
00360   final public ListaExpressao PListaExpressaoComposta() throws ParseException {
00361         Expressao e1;
00362         ListaExpressao e2;
00363     e1 = PListaExpressaoAtomica();
00364     jj_consume_token(COMMA);
00365     e2 = PListaExpressao();
00366                 {if (true) return new ListaExpressao(e1, e2);}
00367     throw new Error("Missing return statement in function");
00368   }
00369 
00373   final public Expressao PListaExpressaoAtomica() throws ParseException {
00374         Expressao retorno;
00375     retorno = PExpressao();
00376                 {if (true) return retorno;}
00377     throw new Error("Missing return statement in function");
00378   }
00379 
00383   final public New PNew() throws ParseException {
00384         LeftExpression av;
00385         Id idClasse;
00386     av = PLeftExpression();
00387     jj_consume_token(ATTRIB);
00388     jj_consume_token(NEW);
00389     idClasse = PId();
00390                 {if (true) return new New(av, idClasse);}
00391     throw new Error("Missing return statement in function");
00392   }
00393 
00397   final public Atribuicao PAtribuicao() throws ParseException {
00398         LeftExpression av;
00399         Expressao exp;
00400     av = PLeftExpression();
00401     jj_consume_token(ATTRIB);
00402     exp = PExpressao();
00403                 {if (true) return new Atribuicao(av, exp);}
00404     throw new Error("Missing return statement in function");
00405   }
00406 
00410   final public IO PIO() throws ParseException {
00411         IO retorno;
00412     if (jj_2_13(2147483647)) {
00413       retorno = PWrite();
00414     } else {
00415       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00416       case READ:
00417         retorno = PRead();
00418         break;
00419       default:
00420         jj_la1[5] = jj_gen;
00421         jj_consume_token(-1);
00422         throw new ParseException();
00423       }
00424     }
00425                 {if (true) return retorno;}
00426     throw new Error("Missing return statement in function");
00427   }
00428 
00432   final public Read PRead() throws ParseException {
00433         Id id;
00434     jj_consume_token(READ);
00435     jj_consume_token(LPAREN);
00436     id = PId();
00437     jj_consume_token(RPAREN);
00438                 {if (true) return new Read (id);}
00439     throw new Error("Missing return statement in function");
00440   }
00441 
00445   final public Write PWrite() throws ParseException {
00446         Expressao exp;
00447     jj_consume_token(WRITE);
00448     jj_consume_token(LPAREN);
00449     exp = PExpressao();
00450     jj_consume_token(RPAREN);
00451                 {if (true) return new Write(exp);}
00452     throw new Error("Missing return statement in function");
00453   }
00454 
00458   final public Expressao PExpressao() throws ParseException {
00459         Expressao retorno;
00460     retorno = PExpBinaria();
00461                 {if (true) return retorno;}
00462     throw new Error("Missing return statement in function");
00463   }
00464 
00468   final public Expressao PExpPrimaria() throws ParseException {
00469     Expressao retorno;
00470     if (jj_2_14(2147483647)) {
00471       retorno = PLeftExpression();
00472     } else if (jj_2_15(2147483647)) {
00473       retorno = PThis();
00474     } else if (jj_2_16(2147483647)) {
00475       jj_consume_token(LPAREN);
00476       retorno = PExpressao();
00477       jj_consume_token(RPAREN);
00478     } else {
00479       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00480       case TRUE:
00481       case FALSE:
00482       case NULL:
00483       case INTEGER_LITERAL:
00484       case STRING_LITERAL:
00485         retorno = PValor();
00486         break;
00487       default:
00488         jj_la1[6] = jj_gen;
00489         jj_consume_token(-1);
00490         throw new ParseException();
00491       }
00492     }
00493                 {if (true) return retorno;}
00494     throw new Error("Missing return statement in function");
00495   }
00496 
00500   final public Valor PValor() throws ParseException {
00501         Valor retorno;
00502     if (jj_2_17(2147483647)) {
00503       retorno = PValorNull();
00504     } else if (jj_2_18(2147483647)) {
00505       retorno = PValorInteiro();
00506     } else if (jj_2_19(2147483647)) {
00507       retorno = PValorBooleano();
00508     } else {
00509       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00510       case STRING_LITERAL:
00511         retorno = PValorString();
00512         break;
00513       default:
00514         jj_la1[7] = jj_gen;
00515         jj_consume_token(-1);
00516         throw new ParseException();
00517       }
00518     }
00519                 {if (true) return retorno;}
00520     throw new Error("Missing return statement in function");
00521   }
00522 
00526   final public Valor PValorInteiro() throws ParseException {
00527         Token token;
00528     token = jj_consume_token(INTEGER_LITERAL);
00529                 {if (true) return new ValorInteiro(Integer.parseInt(token.toString()));}
00530     throw new Error("Missing return statement in function");
00531   }
00532 
00536   final public ValorNull PValorNull() throws ParseException {
00537     jj_consume_token(NULL);
00538                 {if (true) return new ValorNull();}
00539     throw new Error("Missing return statement in function");
00540   }
00541 
00545   final public Valor PValorBooleano() throws ParseException {
00546     if (jj_2_20(2147483647)) {
00547       jj_consume_token(FALSE);
00548                         {if (true) return new ValorBooleano(false);}
00549     } else {
00550       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00551       case TRUE:
00552         jj_consume_token(TRUE);
00553                 {if (true) return new ValorBooleano(true);}
00554         break;
00555       default:
00556         jj_la1[8] = jj_gen;
00557         jj_consume_token(-1);
00558         throw new ParseException();
00559       }
00560     }
00561     throw new Error("Missing return statement in function");
00562   }
00563 
00567   final public Valor PValorString() throws ParseException {
00568         Token token;
00569     token = jj_consume_token(STRING_LITERAL);
00570                 String tokenStr = token.toString();
00571 
00572                 //a seguir, serao retiradas as aspas do literal string
00573                 tokenStr = tokenStr.substring(1,tokenStr.length()-1);
00574 
00575                 {if (true) return new ValorString(tokenStr);}
00576     throw new Error("Missing return statement in function");
00577   }
00578 
00582   final public Expressao PExpUnaria() throws ParseException {
00583         Expressao retorno;
00584     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00585     case MINUS:
00586       retorno = PExpMenos();
00587       break;
00588     case NOT:
00589       retorno = PExpNot();
00590       break;
00591     case LENGTH:
00592       retorno = PExpLength();
00593       break;
00594     case TRUE:
00595     case FALSE:
00596     case THIS:
00597     case NULL:
00598     case INTEGER_LITERAL:
00599     case STRING_LITERAL:
00600     case IDENTIFIER:
00601     case LPAREN:
00602       retorno = PExpPrimaria();
00603       break;
00604     default:
00605       jj_la1[9] = jj_gen;
00606       jj_consume_token(-1);
00607       throw new ParseException();
00608     }
00609                 {if (true) return retorno;}
00610     throw new Error("Missing return statement in function");
00611   }
00612 
00616   final public Expressao PExpMenos() throws ParseException {
00617         Expressao retorno;
00618     jj_consume_token(MINUS);
00619     retorno = PExpressao();
00620                 {if (true) return new ExpMenos(retorno);}
00621     throw new Error("Missing return statement in function");
00622   }
00623 
00627   final public Expressao PExpNot() throws ParseException {
00628         Expressao retorno;
00629     jj_consume_token(NOT);
00630     retorno = PExpressao();
00631                 {if (true) return new ExpNot(retorno);}
00632     throw new Error("Missing return statement in function");
00633   }
00634 
00638   final public Expressao PExpLength() throws ParseException {
00639         Expressao retorno;
00640     jj_consume_token(LENGTH);
00641     retorno = PExpressao();
00642                 {if (true) return new ExpLength(retorno);}
00643     throw new Error("Missing return statement in function");
00644   }
00645 
00655   final public Expressao PExpBinaria() throws ParseException {
00656         Expressao retorno, param2;
00657     retorno = PExpUnaria();
00658     label_1:
00659     while (true) {
00660       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00661       case AND:
00662       case OR:
00663       case EQ:
00664       case CONCAT:
00665       case PLUS:
00666       case MINUS:
00667         ;
00668         break;
00669       default:
00670         jj_la1[10] = jj_gen;
00671         break label_1;
00672       }
00673       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00674       case CONCAT:
00675         jj_consume_token(CONCAT);
00676         param2 = PExpUnaria();
00677                 retorno = new ExpConcat(retorno, param2);
00678         break;
00679       case MINUS:
00680         jj_consume_token(MINUS);
00681         param2 = PExpUnaria();
00682                 retorno = new ExpSub(retorno, param2);
00683         break;
00684       case AND:
00685         jj_consume_token(AND);
00686         param2 = PExpUnaria();
00687                 retorno = new ExpAnd(retorno, param2);
00688         break;
00689       case OR:
00690         jj_consume_token(OR);
00691         param2 = PExpUnaria();
00692                 retorno = new ExpOr(retorno, param2);
00693         break;
00694       case EQ:
00695         jj_consume_token(EQ);
00696         param2 = PExpUnaria();
00697                 retorno = new ExpEquals(retorno, param2);
00698         break;
00699       case PLUS:
00700         jj_consume_token(PLUS);
00701         param2 = PExpUnaria();
00702                 retorno = new ExpSoma(retorno, param2);
00703         break;
00704       default:
00705         jj_la1[11] = jj_gen;
00706         jj_consume_token(-1);
00707         throw new ParseException();
00708       }
00709     }
00710                 {if (true) return retorno;}
00711     throw new Error("Missing return statement in function");
00712   }
00713 
00717   final public This PThis() throws ParseException {
00718     jj_consume_token(THIS);
00719                 {if (true) return new This();}
00720     throw new Error("Missing return statement in function");
00721   }
00722 
00726   final public LeftExpression PLeftExpression() throws ParseException {
00727         LeftExpression retorno;
00728     if (jj_2_21(2147483647)) {
00729       retorno = PAcessoAtributoId();
00730     } else if (jj_2_22(2147483647)) {
00731       retorno = PAcessoAtributoThis();
00732     } else if (jj_2_23(2147483647)) {
00733       retorno = PId();
00734     } else {
00735       jj_consume_token(-1);
00736       throw new ParseException();
00737     }
00738                 {if (true) return retorno;}
00739     throw new Error("Missing return statement in function");
00740   }
00741 
00745   final public Id PId() throws ParseException {
00746         Token token;
00747     token = jj_consume_token(IDENTIFIER);
00748                 {if (true) return new Id(token.toString());}
00749     throw new Error("Missing return statement in function");
00750   }
00751 
00755   final public AcessoAtributo PAcessoAtributo() throws ParseException {
00756         AcessoAtributo retorno;
00757     if (jj_2_24(2147483647)) {
00758       retorno = PAcessoAtributoThis();
00759     } else {
00760       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00761       case IDENTIFIER:
00762       case LPAREN:
00763         retorno = PAcessoAtributoId();
00764         break;
00765       default:
00766         jj_la1[12] = jj_gen;
00767         jj_consume_token(-1);
00768         throw new ParseException();
00769       }
00770     }
00771                 {if (true) return retorno;}
00772     throw new Error("Missing return statement in function");
00773   }
00774 
00778   final public AcessoAtributoThis PAcessoAtributoThis() throws ParseException {
00779         This t;
00780         Id id;
00781     if (jj_2_25(2147483647)) {
00782       jj_consume_token(LPAREN);
00783       t = PThis();
00784       jj_consume_token(RPAREN);
00785       jj_consume_token(DOT);
00786       id = PId();
00787     } else {
00788       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00789       case THIS:
00790         t = PThis();
00791         jj_consume_token(DOT);
00792         id = PId();
00793         break;
00794       default:
00795         jj_la1[13] = jj_gen;
00796         jj_consume_token(-1);
00797         throw new ParseException();
00798       }
00799     }
00800                 {if (true) return new AcessoAtributoThis(t, id);}
00801     throw new Error("Missing return statement in function");
00802   }
00803 
00807   final public AcessoAtributoId PAcessoAtributoId() throws ParseException {
00808         LeftExpression av;
00809         Id id;
00810     if (jj_2_26(2147483647)) {
00811       jj_consume_token(LPAREN);
00812       av = PLeftExpression();
00813       jj_consume_token(RPAREN);
00814     } else {
00815       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00816       case IDENTIFIER:
00817         av = PId();
00818         break;
00819       default:
00820         jj_la1[14] = jj_gen;
00821         jj_consume_token(-1);
00822         throw new ParseException();
00823       }
00824     }
00825     jj_consume_token(DOT);
00826     id = PId();
00827                 {if (true) return new AcessoAtributoId(av, id);}
00828     throw new Error("Missing return statement in function");
00829   }
00830 
00839   final public Expressao PExpressaoChamadora() throws ParseException {
00840     Expressao exp;
00841     if (jj_2_27(2147483647)) {
00842       exp = PThis();
00843     } else if (jj_2_28(2147483647)) {
00844       exp = PId();
00845     } else if (jj_2_29(2147483647)) {
00846       exp = PLeftExpressionChamadora();
00847     } else {
00848       jj_consume_token(-1);
00849       throw new ParseException();
00850     }
00851         {if (true) return exp;}
00852     throw new Error("Missing return statement in function");
00853   }
00854 
00858   final public LeftExpression PLeftExpressionChamadora() throws ParseException {
00859         LeftExpression retorno;
00860     if (jj_2_30(2147483647)) {
00861       retorno = PAcessoAtributoIdChamador();
00862     } else if (jj_2_31(2147483647)) {
00863       retorno = PAcessoAtributoThis();
00864     } else if (jj_2_32(2147483647)) {
00865       retorno = PId();
00866     } else {
00867       jj_consume_token(-1);
00868       throw new ParseException();
00869     }
00870                 {if (true) return retorno;}
00871     throw new Error("Missing return statement in function");
00872   }
00873 
00877   final public AcessoAtributoId PAcessoAtributoIdChamador() throws ParseException {
00878         LeftExpression av;
00879         Id id;
00880     if (jj_2_33(2147483647)) {
00881       jj_consume_token(LPAREN);
00882       av = PLeftExpressionChamadora();
00883       jj_consume_token(RPAREN);
00884       jj_consume_token(DOT);
00885       id = PId();
00886     } else if (jj_2_34(2147483647)) {
00887       av = PId();
00888       jj_consume_token(DOT);
00889       id = PId();
00890     } else {
00891       jj_consume_token(-1);
00892       throw new ParseException();
00893     }
00894                 {if (true) return new AcessoAtributoId(av, id);}
00895     throw new Error("Missing return statement in function");
00896   }
00897 
00902   final public DecClasse PDecClasse() throws ParseException {
00903         DecClasse retorno;
00904     if (jj_2_35(2147483647)) {
00905       retorno = PDecClasseComposta();
00906     } else {
00907       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00908       case CLASSE:
00909         retorno = PDecClasseAtomica();
00910         break;
00911       default:
00912         jj_la1[15] = jj_gen;
00913         jj_consume_token(-1);
00914         throw new ParseException();
00915       }
00916     }
00917                 {if (true) return retorno;}
00918     throw new Error("Missing return statement in function");
00919   }
00920 
00924   final public DecClasse PDecClasseAtomica() throws ParseException {
00925         Id nomeClasse;
00926         DecVariavel atributos;
00927         DecProcedimento metodos;
00928     jj_consume_token(CLASSE);
00929     nomeClasse = PId();
00930     jj_consume_token(LBRACE);
00931     atributos = PDecVariavel();
00932     jj_consume_token(SEMICOLON);
00933     metodos = PDecProcedimento();
00934     jj_consume_token(RBRACE);
00935                 {if (true) return new DecClasseSimples(nomeClasse, atributos, metodos);}
00936     throw new Error("Missing return statement in function");
00937   }
00938 
00942   final public DecClasseComposta PDecClasseComposta() throws ParseException {
00943         DecClasse d1;
00944         DecClasse d2;
00945     d1 = PDecClasseAtomica();
00946     jj_consume_token(COMMA);
00947     d2 = PDecClasse();
00948                 {if (true) return new DecClasseComposta(d1, d2);}
00949     throw new Error("Missing return statement in function");
00950   }
00951 
00958   final public DecVariavel PDecVariavel() throws ParseException {
00959         DecVariavel retorno;
00960     if (jj_2_36(2147483647)) {
00961       retorno = PCompostaDecVariavel();
00962     } else {
00963       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
00964       case INT:
00965       case BOOLEAN:
00966       case STRING:
00967       case IDENTIFIER:
00968       case LPAREN:
00969         retorno = PDecVariavelAtomica();
00970         break;
00971       default:
00972         jj_la1[16] = jj_gen;
00973         jj_consume_token(-1);
00974         throw new ParseException();
00975       }
00976     }
00977                 {if (true) return retorno;}
00978     throw new Error("Missing return statement in function");
00979   }
00980 
00984   final public CompostaDecVariavel PCompostaDecVariavel() throws ParseException {
00985         DecVariavel d1;
00986         DecVariavel d2;
00987     d1 = PDecVariavelAtomica();
00988     jj_consume_token(COMMA);
00989     d2 = PDecVariavel();
00990          {if (true) return new CompostaDecVariavel(d1, d2);}
00991     throw new Error("Missing return statement in function");
00992   }
00993 
00997   final public DecVariavel PDecVariavelAtomica() throws ParseException {
00998         DecVariavel retorno;
00999     if (jj_2_37(2147483647)) {
01000       retorno = PDecVariavelObjeto();
01001     } else if (jj_2_38(2147483647)) {
01002       jj_consume_token(LPAREN);
01003       retorno = PDecVariavel();
01004       jj_consume_token(RPAREN);
01005     } else if (jj_2_39(2147483647)) {
01006       retorno = PSimplesDecVariavel();
01007     } else {
01008       jj_consume_token(-1);
01009       throw new ParseException();
01010     }
01011                 {if (true) return retorno;}
01012     throw new Error("Missing return statement in function");
01013   }
01014 
01018   final public DecVariavelObjeto PDecVariavelObjeto() throws ParseException {
01019         Id id, idClasse;
01020         Tipo tipo;
01021     tipo = PTipo();
01022     id = PId();
01023     jj_consume_token(ATTRIB);
01024     jj_consume_token(NEW);
01025     idClasse = PId();
01026                 {if (true) return new DecVariavelObjeto(tipo, id, idClasse);}
01027     throw new Error("Missing return statement in function");
01028   }
01029 
01033   final public SimplesDecVariavel PSimplesDecVariavel() throws ParseException {
01034         Id id;
01035         Expressao exp;
01036         SimplesDecVariavel retorno;
01037         Tipo tipo;
01038     tipo = PTipo();
01039     id = PId();
01040     jj_consume_token(ASSIGN);
01041     exp = PExpressao();
01042                         retorno = new SimplesDecVariavel(tipo, id, exp);
01043                 {if (true) return retorno;}
01044     throw new Error("Missing return statement in function");
01045   }
01046 
01052   final public DecProcedimento PDecProcedimento() throws ParseException {
01053         DecProcedimento retorno;
01054     if (jj_2_40(2147483647)) {
01055       retorno = PDecProcedimentoComposta();
01056     } else {
01057       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
01058       case PROC:
01059         retorno = PDecProcedimentoSimples();
01060         break;
01061       default:
01062         jj_la1[17] = jj_gen;
01063         jj_consume_token(-1);
01064         throw new ParseException();
01065       }
01066     }
01067                 {if (true) return retorno;}
01068     throw new Error("Missing return statement in function");
01069   }
01070 
01074   final public DecProcedimentoComposta PDecProcedimentoComposta() throws ParseException {
01075         DecProcedimento d1;
01076         DecProcedimento d2;
01077     d1 = PDecProcedimentoSimples();
01078     jj_consume_token(COMMA);
01079     d2 = PDecProcedimento();
01080                 {if (true) return new DecProcedimentoComposta(d1, d2);}
01081     throw new Error("Missing return statement in function");
01082   }
01083 
01087   final public DecProcedimento PDecProcedimentoSimples() throws ParseException {
01088         Id nome;
01089         ListaDeclaracaoParametro listaPar = null;
01090         Comando comando;
01091     if (jj_2_41(2147483647)) {
01092       jj_consume_token(PROC);
01093       nome = PId();
01094       jj_consume_token(LPAREN);
01095       jj_consume_token(RPAREN);
01096       jj_consume_token(LBRACE);
01097       comando = PComando();
01098       jj_consume_token(RBRACE);
01099     } else {
01100       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
01101       case PROC:
01102         jj_consume_token(PROC);
01103         nome = PId();
01104         jj_consume_token(LPAREN);
01105         listaPar = PListaDeclaracaoParametro();
01106         jj_consume_token(RPAREN);
01107         jj_consume_token(LBRACE);
01108         comando = PComando();
01109         jj_consume_token(RBRACE);
01110         break;
01111       default:
01112         jj_la1[18] = jj_gen;
01113         jj_consume_token(-1);
01114         throw new ParseException();
01115       }
01116     }
01117             if(listaPar == null) {
01118                 listaPar = new ListaDeclaracaoParametro();
01119             }
01120             {if (true) return new DecProcedimentoSimples(nome, listaPar, comando);}
01121     throw new Error("Missing return statement in function");
01122   }
01123 
01127   final public ListaDeclaracaoParametro PListaDeclaracaoParametro() throws ParseException {
01128         ListaDeclaracaoParametro retorno;
01129         DecParametro decPar;
01130     if (jj_2_42(2147483647)) {
01131       retorno = PDecParametroComposto();
01132     } else {
01133       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
01134       case INT:
01135       case BOOLEAN:
01136       case STRING:
01137       case IDENTIFIER:
01138         decPar = PDecParametroAtomico();
01139                         retorno = new ListaDeclaracaoParametro(decPar);
01140         break;
01141       default:
01142         jj_la1[19] = jj_gen;
01143         jj_consume_token(-1);
01144         throw new ParseException();
01145       }
01146     }
01147                 {if (true) return retorno;}
01148     throw new Error("Missing return statement in function");
01149   }
01150 
01154   final public ListaDeclaracaoParametro PDecParametroComposto() throws ParseException {
01155         DecParametro d1;
01156         ListaDeclaracaoParametro d2;
01157     d1 = PDecParametroAtomico();
01158     jj_consume_token(COMMA);
01159     d2 = PListaDeclaracaoParametro();
01160                 {if (true) return new ListaDeclaracaoParametro(d1, d2);}
01161     throw new Error("Missing return statement in function");
01162   }
01163 
01167   final public DecParametro PDecParametroAtomico() throws ParseException {
01168         DecParametro retorno;
01169         Tipo tipo;
01170         Id id;
01171     tipo = PTipo();
01172     id = PId();
01173                 {if (true) return new DecParametro(id, tipo);}
01174     throw new Error("Missing return statement in function");
01175   }
01176 
01180   final public Tipo PTipo() throws ParseException {
01181         Tipo tipo;
01182     if (jj_2_43(2147483647)) {
01183       tipo = PTipoPrimitivo();
01184     } else {
01185       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
01186       case IDENTIFIER:
01187         tipo = PTipoClasse();
01188         break;
01189       default:
01190         jj_la1[20] = jj_gen;
01191         jj_consume_token(-1);
01192         throw new ParseException();
01193       }
01194     }
01195                 {if (true) return tipo;}
01196     throw new Error("Missing return statement in function");
01197   }
01198 
01202   final public Tipo PTipoPrimitivo() throws ParseException {
01203     Tipo retorno;
01204     if (jj_2_44(2147483647)) {
01205       jj_consume_token(INT);
01206                                 retorno = TipoPrimitivo.TIPO_INTEIRO;
01207     } else if (jj_2_45(2147483647)) {
01208       jj_consume_token(BOOLEAN);
01209                                 retorno = TipoPrimitivo.TIPO_BOOLEANO;
01210     } else {
01211       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
01212       case STRING:
01213         jj_consume_token(STRING);
01214                         retorno = TipoPrimitivo.TIPO_STRING;
01215         break;
01216       default:
01217         jj_la1[21] = jj_gen;
01218         jj_consume_token(-1);
01219         throw new ParseException();
01220       }
01221     }
01222                 {if (true) return retorno;}
01223     throw new Error("Missing return statement in function");
01224   }
01225 
01229   final public Tipo PTipoClasse() throws ParseException {
01230     Tipo retorno;
01231     Id id;
01232     id = PId();
01233                         retorno = new TipoClasse(id);
01234                 {if (true) return retorno;}
01235     throw new Error("Missing return statement in function");
01236   }
01237 
01238   final private boolean jj_2_1(int xla) {
01239     jj_la = xla; jj_lastpos = jj_scanpos = token;
01240     try { return !jj_3_1(); }
01241     catch(LookaheadSuccess ls) { return true; }
01242     finally { jj_save(0, xla); }
01243   }
01244 
01245   final private boolean jj_2_2(int xla) {
01246     jj_la = xla; jj_lastpos = jj_scanpos = token;
01247     try { return !jj_3_2(); }
01248     catch(LookaheadSuccess ls) { return true; }
01249     finally { jj_save(1, xla); }
01250   }
01251 
01252   final private boolean jj_2_3(int xla) {
01253     jj_la = xla; jj_lastpos = jj_scanpos = token;
01254     try { return !jj_3_3(); }
01255     catch(LookaheadSuccess ls) { return true; }
01256     finally { jj_save(2, xla); }
01257   }
01258 
01259   final private boolean jj_2_4(int xla) {
01260     jj_la = xla; jj_lastpos = jj_scanpos = token;
01261     try { return !jj_3_4(); }
01262     catch(LookaheadSuccess ls) { return true; }
01263     finally { jj_save(3, xla); }
01264   }
01265 
01266   final private boolean jj_2_5(int xla) {
01267     jj_la = xla; jj_lastpos = jj_scanpos = token;
01268     try { return !jj_3_5(); }
01269     catch(LookaheadSuccess ls) { return true; }
01270     finally { jj_save(4, xla); }
01271   }
01272 
01273   final private boolean jj_2_6(int xla) {
01274     jj_la = xla; jj_lastpos = jj_scanpos = token;
01275     try { return !jj_3_6(); }
01276     catch(LookaheadSuccess ls) { return true; }
01277     finally { jj_save(5, xla); }
01278   }
01279 
01280   final private boolean jj_2_7(int xla) {
01281     jj_la = xla; jj_lastpos = jj_scanpos = token;
01282     try { return !jj_3_7(); }
01283     catch(LookaheadSuccess ls) { return true; }
01284     finally { jj_save(6, xla); }
01285   }
01286 
01287   final private boolean jj_2_8(int xla) {
01288     jj_la = xla; jj_lastpos = jj_scanpos = token;
01289     try { return !jj_3_8(); }
01290     catch(LookaheadSuccess ls) { return true; }
01291     finally { jj_save(7, xla); }
01292   }
01293 
01294   final private boolean jj_2_9(int xla) {
01295     jj_la = xla; jj_lastpos = jj_scanpos = token;
01296     try { return !jj_3_9(); }
01297     catch(LookaheadSuccess ls) { return true; }
01298     finally { jj_save(8, xla); }
01299   }
01300 
01301   final private boolean jj_2_10(int xla) {
01302     jj_la = xla; jj_lastpos = jj_scanpos = token;
01303     try { return !jj_3_10(); }
01304     catch(LookaheadSuccess ls) { return true; }
01305     finally { jj_save(9, xla); }
01306   }
01307 
01308   final private boolean jj_2_11(int xla) {
01309     jj_la = xla; jj_lastpos = jj_scanpos = token;
01310     try { return !jj_3_11(); }
01311     catch(LookaheadSuccess ls) { return true; }
01312     finally { jj_save(10, xla); }
01313   }
01314 
01315   final private boolean jj_2_12(int xla) {
01316     jj_la = xla; jj_lastpos = jj_scanpos = token;
01317     try { return !jj_3_12(); }
01318     catch(LookaheadSuccess ls) { return true; }
01319     finally { jj_save(11, xla); }
01320   }
01321 
01322   final private boolean jj_2_13(int xla) {
01323     jj_la = xla; jj_lastpos = jj_scanpos = token;
01324     try { return !jj_3_13(); }
01325     catch(LookaheadSuccess ls) { return true; }
01326     finally { jj_save(12, xla); }
01327   }
01328 
01329   final private boolean jj_2_14(int xla) {
01330     jj_la = xla; jj_lastpos = jj_scanpos = token;
01331     try { return !jj_3_14(); }
01332     catch(LookaheadSuccess ls) { return true; }
01333     finally { jj_save(13, xla); }
01334   }
01335 
01336   final private boolean jj_2_15(int xla) {
01337     jj_la = xla; jj_lastpos = jj_scanpos = token;
01338     try { return !jj_3_15(); }
01339     catch(LookaheadSuccess ls) { return true; }
01340     finally { jj_save(14, xla); }
01341   }
01342 
01343   final private boolean jj_2_16(int xla) {
01344     jj_la = xla; jj_lastpos = jj_scanpos = token;
01345     try { return !jj_3_16(); }
01346     catch(LookaheadSuccess ls) { return true; }
01347     finally { jj_save(15, xla); }
01348   }
01349 
01350   final private boolean jj_2_17(int xla) {
01351     jj_la = xla; jj_lastpos = jj_scanpos = token;
01352     try { return !jj_3_17(); }
01353     catch(LookaheadSuccess ls) { return true; }
01354     finally { jj_save(16, xla); }
01355   }
01356 
01357   final private boolean jj_2_18(int xla) {
01358     jj_la = xla; jj_lastpos = jj_scanpos = token;
01359     try { return !jj_3_18(); }
01360     catch(LookaheadSuccess ls) { return true; }
01361     finally { jj_save(17, xla); }
01362   }
01363 
01364   final private boolean jj_2_19(int xla) {
01365     jj_la = xla; jj_lastpos = jj_scanpos = token;
01366     try { return !jj_3_19(); }
01367     catch(LookaheadSuccess ls) { return true; }
01368     finally { jj_save(18, xla); }
01369   }
01370 
01371   final private boolean jj_2_20(int xla) {
01372     jj_la = xla; jj_lastpos = jj_scanpos = token;
01373     try { return !jj_3_20(); }
01374     catch(LookaheadSuccess ls) { return true; }
01375     finally { jj_save(19, xla); }
01376   }
01377 
01378   final private boolean jj_2_21(int xla) {
01379     jj_la = xla; jj_lastpos = jj_scanpos = token;
01380     try { return !jj_3_21(); }
01381     catch(LookaheadSuccess ls) { return true; }
01382     finally { jj_save(20, xla); }
01383   }
01384 
01385   final private boolean jj_2_22(int xla) {
01386     jj_la = xla; jj_lastpos = jj_scanpos = token;
01387     try { return !jj_3_22(); }
01388     catch(LookaheadSuccess ls) { return true; }
01389     finally { jj_save(21, xla); }
01390   }
01391 
01392   final private boolean jj_2_23(int xla) {
01393     jj_la = xla; jj_lastpos = jj_scanpos = token;
01394     try { return !jj_3_23(); }
01395     catch(LookaheadSuccess ls) { return true; }
01396     finally { jj_save(22, xla); }
01397   }
01398 
01399   final private boolean jj_2_24(int xla) {
01400     jj_la = xla; jj_lastpos = jj_scanpos = token;
01401     try { return !jj_3_24(); }
01402     catch(LookaheadSuccess ls) { return true; }
01403     finally { jj_save(23, xla); }
01404   }
01405 
01406   final private boolean jj_2_25(int xla) {
01407     jj_la = xla; jj_lastpos = jj_scanpos = token;
01408     try { return !jj_3_25(); }
01409     catch(LookaheadSuccess ls) { return true; }
01410     finally { jj_save(24, xla); }
01411   }
01412 
01413   final private boolean jj_2_26(int xla) {
01414     jj_la = xla; jj_lastpos = jj_scanpos = token;
01415     try { return !jj_3_26(); }
01416     catch(LookaheadSuccess ls) { return true; }
01417     finally { jj_save(25, xla); }
01418   }
01419 
01420   final private boolean jj_2_27(int xla) {
01421     jj_la = xla; jj_lastpos = jj_scanpos = token;
01422     try { return !jj_3_27(); }
01423     catch(LookaheadSuccess ls) { return true; }
01424     finally { jj_save(26, xla); }
01425   }
01426 
01427   final private boolean jj_2_28(int xla) {
01428     jj_la = xla; jj_lastpos = jj_scanpos = token;
01429     try { return !jj_3_28(); }
01430     catch(LookaheadSuccess ls) { return true; }
01431     finally { jj_save(27, xla); }
01432   }
01433 
01434   final private boolean jj_2_29(int xla) {
01435     jj_la = xla; jj_lastpos = jj_scanpos = token;
01436     try { return !jj_3_29(); }
01437     catch(LookaheadSuccess ls) { return true; }
01438     finally { jj_save(28, xla); }
01439   }
01440 
01441   final private boolean jj_2_30(int xla) {
01442     jj_la = xla; jj_lastpos = jj_scanpos = token;
01443     try { return !jj_3_30(); }
01444     catch(LookaheadSuccess ls) { return true; }
01445     finally { jj_save(29, xla); }
01446   }
01447 
01448   final private boolean jj_2_31(int xla) {
01449     jj_la = xla; jj_lastpos = jj_scanpos = token;
01450     try { return !jj_3_31(); }
01451     catch(LookaheadSuccess ls) { return true; }
01452     finally { jj_save(30, xla); }
01453   }
01454 
01455   final private boolean jj_2_32(int xla) {
01456     jj_la = xla; jj_lastpos = jj_scanpos = token;
01457     try { return !jj_3_32(); }
01458     catch(LookaheadSuccess ls) { return true; }
01459     finally { jj_save(31, xla); }
01460   }
01461 
01462   final private boolean jj_2_33(int xla) {
01463     jj_la = xla; jj_lastpos = jj_scanpos = token;
01464     try { return !jj_3_33(); }
01465     catch(LookaheadSuccess ls) { return true; }
01466     finally { jj_save(32, xla); }
01467   }
01468 
01469   final private boolean jj_2_34(int xla) {
01470     jj_la = xla; jj_lastpos = jj_scanpos = token;
01471     try { return !jj_3_34(); }
01472     catch(LookaheadSuccess ls) { return true; }
01473     finally { jj_save(33, xla); }
01474   }
01475 
01476   final private boolean jj_2_35(int xla) {
01477     jj_la = xla; jj_lastpos = jj_scanpos = token;
01478     try { return !jj_3_35(); }
01479     catch(LookaheadSuccess ls) { return true; }
01480     finally { jj_save(34, xla); }
01481   }
01482 
01483   final private boolean jj_2_36(int xla) {
01484     jj_la = xla; jj_lastpos = jj_scanpos = token;
01485     try { return !jj_3_36(); }
01486     catch(LookaheadSuccess ls) { return true; }
01487     finally { jj_save(35, xla); }
01488   }
01489 
01490   final private boolean jj_2_37(int xla) {
01491     jj_la = xla; jj_lastpos = jj_scanpos = token;
01492     try { return !jj_3_37(); }
01493     catch(LookaheadSuccess ls) { return true; }
01494     finally { jj_save(36, xla); }
01495   }
01496 
01497   final private boolean jj_2_38(int xla) {
01498     jj_la = xla; jj_lastpos = jj_scanpos = token;
01499     try { return !jj_3_38(); }
01500     catch(LookaheadSuccess ls) { return true; }
01501     finally { jj_save(37, xla); }
01502   }
01503 
01504   final private boolean jj_2_39(int xla) {
01505     jj_la = xla; jj_lastpos = jj_scanpos = token;
01506     try { return !jj_3_39(); }
01507     catch(LookaheadSuccess ls) { return true; }
01508     finally { jj_save(38, xla); }
01509   }
01510 
01511   final private boolean jj_2_40(int xla) {
01512     jj_la = xla; jj_lastpos = jj_scanpos = token;
01513     try { return !jj_3_40(); }
01514     catch(LookaheadSuccess ls) { return true; }
01515     finally { jj_save(39, xla); }
01516   }
01517 
01518   final private boolean jj_2_41(int xla) {
01519     jj_la = xla; jj_lastpos = jj_scanpos = token;
01520     try { return !jj_3_41(); }
01521     catch(LookaheadSuccess ls) { return true; }
01522     finally { jj_save(40, xla); }
01523   }
01524 
01525   final private boolean jj_2_42(int xla) {
01526     jj_la = xla; jj_lastpos = jj_scanpos = token;
01527     try { return !jj_3_42(); }
01528     catch(LookaheadSuccess ls) { return true; }
01529     finally { jj_save(41, xla); }
01530   }
01531 
01532   final private boolean jj_2_43(int xla) {
01533     jj_la = xla; jj_lastpos = jj_scanpos = token;
01534     try { return !jj_3_43(); }
01535     catch(LookaheadSuccess ls) { return true; }
01536     finally { jj_save(42, xla); }
01537   }
01538 
01539   final private boolean jj_2_44(int xla) {
01540     jj_la = xla; jj_lastpos = jj_scanpos = token;
01541     try { return !jj_3_44(); }
01542     catch(LookaheadSuccess ls) { return true; }
01543     finally { jj_save(43, xla); }
01544   }
01545 
01546   final private boolean jj_2_45(int xla) {
01547     jj_la = xla; jj_lastpos = jj_scanpos = token;
01548     try { return !jj_3_45(); }
01549     catch(LookaheadSuccess ls) { return true; }
01550     finally { jj_save(44, xla); }
01551   }
01552 
01553   final private boolean jj_3R_14() {
01554     Token xsp;
01555     xsp = jj_scanpos;
01556     if (jj_3R_47()) {
01557     jj_scanpos = xsp;
01558     if (jj_3R_48()) {
01559     jj_scanpos = xsp;
01560     if (jj_3R_49()) return true;
01561     }
01562     }
01563     return false;
01564   }
01565 
01566   final private boolean jj_3_7() {
01567     if (jj_3R_3()) return true;
01568     if (jj_scan_token(DOT)) return true;
01569     if (jj_3R_4()) return true;
01570     if (jj_scan_token(LPAREN)) return true;
01571     return false;
01572   }
01573 
01574   final private boolean jj_3_6() {
01575     Token xsp;
01576     xsp = jj_scanpos;
01577     if (jj_scan_token(19)) {
01578     jj_scanpos = xsp;
01579     if (jj_scan_token(20)) return true;
01580     }
01581     return false;
01582   }
01583 
01584   final private boolean jj_3R_27() {
01585     if (jj_scan_token(LPAREN)) return true;
01586     if (jj_3R_7()) return true;
01587     if (jj_scan_token(RPAREN)) return true;
01588     return false;
01589   }
01590 
01591   final private boolean jj_3_5() {
01592     if (jj_scan_token(IF)) return true;
01593     return false;
01594   }
01595 
01596   final private boolean jj_3R_26() {
01597     if (jj_3R_63()) return true;
01598     return false;
01599   }
01600 
01601   final private boolean jj_3_4() {
01602     if (jj_scan_token(WHILE)) return true;
01603     return false;
01604   }
01605 
01606   final private boolean jj_3R_25() {
01607     if (jj_3R_62()) return true;
01608     return false;
01609   }
01610 
01611   final private boolean jj_3_3() {
01612     if (jj_scan_token(LBRACE)) return true;
01613     return false;
01614   }
01615 
01616   final private boolean jj_3R_24() {
01617     if (jj_3R_61()) return true;
01618     return false;
01619   }
01620 
01621   final private boolean jj_3_2() {
01622     if (jj_scan_token(COMAND_SKIP)) return true;
01623     return false;
01624   }
01625 
01626   final private boolean jj_3R_74() {
01627     if (jj_3R_14()) return true;
01628     if (jj_scan_token(COMMA)) return true;
01629     if (jj_3R_16()) return true;
01630     return false;
01631   }
01632 
01633   final private boolean jj_3R_121() {
01634     if (jj_scan_token(STRING_LITERAL)) return true;
01635     return false;
01636   }
01637 
01638   final private boolean jj_3R_23() {
01639     if (jj_3R_60()) return true;
01640     return false;
01641   }
01642 
01643   final private boolean jj_3R_22() {
01644     if (jj_3R_59()) return true;
01645     return false;
01646   }
01647 
01648   final private boolean jj_3R_21() {
01649     if (jj_3R_58()) return true;
01650     return false;
01651   }
01652 
01653   final private boolean jj_3_36() {
01654     if (jj_3R_14()) return true;
01655     if (jj_scan_token(COMMA)) return true;
01656     return false;
01657   }
01658 
01659   final private boolean jj_3R_20() {
01660     if (jj_3R_57()) return true;
01661     return false;
01662   }
01663 
01664   final private boolean jj_3R_19() {
01665     if (jj_3R_56()) return true;
01666     return false;
01667   }
01668 
01669   final private boolean jj_3_20() {
01670     if (jj_scan_token(FALSE)) return true;
01671     return false;
01672   }
01673 
01674   final private boolean jj_3R_53() {
01675     if (jj_3R_14()) return true;
01676     return false;
01677   }
01678 
01679   final private boolean jj_3R_123() {
01680     if (jj_scan_token(TRUE)) return true;
01681     return false;
01682   }
01683 
01684   final private boolean jj_3R_2() {
01685     Token xsp;
01686     xsp = jj_scanpos;
01687     if (jj_3R_19()) {
01688     jj_scanpos = xsp;
01689     if (jj_3R_20()) {
01690     jj_scanpos = xsp;
01691     if (jj_3R_21()) {
01692     jj_scanpos = xsp;
01693     if (jj_3R_22()) {
01694     jj_scanpos = xsp;
01695     if (jj_3R_23()) {
01696     jj_scanpos = xsp;
01697     if (jj_3R_24()) {
01698     jj_scanpos = xsp;
01699     if (jj_3R_25()) {
01700     jj_scanpos = xsp;
01701     if (jj_3R_26()) {
01702     jj_scanpos = xsp;
01703     if (jj_3R_27()) return true;
01704     }
01705     }
01706     }
01707     }
01708     }
01709     }
01710     }
01711     }
01712     return false;
01713   }
01714 
01715   final private boolean jj_3R_52() {
01716     if (jj_3R_74()) return true;
01717     return false;
01718   }
01719 
01720   final private boolean jj_3R_16() {
01721     Token xsp;
01722     xsp = jj_scanpos;
01723     if (jj_3R_52()) {
01724     jj_scanpos = xsp;
01725     if (jj_3R_53()) return true;
01726     }
01727     return false;
01728   }
01729 
01730   final private boolean jj_3R_122() {
01731     if (jj_scan_token(FALSE)) return true;
01732     return false;
01733   }
01734 
01735   final private boolean jj_3R_120() {
01736     Token xsp;
01737     xsp = jj_scanpos;
01738     if (jj_3R_122()) {
01739     jj_scanpos = xsp;
01740     if (jj_3R_123()) return true;
01741     }
01742     return false;
01743   }
01744 
01745   final private boolean jj_3R_118() {
01746     if (jj_scan_token(NULL)) return true;
01747     return false;
01748   }
01749 
01750   final private boolean jj_3R_67() {
01751     if (jj_3R_2()) return true;
01752     if (jj_scan_token(SEMICOLON)) return true;
01753     if (jj_3R_7()) return true;
01754     return false;
01755   }
01756 
01757   final private boolean jj_3_1() {
01758     if (jj_3R_2()) return true;
01759     if (jj_scan_token(SEMICOLON)) return true;
01760     return false;
01761   }
01762 
01763   final private boolean jj_3_19() {
01764     Token xsp;
01765     xsp = jj_scanpos;
01766     if (jj_scan_token(13)) {
01767     jj_scanpos = xsp;
01768     if (jj_scan_token(14)) return true;
01769     }
01770     return false;
01771   }
01772 
01773   final private boolean jj_3R_119() {
01774     if (jj_scan_token(INTEGER_LITERAL)) return true;
01775     return false;
01776   }
01777 
01778   final private boolean jj_3_17() {
01779     if (jj_scan_token(NULL)) return true;
01780     return false;
01781   }
01782 
01783   final private boolean jj_3R_13() {
01784     if (jj_scan_token(CLASSE)) return true;
01785     if (jj_3R_4()) return true;
01786     if (jj_scan_token(LBRACE)) return true;
01787     if (jj_3R_16()) return true;
01788     if (jj_scan_token(SEMICOLON)) return true;
01789     if (jj_3R_46()) return true;
01790     if (jj_scan_token(RBRACE)) return true;
01791     return false;
01792   }
01793 
01794   final private boolean jj_3R_36() {
01795     if (jj_3R_2()) return true;
01796     return false;
01797   }
01798 
01799   final private boolean jj_3R_117() {
01800     if (jj_3R_121()) return true;
01801     return false;
01802   }
01803 
01804   final private boolean jj_3R_35() {
01805     if (jj_3R_67()) return true;
01806     return false;
01807   }
01808 
01809   final private boolean jj_3R_116() {
01810     if (jj_3R_120()) return true;
01811     return false;
01812   }
01813 
01814   final private boolean jj_3_18() {
01815     if (jj_scan_token(INTEGER_LITERAL)) return true;
01816     return false;
01817   }
01818 
01819   final private boolean jj_3_35() {
01820     if (jj_3R_13()) return true;
01821     if (jj_scan_token(COMMA)) return true;
01822     return false;
01823   }
01824 
01825   final private boolean jj_3R_7() {
01826     Token xsp;
01827     xsp = jj_scanpos;
01828     if (jj_3R_35()) {
01829     jj_scanpos = xsp;
01830     if (jj_3R_36()) return true;
01831     }
01832     return false;
01833   }
01834 
01835   final private boolean jj_3R_114() {
01836     if (jj_3R_118()) return true;
01837     return false;
01838   }
01839 
01840   final private boolean jj_3_34() {
01841     if (jj_scan_token(IDENTIFIER)) return true;
01842     if (jj_scan_token(DOT)) return true;
01843     if (jj_scan_token(IDENTIFIER)) return true;
01844     return false;
01845   }
01846 
01847   final private boolean jj_3R_115() {
01848     if (jj_3R_119()) return true;
01849     return false;
01850   }
01851 
01852   final private boolean jj_3_33() {
01853     if (jj_scan_token(LPAREN)) return true;
01854     if (jj_3R_11()) return true;
01855     if (jj_scan_token(RPAREN)) return true;
01856     if (jj_scan_token(DOT)) return true;
01857     if (jj_scan_token(IDENTIFIER)) return true;
01858     return false;
01859   }
01860 
01861   final private boolean jj_3R_113() {
01862     Token xsp;
01863     xsp = jj_scanpos;
01864     if (jj_3R_114()) {
01865     jj_scanpos = xsp;
01866     if (jj_3R_115()) {
01867     jj_scanpos = xsp;
01868     if (jj_3R_116()) {
01869     jj_scanpos = xsp;
01870     if (jj_3R_117()) return true;
01871     }
01872     }
01873     }
01874     return false;
01875   }
01876 
01877   final private boolean jj_3_16() {
01878     if (jj_scan_token(LPAREN)) return true;
01879     if (jj_3R_6()) return true;
01880     if (jj_scan_token(RPAREN)) return true;
01881     return false;
01882   }
01883 
01884   final private boolean jj_3R_45() {
01885     if (jj_3R_4()) return true;
01886     if (jj_scan_token(DOT)) return true;
01887     if (jj_3R_4()) return true;
01888     return false;
01889   }
01890 
01891   final private boolean jj_3_15() {
01892     if (jj_scan_token(THIS)) return true;
01893     return false;
01894   }
01895 
01896   final private boolean jj_3_14() {
01897     if (jj_3R_5()) return true;
01898     return false;
01899   }
01900 
01901   final private boolean jj_3R_44() {
01902     if (jj_scan_token(LPAREN)) return true;
01903     if (jj_3R_11()) return true;
01904     if (jj_scan_token(RPAREN)) return true;
01905     if (jj_scan_token(DOT)) return true;
01906     if (jj_3R_4()) return true;
01907     return false;
01908   }
01909 
01910   final private boolean jj_3R_111() {
01911     if (jj_3R_113()) return true;
01912     return false;
01913   }
01914 
01915   final private boolean jj_3R_110() {
01916     if (jj_scan_token(LPAREN)) return true;
01917     if (jj_3R_6()) return true;
01918     if (jj_scan_token(RPAREN)) return true;
01919     return false;
01920   }
01921 
01922   final private boolean jj_3R_109() {
01923     if (jj_3R_64()) return true;
01924     return false;
01925   }
01926 
01927   final private boolean jj_3R_108() {
01928     if (jj_3R_5()) return true;
01929     return false;
01930   }
01931 
01932   final private boolean jj_3R_12() {
01933     Token xsp;
01934     xsp = jj_scanpos;
01935     if (jj_3R_44()) {
01936     jj_scanpos = xsp;
01937     if (jj_3R_45()) return true;
01938     }
01939     return false;
01940   }
01941 
01942   final private boolean jj_3_32() {
01943     if (jj_scan_token(IDENTIFIER)) return true;
01944     return false;
01945   }
01946 
01947   final private boolean jj_3R_104() {
01948     Token xsp;
01949     xsp = jj_scanpos;
01950     if (jj_3R_108()) {
01951     jj_scanpos = xsp;
01952     if (jj_3R_109()) {
01953     jj_scanpos = xsp;
01954     if (jj_3R_110()) {
01955     jj_scanpos = xsp;
01956     if (jj_3R_111()) return true;
01957     }
01958     }
01959     }
01960     return false;
01961   }
01962 
01963   final private boolean jj_3_30() {
01964     if (jj_3R_12()) return true;
01965     return false;
01966   }
01967 
01968   final private boolean jj_3_31() {
01969     if (jj_3R_10()) return true;
01970     return false;
01971   }
01972 
01973   final private boolean jj_3R_43() {
01974     if (jj_3R_4()) return true;
01975     return false;
01976   }
01977 
01978   final private boolean jj_3R_41() {
01979     if (jj_3R_12()) return true;
01980     return false;
01981   }
01982 
01983   final private boolean jj_3R_6() {
01984     if (jj_3R_34()) return true;
01985     return false;
01986   }
01987 
01988   final private boolean jj_3R_42() {
01989     if (jj_3R_10()) return true;
01990     return false;
01991   }
01992 
01993   final private boolean jj_3R_11() {
01994     Token xsp;
01995     xsp = jj_scanpos;
01996     if (jj_3R_41()) {
01997     jj_scanpos = xsp;
01998     if (jj_3R_42()) {
01999     jj_scanpos = xsp;
02000     if (jj_3R_43()) return true;
02001     }
02002     }
02003     return false;
02004   }
02005 
02006   final private boolean jj_3_29() {
02007     if (jj_3R_11()) return true;
02008     if (jj_scan_token(DOT)) return true;
02009     if (jj_scan_token(IDENTIFIER)) return true;
02010     if (jj_scan_token(LPAREN)) return true;
02011     return false;
02012   }
02013 
02014   final private boolean jj_3R_98() {
02015     if (jj_scan_token(WRITE)) return true;
02016     if (jj_scan_token(LPAREN)) return true;
02017     if (jj_3R_6()) return true;
02018     if (jj_scan_token(RPAREN)) return true;
02019     return false;
02020   }
02021 
02022   final private boolean jj_3_28() {
02023     if (jj_scan_token(IDENTIFIER)) return true;
02024     if (jj_scan_token(DOT)) return true;
02025     if (jj_scan_token(IDENTIFIER)) return true;
02026     if (jj_scan_token(LPAREN)) return true;
02027     return false;
02028   }
02029 
02030   final private boolean jj_3_27() {
02031     if (jj_scan_token(THIS)) return true;
02032     if (jj_scan_token(DOT)) return true;
02033     if (jj_scan_token(IDENTIFIER)) return true;
02034     if (jj_scan_token(LPAREN)) return true;
02035     return false;
02036   }
02037 
02038   final private boolean jj_3R_30() {
02039     if (jj_3R_11()) return true;
02040     return false;
02041   }
02042 
02043   final private boolean jj_3R_29() {
02044     if (jj_3R_4()) return true;
02045     return false;
02046   }
02047 
02048   final private boolean jj_3_26() {
02049     if (jj_scan_token(LPAREN)) return true;
02050     return false;
02051   }
02052 
02053   final private boolean jj_3R_28() {
02054     if (jj_3R_64()) return true;
02055     return false;
02056   }
02057 
02058   final private boolean jj_3R_3() {
02059     Token xsp;
02060     xsp = jj_scanpos;
02061     if (jj_3R_28()) {
02062     jj_scanpos = xsp;
02063     if (jj_3R_29()) {
02064     jj_scanpos = xsp;
02065     if (jj_3R_30()) return true;
02066     }
02067     }
02068     return false;
02069   }
02070 
02071   final private boolean jj_3_13() {
02072     if (jj_scan_token(WRITE)) return true;
02073     return false;
02074   }
02075 
02076   final private boolean jj_3R_99() {
02077     if (jj_scan_token(READ)) return true;
02078     if (jj_scan_token(LPAREN)) return true;
02079     if (jj_3R_4()) return true;
02080     if (jj_scan_token(RPAREN)) return true;
02081     return false;
02082   }
02083 
02084   final private boolean jj_3R_38() {
02085     if (jj_3R_4()) return true;
02086     return false;
02087   }
02088 
02089   final private boolean jj_3R_73() {
02090     if (jj_3R_4()) return true;
02091     return false;
02092   }
02093 
02094   final private boolean jj_3R_79() {
02095     if (jj_3R_99()) return true;
02096     return false;
02097   }
02098 
02099   final private boolean jj_3R_37() {
02100     if (jj_scan_token(LPAREN)) return true;
02101     if (jj_3R_5()) return true;
02102     if (jj_scan_token(RPAREN)) return true;
02103     return false;
02104   }
02105 
02106   final private boolean jj_3R_78() {
02107     if (jj_3R_98()) return true;
02108     return false;
02109   }
02110 
02111   final private boolean jj_3_45() {
02112     if (jj_scan_token(BOOLEAN)) return true;
02113     return false;
02114   }
02115 
02116   final private boolean jj_3R_9() {
02117     Token xsp;
02118     xsp = jj_scanpos;
02119     if (jj_3R_37()) {
02120     jj_scanpos = xsp;
02121     if (jj_3R_38()) return true;
02122     }
02123     if (jj_scan_token(DOT)) return true;
02124     if (jj_3R_4()) return true;
02125     return false;
02126   }
02127 
02128   final private boolean jj_3R_95() {
02129     if (jj_scan_token(STRING)) return true;
02130     return false;
02131   }
02132 
02133   final private boolean jj_3R_60() {
02134     Token xsp;
02135     xsp = jj_scanpos;
02136     if (jj_3R_78()) {
02137     jj_scanpos = xsp;
02138     if (jj_3R_79()) return true;
02139     }
02140     return false;
02141   }
02142 
02143   final private boolean jj_3_44() {
02144     if (jj_scan_token(INT)) return true;
02145     return false;
02146   }
02147 
02148   final private boolean jj_3R_94() {
02149     if (jj_scan_token(BOOLEAN)) return true;
02150     return false;
02151   }
02152 
02153   final private boolean jj_3_25() {
02154     if (jj_scan_token(LPAREN)) return true;
02155     return false;
02156   }
02157 
02158   final private boolean jj_3R_93() {
02159     if (jj_scan_token(INT)) return true;
02160     return false;
02161   }
02162 
02163   final private boolean jj_3R_63() {
02164     if (jj_3R_5()) return true;
02165     if (jj_scan_token(ATTRIB)) return true;
02166     if (jj_3R_6()) return true;
02167     return false;
02168   }
02169 
02170   final private boolean jj_3R_40() {
02171     if (jj_3R_64()) return true;
02172     if (jj_scan_token(DOT)) return true;
02173     if (jj_3R_4()) return true;
02174     return false;
02175   }
02176 
02177   final private boolean jj_3_43() {
02178     Token xsp;
02179     xsp = jj_scanpos;
02180     if (jj_scan_token(31)) {
02181     jj_scanpos = xsp;
02182     if (jj_scan_token(29)) {
02183     jj_scanpos = xsp;
02184     if (jj_scan_token(30)) return true;
02185     }
02186     }
02187     return false;
02188   }
02189 
02190   final private boolean jj_3R_39() {
02191     if (jj_scan_token(LPAREN)) return true;
02192     if (jj_3R_64()) return true;
02193     if (jj_scan_token(RPAREN)) return true;
02194     if (jj_scan_token(DOT)) return true;
02195     if (jj_3R_4()) return true;
02196     return false;
02197   }
02198 
02199   final private boolean jj_3R_72() {
02200     Token xsp;
02201     xsp = jj_scanpos;
02202     if (jj_3R_93()) {
02203     jj_scanpos = xsp;
02204     if (jj_3R_94()) {
02205     jj_scanpos = xsp;
02206     if (jj_3R_95()) return true;
02207     }
02208     }
02209     return false;
02210   }
02211 
02212   final private boolean jj_3R_10() {
02213     Token xsp;
02214     xsp = jj_scanpos;
02215     if (jj_3R_39()) {
02216     jj_scanpos = xsp;
02217     if (jj_3R_40()) return true;
02218     }
02219     return false;
02220   }
02221 
02222   final private boolean jj_3_24() {
02223     if (jj_scan_token(THIS)) return true;
02224     return false;
02225   }
02226 
02227   final private boolean jj_3R_51() {
02228     if (jj_3R_73()) return true;
02229     return false;
02230   }
02231 
02232   final private boolean jj_3R_50() {
02233     if (jj_3R_72()) return true;
02234     return false;
02235   }
02236 
02237   final private boolean jj_3R_62() {
02238     if (jj_3R_5()) return true;
02239     if (jj_scan_token(ATTRIB)) return true;
02240     if (jj_scan_token(NEW)) return true;
02241     if (jj_3R_4()) return true;
02242     return false;
02243   }
02244 
02245   final private boolean jj_3R_15() {
02246     Token xsp;
02247     xsp = jj_scanpos;
02248     if (jj_3R_50()) {
02249     jj_scanpos = xsp;
02250     if (jj_3R_51()) return true;
02251     }
02252     return false;
02253   }
02254 
02255   final private boolean jj_3R_8() {
02256     if (jj_3R_6()) return true;
02257     return false;
02258   }
02259 
02260   final private boolean jj_3_23() {
02261     if (jj_scan_token(IDENTIFIER)) return true;
02262     return false;
02263   }
02264 
02265   final private boolean jj_3_22() {
02266     if (jj_3R_10()) return true;
02267     return false;
02268   }
02269 
02270   final private boolean jj_3R_18() {
02271     if (jj_3R_15()) return true;
02272     if (jj_3R_4()) return true;
02273     return false;
02274   }
02275 
02276   final private boolean jj_3R_4() {
02277     if (jj_scan_token(IDENTIFIER)) return true;
02278     return false;
02279   }
02280 
02281   final private boolean jj_3_21() {
02282     if (jj_3R_9()) return true;
02283     return false;
02284   }
02285 
02286   final private boolean jj_3R_112() {
02287     if (jj_3R_8()) return true;
02288     if (jj_scan_token(COMMA)) return true;
02289     if (jj_3R_100()) return true;
02290     return false;
02291   }
02292 
02293   final private boolean jj_3R_33() {
02294     if (jj_3R_4()) return true;
02295     return false;
02296   }
02297 
02298   final private boolean jj_3_12() {
02299     if (jj_3R_8()) return true;
02300     if (jj_scan_token(COMMA)) return true;
02301     return false;
02302   }
02303 
02304   final private boolean jj_3R_32() {
02305     if (jj_3R_10()) return true;
02306     return false;
02307   }
02308 
02309   final private boolean jj_3R_31() {
02310     if (jj_3R_9()) return true;
02311     return false;
02312   }
02313 
02314   final private boolean jj_3R_107() {
02315     if (jj_3R_8()) return true;
02316     return false;
02317   }
02318 
02319   final private boolean jj_3R_105() {
02320     if (jj_3R_18()) return true;
02321     if (jj_scan_token(COMMA)) return true;
02322     if (jj_3R_75()) return true;
02323     return false;
02324   }
02325 
02326   final private boolean jj_3R_106() {
02327     if (jj_3R_112()) return true;
02328     return false;
02329   }
02330 
02331   final private boolean jj_3_42() {
02332     if (jj_3R_18()) return true;
02333     if (jj_scan_token(COMMA)) return true;
02334     return false;
02335   }
02336 
02337   final private boolean jj_3R_5() {
02338     Token xsp;
02339     xsp = jj_scanpos;
02340     if (jj_3R_31()) {
02341     jj_scanpos = xsp;
02342     if (jj_3R_32()) {
02343     jj_scanpos = xsp;
02344     if (jj_3R_33()) return true;
02345     }
02346     }
02347     return false;
02348   }
02349 
02350   final private boolean jj_3R_97() {
02351     if (jj_3R_18()) return true;
02352     return false;
02353   }
02354 
02355   final private boolean jj_3R_100() {
02356     Token xsp;
02357     xsp = jj_scanpos;
02358     if (jj_3R_106()) {
02359     jj_scanpos = xsp;
02360     if (jj_3R_107()) return true;
02361     }
02362     return false;
02363   }
02364 
02365   final private boolean jj_3R_96() {
02366     if (jj_3R_105()) return true;
02367     return false;
02368   }
02369 
02370   final private boolean jj_3R_81() {
02371     if (jj_3R_3()) return true;
02372     if (jj_scan_token(DOT)) return true;
02373     if (jj_3R_4()) return true;
02374     if (jj_scan_token(LPAREN)) return true;
02375     if (jj_3R_100()) return true;
02376     if (jj_scan_token(RPAREN)) return true;
02377     return false;
02378   }
02379 
02380   final private boolean jj_3R_64() {
02381     if (jj_scan_token(THIS)) return true;
02382     return false;
02383   }
02384 
02385   final private boolean jj_3R_75() {
02386     Token xsp;
02387     xsp = jj_scanpos;
02388     if (jj_3R_96()) {
02389     jj_scanpos = xsp;
02390     if (jj_3R_97()) return true;
02391     }
02392     return false;
02393   }
02394 
02395   final private boolean jj_3_11() {
02396     if (jj_3R_3()) return true;
02397     if (jj_scan_token(DOT)) return true;
02398     if (jj_3R_4()) return true;
02399     if (jj_scan_token(LPAREN)) return true;
02400     if (jj_scan_token(RPAREN)) return true;
02401     return false;
02402   }
02403 
02404   final private boolean jj_3R_80() {
02405     if (jj_3R_3()) return true;
02406     if (jj_scan_token(DOT)) return true;
02407     if (jj_3R_4()) return true;
02408     if (jj_scan_token(LPAREN)) return true;
02409     if (jj_scan_token(RPAREN)) return true;
02410     return false;
02411   }
02412 
02413   final private boolean jj_3R_91() {
02414     if (jj_scan_token(PLUS)) return true;
02415     if (jj_3R_65()) return true;
02416     return false;
02417   }
02418 
02419   final private boolean jj_3_41() {
02420     if (jj_scan_token(PROC)) return true;
02421     if (jj_3R_4()) return true;
02422     if (jj_scan_token(LPAREN)) return true;
02423     if (jj_scan_token(RPAREN)) return true;
02424     return false;
02425   }
02426 
02427   final private boolean jj_3R_61() {
02428     Token xsp;
02429     xsp = jj_scanpos;
02430     if (jj_3R_80()) {
02431     jj_scanpos = xsp;
02432     if (jj_3R_81()) return true;
02433     }
02434     return false;
02435   }
02436 
02437   final private boolean jj_3R_90() {
02438     if (jj_scan_token(EQ)) return true;
02439     if (jj_3R_65()) return true;
02440     return false;
02441   }
02442 
02443   final private boolean jj_3R_55() {
02444     if (jj_scan_token(PROC)) return true;
02445     if (jj_3R_4()) return true;
02446     if (jj_scan_token(LPAREN)) return true;
02447     if (jj_3R_75()) return true;
02448     if (jj_scan_token(RPAREN)) return true;
02449     if (jj_scan_token(LBRACE)) return true;
02450     if (jj_3R_7()) return true;
02451     if (jj_scan_token(RBRACE)) return true;
02452     return false;
02453   }
02454 
02455   final private boolean jj_3R_89() {
02456     if (jj_scan_token(OR)) return true;
02457     if (jj_3R_65()) return true;
02458     return false;
02459   }
02460 
02461   final private boolean jj_3R_54() {
02462     if (jj_scan_token(PROC)) return true;
02463     if (jj_3R_4()) return true;
02464     if (jj_scan_token(LPAREN)) return true;
02465     if (jj_scan_token(RPAREN)) return true;
02466     if (jj_scan_token(LBRACE)) return true;
02467     if (jj_3R_7()) return true;
02468     if (jj_scan_token(RBRACE)) return true;
02469     return false;
02470   }
02471 
02472   final private boolean jj_3R_88() {
02473     if (jj_scan_token(AND)) return true;
02474     if (jj_3R_65()) return true;
02475     return false;
02476   }
02477 
02478   final private boolean jj_3R_17() {
02479     Token xsp;
02480     xsp = jj_scanpos;
02481     if (jj_3R_54()) {
02482     jj_scanpos = xsp;
02483     if (jj_3R_55()) return true;
02484     }
02485     return false;
02486   }
02487 
02488   final private boolean jj_3R_87() {
02489     if (jj_scan_token(MINUS)) return true;
02490     if (jj_3R_65()) return true;
02491     return false;
02492   }
02493 
02494   final private boolean jj_3R_66() {
02495     Token xsp;
02496     xsp = jj_scanpos;
02497     if (jj_3R_86()) {
02498     jj_scanpos = xsp;
02499     if (jj_3R_87()) {
02500     jj_scanpos = xsp;
02501     if (jj_3R_88()) {
02502     jj_scanpos = xsp;
02503     if (jj_3R_89()) {
02504     jj_scanpos = xsp;
02505     if (jj_3R_90()) {
02506     jj_scanpos = xsp;
02507     if (jj_3R_91()) return true;
02508     }
02509     }
02510     }
02511     }
02512     }
02513     return false;
02514   }
02515 
02516   final private boolean jj_3R_86() {
02517     if (jj_scan_token(CONCAT)) return true;
02518     if (jj_3R_65()) return true;
02519     return false;
02520   }
02521 
02522   final private boolean jj_3R_77() {
02523     if (jj_scan_token(IF)) return true;
02524     if (jj_3R_6()) return true;
02525     if (jj_scan_token(THEN)) return true;
02526     if (jj_scan_token(LBRACE)) return true;
02527     if (jj_3R_7()) return true;
02528     if (jj_scan_token(RBRACE)) return true;
02529     return false;
02530   }
02531 
02532   final private boolean jj_3_40() {
02533     if (jj_3R_17()) return true;
02534     if (jj_scan_token(COMMA)) return true;
02535     return false;
02536   }
02537 
02538   final private boolean jj_3R_92() {
02539     if (jj_3R_17()) return true;
02540     if (jj_scan_token(COMMA)) return true;
02541     if (jj_3R_46()) return true;
02542     return false;
02543   }
02544 
02545   final private boolean jj_3R_34() {
02546     if (jj_3R_65()) return true;
02547     Token xsp;
02548     while (true) {
02549       xsp = jj_scanpos;
02550       if (jj_3R_66()) { jj_scanpos = xsp; break; }
02551     }
02552     return false;
02553   }
02554 
02555   final private boolean jj_3R_69() {
02556     if (jj_3R_17()) return true;
02557     return false;
02558   }
02559 
02560   final private boolean jj_3_10() {
02561     if (jj_scan_token(IF)) return true;
02562     if (jj_3R_6()) return true;
02563     if (jj_scan_token(THEN)) return true;
02564     if (jj_scan_token(LBRACE)) return true;
02565     if (jj_3R_7()) return true;
02566     if (jj_scan_token(RBRACE)) return true;
02567     if (jj_scan_token(ELSE)) return true;
02568     return false;
02569   }
02570 
02571   final private boolean jj_3R_68() {
02572     if (jj_3R_92()) return true;
02573     return false;
02574   }
02575 
02576   final private boolean jj_3R_76() {
02577     if (jj_scan_token(IF)) return true;
02578     if (jj_3R_6()) return true;
02579     if (jj_scan_token(THEN)) return true;
02580     if (jj_scan_token(LBRACE)) return true;
02581     if (jj_3R_7()) return true;
02582     if (jj_scan_token(RBRACE)) return true;
02583     if (jj_scan_token(ELSE)) return true;
02584     if (jj_scan_token(LBRACE)) return true;
02585     if (jj_3R_7()) return true;
02586     if (jj_scan_token(RBRACE)) return true;
02587     return false;
02588   }
02589 
02590   final private boolean jj_3R_46() {
02591     Token xsp;
02592     xsp = jj_scanpos;
02593     if (jj_3R_68()) {
02594     jj_scanpos = xsp;
02595     if (jj_3R_69()) return true;
02596     }
02597     return false;
02598   }
02599 
02600   final private boolean jj_3R_103() {
02601     if (jj_scan_token(LENGTH)) return true;
02602     if (jj_3R_6()) return true;
02603     return false;
02604   }
02605 
02606   final private boolean jj_3R_59() {
02607     Token xsp;
02608     xsp = jj_scanpos;
02609     if (jj_3R_76()) {
02610     jj_scanpos = xsp;
02611     if (jj_3R_77()) return true;
02612     }
02613     return false;
02614   }
02615 
02616   final private boolean jj_3R_102() {
02617     if (jj_scan_token(NOT)) return true;
02618     if (jj_3R_6()) return true;
02619     return false;
02620   }
02621 
02622   final private boolean jj_3R_58() {
02623     if (jj_scan_token(WHILE)) return true;
02624     if (jj_3R_6()) return true;
02625     if (jj_scan_token(DO)) return true;
02626     if (jj_scan_token(LBRACE)) return true;
02627     if (jj_3R_7()) return true;
02628     if (jj_scan_token(RBRACE)) return true;
02629     return false;
02630   }
02631 
02632   final private boolean jj_3R_71() {
02633     if (jj_3R_15()) return true;
02634     if (jj_3R_4()) return true;
02635     if (jj_scan_token(ASSIGN)) return true;
02636     if (jj_3R_6()) return true;
02637     return false;
02638   }
02639 
02640   final private boolean jj_3R_101() {
02641     if (jj_scan_token(MINUS)) return true;
02642     if (jj_3R_6()) return true;
02643     return false;
02644   }
02645 
02646   final private boolean jj_3R_57() {
02647     if (jj_scan_token(LBRACE)) return true;
02648     if (jj_3R_16()) return true;
02649     if (jj_scan_token(SEMICOLON)) return true;
02650     if (jj_3R_7()) return true;
02651     if (jj_scan_token(RBRACE)) return true;
02652     return false;
02653   }
02654 
02655   final private boolean jj_3R_70() {
02656     if (jj_3R_15()) return true;
02657     if (jj_3R_4()) return true;
02658     if (jj_scan_token(ATTRIB)) return true;
02659     if (jj_scan_token(NEW)) return true;
02660     if (jj_3R_4()) return true;
02661     return false;
02662   }
02663 
02664   final private boolean jj_3_39() {
02665     if (jj_3R_15()) return true;
02666     if (jj_3R_4()) return true;
02667     if (jj_scan_token(ASSIGN)) return true;
02668     if (jj_3R_6()) return true;
02669     return false;
02670   }
02671 
02672   final private boolean jj_3R_85() {
02673     if (jj_3R_104()) return true;
02674     return false;
02675   }
02676 
02677   final private boolean jj_3R_84() {
02678     if (jj_3R_103()) return true;
02679     return false;
02680   }
02681 
02682   final private boolean jj_3R_83() {
02683     if (jj_3R_102()) return true;
02684     return false;
02685   }
02686 
02687   final private boolean jj_3_38() {
02688     if (jj_scan_token(LPAREN)) return true;
02689     if (jj_3R_16()) return true;
02690     if (jj_scan_token(RPAREN)) return true;
02691     return false;
02692   }
02693 
02694   final private boolean jj_3_37() {
02695     if (jj_3R_15()) return true;
02696     if (jj_3R_4()) return true;
02697     if (jj_scan_token(ATTRIB)) return true;
02698     if (jj_scan_token(NEW)) return true;
02699     return false;
02700   }
02701 
02702   final private boolean jj_3R_82() {
02703     if (jj_3R_101()) return true;
02704     return false;
02705   }
02706 
02707   final private boolean jj_3R_56() {
02708     if (jj_scan_token(COMAND_SKIP)) return true;
02709     return false;
02710   }
02711 
02712   final private boolean jj_3R_49() {
02713     if (jj_3R_71()) return true;
02714     return false;
02715   }
02716 
02717   final private boolean jj_3R_65() {
02718     Token xsp;
02719     xsp = jj_scanpos;
02720     if (jj_3R_82()) {
02721     jj_scanpos = xsp;
02722     if (jj_3R_83()) {
02723     jj_scanpos = xsp;
02724     if (jj_3R_84()) {
02725     jj_scanpos = xsp;
02726     if (jj_3R_85()) return true;
02727     }
02728     }
02729     }
02730     return false;
02731   }
02732 
02733   final private boolean jj_3_9() {
02734     if (jj_3R_5()) return true;
02735     if (jj_scan_token(ATTRIB)) return true;
02736     return false;
02737   }
02738 
02739   final private boolean jj_3R_47() {
02740     if (jj_3R_70()) return true;
02741     return false;
02742   }
02743 
02744   final private boolean jj_3R_48() {
02745     if (jj_scan_token(LPAREN)) return true;
02746     if (jj_3R_16()) return true;
02747     if (jj_scan_token(RPAREN)) return true;
02748     return false;
02749   }
02750 
02751   final private boolean jj_3_8() {
02752     if (jj_3R_5()) return true;
02753     if (jj_scan_token(ATTRIB)) return true;
02754     if (jj_scan_token(NEW)) return true;
02755     return false;
02756   }
02757 
02758   public OO1ParserTokenManager token_source;
02759   JavaCharStream jj_input_stream;
02760   public Token token, jj_nt;
02761   private int jj_ntk;
02762   private Token jj_scanpos, jj_lastpos;
02763   private int jj_la;
02764   public boolean lookingAhead = false;
02765   private boolean jj_semLA;
02766   private int jj_gen;
02767   final private int[] jj_la1 = new int[22];
02768   static private int[] jj_la1_0;
02769   static private int[] jj_la1_1;
02770   static private int[] jj_la1_2;
02771   static {
02772       jj_la1_0();
02773       jj_la1_1();
02774       jj_la1_2();
02775    }
02776    private static void jj_la1_0() {
02777       jj_la1_0 = new int[] {0x23b0000,0x0,0x200000,0x2000000,0xa007800,0x80000,0x8006000,0x0,0x2000,0xa007800,0x600,0x600,0x0,0x2000000,0x0,0x4000000,0xe0000000,0x10000000,0x10000000,0xe0000000,0x0,0x80000000,};
02778    }
02779    private static void jj_la1_1() {
02780       jj_la1_1 = new int[] {0x520,0x100,0x0,0x120,0x131,0x0,0x11,0x10,0x0,0x131,0x82000000,0x82000000,0x120,0x0,0x20,0x0,0x120,0x0,0x0,0x20,0x20,0x0,};
02781    }
02782    private static void jj_la1_2() {
02783       jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x3,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
02784    }
02785   final private JJCalls[] jj_2_rtns = new JJCalls[45];
02786   private boolean jj_rescan = false;
02787   private int jj_gc = 0;
02788 
02789   public OO1Parser(java.io.InputStream stream) {
02790      this(stream, null);
02791   }
02792   public OO1Parser(java.io.InputStream stream, String encoding) {
02793     try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
02794     token_source = new OO1ParserTokenManager(jj_input_stream);
02795     token = new Token();
02796     jj_ntk = -1;
02797     jj_gen = 0;
02798     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02799     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02800   }
02801 
02802   public void ReInit(java.io.InputStream stream) {
02803      ReInit(stream, null);
02804   }
02805   public void ReInit(java.io.InputStream stream, String encoding) {
02806     try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
02807     token_source.ReInit(jj_input_stream);
02808     token = new Token();
02809     jj_ntk = -1;
02810     jj_gen = 0;
02811     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02812     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02813   }
02814 
02815   public OO1Parser(java.io.Reader stream) {
02816     jj_input_stream = new JavaCharStream(stream, 1, 1);
02817     token_source = new OO1ParserTokenManager(jj_input_stream);
02818     token = new Token();
02819     jj_ntk = -1;
02820     jj_gen = 0;
02821     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02822     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02823   }
02824 
02825   public void ReInit(java.io.Reader stream) {
02826     jj_input_stream.ReInit(stream, 1, 1);
02827     token_source.ReInit(jj_input_stream);
02828     token = new Token();
02829     jj_ntk = -1;
02830     jj_gen = 0;
02831     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02832     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02833   }
02834 
02835   public OO1Parser(OO1ParserTokenManager tm) {
02836     token_source = tm;
02837     token = new Token();
02838     jj_ntk = -1;
02839     jj_gen = 0;
02840     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02841     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02842   }
02843 
02844   public void ReInit(OO1ParserTokenManager tm) {
02845     token_source = tm;
02846     token = new Token();
02847     jj_ntk = -1;
02848     jj_gen = 0;
02849     for (int i = 0; i < 22; i++) jj_la1[i] = -1;
02850     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
02851   }
02852 
02853   final private Token jj_consume_token(int kind) throws ParseException {
02854     Token oldToken;
02855     if ((oldToken = token).next != null) token = token.next;
02856     else token = token.next = token_source.getNextToken();
02857     jj_ntk = -1;
02858     if (token.kind == kind) {
02859       jj_gen++;
02860       if (++jj_gc > 100) {
02861         jj_gc = 0;
02862         for (int i = 0; i < jj_2_rtns.length; i++) {
02863           JJCalls c = jj_2_rtns[i];
02864           while (c != null) {
02865             if (c.gen < jj_gen) c.first = null;
02866             c = c.next;
02867           }
02868         }
02869       }
02870       return token;
02871     }
02872     token = oldToken;
02873     jj_kind = kind;
02874     throw generateParseException();
02875   }
02876 
02877   static private final class LookaheadSuccess extends java.lang.Error { }
02878   final private LookaheadSuccess jj_ls = new LookaheadSuccess();
02879   final private boolean jj_scan_token(int kind) {
02880     if (jj_scanpos == jj_lastpos) {
02881       jj_la--;
02882       if (jj_scanpos.next == null) {
02883         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
02884       } else {
02885         jj_lastpos = jj_scanpos = jj_scanpos.next;
02886       }
02887     } else {
02888       jj_scanpos = jj_scanpos.next;
02889     }
02890     if (jj_rescan) {
02891       int i = 0; Token tok = token;
02892       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
02893       if (tok != null) jj_add_error_token(kind, i);
02894     }
02895     if (jj_scanpos.kind != kind) return true;
02896     if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
02897     return false;
02898   }
02899 
02900   final public Token getNextToken() {
02901     if (token.next != null) token = token.next;
02902     else token = token.next = token_source.getNextToken();
02903     jj_ntk = -1;
02904     jj_gen++;
02905     return token;
02906   }
02907 
02908   final public Token getToken(int index) {
02909     Token t = lookingAhead ? jj_scanpos : token;
02910     for (int i = 0; i < index; i++) {
02911       if (t.next != null) t = t.next;
02912       else t = t.next = token_source.getNextToken();
02913     }
02914     return t;
02915   }
02916 
02917   final private int jj_ntk() {
02918     if ((jj_nt=token.next) == null)
02919       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
02920     else
02921       return (jj_ntk = jj_nt.kind);
02922   }
02923 
02924   private java.util.Vector jj_expentries = new java.util.Vector();
02925   private int[] jj_expentry;
02926   private int jj_kind = -1;
02927   private int[] jj_lasttokens = new int[100];
02928   private int jj_endpos;
02929 
02930   private void jj_add_error_token(int kind, int pos) {
02931     if (pos >= 100) return;
02932     if (pos == jj_endpos + 1) {
02933       jj_lasttokens[jj_endpos++] = kind;
02934     } else if (jj_endpos != 0) {
02935       jj_expentry = new int[jj_endpos];
02936       for (int i = 0; i < jj_endpos; i++) {
02937         jj_expentry[i] = jj_lasttokens[i];
02938       }
02939       boolean exists = false;
02940       for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
02941         int[] oldentry = (int[])(e.nextElement());
02942         if (oldentry.length == jj_expentry.length) {
02943           exists = true;
02944           for (int i = 0; i < jj_expentry.length; i++) {
02945             if (oldentry[i] != jj_expentry[i]) {
02946               exists = false;
02947               break;
02948             }
02949           }
02950           if (exists) break;
02951         }
02952       }
02953       if (!exists) jj_expentries.addElement(jj_expentry);
02954       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
02955     }
02956   }
02957 
02958   public ParseException generateParseException() {
02959     jj_expentries.removeAllElements();
02960     boolean[] la1tokens = new boolean[72];
02961     for (int i = 0; i < 72; i++) {
02962       la1tokens[i] = false;
02963     }
02964     if (jj_kind >= 0) {
02965       la1tokens[jj_kind] = true;
02966       jj_kind = -1;
02967     }
02968     for (int i = 0; i < 22; i++) {
02969       if (jj_la1[i] == jj_gen) {
02970         for (int j = 0; j < 32; j++) {
02971           if ((jj_la1_0[i] & (1<<j)) != 0) {
02972             la1tokens[j] = true;
02973           }
02974           if ((jj_la1_1[i] & (1<<j)) != 0) {
02975             la1tokens[32+j] = true;
02976           }
02977           if ((jj_la1_2[i] & (1<<j)) != 0) {
02978             la1tokens[64+j] = true;
02979           }
02980         }
02981       }
02982     }
02983     for (int i = 0; i < 72; i++) {
02984       if (la1tokens[i]) {
02985         jj_expentry = new int[1];
02986         jj_expentry[0] = i;
02987         jj_expentries.addElement(jj_expentry);
02988       }
02989     }
02990     jj_endpos = 0;
02991     jj_rescan_token();
02992     jj_add_error_token(0, 0);
02993     int[][] exptokseq = new int[jj_expentries.size()][];
02994     for (int i = 0; i < jj_expentries.size(); i++) {
02995       exptokseq[i] = (int[])jj_expentries.elementAt(i);
02996     }
02997     return new ParseException(token, exptokseq, tokenImage);
02998   }
02999 
03000   final public void enable_tracing() {
03001   }
03002 
03003   final public void disable_tracing() {
03004   }
03005 
03006   final private void jj_rescan_token() {
03007     jj_rescan = true;
03008     for (int i = 0; i < 45; i++) {
03009     try {
03010       JJCalls p = jj_2_rtns[i];
03011       do {
03012         if (p.gen > jj_gen) {
03013           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
03014           switch (i) {
03015             case 0: jj_3_1(); break;
03016             case 1: jj_3_2(); break;
03017             case 2: jj_3_3(); break;
03018             case 3: jj_3_4(); break;
03019             case 4: jj_3_5(); break;
03020             case 5: jj_3_6(); break;
03021             case 6: jj_3_7(); break;
03022             case 7: jj_3_8(); break;
03023             case 8: jj_3_9(); break;
03024             case 9: jj_3_10(); break;
03025             case 10: jj_3_11(); break;
03026             case 11: jj_3_12(); break;
03027             case 12: jj_3_13(); break;
03028             case 13: jj_3_14(); break;
03029             case 14: jj_3_15(); break;
03030             case 15: jj_3_16(); break;
03031             case 16: jj_3_17(); break;
03032             case 17: jj_3_18(); break;
03033             case 18: jj_3_19(); break;
03034             case 19: jj_3_20(); break;
03035             case 20: jj_3_21(); break;
03036             case 21: jj_3_22(); break;
03037             case 22: jj_3_23(); break;
03038             case 23: jj_3_24(); break;
03039             case 24: jj_3_25(); break;
03040             case 25: jj_3_26(); break;
03041             case 26: jj_3_27(); break;
03042             case 27: jj_3_28(); break;
03043             case 28: jj_3_29(); break;
03044             case 29: jj_3_30(); break;
03045             case 30: jj_3_31(); break;
03046             case 31: jj_3_32(); break;
03047             case 32: jj_3_33(); break;
03048             case 33: jj_3_34(); break;
03049             case 34: jj_3_35(); break;
03050             case 35: jj_3_36(); break;
03051             case 36: jj_3_37(); break;
03052             case 37: jj_3_38(); break;
03053             case 38: jj_3_39(); break;
03054             case 39: jj_3_40(); break;
03055             case 40: jj_3_41(); break;
03056             case 41: jj_3_42(); break;
03057             case 42: jj_3_43(); break;
03058             case 43: jj_3_44(); break;
03059             case 44: jj_3_45(); break;
03060           }
03061         }
03062         p = p.next;
03063       } while (p != null);
03064       } catch(LookaheadSuccess ls) { }
03065     }
03066     jj_rescan = false;
03067   }
03068 
03069   final private void jj_save(int index, int xla) {
03070     JJCalls p = jj_2_rtns[index];
03071     while (p.gen > jj_gen) {
03072       if (p.next == null) { p = p.next = new JJCalls(); break; }
03073       p = p.next;
03074     }
03075     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
03076   }
03077 
03078   static final class JJCalls {
03079     int gen;
03080     Token first;
03081     int arg;
03082     JJCalls next;
03083   }
03084 
03085 }

Generated on Tue Sep 12 21:52:08 2006 for PLP by  doxygen 1.4.7