Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

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

Generated on Mon Aug 8 20:20:47 2005 for Linguagem OO1 - Generics by  doxygen 1.4.4