Coverage Report - org.apache.commons.ognl.OgnlParser
 
Classes in this File Line Coverage Branch Coverage Complexity
OgnlParser
62%
1103/1779
28%
465/1636
10.273
OgnlParser$1
N/A
N/A
10.273
OgnlParser$JJCalls
100%
1/1
N/A
10.273
OgnlParser$LookaheadSuccess
100%
1/1
N/A
10.273
 
 1  
 /* Generated By:JavaCC: Do not edit this line. OgnlParser.java */
 2  
 package org.apache.commons.ognl;
 3  
 
 4  
 import java.math.*;
 5  
 
 6  
 /**
 7  
  * OgnlParser is a JavaCC parser class; it translates OGNL expressions into abstract
 8  
  * syntax trees (ASTs) that can then be interpreted by the getValue and setValue methods.
 9  
  */
 10  
 public class OgnlParser/*@bgen(jjtree)*/implements OgnlParserTreeConstants, OgnlParserConstants {/*@bgen(jjtree)*/
 11  1148
   protected JJTOgnlParserState jjtree = new JJTOgnlParserState();
 12  
 
 13  
 /**
 14  
  * This is the top-level construct of OGNL.
 15  
  */
 16  
   final public Node topLevelExpression() throws ParseException {
 17  1148
     expression();
 18  1144
     jj_consume_token(0);
 19  1143
                          {if (true) return jjtree.rootNode();}
 20  
     throw new Error("Missing return statement in function");
 21  
   }
 22  
 
 23  
 // sequence (level 14)
 24  
   final public void expression() throws ParseException {
 25  1482
     assignmentExpression();
 26  
     label_1:
 27  
     while (true) {
 28  1518
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 29  
       case 1:
 30  
         ;
 31  40
         break;
 32  
       default:
 33  1478
         jj_la1[0] = jj_gen;
 34  1478
         break label_1;
 35  
       }
 36  40
       jj_consume_token(1);
 37  40
                                    ASTSequence jjtn001 = new ASTSequence(JJTSEQUENCE);
 38  40
                                    boolean jjtc001 = true;
 39  40
                                    jjtree.openNodeScope(jjtn001);
 40  
       try {
 41  40
         assignmentExpression();
 42  0
       } catch (Throwable jjte001) {
 43  0
                                    if (jjtc001) {
 44  0
                                      jjtree.clearNodeScope(jjtn001);
 45  0
                                      jjtc001 = false;
 46  
                                    } else {
 47  0
                                      jjtree.popNode();
 48  
                                    }
 49  0
                                    if (jjte001 instanceof RuntimeException) {
 50  0
                                      {if (true) throw (RuntimeException)jjte001;}
 51  
                                    }
 52  0
                                    if (jjte001 instanceof ParseException) {
 53  0
                                      {if (true) throw (ParseException)jjte001;}
 54  
                                    }
 55  0
                                    {if (true) throw (Error)jjte001;}
 56  
       } finally {
 57  40
                                    if (jjtc001) {
 58  40
                                      jjtree.closeNodeScope(jjtn001,  2);
 59  
                                    }
 60  
       }
 61  40
     }
 62  1478
   }
 63  
 
 64  
 // assignment expression (level 13)
 65  
   final public void assignmentExpression() throws ParseException {
 66  1951
     conditionalTestExpression();
 67  1947
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 68  
     case 2:
 69  38
       jj_consume_token(2);
 70  38
                                         ASTAssign jjtn001 = new ASTAssign(JJTASSIGN);
 71  38
                                         boolean jjtc001 = true;
 72  38
                                         jjtree.openNodeScope(jjtn001);
 73  
       try {
 74  38
         assignmentExpression();
 75  0
       } catch (Throwable jjte001) {
 76  0
                                         if (jjtc001) {
 77  0
                                           jjtree.clearNodeScope(jjtn001);
 78  0
                                           jjtc001 = false;
 79  
                                         } else {
 80  0
                                           jjtree.popNode();
 81  
                                         }
 82  0
                                         if (jjte001 instanceof RuntimeException) {
 83  0
                                           {if (true) throw (RuntimeException)jjte001;}
 84  
                                         }
 85  0
                                         if (jjte001 instanceof ParseException) {
 86  0
                                           {if (true) throw (ParseException)jjte001;}
 87  
                                         }
 88  0
                                         {if (true) throw (Error)jjte001;}
 89  
       } finally {
 90  38
                                         if (jjtc001) {
 91  38
                                           jjtree.closeNodeScope(jjtn001,  2);
 92  
                                         }
 93  
       }
 94  38
       break;
 95  
     default:
 96  1909
       jj_la1[1] = jj_gen;
 97  
       ;
 98  
     }
 99  1947
   }
 100  
 
 101  
 // conditional test (level 12)
 102  
   final public void conditionalTestExpression() throws ParseException {
 103  2071
     logicalOrExpression();
 104  2067
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 105  
     case 3:
 106  60
       jj_consume_token(3);
 107  60
       conditionalTestExpression();
 108  60
       jj_consume_token(4);
 109  60
                                                 ASTTest jjtn001 = new ASTTest(JJTTEST);
 110  60
                                                 boolean jjtc001 = true;
 111  60
                                                 jjtree.openNodeScope(jjtn001);
 112  
       try {
 113  60
         conditionalTestExpression();
 114  0
       } catch (Throwable jjte001) {
 115  0
                                                 if (jjtc001) {
 116  0
                                                   jjtree.clearNodeScope(jjtn001);
 117  0
                                                   jjtc001 = false;
 118  
                                                 } else {
 119  0
                                                   jjtree.popNode();
 120  
                                                 }
 121  0
                                                 if (jjte001 instanceof RuntimeException) {
 122  0
                                                   {if (true) throw (RuntimeException)jjte001;}
 123  
                                                 }
 124  0
                                                 if (jjte001 instanceof ParseException) {
 125  0
                                                   {if (true) throw (ParseException)jjte001;}
 126  
                                                 }
 127  0
                                                 {if (true) throw (Error)jjte001;}
 128  
       } finally {
 129  60
                                                 if (jjtc001) {
 130  60
                                                   jjtree.closeNodeScope(jjtn001,  3);
 131  
                                                 }
 132  
       }
 133  60
       break;
 134  
     default:
 135  2007
       jj_la1[2] = jj_gen;
 136  
       ;
 137  
     }
 138  2067
   }
 139  
 
 140  
 // logical or (||)  (level 11)
 141  
   final public void logicalOrExpression() throws ParseException {
 142  2071
     logicalAndExpression();
 143  
     label_2:
 144  
     while (true) {
 145  2093
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 146  
       case 5:
 147  
       case 6:
 148  
         ;
 149  26
         break;
 150  
       default:
 151  2067
         jj_la1[3] = jj_gen;
 152  2067
         break label_2;
 153  
       }
 154  26
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 155  
       case 5:
 156  24
         jj_consume_token(5);
 157  24
         break;
 158  
       case 6:
 159  2
         jj_consume_token(6);
 160  2
         break;
 161  
       default:
 162  0
         jj_la1[4] = jj_gen;
 163  0
         jj_consume_token(-1);
 164  0
         throw new ParseException();
 165  
       }
 166  26
                                             ASTOr jjtn001 = new ASTOr(JJTOR);
 167  26
                                             boolean jjtc001 = true;
 168  26
                                             jjtree.openNodeScope(jjtn001);
 169  
       try {
 170  26
         logicalAndExpression();
 171  0
       } catch (Throwable jjte001) {
 172  0
                                             if (jjtc001) {
 173  0
                                               jjtree.clearNodeScope(jjtn001);
 174  0
                                               jjtc001 = false;
 175  
                                             } else {
 176  0
                                               jjtree.popNode();
 177  
                                             }
 178  0
                                             if (jjte001 instanceof RuntimeException) {
 179  0
                                               {if (true) throw (RuntimeException)jjte001;}
 180  
                                             }
 181  0
                                             if (jjte001 instanceof ParseException) {
 182  0
                                               {if (true) throw (ParseException)jjte001;}
 183  
                                             }
 184  0
                                             {if (true) throw (Error)jjte001;}
 185  
       } finally {
 186  26
                                             if (jjtc001) {
 187  26
                                               jjtree.closeNodeScope(jjtn001,  2);
 188  
                                             }
 189  
       }
 190  26
     }
 191  2067
   }
 192  
 
 193  
 // logical and (&&)  (level 10)
 194  
   final public void logicalAndExpression() throws ParseException {
 195  2097
     inclusiveOrExpression();
 196  
     label_3:
 197  
     while (true) {
 198  2121
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 199  
       case 7:
 200  
       case 8:
 201  
         ;
 202  28
         break;
 203  
       default:
 204  2093
         jj_la1[5] = jj_gen;
 205  2093
         break label_3;
 206  
       }
 207  28
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 208  
       case 7:
 209  24
         jj_consume_token(7);
 210  24
         break;
 211  
       case 8:
 212  4
         jj_consume_token(8);
 213  4
         break;
 214  
       default:
 215  0
         jj_la1[6] = jj_gen;
 216  0
         jj_consume_token(-1);
 217  0
         throw new ParseException();
 218  
       }
 219  28
                                               ASTAnd jjtn001 = new ASTAnd(JJTAND);
 220  28
                                               boolean jjtc001 = true;
 221  28
                                               jjtree.openNodeScope(jjtn001);
 222  
       try {
 223  28
         inclusiveOrExpression();
 224  0
       } catch (Throwable jjte001) {
 225  0
                                               if (jjtc001) {
 226  0
                                                 jjtree.clearNodeScope(jjtn001);
 227  0
                                                 jjtc001 = false;
 228  
                                               } else {
 229  0
                                                 jjtree.popNode();
 230  
                                               }
 231  0
                                               if (jjte001 instanceof RuntimeException) {
 232  0
                                                 {if (true) throw (RuntimeException)jjte001;}
 233  
                                               }
 234  0
                                               if (jjte001 instanceof ParseException) {
 235  0
                                                 {if (true) throw (ParseException)jjte001;}
 236  
                                               }
 237  0
                                               {if (true) throw (Error)jjte001;}
 238  
       } finally {
 239  28
                                               if (jjtc001) {
 240  28
                                                 jjtree.closeNodeScope(jjtn001,  2);
 241  
                                               }
 242  
       }
 243  28
     }
 244  2093
   }
 245  
 
 246  
 // bitwise or non-short-circuiting or (|)  (level 9)
 247  
   final public void inclusiveOrExpression() throws ParseException {
 248  2125
     exclusiveOrExpression();
 249  
     label_4:
 250  
     while (true) {
 251  2131
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 252  
       case 9:
 253  
       case 10:
 254  
         ;
 255  10
         break;
 256  
       default:
 257  2121
         jj_la1[7] = jj_gen;
 258  2121
         break label_4;
 259  
       }
 260  10
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 261  
       case 9:
 262  8
         jj_consume_token(9);
 263  8
         break;
 264  
       case 10:
 265  2
         jj_consume_token(10);
 266  2
         break;
 267  
       default:
 268  0
         jj_la1[8] = jj_gen;
 269  0
         jj_consume_token(-1);
 270  0
         throw new ParseException();
 271  
       }
 272  10
                                              ASTBitOr jjtn001 = new ASTBitOr(JJTBITOR);
 273  10
                                              boolean jjtc001 = true;
 274  10
                                              jjtree.openNodeScope(jjtn001);
 275  
       try {
 276  10
         exclusiveOrExpression();
 277  0
       } catch (Throwable jjte001) {
 278  0
                                              if (jjtc001) {
 279  0
                                                jjtree.clearNodeScope(jjtn001);
 280  0
                                                jjtc001 = false;
 281  
                                              } else {
 282  0
                                                jjtree.popNode();
 283  
                                              }
 284  0
                                              if (jjte001 instanceof RuntimeException) {
 285  0
                                                {if (true) throw (RuntimeException)jjte001;}
 286  
                                              }
 287  0
                                              if (jjte001 instanceof ParseException) {
 288  0
                                                {if (true) throw (ParseException)jjte001;}
 289  
                                              }
 290  0
                                              {if (true) throw (Error)jjte001;}
 291  
       } finally {
 292  10
                                              if (jjtc001) {
 293  10
                                                jjtree.closeNodeScope(jjtn001,  2);
 294  
                                              }
 295  
       }
 296  10
     }
 297  2121
   }
 298  
 
 299  
 // exclusive or (^)  (level 8)
 300  
   final public void exclusiveOrExpression() throws ParseException {
 301  2135
     andExpression();
 302  
     label_5:
 303  
     while (true) {
 304  2145
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 305  
       case 11:
 306  
       case 12:
 307  
         ;
 308  14
         break;
 309  
       default:
 310  2131
         jj_la1[9] = jj_gen;
 311  2131
         break label_5;
 312  
       }
 313  14
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 314  
       case 11:
 315  12
         jj_consume_token(11);
 316  12
         break;
 317  
       case 12:
 318  2
         jj_consume_token(12);
 319  2
         break;
 320  
       default:
 321  0
         jj_la1[10] = jj_gen;
 322  0
         jj_consume_token(-1);
 323  0
         throw new ParseException();
 324  
       }
 325  14
                                      ASTXor jjtn001 = new ASTXor(JJTXOR);
 326  14
                                      boolean jjtc001 = true;
 327  14
                                      jjtree.openNodeScope(jjtn001);
 328  
       try {
 329  14
         andExpression();
 330  0
       } catch (Throwable jjte001) {
 331  0
                                      if (jjtc001) {
 332  0
                                        jjtree.clearNodeScope(jjtn001);
 333  0
                                        jjtc001 = false;
 334  
                                      } else {
 335  0
                                        jjtree.popNode();
 336  
                                      }
 337  0
                                      if (jjte001 instanceof RuntimeException) {
 338  0
                                        {if (true) throw (RuntimeException)jjte001;}
 339  
                                      }
 340  0
                                      if (jjte001 instanceof ParseException) {
 341  0
                                        {if (true) throw (ParseException)jjte001;}
 342  
                                      }
 343  0
                                      {if (true) throw (Error)jjte001;}
 344  
       } finally {
 345  14
                                      if (jjtc001) {
 346  14
                                        jjtree.closeNodeScope(jjtn001,  2);
 347  
                                      }
 348  
       }
 349  14
     }
 350  2131
   }
 351  
 
 352  
 // bitwise or non-short-circuiting and (&)  (level 7)
 353  
   final public void andExpression() throws ParseException {
 354  2149
     equalityExpression();
 355  
     label_6:
 356  
     while (true) {
 357  2159
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 358  
       case 13:
 359  
       case 14:
 360  
         ;
 361  14
         break;
 362  
       default:
 363  2145
         jj_la1[11] = jj_gen;
 364  2145
         break label_6;
 365  
       }
 366  14
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 367  
       case 13:
 368  12
         jj_consume_token(13);
 369  12
         break;
 370  
       case 14:
 371  2
         jj_consume_token(14);
 372  2
         break;
 373  
       default:
 374  0
         jj_la1[12] = jj_gen;
 375  0
         jj_consume_token(-1);
 376  0
         throw new ParseException();
 377  
       }
 378  14
                                            ASTBitAnd jjtn001 = new ASTBitAnd(JJTBITAND);
 379  14
                                            boolean jjtc001 = true;
 380  14
                                            jjtree.openNodeScope(jjtn001);
 381  
       try {
 382  14
         equalityExpression();
 383  0
       } catch (Throwable jjte001) {
 384  0
                                            if (jjtc001) {
 385  0
                                              jjtree.clearNodeScope(jjtn001);
 386  0
                                              jjtc001 = false;
 387  
                                            } else {
 388  0
                                              jjtree.popNode();
 389  
                                            }
 390  0
                                            if (jjte001 instanceof RuntimeException) {
 391  0
                                              {if (true) throw (RuntimeException)jjte001;}
 392  
                                            }
 393  0
                                            if (jjte001 instanceof ParseException) {
 394  0
                                              {if (true) throw (ParseException)jjte001;}
 395  
                                            }
 396  0
                                            {if (true) throw (Error)jjte001;}
 397  
       } finally {
 398  14
                                            if (jjtc001) {
 399  14
                                              jjtree.closeNodeScope(jjtn001,  2);
 400  
                                            }
 401  
       }
 402  14
     }
 403  2145
   }
 404  
 
 405  
 // equality/inequality (==/!=) (level 6)
 406  
   final public void equalityExpression() throws ParseException {
 407  2163
     relationalExpression();
 408  
     label_7:
 409  
     while (true) {
 410  2239
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 411  
       case 15:
 412  
       case 16:
 413  
       case 17:
 414  
       case 18:
 415  
         ;
 416  80
         break;
 417  
       default:
 418  2159
         jj_la1[13] = jj_gen;
 419  2159
         break label_7;
 420  
       }
 421  80
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 422  
       case 15:
 423  
       case 16:
 424  60
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 425  
         case 15:
 426  56
           jj_consume_token(15);
 427  56
           break;
 428  
         case 16:
 429  4
           jj_consume_token(16);
 430  4
           break;
 431  
         default:
 432  0
           jj_la1[14] = jj_gen;
 433  0
           jj_consume_token(-1);
 434  0
           throw new ParseException();
 435  
         }
 436  60
                         ASTEq jjtn001 = new ASTEq(JJTEQ);
 437  60
                         boolean jjtc001 = true;
 438  60
                         jjtree.openNodeScope(jjtn001);
 439  
         try {
 440  60
           relationalExpression();
 441  0
         } catch (Throwable jjte001) {
 442  0
                         if (jjtc001) {
 443  0
                           jjtree.clearNodeScope(jjtn001);
 444  0
                           jjtc001 = false;
 445  
                         } else {
 446  0
                           jjtree.popNode();
 447  
                         }
 448  0
                         if (jjte001 instanceof RuntimeException) {
 449  0
                           {if (true) throw (RuntimeException)jjte001;}
 450  
                         }
 451  0
                         if (jjte001 instanceof ParseException) {
 452  0
                           {if (true) throw (ParseException)jjte001;}
 453  
                         }
 454  0
                         {if (true) throw (Error)jjte001;}
 455  
         } finally {
 456  60
                         if (jjtc001) {
 457  60
                           jjtree.closeNodeScope(jjtn001,  2);
 458  
                         }
 459  
         }
 460  60
         break;
 461  
       case 17:
 462  
       case 18:
 463  20
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 464  
         case 17:
 465  18
           jj_consume_token(17);
 466  18
           break;
 467  
         case 18:
 468  2
           jj_consume_token(18);
 469  2
           break;
 470  
         default:
 471  0
           jj_la1[15] = jj_gen;
 472  0
           jj_consume_token(-1);
 473  0
           throw new ParseException();
 474  
         }
 475  20
                          ASTNotEq jjtn002 = new ASTNotEq(JJTNOTEQ);
 476  20
                          boolean jjtc002 = true;
 477  20
                          jjtree.openNodeScope(jjtn002);
 478  
         try {
 479  20
           relationalExpression();
 480  0
         } catch (Throwable jjte002) {
 481  0
                          if (jjtc002) {
 482  0
                            jjtree.clearNodeScope(jjtn002);
 483  0
                            jjtc002 = false;
 484  
                          } else {
 485  0
                            jjtree.popNode();
 486  
                          }
 487  0
                          if (jjte002 instanceof RuntimeException) {
 488  0
                            {if (true) throw (RuntimeException)jjte002;}
 489  
                          }
 490  0
                          if (jjte002 instanceof ParseException) {
 491  0
                            {if (true) throw (ParseException)jjte002;}
 492  
                          }
 493  0
                          {if (true) throw (Error)jjte002;}
 494  
         } finally {
 495  20
                          if (jjtc002) {
 496  20
                            jjtree.closeNodeScope(jjtn002,  2);
 497  
                          }
 498  
         }
 499  20
         break;
 500  
       default:
 501  0
         jj_la1[16] = jj_gen;
 502  0
         jj_consume_token(-1);
 503  0
         throw new ParseException();
 504  
       }
 505  
     }
 506  2159
   }
 507  
 
 508  
 // boolean relational expressions (level 5)
 509  
   final public void relationalExpression() throws ParseException {
 510  2243
     shiftExpression();
 511  
     label_8:
 512  
     while (true) {
 513  2345
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 514  
       case 19:
 515  
       case 20:
 516  
       case 21:
 517  
       case 22:
 518  
       case 23:
 519  
       case 24:
 520  
       case 25:
 521  
       case 26:
 522  
       case 27:
 523  
       case 28:
 524  
         ;
 525  106
         break;
 526  
       default:
 527  2239
         jj_la1[17] = jj_gen;
 528  2239
         break label_8;
 529  
       }
 530  106
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 531  
       case 19:
 532  
       case 20:
 533  24
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 534  
         case 19:
 535  18
           jj_consume_token(19);
 536  18
           break;
 537  
         case 20:
 538  6
           jj_consume_token(20);
 539  6
           break;
 540  
         default:
 541  0
           jj_la1[18] = jj_gen;
 542  0
           jj_consume_token(-1);
 543  0
           throw new ParseException();
 544  
         }
 545  24
                        ASTLess jjtn001 = new ASTLess(JJTLESS);
 546  24
                        boolean jjtc001 = true;
 547  24
                        jjtree.openNodeScope(jjtn001);
 548  
         try {
 549  24
           shiftExpression();
 550  0
         } catch (Throwable jjte001) {
 551  0
                        if (jjtc001) {
 552  0
                          jjtree.clearNodeScope(jjtn001);
 553  0
                          jjtc001 = false;
 554  
                        } else {
 555  0
                          jjtree.popNode();
 556  
                        }
 557  0
                        if (jjte001 instanceof RuntimeException) {
 558  0
                          {if (true) throw (RuntimeException)jjte001;}
 559  
                        }
 560  0
                        if (jjte001 instanceof ParseException) {
 561  0
                          {if (true) throw (ParseException)jjte001;}
 562  
                        }
 563  0
                        {if (true) throw (Error)jjte001;}
 564  
         } finally {
 565  24
                        if (jjtc001) {
 566  24
                          jjtree.closeNodeScope(jjtn001,  2);
 567  
                        }
 568  
         }
 569  24
         break;
 570  
       case 21:
 571  
       case 22:
 572  40
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 573  
         case 21:
 574  36
           jj_consume_token(21);
 575  36
           break;
 576  
         case 22:
 577  4
           jj_consume_token(22);
 578  4
           break;
 579  
         default:
 580  0
           jj_la1[19] = jj_gen;
 581  0
           jj_consume_token(-1);
 582  0
           throw new ParseException();
 583  
         }
 584  40
                        ASTGreater jjtn002 = new ASTGreater(JJTGREATER);
 585  40
                        boolean jjtc002 = true;
 586  40
                        jjtree.openNodeScope(jjtn002);
 587  
         try {
 588  40
           shiftExpression();
 589  0
         } catch (Throwable jjte002) {
 590  0
                        if (jjtc002) {
 591  0
                          jjtree.clearNodeScope(jjtn002);
 592  0
                          jjtc002 = false;
 593  
                        } else {
 594  0
                          jjtree.popNode();
 595  
                        }
 596  0
                        if (jjte002 instanceof RuntimeException) {
 597  0
                          {if (true) throw (RuntimeException)jjte002;}
 598  
                        }
 599  0
                        if (jjte002 instanceof ParseException) {
 600  0
                          {if (true) throw (ParseException)jjte002;}
 601  
                        }
 602  0
                        {if (true) throw (Error)jjte002;}
 603  
         } finally {
 604  40
                        if (jjtc002) {
 605  40
                          jjtree.closeNodeScope(jjtn002,  2);
 606  
                        }
 607  
         }
 608  40
         break;
 609  
       case 23:
 610  
       case 24:
 611  17
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 612  
         case 23:
 613  13
           jj_consume_token(23);
 614  13
           break;
 615  
         case 24:
 616  4
           jj_consume_token(24);
 617  4
           break;
 618  
         default:
 619  0
           jj_la1[20] = jj_gen;
 620  0
           jj_consume_token(-1);
 621  0
           throw new ParseException();
 622  
         }
 623  17
                          ASTLessEq jjtn003 = new ASTLessEq(JJTLESSEQ);
 624  17
                          boolean jjtc003 = true;
 625  17
                          jjtree.openNodeScope(jjtn003);
 626  
         try {
 627  17
           shiftExpression();
 628  0
         } catch (Throwable jjte003) {
 629  0
                          if (jjtc003) {
 630  0
                            jjtree.clearNodeScope(jjtn003);
 631  0
                            jjtc003 = false;
 632  
                          } else {
 633  0
                            jjtree.popNode();
 634  
                          }
 635  0
                          if (jjte003 instanceof RuntimeException) {
 636  0
                            {if (true) throw (RuntimeException)jjte003;}
 637  
                          }
 638  0
                          if (jjte003 instanceof ParseException) {
 639  0
                            {if (true) throw (ParseException)jjte003;}
 640  
                          }
 641  0
                          {if (true) throw (Error)jjte003;}
 642  
         } finally {
 643  17
                          if (jjtc003) {
 644  17
                            jjtree.closeNodeScope(jjtn003,  2);
 645  
                          }
 646  
         }
 647  17
         break;
 648  
       case 25:
 649  
       case 26:
 650  14
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 651  
         case 25:
 652  10
           jj_consume_token(25);
 653  10
           break;
 654  
         case 26:
 655  4
           jj_consume_token(26);
 656  4
           break;
 657  
         default:
 658  0
           jj_la1[21] = jj_gen;
 659  0
           jj_consume_token(-1);
 660  0
           throw new ParseException();
 661  
         }
 662  14
                          ASTGreaterEq jjtn004 = new ASTGreaterEq(JJTGREATEREQ);
 663  14
                          boolean jjtc004 = true;
 664  14
                          jjtree.openNodeScope(jjtn004);
 665  
         try {
 666  14
           shiftExpression();
 667  0
         } catch (Throwable jjte004) {
 668  0
                          if (jjtc004) {
 669  0
                            jjtree.clearNodeScope(jjtn004);
 670  0
                            jjtc004 = false;
 671  
                          } else {
 672  0
                            jjtree.popNode();
 673  
                          }
 674  0
                          if (jjte004 instanceof RuntimeException) {
 675  0
                            {if (true) throw (RuntimeException)jjte004;}
 676  
                          }
 677  0
                          if (jjte004 instanceof ParseException) {
 678  0
                            {if (true) throw (ParseException)jjte004;}
 679  
                          }
 680  0
                          {if (true) throw (Error)jjte004;}
 681  
         } finally {
 682  14
                          if (jjtc004) {
 683  14
                            jjtree.closeNodeScope(jjtn004,  2);
 684  
                          }
 685  
         }
 686  14
         break;
 687  
       case 27:
 688  7
         jj_consume_token(27);
 689  7
                ASTIn jjtn005 = new ASTIn(JJTIN);
 690  7
                boolean jjtc005 = true;
 691  7
                jjtree.openNodeScope(jjtn005);
 692  
         try {
 693  7
           shiftExpression();
 694  0
         } catch (Throwable jjte005) {
 695  0
                if (jjtc005) {
 696  0
                  jjtree.clearNodeScope(jjtn005);
 697  0
                  jjtc005 = false;
 698  
                } else {
 699  0
                  jjtree.popNode();
 700  
                }
 701  0
                if (jjte005 instanceof RuntimeException) {
 702  0
                  {if (true) throw (RuntimeException)jjte005;}
 703  
                }
 704  0
                if (jjte005 instanceof ParseException) {
 705  0
                  {if (true) throw (ParseException)jjte005;}
 706  
                }
 707  0
                {if (true) throw (Error)jjte005;}
 708  
         } finally {
 709  7
                if (jjtc005) {
 710  7
                  jjtree.closeNodeScope(jjtn005,  2);
 711  
                }
 712  
         }
 713  7
         break;
 714  
       case 28:
 715  4
         jj_consume_token(28);
 716  4
         jj_consume_token(27);
 717  4
                      ASTNotIn jjtn006 = new ASTNotIn(JJTNOTIN);
 718  4
                      boolean jjtc006 = true;
 719  4
                      jjtree.openNodeScope(jjtn006);
 720  
         try {
 721  4
           shiftExpression();
 722  0
         } catch (Throwable jjte006) {
 723  0
                      if (jjtc006) {
 724  0
                        jjtree.clearNodeScope(jjtn006);
 725  0
                        jjtc006 = false;
 726  
                      } else {
 727  0
                        jjtree.popNode();
 728  
                      }
 729  0
                      if (jjte006 instanceof RuntimeException) {
 730  0
                        {if (true) throw (RuntimeException)jjte006;}
 731  
                      }
 732  0
                      if (jjte006 instanceof ParseException) {
 733  0
                        {if (true) throw (ParseException)jjte006;}
 734  
                      }
 735  0
                      {if (true) throw (Error)jjte006;}
 736  
         } finally {
 737  4
                      if (jjtc006) {
 738  4
                        jjtree.closeNodeScope(jjtn006,  2);
 739  
                      }
 740  
         }
 741  4
         break;
 742  
       default:
 743  0
         jj_la1[22] = jj_gen;
 744  0
         jj_consume_token(-1);
 745  0
         throw new ParseException();
 746  
       }
 747  
     }
 748  2239
   }
 749  
 
 750  
 // bit shift expressions (level 4)
 751  
   final public void shiftExpression() throws ParseException {
 752  2349
     additiveExpression();
 753  
     label_9:
 754  
     while (true) {
 755  2371
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 756  
       case 29:
 757  
       case 30:
 758  
       case 31:
 759  
       case 32:
 760  
       case 33:
 761  
       case 34:
 762  
         ;
 763  26
         break;
 764  
       default:
 765  2345
         jj_la1[23] = jj_gen;
 766  2345
         break label_9;
 767  
       }
 768  26
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 769  
       case 29:
 770  
       case 30:
 771  6
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 772  
         case 29:
 773  4
           jj_consume_token(29);
 774  4
           break;
 775  
         case 30:
 776  2
           jj_consume_token(30);
 777  2
           break;
 778  
         default:
 779  0
           jj_la1[24] = jj_gen;
 780  0
           jj_consume_token(-1);
 781  0
           throw new ParseException();
 782  
         }
 783  6
                          ASTShiftLeft jjtn001 = new ASTShiftLeft(JJTSHIFTLEFT);
 784  6
                          boolean jjtc001 = true;
 785  6
                          jjtree.openNodeScope(jjtn001);
 786  
         try {
 787  6
           additiveExpression();
 788  0
         } catch (Throwable jjte001) {
 789  0
                          if (jjtc001) {
 790  0
                            jjtree.clearNodeScope(jjtn001);
 791  0
                            jjtc001 = false;
 792  
                          } else {
 793  0
                            jjtree.popNode();
 794  
                          }
 795  0
                          if (jjte001 instanceof RuntimeException) {
 796  0
                            {if (true) throw (RuntimeException)jjte001;}
 797  
                          }
 798  0
                          if (jjte001 instanceof ParseException) {
 799  0
                            {if (true) throw (ParseException)jjte001;}
 800  
                          }
 801  0
                          {if (true) throw (Error)jjte001;}
 802  
         } finally {
 803  6
                          if (jjtc001) {
 804  6
                            jjtree.closeNodeScope(jjtn001,  2);
 805  
                          }
 806  
         }
 807  6
         break;
 808  
       case 31:
 809  
       case 32:
 810  10
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 811  
         case 31:
 812  8
           jj_consume_token(31);
 813  8
           break;
 814  
         case 32:
 815  2
           jj_consume_token(32);
 816  2
           break;
 817  
         default:
 818  0
           jj_la1[25] = jj_gen;
 819  0
           jj_consume_token(-1);
 820  0
           throw new ParseException();
 821  
         }
 822  10
                          ASTShiftRight jjtn002 = new ASTShiftRight(JJTSHIFTRIGHT);
 823  10
                          boolean jjtc002 = true;
 824  10
                          jjtree.openNodeScope(jjtn002);
 825  
         try {
 826  10
           additiveExpression();
 827  0
         } catch (Throwable jjte002) {
 828  0
                          if (jjtc002) {
 829  0
                            jjtree.clearNodeScope(jjtn002);
 830  0
                            jjtc002 = false;
 831  
                          } else {
 832  0
                            jjtree.popNode();
 833  
                          }
 834  0
                          if (jjte002 instanceof RuntimeException) {
 835  0
                            {if (true) throw (RuntimeException)jjte002;}
 836  
                          }
 837  0
                          if (jjte002 instanceof ParseException) {
 838  0
                            {if (true) throw (ParseException)jjte002;}
 839  
                          }
 840  0
                          {if (true) throw (Error)jjte002;}
 841  
         } finally {
 842  10
                          if (jjtc002) {
 843  10
                            jjtree.closeNodeScope(jjtn002,  2);
 844  
                          }
 845  
         }
 846  10
         break;
 847  
       case 33:
 848  
       case 34:
 849  10
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 850  
         case 33:
 851  8
           jj_consume_token(33);
 852  8
           break;
 853  
         case 34:
 854  2
           jj_consume_token(34);
 855  2
           break;
 856  
         default:
 857  0
           jj_la1[26] = jj_gen;
 858  0
           jj_consume_token(-1);
 859  0
           throw new ParseException();
 860  
         }
 861  10
                            ASTUnsignedShiftRight jjtn003 = new ASTUnsignedShiftRight(JJTUNSIGNEDSHIFTRIGHT);
 862  10
                            boolean jjtc003 = true;
 863  10
                            jjtree.openNodeScope(jjtn003);
 864  
         try {
 865  10
           additiveExpression();
 866  0
         } catch (Throwable jjte003) {
 867  0
                            if (jjtc003) {
 868  0
                              jjtree.clearNodeScope(jjtn003);
 869  0
                              jjtc003 = false;
 870  
                            } else {
 871  0
                              jjtree.popNode();
 872  
                            }
 873  0
                            if (jjte003 instanceof RuntimeException) {
 874  0
                              {if (true) throw (RuntimeException)jjte003;}
 875  
                            }
 876  0
                            if (jjte003 instanceof ParseException) {
 877  0
                              {if (true) throw (ParseException)jjte003;}
 878  
                            }
 879  0
                            {if (true) throw (Error)jjte003;}
 880  
         } finally {
 881  10
                            if (jjtc003) {
 882  10
                              jjtree.closeNodeScope(jjtn003,  2);
 883  
                            }
 884  
         }
 885  10
         break;
 886  
       default:
 887  0
         jj_la1[27] = jj_gen;
 888  0
         jj_consume_token(-1);
 889  0
         throw new ParseException();
 890  
       }
 891  
     }
 892  2345
   }
 893  
 
 894  
 // binary addition/subtraction (level 3)
 895  
   final public void additiveExpression() throws ParseException {
 896  2375
     multiplicativeExpression();
 897  
     label_10:
 898  
     while (true) {
 899  2533
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 900  
       case 35:
 901  
       case 36:
 902  
         ;
 903  162
         break;
 904  
       default:
 905  2371
         jj_la1[28] = jj_gen;
 906  2371
         break label_10;
 907  
       }
 908  162
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 909  
       case 35:
 910  136
         jj_consume_token(35);
 911  136
               ASTAdd jjtn001 = new ASTAdd(JJTADD);
 912  136
               boolean jjtc001 = true;
 913  136
               jjtree.openNodeScope(jjtn001);
 914  
         try {
 915  136
           multiplicativeExpression();
 916  0
         } catch (Throwable jjte001) {
 917  0
               if (jjtc001) {
 918  0
                 jjtree.clearNodeScope(jjtn001);
 919  0
                 jjtc001 = false;
 920  
               } else {
 921  0
                 jjtree.popNode();
 922  
               }
 923  0
               if (jjte001 instanceof RuntimeException) {
 924  0
                 {if (true) throw (RuntimeException)jjte001;}
 925  
               }
 926  0
               if (jjte001 instanceof ParseException) {
 927  0
                 {if (true) throw (ParseException)jjte001;}
 928  
               }
 929  0
               {if (true) throw (Error)jjte001;}
 930  
         } finally {
 931  136
               if (jjtc001) {
 932  136
                 jjtree.closeNodeScope(jjtn001,  2);
 933  
               }
 934  
         }
 935  136
         break;
 936  
       case 36:
 937  26
         jj_consume_token(36);
 938  26
               ASTSubtract jjtn002 = new ASTSubtract(JJTSUBTRACT);
 939  26
               boolean jjtc002 = true;
 940  26
               jjtree.openNodeScope(jjtn002);
 941  
         try {
 942  26
           multiplicativeExpression();
 943  0
         } catch (Throwable jjte002) {
 944  0
               if (jjtc002) {
 945  0
                 jjtree.clearNodeScope(jjtn002);
 946  0
                 jjtc002 = false;
 947  
               } else {
 948  0
                 jjtree.popNode();
 949  
               }
 950  0
               if (jjte002 instanceof RuntimeException) {
 951  0
                 {if (true) throw (RuntimeException)jjte002;}
 952  
               }
 953  0
               if (jjte002 instanceof ParseException) {
 954  0
                 {if (true) throw (ParseException)jjte002;}
 955  
               }
 956  0
               {if (true) throw (Error)jjte002;}
 957  
         } finally {
 958  26
               if (jjtc002) {
 959  26
                 jjtree.closeNodeScope(jjtn002,  2);
 960  
               }
 961  
         }
 962  26
         break;
 963  
       default:
 964  0
         jj_la1[29] = jj_gen;
 965  0
         jj_consume_token(-1);
 966  0
         throw new ParseException();
 967  
       }
 968  
     }
 969  2371
   }
 970  
 
 971  
 // multiplication/division/remainder (level 2)
 972  
   final public void multiplicativeExpression() throws ParseException {
 973  2537
     unaryExpression();
 974  
     label_11:
 975  
     while (true) {
 976  2597
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 977  
       case 37:
 978  
       case 38:
 979  
       case 39:
 980  
         ;
 981  64
         break;
 982  
       default:
 983  2533
         jj_la1[30] = jj_gen;
 984  2533
         break label_11;
 985  
       }
 986  64
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 987  
       case 37:
 988  36
         jj_consume_token(37);
 989  36
               ASTMultiply jjtn001 = new ASTMultiply(JJTMULTIPLY);
 990  36
               boolean jjtc001 = true;
 991  36
               jjtree.openNodeScope(jjtn001);
 992  
         try {
 993  36
           unaryExpression();
 994  0
         } catch (Throwable jjte001) {
 995  0
               if (jjtc001) {
 996  0
                 jjtree.clearNodeScope(jjtn001);
 997  0
                 jjtc001 = false;
 998  
               } else {
 999  0
                 jjtree.popNode();
 1000  
               }
 1001  0
               if (jjte001 instanceof RuntimeException) {
 1002  0
                 {if (true) throw (RuntimeException)jjte001;}
 1003  
               }
 1004  0
               if (jjte001 instanceof ParseException) {
 1005  0
                 {if (true) throw (ParseException)jjte001;}
 1006  
               }
 1007  0
               {if (true) throw (Error)jjte001;}
 1008  
         } finally {
 1009  36
               if (jjtc001) {
 1010  36
                 jjtree.closeNodeScope(jjtn001,  2);
 1011  
               }
 1012  
         }
 1013  36
         break;
 1014  
       case 38:
 1015  16
         jj_consume_token(38);
 1016  16
               ASTDivide jjtn002 = new ASTDivide(JJTDIVIDE);
 1017  16
               boolean jjtc002 = true;
 1018  16
               jjtree.openNodeScope(jjtn002);
 1019  
         try {
 1020  16
           unaryExpression();
 1021  0
         } catch (Throwable jjte002) {
 1022  0
               if (jjtc002) {
 1023  0
                 jjtree.clearNodeScope(jjtn002);
 1024  0
                 jjtc002 = false;
 1025  
               } else {
 1026  0
                 jjtree.popNode();
 1027  
               }
 1028  0
               if (jjte002 instanceof RuntimeException) {
 1029  0
                 {if (true) throw (RuntimeException)jjte002;}
 1030  
               }
 1031  0
               if (jjte002 instanceof ParseException) {
 1032  0
                 {if (true) throw (ParseException)jjte002;}
 1033  
               }
 1034  0
               {if (true) throw (Error)jjte002;}
 1035  
         } finally {
 1036  16
               if (jjtc002) {
 1037  16
                 jjtree.closeNodeScope(jjtn002,  2);
 1038  
               }
 1039  
         }
 1040  16
         break;
 1041  
       case 39:
 1042  12
         jj_consume_token(39);
 1043  12
               ASTRemainder jjtn003 = new ASTRemainder(JJTREMAINDER);
 1044  12
               boolean jjtc003 = true;
 1045  12
               jjtree.openNodeScope(jjtn003);
 1046  
         try {
 1047  12
           unaryExpression();
 1048  0
         } catch (Throwable jjte003) {
 1049  0
               if (jjtc003) {
 1050  0
                 jjtree.clearNodeScope(jjtn003);
 1051  0
                 jjtc003 = false;
 1052  
               } else {
 1053  0
                 jjtree.popNode();
 1054  
               }
 1055  0
               if (jjte003 instanceof RuntimeException) {
 1056  0
                 {if (true) throw (RuntimeException)jjte003;}
 1057  
               }
 1058  0
               if (jjte003 instanceof ParseException) {
 1059  0
                 {if (true) throw (ParseException)jjte003;}
 1060  
               }
 1061  0
               {if (true) throw (Error)jjte003;}
 1062  
         } finally {
 1063  12
               if (jjtc003) {
 1064  12
                 jjtree.closeNodeScope(jjtn003,  2);
 1065  
               }
 1066  
         }
 1067  12
         break;
 1068  
       default:
 1069  0
         jj_la1[31] = jj_gen;
 1070  0
         jj_consume_token(-1);
 1071  0
         throw new ParseException();
 1072  
       }
 1073  
     }
 1074  2533
   }
 1075  
 
 1076  
 // unary (level 1)
 1077  
   final public void unaryExpression() throws ParseException {
 1078  
     StringBuilder stringBuilder;
 1079  
     Token token;
 1080  
     ASTInstanceof ionode;
 1081  2681
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1082  
     case 36:
 1083  32
       jj_consume_token(36);
 1084  32
               ASTNegate jjtn001 = new ASTNegate(JJTNEGATE);
 1085  32
               boolean jjtc001 = true;
 1086  32
               jjtree.openNodeScope(jjtn001);
 1087  
       try {
 1088  32
         unaryExpression();
 1089  0
       } catch (Throwable jjte001) {
 1090  0
               if (jjtc001) {
 1091  0
                 jjtree.clearNodeScope(jjtn001);
 1092  0
                 jjtc001 = false;
 1093  
               } else {
 1094  0
                 jjtree.popNode();
 1095  
               }
 1096  0
               if (jjte001 instanceof RuntimeException) {
 1097  0
                 {if (true) throw (RuntimeException)jjte001;}
 1098  
               }
 1099  0
               if (jjte001 instanceof ParseException) {
 1100  0
                 {if (true) throw (ParseException)jjte001;}
 1101  
               }
 1102  0
               {if (true) throw (Error)jjte001;}
 1103  
       } finally {
 1104  32
               if (jjtc001) {
 1105  32
                 jjtree.closeNodeScope(jjtn001,  1);
 1106  
               }
 1107  
       }
 1108  32
       break;
 1109  
     case 35:
 1110  8
       jj_consume_token(35);
 1111  8
       unaryExpression();
 1112  8
       break;
 1113  
     case 40:
 1114  4
       jj_consume_token(40);
 1115  4
               ASTBitNegate jjtn002 = new ASTBitNegate(JJTBITNEGATE);
 1116  4
               boolean jjtc002 = true;
 1117  4
               jjtree.openNodeScope(jjtn002);
 1118  
       try {
 1119  4
         unaryExpression();
 1120  0
       } catch (Throwable jjte002) {
 1121  0
               if (jjtc002) {
 1122  0
                 jjtree.clearNodeScope(jjtn002);
 1123  0
                 jjtc002 = false;
 1124  
               } else {
 1125  0
                 jjtree.popNode();
 1126  
               }
 1127  0
               if (jjte002 instanceof RuntimeException) {
 1128  0
                 {if (true) throw (RuntimeException)jjte002;}
 1129  
               }
 1130  0
               if (jjte002 instanceof ParseException) {
 1131  0
                 {if (true) throw (ParseException)jjte002;}
 1132  
               }
 1133  0
               {if (true) throw (Error)jjte002;}
 1134  
       } finally {
 1135  4
               if (jjtc002) {
 1136  4
                 jjtree.closeNodeScope(jjtn002,  1);
 1137  
               }
 1138  
       }
 1139  4
       break;
 1140  
     case 28:
 1141  
     case 41:
 1142  36
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1143  
       case 41:
 1144  32
         jj_consume_token(41);
 1145  32
         break;
 1146  
       case 28:
 1147  4
         jj_consume_token(28);
 1148  4
         break;
 1149  
       default:
 1150  0
         jj_la1[32] = jj_gen;
 1151  0
         jj_consume_token(-1);
 1152  0
         throw new ParseException();
 1153  
       }
 1154  36
                         ASTNot jjtn003 = new ASTNot(JJTNOT);
 1155  36
                         boolean jjtc003 = true;
 1156  36
                         jjtree.openNodeScope(jjtn003);
 1157  
       try {
 1158  36
         unaryExpression();
 1159  0
       } catch (Throwable jjte003) {
 1160  0
                         if (jjtc003) {
 1161  0
                           jjtree.clearNodeScope(jjtn003);
 1162  0
                           jjtc003 = false;
 1163  
                         } else {
 1164  0
                           jjtree.popNode();
 1165  
                         }
 1166  0
                         if (jjte003 instanceof RuntimeException) {
 1167  0
                           {if (true) throw (RuntimeException)jjte003;}
 1168  
                         }
 1169  0
                         if (jjte003 instanceof ParseException) {
 1170  0
                           {if (true) throw (ParseException)jjte003;}
 1171  
                         }
 1172  0
                         {if (true) throw (Error)jjte003;}
 1173  
       } finally {
 1174  36
                         if (jjtc003) {
 1175  36
                           jjtree.closeNodeScope(jjtn003,  1);
 1176  
                         }
 1177  
       }
 1178  36
       break;
 1179  
     case 4:
 1180  
     case 44:
 1181  
     case 46:
 1182  
     case 47:
 1183  
     case 48:
 1184  
     case 49:
 1185  
     case 50:
 1186  
     case 51:
 1187  
     case 52:
 1188  
     case 54:
 1189  
     case 56:
 1190  
     case 57:
 1191  
     case IDENT:
 1192  
     case DYNAMIC_SUBSCRIPT:
 1193  
     case CHAR_LITERAL:
 1194  
     case BACK_CHAR_LITERAL:
 1195  
     case STRING_LITERAL:
 1196  
     case INT_LITERAL:
 1197  
     case FLT_LITERAL:
 1198  2597
       navigationChain();
 1199  2597
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1200  
       case 42:
 1201  8
         jj_consume_token(42);
 1202  8
         token = jj_consume_token(IDENT);
 1203  8
                            ASTInstanceof jjtn004 = new ASTInstanceof(JJTINSTANCEOF);
 1204  8
                            boolean jjtc004 = true;
 1205  8
                            jjtree.openNodeScope(jjtn004);
 1206  
         try {
 1207  8
                            jjtree.closeNodeScope(jjtn004,  1);
 1208  8
                            jjtc004 = false;
 1209  8
                                stringBuilder = new StringBuilder(token.image); ionode = jjtn004;
 1210  
         } finally {
 1211  8
                            if (jjtc004) {
 1212  0
                              jjtree.closeNodeScope(jjtn004,  1);
 1213  
                            }
 1214  
         }
 1215  
         label_12:
 1216  
         while (true) {
 1217  24
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1218  
           case 43:
 1219  
             ;
 1220  16
             break;
 1221  
           default:
 1222  8
             jj_la1[33] = jj_gen;
 1223  8
             break label_12;
 1224  
           }
 1225  16
           jj_consume_token(43);
 1226  16
           token = jj_consume_token(IDENT);
 1227  16
                                               stringBuilder.append('.').append( token.image );
 1228  
         }
 1229  8
                                           ionode.setTargetType( stringBuilder.toString() );
 1230  8
         break;
 1231  
       default:
 1232  2589
         jj_la1[34] = jj_gen;
 1233  
         ;
 1234  
       }
 1235  2597
       break;
 1236  
     default:
 1237  0
       jj_la1[35] = jj_gen;
 1238  0
       jj_consume_token(-1);
 1239  0
       throw new ParseException();
 1240  
     }
 1241  2677
   }
 1242  
 
 1243  
 // navigation chain: property references, method calls, projections, selections, etc.
 1244  
   final public void navigationChain() throws ParseException {
 1245  2597
     primaryExpression();
 1246  
     label_13:
 1247  
     while (true) {
 1248  3226
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1249  
       case 43:
 1250  
       case 44:
 1251  
       case 52:
 1252  
       case DYNAMIC_SUBSCRIPT:
 1253  
         ;
 1254  629
         break;
 1255  
       default:
 1256  2597
         jj_la1[36] = jj_gen;
 1257  2597
         break label_13;
 1258  
       }
 1259  629
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1260  
       case 43:
 1261  393
         jj_consume_token(43);
 1262  393
           ASTChain jjtn001 = new ASTChain(JJTCHAIN);
 1263  393
           boolean jjtc001 = true;
 1264  393
           jjtree.openNodeScope(jjtn001);
 1265  
         try {
 1266  393
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1267  
           case IDENT:
 1268  345
             if (jj_2_1(2)) {
 1269  100
               methodCall();
 1270  
             } else {
 1271  245
               switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1272  
               case IDENT:
 1273  245
                 propertyName();
 1274  245
                 break;
 1275  
               default:
 1276  0
                 jj_la1[37] = jj_gen;
 1277  0
                 jj_consume_token(-1);
 1278  0
                 throw new ParseException();
 1279  
               }
 1280  
             }
 1281  
             break;
 1282  
           case 54:
 1283  25
             if (jj_2_2(2)) {
 1284  10
               projection();
 1285  
             } else {
 1286  15
               switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1287  
               case 54:
 1288  15
                 selection();
 1289  15
                 break;
 1290  
               default:
 1291  0
                 jj_la1[38] = jj_gen;
 1292  0
                 jj_consume_token(-1);
 1293  0
                 throw new ParseException();
 1294  
               }
 1295  
             }
 1296  
             break;
 1297  
           case 44:
 1298  23
             jj_consume_token(44);
 1299  23
             expression();
 1300  23
             jj_consume_token(45);
 1301  23
             break;
 1302  
           default:
 1303  0
             jj_la1[39] = jj_gen;
 1304  0
             jj_consume_token(-1);
 1305  0
             throw new ParseException();
 1306  
           }
 1307  0
         } catch (Throwable jjte001) {
 1308  0
           if (jjtc001) {
 1309  0
             jjtree.clearNodeScope(jjtn001);
 1310  0
             jjtc001 = false;
 1311  
           } else {
 1312  0
             jjtree.popNode();
 1313  
           }
 1314  0
           if (jjte001 instanceof RuntimeException) {
 1315  0
             {if (true) throw (RuntimeException)jjte001;}
 1316  
           }
 1317  0
           if (jjte001 instanceof ParseException) {
 1318  0
             {if (true) throw (ParseException)jjte001;}
 1319  
           }
 1320  0
           {if (true) throw (Error)jjte001;}
 1321  
         } finally {
 1322  393
           if (jjtc001) {
 1323  393
             jjtree.closeNodeScope(jjtn001,  2);
 1324  
           }
 1325  
         }
 1326  393
         break;
 1327  
       case 52:
 1328  
       case DYNAMIC_SUBSCRIPT:
 1329  216
           ASTChain jjtn002 = new ASTChain(JJTCHAIN);
 1330  216
           boolean jjtc002 = true;
 1331  216
           jjtree.openNodeScope(jjtn002);
 1332  
         try {
 1333  216
           index();
 1334  0
         } catch (Throwable jjte002) {
 1335  0
           if (jjtc002) {
 1336  0
             jjtree.clearNodeScope(jjtn002);
 1337  0
             jjtc002 = false;
 1338  
           } else {
 1339  0
             jjtree.popNode();
 1340  
           }
 1341  0
           if (jjte002 instanceof RuntimeException) {
 1342  0
             {if (true) throw (RuntimeException)jjte002;}
 1343  
           }
 1344  0
           if (jjte002 instanceof ParseException) {
 1345  0
             {if (true) throw (ParseException)jjte002;}
 1346  
           }
 1347  0
           {if (true) throw (Error)jjte002;}
 1348  
         } finally {
 1349  216
           if (jjtc002) {
 1350  216
             jjtree.closeNodeScope(jjtn002,  2);
 1351  
           }
 1352  
         }
 1353  216
         break;
 1354  
       case 44:
 1355  20
         jj_consume_token(44);
 1356  20
         expression();
 1357  20
                            ASTEval jjtn003 = new ASTEval(JJTEVAL);
 1358  20
                            boolean jjtc003 = true;
 1359  20
                            jjtree.openNodeScope(jjtn003);
 1360  
         try {
 1361  20
           jj_consume_token(45);
 1362  
         } finally {
 1363  20
                            if (jjtc003) {
 1364  20
                              jjtree.closeNodeScope(jjtn003,  2);
 1365  
                            }
 1366  
         }
 1367  20
         break;
 1368  
       default:
 1369  0
         jj_la1[40] = jj_gen;
 1370  0
         jj_consume_token(-1);
 1371  0
         throw new ParseException();
 1372  
       }
 1373  
     }
 1374  2597
   }
 1375  
 
 1376  
   final public void primaryExpression() throws ParseException {
 1377  
     Token   token;
 1378  2597
     String  className = null;
 1379  2597
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1380  
     case CHAR_LITERAL:
 1381  
     case BACK_CHAR_LITERAL:
 1382  
     case STRING_LITERAL:
 1383  
     case INT_LITERAL:
 1384  
     case FLT_LITERAL:
 1385  1122
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1386  
       case CHAR_LITERAL:
 1387  190
         jj_consume_token(CHAR_LITERAL);
 1388  190
         break;
 1389  
       case BACK_CHAR_LITERAL:
 1390  2
         jj_consume_token(BACK_CHAR_LITERAL);
 1391  2
         break;
 1392  
       case STRING_LITERAL:
 1393  235
         jj_consume_token(STRING_LITERAL);
 1394  235
         break;
 1395  
       case INT_LITERAL:
 1396  619
         jj_consume_token(INT_LITERAL);
 1397  619
         break;
 1398  
       case FLT_LITERAL:
 1399  76
         jj_consume_token(FLT_LITERAL);
 1400  76
         break;
 1401  
       default:
 1402  0
         jj_la1[41] = jj_gen;
 1403  0
         jj_consume_token(-1);
 1404  0
         throw new ParseException();
 1405  
       }
 1406  1122
                                                   ASTConst jjtn001 = new ASTConst(JJTCONST);
 1407  1122
                                                   boolean jjtc001 = true;
 1408  1122
                                                   jjtree.openNodeScope(jjtn001);
 1409  
       try {
 1410  1122
                                                   jjtree.closeNodeScope(jjtn001,  0);
 1411  1122
                                                   jjtc001 = false;
 1412  1122
                                                   jjtn001.setValue( token_source.literalValue );
 1413  
       } finally {
 1414  1122
                                                   if (jjtc001) {
 1415  0
                                                     jjtree.closeNodeScope(jjtn001,  0);
 1416  
                                                   }
 1417  
       }
 1418  1122
       break;
 1419  
     case 46:
 1420  42
       jj_consume_token(46);
 1421  42
                                                   ASTConst jjtn002 = new ASTConst(JJTCONST);
 1422  42
                                                   boolean jjtc002 = true;
 1423  42
                                                   jjtree.openNodeScope(jjtn002);
 1424  
       try {
 1425  42
                                                   jjtree.closeNodeScope(jjtn002,  0);
 1426  42
                                                   jjtc002 = false;
 1427  42
                                                   jjtn002.setValue( Boolean.TRUE );
 1428  
       } finally {
 1429  42
                                                   if (jjtc002) {
 1430  0
                                                     jjtree.closeNodeScope(jjtn002,  0);
 1431  
                                                   }
 1432  
       }
 1433  42
       break;
 1434  
     case 47:
 1435  32
       jj_consume_token(47);
 1436  32
                                                   ASTConst jjtn003 = new ASTConst(JJTCONST);
 1437  32
                                                   boolean jjtc003 = true;
 1438  32
                                                   jjtree.openNodeScope(jjtn003);
 1439  
       try {
 1440  32
                                                   jjtree.closeNodeScope(jjtn003,  0);
 1441  32
                                                   jjtc003 = false;
 1442  32
                                                   jjtn003.setValue( Boolean.FALSE );
 1443  
       } finally {
 1444  32
                                                   if (jjtc003) {
 1445  0
                                                     jjtree.closeNodeScope(jjtn003,  0);
 1446  
                                                   }
 1447  
       }
 1448  32
       break;
 1449  
     case 48:
 1450  66
           ASTConst jjtn004 = new ASTConst(JJTCONST);
 1451  66
           boolean jjtc004 = true;
 1452  66
           jjtree.openNodeScope(jjtn004);
 1453  
       try {
 1454  66
         jj_consume_token(48);
 1455  
       } finally {
 1456  66
           if (jjtc004) {
 1457  66
             jjtree.closeNodeScope(jjtn004,  0);
 1458  
           }
 1459  
       }
 1460  66
       break;
 1461  
     default:
 1462  1335
       jj_la1[48] = jj_gen;
 1463  1335
       if (jj_2_4(2)) {
 1464  51
         jj_consume_token(49);
 1465  51
                                                ASTThisVarRef jjtn005 = new ASTThisVarRef(JJTTHISVARREF);
 1466  51
                                                boolean jjtc005 = true;
 1467  51
                                                jjtree.openNodeScope(jjtn005);
 1468  
         try {
 1469  51
                                                jjtree.closeNodeScope(jjtn005,  0);
 1470  51
                                                jjtc005 = false;
 1471  51
                                                jjtn005.setName( "this" );
 1472  
         } finally {
 1473  51
                                                if (jjtc005) {
 1474  0
                                                  jjtree.closeNodeScope(jjtn005,  0);
 1475  
                                                }
 1476  
         }
 1477  51
       } else if (jj_2_5(2)) {
 1478  31
         jj_consume_token(50);
 1479  31
                                                ASTRootVarRef jjtn006 = new ASTRootVarRef(JJTROOTVARREF);
 1480  31
                                                boolean jjtc006 = true;
 1481  31
                                                jjtree.openNodeScope(jjtn006);
 1482  
         try {
 1483  31
                                                jjtree.closeNodeScope(jjtn006,  0);
 1484  31
                                                jjtc006 = false;
 1485  31
                                                jjtn006.setName( "root" );
 1486  
         } finally {
 1487  31
                                                if (jjtc006) {
 1488  0
                                                  jjtree.closeNodeScope(jjtn006,  0);
 1489  
                                                }
 1490  
         }
 1491  31
       } else if (jj_2_6(2)) {
 1492  122
         jj_consume_token(51);
 1493  122
         token = jj_consume_token(IDENT);
 1494  122
                                                   ASTVarRef jjtn007 = new ASTVarRef(JJTVARREF);
 1495  122
                                                   boolean jjtc007 = true;
 1496  122
                                                   jjtree.openNodeScope(jjtn007);
 1497  
         try {
 1498  122
                                                   jjtree.closeNodeScope(jjtn007,  0);
 1499  122
                                                   jjtc007 = false;
 1500  122
                                                       jjtn007.setName( token.image );
 1501  
         } finally {
 1502  122
                                                   if (jjtc007) {
 1503  0
                                                     jjtree.closeNodeScope(jjtn007,  0);
 1504  
                                                   }
 1505  
         }
 1506  122
       } else if (jj_2_7(2)) {
 1507  12
         jj_consume_token(4);
 1508  12
         jj_consume_token(52);
 1509  12
         expression();
 1510  12
         jj_consume_token(53);
 1511  12
                                                   ASTConst jjtn008 = new ASTConst(JJTCONST);
 1512  12
                                                   boolean jjtc008 = true;
 1513  12
                                                   jjtree.openNodeScope(jjtn008);
 1514  
         try {
 1515  12
                                                   jjtree.closeNodeScope(jjtn008,  1);
 1516  12
                                                   jjtc008 = false;
 1517  12
                                                   jjtn008.setValue( jjtn008.jjtGetChild(0) );
 1518  
         } finally {
 1519  12
                                                   if (jjtc008) {
 1520  0
                                                     jjtree.closeNodeScope(jjtn008,  1);
 1521  
                                                   }
 1522  
         }
 1523  12
       } else {
 1524  1119
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1525  
         case 56:
 1526  60
           staticReference();
 1527  60
           break;
 1528  
         default:
 1529  1059
           jj_la1[49] = jj_gen;
 1530  1059
           if (jj_2_8(2)) {
 1531  96
             constructorCall();
 1532  
           } else {
 1533  963
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1534  
             case IDENT:
 1535  840
               if (jj_2_3(2)) {
 1536  91
                 methodCall();
 1537  
               } else {
 1538  749
                 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1539  
                 case IDENT:
 1540  749
                   propertyName();
 1541  749
                   break;
 1542  
                 default:
 1543  0
                   jj_la1[42] = jj_gen;
 1544  0
                   jj_consume_token(-1);
 1545  0
                   throw new ParseException();
 1546  
                 }
 1547  
               }
 1548  
               break;
 1549  
             case 52:
 1550  
             case DYNAMIC_SUBSCRIPT:
 1551  12
               index();
 1552  12
               break;
 1553  
             case 44:
 1554  68
               jj_consume_token(44);
 1555  68
               expression();
 1556  68
               jj_consume_token(45);
 1557  68
               break;
 1558  
             case 54:
 1559  33
               jj_consume_token(54);
 1560  33
               ASTList jjtn009 = new ASTList(JJTLIST);
 1561  33
               boolean jjtc009 = true;
 1562  33
               jjtree.openNodeScope(jjtn009);
 1563  
               try {
 1564  33
                 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1565  
                 case 4:
 1566  
                 case 28:
 1567  
                 case 35:
 1568  
                 case 36:
 1569  
                 case 40:
 1570  
                 case 41:
 1571  
                 case 44:
 1572  
                 case 46:
 1573  
                 case 47:
 1574  
                 case 48:
 1575  
                 case 49:
 1576  
                 case 50:
 1577  
                 case 51:
 1578  
                 case 52:
 1579  
                 case 54:
 1580  
                 case 56:
 1581  
                 case 57:
 1582  
                 case IDENT:
 1583  
                 case DYNAMIC_SUBSCRIPT:
 1584  
                 case CHAR_LITERAL:
 1585  
                 case BACK_CHAR_LITERAL:
 1586  
                 case STRING_LITERAL:
 1587  
                 case INT_LITERAL:
 1588  
                 case FLT_LITERAL:
 1589  32
                   assignmentExpression();
 1590  
                   label_14:
 1591  
                   while (true) {
 1592  86
                     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1593  
                     case 1:
 1594  
                       ;
 1595  54
                       break;
 1596  
                     default:
 1597  32
                       jj_la1[43] = jj_gen;
 1598  32
                       break label_14;
 1599  
                     }
 1600  54
                     jj_consume_token(1);
 1601  54
                     assignmentExpression();
 1602  
                   }
 1603  
                   break;
 1604  
                 default:
 1605  1
                   jj_la1[44] = jj_gen;
 1606  
                   ;
 1607  
                 }
 1608  0
               } catch (Throwable jjte009) {
 1609  0
               if (jjtc009) {
 1610  0
                 jjtree.clearNodeScope(jjtn009);
 1611  0
                 jjtc009 = false;
 1612  
               } else {
 1613  0
                 jjtree.popNode();
 1614  
               }
 1615  0
               if (jjte009 instanceof RuntimeException) {
 1616  0
                 {if (true) throw (RuntimeException)jjte009;}
 1617  
               }
 1618  0
               if (jjte009 instanceof ParseException) {
 1619  0
                 {if (true) throw (ParseException)jjte009;}
 1620  
               }
 1621  0
               {if (true) throw (Error)jjte009;}
 1622  
               } finally {
 1623  33
               if (jjtc009) {
 1624  33
                 jjtree.closeNodeScope(jjtn009, true);
 1625  
               }
 1626  
               }
 1627  33
               jj_consume_token(55);
 1628  33
               break;
 1629  
             default:
 1630  10
               jj_la1[50] = jj_gen;
 1631  10
               if (jj_2_9(2)) {
 1632  10
                        ASTMap jjtn010 = new ASTMap(JJTMAP);
 1633  10
                        boolean jjtc010 = true;
 1634  10
                        jjtree.openNodeScope(jjtn010);
 1635  
                 try {
 1636  10
                   jj_consume_token(51);
 1637  10
                   switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1638  
                   case 56:
 1639  4
                     className = classReference();
 1640  4
                     break;
 1641  
                   default:
 1642  6
                     jj_la1[45] = jj_gen;
 1643  
                     ;
 1644  
                   }
 1645  10
                   jj_consume_token(54);
 1646  10
                   switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1647  
                   case 4:
 1648  
                   case 28:
 1649  
                   case 35:
 1650  
                   case 36:
 1651  
                   case 40:
 1652  
                   case 41:
 1653  
                   case 44:
 1654  
                   case 46:
 1655  
                   case 47:
 1656  
                   case 48:
 1657  
                   case 49:
 1658  
                   case 50:
 1659  
                   case 51:
 1660  
                   case 52:
 1661  
                   case 54:
 1662  
                   case 56:
 1663  
                   case 57:
 1664  
                   case IDENT:
 1665  
                   case DYNAMIC_SUBSCRIPT:
 1666  
                   case CHAR_LITERAL:
 1667  
                   case BACK_CHAR_LITERAL:
 1668  
                   case STRING_LITERAL:
 1669  
                   case INT_LITERAL:
 1670  
                   case FLT_LITERAL:
 1671  10
                     keyValueExpression();
 1672  
                     label_15:
 1673  
                     while (true) {
 1674  18
                       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1675  
                       case 1:
 1676  
                         ;
 1677  8
                         break;
 1678  
                       default:
 1679  10
                         jj_la1[46] = jj_gen;
 1680  10
                         break label_15;
 1681  
                       }
 1682  8
                       jj_consume_token(1);
 1683  8
                       keyValueExpression();
 1684  
                     }
 1685  
                     break;
 1686  
                   default:
 1687  0
                     jj_la1[47] = jj_gen;
 1688  
                     ;
 1689  
                   }
 1690  10
                                                                                                                   jjtn010.setClassName(className);
 1691  10
                   jj_consume_token(55);
 1692  0
                 } catch (Throwable jjte010) {
 1693  0
                        if (jjtc010) {
 1694  0
                          jjtree.clearNodeScope(jjtn010);
 1695  0
                          jjtc010 = false;
 1696  
                        } else {
 1697  0
                          jjtree.popNode();
 1698  
                        }
 1699  0
                        if (jjte010 instanceof RuntimeException) {
 1700  0
                          {if (true) throw (RuntimeException)jjte010;}
 1701  
                        }
 1702  0
                        if (jjte010 instanceof ParseException) {
 1703  0
                          {if (true) throw (ParseException)jjte010;}
 1704  
                        }
 1705  0
                        {if (true) throw (Error)jjte010;}
 1706  
                 } finally {
 1707  10
                        if (jjtc010) {
 1708  10
                          jjtree.closeNodeScope(jjtn010, true);
 1709  
                        }
 1710  
                 }
 1711  10
               } else {
 1712  0
                 jj_consume_token(-1);
 1713  0
                 throw new ParseException();
 1714  
               }
 1715  
             }
 1716  
           }
 1717  
         }
 1718  
       }
 1719  
     }
 1720  2597
   }
 1721  
 
 1722  
   final public void keyValueExpression() throws ParseException {
 1723  18
           ASTKeyValue jjtn001 = new ASTKeyValue(JJTKEYVALUE);
 1724  18
           boolean jjtc001 = true;
 1725  18
           jjtree.openNodeScope(jjtn001);
 1726  
     try {
 1727  18
       assignmentExpression();
 1728  18
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1729  
       case 4:
 1730  16
         jj_consume_token(4);
 1731  16
         assignmentExpression();
 1732  16
         break;
 1733  
       default:
 1734  2
         jj_la1[51] = jj_gen;
 1735  
         ;
 1736  
       }
 1737  0
     } catch (Throwable jjte001) {
 1738  0
           if (jjtc001) {
 1739  0
             jjtree.clearNodeScope(jjtn001);
 1740  0
             jjtc001 = false;
 1741  
           } else {
 1742  0
             jjtree.popNode();
 1743  
           }
 1744  0
           if (jjte001 instanceof RuntimeException) {
 1745  0
             {if (true) throw (RuntimeException)jjte001;}
 1746  
           }
 1747  0
           if (jjte001 instanceof ParseException) {
 1748  0
             {if (true) throw (ParseException)jjte001;}
 1749  
           }
 1750  0
           {if (true) throw (Error)jjte001;}
 1751  
     } finally {
 1752  18
           if (jjtc001) {
 1753  18
             jjtree.closeNodeScope(jjtn001, true);
 1754  
           }
 1755  
     }
 1756  18
   }
 1757  
 
 1758  
   final public void staticReference() throws ParseException {
 1759  60
     String className = "java.lang.Math";
 1760  
     Token token;
 1761  60
     className = classReference();
 1762  60
     if (jj_2_10(2)) {
 1763  20
       staticMethodCall(className);
 1764  
     } else {
 1765  40
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1766  
       case IDENT:
 1767  40
         token = jj_consume_token(IDENT);
 1768  40
                                       ASTStaticField jjtn001 = new ASTStaticField(JJTSTATICFIELD);
 1769  40
                                       boolean jjtc001 = true;
 1770  40
                                       jjtree.openNodeScope(jjtn001);
 1771  
         try {
 1772  40
                                       jjtree.closeNodeScope(jjtn001,  0);
 1773  40
                                       jjtc001 = false;
 1774  40
                                           jjtn001.init( className, token.image );
 1775  
         } finally {
 1776  40
                                       if (jjtc001) {
 1777  0
                                         jjtree.closeNodeScope(jjtn001,  0);
 1778  
                                       }
 1779  
         }
 1780  40
         break;
 1781  
       default:
 1782  0
         jj_la1[52] = jj_gen;
 1783  0
         jj_consume_token(-1);
 1784  0
         throw new ParseException();
 1785  
       }
 1786  
     }
 1787  60
   }
 1788  
 
 1789  
   final public String classReference() throws ParseException {
 1790  64
     String      result = "java.lang.Math";
 1791  64
     jj_consume_token(56);
 1792  64
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1793  
     case IDENT:
 1794  62
       result = className();
 1795  62
       break;
 1796  
     default:
 1797  2
       jj_la1[53] = jj_gen;
 1798  
       ;
 1799  
     }
 1800  64
     jj_consume_token(56);
 1801  64
                                       {if (true) return result;}
 1802  
     throw new Error("Missing return statement in function");
 1803  
   }
 1804  
 
 1805  
   final public String className() throws ParseException {
 1806  
     Token token;
 1807  
     StringBuilder result;
 1808  158
     token = jj_consume_token(IDENT);
 1809  158
                                   result = new StringBuilder( token.image );
 1810  
     label_16:
 1811  
     while (true) {
 1812  648
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1813  
       case 43:
 1814  
         ;
 1815  490
         break;
 1816  
       default:
 1817  158
         jj_la1[54] = jj_gen;
 1818  158
         break label_16;
 1819  
       }
 1820  490
       jj_consume_token(43);
 1821  490
       token = jj_consume_token(IDENT);
 1822  490
                                   result.append('.').append( token.image );
 1823  
     }
 1824  158
                               {if (true) return result.toString();}
 1825  
     throw new Error("Missing return statement in function");
 1826  
   }
 1827  
 
 1828  
   final public void constructorCall() throws ParseException {
 1829  
                                 /*@bgen(jjtree) Ctor */
 1830  96
     ASTCtor jjtn000 = new ASTCtor(JJTCTOR);
 1831  96
     boolean jjtc000 = true;
 1832  96
     jjtree.openNodeScope(jjtn000);String className;
 1833  
     Token token;
 1834  
     StringBuilder stringBuilder;
 1835  
     try {
 1836  96
       jj_consume_token(57);
 1837  96
       className = className();
 1838  96
       if (jj_2_11(2)) {
 1839  43
         jj_consume_token(44);
 1840  43
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1841  
         case 4:
 1842  
         case 28:
 1843  
         case 35:
 1844  
         case 36:
 1845  
         case 40:
 1846  
         case 41:
 1847  
         case 44:
 1848  
         case 46:
 1849  
         case 47:
 1850  
         case 48:
 1851  
         case 49:
 1852  
         case 50:
 1853  
         case 51:
 1854  
         case 52:
 1855  
         case 54:
 1856  
         case 56:
 1857  
         case 57:
 1858  
         case IDENT:
 1859  
         case DYNAMIC_SUBSCRIPT:
 1860  
         case CHAR_LITERAL:
 1861  
         case BACK_CHAR_LITERAL:
 1862  
         case STRING_LITERAL:
 1863  
         case INT_LITERAL:
 1864  
         case FLT_LITERAL:
 1865  31
           assignmentExpression();
 1866  
           label_17:
 1867  
           while (true) {
 1868  49
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1869  
             case 1:
 1870  
               ;
 1871  18
               break;
 1872  
             default:
 1873  31
               jj_la1[55] = jj_gen;
 1874  31
               break label_17;
 1875  
             }
 1876  18
             jj_consume_token(1);
 1877  18
             assignmentExpression();
 1878  
           }
 1879  
           break;
 1880  
         default:
 1881  12
           jj_la1[56] = jj_gen;
 1882  
           ;
 1883  
         }
 1884  43
         jj_consume_token(45);
 1885  43
                       jjtree.closeNodeScope(jjtn000, true);
 1886  43
                       jjtc000 = false;
 1887  43
                         jjtn000.setClassName(className);
 1888  53
       } else if (jj_2_12(2)) {
 1889  34
         jj_consume_token(52);
 1890  34
         jj_consume_token(53);
 1891  34
         jj_consume_token(54);
 1892  34
                               ASTList jjtn001 = new ASTList(JJTLIST);
 1893  34
                               boolean jjtc001 = true;
 1894  34
                               jjtree.openNodeScope(jjtn001);
 1895  
         try {
 1896  34
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1897  
           case 4:
 1898  
           case 28:
 1899  
           case 35:
 1900  
           case 36:
 1901  
           case 40:
 1902  
           case 41:
 1903  
           case 44:
 1904  
           case 46:
 1905  
           case 47:
 1906  
           case 48:
 1907  
           case 49:
 1908  
           case 50:
 1909  
           case 51:
 1910  
           case 52:
 1911  
           case 54:
 1912  
           case 56:
 1913  
           case 57:
 1914  
           case IDENT:
 1915  
           case DYNAMIC_SUBSCRIPT:
 1916  
           case CHAR_LITERAL:
 1917  
           case BACK_CHAR_LITERAL:
 1918  
           case STRING_LITERAL:
 1919  
           case INT_LITERAL:
 1920  
           case FLT_LITERAL:
 1921  34
             assignmentExpression();
 1922  
             label_18:
 1923  
             while (true) {
 1924  72
               switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1925  
               case 1:
 1926  
                 ;
 1927  38
                 break;
 1928  
               default:
 1929  34
                 jj_la1[57] = jj_gen;
 1930  34
                 break label_18;
 1931  
               }
 1932  38
               jj_consume_token(1);
 1933  38
               assignmentExpression();
 1934  
             }
 1935  
             break;
 1936  
           default:
 1937  0
             jj_la1[58] = jj_gen;
 1938  
             ;
 1939  
           }
 1940  0
         } catch (Throwable jjte001) {
 1941  0
                               if (jjtc001) {
 1942  0
                                 jjtree.clearNodeScope(jjtn001);
 1943  0
                                 jjtc001 = false;
 1944  
                               } else {
 1945  0
                                 jjtree.popNode();
 1946  
                               }
 1947  0
                               if (jjte001 instanceof RuntimeException) {
 1948  0
                                 {if (true) throw (RuntimeException)jjte001;}
 1949  
                               }
 1950  0
                               if (jjte001 instanceof ParseException) {
 1951  0
                                 {if (true) throw (ParseException)jjte001;}
 1952  
                               }
 1953  0
                               {if (true) throw (Error)jjte001;}
 1954  
         } finally {
 1955  34
                               if (jjtc001) {
 1956  34
                                 jjtree.closeNodeScope(jjtn001, true);
 1957  
                               }
 1958  
         }
 1959  34
         jj_consume_token(55);
 1960  34
                       jjtree.closeNodeScope(jjtn000, true);
 1961  34
                       jjtc000 = false;
 1962  34
                         jjtn000.setClassName(className);
 1963  34
                         jjtn000.setArray(true);
 1964  34
       } else if (jj_2_13(2)) {
 1965  19
         jj_consume_token(52);
 1966  19
         assignmentExpression();
 1967  19
         jj_consume_token(53);
 1968  19
                       jjtree.closeNodeScope(jjtn000, true);
 1969  19
                       jjtc000 = false;
 1970  19
                         jjtn000.setClassName(className);
 1971  19
                         jjtn000.setArray(true);
 1972  
       } else {
 1973  0
         jj_consume_token(-1);
 1974  0
         throw new ParseException();
 1975  
       }
 1976  0
     } catch (Throwable jjte000) {
 1977  0
       if (jjtc000) {
 1978  0
         jjtree.clearNodeScope(jjtn000);
 1979  0
         jjtc000 = false;
 1980  
       } else {
 1981  0
         jjtree.popNode();
 1982  
       }
 1983  0
       if (jjte000 instanceof RuntimeException) {
 1984  0
         {if (true) throw (RuntimeException)jjte000;}
 1985  
       }
 1986  0
       if (jjte000 instanceof ParseException) {
 1987  0
         {if (true) throw (ParseException)jjte000;}
 1988  
       }
 1989  0
       {if (true) throw (Error)jjte000;}
 1990  
     } finally {
 1991  96
       if (jjtc000) {
 1992  0
         jjtree.closeNodeScope(jjtn000, true);
 1993  
       }
 1994  
     }
 1995  96
   }
 1996  
 
 1997  
   final public void propertyName() throws ParseException {
 1998  
                                  /*@bgen(jjtree) Property */
 1999  994
     ASTProperty jjtn000 = new ASTProperty(JJTPROPERTY);
 2000  994
     boolean jjtc000 = true;
 2001  994
     jjtree.openNodeScope(jjtn000);Token token;
 2002  
     try {
 2003  994
       token = jj_consume_token(IDENT);
 2004  994
                 ASTConst jjtn001 = new ASTConst(JJTCONST);
 2005  994
                 boolean jjtc001 = true;
 2006  994
                 jjtree.openNodeScope(jjtn001);
 2007  
       try {
 2008  994
                 jjtree.closeNodeScope(jjtn001, true);
 2009  994
                 jjtc001 = false;
 2010  994
                     jjtn001.setValue( token.image );
 2011  
       } finally {
 2012  994
                 if (jjtc001) {
 2013  0
                   jjtree.closeNodeScope(jjtn001, true);
 2014  
                 }
 2015  
       }
 2016  
     } finally {
 2017  994
       if (jjtc000) {
 2018  994
         jjtree.closeNodeScope(jjtn000, true);
 2019  
       }
 2020  
     }
 2021  994
   }
 2022  
 
 2023  
   final public void staticMethodCall(String className) throws ParseException {
 2024  
                                                            /*@bgen(jjtree) StaticMethod */
 2025  20
     ASTStaticMethod jjtn000 = new ASTStaticMethod(JJTSTATICMETHOD);
 2026  20
     boolean jjtc000 = true;
 2027  20
     jjtree.openNodeScope(jjtn000);Token token;
 2028  
     try {
 2029  20
       token = jj_consume_token(IDENT);
 2030  20
       jj_consume_token(44);
 2031  20
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2032  
       case 4:
 2033  
       case 28:
 2034  
       case 35:
 2035  
       case 36:
 2036  
       case 40:
 2037  
       case 41:
 2038  
       case 44:
 2039  
       case 46:
 2040  
       case 47:
 2041  
       case 48:
 2042  
       case 49:
 2043  
       case 50:
 2044  
       case 51:
 2045  
       case 52:
 2046  
       case 54:
 2047  
       case 56:
 2048  
       case 57:
 2049  
       case IDENT:
 2050  
       case DYNAMIC_SUBSCRIPT:
 2051  
       case CHAR_LITERAL:
 2052  
       case BACK_CHAR_LITERAL:
 2053  
       case STRING_LITERAL:
 2054  
       case INT_LITERAL:
 2055  
       case FLT_LITERAL:
 2056  12
         assignmentExpression();
 2057  
         label_19:
 2058  
         while (true) {
 2059  18
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2060  
           case 1:
 2061  
             ;
 2062  6
             break;
 2063  
           default:
 2064  12
             jj_la1[59] = jj_gen;
 2065  12
             break label_19;
 2066  
           }
 2067  6
           jj_consume_token(1);
 2068  6
           assignmentExpression();
 2069  
         }
 2070  
         break;
 2071  
       default:
 2072  8
         jj_la1[60] = jj_gen;
 2073  
         ;
 2074  
       }
 2075  20
       jj_consume_token(45);
 2076  20
                                           jjtree.closeNodeScope(jjtn000, true);
 2077  20
                                           jjtc000 = false;
 2078  20
                                           jjtn000.init( className, token.image );
 2079  0
     } catch (Throwable jjte000) {
 2080  0
       if (jjtc000) {
 2081  0
         jjtree.clearNodeScope(jjtn000);
 2082  0
         jjtc000 = false;
 2083  
       } else {
 2084  0
         jjtree.popNode();
 2085  
       }
 2086  0
       if (jjte000 instanceof RuntimeException) {
 2087  0
         {if (true) throw (RuntimeException)jjte000;}
 2088  
       }
 2089  0
       if (jjte000 instanceof ParseException) {
 2090  0
         {if (true) throw (ParseException)jjte000;}
 2091  
       }
 2092  0
       {if (true) throw (Error)jjte000;}
 2093  
     } finally {
 2094  20
       if (jjtc000) {
 2095  0
         jjtree.closeNodeScope(jjtn000, true);
 2096  
       }
 2097  
     }
 2098  20
   }
 2099  
 
 2100  
   final public void methodCall() throws ParseException {
 2101  
                              /*@bgen(jjtree) Method */
 2102  191
     ASTMethod jjtn000 = new ASTMethod(JJTMETHOD);
 2103  191
     boolean jjtc000 = true;
 2104  191
     jjtree.openNodeScope(jjtn000);Token token;
 2105  
     try {
 2106  191
       token = jj_consume_token(IDENT);
 2107  191
       jj_consume_token(44);
 2108  191
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2109  
       case 4:
 2110  
       case 28:
 2111  
       case 35:
 2112  
       case 36:
 2113  
       case 40:
 2114  
       case 41:
 2115  
       case 44:
 2116  
       case 46:
 2117  
       case 47:
 2118  
       case 48:
 2119  
       case 49:
 2120  
       case 50:
 2121  
       case 51:
 2122  
       case 52:
 2123  
       case 54:
 2124  
       case 56:
 2125  
       case 57:
 2126  
       case IDENT:
 2127  
       case DYNAMIC_SUBSCRIPT:
 2128  
       case CHAR_LITERAL:
 2129  
       case BACK_CHAR_LITERAL:
 2130  
       case STRING_LITERAL:
 2131  
       case INT_LITERAL:
 2132  
       case FLT_LITERAL:
 2133  85
         assignmentExpression();
 2134  
         label_20:
 2135  
         while (true) {
 2136  113
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2137  
           case 1:
 2138  
             ;
 2139  28
             break;
 2140  
           default:
 2141  85
             jj_la1[61] = jj_gen;
 2142  85
             break label_20;
 2143  
           }
 2144  28
           jj_consume_token(1);
 2145  28
           assignmentExpression();
 2146  
         }
 2147  
         break;
 2148  
       default:
 2149  106
         jj_la1[62] = jj_gen;
 2150  
         ;
 2151  
       }
 2152  191
       jj_consume_token(45);
 2153  191
                                           jjtree.closeNodeScope(jjtn000, true);
 2154  191
                                           jjtc000 = false;
 2155  191
                                           jjtn000.setMethodName( token.image );
 2156  0
     } catch (Throwable jjte000) {
 2157  0
       if (jjtc000) {
 2158  0
         jjtree.clearNodeScope(jjtn000);
 2159  0
         jjtc000 = false;
 2160  
       } else {
 2161  0
         jjtree.popNode();
 2162  
       }
 2163  0
       if (jjte000 instanceof RuntimeException) {
 2164  0
         {if (true) throw (RuntimeException)jjte000;}
 2165  
       }
 2166  0
       if (jjte000 instanceof ParseException) {
 2167  0
         {if (true) throw (ParseException)jjte000;}
 2168  
       }
 2169  0
       {if (true) throw (Error)jjte000;}
 2170  
     } finally {
 2171  191
       if (jjtc000) {
 2172  0
         jjtree.closeNodeScope(jjtn000, true);
 2173  
       }
 2174  
     }
 2175  191
   }
 2176  
 
 2177  
 /**
 2178  
  * Apply an expression to all elements of a collection, creating a new collection
 2179  
  * as the result.
 2180  
  */
 2181  
   final public void projection() throws ParseException {
 2182  
                               /*@bgen(jjtree) Project */
 2183  10
   ASTProject jjtn000 = new ASTProject(JJTPROJECT);
 2184  10
   boolean jjtc000 = true;
 2185  10
   jjtree.openNodeScope(jjtn000);
 2186  
     try {
 2187  10
       jj_consume_token(54);
 2188  10
       expression();
 2189  10
       jj_consume_token(55);
 2190  0
     } catch (Throwable jjte000) {
 2191  0
       if (jjtc000) {
 2192  0
         jjtree.clearNodeScope(jjtn000);
 2193  0
         jjtc000 = false;
 2194  
       } else {
 2195  0
         jjtree.popNode();
 2196  
       }
 2197  0
       if (jjte000 instanceof RuntimeException) {
 2198  0
         {if (true) throw (RuntimeException)jjte000;}
 2199  
       }
 2200  0
       if (jjte000 instanceof ParseException) {
 2201  0
         {if (true) throw (ParseException)jjte000;}
 2202  
       }
 2203  0
       {if (true) throw (Error)jjte000;}
 2204  
     } finally {
 2205  10
       if (jjtc000) {
 2206  10
         jjtree.closeNodeScope(jjtn000, true);
 2207  
       }
 2208  
     }
 2209  10
   }
 2210  
 
 2211  
   final public void selection() throws ParseException {
 2212  15
     if (jj_2_14(2)) {
 2213  11
       selectAll();
 2214  4
     } else if (jj_2_15(2)) {
 2215  2
       selectFirst();
 2216  2
     } else if (jj_2_16(2)) {
 2217  2
       selectLast();
 2218  
     } else {
 2219  0
       jj_consume_token(-1);
 2220  0
       throw new ParseException();
 2221  
     }
 2222  15
   }
 2223  
 
 2224  
 /**
 2225  
  * Apply a boolean expression to all elements of a collection, creating a new collection
 2226  
  * containing those elements for which the expression returned true.
 2227  
  */
 2228  
   final public void selectAll() throws ParseException {
 2229  
                             /*@bgen(jjtree) Select */
 2230  11
   ASTSelect jjtn000 = new ASTSelect(JJTSELECT);
 2231  11
   boolean jjtc000 = true;
 2232  11
   jjtree.openNodeScope(jjtn000);
 2233  
     try {
 2234  11
       jj_consume_token(54);
 2235  11
       jj_consume_token(3);
 2236  11
       expression();
 2237  11
       jj_consume_token(55);
 2238  0
     } catch (Throwable jjte000) {
 2239  0
       if (jjtc000) {
 2240  0
         jjtree.clearNodeScope(jjtn000);
 2241  0
         jjtc000 = false;
 2242  
       } else {
 2243  0
         jjtree.popNode();
 2244  
       }
 2245  0
       if (jjte000 instanceof RuntimeException) {
 2246  0
         {if (true) throw (RuntimeException)jjte000;}
 2247  
       }
 2248  0
       if (jjte000 instanceof ParseException) {
 2249  0
         {if (true) throw (ParseException)jjte000;}
 2250  
       }
 2251  0
       {if (true) throw (Error)jjte000;}
 2252  
     } finally {
 2253  11
       if (jjtc000) {
 2254  11
         jjtree.closeNodeScope(jjtn000, true);
 2255  
       }
 2256  
     }
 2257  11
   }
 2258  
 
 2259  
 /**
 2260  
  * Apply a boolean expression to all elements of a collection, creating a new collection
 2261  
  * containing those elements for the first element for which the expression returned true.
 2262  
  */
 2263  
   final public void selectFirst() throws ParseException {
 2264  
                                    /*@bgen(jjtree) SelectFirst */
 2265  2
   ASTSelectFirst jjtn000 = new ASTSelectFirst(JJTSELECTFIRST);
 2266  2
   boolean jjtc000 = true;
 2267  2
   jjtree.openNodeScope(jjtn000);
 2268  
     try {
 2269  2
       jj_consume_token(54);
 2270  2
       jj_consume_token(11);
 2271  2
       expression();
 2272  2
       jj_consume_token(55);
 2273  0
     } catch (Throwable jjte000) {
 2274  0
       if (jjtc000) {
 2275  0
         jjtree.clearNodeScope(jjtn000);
 2276  0
         jjtc000 = false;
 2277  
       } else {
 2278  0
         jjtree.popNode();
 2279  
       }
 2280  0
       if (jjte000 instanceof RuntimeException) {
 2281  0
         {if (true) throw (RuntimeException)jjte000;}
 2282  
       }
 2283  0
       if (jjte000 instanceof ParseException) {
 2284  0
         {if (true) throw (ParseException)jjte000;}
 2285  
       }
 2286  0
       {if (true) throw (Error)jjte000;}
 2287  
     } finally {
 2288  2
       if (jjtc000) {
 2289  2
         jjtree.closeNodeScope(jjtn000, true);
 2290  
       }
 2291  
     }
 2292  2
   }
 2293  
 
 2294  
 /**
 2295  
  * Apply a boolean expression to all elements of a collection, creating a new collection
 2296  
  * containing those elements for the first element for which the expression returned true.
 2297  
  */
 2298  
   final public void selectLast() throws ParseException {
 2299  
                                  /*@bgen(jjtree) SelectLast */
 2300  2
   ASTSelectLast jjtn000 = new ASTSelectLast(JJTSELECTLAST);
 2301  2
   boolean jjtc000 = true;
 2302  2
   jjtree.openNodeScope(jjtn000);
 2303  
     try {
 2304  2
       jj_consume_token(54);
 2305  2
       jj_consume_token(58);
 2306  2
       expression();
 2307  2
       jj_consume_token(55);
 2308  0
     } catch (Throwable jjte000) {
 2309  0
       if (jjtc000) {
 2310  0
         jjtree.clearNodeScope(jjtn000);
 2311  0
         jjtc000 = false;
 2312  
       } else {
 2313  0
         jjtree.popNode();
 2314  
       }
 2315  0
       if (jjte000 instanceof RuntimeException) {
 2316  0
         {if (true) throw (RuntimeException)jjte000;}
 2317  
       }
 2318  0
       if (jjte000 instanceof ParseException) {
 2319  0
         {if (true) throw (ParseException)jjte000;}
 2320  
       }
 2321  0
       {if (true) throw (Error)jjte000;}
 2322  
     } finally {
 2323  2
       if (jjtc000) {
 2324  2
         jjtree.closeNodeScope(jjtn000, true);
 2325  
       }
 2326  
     }
 2327  2
   }
 2328  
 
 2329  
   final public void index() throws ParseException {
 2330  
                           /*@bgen(jjtree) Property */
 2331  228
   ASTProperty jjtn000 = new ASTProperty(JJTPROPERTY);
 2332  228
   boolean jjtc000 = true;
 2333  228
   jjtree.openNodeScope(jjtn000);
 2334  
     try {
 2335  228
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2336  
       case 52:
 2337  186
         jj_consume_token(52);
 2338  186
         expression();
 2339  186
         jj_consume_token(53);
 2340  186
                            jjtree.closeNodeScope(jjtn000, true);
 2341  186
                            jjtc000 = false;
 2342  186
                            jjtn000.setIndexedAccess(true);
 2343  186
         break;
 2344  
       case DYNAMIC_SUBSCRIPT:
 2345  42
         jj_consume_token(DYNAMIC_SUBSCRIPT);
 2346  42
                           ASTConst jjtn001 = new ASTConst(JJTCONST);
 2347  42
                           boolean jjtc001 = true;
 2348  42
                           jjtree.openNodeScope(jjtn001);
 2349  
         try {
 2350  42
                           jjtree.closeNodeScope(jjtn001, true);
 2351  42
                           jjtc001 = false;
 2352  42
                           jjtn001.setValue( token_source.literalValue );
 2353  
         } finally {
 2354  42
                           if (jjtc001) {
 2355  0
                             jjtree.closeNodeScope(jjtn001, true);
 2356  
                           }
 2357  
         }
 2358  42
       jjtree.closeNodeScope(jjtn000, true);
 2359  42
       jjtc000 = false;
 2360  42
         jjtn000.setIndexedAccess(true);
 2361  42
         break;
 2362  
       default:
 2363  0
         jj_la1[63] = jj_gen;
 2364  0
         jj_consume_token(-1);
 2365  0
         throw new ParseException();
 2366  
       }
 2367  0
     } catch (Throwable jjte000) {
 2368  0
       if (jjtc000) {
 2369  0
         jjtree.clearNodeScope(jjtn000);
 2370  0
         jjtc000 = false;
 2371  
       } else {
 2372  0
         jjtree.popNode();
 2373  
       }
 2374  0
       if (jjte000 instanceof RuntimeException) {
 2375  0
         {if (true) throw (RuntimeException)jjte000;}
 2376  
       }
 2377  0
       if (jjte000 instanceof ParseException) {
 2378  0
         {if (true) throw (ParseException)jjte000;}
 2379  
       }
 2380  0
       {if (true) throw (Error)jjte000;}
 2381  
     } finally {
 2382  228
       if (jjtc000) {
 2383  0
         jjtree.closeNodeScope(jjtn000, true);
 2384  
       }
 2385  
     }
 2386  228
   }
 2387  
 
 2388  
   private boolean jj_2_1(int xla) {
 2389  345
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2390  345
     try { return !jj_3_1(); }
 2391  100
     catch(LookaheadSuccess ls) { return true; }
 2392  345
     finally { jj_save(0, xla); }
 2393  
   }
 2394  
 
 2395  
   private boolean jj_2_2(int xla) {
 2396  25
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2397  25
     try { return !jj_3_2(); }
 2398  10
     catch(LookaheadSuccess ls) { return true; }
 2399  25
     finally { jj_save(1, xla); }
 2400  
   }
 2401  
 
 2402  
   private boolean jj_2_3(int xla) {
 2403  840
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2404  840
     try { return !jj_3_3(); }
 2405  91
     catch(LookaheadSuccess ls) { return true; }
 2406  840
     finally { jj_save(2, xla); }
 2407  
   }
 2408  
 
 2409  
   private boolean jj_2_4(int xla) {
 2410  1335
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2411  1335
     try { return !jj_3_4(); }
 2412  0
     catch(LookaheadSuccess ls) { return true; }
 2413  1335
     finally { jj_save(3, xla); }
 2414  
   }
 2415  
 
 2416  
   private boolean jj_2_5(int xla) {
 2417  1284
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2418  1284
     try { return !jj_3_5(); }
 2419  0
     catch(LookaheadSuccess ls) { return true; }
 2420  1284
     finally { jj_save(4, xla); }
 2421  
   }
 2422  
 
 2423  
   private boolean jj_2_6(int xla) {
 2424  1253
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2425  1253
     try { return !jj_3_6(); }
 2426  122
     catch(LookaheadSuccess ls) { return true; }
 2427  1253
     finally { jj_save(5, xla); }
 2428  
   }
 2429  
 
 2430  
   private boolean jj_2_7(int xla) {
 2431  1131
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2432  1131
     try { return !jj_3_7(); }
 2433  12
     catch(LookaheadSuccess ls) { return true; }
 2434  1131
     finally { jj_save(6, xla); }
 2435  
   }
 2436  
 
 2437  
   private boolean jj_2_8(int xla) {
 2438  1059
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2439  1059
     try { return !jj_3_8(); }
 2440  96
     catch(LookaheadSuccess ls) { return true; }
 2441  1059
     finally { jj_save(7, xla); }
 2442  
   }
 2443  
 
 2444  
   private boolean jj_2_9(int xla) {
 2445  10
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2446  10
     try { return !jj_3_9(); }
 2447  10
     catch(LookaheadSuccess ls) { return true; }
 2448  10
     finally { jj_save(8, xla); }
 2449  
   }
 2450  
 
 2451  
   private boolean jj_2_10(int xla) {
 2452  60
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2453  60
     try { return !jj_3_10(); }
 2454  20
     catch(LookaheadSuccess ls) { return true; }
 2455  60
     finally { jj_save(9, xla); }
 2456  
   }
 2457  
 
 2458  
   private boolean jj_2_11(int xla) {
 2459  96
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2460  96
     try { return !jj_3_11(); }
 2461  43
     catch(LookaheadSuccess ls) { return true; }
 2462  96
     finally { jj_save(10, xla); }
 2463  
   }
 2464  
 
 2465  
   private boolean jj_2_12(int xla) {
 2466  53
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2467  53
     try { return !jj_3_12(); }
 2468  34
     catch(LookaheadSuccess ls) { return true; }
 2469  53
     finally { jj_save(11, xla); }
 2470  
   }
 2471  
 
 2472  
   private boolean jj_2_13(int xla) {
 2473  19
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2474  19
     try { return !jj_3_13(); }
 2475  19
     catch(LookaheadSuccess ls) { return true; }
 2476  19
     finally { jj_save(12, xla); }
 2477  
   }
 2478  
 
 2479  
   private boolean jj_2_14(int xla) {
 2480  15
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2481  15
     try { return !jj_3_14(); }
 2482  11
     catch(LookaheadSuccess ls) { return true; }
 2483  15
     finally { jj_save(13, xla); }
 2484  
   }
 2485  
 
 2486  
   private boolean jj_2_15(int xla) {
 2487  4
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2488  4
     try { return !jj_3_15(); }
 2489  2
     catch(LookaheadSuccess ls) { return true; }
 2490  4
     finally { jj_save(14, xla); }
 2491  
   }
 2492  
 
 2493  
   private boolean jj_2_16(int xla) {
 2494  2
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 2495  2
     try { return !jj_3_16(); }
 2496  2
     catch(LookaheadSuccess ls) { return true; }
 2497  2
     finally { jj_save(15, xla); }
 2498  
   }
 2499  
 
 2500  
   private boolean jj_3R_57() {
 2501  45
     if (jj_3R_62()) return true;
 2502  0
     return false;
 2503  
   }
 2504  
 
 2505  
   private boolean jj_3R_25() {
 2506  60
     if (jj_scan_token(IDENT)) return true;
 2507  60
     if (jj_scan_token(44)) return true;
 2508  0
     return false;
 2509  
   }
 2510  
 
 2511  
   private boolean jj_3R_34() {
 2512  87
     if (jj_3R_35()) return true;
 2513  0
     return false;
 2514  
   }
 2515  
 
 2516  
   private boolean jj_3_7() {
 2517  1176
     if (jj_scan_token(4)) return true;
 2518  12
     if (jj_scan_token(52)) return true;
 2519  0
     return false;
 2520  
   }
 2521  
 
 2522  
   private boolean jj_3_6() {
 2523  1298
     if (jj_scan_token(51)) return true;
 2524  132
     if (jj_scan_token(IDENT)) return true;
 2525  0
     return false;
 2526  
   }
 2527  
 
 2528  
   private boolean jj_3_5() {
 2529  1333
     if (jj_scan_token(50)) return true;
 2530  31
     return false;
 2531  
   }
 2532  
 
 2533  
   private boolean jj_3R_27() {
 2534  87
     if (jj_3R_34()) return true;
 2535  0
     return false;
 2536  
   }
 2537  
 
 2538  
   private boolean jj_3_4() {
 2539  1386
     if (jj_scan_token(49)) return true;
 2540  51
     return false;
 2541  
   }
 2542  
 
 2543  
   private boolean jj_3R_65() {
 2544  27
     if (jj_scan_token(IDENT)) return true;
 2545  0
     return false;
 2546  
   }
 2547  
 
 2548  
   private boolean jj_3R_43() {
 2549  87
     if (jj_3R_44()) return true;
 2550  0
     return false;
 2551  
   }
 2552  
 
 2553  
   private boolean jj_3R_56() {
 2554  51
     if (jj_scan_token(48)) return true;
 2555  0
     return false;
 2556  
   }
 2557  
 
 2558  
   private boolean jj_3R_55() {
 2559  51
     if (jj_scan_token(47)) return true;
 2560  0
     return false;
 2561  
   }
 2562  
 
 2563  
   private boolean jj_3R_54() {
 2564  51
     if (jj_scan_token(46)) return true;
 2565  0
     return false;
 2566  
   }
 2567  
 
 2568  
   private boolean jj_3R_31() {
 2569  25
     if (jj_3R_27()) return true;
 2570  0
     return false;
 2571  
   }
 2572  
 
 2573  
   private boolean jj_3_13() {
 2574  19
     if (jj_scan_token(52)) return true;
 2575  19
     if (jj_3R_27()) return true;
 2576  0
     return false;
 2577  
   }
 2578  
 
 2579  
   private boolean jj_3R_53() {
 2580  
     Token xsp;
 2581  87
     xsp = jj_scanpos;
 2582  87
     if (jj_scan_token(73)) {
 2583  76
     jj_scanpos = xsp;
 2584  76
     if (jj_scan_token(76)) {
 2585  76
     jj_scanpos = xsp;
 2586  76
     if (jj_scan_token(79)) {
 2587  74
     jj_scanpos = xsp;
 2588  74
     if (jj_scan_token(80)) {
 2589  53
     jj_scanpos = xsp;
 2590  53
     if (jj_scan_token(81)) return true;
 2591  
     }
 2592  
     }
 2593  
     }
 2594  
     }
 2595  0
     return false;
 2596  
   }
 2597  
 
 2598  
   private boolean jj_3R_26() {
 2599  43
     if (jj_3R_27()) return true;
 2600  0
     return false;
 2601  
   }
 2602  
 
 2603  
   private boolean jj_3R_52() {
 2604  
     Token xsp;
 2605  87
     xsp = jj_scanpos;
 2606  87
     if (jj_3R_53()) {
 2607  51
     jj_scanpos = xsp;
 2608  51
     if (jj_3R_54()) {
 2609  51
     jj_scanpos = xsp;
 2610  51
     if (jj_3R_55()) {
 2611  51
     jj_scanpos = xsp;
 2612  51
     if (jj_3R_56()) {
 2613  51
     jj_scanpos = xsp;
 2614  51
     if (jj_3_4()) {
 2615  49
     jj_scanpos = xsp;
 2616  49
     if (jj_3_5()) {
 2617  45
     jj_scanpos = xsp;
 2618  45
     if (jj_3_6()) {
 2619  45
     jj_scanpos = xsp;
 2620  45
     if (jj_3_7()) {
 2621  45
     jj_scanpos = xsp;
 2622  45
     if (jj_3R_57()) {
 2623  45
     jj_scanpos = xsp;
 2624  45
     if (jj_3_8()) {
 2625  41
     jj_scanpos = xsp;
 2626  41
     if (jj_3R_58()) {
 2627  27
     jj_scanpos = xsp;
 2628  27
     if (jj_3R_59()) {
 2629  27
     jj_scanpos = xsp;
 2630  27
     if (jj_3R_60()) {
 2631  27
     jj_scanpos = xsp;
 2632  27
     if (jj_3R_61()) {
 2633  27
     jj_scanpos = xsp;
 2634  27
     if (jj_3_9()) return true;
 2635  
     }
 2636  
     }
 2637  
     }
 2638  
     }
 2639  
     }
 2640  
     }
 2641  
     }
 2642  
     }
 2643  
     }
 2644  
     }
 2645  
     }
 2646  
     }
 2647  
     }
 2648  
     }
 2649  0
     return false;
 2650  
   }
 2651  
 
 2652  
   private boolean jj_3R_42() {
 2653  87
     if (jj_3R_43()) return true;
 2654  0
     return false;
 2655  
   }
 2656  
 
 2657  
   private boolean jj_3_12() {
 2658  53
     if (jj_scan_token(52)) return true;
 2659  53
     if (jj_scan_token(53)) return true;
 2660  0
     return false;
 2661  
   }
 2662  
 
 2663  
   private boolean jj_3_11() {
 2664  96
     if (jj_scan_token(44)) return true;
 2665  
     Token xsp;
 2666  43
     xsp = jj_scanpos;
 2667  43
     if (jj_3R_26()) jj_scanpos = xsp;
 2668  12
     if (jj_scan_token(45)) return true;
 2669  0
     return false;
 2670  
   }
 2671  
 
 2672  
   private boolean jj_3R_67() {
 2673  27
     if (jj_scan_token(DYNAMIC_SUBSCRIPT)) return true;
 2674  0
     return false;
 2675  
   }
 2676  
 
 2677  
   private boolean jj_3_2() {
 2678  25
     if (jj_3R_22()) return true;
 2679  0
     return false;
 2680  
   }
 2681  
 
 2682  
   private boolean jj_3R_66() {
 2683  27
     if (jj_scan_token(52)) return true;
 2684  0
     return false;
 2685  
   }
 2686  
 
 2687  
   private boolean jj_3R_64() {
 2688  
     Token xsp;
 2689  27
     xsp = jj_scanpos;
 2690  27
     if (jj_3R_66()) {
 2691  27
     jj_scanpos = xsp;
 2692  27
     if (jj_3R_67()) return true;
 2693  
     }
 2694  0
     return false;
 2695  
   }
 2696  
 
 2697  
   private boolean jj_3_1() {
 2698  345
     if (jj_3R_21()) return true;
 2699  0
     return false;
 2700  
   }
 2701  
 
 2702  
   private boolean jj_3R_23() {
 2703  1104
     if (jj_scan_token(57)) return true;
 2704  96
     if (jj_3R_32()) return true;
 2705  0
     return false;
 2706  
   }
 2707  
 
 2708  
   private boolean jj_3R_41() {
 2709  87
     if (jj_3R_42()) return true;
 2710  0
     return false;
 2711  
   }
 2712  
 
 2713  
   private boolean jj_3R_30() {
 2714  2
     if (jj_scan_token(54)) return true;
 2715  2
     if (jj_scan_token(58)) return true;
 2716  0
     return false;
 2717  
   }
 2718  
 
 2719  
   private boolean jj_3R_32() {
 2720  96
     if (jj_scan_token(IDENT)) return true;
 2721  0
     return false;
 2722  
   }
 2723  
 
 2724  
   private boolean jj_3R_51() {
 2725  87
     if (jj_3R_52()) return true;
 2726  0
     return false;
 2727  
   }
 2728  
 
 2729  
   private boolean jj_3R_29() {
 2730  4
     if (jj_scan_token(54)) return true;
 2731  4
     if (jj_scan_token(11)) return true;
 2732  0
     return false;
 2733  
   }
 2734  
 
 2735  
   private boolean jj_3R_40() {
 2736  87
     if (jj_3R_41()) return true;
 2737  0
     return false;
 2738  
   }
 2739  
 
 2740  
   private boolean jj_3R_33() {
 2741  55
     if (jj_scan_token(56)) return true;
 2742  0
     return false;
 2743  
   }
 2744  
 
 2745  
   private boolean jj_3R_63() {
 2746  27
     if (jj_3R_65()) return true;
 2747  0
     return false;
 2748  
   }
 2749  
 
 2750  
   private boolean jj_3R_28() {
 2751  15
     if (jj_scan_token(54)) return true;
 2752  15
     if (jj_scan_token(3)) return true;
 2753  0
     return false;
 2754  
   }
 2755  
 
 2756  
   private boolean jj_3R_50() {
 2757  87
     if (jj_3R_51()) return true;
 2758  0
     return false;
 2759  
   }
 2760  
 
 2761  
   private boolean jj_3R_39() {
 2762  87
     if (jj_3R_40()) return true;
 2763  0
     return false;
 2764  
   }
 2765  
 
 2766  
   private boolean jj_3_10() {
 2767  60
     if (jj_3R_25()) return true;
 2768  0
     return false;
 2769  
   }
 2770  
 
 2771  
   private boolean jj_3R_24() {
 2772  10
     if (jj_3R_33()) return true;
 2773  0
     return false;
 2774  
   }
 2775  
 
 2776  
   private boolean jj_3R_49() {
 2777  
     Token xsp;
 2778  87
     xsp = jj_scanpos;
 2779  87
     if (jj_scan_token(41)) {
 2780  87
     jj_scanpos = xsp;
 2781  87
     if (jj_scan_token(28)) return true;
 2782  
     }
 2783  0
     return false;
 2784  
   }
 2785  
 
 2786  
   private boolean jj_3R_48() {
 2787  87
     if (jj_scan_token(40)) return true;
 2788  0
     return false;
 2789  
   }
 2790  
 
 2791  
   private boolean jj_3_16() {
 2792  2
     if (jj_3R_30()) return true;
 2793  0
     return false;
 2794  
   }
 2795  
 
 2796  
   private boolean jj_3R_47() {
 2797  87
     if (jj_scan_token(35)) return true;
 2798  0
     return false;
 2799  
   }
 2800  
 
 2801  
   private boolean jj_3_15() {
 2802  4
     if (jj_3R_29()) return true;
 2803  0
     return false;
 2804  
   }
 2805  
 
 2806  
   private boolean jj_3R_38() {
 2807  87
     if (jj_3R_39()) return true;
 2808  0
     return false;
 2809  
   }
 2810  
 
 2811  
   private boolean jj_3R_46() {
 2812  87
     if (jj_scan_token(36)) return true;
 2813  0
     return false;
 2814  
   }
 2815  
 
 2816  
   private boolean jj_3_14() {
 2817  15
     if (jj_3R_28()) return true;
 2818  0
     return false;
 2819  
   }
 2820  
 
 2821  
   private boolean jj_3R_62() {
 2822  45
     if (jj_3R_33()) return true;
 2823  0
     return false;
 2824  
   }
 2825  
 
 2826  
   private boolean jj_3R_45() {
 2827  
     Token xsp;
 2828  87
     xsp = jj_scanpos;
 2829  87
     if (jj_3R_46()) {
 2830  87
     jj_scanpos = xsp;
 2831  87
     if (jj_3R_47()) {
 2832  87
     jj_scanpos = xsp;
 2833  87
     if (jj_3R_48()) {
 2834  87
     jj_scanpos = xsp;
 2835  87
     if (jj_3R_49()) {
 2836  87
     jj_scanpos = xsp;
 2837  87
     if (jj_3R_50()) return true;
 2838  
     }
 2839  
     }
 2840  
     }
 2841  
     }
 2842  0
     return false;
 2843  
   }
 2844  
 
 2845  
   private boolean jj_3R_37() {
 2846  87
     if (jj_3R_38()) return true;
 2847  0
     return false;
 2848  
   }
 2849  
 
 2850  
   private boolean jj_3R_22() {
 2851  25
     if (jj_scan_token(54)) return true;
 2852  25
     if (jj_3R_31()) return true;
 2853  0
     return false;
 2854  
   }
 2855  
 
 2856  
   private boolean jj_3_9() {
 2857  37
     if (jj_scan_token(51)) return true;
 2858  
     Token xsp;
 2859  10
     xsp = jj_scanpos;
 2860  10
     if (jj_3R_24()) jj_scanpos = xsp;
 2861  6
     if (jj_scan_token(54)) return true;
 2862  0
     return false;
 2863  
   }
 2864  
 
 2865  
   private boolean jj_3R_36() {
 2866  87
     if (jj_3R_37()) return true;
 2867  0
     return false;
 2868  
   }
 2869  
 
 2870  
   private boolean jj_3R_61() {
 2871  27
     if (jj_scan_token(54)) return true;
 2872  0
     return false;
 2873  
   }
 2874  
 
 2875  
   private boolean jj_3R_60() {
 2876  27
     if (jj_scan_token(44)) return true;
 2877  0
     return false;
 2878  
   }
 2879  
 
 2880  
   private boolean jj_3R_59() {
 2881  27
     if (jj_3R_64()) return true;
 2882  0
     return false;
 2883  
   }
 2884  
 
 2885  
   private boolean jj_3_3() {
 2886  881
     if (jj_3R_21()) return true;
 2887  0
     return false;
 2888  
   }
 2889  
 
 2890  
   private boolean jj_3R_21() {
 2891  1226
     if (jj_scan_token(IDENT)) return true;
 2892  1185
     if (jj_scan_token(44)) return true;
 2893  0
     return false;
 2894  
   }
 2895  
 
 2896  
   private boolean jj_3R_58() {
 2897  
     Token xsp;
 2898  41
     xsp = jj_scanpos;
 2899  41
     if (jj_3_3()) {
 2900  27
     jj_scanpos = xsp;
 2901  27
     if (jj_3R_63()) return true;
 2902  
     }
 2903  0
     return false;
 2904  
   }
 2905  
 
 2906  
   private boolean jj_3R_35() {
 2907  87
     if (jj_3R_36()) return true;
 2908  0
     return false;
 2909  
   }
 2910  
 
 2911  
   private boolean jj_3R_44() {
 2912  87
     if (jj_3R_45()) return true;
 2913  0
     return false;
 2914  
   }
 2915  
 
 2916  
   private boolean jj_3_8() {
 2917  1104
     if (jj_3R_23()) return true;
 2918  0
     return false;
 2919  
   }
 2920  
 
 2921  
   /** Generated Token Manager. */
 2922  
   public OgnlParserTokenManager token_source;
 2923  
   JavaCharStream jj_input_stream;
 2924  
   /** Current token. */
 2925  
   public Token token;
 2926  
   /** Next token. */
 2927  
   public Token jj_nt;
 2928  
   private int jj_ntk;
 2929  
   private Token jj_scanpos, jj_lastpos;
 2930  
   private int jj_la;
 2931  
   private int jj_gen;
 2932  1148
   final private int[] jj_la1 = new int[64];
 2933  
   static private int[] jj_la1_0;
 2934  
   static private int[] jj_la1_1;
 2935  
   static private int[] jj_la1_2;
 2936  
   static {
 2937  1
       jj_la1_init_0();
 2938  1
       jj_la1_init_1();
 2939  1
       jj_la1_init_2();
 2940  1
    }
 2941  
    private static void jj_la1_init_0() {
 2942  1
       jj_la1_0 = new int[] {0x2,0x4,0x8,0x60,0x60,0x180,0x180,0x600,0x600,0x1800,0x1800,0x6000,0x6000,0x78000,0x18000,0x60000,0x78000,0x1ff80000,0x180000,0x600000,0x1800000,0x6000000,0x1ff80000,0xe0000000,0x60000000,0x80000000,0x0,0xe0000000,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000010,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x10000010,0x0,0x2,0x10000010,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x2,0x10000010,0x2,0x10000010,0x2,0x10000010,0x2,0x10000010,0x0,};
 2943  1
    }
 2944  
    private static void jj_la1_init_1() {
 2945  1
       jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x1,0x6,0x7,0x18,0x18,0xe0,0xe0,0x200,0x800,0x400,0x35fd318,0x101800,0x0,0x400000,0x401000,0x101800,0x0,0x0,0x0,0x35fd318,0x1000000,0x0,0x35fd318,0x1c000,0x1000000,0x501000,0x0,0x0,0x0,0x800,0x0,0x35fd318,0x0,0x35fd318,0x0,0x35fd318,0x0,0x35fd318,0x100000,};
 2946  1
    }
 2947  
    private static void jj_la1_init_2() {
 2948  1
       jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x39209,0x8,0x1,0x0,0x1,0x8,0x39200,0x1,0x0,0x39209,0x0,0x0,0x39209,0x39200,0x0,0x9,0x0,0x1,0x1,0x0,0x0,0x39209,0x0,0x39209,0x0,0x39209,0x0,0x39209,0x8,};
 2949  1
    }
 2950  1148
   final private JJCalls[] jj_2_rtns = new JJCalls[16];
 2951  1148
   private boolean jj_rescan = false;
 2952  1148
   private int jj_gc = 0;
 2953  
 
 2954  
   /** Constructor with InputStream. */
 2955  
   public OgnlParser(java.io.InputStream stream) {
 2956  0
      this(stream, null);
 2957  0
   }
 2958  
   /** Constructor with InputStream and supplied encoding */
 2959  0
   public OgnlParser(java.io.InputStream stream, String encoding) {
 2960  0
     try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
 2961  0
     token_source = new OgnlParserTokenManager(jj_input_stream);
 2962  0
     token = new Token();
 2963  0
     jj_ntk = -1;
 2964  0
     jj_gen = 0;
 2965  0
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 2966  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 2967  0
   }
 2968  
 
 2969  
   /** Reinitialise. */
 2970  
   public void ReInit(java.io.InputStream stream) {
 2971  0
      ReInit(stream, null);
 2972  0
   }
 2973  
   /** Reinitialise. */
 2974  
   public void ReInit(java.io.InputStream stream, String encoding) {
 2975  0
     try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
 2976  0
     token_source.ReInit(jj_input_stream);
 2977  0
     token = new Token();
 2978  0
     jj_ntk = -1;
 2979  0
     jj_gen = 0;
 2980  0
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 2981  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 2982  0
   }
 2983  
 
 2984  
   /** Constructor. */
 2985  1148
   public OgnlParser(java.io.Reader stream) {
 2986  1148
     jj_input_stream = new JavaCharStream(stream, 1, 1);
 2987  1148
     token_source = new OgnlParserTokenManager(jj_input_stream);
 2988  1148
     token = new Token();
 2989  1148
     jj_ntk = -1;
 2990  1148
     jj_gen = 0;
 2991  1148
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 2992  1148
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 2993  1148
   }
 2994  
 
 2995  
   /** Reinitialise. */
 2996  
   public void ReInit(java.io.Reader stream) {
 2997  0
     jj_input_stream.ReInit(stream, 1, 1);
 2998  0
     token_source.ReInit(jj_input_stream);
 2999  0
     token = new Token();
 3000  0
     jj_ntk = -1;
 3001  0
     jj_gen = 0;
 3002  0
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 3003  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 3004  0
   }
 3005  
 
 3006  
   /** Constructor with generated Token Manager. */
 3007  0
   public OgnlParser(OgnlParserTokenManager tm) {
 3008  0
     token_source = tm;
 3009  0
     token = new Token();
 3010  0
     jj_ntk = -1;
 3011  0
     jj_gen = 0;
 3012  0
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 3013  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 3014  0
   }
 3015  
 
 3016  
   /** Reinitialise. */
 3017  
   public void ReInit(OgnlParserTokenManager tm) {
 3018  0
     token_source = tm;
 3019  0
     token = new Token();
 3020  0
     jj_ntk = -1;
 3021  0
     jj_gen = 0;
 3022  0
     for (int i = 0; i < 64; i++) jj_la1[i] = -1;
 3023  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 3024  0
   }
 3025  
 
 3026  
   private Token jj_consume_token(int kind) throws ParseException {
 3027  
     Token oldToken;
 3028  8275
     if ((oldToken = token).next != null) token = token.next;
 3029  556
     else token = token.next = token_source.getNextToken();
 3030  8275
     jj_ntk = -1;
 3031  8275
     if (token.kind == kind) {
 3032  8274
       jj_gen++;
 3033  8274
       if (++jj_gc > 100) {
 3034  4
         jj_gc = 0;
 3035  68
         for (int i = 0; i < jj_2_rtns.length; i++) {
 3036  64
           JJCalls c = jj_2_rtns[i];
 3037  128
           while (c != null) {
 3038  64
             if (c.gen < jj_gen) c.first = null;
 3039  64
             c = c.next;
 3040  
           }
 3041  
         }
 3042  
       }
 3043  8274
       return token;
 3044  
     }
 3045  1
     token = oldToken;
 3046  1
     jj_kind = kind;
 3047  1
     throw generateParseException();
 3048  
   }
 3049  
 
 3050  2296
   static private final class LookaheadSuccess extends java.lang.Error { }
 3051  1148
   final private LookaheadSuccess jj_ls = new LookaheadSuccess();
 3052  
   private boolean jj_scan_token(int kind) {
 3053  10555
     if (jj_scanpos == jj_lastpos) {
 3054  9187
       jj_la--;
 3055  9187
       if (jj_scanpos.next == null) {
 3056  1666
         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
 3057  
       } else {
 3058  7521
         jj_lastpos = jj_scanpos = jj_scanpos.next;
 3059  
       }
 3060  
     } else {
 3061  1368
       jj_scanpos = jj_scanpos.next;
 3062  
     }
 3063  10555
     if (jj_rescan) {
 3064  0
       int i = 0; Token tok = token;
 3065  0
       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
 3066  0
       if (tok != null) jj_add_error_token(kind, i);
 3067  
     }
 3068  10555
     if (jj_scanpos.kind != kind) return true;
 3069  2310
     if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
 3070  1738
     return false;
 3071  
   }
 3072  
 
 3073  
 
 3074  
 /** Get the next Token. */
 3075  
   final public Token getNextToken() {
 3076  0
     if (token.next != null) token = token.next;
 3077  0
     else token = token.next = token_source.getNextToken();
 3078  0
     jj_ntk = -1;
 3079  0
     jj_gen++;
 3080  0
     return token;
 3081  
   }
 3082  
 
 3083  
 /** Get the specific Token. */
 3084  
   final public Token getToken(int index) {
 3085  0
     Token t = token;
 3086  0
     for (int i = 0; i < index; i++) {
 3087  0
       if (t.next != null) t = t.next;
 3088  0
       else t = t.next = token_source.getNextToken();
 3089  
     }
 3090  0
     return t;
 3091  
   }
 3092  
 
 3093  
   private int jj_ntk() {
 3094  7213
     if ((jj_nt=token.next) == null)
 3095  6057
       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
 3096  
     else
 3097  1156
       return (jj_ntk = jj_nt.kind);
 3098  
   }
 3099  
 
 3100  1148
   private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
 3101  
   private int[] jj_expentry;
 3102  1148
   private int jj_kind = -1;
 3103  1148
   private int[] jj_lasttokens = new int[100];
 3104  
   private int jj_endpos;
 3105  
 
 3106  
   private void jj_add_error_token(int kind, int pos) {
 3107  1
     if (pos >= 100) return;
 3108  1
     if (pos == jj_endpos + 1) {
 3109  0
       jj_lasttokens[jj_endpos++] = kind;
 3110  1
     } else if (jj_endpos != 0) {
 3111  0
       jj_expentry = new int[jj_endpos];
 3112  0
       for (int i = 0; i < jj_endpos; i++) {
 3113  0
         jj_expentry[i] = jj_lasttokens[i];
 3114  
       }
 3115  0
       jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
 3116  0
         int[] oldentry = (int[])(it.next());
 3117  0
         if (oldentry.length == jj_expentry.length) {
 3118  0
           for (int i = 0; i < jj_expentry.length; i++) {
 3119  0
             if (oldentry[i] != jj_expentry[i]) {
 3120  0
               continue jj_entries_loop;
 3121  
             }
 3122  
           }
 3123  0
           jj_expentries.add(jj_expentry);
 3124  0
           break jj_entries_loop;
 3125  
         }
 3126  0
       }
 3127  0
       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
 3128  
     }
 3129  1
   }
 3130  
 
 3131  
   /** Generate ParseException. */
 3132  
   public ParseException generateParseException() {
 3133  1
     jj_expentries.clear();
 3134  1
     boolean[] la1tokens = new boolean[86];
 3135  1
     if (jj_kind >= 0) {
 3136  1
       la1tokens[jj_kind] = true;
 3137  1
       jj_kind = -1;
 3138  
     }
 3139  65
     for (int i = 0; i < 64; i++) {
 3140  64
       if (jj_la1[i] == jj_gen) {
 3141  495
         for (int j = 0; j < 32; j++) {
 3142  480
           if ((jj_la1_0[i] & (1<<j)) != 0) {
 3143  30
             la1tokens[j] = true;
 3144  
           }
 3145  480
           if ((jj_la1_1[i] & (1<<j)) != 0) {
 3146  12
             la1tokens[32+j] = true;
 3147  
           }
 3148  480
           if ((jj_la1_2[i] & (1<<j)) != 0) {
 3149  1
             la1tokens[64+j] = true;
 3150  
           }
 3151  
         }
 3152  
       }
 3153  
     }
 3154  87
     for (int i = 0; i < 86; i++) {
 3155  86
       if (la1tokens[i]) {
 3156  44
         jj_expentry = new int[1];
 3157  44
         jj_expentry[0] = i;
 3158  44
         jj_expentries.add(jj_expentry);
 3159  
       }
 3160  
     }
 3161  1
     jj_endpos = 0;
 3162  1
     jj_rescan_token();
 3163  1
     jj_add_error_token(0, 0);
 3164  1
     int[][] exptokseq = new int[jj_expentries.size()][];
 3165  45
     for (int i = 0; i < jj_expentries.size(); i++) {
 3166  44
       exptokseq[i] = jj_expentries.get(i);
 3167  
     }
 3168  1
     return new ParseException(token, exptokseq, tokenImage);
 3169  
   }
 3170  
 
 3171  
   /** Enable tracing. */
 3172  
   final public void enable_tracing() {
 3173  0
   }
 3174  
 
 3175  
   /** Disable tracing. */
 3176  
   final public void disable_tracing() {
 3177  0
   }
 3178  
 
 3179  
   private void jj_rescan_token() {
 3180  1
     jj_rescan = true;
 3181  17
     for (int i = 0; i < 16; i++) {
 3182  
     try {
 3183  16
       JJCalls p = jj_2_rtns[i];
 3184  
       do {
 3185  16
         if (p.gen > jj_gen) {
 3186  0
           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
 3187  0
           switch (i) {
 3188  0
             case 0: jj_3_1(); break;
 3189  0
             case 1: jj_3_2(); break;
 3190  0
             case 2: jj_3_3(); break;
 3191  0
             case 3: jj_3_4(); break;
 3192  0
             case 4: jj_3_5(); break;
 3193  0
             case 5: jj_3_6(); break;
 3194  0
             case 6: jj_3_7(); break;
 3195  0
             case 7: jj_3_8(); break;
 3196  0
             case 8: jj_3_9(); break;
 3197  0
             case 9: jj_3_10(); break;
 3198  0
             case 10: jj_3_11(); break;
 3199  0
             case 11: jj_3_12(); break;
 3200  0
             case 12: jj_3_13(); break;
 3201  0
             case 13: jj_3_14(); break;
 3202  0
             case 14: jj_3_15(); break;
 3203  0
             case 15: jj_3_16(); break;
 3204  
           }
 3205  
         }
 3206  16
         p = p.next;
 3207  16
       } while (p != null);
 3208  16
       } catch(LookaheadSuccess ls) { }
 3209  
     }
 3210  1
     jj_rescan = false;
 3211  1
   }
 3212  
 
 3213  
   private void jj_save(int index, int xla) {
 3214  7531
     JJCalls p = jj_2_rtns[index];
 3215  7531
     while (p.gen > jj_gen) {
 3216  0
       if (p.next == null) { p = p.next = new JJCalls(); break; }
 3217  0
       p = p.next;
 3218  
     }
 3219  7531
     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
 3220  7531
   }
 3221  
 
 3222  18368
   static final class JJCalls {
 3223  
     int gen;
 3224  
     Token first;
 3225  
     int arg;
 3226  
     JJCalls next;
 3227  
   }
 3228  
 
 3229  
 }