1 2 package org.apache.velocity.runtime.parser; 3 4 import java.io.*; 5 import java.util.*; 6 7 import org.apache.velocity.runtime.RuntimeServices; 8 import org.apache.velocity.runtime.parser.node.*; 9 import org.apache.velocity.runtime.directive.Directive; 10 import org.apache.velocity.runtime.directive.Macro; 11 import org.apache.velocity.runtime.directive.MacroParseException; 12 import org.apache.velocity.util.StringUtils; 13 14 27 public class Parserimplements ParserTreeConstants, ParserConstants { 28 protected JJTParserState jjtree = new JJTParserState(); 31 private Hashtable directives = new Hashtable(0); 32 33 36 String currentTemplateName = ""; 37 38 VelocityCharStream velcharstream = null; 39 40 private RuntimeServices rsvc = null; 41 42 49 public Parser( RuntimeServices rs) 50 { 51 54 55 this( new VelocityCharStream( 56 new ByteArrayInputStream("\n".getBytes()), 1, 1 )); 57 58 61 velcharstream = new VelocityCharStream( 62 new ByteArrayInputStream("\n".getBytes()), 1, 1 ); 63 64 67 rsvc = rs; 68 } 69 70 79 public SimpleNode parse( Reader reader, String templateName ) 80 throws ParseException 81 { 82 SimpleNode sn = null; 83 84 currentTemplateName = templateName; 85 86 try 87 { 88 token_source.clearStateVars(); 89 90 94 velcharstream.ReInit( reader, 1, 1 ); 95 96 99 ReInit( velcharstream ); 100 101 104 sn = process(); 105 } 106 catch (MacroParseException mee) 107 { 108 112 rsvc.error ("Parser Error: #macro() : " + templateName + " : " + StringUtils.stackTrace(mee)); 113 throw new ParseException(mee.getMessage()); 114 } 115 catch (ParseException pe) 116 { 117 rsvc.error ("Parser Exception: " + templateName + " : " + StringUtils.stackTrace(pe)); 118 throw new ParseException (pe.currentToken, 119 pe.expectedTokenSequences, pe.tokenImage); 120 } 121 catch (TokenMgrError tme) 122 { 123 throw new ParseException("Lexical error: " + tme.toString()); 124 } 125 catch (Exception e) 126 { 127 rsvc.error ("Parser Error: " + templateName + " : " + StringUtils.stackTrace(e)); 128 } 129 130 currentTemplateName = ""; 131 132 return sn; 133 } 134 135 138 public void setDirectives(Hashtable directives) 139 { 140 this.directives = directives; 141 } 142 143 146 public Directive getDirective(String directive) 147 { 148 return (Directive) directives.get(directive); 149 } 150 151 155 public boolean isDirective(String directive) 156 { 157 if (directives.containsKey(directive)) 158 return true; 159 else 160 return false; 161 } 162 163 164 168 private String escapedDirective( String strImage ) 169 { 170 int iLast = strImage.lastIndexOf("\\"); 171 172 String strDirective = strImage.substring(iLast + 1); 173 174 boolean bRecognizedDirective = false; 175 176 179 180 if ( isDirective( strDirective.substring(1))) 181 { 182 bRecognizedDirective = true; 183 } 184 else if ( rsvc.isVelocimacro( strDirective.substring(1), currentTemplateName)) 185 { 186 bRecognizedDirective = true; 187 } 188 else 189 { 190 191 192 if ( strDirective.substring(1).equals("if") 193 || strDirective.substring(1).equals("end") 194 || strDirective.substring(1).equals("set") 195 || strDirective.substring(1).equals("else") 196 || strDirective.substring(1).equals("elseif") 197 || strDirective.substring(1).equals("stop") 198 ) 199 { 200 bRecognizedDirective = true; 201 } 202 } 203 204 208 209 if (bRecognizedDirective) 210 return ( strImage.substring(0,iLast/2) + strDirective); 211 else 212 return ( strImage ); 213 } 214 215 224 final public SimpleNode process() throws ParseException { 225 226 ASTprocess jjtn000 = new ASTprocess(this, JJTPROCESS); 227 boolean jjtc000 = true; 228 jjtree.openNodeScope(jjtn000); 229 try { 230 label_1: 231 while (true) { 232 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 233 case LPAREN: 234 case RPAREN: 235 case ESCAPE_DIRECTIVE: 236 case SET_DIRECTIVE: 237 case DOUBLE_ESCAPE: 238 case ESCAPE: 239 case TEXT: 240 case SINGLE_LINE_COMMENT: 241 case FORMAL_COMMENT: 242 case MULTI_LINE_COMMENT: 243 case STRING_LITERAL: 244 case IF_DIRECTIVE: 245 case STOP_DIRECTIVE: 246 case NUMBER_LITERAL: 247 case WORD: 248 case IDENTIFIER: 249 case DOT: 250 case LCURLY: 251 case RCURLY: 252 ; 253 break; 254 default: 255 jj_la1[0] = jj_gen; 256 break label_1; 257 } 258 Statement(); 259 } 260 jj_consume_token(0); 261 jjtree.closeNodeScope(jjtn000, true); 262 jjtc000 = false; 263 {if (true) return jjtn000;} 264 } catch (Throwable jjte000) { 265 if (jjtc000) { 266 jjtree.clearNodeScope(jjtn000); 267 jjtc000 = false; 268 } else { 269 jjtree.popNode(); 270 } 271 if (jjte000 instanceof RuntimeException) { 272 {if (true) throw (RuntimeException)jjte000;} 273 } 274 if (jjte000 instanceof ParseException) { 275 {if (true) throw (ParseException)jjte000;} 276 } 277 {if (true) throw (Error)jjte000;} 278 } finally { 279 if (jjtc000) { 280 jjtree.closeNodeScope(jjtn000, true); 281 } 282 } 283 throw new Error("Missing return statement in function"); 284 } 285 286 290 final public void Statement() throws ParseException { 291 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 292 case IF_DIRECTIVE: 293 IfStatement(); 294 break; 295 case STOP_DIRECTIVE: 296 StopStatement(); 297 break; 298 default: 299 jj_la1[1] = jj_gen; 300 if (jj_2_1(2)) { 301 Reference(); 302 } else { 303 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 304 case SINGLE_LINE_COMMENT: 305 case FORMAL_COMMENT: 306 case MULTI_LINE_COMMENT: 307 Comment(); 308 break; 309 case SET_DIRECTIVE: 310 SetDirective(); 311 break; 312 case ESCAPE_DIRECTIVE: 313 EscapedDirective(); 314 break; 315 case DOUBLE_ESCAPE: 316 Escape(); 317 break; 318 case WORD: 319 Directive(); 320 break; 321 case LPAREN: 322 case RPAREN: 323 case ESCAPE: 324 case TEXT: 325 case STRING_LITERAL: 326 case NUMBER_LITERAL: 327 case DOT: 328 case LCURLY: 329 case RCURLY: 330 Text(); 331 break; 332 default: 333 jj_la1[2] = jj_gen; 334 jj_consume_token(-1); 335 throw new ParseException(); 336 } 337 } 338 } 339 } 340 341 348 final public void EscapedDirective() throws ParseException { 349 350 ASTEscapedDirective jjtn000 = new ASTEscapedDirective(this, JJTESCAPEDDIRECTIVE); 351 boolean jjtc000 = true; 352 jjtree.openNodeScope(jjtn000); 353 try { 354 Token t = null; 355 t = jj_consume_token(ESCAPE_DIRECTIVE); 356 jjtree.closeNodeScope(jjtn000, true); 357 jjtc000 = false; 358 361 t.image = escapedDirective( t.image ); 362 } finally { 363 if (jjtc000) { 364 jjtree.closeNodeScope(jjtn000, true); 365 } 366 } 367 } 368 369 376 final public void Escape() throws ParseException { 377 378 ASTEscape jjtn000 = new ASTEscape(this, JJTESCAPE); 379 boolean jjtc000 = true; 380 jjtree.openNodeScope(jjtn000); 381 try { 382 Token t = null; 383 int count = 0; 384 boolean control = false; 385 label_2: 386 while (true) { 387 t = jj_consume_token(DOUBLE_ESCAPE); 388 count++; 389 if (jj_2_2(2)) { 390 ; 391 } else { 392 break label_2; 393 } 394 } 395 jjtree.closeNodeScope(jjtn000, true); 396 jjtc000 = false; 397 400 switch(t.next.kind ) { 401 case IF_DIRECTIVE : 402 case ELSE_DIRECTIVE : 403 case ELSEIF_DIRECTIVE : 404 case END : 405 case STOP_DIRECTIVE : 406 control = true; 407 break; 408 } 409 410 413 414 if ( isDirective( t.next.image.substring(1))) 415 control = true; 416 else if ( rsvc.isVelocimacro( t.next.image.substring(1), currentTemplateName)) 417 control = true; 418 419 jjtn000.val = ""; 420 421 for( int i = 0; i < count; i++) 422 jjtn000.val += ( control ? "\\" : "\\\\"); 423 } finally { 424 if (jjtc000) { 425 jjtree.closeNodeScope(jjtn000, true); 426 } 427 } 428 } 429 430 final public void Comment() throws ParseException { 431 432 ASTComment jjtn000 = new ASTComment(this, JJTCOMMENT); 433 boolean jjtc000 = true; 434 jjtree.openNodeScope(jjtn000); 435 try { 436 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 437 case SINGLE_LINE_COMMENT: 438 jj_consume_token(SINGLE_LINE_COMMENT); 439 break; 440 case MULTI_LINE_COMMENT: 441 jj_consume_token(MULTI_LINE_COMMENT); 442 break; 443 case FORMAL_COMMENT: 444 jj_consume_token(FORMAL_COMMENT); 445 break; 446 default: 447 jj_la1[3] = jj_gen; 448 jj_consume_token(-1); 449 throw new ParseException(); 450 } 451 } finally { 452 if (jjtc000) { 453 jjtree.closeNodeScope(jjtn000, true); 454 } 455 } 456 } 457 458 final public void NumberLiteral() throws ParseException { 459 460 ASTNumberLiteral jjtn000 = new ASTNumberLiteral(this, JJTNUMBERLITERAL); 461 boolean jjtc000 = true; 462 jjtree.openNodeScope(jjtn000); 463 try { 464 jj_consume_token(NUMBER_LITERAL); 465 } finally { 466 if (jjtc000) { 467 jjtree.closeNodeScope(jjtn000, true); 468 } 469 } 470 } 471 472 final public void StringLiteral() throws ParseException { 473 474 ASTStringLiteral jjtn000 = new ASTStringLiteral(this, JJTSTRINGLITERAL); 475 boolean jjtc000 = true; 476 jjtree.openNodeScope(jjtn000); 477 try { 478 jj_consume_token(STRING_LITERAL); 479 } finally { 480 if (jjtc000) { 481 jjtree.closeNodeScope(jjtn000, true); 482 } 483 } 484 } 485 486 497 final public void Identifier() throws ParseException { 498 499 ASTIdentifier jjtn000 = new ASTIdentifier(this, JJTIDENTIFIER); 500 boolean jjtc000 = true; 501 jjtree.openNodeScope(jjtn000); 502 try { 503 jj_consume_token(IDENTIFIER); 504 } finally { 505 if (jjtc000) { 506 jjtree.closeNodeScope(jjtn000, true); 507 } 508 } 509 } 510 511 final public void Word() throws ParseException { 512 513 ASTWord jjtn000 = new ASTWord(this, JJTWORD); 514 boolean jjtc000 = true; 515 jjtree.openNodeScope(jjtn000); 516 try { 517 jj_consume_token(WORD); 518 } finally { 519 if (jjtc000) { 520 jjtree.closeNodeScope(jjtn000, true); 521 } 522 } 523 } 524 525 531 final public int DirectiveArg() throws ParseException { 532 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 533 case IDENTIFIER: 534 case LCURLY: 535 Reference(); 536 {if (true) return ParserTreeConstants.JJTREFERENCE;} 537 break; 538 case WORD: 539 Word(); 540 {if (true) return ParserTreeConstants.JJTWORD;} 541 break; 542 case STRING_LITERAL: 543 StringLiteral(); 544 {if (true) return ParserTreeConstants.JJTSTRINGLITERAL;} 545 break; 546 case NUMBER_LITERAL: 547 NumberLiteral(); 548 {if (true) return ParserTreeConstants.JJTNUMBERLITERAL;} 549 break; 550 default: 551 jj_la1[4] = jj_gen; 552 if (jj_2_3(2147483647)) { 553 IntegerRange(); 554 {if (true) return ParserTreeConstants.JJTINTEGERRANGE;} 555 } else { 556 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 557 case LBRACKET: 558 ObjectArray(); 559 {if (true) return ParserTreeConstants.JJTOBJECTARRAY;} 560 break; 561 case TRUE: 562 True(); 563 {if (true) return ParserTreeConstants.JJTTRUE;} 564 break; 565 case FALSE: 566 False(); 567 {if (true) return ParserTreeConstants.JJTFALSE;} 568 break; 569 default: 570 jj_la1[5] = jj_gen; 571 jj_consume_token(-1); 572 throw new ParseException(); 573 } 574 } 575 } 576 throw new Error("Missing return statement in function"); 577 } 578 579 583 final public SimpleNode Directive() throws ParseException { 584 585 ASTDirective jjtn000 = new ASTDirective(this, JJTDIRECTIVE); 586 boolean jjtc000 = true; 587 jjtree.openNodeScope(jjtn000);Token t = null; 588 int argType; 589 int argPos = 0; 590 Directive d; 591 int directiveType; 592 boolean isVM = false; 593 boolean doItNow = false; 594 try { 595 599 t = jj_consume_token(WORD); 600 String directiveName = t.image.substring(1); 601 602 d = (Directive) directives.get(directiveName); 603 604 609 610 if (directiveName.equals("macro")) 611 { 612 doItNow = true; 613 } 614 615 619 620 jjtn000.setDirectiveName(directiveName); 621 622 if ( d == null) 623 { 624 627 628 isVM = rsvc.isVelocimacro(directiveName, currentTemplateName); 629 630 if (!isVM) 631 { 632 token_source.stateStackPop(); 633 token_source.inDirective = false; 634 {if (true) return jjtn000;} 635 } 636 637 638 641 642 directiveType = Directive.LINE; 643 } 644 else 645 { 646 directiveType = d.getType(); 647 } 648 649 652 653 token_source.SwitchTo(DIRECTIVE); 654 655 argPos = 0; 656 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 657 case WHITESPACE: 658 jj_consume_token(WHITESPACE); 659 break; 660 default: 661 jj_la1[6] = jj_gen; 662 ; 663 } 664 jj_consume_token(LPAREN); 665 label_3: 666 while (true) { 667 if (jj_2_4(2)) { 668 ; 669 } else { 670 break label_3; 671 } 672 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 673 case WHITESPACE: 674 jj_consume_token(WHITESPACE); 675 break; 676 default: 677 jj_la1[7] = jj_gen; 678 ; 679 } 680 argType = DirectiveArg(); 681 if (argType == ParserTreeConstants.JJTWORD) 682 { 683 if (doItNow && argPos == 0) 684 { 685 686 ; 687 } 688 else if( t.image.equals("#foreach") && argPos == 1) 689 { 690 691 ; 692 } 693 else 694 { 695 {if (true) throw new MacroParseException("Invalid arg #" 696 + argPos + " in " 697 + (isVM ? "VM " : "directive " ) 698 + t.image 699 + " at line " + t.beginLine + ", column " 700 + t.beginColumn 701 + " in template " + currentTemplateName);} 702 } 703 } 704 else 705 { 706 if (doItNow && argPos == 0) 707 { 708 709 710 {if (true) throw new MacroParseException("Invalid first arg " 711 + " in #macro() directive - must be a" 712 + " word token (no \' or \" surrounding)" 713 + " at line " + t.beginLine + ", column " 714 + t.beginColumn 715 + " in template " + currentTemplateName);} 716 } 717 } 718 719 argPos++; 720 } 721 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 722 case WHITESPACE: 723 jj_consume_token(WHITESPACE); 724 break; 725 default: 726 jj_la1[8] = jj_gen; 727 ; 728 } 729 jj_consume_token(RPAREN); 730 if (directiveType == Directive.LINE) 731 { 732 {if (true) return jjtn000;} 733 } 734 ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK); 735 boolean jjtc001 = true; 736 jjtree.openNodeScope(jjtn001); 737 try { 738 label_4: 739 while (true) { 740 Statement(); 741 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 742 case LPAREN: 743 case RPAREN: 744 case ESCAPE_DIRECTIVE: 745 case SET_DIRECTIVE: 746 case DOUBLE_ESCAPE: 747 case ESCAPE: 748 case TEXT: 749 case SINGLE_LINE_COMMENT: 750 case FORMAL_COMMENT: 751 case MULTI_LINE_COMMENT: 752 case STRING_LITERAL: 753 case IF_DIRECTIVE: 754 case STOP_DIRECTIVE: 755 case NUMBER_LITERAL: 756 case WORD: 757 case IDENTIFIER: 758 case DOT: 759 case LCURLY: 760 case RCURLY: 761 ; 762 break; 763 default: 764 jj_la1[9] = jj_gen; 765 break label_4; 766 } 767 } 768 } catch (Throwable jjte001) { 769 if (jjtc001) { 770 jjtree.clearNodeScope(jjtn001); 771 jjtc001 = false; 772 } else { 773 jjtree.popNode(); 774 } 775 if (jjte001 instanceof RuntimeException) { 776 {if (true) throw (RuntimeException)jjte001;} 777 } 778 if (jjte001 instanceof ParseException) { 779 {if (true) throw (ParseException)jjte001;} 780 } 781 {if (true) throw (Error)jjte001;} 782 } finally { 783 if (jjtc001) { 784 jjtree.closeNodeScope(jjtn001, true); 785 } 786 } 787 jj_consume_token(END); 788 jjtree.closeNodeScope(jjtn000, true); 789 jjtc000 = false; 790 797 798 if (doItNow) 799 { 800 Macro.processAndRegister(rsvc, jjtn000, currentTemplateName); 801 } 802 803 806 807 {if (true) return jjtn000;} 808 } catch (Throwable jjte000) { 809 if (jjtc000) { 810 jjtree.clearNodeScope(jjtn000); 811 jjtc000 = false; 812 } else { 813 jjtree.popNode(); 814 } 815 if (jjte000 instanceof RuntimeException) { 816 {if (true) throw (RuntimeException)jjte000;} 817 } 818 if (jjte000 instanceof ParseException) { 819 {if (true) throw (ParseException)jjte000;} 820 } 821 {if (true) throw (Error)jjte000;} 822 } finally { 823 if (jjtc000) { 824 jjtree.closeNodeScope(jjtn000, true); 825 } 826 } 827 throw new Error("Missing return statement in function"); 828 } 829 830 final public void ObjectArray() throws ParseException { 831 832 ASTObjectArray jjtn000 = new ASTObjectArray(this, JJTOBJECTARRAY); 833 boolean jjtc000 = true; 834 jjtree.openNodeScope(jjtn000); 835 try { 836 jj_consume_token(LBRACKET); 837 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 838 case LBRACKET: 839 case WHITESPACE: 840 case STRING_LITERAL: 841 case TRUE: 842 case FALSE: 843 case NUMBER_LITERAL: 844 case IDENTIFIER: 845 case LCURLY: 846 Parameter(); 847 label_5: 848 while (true) { 849 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 850 case COMMA: 851 ; 852 break; 853 default: 854 jj_la1[10] = jj_gen; 855 break label_5; 856 } 857 jj_consume_token(COMMA); 858 Parameter(); 859 } 860 break; 861 default: 862 jj_la1[11] = jj_gen; 863 ; 864 } 865 jj_consume_token(RBRACKET); 866 } catch (Throwable jjte000) { 867 if (jjtc000) { 868 jjtree.clearNodeScope(jjtn000); 869 jjtc000 = false; 870 } else { 871 jjtree.popNode(); 872 } 873 if (jjte000 instanceof RuntimeException) { 874 {if (true) throw (RuntimeException)jjte000;} 875 } 876 if (jjte000 instanceof ParseException) { 877 {if (true) throw (ParseException)jjte000;} 878 } 879 {if (true) throw (Error)jjte000;} 880 } finally { 881 if (jjtc000) { 882 jjtree.closeNodeScope(jjtn000, true); 883 } 884 } 885 } 886 887 892 final public void IntegerRange() throws ParseException { 893 894 ASTIntegerRange jjtn000 = new ASTIntegerRange(this, JJTINTEGERRANGE); 895 boolean jjtc000 = true; 896 jjtree.openNodeScope(jjtn000); 897 try { 898 jj_consume_token(LBRACKET); 899 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 900 case WHITESPACE: 901 jj_consume_token(WHITESPACE); 902 break; 903 default: 904 jj_la1[12] = jj_gen; 905 ; 906 } 907 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 908 case IDENTIFIER: 909 case LCURLY: 910 Reference(); 911 break; 912 case NUMBER_LITERAL: 913 NumberLiteral(); 914 break; 915 default: 916 jj_la1[13] = jj_gen; 917 jj_consume_token(-1); 918 throw new ParseException(); 919 } 920 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 921 case WHITESPACE: 922 jj_consume_token(WHITESPACE); 923 break; 924 default: 925 jj_la1[14] = jj_gen; 926 ; 927 } 928 jj_consume_token(DOUBLEDOT); 929 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 930 case WHITESPACE: 931 jj_consume_token(WHITESPACE); 932 break; 933 default: 934 jj_la1[15] = jj_gen; 935 ; 936 } 937 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 938 case IDENTIFIER: 939 case LCURLY: 940 Reference(); 941 break; 942 case NUMBER_LITERAL: 943 NumberLiteral(); 944 break; 945 default: 946 jj_la1[16] = jj_gen; 947 jj_consume_token(-1); 948 throw new ParseException(); 949 } 950 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 951 case WHITESPACE: 952 jj_consume_token(WHITESPACE); 953 break; 954 default: 955 jj_la1[17] = jj_gen; 956 ; 957 } 958 jj_consume_token(RBRACKET); 959 } catch (Throwable jjte000) { 960 if (jjtc000) { 961 jjtree.clearNodeScope(jjtn000); 962 jjtc000 = false; 963 } else { 964 jjtree.popNode(); 965 } 966 if (jjte000 instanceof RuntimeException) { 967 {if (true) throw (RuntimeException)jjte000;} 968 } 969 if (jjte000 instanceof ParseException) { 970 {if (true) throw (ParseException)jjte000;} 971 } 972 {if (true) throw (Error)jjte000;} 973 } finally { 974 if (jjtc000) { 975 jjtree.closeNodeScope(jjtn000, true); 976 } 977 } 978 } 979 980 985 final public void Parameter() throws ParseException { 986 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 987 case WHITESPACE: 988 jj_consume_token(WHITESPACE); 989 break; 990 default: 991 jj_la1[18] = jj_gen; 992 ; 993 } 994 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 995 case STRING_LITERAL: 996 StringLiteral(); 997 break; 998 default: 999 jj_la1[19] = jj_gen; 1000 if (jj_2_5(2147483647)) { 1001 IntegerRange(); 1002 } else { 1003 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1004 case LBRACKET: 1005 ObjectArray(); 1006 break; 1007 case TRUE: 1008 True(); 1009 break; 1010 case FALSE: 1011 False(); 1012 break; 1013 case IDENTIFIER: 1014 case LCURLY: 1015 Reference(); 1016 break; 1017 case NUMBER_LITERAL: 1018 NumberLiteral(); 1019 break; 1020 default: 1021 jj_la1[20] = jj_gen; 1022 jj_consume_token(-1); 1023 throw new ParseException(); 1024 } 1025 } 1026 } 1027 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1028 case WHITESPACE: 1029 jj_consume_token(WHITESPACE); 1030 break; 1031 default: 1032 jj_la1[21] = jj_gen; 1033 ; 1034 } 1035 } 1036 1037 1042 final public void Method() throws ParseException { 1043 1044 ASTMethod jjtn000 = new ASTMethod(this, JJTMETHOD); 1045 boolean jjtc000 = true; 1046 jjtree.openNodeScope(jjtn000); 1047 try { 1048 Identifier(); 1049 jj_consume_token(LPAREN); 1050 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1051 case LBRACKET: 1052 case WHITESPACE: 1053 case STRING_LITERAL: 1054 case TRUE: 1055 case FALSE: 1056 case NUMBER_LITERAL: 1057 case IDENTIFIER: 1058 case LCURLY: 1059 Parameter(); 1060 label_6: 1061 while (true) { 1062 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1063 case COMMA: 1064 ; 1065 break; 1066 default: 1067 jj_la1[22] = jj_gen; 1068 break label_6; 1069 } 1070 jj_consume_token(COMMA); 1071 Parameter(); 1072 } 1073 break; 1074 default: 1075 jj_la1[23] = jj_gen; 1076 ; 1077 } 1078 jj_consume_token(REFMOD2_RPAREN); 1079 } catch (Throwable jjte000) { 1080 if (jjtc000) { 1081 jjtree.clearNodeScope(jjtn000); 1082 jjtc000 = false; 1083 } else { 1084 jjtree.popNode(); 1085 } 1086 if (jjte000 instanceof RuntimeException) { 1087 {if (true) throw (RuntimeException)jjte000;} 1088 } 1089 if (jjte000 instanceof ParseException) { 1090 {if (true) throw (ParseException)jjte000;} 1091 } 1092 {if (true) throw (Error)jjte000;} 1093 } finally { 1094 if (jjtc000) { 1095 jjtree.closeNodeScope(jjtn000, true); 1096 } 1097 } 1098 } 1099 1100 final public void Reference() throws ParseException { 1101 1102 ASTReference jjtn000 = new ASTReference(this, JJTREFERENCE); 1103 boolean jjtc000 = true; 1104 jjtree.openNodeScope(jjtn000); 1105 try { 1106 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1107 case IDENTIFIER: 1108 jj_consume_token(IDENTIFIER); 1109 label_7: 1110 while (true) { 1111 if (jj_2_6(2)) { 1112 ; 1113 } else { 1114 break label_7; 1115 } 1116 jj_consume_token(DOT); 1117 if (jj_2_7(3)) { 1118 Method(); 1119 } else { 1120 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1121 case IDENTIFIER: 1122 Identifier(); 1123 break; 1124 default: 1125 jj_la1[24] = jj_gen; 1126 jj_consume_token(-1); 1127 throw new ParseException(); 1128 } 1129 } 1130 } 1131 break; 1132 case LCURLY: 1133 jj_consume_token(LCURLY); 1134 jj_consume_token(IDENTIFIER); 1135 label_8: 1136 while (true) { 1137 if (jj_2_8(2)) { 1138 ; 1139 } else { 1140 break label_8; 1141 } 1142 jj_consume_token(DOT); 1143 if (jj_2_9(3)) { 1144 Method(); 1145 } else { 1146 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1147 case IDENTIFIER: 1148 Identifier(); 1149 break; 1150 default: 1151 jj_la1[25] = jj_gen; 1152 jj_consume_token(-1); 1153 throw new ParseException(); 1154 } 1155 } 1156 } 1157 jj_consume_token(RCURLY); 1158 break; 1159 default: 1160 jj_la1[26] = jj_gen; 1161 jj_consume_token(-1); 1162 throw new ParseException(); 1163 } 1164 } catch (Throwable jjte000) { 1165 if (jjtc000) { 1166 jjtree.clearNodeScope(jjtn000); 1167 jjtc000 = false; 1168 } else { 1169 jjtree.popNode(); 1170 } 1171 if (jjte000 instanceof RuntimeException) { 1172 {if (true) throw (RuntimeException)jjte000;} 1173 } 1174 if (jjte000 instanceof ParseException) { 1175 {if (true) throw (ParseException)jjte000;} 1176 } 1177 {if (true) throw (Error)jjte000;} 1178 } finally { 1179 if (jjtc000) { 1180 jjtree.closeNodeScope(jjtn000, true); 1181 } 1182 } 1183 } 1184 1185 final public void True() throws ParseException { 1186 1187 ASTTrue jjtn000 = new ASTTrue(this, JJTTRUE); 1188 boolean jjtc000 = true; 1189 jjtree.openNodeScope(jjtn000); 1190 try { 1191 jj_consume_token(TRUE); 1192 } finally { 1193 if (jjtc000) { 1194 jjtree.closeNodeScope(jjtn000, true); 1195 } 1196 } 1197 } 1198 1199 final public void False() throws ParseException { 1200 1201 ASTFalse jjtn000 = new ASTFalse(this, JJTFALSE); 1202 boolean jjtc000 = true; 1203 jjtree.openNodeScope(jjtn000); 1204 try { 1205 jj_consume_token(FALSE); 1206 } finally { 1207 if (jjtc000) { 1208 jjtree.closeNodeScope(jjtn000, true); 1209 } 1210 } 1211 } 1212 1213 1218 final public void Text() throws ParseException { 1219 1220 ASTText jjtn000 = new ASTText(this, JJTTEXT); 1221 boolean jjtc000 = true; 1222 jjtree.openNodeScope(jjtn000); 1223 try { 1224 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1225 case TEXT: 1226 jj_consume_token(TEXT); 1227 break; 1228 case DOT: 1229 jj_consume_token(DOT); 1230 break; 1231 case RPAREN: 1232 jj_consume_token(RPAREN); 1233 break; 1234 case LPAREN: 1235 jj_consume_token(LPAREN); 1236 break; 1237 case NUMBER_LITERAL: 1238 jj_consume_token(NUMBER_LITERAL); 1239 break; 1240 case STRING_LITERAL: 1241 jj_consume_token(STRING_LITERAL); 1242 break; 1243 case ESCAPE: 1244 jj_consume_token(ESCAPE); 1245 break; 1246 case LCURLY: 1247 jj_consume_token(LCURLY); 1248 break; 1249 case RCURLY: 1250 jj_consume_token(RCURLY); 1251 break; 1252 default: 1253 jj_la1[27] = jj_gen; 1254 jj_consume_token(-1); 1255 throw new ParseException(); 1256 } 1257 } finally { 1258 if (jjtc000) { 1259 jjtree.closeNodeScope(jjtn000, true); 1260 } 1261 } 1262 } 1263 1264 1269 final public void IfStatement() throws ParseException { 1270 1271 ASTIfStatement jjtn000 = new ASTIfStatement(this, JJTIFSTATEMENT); 1272 boolean jjtc000 = true; 1273 jjtree.openNodeScope(jjtn000); 1274 try { 1275 jj_consume_token(IF_DIRECTIVE); 1276 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1277 case WHITESPACE: 1278 jj_consume_token(WHITESPACE); 1279 break; 1280 default: 1281 jj_la1[28] = jj_gen; 1282 ; 1283 } 1284 jj_consume_token(LPAREN); 1285 Expression(); 1286 jj_consume_token(RPAREN); 1287 ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK); 1288 boolean jjtc001 = true; 1289 jjtree.openNodeScope(jjtn001); 1290 try { 1291 label_9: 1292 while (true) { 1293 Statement(); 1294 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1295 case LPAREN: 1296 case RPAREN: 1297 case ESCAPE_DIRECTIVE: 1298 case SET_DIRECTIVE: 1299 case DOUBLE_ESCAPE: 1300 case ESCAPE: 1301 case TEXT: 1302 case SINGLE_LINE_COMMENT: 1303 case FORMAL_COMMENT: 1304 case MULTI_LINE_COMMENT: 1305 case STRING_LITERAL: 1306 case IF_DIRECTIVE: 1307 case STOP_DIRECTIVE: 1308 case NUMBER_LITERAL: 1309 case WORD: 1310 case IDENTIFIER: 1311 case DOT: 1312 case LCURLY: 1313 case RCURLY: 1314 ; 1315 break; 1316 default: 1317 jj_la1[29] = jj_gen; 1318 break label_9; 1319 } 1320 } 1321 } catch (Throwable jjte001) { 1322 if (jjtc001) { 1323 jjtree.clearNodeScope(jjtn001); 1324 jjtc001 = false; 1325 } else { 1326 jjtree.popNode(); 1327 } 1328 if (jjte001 instanceof RuntimeException) { 1329 {if (true) throw (RuntimeException)jjte001;} 1330 } 1331 if (jjte001 instanceof ParseException) { 1332 {if (true) throw (ParseException)jjte001;} 1333 } 1334 {if (true) throw (Error)jjte001;} 1335 } finally { 1336 if (jjtc001) { 1337 jjtree.closeNodeScope(jjtn001, true); 1338 } 1339 } 1340 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1341 case ELSEIF_DIRECTIVE: 1342 label_10: 1343 while (true) { 1344 ElseIfStatement(); 1345 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1346 case ELSEIF_DIRECTIVE: 1347 ; 1348 break; 1349 default: 1350 jj_la1[30] = jj_gen; 1351 break label_10; 1352 } 1353 } 1354 break; 1355 default: 1356 jj_la1[31] = jj_gen; 1357 ; 1358 } 1359 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1360 case ELSE_DIRECTIVE: 1361 ElseStatement(); 1362 break; 1363 default: 1364 jj_la1[32] = jj_gen; 1365 ; 1366 } 1367 jj_consume_token(END); 1368 } catch (Throwable jjte000) { 1369 if (jjtc000) { 1370 jjtree.clearNodeScope(jjtn000); 1371 jjtc000 = false; 1372 } else { 1373 jjtree.popNode(); 1374 } 1375 if (jjte000 instanceof RuntimeException) { 1376 {if (true) throw (RuntimeException)jjte000;} 1377 } 1378 if (jjte000 instanceof ParseException) { 1379 {if (true) throw (ParseException)jjte000;} 1380 } 1381 {if (true) throw (Error)jjte000;} 1382 } finally { 1383 if (jjtc000) { 1384 jjtree.closeNodeScope(jjtn000, true); 1385 } 1386 } 1387 } 1388 1389 final public void ElseStatement() throws ParseException { 1390 1391 ASTElseStatement jjtn000 = new ASTElseStatement(this, JJTELSESTATEMENT); 1392 boolean jjtc000 = true; 1393 jjtree.openNodeScope(jjtn000); 1394 try { 1395 jj_consume_token(ELSE_DIRECTIVE); 1396 ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK); 1397 boolean jjtc001 = true; 1398 jjtree.openNodeScope(jjtn001); 1399 try { 1400 label_11: 1401 while (true) { 1402 Statement(); 1403 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1404 case LPAREN: 1405 case RPAREN: 1406 case ESCAPE_DIRECTIVE: 1407 case SET_DIRECTIVE: 1408 case DOUBLE_ESCAPE: 1409 case ESCAPE: 1410 case TEXT: 1411 case SINGLE_LINE_COMMENT: 1412 case FORMAL_COMMENT: 1413 case MULTI_LINE_COMMENT: 1414 case STRING_LITERAL: 1415 case IF_DIRECTIVE: 1416 case STOP_DIRECTIVE: 1417 case NUMBER_LITERAL: 1418 case WORD: 1419 case IDENTIFIER: 1420 case DOT: 1421 case LCURLY: 1422 case RCURLY: 1423 ; 1424 break; 1425 default: 1426 jj_la1[33] = jj_gen; 1427 break label_11; 1428 } 1429 } 1430 } catch (Throwable jjte001) { 1431 if (jjtc001) { 1432 jjtree.clearNodeScope(jjtn001); 1433 jjtc001 = false; 1434 } else { 1435 jjtree.popNode(); 1436 } 1437 if (jjte001 instanceof RuntimeException) { 1438 {if (true) throw (RuntimeException)jjte001;} 1439 } 1440 if (jjte001 instanceof ParseException) { 1441 {if (true) throw (ParseException)jjte001;} 1442 } 1443 {if (true) throw (Error)jjte001;} 1444 } finally { 1445 if (jjtc001) { 1446 jjtree.closeNodeScope(jjtn001, true); 1447 } 1448 } 1449 } catch (Throwable jjte000) { 1450 if (jjtc000) { 1451 jjtree.clearNodeScope(jjtn000); 1452 jjtc000 = false; 1453 } else { 1454 jjtree.popNode(); 1455 } 1456 if (jjte000 instanceof RuntimeException) { 1457 {if (true) throw (RuntimeException)jjte000;} 1458 } 1459 if (jjte000 instanceof ParseException) { 1460 {if (true) throw (ParseException)jjte000;} 1461 } 1462 {if (true) throw (Error)jjte000;} 1463 } finally { 1464 if (jjtc000) { 1465 jjtree.closeNodeScope(jjtn000, true); 1466 } 1467 } 1468 } 1469 1470 final public void ElseIfStatement() throws ParseException { 1471 1472 ASTElseIfStatement jjtn000 = new ASTElseIfStatement(this, JJTELSEIFSTATEMENT); 1473 boolean jjtc000 = true; 1474 jjtree.openNodeScope(jjtn000); 1475 try { 1476 jj_consume_token(ELSEIF_DIRECTIVE); 1477 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1478 case WHITESPACE: 1479 jj_consume_token(WHITESPACE); 1480 break; 1481 default: 1482 jj_la1[34] = jj_gen; 1483 ; 1484 } 1485 jj_consume_token(LPAREN); 1486 Expression(); 1487 jj_consume_token(RPAREN); 1488 ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK); 1489 boolean jjtc001 = true; 1490 jjtree.openNodeScope(jjtn001); 1491 try { 1492 label_12: 1493 while (true) { 1494 Statement(); 1495 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1496 case LPAREN: 1497 case RPAREN: 1498 case ESCAPE_DIRECTIVE: 1499 case SET_DIRECTIVE: 1500 case DOUBLE_ESCAPE: 1501 case ESCAPE: 1502 case TEXT: 1503 case SINGLE_LINE_COMMENT: 1504 case FORMAL_COMMENT: 1505 case MULTI_LINE_COMMENT: 1506 case STRING_LITERAL: 1507 case IF_DIRECTIVE: 1508 case STOP_DIRECTIVE: 1509 case NUMBER_LITERAL: 1510 case WORD: 1511 case IDENTIFIER: 1512 case DOT: 1513 case LCURLY: 1514 case RCURLY: 1515 ; 1516 break; 1517 default: 1518 jj_la1[35] = jj_gen; 1519 break label_12; 1520 } 1521 } 1522 } catch (Throwable jjte001) { 1523 if (jjtc001) { 1524 jjtree.clearNodeScope(jjtn001); 1525 jjtc001 = false; 1526 } else { 1527 jjtree.popNode(); 1528 } 1529 if (jjte001 instanceof RuntimeException) { 1530 {if (true) throw (RuntimeException)jjte001;} 1531 } 1532 if (jjte001 instanceof ParseException) { 1533 {if (true) throw (ParseException)jjte001;} 1534 } 1535 {if (true) throw (Error)jjte001;} 1536 } finally { 1537 if (jjtc001) { 1538 jjtree.closeNodeScope(jjtn001, true); 1539 } 1540 } 1541 } catch (Throwable jjte000) { 1542 if (jjtc000) { 1543 jjtree.clearNodeScope(jjtn000); 1544 jjtc000 = false; 1545 } else { 1546 jjtree.popNode(); 1547 } 1548 if (jjte000 instanceof RuntimeException) { 1549 {if (true) throw (RuntimeException)jjte000;} 1550 } 1551 if (jjte000 instanceof ParseException) { 1552 {if (true) throw (ParseException)jjte000;} 1553 } 1554 {if (true) throw (Error)jjte000;} 1555 } finally { 1556 if (jjtc000) { 1557 jjtree.closeNodeScope(jjtn000, true); 1558 } 1559 } 1560 } 1561 1562 1567 final public void SetDirective() throws ParseException { 1568 1569 ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE); 1570 boolean jjtc000 = true; 1571 jjtree.openNodeScope(jjtn000); 1572 try { 1573 jj_consume_token(SET_DIRECTIVE); 1574 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1575 case WHITESPACE: 1576 jj_consume_token(WHITESPACE); 1577 break; 1578 default: 1579 jj_la1[36] = jj_gen; 1580 ; 1581 } 1582 Reference(); 1583 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1584 case WHITESPACE: 1585 jj_consume_token(WHITESPACE); 1586 break; 1587 default: 1588 jj_la1[37] = jj_gen; 1589 ; 1590 } 1591 jj_consume_token(EQUALS); 1592 Expression(); 1593 jj_consume_token(RPAREN); 1594 1597 1598 token_source.inSet = false; 1599 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1600 case NEWLINE: 1601 jj_consume_token(NEWLINE); 1602 break; 1603 default: 1604 jj_la1[38] = jj_gen; 1605 ; 1606 } 1607 } catch (Throwable jjte000) { 1608 if (jjtc000) { 1609 jjtree.clearNodeScope(jjtn000); 1610 jjtc000 = false; 1611 } else { 1612 jjtree.popNode(); 1613 } 1614 if (jjte000 instanceof RuntimeException) { 1615 {if (true) throw (RuntimeException)jjte000;} 1616 } 1617 if (jjte000 instanceof ParseException) { 1618 {if (true) throw (ParseException)jjte000;} 1619 } 1620 {if (true) throw (Error)jjte000;} 1621 } finally { 1622 if (jjtc000) { 1623 jjtree.closeNodeScope(jjtn000, true); 1624 } 1625 } 1626 } 1627 1628 1635 final public void StopStatement() throws ParseException { 1636 jj_consume_token(STOP_DIRECTIVE); 1637 } 1638 1639 1644 final public void Expression() throws ParseException { 1645 1646 ASTExpression jjtn000 = new ASTExpression(this, JJTEXPRESSION); 1647 boolean jjtc000 = true; 1648 jjtree.openNodeScope(jjtn000); 1649 try { 1650 ConditionalOrExpression(); 1651 } catch (Throwable jjte000) { 1652 if (jjtc000) { 1653 jjtree.clearNodeScope(jjtn000); 1654 jjtc000 = false; 1655 } else { 1656 jjtree.popNode(); 1657 } 1658 if (jjte000 instanceof RuntimeException) { 1659 {if (true) throw (RuntimeException)jjte000;} 1660 } 1661 if (jjte000 instanceof ParseException) { 1662 {if (true) throw (ParseException)jjte000;} 1663 } 1664 {if (true) throw (Error)jjte000;} 1665 } finally { 1666 if (jjtc000) { 1667 jjtree.closeNodeScope(jjtn000, true); 1668 } 1669 } 1670 } 1671 1672 final public void Assignment() throws ParseException { 1673 1674 ASTAssignment jjtn000 = new ASTAssignment(this, JJTASSIGNMENT); 1675 boolean jjtc000 = true; 1676 jjtree.openNodeScope(jjtn000); 1677 try { 1678 PrimaryExpression(); 1679 jj_consume_token(EQUALS); 1680 Expression(); 1681 } catch (Throwable jjte000) { 1682 if (jjtc000) { 1683 jjtree.clearNodeScope(jjtn000); 1684 jjtc000 = false; 1685 } else { 1686 jjtree.popNode(); 1687 } 1688 if (jjte000 instanceof RuntimeException) { 1689 {if (true) throw (RuntimeException)jjte000;} 1690 } 1691 if (jjte000 instanceof ParseException) { 1692 {if (true) throw (ParseException)jjte000;} 1693 } 1694 {if (true) throw (Error)jjte000;} 1695 } finally { 1696 if (jjtc000) { 1697 jjtree.closeNodeScope(jjtn000, 2); 1698 } 1699 } 1700 } 1701 1702 final public void ConditionalOrExpression() throws ParseException { 1703 ConditionalAndExpression(); 1704 label_13: 1705 while (true) { 1706 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1707 case LOGICAL_OR: 1708 ; 1709 break; 1710 default: 1711 jj_la1[39] = jj_gen; 1712 break label_13; 1713 } 1714 jj_consume_token(LOGICAL_OR); 1715 ASTOrNode jjtn001 = new ASTOrNode(this, JJTORNODE); 1716 boolean jjtc001 = true; 1717 jjtree.openNodeScope(jjtn001); 1718 try { 1719 ConditionalAndExpression(); 1720 } catch (Throwable jjte001) { 1721 if (jjtc001) { 1722 jjtree.clearNodeScope(jjtn001); 1723 jjtc001 = false; 1724 } else { 1725 jjtree.popNode(); 1726 } 1727 if (jjte001 instanceof RuntimeException) { 1728 {if (true) throw (RuntimeException)jjte001;} 1729 } 1730 if (jjte001 instanceof ParseException) { 1731 {if (true) throw (ParseException)jjte001;} 1732 } 1733 {if (true) throw (Error)jjte001;} 1734 } finally { 1735 if (jjtc001) { 1736 jjtree.closeNodeScope(jjtn001, 2); 1737 } 1738 } 1739 } 1740 } 1741 1742 final public void ConditionalAndExpression() throws ParseException { 1743 EqualityExpression(); 1744 label_14: 1745 while (true) { 1746 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1747 case LOGICAL_AND: 1748 ; 1749 break; 1750 default: 1751 jj_la1[40] = jj_gen; 1752 break label_14; 1753 } 1754 jj_consume_token(LOGICAL_AND); 1755 ASTAndNode jjtn001 = new ASTAndNode(this, JJTANDNODE); 1756 boolean jjtc001 = true; 1757 jjtree.openNodeScope(jjtn001); 1758 try { 1759 EqualityExpression(); 1760 } catch (Throwable jjte001) { 1761 if (jjtc001) { 1762 jjtree.clearNodeScope(jjtn001); 1763 jjtc001 = false; 1764 } else { 1765 jjtree.popNode(); 1766 } 1767 if (jjte001 instanceof RuntimeException) { 1768 {if (true) throw (RuntimeException)jjte001;} 1769 } 1770 if (jjte001 instanceof ParseException) { 1771 {if (true) throw (ParseException)jjte001;} 1772 } 1773 {if (true) throw (Error)jjte001;} 1774 } finally { 1775 if (jjtc001) { 1776 jjtree.closeNodeScope(jjtn001, 2); 1777 } 1778 } 1779 } 1780 } 1781 1782 final public void EqualityExpression() throws ParseException { 1783 RelationalExpression(); 1784 label_15: 1785 while (true) { 1786 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1787 case LOGICAL_EQUALS: 1788 case LOGICAL_NOT_EQUALS: 1789 ; 1790 break; 1791 default: 1792 jj_la1[41] = jj_gen; 1793 break label_15; 1794 } 1795 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1796 case LOGICAL_EQUALS: 1797 jj_consume_token(LOGICAL_EQUALS); 1798 ASTEQNode jjtn001 = new ASTEQNode(this, JJTEQNODE); 1799 boolean jjtc001 = true; 1800 jjtree.openNodeScope(jjtn001); 1801 try { 1802 RelationalExpression(); 1803 } catch (Throwable jjte001) { 1804 if (jjtc001) { 1805 jjtree.clearNodeScope(jjtn001); 1806 jjtc001 = false; 1807 } else { 1808 jjtree.popNode(); 1809 } 1810 if (jjte001 instanceof RuntimeException) { 1811 {if (true) throw (RuntimeException)jjte001;} 1812 } 1813 if (jjte001 instanceof ParseException) { 1814 {if (true) throw (ParseException)jjte001;} 1815 } 1816 {if (true) throw (Error)jjte001;} 1817 } finally { 1818 if (jjtc001) { 1819 jjtree.closeNodeScope(jjtn001, 2); 1820 } 1821 } 1822 break; 1823 case LOGICAL_NOT_EQUALS: 1824 jj_consume_token(LOGICAL_NOT_EQUALS); 1825 ASTNENode jjtn002 = new ASTNENode(this, JJTNENODE); 1826 boolean jjtc002 = true; 1827 jjtree.openNodeScope(jjtn002); 1828 try { 1829 RelationalExpression(); 1830 } catch (Throwable jjte002) { 1831 if (jjtc002) { 1832 jjtree.clearNodeScope(jjtn002); 1833 jjtc002 = false; 1834 } else { 1835 jjtree.popNode(); 1836 } 1837 if (jjte002 instanceof RuntimeException) { 1838 {if (true) throw (RuntimeException)jjte002;} 1839 } 1840 if (jjte002 instanceof ParseException) { 1841 {if (true) throw (ParseException)jjte002;} 1842 } 1843 {if (true) throw (Error)jjte002;} 1844 } finally { 1845 if (jjtc002) { 1846 jjtree.closeNodeScope(jjtn002, 2); 1847 } 1848 } 1849 break; 1850 default: 1851 jj_la1[42] = jj_gen; 1852 jj_consume_token(-1); 1853 throw new ParseException(); 1854 } 1855 } 1856 } 1857 1858 final public void RelationalExpression() throws ParseException { 1859 AdditiveExpression(); 1860 label_16: 1861 while (true) { 1862 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1863 case LOGICAL_LT: 1864 case LOGICAL_LE: 1865 case LOGICAL_GT: 1866 case LOGICAL_GE: 1867 ; 1868 break; 1869 default: 1870 jj_la1[43] = jj_gen; 1871 break label_16; 1872 } 1873 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1874 case LOGICAL_LT: 1875 jj_consume_token(LOGICAL_LT); 1876 ASTLTNode jjtn001 = new ASTLTNode(this, JJTLTNODE); 1877 boolean jjtc001 = true; 1878 jjtree.openNodeScope(jjtn001); 1879 try { 1880 AdditiveExpression(); 1881 } catch (Throwable jjte001) { 1882 if (jjtc001) { 1883 jjtree.clearNodeScope(jjtn001); 1884 jjtc001 = false; 1885 } else { 1886 jjtree.popNode(); 1887 } 1888 if (jjte001 instanceof RuntimeException) { 1889 {if (true) throw (RuntimeException)jjte001;} 1890 } 1891 if (jjte001 instanceof ParseException) { 1892 {if (true) throw (ParseException)jjte001;} 1893 } 1894 {if (true) throw (Error)jjte001;} 1895 } finally { 1896 if (jjtc001) { 1897 jjtree.closeNodeScope(jjtn001, 2); 1898 } 1899 } 1900 break; 1901 case LOGICAL_GT: 1902 jj_consume_token(LOGICAL_GT); 1903 ASTGTNode jjtn002 = new ASTGTNode(this, JJTGTNODE); 1904 boolean jjtc002 = true; 1905 jjtree.openNodeScope(jjtn002); 1906 try { 1907 AdditiveExpression(); 1908 } catch (Throwable jjte002) { 1909 if (jjtc002) { 1910 jjtree.clearNodeScope(jjtn002); 1911 jjtc002 = false; 1912 } else { 1913 jjtree.popNode(); 1914 } 1915 if (jjte002 instanceof RuntimeException) { 1916 {if (true) throw (RuntimeException)jjte002;} 1917 } 1918 if (jjte002 instanceof ParseException) { 1919 {if (true) throw (ParseException)jjte002;} 1920 } 1921 {if (true) throw (Error)jjte002;} 1922 } finally { 1923 if (jjtc002) { 1924 jjtree.closeNodeScope(jjtn002, 2); 1925 } 1926 } 1927 break; 1928 case LOGICAL_LE: 1929 jj_consume_token(LOGICAL_LE); 1930 ASTLENode jjtn003 = new ASTLENode(this, JJTLENODE); 1931 boolean jjtc003 = true; 1932 jjtree.openNodeScope(jjtn003); 1933 try { 1934 AdditiveExpression(); 1935 } catch (Throwable jjte003) { 1936 if (jjtc003) { 1937 jjtree.clearNodeScope(jjtn003); 1938 jjtc003 = false; 1939 } else { 1940 jjtree.popNode(); 1941 } 1942 if (jjte003 instanceof RuntimeException) { 1943 {if (true) throw (RuntimeException)jjte003;} 1944 } 1945 if (jjte003 instanceof ParseException) { 1946 {if (true) throw (ParseException)jjte003;} 1947 } 1948 {if (true) throw (Error)jjte003;} 1949 } finally { 1950 if (jjtc003) { 1951 jjtree.closeNodeScope(jjtn003, 2); 1952 } 1953 } 1954 break; 1955 case LOGICAL_GE: 1956 jj_consume_token(LOGICAL_GE); 1957 ASTGENode jjtn004 = new ASTGENode(this, JJTGENODE); 1958 boolean jjtc004 = true; 1959 jjtree.openNodeScope(jjtn004); 1960 try { 1961 AdditiveExpression(); 1962 } catch (Throwable jjte004) { 1963 if (jjtc004) { 1964 jjtree.clearNodeScope(jjtn004); 1965 jjtc004 = false; 1966 } else { 1967 jjtree.popNode(); 1968 } 1969 if (jjte004 instanceof RuntimeException) { 1970 {if (true) throw (RuntimeException)jjte004;} 1971 } 1972 if (jjte004 instanceof ParseException) { 1973 {if (true) throw (ParseException)jjte004;} 1974 } 1975 {if (true) throw (Error)jjte004;} 1976 } finally { 1977 if (jjtc004) { 1978 jjtree.closeNodeScope(jjtn004, 2); 1979 } 1980 } 1981 break; 1982 default: 1983 jj_la1[44] = jj_gen; 1984 jj_consume_token(-1); 1985 throw new ParseException(); 1986 } 1987 } 1988 } 1989 1990 final public void AdditiveExpression() throws ParseException { 1991 MultiplicativeExpression(); 1992 label_17: 1993 while (true) { 1994 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 1995 case MINUS: 1996 case PLUS: 1997 ; 1998 break; 1999 default: 2000 jj_la1[45] = jj_gen; 2001 break label_17; 2002 } 2003 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2004 case PLUS: 2005 jj_consume_token(PLUS); 2006 ASTAddNode jjtn001 = new ASTAddNode(this, JJTADDNODE); 2007 boolean jjtc001 = true; 2008 jjtree.openNodeScope(jjtn001); 2009 try { 2010 MultiplicativeExpression(); 2011 } catch (Throwable jjte001) { 2012 if (jjtc001) { 2013 jjtree.clearNodeScope(jjtn001); 2014 jjtc001 = false; 2015 } else { 2016 jjtree.popNode(); 2017 } 2018 if (jjte001 instanceof RuntimeException) { 2019 {if (true) throw (RuntimeException)jjte001;} 2020 } 2021 if (jjte001 instanceof ParseException) { 2022 {if (true) throw (ParseException)jjte001;} 2023 } 2024 {if (true) throw (Error)jjte001;} 2025 } finally { 2026 if (jjtc001) { 2027 jjtree.closeNodeScope(jjtn001, 2); 2028 } 2029 } 2030 break; 2031 case MINUS: 2032 jj_consume_token(MINUS); 2033 ASTSubtractNode jjtn002 = new ASTSubtractNode(this, JJTSUBTRACTNODE); 2034 boolean jjtc002 = true; 2035 jjtree.openNodeScope(jjtn002); 2036 try { 2037 MultiplicativeExpression(); 2038 } catch (Throwable jjte002) { 2039 if (jjtc002) { 2040 jjtree.clearNodeScope(jjtn002); 2041 jjtc002 = false; 2042 } else { 2043 jjtree.popNode(); 2044 } 2045 if (jjte002 instanceof RuntimeException) { 2046 {if (true) throw (RuntimeException)jjte002;} 2047 } 2048 if (jjte002 instanceof ParseException) { 2049 {if (true) throw (ParseException)jjte002;} 2050 } 2051 {if (true) throw (Error)jjte002;} 2052 } finally { 2053 if (jjtc002) { 2054 jjtree.closeNodeScope(jjtn002, 2); 2055 } 2056 } 2057 break; 2058 default: 2059 jj_la1[46] = jj_gen; 2060 jj_consume_token(-1); 2061 throw new ParseException(); 2062 } 2063 } 2064 } 2065 2066 final public void MultiplicativeExpression() throws ParseException { 2067 UnaryExpression(); 2068 label_18: 2069 while (true) { 2070 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2071 case MULTIPLY: 2072 case DIVIDE: 2073 case MODULUS: 2074 ; 2075 break; 2076 default: 2077 jj_la1[47] = jj_gen; 2078 break label_18; 2079 } 2080 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2081 case MULTIPLY: 2082 jj_consume_token(MULTIPLY); 2083 ASTMulNode jjtn001 = new ASTMulNode(this, JJTMULNODE); 2084 boolean jjtc001 = true; 2085 jjtree.openNodeScope(jjtn001); 2086 try { 2087 UnaryExpression(); 2088 } catch (Throwable jjte001) { 2089 if (jjtc001) { 2090 jjtree.clearNodeScope(jjtn001); 2091 jjtc001 = false; 2092 } else { 2093 jjtree.popNode(); 2094 } 2095 if (jjte001 instanceof RuntimeException) { 2096 {if (true) throw (RuntimeException)jjte001;} 2097 } 2098 if (jjte001 instanceof ParseException) { 2099 {if (true) throw (ParseException)jjte001;} 2100 } 2101 {if (true) throw (Error)jjte001;} 2102 } finally { 2103 if (jjtc001) { 2104 jjtree.closeNodeScope(jjtn001, 2); 2105 } 2106 } 2107 break; 2108 case DIVIDE: 2109 jj_consume_token(DIVIDE); 2110 ASTDivNode jjtn002 = new ASTDivNode(this, JJTDIVNODE); 2111 boolean jjtc002 = true; 2112 jjtree.openNodeScope(jjtn002); 2113 try { 2114 UnaryExpression(); 2115 } catch (Throwable jjte002) { 2116 if (jjtc002) { 2117 jjtree.clearNodeScope(jjtn002); 2118 jjtc002 = false; 2119 } else { 2120 jjtree.popNode(); 2121 } 2122 if (jjte002 instanceof RuntimeException) { 2123 {if (true) throw (RuntimeException)jjte002;} 2124 } 2125 if (jjte002 instanceof ParseException) { 2126 {if (true) throw (ParseException)jjte002;} 2127 } 2128 {if (true) throw (Error)jjte002;} 2129 } finally { 2130 if (jjtc002) { 2131 jjtree.closeNodeScope(jjtn002, 2); 2132 } 2133 } 2134 break; 2135 case MODULUS: 2136 jj_consume_token(MODULUS); 2137 ASTModNode jjtn003 = new ASTModNode(this, JJTMODNODE); 2138 boolean jjtc003 = true; 2139 jjtree.openNodeScope(jjtn003); 2140 try { 2141 UnaryExpression(); 2142 } catch (Throwable jjte003) { 2143 if (jjtc003) { 2144 jjtree.clearNodeScope(jjtn003); 2145 jjtc003 = false; 2146 } else { 2147 jjtree.popNode(); 2148 } 2149 if (jjte003 instanceof RuntimeException) { 2150 {if (true) throw (RuntimeException)jjte003;} 2151 } 2152 if (jjte003 instanceof ParseException) { 2153 {if (true) throw (ParseException)jjte003;} 2154 } 2155 {if (true) throw (Error)jjte003;} 2156 } finally { 2157 if (jjtc003) { 2158 jjtree.closeNodeScope(jjtn003, 2); 2159 } 2160 } 2161 break; 2162 default: 2163 jj_la1[48] = jj_gen; 2164 jj_consume_token(-1); 2165 throw new ParseException(); 2166 } 2167 } 2168 } 2169 2170 final public void UnaryExpression() throws ParseException { 2171 if (jj_2_10(2)) { 2172 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2173 case WHITESPACE: 2174 jj_consume_token(WHITESPACE); 2175 break; 2176 default: 2177 jj_la1[49] = jj_gen; 2178 ; 2179 } 2180 jj_consume_token(LOGICAL_NOT); 2181 ASTNotNode jjtn001 = new ASTNotNode(this, JJTNOTNODE); 2182 boolean jjtc001 = true; 2183 jjtree.openNodeScope(jjtn001); 2184 try { 2185 UnaryExpression(); 2186 } catch (Throwable jjte001) { 2187 if (jjtc001) { 2188 jjtree.clearNodeScope(jjtn001); 2189 jjtc001 = false; 2190 } else { 2191 jjtree.popNode(); 2192 } 2193 if (jjte001 instanceof RuntimeException) { 2194 {if (true) throw (RuntimeException)jjte001;} 2195 } 2196 if (jjte001 instanceof ParseException) { 2197 {if (true) throw (ParseException)jjte001;} 2198 } 2199 {if (true) throw (Error)jjte001;} 2200 } finally { 2201 if (jjtc001) { 2202 jjtree.closeNodeScope(jjtn001, 1); 2203 } 2204 } 2205 } else { 2206 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2207 case LBRACKET: 2208 case LPAREN: 2209 case WHITESPACE: 2210 case STRING_LITERAL: 2211 case TRUE: 2212 case FALSE: 2213 case NUMBER_LITERAL: 2214 case IDENTIFIER: 2215 case LCURLY: 2216 PrimaryExpression(); 2217 break; 2218 default: 2219 jj_la1[50] = jj_gen; 2220 jj_consume_token(-1); 2221 throw new ParseException(); 2222 } 2223 } 2224 } 2225 2226 final public void PrimaryExpression() throws ParseException { 2227 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2228 case WHITESPACE: 2229 jj_consume_token(WHITESPACE); 2230 break; 2231 default: 2232 jj_la1[51] = jj_gen; 2233 ; 2234 } 2235 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2236 case STRING_LITERAL: 2237 StringLiteral(); 2238 break; 2239 case NUMBER_LITERAL: 2240 NumberLiteral(); 2241 break; 2242 case IDENTIFIER: 2243 case LCURLY: 2244 Reference(); 2245 break; 2246 default: 2247 jj_la1[52] = jj_gen; 2248 if (jj_2_11(2147483647)) { 2249 IntegerRange(); 2250 } else { 2251 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2252 case LBRACKET: 2253 ObjectArray(); 2254 break; 2255 case TRUE: 2256 True(); 2257 break; 2258 case FALSE: 2259 False(); 2260 break; 2261 case LPAREN: 2262 jj_consume_token(LPAREN); 2263 Expression(); 2264 jj_consume_token(RPAREN); 2265 break; 2266 default: 2267 jj_la1[53] = jj_gen; 2268 jj_consume_token(-1); 2269 throw new ParseException(); 2270 } 2271 } 2272 } 2273 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { 2274 case WHITESPACE: 2275 jj_consume_token(WHITESPACE); 2276 break; 2277 default: 2278 jj_la1[54] = jj_gen; 2279 ; 2280 } 2281 } 2282 2283 final private boolean jj_2_1(int xla) { 2284 jj_la = xla; jj_lastpos = jj_scanpos = token; 2285 boolean retval = !jj_3_1(); 2286 jj_save(0, xla); 2287 return retval; 2288 } 2289 2290 final private boolean jj_2_2(int xla) { 2291 jj_la = xla; jj_lastpos = jj_scanpos = token; 2292 boolean retval = !jj_3_2(); 2293 jj_save(1, xla); 2294 return retval; 2295 } 2296 2297 final private boolean jj_2_3(int xla) { 2298 jj_la = xla; jj_lastpos = jj_scanpos = token; 2299 boolean retval = !jj_3_3(); 2300 jj_save(2, xla); 2301 return retval; 2302 } 2303 2304 final private boolean jj_2_4(int xla) { 2305 jj_la = xla; jj_lastpos = jj_scanpos = token; 2306 boolean retval = !jj_3_4(); 2307 jj_save(3, xla); 2308 return retval; 2309 } 2310 2311 final private boolean jj_2_5(int xla) { 2312 jj_la = xla; jj_lastpos = jj_scanpos = token; 2313 boolean retval = !jj_3_5(); 2314 jj_save(4, xla); 2315 return retval; 2316 } 2317 2318 final private boolean jj_2_6(int xla) { 2319 jj_la = xla; jj_lastpos = jj_scanpos = token; 2320 boolean retval = !jj_3_6(); 2321 jj_save(5, xla); 2322 return retval; 2323 } 2324 2325 final private boolean jj_2_7(int xla) { 2326 jj_la = xla; jj_lastpos = jj_scanpos = token; 2327 boolean retval = !jj_3_7(); 2328 jj_save(6, xla); 2329 return retval; 2330 } 2331 2332 final private boolean jj_2_8(int xla) { 2333 jj_la = xla; jj_lastpos = jj_scanpos = token; 2334 boolean retval = !jj_3_8(); 2335 jj_save(7, xla); 2336 return retval; 2337 } 2338 2339 final private boolean jj_2_9(int xla) { 2340 jj_la = xla; jj_lastpos = jj_scanpos = token; 2341 boolean retval = !jj_3_9(); 2342 jj_save(8, xla); 2343 return retval; 2344 } 2345 2346 final private boolean jj_2_10(int xla) { 2347 jj_la = xla; jj_lastpos = jj_scanpos = token; 2348 boolean retval = !jj_3_10(); 2349 jj_save(9, xla); 2350 return retval; 2351 } 2352 2353 final private boolean jj_2_11(int xla) { 2354 jj_la = xla; jj_lastpos = jj_scanpos = token; 2355 boolean retval = !jj_3_11(); 2356 jj_save(10, xla); 2357 return retval; 2358 } 2359 2360 final private boolean jj_3R_54() { 2361 if (jj_scan_token(STRING_LITERAL)) return true; 2362 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2363 return false; 2364 } 2365 2366 final private boolean jj_3R_24() { 2367 if (jj_scan_token(WHITESPACE)) return true; 2368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2369 return false; 2370 } 2371 2372 final private boolean jj_3R_41() { 2373 if (jj_scan_token(NUMBER_LITERAL)) return true; 2374 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2375 return false; 2376 } 2377 2378 final private boolean jj_3_4() { 2379 Token xsp; 2380 xsp = jj_scanpos; 2381 if (jj_3R_24()) jj_scanpos = xsp; 2382 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2383 if (jj_3R_25()) return true; 2384 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2385 return false; 2386 } 2387 2388 final private boolean jj_3R_38() { 2389 if (jj_scan_token(WHITESPACE)) return true; 2390 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2391 return false; 2392 } 2393 2394 final private boolean jj_3R_29() { 2395 if (jj_scan_token(WHITESPACE)) return true; 2396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2397 return false; 2398 } 2399 2400 final private boolean jj_3R_32() { 2401 if (jj_3R_50()) return true; 2402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2403 return false; 2404 } 2405 2406 final private boolean jj_3R_30() { 2407 if (jj_3R_50()) return true; 2408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2409 return false; 2410 } 2411 2412 final private boolean jj_3R_37() { 2413 if (jj_3R_41()) return true; 2414 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2415 return false; 2416 } 2417 2418 final private boolean jj_3_2() { 2419 if (jj_scan_token(DOUBLE_ESCAPE)) return true; 2420 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2421 return false; 2422 } 2423 2424 final private boolean jj_3R_28() { 2425 if (jj_3R_41()) return true; 2426 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2427 return false; 2428 } 2429 2430 final private boolean jj_3R_36() { 2431 if (jj_3R_19()) return true; 2432 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2433 return false; 2434 } 2435 2436 final private boolean jj_3_9() { 2437 if (jj_3R_31()) return true; 2438 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2439 return false; 2440 } 2441 2442 final private boolean jj_3R_82() { 2443 if (jj_scan_token(COMMA)) return true; 2444 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2445 if (jj_3R_59()) return true; 2446 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2447 return false; 2448 } 2449 2450 final private boolean jj_3R_23() { 2451 if (jj_scan_token(WHITESPACE)) return true; 2452 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2453 return false; 2454 } 2455 2456 final private boolean jj_3_7() { 2457 if (jj_3R_31()) return true; 2458 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2459 return false; 2460 } 2461 2462 final private boolean jj_3R_27() { 2463 if (jj_3R_19()) return true; 2464 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2465 return false; 2466 } 2467 2468 final private boolean jj_3R_58() { 2469 if (jj_scan_token(FALSE)) return true; 2470 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2471 return false; 2472 } 2473 2474 final private boolean jj_3R_35() { 2475 if (jj_scan_token(WHITESPACE)) return true; 2476 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2477 return false; 2478 } 2479 2480 final private boolean jj_3R_57() { 2481 if (jj_scan_token(TRUE)) return true; 2482 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2483 return false; 2484 } 2485 2486 final private boolean jj_3_8() { 2487 if (jj_scan_token(DOT)) return true; 2488 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2489 Token xsp; 2490 xsp = jj_scanpos; 2491 if (jj_3_9()) { 2492 jj_scanpos = xsp; 2493 if (jj_3R_32()) return true; 2494 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2495 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2496 return false; 2497 } 2498 2499 final private boolean jj_3R_51() { 2500 if (jj_3R_59()) return true; 2501 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2502 Token xsp; 2503 while (true) { 2504 xsp = jj_scanpos; 2505 if (jj_3R_82()) { jj_scanpos = xsp; break; } 2506 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2507 } 2508 return false; 2509 } 2510 2511 final private boolean jj_3_6() { 2512 if (jj_scan_token(DOT)) return true; 2513 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2514 Token xsp; 2515 xsp = jj_scanpos; 2516 if (jj_3_7()) { 2517 jj_scanpos = xsp; 2518 if (jj_3R_30()) return true; 2519 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2520 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2521 return false; 2522 } 2523 2524 final private boolean jj_3R_40() { 2525 if (jj_scan_token(LCURLY)) return true; 2526 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2527 if (jj_scan_token(IDENTIFIER)) return true; 2528 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2529 Token xsp; 2530 while (true) { 2531 xsp = jj_scanpos; 2532 if (jj_3_8()) { jj_scanpos = xsp; break; } 2533 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2534 } 2535 if (jj_scan_token(RCURLY)) return true; 2536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2537 return false; 2538 } 2539 2540 final private boolean jj_3R_22() { 2541 if (jj_3R_41()) return true; 2542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2543 return false; 2544 } 2545 2546 final private boolean jj_3_11() { 2547 if (jj_scan_token(LBRACKET)) return true; 2548 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2549 Token xsp; 2550 xsp = jj_scanpos; 2551 if (jj_3R_35()) jj_scanpos = xsp; 2552 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2553 xsp = jj_scanpos; 2554 if (jj_3R_36()) { 2555 jj_scanpos = xsp; 2556 if (jj_3R_37()) return true; 2557 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2558 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2559 xsp = jj_scanpos; 2560 if (jj_3R_38()) jj_scanpos = xsp; 2561 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2562 if (jj_scan_token(DOUBLEDOT)) return true; 2563 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2564 return false; 2565 } 2566 2567 final private boolean jj_3R_26() { 2568 if (jj_scan_token(WHITESPACE)) return true; 2569 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2570 return false; 2571 } 2572 2573 final private boolean jj_3R_39() { 2574 if (jj_scan_token(IDENTIFIER)) return true; 2575 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2576 Token xsp; 2577 while (true) { 2578 xsp = jj_scanpos; 2579 if (jj_3_6()) { jj_scanpos = xsp; break; } 2580 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2581 } 2582 return false; 2583 } 2584 2585 final private boolean jj_3_1() { 2586 if (jj_3R_19()) return true; 2587 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2588 return false; 2589 } 2590 2591 final private boolean jj_3R_81() { 2592 if (jj_scan_token(LPAREN)) return true; 2593 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2594 return false; 2595 } 2596 2597 final private boolean jj_3R_19() { 2598 Token xsp; 2599 xsp = jj_scanpos; 2600 if (jj_3R_39()) { 2601 jj_scanpos = xsp; 2602 if (jj_3R_40()) return true; 2603 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2604 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2605 return false; 2606 } 2607 2608 final private boolean jj_3R_80() { 2609 if (jj_3R_58()) return true; 2610 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2611 return false; 2612 } 2613 2614 final private boolean jj_3R_33() { 2615 if (jj_scan_token(WHITESPACE)) return true; 2616 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2617 return false; 2618 } 2619 2620 final private boolean jj_3R_79() { 2621 if (jj_3R_57()) return true; 2622 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2623 return false; 2624 } 2625 2626 final private boolean jj_3R_78() { 2627 if (jj_3R_56()) return true; 2628 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2629 return false; 2630 } 2631 2632 final private boolean jj_3R_77() { 2633 if (jj_3R_55()) return true; 2634 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2635 return false; 2636 } 2637 2638 final private boolean jj_3R_76() { 2639 if (jj_3R_19()) return true; 2640 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2641 return false; 2642 } 2643 2644 final private boolean jj_3R_21() { 2645 if (jj_3R_19()) return true; 2646 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2647 return false; 2648 } 2649 2650 final private boolean jj_3_5() { 2651 if (jj_scan_token(LBRACKET)) return true; 2652 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2653 Token xsp; 2654 xsp = jj_scanpos; 2655 if (jj_3R_26()) jj_scanpos = xsp; 2656 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2657 xsp = jj_scanpos; 2658 if (jj_3R_27()) { 2659 jj_scanpos = xsp; 2660 if (jj_3R_28()) return true; 2661 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2662 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2663 xsp = jj_scanpos; 2664 if (jj_3R_29()) jj_scanpos = xsp; 2665 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2666 if (jj_scan_token(DOUBLEDOT)) return true; 2667 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2668 return false; 2669 } 2670 2671 final private boolean jj_3R_75() { 2672 if (jj_3R_41()) return true; 2673 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2674 return false; 2675 } 2676 2677 final private boolean jj_3R_31() { 2678 if (jj_3R_50()) return true; 2679 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2680 if (jj_scan_token(LPAREN)) return true; 2681 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2682 Token xsp; 2683 xsp = jj_scanpos; 2684 if (jj_3R_51()) jj_scanpos = xsp; 2685 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2686 if (jj_scan_token(REFMOD2_RPAREN)) return true; 2687 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2688 return false; 2689 } 2690 2691 final private boolean jj_3R_74() { 2692 if (jj_3R_54()) return true; 2693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2694 return false; 2695 } 2696 2697 final private boolean jj_3R_73() { 2698 if (jj_scan_token(WHITESPACE)) return true; 2699 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2700 return false; 2701 } 2702 2703 final private boolean jj_3R_60() { 2704 Token xsp; 2705 xsp = jj_scanpos; 2706 if (jj_3R_73()) jj_scanpos = xsp; 2707 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2708 xsp = jj_scanpos; 2709 if (jj_3R_74()) { 2710 jj_scanpos = xsp; 2711 if (jj_3R_75()) { 2712 jj_scanpos = xsp; 2713 if (jj_3R_76()) { 2714 jj_scanpos = xsp; 2715 if (jj_3R_77()) { 2716 jj_scanpos = xsp; 2717 if (jj_3R_78()) { 2718 jj_scanpos = xsp; 2719 if (jj_3R_79()) { 2720 jj_scanpos = xsp; 2721 if (jj_3R_80()) { 2722 jj_scanpos = xsp; 2723 if (jj_3R_81()) return true; 2724 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2725 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2726 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2727 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2728 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2729 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2730 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2731 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2732 return false; 2733 } 2734 2735 final private boolean jj_3R_85() { 2736 if (jj_scan_token(WHITESPACE)) return true; 2737 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2738 return false; 2739 } 2740 2741 final private boolean jj_3R_72() { 2742 if (jj_3R_41()) return true; 2743 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2744 return false; 2745 } 2746 2747 final private boolean jj_3R_71() { 2748 if (jj_3R_19()) return true; 2749 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2750 return false; 2751 } 2752 2753 final private boolean jj_3R_83() { 2754 if (jj_scan_token(WHITESPACE)) return true; 2755 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2756 return false; 2757 } 2758 2759 final private boolean jj_3R_70() { 2760 if (jj_3R_58()) return true; 2761 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2762 return false; 2763 } 2764 2765 final private boolean jj_3R_69() { 2766 if (jj_3R_57()) return true; 2767 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2768 return false; 2769 } 2770 2771 final private boolean jj_3R_34() { 2772 Token xsp; 2773 xsp = jj_scanpos; 2774 if (jj_3_10()) { 2775 jj_scanpos = xsp; 2776 if (jj_3R_52()) return true; 2777 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2778 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2779 return false; 2780 } 2781 2782 final private boolean jj_3_10() { 2783 Token xsp; 2784 xsp = jj_scanpos; 2785 if (jj_3R_33()) jj_scanpos = xsp; 2786 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2787 if (jj_scan_token(LOGICAL_NOT)) return true; 2788 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2789 if (jj_3R_34()) return true; 2790 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2791 return false; 2792 } 2793 2794 final private boolean jj_3R_52() { 2795 if (jj_3R_60()) return true; 2796 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2797 return false; 2798 } 2799 2800 final private boolean jj_3R_68() { 2801 if (jj_3R_56()) return true; 2802 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2803 return false; 2804 } 2805 2806 final private boolean jj_3R_67() { 2807 if (jj_3R_55()) return true; 2808 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2809 return false; 2810 } 2811 2812 final private boolean jj_3R_66() { 2813 if (jj_3R_54()) return true; 2814 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2815 return false; 2816 } 2817 2818 final private boolean jj_3R_20() { 2819 if (jj_scan_token(WHITESPACE)) return true; 2820 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2821 return false; 2822 } 2823 2824 final private boolean jj_3R_87() { 2825 if (jj_3R_41()) return true; 2826 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2827 return false; 2828 } 2829 2830 final private boolean jj_3R_89() { 2831 if (jj_scan_token(COMMA)) return true; 2832 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2833 if (jj_3R_59()) return true; 2834 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2835 return false; 2836 } 2837 2838 final private boolean jj_3R_63() { 2839 if (jj_3R_41()) return true; 2840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2841 return false; 2842 } 2843 2844 final private boolean jj_3R_65() { 2845 if (jj_scan_token(WHITESPACE)) return true; 2846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2847 return false; 2848 } 2849 2850 final private boolean jj_3R_59() { 2851 Token xsp; 2852 xsp = jj_scanpos; 2853 if (jj_3R_65()) jj_scanpos = xsp; 2854 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2855 xsp = jj_scanpos; 2856 if (jj_3R_66()) { 2857 jj_scanpos = xsp; 2858 if (jj_3R_67()) { 2859 jj_scanpos = xsp; 2860 if (jj_3R_68()) { 2861 jj_scanpos = xsp; 2862 if (jj_3R_69()) { 2863 jj_scanpos = xsp; 2864 if (jj_3R_70()) { 2865 jj_scanpos = xsp; 2866 if (jj_3R_71()) { 2867 jj_scanpos = xsp; 2868 if (jj_3R_72()) return true; 2869 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2870 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2871 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2872 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2873 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2874 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2875 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2876 xsp = jj_scanpos; 2877 if (jj_3R_83()) jj_scanpos = xsp; 2878 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2879 return false; 2880 } 2881 2882 final private boolean jj_3R_61() { 2883 if (jj_scan_token(WHITESPACE)) return true; 2884 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2885 return false; 2886 } 2887 2888 final private boolean jj_3_3() { 2889 if (jj_scan_token(LBRACKET)) return true; 2890 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2891 Token xsp; 2892 xsp = jj_scanpos; 2893 if (jj_3R_20()) jj_scanpos = xsp; 2894 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2895 xsp = jj_scanpos; 2896 if (jj_3R_21()) { 2897 jj_scanpos = xsp; 2898 if (jj_3R_22()) return true; 2899 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2900 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2901 xsp = jj_scanpos; 2902 if (jj_3R_23()) jj_scanpos = xsp; 2903 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2904 if (jj_scan_token(DOUBLEDOT)) return true; 2905 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2906 return false; 2907 } 2908 2909 final private boolean jj_3R_49() { 2910 if (jj_3R_58()) return true; 2911 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2912 return false; 2913 } 2914 2915 final private boolean jj_3R_88() { 2916 if (jj_scan_token(WHITESPACE)) return true; 2917 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2918 return false; 2919 } 2920 2921 final private boolean jj_3R_86() { 2922 if (jj_3R_19()) return true; 2923 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2924 return false; 2925 } 2926 2927 final private boolean jj_3R_48() { 2928 if (jj_3R_57()) return true; 2929 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2930 return false; 2931 } 2932 2933 final private boolean jj_3R_84() { 2934 if (jj_scan_token(WHITESPACE)) return true; 2935 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2936 return false; 2937 } 2938 2939 final private boolean jj_3R_62() { 2940 if (jj_3R_19()) return true; 2941 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2942 return false; 2943 } 2944 2945 final private boolean jj_3R_64() { 2946 if (jj_3R_59()) return true; 2947 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2948 Token xsp; 2949 while (true) { 2950 xsp = jj_scanpos; 2951 if (jj_3R_89()) { jj_scanpos = xsp; break; } 2952 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2953 } 2954 return false; 2955 } 2956 2957 final private boolean jj_3R_47() { 2958 if (jj_3R_56()) return true; 2959 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2960 return false; 2961 } 2962 2963 final private boolean jj_3R_55() { 2964 if (jj_scan_token(LBRACKET)) return true; 2965 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2966 Token xsp; 2967 xsp = jj_scanpos; 2968 if (jj_3R_61()) jj_scanpos = xsp; 2969 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2970 xsp = jj_scanpos; 2971 if (jj_3R_62()) { 2972 jj_scanpos = xsp; 2973 if (jj_3R_63()) return true; 2974 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2975 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2976 xsp = jj_scanpos; 2977 if (jj_3R_84()) jj_scanpos = xsp; 2978 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2979 if (jj_scan_token(DOUBLEDOT)) return true; 2980 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2981 xsp = jj_scanpos; 2982 if (jj_3R_85()) jj_scanpos = xsp; 2983 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2984 xsp = jj_scanpos; 2985 if (jj_3R_86()) { 2986 jj_scanpos = xsp; 2987 if (jj_3R_87()) return true; 2988 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2989 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2990 xsp = jj_scanpos; 2991 if (jj_3R_88()) jj_scanpos = xsp; 2992 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2993 if (jj_scan_token(RBRACKET)) return true; 2994 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 2995 return false; 2996 } 2997 2998 final private boolean jj_3R_46() { 2999 if (jj_3R_55()) return true; 3000 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3001 return false; 3002 } 3003 3004 final private boolean jj_3R_45() { 3005 if (jj_3R_41()) return true; 3006 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3007 return false; 3008 } 3009 3010 final private boolean jj_3R_56() { 3011 if (jj_scan_token(LBRACKET)) return true; 3012 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3013 Token xsp; 3014 xsp = jj_scanpos; 3015 if (jj_3R_64()) jj_scanpos = xsp; 3016 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3017 if (jj_scan_token(RBRACKET)) return true; 3018 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3019 return false; 3020 } 3021 3022 final private boolean jj_3R_44() { 3023 if (jj_3R_54()) return true; 3024 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3025 return false; 3026 } 3027 3028 final private boolean jj_3R_43() { 3029 if (jj_3R_53()) return true; 3030 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3031 return false; 3032 } 3033 3034 final private boolean jj_3R_42() { 3035 if (jj_3R_19()) return true; 3036 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3037 return false; 3038 } 3039 3040 final private boolean jj_3R_25() { 3041 Token xsp; 3042 xsp = jj_scanpos; 3043 if (jj_3R_42()) { 3044 jj_scanpos = xsp; 3045 if (jj_3R_43()) { 3046 jj_scanpos = xsp; 3047 if (jj_3R_44()) { 3048 jj_scanpos = xsp; 3049 if (jj_3R_45()) { 3050 jj_scanpos = xsp; 3051 if (jj_3R_46()) { 3052 jj_scanpos = xsp; 3053 if (jj_3R_47()) { 3054 jj_scanpos = xsp; 3055 if (jj_3R_48()) { 3056 jj_scanpos = xsp; 3057 if (jj_3R_49()) return true; 3058 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3059 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3060 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3061 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3062 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3063 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3064 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3065 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3066 return false; 3067 } 3068 3069 final private boolean jj_3R_53() { 3070 if (jj_scan_token(WORD)) return true; 3071 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3072 return false; 3073 } 3074 3075 final private boolean jj_3R_50() { 3076 if (jj_scan_token(IDENTIFIER)) return true; 3077 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; 3078 return false; 3079 } 3080 3081 public ParserTokenManager token_source; 3082 public Token token, jj_nt; 3083 private int jj_ntk; 3084 private Token jj_scanpos, jj_lastpos; 3085 private int jj_la; 3086 public boolean lookingAhead = false; 3087 private boolean jj_semLA; 3088 private int jj_gen; 3089 final private int[] jj_la1 = new int[55]; 3090 final private int[] jj_la1_0 = {0x13f0360,0x0,0x13f0360,0x380000,0x1000000,0x6000002,0x800000,0x800000,0x800000,0x13f0360,0x8,0x7800002,0x800000,0x0,0x800000,0x800000,0x0,0x800000,0x800000,0x1000000,0x6000002,0x800000,0x8,0x7800002,0x0,0x0,0x0,0x1060060,0x800000,0x13f0360,0x0,0x0,0x0,0x13f0360,0x800000,0x13f0360,0x800000,0x800000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0xc0000000,0xc0000000,0x800000,0x7800022,0x800000,0x1000000,0x6000022,0x800000,}; 3091 final private int[] jj_la1_1 = {0xf129000,0x9000,0xe120000,0x0,0x5120000,0x0,0x0,0x0,0x0,0xf129000,0x0,0x5020000,0x0,0x5020000,0x0,0x0,0x5020000,0x0,0x0,0x0,0x5020000,0x0,0x0,0x5020000,0x1000000,0x1000000,0x5000000,0xe020000,0x0,0xf129000,0x2000,0x2000,0x4000,0xf129000,0x0,0xf129000,0x0,0x0,0x0,0x4,0x2,0x180,0x180,0x78,0x78,0x0,0x0,0x1,0x1,0x0,0x5020000,0x0,0x5020000,0x0,0x0,}; 3092 final private JJCalls[] jj_2_rtns = new JJCalls[11]; 3093 private boolean jj_rescan = false; 3094 private int jj_gc = 0; 3095 3096 public Parser(CharStream stream) { 3097 token_source = new ParserTokenManager(stream); 3098 token = new Token(); 3099 jj_ntk = -1; 3100 jj_gen = 0; 3101 for (int i = 0; i < 55; i++) jj_la1[i] = -1; 3102 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); 3103 } 3104 3105 public void ReInit(CharStream stream) { 3106 token_source.ReInit(stream); 3107 token = new Token(); 3108 jj_ntk = -1; 3109 jjtree.reset(); 3110 jj_gen = 0; 3111 for (int i = 0; i < 55; i++) jj_la1[i] = -1; 3112 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); 3113 } 3114 3115 public Parser(ParserTokenManager tm) { 3116 token_source = tm; 3117 token = new Token(); 3118 jj_ntk = -1; 3119 jj_gen = 0; 3120 for (int i = 0; i < 55; i++) jj_la1[i] = -1; 3121 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); 3122 } 3123 3124 public void ReInit(ParserTokenManager tm) { 3125 token_source = tm; 3126 token = new Token(); 3127 jj_ntk = -1; 3128 jjtree.reset(); 3129 jj_gen = 0; 3130 for (int i = 0; i < 55; i++) jj_la1[i] = -1; 3131 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); 3132 } 3133 3134 final private Token jj_consume_token(int kind) throws ParseException { 3135 Token oldToken; 3136 if ((oldToken = token).next != null) token = token.next; 3137 else token = token.next = token_source.getNextToken(); 3138 jj_ntk = -1; 3139 if (token.kind == kind) { 3140 jj_gen++; 3141 if (++jj_gc > 100) { 3142 jj_gc = 0; 3143 for (int i = 0; i < jj_2_rtns.length; i++) { 3144 JJCalls c = jj_2_rtns[i]; 3145 while (c != null) { 3146 if (c.gen < jj_gen) c.first = null; 3147 c = c.next; 3148 } 3149 } 3150 } 3151 return token; 3152 } 3153 token = oldToken; 3154 jj_kind = kind; 3155 throw generateParseException(); 3156 } 3157 3158 final private boolean jj_scan_token(int kind) { 3159 if (jj_scanpos == jj_lastpos) { 3160 jj_la--; 3161 if (jj_scanpos.next == null) { 3162 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); 3163 } else { 3164 jj_lastpos = jj_scanpos = jj_scanpos.next; 3165 } 3166 } else { 3167 jj_scanpos = jj_scanpos.next; 3168 } 3169 if (jj_rescan) { 3170 int i = 0; Token tok = token; 3171 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } 3172 if (tok != null) jj_add_error_token(kind, i); 3173 } 3174 return (jj_scanpos.kind != kind); 3175 } 3176 3177 final public Token getNextToken() { 3178 if (token.next != null) token = token.next; 3179 else token = token.next = token_source.getNextToken(); 3180 jj_ntk = -1; 3181 jj_gen++; 3182 return token; 3183 } 3184 3185 final public Token getToken(int index) { 3186 Token t = lookingAhead ? jj_scanpos : token; 3187 for (int i = 0; i < index; i++) { 3188 if (t.next != null) t = t.next; 3189 else t = t.next = token_source.getNextToken(); 3190 } 3191 return t; 3192 } 3193 3194 final private int jj_ntk() { 3195 if ((jj_nt=token.next) == null) 3196 return (jj_ntk = (token.next=token_source.getNextToken()).kind); 3197 else 3198 return (jj_ntk = jj_nt.kind); 3199 } 3200 3201 private java.util.Vector jj_expentries = new java.util.Vector(); 3202 private int[] jj_expentry; 3203 private int jj_kind = -1; 3204 private int[] jj_lasttokens = new int[100]; 3205 private int jj_endpos; 3206 3207 private void jj_add_error_token(int kind, int pos) { 3208 if (pos >= 100) return; 3209 if (pos == jj_endpos + 1) { 3210 jj_lasttokens[jj_endpos++] = kind; 3211 } else if (jj_endpos != 0) { 3212 jj_expentry = new int[jj_endpos]; 3213 for (int i = 0; i < jj_endpos; i++) { 3214 jj_expentry[i] = jj_lasttokens[i]; 3215 } 3216 boolean exists = false; 3217 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) { 3218 int[] oldentry = (int[])(enum.nextElement()); 3219 if (oldentry.length == jj_expentry.length) { 3220 exists = true; 3221 for (int i = 0; i < jj_expentry.length; i++) { 3222 if (oldentry[i] != jj_expentry[i]) { 3223 exists = false; 3224 break; 3225 } 3226 } 3227 if (exists) break; 3228 } 3229 } 3230 if (!exists) jj_expentries.addElement(jj_expentry); 3231 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; 3232 } 3233 } 3234 3235 final public ParseException generateParseException() { 3236 jj_expentries.removeAllElements(); 3237 boolean[] la1tokens = new boolean[62]; 3238 for (int i = 0; i < 62; i++) { 3239 la1tokens[i] = false; 3240 } 3241 if (jj_kind >= 0) { 3242 la1tokens[jj_kind] = true; 3243 jj_kind = -1; 3244 } 3245 for (int i = 0; i < 55; i++) { 3246 if (jj_la1[i] == jj_gen) { 3247 for (int j = 0; j < 32; j++) { 3248 if ((jj_la1_0[i] & (1<<j)) != 0) { 3249 la1tokens[j] = true; 3250 } 3251 if ((jj_la1_1[i] & (1<<j)) != 0) { 3252 la1tokens[32+j] = true; 3253 } 3254 } 3255 } 3256 } 3257 for (int i = 0; i < 62; i++) { 3258 if (la1tokens[i]) { 3259 jj_expentry = new int[1]; 3260 jj_expentry[0] = i; 3261 jj_expentries.addElement(jj_expentry); 3262 } 3263 } 3264 jj_endpos = 0; 3265 jj_rescan_token(); 3266 jj_add_error_token(0, 0); 3267 int[][] exptokseq = new int[jj_expentries.size()][]; 3268 for (int i = 0; i < jj_expentries.size(); i++) { 3269 exptokseq[i] = (int[])jj_expentries.elementAt(i); 3270 } 3271 return new ParseException(token, exptokseq, tokenImage); 3272 } 3273 3274 final public void enable_tracing() { 3275 } 3276 3277 final public void disable_tracing() { 3278 } 3279 3280 final private void jj_rescan_token() { 3281 jj_rescan = true; 3282 for (int i = 0; i < 11; i++) { 3283 JJCalls p = jj_2_rtns[i]; 3284 do { 3285 if (p.gen > jj_gen) { 3286 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; 3287 switch (i) { 3288 case 0: jj_3_1(); break; 3289 case 1: jj_3_2(); break; 3290 case 2: jj_3_3(); break; 3291 case 3: jj_3_4(); break; 3292 case 4: jj_3_5(); break; 3293 case 5: jj_3_6(); break; 3294 case 6: jj_3_7(); break; 3295 case 7: jj_3_8(); break; 3296 case 8: jj_3_9(); break; 3297 case 9: jj_3_10(); break; 3298 case 10: jj_3_11(); break; 3299 } 3300 } 3301 p = p.next; 3302 } while (p != null); 3303 } 3304 jj_rescan = false; 3305 } 3306 3307 final private void jj_save(int index, int xla) { 3308 JJCalls p = jj_2_rtns[index]; 3309 while (p.gen > jj_gen) { 3310 if (p.next == null) { p = p.next = new JJCalls(); break; } 3311 p = p.next; 3312 } 3313 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; 3314 } 3315 3316 static final class JJCalls { 3317 int gen; 3318 Token first; 3319 int arg; 3320 JJCalls next; 3321 } 3322 3323} 3324 | Popular Tags |