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