Clover coverage report - JBind Project
Coverage timestamp: Fr Mai 28 2004 11:17:36 CEST
file stats: LOC: 630   Methods: 44
NCLOC: 579   Classes: 2
This license of Clover is provided to support the development of JBind only. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover.
 
 Source file Conditionals Statements Methods TOTAL
XPathParser.java 30,8% 45,6% 72,7% 42,8%
 1   
 /* Generated By:JavaCC: Do not edit this line. XPathParser.java */
 2   
 package org.jbind.xml.schema.xpath;
 3   
 
 4   
 public class XPathParser implements XPathParserConstants {
 5   
 
 6  96
   final public void NameTest() throws ParseException {
 7  96
     switch (jj_nt.kind) {
 8   
     case 13:
 9  5
       jj_consume_token(13);
 10  5
       break;
 11   
     case NCName:
 12  91
       jj_consume_token(NCName);
 13  91
       switch (jj_nt.kind) {
 14   
       case 14:
 15  46
         jj_consume_token(14);
 16  46
         switch (jj_nt.kind) {
 17   
         case 13:
 18  0
           jj_consume_token(13);
 19  0
           break;
 20   
         case NCName:
 21  46
           jj_consume_token(NCName);
 22  46
           break;
 23   
         default:
 24  0
           jj_la1[0] = jj_gen;
 25  0
           jj_consume_token(-1);
 26  0
           throw new ParseException();
 27   
         }
 28  46
         break;
 29   
       default:
 30  45
         jj_la1[1] = jj_gen;
 31   
         ;
 32   
       }
 33  91
       break;
 34   
     default:
 35  0
       jj_la1[2] = jj_gen;
 36  0
       jj_consume_token(-1);
 37  0
       throw new ParseException();
 38   
     }
 39   
   }
 40   
 
 41  60
   final public void NodeTest() throws ParseException {
 42  60
     switch (jj_nt.kind) {
 43   
     case NCName:
 44   
     case 13:
 45  60
       NameTest();
 46  60
       break;
 47   
     case 15:
 48  0
       jj_consume_token(15);
 49  0
       break;
 50   
     default:
 51  0
       jj_la1[3] = jj_gen;
 52  0
       jj_consume_token(-1);
 53  0
       throw new ParseException();
 54   
     }
 55   
   }
 56   
 
 57  82
   final public void Step() throws ParseException {
 58  82
     switch (jj_nt.kind) {
 59   
     case NCName:
 60   
     case 13:
 61   
     case 15:
 62   
     case 17:
 63   
     case 18:
 64  60
       AxisSpecifier();
 65  60
       NodeTest();
 66  60
       break;
 67   
     case 16:
 68  22
       jj_consume_token(16);
 69  22
       break;
 70   
     default:
 71  0
       jj_la1[4] = jj_gen;
 72  0
       jj_consume_token(-1);
 73  0
       throw new ParseException();
 74   
     }
 75   
   }
 76   
 
 77  60
   final public void AxisSpecifier() throws ParseException {
 78  60
     switch (jj_nt.kind) {
 79   
     case 17:
 80   
     case 18:
 81  0
       switch (jj_nt.kind) {
 82   
       case 17:
 83  0
         jj_consume_token(17);
 84  0
         break;
 85   
       case 18:
 86  0
         jj_consume_token(18);
 87  0
         break;
 88   
       default:
 89  0
         jj_la1[5] = jj_gen;
 90  0
         jj_consume_token(-1);
 91  0
         throw new ParseException();
 92   
       }
 93  0
       break;
 94   
     default:
 95  60
       jj_la1[6] = jj_gen;
 96   
       ;
 97   
     }
 98   
   }
 99   
 
 100  22
   final public void PathStart() throws ParseException {
 101  22
     switch (jj_nt.kind) {
 102   
     case 19:
 103  22
       jj_consume_token(19);
 104  22
       break;
 105   
     case 20:
 106  0
       jj_consume_token(20);
 107  0
       break;
 108   
     case 21:
 109  0
       jj_consume_token(21);
 110  0
       break;
 111   
     case 22:
 112  0
       jj_consume_token(22);
 113  0
       break;
 114   
     default:
 115  0
       jj_la1[7] = jj_gen;
 116  0
       jj_consume_token(-1);
 117  0
       throw new ParseException();
 118   
     }
 119   
   }
 120   
 
 121  57
   final public void SelectorPath() throws ParseException {
 122  57
     switch (jj_nt.kind) {
 123   
     case 19:
 124   
     case 20:
 125   
     case 21:
 126   
     case 22:
 127  22
       PathStart();
 128  22
       break;
 129   
     default:
 130  35
       jj_la1[8] = jj_gen;
 131   
       ;
 132   
     }
 133  57
     Step();
 134  57
     label_1:
 135   
     while (true) {
 136  66
       switch (jj_nt.kind) {
 137   
       case 23:
 138   
         ;
 139  9
         break;
 140   
       default:
 141  57
         jj_la1[9] = jj_gen;
 142  57
         break label_1;
 143   
       }
 144  9
       jj_consume_token(23);
 145  9
       Step();
 146   
     }
 147   
   }
 148   
 
 149  47
   final public void Selector() throws ParseException {
 150  47
     SelectorPath();
 151  47
     label_2:
 152   
     while (true) {
 153  57
       switch (jj_nt.kind) {
 154   
       case 24:
 155   
         ;
 156  10
         break;
 157   
       default:
 158  47
         jj_la1[10] = jj_gen;
 159  47
         break label_2;
 160   
       }
 161  10
       jj_consume_token(24);
 162  10
       SelectorPath();
 163   
     }
 164  47
     jj_consume_token(0);
 165   
   }
 166   
 
 167  52
   final public void FinalFieldStep() throws ParseException {
 168  52
     switch (jj_nt.kind) {
 169   
     case NCName:
 170   
     case 13:
 171   
     case 15:
 172   
     case 16:
 173   
     case 17:
 174   
     case 18:
 175  16
       Step();
 176  16
       break;
 177   
     case 25:
 178   
     case 26:
 179  36
       switch (jj_nt.kind) {
 180   
       case 25:
 181  36
         jj_consume_token(25);
 182  36
         break;
 183   
       case 26:
 184  0
         jj_consume_token(26);
 185  0
         break;
 186   
       default:
 187  0
         jj_la1[11] = jj_gen;
 188  0
         jj_consume_token(-1);
 189  0
         throw new ParseException();
 190   
       }
 191  36
       NameTest();
 192  36
       break;
 193   
     default:
 194  0
       jj_la1[12] = jj_gen;
 195  0
       jj_consume_token(-1);
 196  0
       throw new ParseException();
 197   
     }
 198   
   }
 199   
 
 200  52
   final public void FieldPath() throws ParseException {
 201  52
     switch (jj_nt.kind) {
 202   
     case 19:
 203   
     case 20:
 204   
     case 21:
 205   
     case 22:
 206  0
       PathStart();
 207  0
       break;
 208   
     default:
 209  52
       jj_la1[13] = jj_gen;
 210   
       ;
 211   
     }
 212  52
     label_3:
 213   
     while (true) {
 214  52
       if (jj_2_1(2147483647)) {
 215   
         ;
 216   
       } else {
 217  52
         break label_3;
 218   
       }
 219  0
       Step();
 220  0
       jj_consume_token(23);
 221   
     }
 222  52
     FinalFieldStep();
 223   
   }
 224   
 
 225  50
   final public void Field() throws ParseException {
 226  50
     FieldPath();
 227  50
     label_4:
 228   
     while (true) {
 229  52
       switch (jj_nt.kind) {
 230   
       case 24:
 231   
         ;
 232  2
         break;
 233   
       default:
 234  50
         jj_la1[14] = jj_gen;
 235  50
         break label_4;
 236   
       }
 237  2
       jj_consume_token(24);
 238  2
       FieldPath();
 239   
     }
 240  50
     jj_consume_token(0);
 241   
   }
 242   
 
 243  52
   final private boolean jj_2_1(int xla) {
 244  52
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 245  52
     boolean retval = !jj_3_1();
 246  52
     jj_save(0, xla);
 247  52
     return retval;
 248   
   }
 249   
 
 250  3
   final private boolean jj_3R_20() {
 251  0
     if (jj_scan_token(NCName)) return true;
 252  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 253  3
     return false;
 254   
   }
 255   
 
 256  52
   final private boolean jj_3R_17() {
 257  45
     if (jj_scan_token(NCName)) return true;
 258  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 259  7
     Token xsp;
 260  7
     xsp = jj_scanpos;
 261  4
     if (jj_3R_18()) jj_scanpos = xsp;
 262  0
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 263  7
     return false;
 264   
   }
 265   
 
 266  52
   final private boolean jj_3R_14() {
 267  52
     if (jj_scan_token(18)) return true;
 268  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 269  0
     return false;
 270   
   }
 271   
 
 272  52
   final private boolean jj_3R_9() {
 273  52
     Token xsp;
 274  52
     xsp = jj_scanpos;
 275  52
     if (jj_3R_11()) {
 276  45
     jj_scanpos = xsp;
 277  45
     if (jj_3R_12()) return true;
 278  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 279  0
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 280  7
     return false;
 281   
   }
 282   
 
 283  52
   final private boolean jj_3R_11() {
 284  45
     if (jj_3R_15()) return true;
 285  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 286  7
     return false;
 287   
   }
 288   
 
 289  52
   final private boolean jj_3_1() {
 290  36
     if (jj_3R_5()) return true;
 291  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 292  16
     if (jj_scan_token(23)) return true;
 293  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 294  0
     return false;
 295   
   }
 296   
 
 297  3
   final private boolean jj_3R_19() {
 298  3
     if (jj_scan_token(13)) return true;
 299  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 300  0
     return false;
 301   
   }
 302   
 
 303  52
   final private boolean jj_3R_16() {
 304  52
     if (jj_scan_token(13)) return true;
 305  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 306  0
     return false;
 307   
   }
 308   
 
 309  52
   final private boolean jj_3R_15() {
 310  52
     Token xsp;
 311  52
     xsp = jj_scanpos;
 312  52
     if (jj_3R_16()) {
 313  52
     jj_scanpos = xsp;
 314  45
     if (jj_3R_17()) return true;
 315  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 316  0
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 317  7
     return false;
 318   
   }
 319   
 
 320  45
   final private boolean jj_3R_7() {
 321  36
     if (jj_scan_token(16)) return true;
 322  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 323  9
     return false;
 324   
   }
 325   
 
 326  45
   final private boolean jj_3R_12() {
 327  45
     if (jj_scan_token(15)) return true;
 328  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 329  0
     return false;
 330   
   }
 331   
 
 332  7
   final private boolean jj_3R_18() {
 333  4
     if (jj_scan_token(14)) return true;
 334  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 335  3
     Token xsp;
 336  3
     xsp = jj_scanpos;
 337  3
     if (jj_3R_19()) {
 338  3
     jj_scanpos = xsp;
 339  0
     if (jj_3R_20()) return true;
 340  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 341  0
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 342  3
     return false;
 343   
   }
 344   
 
 345  52
   final private boolean jj_3R_13() {
 346  52
     if (jj_scan_token(17)) return true;
 347  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 348  0
     return false;
 349   
   }
 350   
 
 351  52
   final private boolean jj_3R_10() {
 352  52
     Token xsp;
 353  52
     xsp = jj_scanpos;
 354  52
     if (jj_3R_13()) {
 355  52
     jj_scanpos = xsp;
 356  52
     if (jj_3R_14()) return true;
 357  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 358  0
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 359  0
     return false;
 360   
   }
 361   
 
 362  52
   final private boolean jj_3R_8() {
 363  52
     Token xsp;
 364  52
     xsp = jj_scanpos;
 365  52
     if (jj_3R_10()) jj_scanpos = xsp;
 366  0
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 367  52
     return false;
 368   
   }
 369   
 
 370  52
   final private boolean jj_3R_5() {
 371  52
     Token xsp;
 372  52
     xsp = jj_scanpos;
 373  52
     if (jj_3R_6()) {
 374  45
     jj_scanpos = xsp;
 375  36
     if (jj_3R_7()) return true;
 376  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 377  0
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 378  16
     return false;
 379   
   }
 380   
 
 381  52
   final private boolean jj_3R_6() {
 382  0
     if (jj_3R_8()) return true;
 383  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 384  45
     if (jj_3R_9()) return true;
 385  0
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 386  7
     return false;
 387   
   }
 388   
 
 389   
   public XPathParserTokenManager token_source;
 390   
   SimpleCharStream jj_input_stream;
 391   
   public Token token, jj_nt;
 392   
   private Token jj_scanpos, jj_lastpos;
 393   
   private int jj_la;
 394   
   public boolean lookingAhead = false;
 395   
   private boolean jj_semLA;
 396   
   private int jj_gen;
 397   
   final private int[] jj_la1 = new int[15];
 398   
   final private int[] jj_la1_0 = {0x2020,0x4000,0x2020,0xa020,0x7a020,0x60000,0x60000,0x780000,0x780000,0x800000,0x1000000,0x6000000,0x607a020,0x780000,0x1000000,};
 399   
   final private JJCalls[] jj_2_rtns = new JJCalls[1];
 400   
   private boolean jj_rescan = false;
 401   
   private int jj_gc = 0;
 402   
 
 403  0
   public XPathParser(java.io.InputStream stream) {
 404  0
     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 405  0
     token_source = new XPathParserTokenManager(jj_input_stream);
 406  0
     token = new Token();
 407  0
     token.next = jj_nt = token_source.getNextToken();
 408  0
     jj_gen = 0;
 409  0
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 410  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 411   
   }
 412   
 
 413  0
   public void ReInit(java.io.InputStream stream) {
 414  0
     jj_input_stream.ReInit(stream, 1, 1);
 415  0
     token_source.ReInit(jj_input_stream);
 416  0
     token = new Token();
 417  0
     token.next = jj_nt = token_source.getNextToken();
 418  0
     jj_gen = 0;
 419  0
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 420  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 421   
   }
 422   
 
 423  97
   public XPathParser(java.io.Reader stream) {
 424  97
     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 425  97
     token_source = new XPathParserTokenManager(jj_input_stream);
 426  97
     token = new Token();
 427  97
     token.next = jj_nt = token_source.getNextToken();
 428  97
     jj_gen = 0;
 429  1455
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 430  97
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 431   
   }
 432   
 
 433  0
   public void ReInit(java.io.Reader stream) {
 434  0
     jj_input_stream.ReInit(stream, 1, 1);
 435  0
     token_source.ReInit(jj_input_stream);
 436  0
     token = new Token();
 437  0
     token.next = jj_nt = token_source.getNextToken();
 438  0
     jj_gen = 0;
 439  0
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 440  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 441   
   }
 442   
 
 443  0
   public XPathParser(XPathParserTokenManager tm) {
 444  0
     token_source = tm;
 445  0
     token = new Token();
 446  0
     token.next = jj_nt = token_source.getNextToken();
 447  0
     jj_gen = 0;
 448  0
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 449  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 450   
   }
 451   
 
 452  0
   public void ReInit(XPathParserTokenManager tm) {
 453  0
     token_source = tm;
 454  0
     token = new Token();
 455  0
     token.next = jj_nt = token_source.getNextToken();
 456  0
     jj_gen = 0;
 457  0
     for (int i = 0; i < 15; i++) jj_la1[i] = -1;
 458  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 459   
   }
 460   
 
 461  386
   final private Token jj_consume_token(int kind) throws ParseException {
 462  386
     Token oldToken = token;
 463  ?
     if ((token = jj_nt).next != null) jj_nt = jj_nt.next;
 464  364
     else jj_nt = jj_nt.next = token_source.getNextToken();
 465  386
     if (token.kind == kind) {
 466  386
       jj_gen++;
 467  386
       if (++jj_gc > 100) {
 468  0
         jj_gc = 0;
 469  0
         for (int i = 0; i < jj_2_rtns.length; i++) {
 470  0
           JJCalls c = jj_2_rtns[i];
 471  0
           while (c != null) {
 472  0
             if (c.gen < jj_gen) c.first = null;
 473  0
             c = c.next;
 474   
           }
 475   
         }
 476   
       }
 477  386
       return token;
 478   
     }
 479  0
     jj_nt = token;
 480  0
     token = oldToken;
 481  0
     jj_kind = kind;
 482  0
     throw generateParseException();
 483   
   }
 484   
 
 485  327
   final private boolean jj_scan_token(int kind) {
 486  327
     if (jj_scanpos == jj_lastpos) {
 487  74
       jj_la--;
 488  74
       if (jj_scanpos.next == null) {
 489  22
         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
 490   
       } else {
 491  52
         jj_lastpos = jj_scanpos = jj_scanpos.next;
 492   
       }
 493   
     } else {
 494  253
       jj_scanpos = jj_scanpos.next;
 495   
     }
 496  327
     if (jj_rescan) {
 497  0
       int i = 0; Token tok = token;
 498  0
       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
 499  0
       if (tok != null) jj_add_error_token(kind, i);
 500   
     }
 501  327
     return (jj_scanpos.kind != kind);
 502   
   }
 503   
 
 504  0
   final public Token getNextToken() {
 505  0
     if ((token = jj_nt).next != null) jj_nt = jj_nt.next;
 506  0
     else jj_nt = jj_nt.next = token_source.getNextToken();
 507  0
     jj_gen++;
 508  0
     return token;
 509   
   }
 510   
 
 511  0
   final public Token getToken(int index) {
 512  0
     Token t = lookingAhead ? jj_scanpos : token;
 513  0
     for (int i = 0; i < index; i++) {
 514  0
       if (t.next != null) t = t.next;
 515  0
       else t = t.next = token_source.getNextToken();
 516   
     }
 517  0
     return t;
 518   
   }
 519   
 
 520   
   private java.util.Vector jj_expentries = new java.util.Vector();
 521   
   private int[] jj_expentry;
 522   
   private int jj_kind = -1;
 523   
   private int[] jj_lasttokens = new int[100];
 524   
   private int jj_endpos;
 525   
 
 526  0
   private void jj_add_error_token(int kind, int pos) {
 527  0
     if (pos >= 100) return;
 528  0
     if (pos == jj_endpos + 1) {
 529  0
       jj_lasttokens[jj_endpos++] = kind;
 530  0
     } else if (jj_endpos != 0) {
 531  0
       jj_expentry = new int[jj_endpos];
 532  0
       for (int i = 0; i < jj_endpos; i++) {
 533  0
         jj_expentry[i] = jj_lasttokens[i];
 534   
       }
 535  0
       boolean exists = false;
 536  0
       for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
 537  0
         int[] oldentry = (int[])(enum.nextElement());
 538  0
         if (oldentry.length == jj_expentry.length) {
 539  0
           exists = true;
 540  0
           for (int i = 0; i < jj_expentry.length; i++) {
 541  0
             if (oldentry[i] != jj_expentry[i]) {
 542  0
               exists = false;
 543  0
               break;
 544   
             }
 545   
           }
 546  0
           if (exists) break;
 547   
         }
 548   
       }
 549  0
       if (!exists) jj_expentries.addElement(jj_expentry);
 550  0
       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
 551   
     }
 552   
   }
 553   
 
 554  0
   final public ParseException generateParseException() {
 555  0
     jj_expentries.removeAllElements();
 556  0
     boolean[] la1tokens = new boolean[27];
 557  0
     for (int i = 0; i < 27; i++) {
 558  0
       la1tokens[i] = false;
 559   
     }
 560  0
     if (jj_kind >= 0) {
 561  0
       la1tokens[jj_kind] = true;
 562  0
       jj_kind = -1;
 563   
     }
 564  0
     for (int i = 0; i < 15; i++) {
 565  0
       if (jj_la1[i] == jj_gen) {
 566  0
         for (int j = 0; j < 32; j++) {
 567  0
           if ((jj_la1_0[i] & (1<<j)) != 0) {
 568  0
             la1tokens[j] = true;
 569   
           }
 570   
         }
 571   
       }
 572   
     }
 573  0
     for (int i = 0; i < 27; i++) {
 574  0
       if (la1tokens[i]) {
 575  0
         jj_expentry = new int[1];
 576  0
         jj_expentry[0] = i;
 577  0
         jj_expentries.addElement(jj_expentry);
 578   
       }
 579   
     }
 580  0
     jj_endpos = 0;
 581  0
     jj_rescan_token();
 582  0
     jj_add_error_token(0, 0);
 583  0
     int[][] exptokseq = new int[jj_expentries.size()][];
 584  0
     for (int i = 0; i < jj_expentries.size(); i++) {
 585  0
       exptokseq[i] = (int[])jj_expentries.elementAt(i);
 586   
     }
 587  0
     return new ParseException(token, exptokseq, tokenImage);
 588   
   }
 589   
 
 590  0
   final public void enable_tracing() {
 591   
   }
 592   
 
 593  0
   final public void disable_tracing() {
 594   
   }
 595   
 
 596  0
   final private void jj_rescan_token() {
 597  0
     jj_rescan = true;
 598  0
     for (int i = 0; i < 1; i++) {
 599  0
       JJCalls p = jj_2_rtns[i];
 600  0
       do {
 601  0
         if (p.gen > jj_gen) {
 602  0
           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
 603  0
           switch (i) {
 604  0
             case 0: jj_3_1(); break;
 605   
           }
 606   
         }
 607  0
         p = p.next;
 608  0
       } while (p != null);
 609   
     }
 610  0
     jj_rescan = false;
 611   
   }
 612   
 
 613  52
   final private void jj_save(int index, int xla) {
 614  52
     JJCalls p = jj_2_rtns[index];
 615  52
     while (p.gen > jj_gen) {
 616  0
       if (p.next == null) { p = p.next = new JJCalls(); break; }
 617  0
       p = p.next;
 618   
     }
 619  52
     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
 620   
   }
 621   
 
 622   
   static final class JJCalls {
 623   
     int gen;
 624   
     Token first;
 625   
     int arg;
 626   
     JJCalls next;
 627   
   }
 628   
 
 629   
 }
 630