Coverage Report - org.webslinger.ext.wiki.parser.Wiki
 
Classes in this File Line Coverage Branch Coverage Complexity
Wiki
31%
797/2590
38%
238/629
6.88
Wiki$1
N/A
N/A
6.88
Wiki$JJCalls
100%
1/1
N/A
6.88
Wiki$LookaheadSuccess
100%
1/1
N/A
6.88
 
 1  
 /* Generated By:JJTree&JavaCC: Do not edit this line. Wiki.java */
 2  
 package org.webslinger.ext.wiki.parser;
 3  
 
 4  
 import java.io.*;
 5  
 import java.util.LinkedList;
 6  
 
 7  
 import org.webslinger.javacc.support.AbstractParser;
 8  
 import org.webslinger.javacc.support.CloseTokenFoundException;
 9  
 
 10  
 public class Wiki extends AbstractParser/*@bgen(jjtree)*/implements WikiTreeConstants, WikiConstants {/*@bgen(jjtree)*/
 11  3
   protected JJTWikiState jjtree = new JJTWikiState();{
 12  3
         closeTokens = new int[tokenImage.length];
 13  
     }
 14  
 
 15  
     public Wiki(String fileName) {
 16  0
         this(System.in);
 17  0
         try { ReInit(new FileInputStream(new File(fileName))); }
 18  0
         catch(Exception e) { e.printStackTrace(); }
 19  
 //        allowed[TEXT] = 1;
 20  
 //        allowed[FIRST_COLUMN_TEXT] = 1;
 21  0
     }
 22  
 
 23  
     protected int getNextTokenKind() {
 24  0
         return getNextToken().kind;
 25  
     }
 26  
 
 27  
     protected boolean isEOFKind(int kind) {
 28  0
         return kind == EOF;
 29  
     }
 30  
 
 31  
     protected Node flushNodes() {
 32  0
         if (jjtree.nodeArity() == 0) return null;
 33  0
         Node node = jjtree.popNode();
 34  0
         while (jjtree.nodeArity() > 0) jjtree.popNode();
 35  0
         return node;
 36  
     }
 37  
 
 38  
     protected boolean isTableToken(Token token) {
 39  0
         switch (token.kind) {
 40  
             case PIPE:
 41  
             case NEW_TABLE_ROW_DIVIDER:
 42  
             case NEW_TABLE_END:
 43  
             case NEW_TABLE_CAPTION:
 44  0
                 return true;
 45  
             case EXP:
 46  0
                 return token.image.length() == 1;
 47  
         }
 48  0
         return false;
 49  
     }
 50  
 
 51  
     protected void jjtreeOpenNodeScope(Object n) {
 52  207
         super.jjtreeOpenNodeScope(n);
 53  
         //System.err.println("open(" + n + ')' + getToken(1));
 54  207
         ((SimpleNode)n).firstToken = getToken(1);
 55  207
     }
 56  
 
 57  
     protected void jjtreeCloseNodeScope(Object n) {
 58  206
         super.jjtreeCloseNodeScope(n);
 59  
         //System.err.println("close(" + n + ')' + getToken(0));
 60  206
         ((SimpleNode)n).setLastToken(getToken(0));
 61  206
     }
 62  
 
 63  
   final public WikiPage Page() throws ParseException {
 64  
  /*@bgen(jjtree) Page */
 65  3
   WikiPage jjtn000 = new WikiPage(this, JJTPAGE);
 66  3
   boolean jjtc000 = true;
 67  3
   jjtree.openNodeScope(jjtn000);
 68  3
   jjtreeOpenNodeScope(jjtn000);
 69  
     try {
 70  
       try {
 71  3
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 72  
         case NEWLINE:
 73  1
           Newline();
 74  1
           break;
 75  
         default:
 76  2
           jj_la1[0] = jj_gen;
 77  
           ;
 78  
         }
 79  
         label_1:
 80  
         while (true) {
 81  3
           PageContent();
 82  3
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 83  
           case DOC:
 84  
           case DCC:
 85  
           case OSQ:
 86  
           case DU:
 87  
           case DSQ:
 88  
           case D_BSLASH:
 89  
           case HR:
 90  
           case TRANSCLUDE_START:
 91  
           case ESCAPED_SQUARE:
 92  
           case EMPTY_LINK:
 93  
           case PIPE:
 94  
           case CONTROL_START:
 95  
           case NEW_TABLE_START:
 96  
           case DPIPE:
 97  
           case EXP:
 98  
           case EXP_START:
 99  
           case SPACE:
 100  
           case TOC:
 101  
           case STAR:
 102  
           case PLUS:
 103  
           case DIV_STYLE_START:
 104  
           case DPERCENT:
 105  
           case DEF_START:
 106  
           case IDENTIFIER:
 107  
           case FIRST_COLUMN_TEXT:
 108  
           case TEXT:
 109  
             ;
 110  0
             break;
 111  
           default:
 112  3
             jj_la1[1] = jj_gen;
 113  3
             break label_1;
 114  
           }
 115  
         }
 116  
         label_2:
 117  
         while (true) {
 118  35
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 119  
           case NEWLINE:
 120  
             ;
 121  32
             break;
 122  
           default:
 123  3
             jj_la1[2] = jj_gen;
 124  3
             break label_2;
 125  
           }
 126  32
           Newline();
 127  32
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 128  
           case DOC:
 129  
           case DCC:
 130  
           case OSQ:
 131  
           case DU:
 132  
           case DSQ:
 133  
           case D_BSLASH:
 134  
           case HR:
 135  
           case TRANSCLUDE_START:
 136  
           case ESCAPED_SQUARE:
 137  
           case EMPTY_LINK:
 138  
           case PIPE:
 139  
           case CONTROL_START:
 140  
           case NEW_TABLE_START:
 141  
           case DPIPE:
 142  
           case EXP:
 143  
           case EXP_START:
 144  
           case SPACE:
 145  
           case TOC:
 146  
           case STAR:
 147  
           case PLUS:
 148  
           case DIV_STYLE_START:
 149  
           case DPERCENT:
 150  
           case DEF_START:
 151  
           case IDENTIFIER:
 152  
           case FIRST_COLUMN_TEXT:
 153  
           case TEXT:
 154  
             label_3:
 155  
             while (true) {
 156  29
               PageContent();
 157  29
               switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 158  
               case DOC:
 159  
               case DCC:
 160  
               case OSQ:
 161  
               case DU:
 162  
               case DSQ:
 163  
               case D_BSLASH:
 164  
               case HR:
 165  
               case TRANSCLUDE_START:
 166  
               case ESCAPED_SQUARE:
 167  
               case EMPTY_LINK:
 168  
               case PIPE:
 169  
               case CONTROL_START:
 170  
               case NEW_TABLE_START:
 171  
               case DPIPE:
 172  
               case EXP:
 173  
               case EXP_START:
 174  
               case SPACE:
 175  
               case TOC:
 176  
               case STAR:
 177  
               case PLUS:
 178  
               case DIV_STYLE_START:
 179  
               case DPERCENT:
 180  
               case DEF_START:
 181  
               case IDENTIFIER:
 182  
               case FIRST_COLUMN_TEXT:
 183  
               case TEXT:
 184  
                 ;
 185  0
                 break;
 186  
               default:
 187  29
                 jj_la1[3] = jj_gen;
 188  29
                 break label_3;
 189  
               }
 190  
             }
 191  
             break;
 192  
           default:
 193  3
             jj_la1[4] = jj_gen;
 194  
             ;
 195  
           }
 196  
         }
 197  3
         jj_consume_token(0);
 198  0
       } catch (TokenMgrError e) {
 199  
     //hadError = true;
 200  
     //flushNodes();
 201  
     // Exception in thread "main" wiki.TokenMgrError: Lexical error at line 51, column 15.  Encountered: <EOF> after : ""
 202  0
     switch (e.errorCode) {
 203  
       case TokenMgrError.LOOP_DETECTED:
 204  
       case TokenMgrError.INVALID_LEXICAL_STATE:
 205  0
         {if (true) throw e;}
 206  
     }
 207  0
     ParseError(null, "Invalid character", null, -1, null);
 208  0
       } catch (ParseException e) {
 209  0
     handleException(e);
 210  3
       }
 211  3
       jj_consume_token(0);
 212  3
     jjtree.closeNodeScope(jjtn000, true);
 213  3
     jjtc000 = false;
 214  3
     jjtreeCloseNodeScope(jjtn000);
 215  3
     {if (true) return jjtn000;}
 216  0
     } catch (Throwable jjte000) {
 217  0
     if (jjtc000) {
 218  0
       jjtree.clearNodeScope(jjtn000);
 219  0
       jjtc000 = false;
 220  
     } else {
 221  0
       jjtree.popNode();
 222  
     }
 223  0
     if (jjte000 instanceof RuntimeException) {
 224  0
       {if (true) throw (RuntimeException)jjte000;}
 225  
     }
 226  0
     if (jjte000 instanceof ParseException) {
 227  0
       {if (true) throw (ParseException)jjte000;}
 228  
     }
 229  0
     {if (true) throw (Error)jjte000;}
 230  
     } finally {
 231  3
     if (jjtc000) {
 232  0
       jjtree.closeNodeScope(jjtn000, true);
 233  0
       jjtreeCloseNodeScope(jjtn000);
 234  
     }
 235  
     }
 236  
     throw new Error("Missing return statement in function");
 237  
   }
 238  
 
 239  
   void Paragraph() throws ParseException {
 240  
                   /*@bgen(jjtree) Paragraph */
 241  0
 WikiParagraph jjtn000 = new WikiParagraph(this, JJTPARAGRAPH);
 242  0
 boolean jjtc000 = true;
 243  0
 jjtree.openNodeScope(jjtn000);
 244  0
 jjtreeOpenNodeScope(jjtn000);
 245  
 try {             /*@bgen(jjtree)*/
 246  
 } finally {
 247  0
   if (jjtc000) {
 248  0
     jjtree.closeNodeScope(jjtn000, true);
 249  0
     jjtreeCloseNodeScope(jjtn000);
 250  
   }
 251  
 }
 252  0
   }
 253  
 
 254  
   void OrderedList() throws ParseException {
 255  
                     /*@bgen(jjtree) OrderedList */
 256  0
 WikiOrderedList jjtn000 = new WikiOrderedList(this, JJTORDEREDLIST);
 257  0
 boolean jjtc000 = true;
 258  0
 jjtree.openNodeScope(jjtn000);
 259  0
 jjtreeOpenNodeScope(jjtn000);
 260  
 try {               /*@bgen(jjtree)*/
 261  
 } finally {
 262  0
   if (jjtc000) {
 263  0
     jjtree.closeNodeScope(jjtn000, true);
 264  0
     jjtreeCloseNodeScope(jjtn000);
 265  
   }
 266  
 }
 267  0
   }
 268  
 
 269  
   void UnorderedList() throws ParseException {
 270  
                       /*@bgen(jjtree) UnorderedList */
 271  0
 WikiUnorderedList jjtn000 = new WikiUnorderedList(this, JJTUNORDEREDLIST);
 272  0
 boolean jjtc000 = true;
 273  0
 jjtree.openNodeScope(jjtn000);
 274  0
 jjtreeOpenNodeScope(jjtn000);
 275  
 try {                 /*@bgen(jjtree)*/
 276  
 } finally {
 277  0
   if (jjtc000) {
 278  0
     jjtree.closeNodeScope(jjtn000, true);
 279  0
     jjtreeCloseNodeScope(jjtn000);
 280  
   }
 281  
 }
 282  0
   }
 283  
 
 284  
   void ListItem() throws ParseException {
 285  
                  /*@bgen(jjtree) ListItem */
 286  0
 WikiListItem jjtn000 = new WikiListItem(this, JJTLISTITEM);
 287  0
 boolean jjtc000 = true;
 288  0
 jjtree.openNodeScope(jjtn000);
 289  0
 jjtreeOpenNodeScope(jjtn000);
 290  
 try {            /*@bgen(jjtree)*/
 291  
 } finally {
 292  0
   if (jjtc000) {
 293  0
     jjtree.closeNodeScope(jjtn000, true);
 294  0
     jjtreeCloseNodeScope(jjtn000);
 295  
   }
 296  
 }
 297  0
   }
 298  
 
 299  
   final public void MakeNextTokenText() throws ParseException {
 300  
  /*@bgen(jjtree) Text */
 301  1
   WikiText jjtn000 = new WikiText(this, JJTTEXT);
 302  1
   boolean jjtc000 = true;
 303  1
   jjtree.openNodeScope(jjtn000);
 304  1
   jjtreeOpenNodeScope(jjtn000);Token t = getToken(1);
 305  1
   checkCloseToken(t.kind);
 306  
     try {
 307  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 308  
       case DCC:
 309  0
         jj_consume_token(DCC);
 310  0
         break;
 311  
       case PIPE:
 312  0
         jj_consume_token(PIPE);
 313  0
         break;
 314  
       case DPIPE:
 315  0
         jj_consume_token(DPIPE);
 316  0
         break;
 317  
       default:
 318  0
         jj_la1[5] = jj_gen;
 319  0
         jj_consume_token(-1);
 320  0
         throw new ParseException();
 321  
       }
 322  0
     jjtree.closeNodeScope(jjtn000, true);
 323  0
     jjtc000 = false;
 324  0
     jjtreeCloseNodeScope(jjtn000);
 325  0
     jjtn000.setText(t.image);
 326  
     } finally {
 327  0
     if (jjtc000) {
 328  0
       jjtree.closeNodeScope(jjtn000, true);
 329  0
       jjtreeCloseNodeScope(jjtn000);
 330  
     }
 331  
     }
 332  0
   }
 333  
 
 334  
   final public void Newline() throws ParseException {
 335  
  /*@bgen(jjtree) Newline */
 336  33
   WikiNewline jjtn000 = new WikiNewline(this, JJTNEWLINE);
 337  33
   boolean jjtc000 = true;
 338  33
   jjtree.openNodeScope(jjtn000);
 339  33
   jjtreeOpenNodeScope(jjtn000);int count = 0;
 340  
     try {
 341  
       label_4:
 342  
       while (true) {
 343  40
         jj_consume_token(NEWLINE);
 344  40
                             count++;
 345  40
         if (jj_2_1(2)) {
 346  
           ;
 347  
         } else {
 348  
           break label_4;
 349  
         }
 350  
       }
 351  33
     jjtree.closeNodeScope(jjtn000, true);
 352  33
     jjtc000 = false;
 353  33
     jjtreeCloseNodeScope(jjtn000);
 354  33
     jjtn000.setCount(count);
 355  
     } finally {
 356  33
     if (jjtc000) {
 357  0
       jjtree.closeNodeScope(jjtn000, true);
 358  0
       jjtreeCloseNodeScope(jjtn000);
 359  
     }
 360  
     }
 361  33
   }
 362  
 
 363  
   final public void PageContent() throws ParseException {
 364  34
     if (jj_2_2(3)) {
 365  11
       StartOfLine();
 366  
     } else {
 367  23
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 368  
       case DOC:
 369  
       case DCC:
 370  
       case OSQ:
 371  
       case DU:
 372  
       case DSQ:
 373  
       case D_BSLASH:
 374  
       case HR:
 375  
       case TRANSCLUDE_START:
 376  
       case ESCAPED_SQUARE:
 377  
       case EMPTY_LINK:
 378  
       case PIPE:
 379  
       case CONTROL_START:
 380  
       case DPIPE:
 381  
       case EXP_START:
 382  
       case SPACE:
 383  
       case IDENTIFIER:
 384  
       case FIRST_COLUMN_TEXT:
 385  
       case TEXT:
 386  23
         Inline();
 387  23
         break;
 388  
       default:
 389  0
         jj_la1[6] = jj_gen;
 390  0
         jj_consume_token(-1);
 391  0
         throw new ParseException();
 392  
       }
 393  
     }
 394  34
   }
 395  
 
 396  
   final public void StartOfLine() throws ParseException {
 397  11
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 398  
     case DIV_STYLE_START:
 399  
     case DPERCENT:
 400  2
       Div();
 401  2
       break;
 402  
     case EXP:
 403  5
       Header();
 404  5
       break;
 405  
     case STAR:
 406  
     case PLUS:
 407  1
       List();
 408  1
       break;
 409  
     case TOC:
 410  1
       Pre();
 411  1
       break;
 412  
     case PIPE:
 413  
     case DPIPE:
 414  1
       OldTable();
 415  1
       break;
 416  
     case DEF_START:
 417  1
       Term();
 418  1
       break;
 419  
     case NEW_TABLE_START:
 420  0
       NewTable();
 421  0
       break;
 422  
     default:
 423  0
       jj_la1[7] = jj_gen;
 424  0
       jj_consume_token(-1);
 425  0
       throw new ParseException();
 426  
     }
 427  11
   }
 428  
 
 429  
   final public void Div() throws ParseException {
 430  2
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 431  
     case DPERCENT:
 432  1
       DivClass();
 433  1
       break;
 434  
     case DIV_STYLE_START:
 435  1
       DivStyle();
 436  1
       break;
 437  
     default:
 438  0
       jj_la1[8] = jj_gen;
 439  0
       jj_consume_token(-1);
 440  0
       throw new ParseException();
 441  
     }
 442  2
   }
 443  
 
 444  
   final public void DivClass() throws ParseException {
 445  
  /*@bgen(jjtree) #DivClass( ! hadError) */
 446  1
   WikiDivClass jjtn000 = new WikiDivClass(this, JJTDIVCLASS);
 447  1
   boolean jjtc000 = true;
 448  1
   jjtree.openNodeScope(jjtn000);
 449  1
   jjtreeOpenNodeScope(jjtn000);Token t;
 450  1
   Token start = getToken(1);
 451  1
   boolean hadError = false;
 452  
     try {
 453  
       try {
 454  1
         jj_consume_token(DPERCENT);
 455  1
         t = jj_consume_token(DIV_CLASS_NAME);
 456  1
       jjtn000.setClassName(t.image);
 457  1
         jj_consume_token(NEWLINE);
 458  1
         DivContent();
 459  1
         jj_consume_token(DPERCENT);
 460  0
       } catch (ParseException e) {
 461  0
     hadError = true;
 462  0
     System.err.println("current(" + e.currentToken.kind + ")(" + DEF_START + "|" + TERM + ")[" + start + "]");
 463  0
     switch (e.currentToken.kind) {
 464  
       case DPERCENT:
 465  0
         ParseError("div-class", "No class", e.currentToken, NEWLINE, null);
 466  0
         break;
 467  
       default:
 468  0
         switch (e.currentToken.next.kind) {
 469  
           case EOF:
 470  0
             hadError = true;
 471  0
             break;
 472  
           default:
 473  0
             {if (true) throw e;}
 474  
         }
 475  
     }
 476  1
       }
 477  0
     } catch (Throwable jjte000) {
 478  0
     if (jjtc000) {
 479  0
       jjtree.clearNodeScope(jjtn000);
 480  0
       jjtc000 = false;
 481  
     } else {
 482  0
       jjtree.popNode();
 483  
     }
 484  0
     if (jjte000 instanceof RuntimeException) {
 485  0
       {if (true) throw (RuntimeException)jjte000;}
 486  
     }
 487  0
     if (jjte000 instanceof ParseException) {
 488  0
       {if (true) throw (ParseException)jjte000;}
 489  
     }
 490  0
     {if (true) throw (Error)jjte000;}
 491  
     } finally {
 492  1
     if (jjtc000) {
 493  1
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 494  1
       jjtreeCloseNodeScope(jjtn000);
 495  
     }
 496  
     }
 497  1
   }
 498  
 
 499  
   void ParseError(String location, String message, Token token, int skipTo, Node child) throws ParseException {
 500  
  /*@bgen(jjtree) ParseError */
 501  0
 WikiParseError jjtn000 = new WikiParseError(this, JJTPARSEERROR);
 502  0
 boolean jjtc000 = true;
 503  0
 jjtree.openNodeScope(jjtn000);
 504  0
 jjtreeOpenNodeScope(jjtn000);
 505  
 try {int line, column;
 506  
   boolean at;
 507  0
   if (token == null) {
 508  0
     at = false;
 509  0
     token = getToken(0);
 510  
   } else {
 511  0
     at = true;
 512  
   }
 513  0
   errors.add(new WikiException(location, message, token.beginLine, token.beginColumn, at));
 514  0
   jjtn000.setLocation(location);
 515  0
   jjtn000.setMessage(message);
 516  0
   jjtn000.setToken(token);
 517  0
   if (skipTo != -1) error_skipto(skipTo);
 518  0
   if (child != null) jjtree.pushNode(child);/*@bgen(jjtree)*/
 519  
 } finally {
 520  0
   if (jjtc000) {
 521  0
     jjtree.closeNodeScope(jjtn000, true);
 522  0
     jjtreeCloseNodeScope(jjtn000);
 523  
   }
 524  
 }
 525  0
   }
 526  
 
 527  
   final public void DivStyle() throws ParseException {
 528  
  /*@bgen(jjtree) DivStyle */
 529  1
   WikiDivStyle jjtn000 = new WikiDivStyle(this, JJTDIVSTYLE);
 530  1
   boolean jjtc000 = true;
 531  1
   jjtree.openNodeScope(jjtn000);
 532  1
   jjtreeOpenNodeScope(jjtn000);Token t;
 533  
     try {
 534  1
       jj_consume_token(DIV_STYLE_START);
 535  1
       t = jj_consume_token(DIV_STYLE_NAME);
 536  1
       jj_consume_token(DIV_STYLE_END);
 537  1
       jj_consume_token(NEWLINE);
 538  1
     jjtn000.setStyle(t.image);
 539  1
       DivContent();
 540  1
       jj_consume_token(DPERCENT);
 541  0
     } catch (Throwable jjte000) {
 542  0
     if (jjtc000) {
 543  0
       jjtree.clearNodeScope(jjtn000);
 544  0
       jjtc000 = false;
 545  
     } else {
 546  0
       jjtree.popNode();
 547  
     }
 548  0
     if (jjte000 instanceof RuntimeException) {
 549  0
       {if (true) throw (RuntimeException)jjte000;}
 550  
     }
 551  0
     if (jjte000 instanceof ParseException) {
 552  0
       {if (true) throw (ParseException)jjte000;}
 553  
     }
 554  0
     {if (true) throw (Error)jjte000;}
 555  
     } finally {
 556  1
     if (jjtc000) {
 557  1
       jjtree.closeNodeScope(jjtn000, true);
 558  1
       jjtreeCloseNodeScope(jjtn000);
 559  
     }
 560  
     }
 561  1
   }
 562  
 
 563  
   final public void DivContent() throws ParseException {
 564  
     label_5:
 565  
     while (true) {
 566  5
       if (getToken(1).kind != DPERCENT || getToken(2).kind == DIV_CLASS_NAME) {
 567  
         ;
 568  
       } else {
 569  
         break label_5;
 570  
       }
 571  3
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 572  
       case DOC:
 573  
       case DCC:
 574  
       case OSQ:
 575  
       case DU:
 576  
       case DSQ:
 577  
       case D_BSLASH:
 578  
       case HR:
 579  
       case TRANSCLUDE_START:
 580  
       case ESCAPED_SQUARE:
 581  
       case EMPTY_LINK:
 582  
       case PIPE:
 583  
       case CONTROL_START:
 584  
       case NEW_TABLE_START:
 585  
       case DPIPE:
 586  
       case EXP:
 587  
       case EXP_START:
 588  
       case SPACE:
 589  
       case TOC:
 590  
       case STAR:
 591  
       case PLUS:
 592  
       case DIV_STYLE_START:
 593  
       case DPERCENT:
 594  
       case DEF_START:
 595  
       case IDENTIFIER:
 596  
       case FIRST_COLUMN_TEXT:
 597  
       case TEXT:
 598  2
         PageContent();
 599  2
         break;
 600  
       default:
 601  1
         jj_la1[9] = jj_gen;
 602  
         ;
 603  
       }
 604  3
       jj_consume_token(NEWLINE);
 605  
     }
 606  2
   }
 607  
 
 608  
   final public void Header() throws ParseException {
 609  
  /*@bgen(jjtree) Header */
 610  5
   WikiHeader jjtn000 = new WikiHeader(this, JJTHEADER);
 611  5
   boolean jjtc000 = true;
 612  5
   jjtree.openNodeScope(jjtn000);
 613  5
   jjtreeOpenNodeScope(jjtn000);Token t;
 614  
     try {
 615  5
       t = jj_consume_token(EXP);
 616  5
     jjtn000.setLength(t.image.length());
 617  5
       Multiline();
 618  0
     } catch (Throwable jjte000) {
 619  0
     if (jjtc000) {
 620  0
       jjtree.clearNodeScope(jjtn000);
 621  0
       jjtc000 = false;
 622  
     } else {
 623  0
       jjtree.popNode();
 624  
     }
 625  0
     if (jjte000 instanceof RuntimeException) {
 626  0
       {if (true) throw (RuntimeException)jjte000;}
 627  
     }
 628  0
     if (jjte000 instanceof ParseException) {
 629  0
       {if (true) throw (ParseException)jjte000;}
 630  
     }
 631  0
     {if (true) throw (Error)jjte000;}
 632  
     } finally {
 633  5
     if (jjtc000) {
 634  5
       jjtree.closeNodeScope(jjtn000, true);
 635  5
       jjtreeCloseNodeScope(jjtn000);
 636  
     }
 637  
     }
 638  5
   }
 639  
 
 640  
   final public void List() throws ParseException {
 641  
  /*@bgen(jjtree) List */
 642  1
   WikiList jjtn000 = new WikiList(this, JJTLIST);
 643  1
   boolean jjtc000 = true;
 644  1
   jjtree.openNodeScope(jjtn000);
 645  1
   jjtreeOpenNodeScope(jjtn000);
 646  
     try {
 647  1
       GenericListItem();
 648  
       label_6:
 649  
       while (true) {
 650  6
         if (jj_2_3(2147483647)) {
 651  
           ;
 652  
         } else {
 653  
           break label_6;
 654  
         }
 655  5
         jj_consume_token(NEWLINE);
 656  5
         GenericListItem();
 657  
       }
 658  0
     } catch (Throwable jjte000) {
 659  0
     if (jjtc000) {
 660  0
       jjtree.clearNodeScope(jjtn000);
 661  0
       jjtc000 = false;
 662  
     } else {
 663  0
       jjtree.popNode();
 664  
     }
 665  0
     if (jjte000 instanceof RuntimeException) {
 666  0
       {if (true) throw (RuntimeException)jjte000;}
 667  
     }
 668  0
     if (jjte000 instanceof ParseException) {
 669  0
       {if (true) throw (ParseException)jjte000;}
 670  
     }
 671  0
     {if (true) throw (Error)jjte000;}
 672  
     } finally {
 673  1
     if (jjtc000) {
 674  1
       jjtree.closeNodeScope(jjtn000, true);
 675  1
       jjtreeCloseNodeScope(jjtn000);
 676  
     }
 677  
     }
 678  1
   }
 679  
 
 680  
   final public void GenericListItem() throws ParseException {
 681  6
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 682  
     case PLUS:
 683  2
       OrderedListItem();
 684  2
       break;
 685  
     case STAR:
 686  4
       UnorderedListItem();
 687  4
       break;
 688  
     default:
 689  0
       jj_la1[10] = jj_gen;
 690  0
       jj_consume_token(-1);
 691  0
       throw new ParseException();
 692  
     }
 693  6
   }
 694  
 
 695  
   final public void OrderedListItem() throws ParseException {
 696  
  /*@bgen(jjtree) OrderedListItem */
 697  2
   WikiOrderedListItem jjtn000 = new WikiOrderedListItem(this, JJTORDEREDLISTITEM);
 698  2
   boolean jjtc000 = true;
 699  2
   jjtree.openNodeScope(jjtn000);
 700  2
   jjtreeOpenNodeScope(jjtn000);Token t;
 701  
     try {
 702  2
       t = jj_consume_token(PLUS);
 703  2
              jjtn000.setDepth(t.image.length());
 704  2
       Multiline();
 705  0
     } catch (Throwable jjte000) {
 706  0
     if (jjtc000) {
 707  0
       jjtree.clearNodeScope(jjtn000);
 708  0
       jjtc000 = false;
 709  
     } else {
 710  0
       jjtree.popNode();
 711  
     }
 712  0
     if (jjte000 instanceof RuntimeException) {
 713  0
       {if (true) throw (RuntimeException)jjte000;}
 714  
     }
 715  0
     if (jjte000 instanceof ParseException) {
 716  0
       {if (true) throw (ParseException)jjte000;}
 717  
     }
 718  0
     {if (true) throw (Error)jjte000;}
 719  
     } finally {
 720  2
     if (jjtc000) {
 721  2
       jjtree.closeNodeScope(jjtn000, true);
 722  2
       jjtreeCloseNodeScope(jjtn000);
 723  
     }
 724  
     }
 725  2
   }
 726  
 
 727  
   final public void UnorderedListItem() throws ParseException {
 728  
  /*@bgen(jjtree) UnorderedListItem */
 729  4
   WikiUnorderedListItem jjtn000 = new WikiUnorderedListItem(this, JJTUNORDEREDLISTITEM);
 730  4
   boolean jjtc000 = true;
 731  4
   jjtree.openNodeScope(jjtn000);
 732  4
   jjtreeOpenNodeScope(jjtn000);Token t;
 733  
     try {
 734  4
       t = jj_consume_token(STAR);
 735  4
              jjtn000.setDepth(t.image.length());
 736  4
       Multiline();
 737  0
     } catch (Throwable jjte000) {
 738  0
     if (jjtc000) {
 739  0
       jjtree.clearNodeScope(jjtn000);
 740  0
       jjtc000 = false;
 741  
     } else {
 742  0
       jjtree.popNode();
 743  
     }
 744  0
     if (jjte000 instanceof RuntimeException) {
 745  0
       {if (true) throw (RuntimeException)jjte000;}
 746  
     }
 747  0
     if (jjte000 instanceof ParseException) {
 748  0
       {if (true) throw (ParseException)jjte000;}
 749  
     }
 750  0
     {if (true) throw (Error)jjte000;}
 751  
     } finally {
 752  4
     if (jjtc000) {
 753  4
       jjtree.closeNodeScope(jjtn000, true);
 754  4
       jjtreeCloseNodeScope(jjtn000);
 755  
     }
 756  
     }
 757  4
   }
 758  
 
 759  
   final public void Multiline() throws ParseException {
 760  
     label_7:
 761  
     while (true) {
 762  22
       if (jj_2_4(2)) {
 763  
         ;
 764  
       } else {
 765  
         break label_7;
 766  
       }
 767  11
       InlineBody();
 768  
     }
 769  
     label_8:
 770  
     while (true) {
 771  11
       if (jj_2_5(2147483647)) {
 772  
         ;
 773  
       } else {
 774  
         break label_8;
 775  
       }
 776  0
       MultilineContinue();
 777  
       label_9:
 778  
       while (true) {
 779  0
         if (jj_2_6(2)) {
 780  
           ;
 781  
         } else {
 782  
           break label_9;
 783  
         }
 784  0
         InlineBody();
 785  
       }
 786  
     }
 787  11
   }
 788  
 
 789  
   final public void MultilineContinue() throws ParseException {
 790  
  /*@bgen(jjtree) Newline */
 791  0
   WikiNewline jjtn000 = new WikiNewline(this, JJTNEWLINE);
 792  0
   boolean jjtc000 = true;
 793  0
   jjtree.openNodeScope(jjtn000);
 794  0
   jjtreeOpenNodeScope(jjtn000);
 795  
     try {
 796  0
       jj_consume_token(NEWLINE);
 797  0
       jj_consume_token(SPACE);
 798  0
     jjtree.closeNodeScope(jjtn000, true);
 799  0
     jjtc000 = false;
 800  0
     jjtreeCloseNodeScope(jjtn000);
 801  0
     jjtn000.setCount(1);
 802  
     } finally {
 803  0
     if (jjtc000) {
 804  0
       jjtree.closeNodeScope(jjtn000, true);
 805  0
       jjtreeCloseNodeScope(jjtn000);
 806  
     }
 807  
     }
 808  0
   }
 809  
 
 810  
   final public void Pre() throws ParseException {
 811  
  /*@bgen(jjtree) Pre */
 812  1
   WikiPre jjtn000 = new WikiPre(this, JJTPRE);
 813  1
   boolean jjtc000 = true;
 814  1
   jjtree.openNodeScope(jjtn000);
 815  1
   jjtreeOpenNodeScope(jjtn000);StringBuilder sb = new StringBuilder();
 816  
   Token t;
 817  
     try {
 818  1
       jj_consume_token(TOC);
 819  
       label_10:
 820  
       while (true) {
 821  24
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 822  
         case PRE_TEXT:
 823  
           ;
 824  23
           break;
 825  
         default:
 826  1
           jj_la1[11] = jj_gen;
 827  1
           break label_10;
 828  
         }
 829  23
            WikiText jjtn001 = new WikiText(this, JJTTEXT);
 830  23
            boolean jjtc001 = true;
 831  23
            jjtree.openNodeScope(jjtn001);
 832  23
            jjtreeOpenNodeScope(jjtn001);
 833  
         try {
 834  23
           jj_consume_token(PRE_TEXT);
 835  23
                        jjtree.closeNodeScope(jjtn001, true);
 836  23
                        jjtc001 = false;
 837  23
                        jjtreeCloseNodeScope(jjtn001);
 838  23
                        jjtn001.setText(getToken(0).image);
 839  
         } finally {
 840  23
            if (jjtc001) {
 841  0
              jjtree.closeNodeScope(jjtn001, true);
 842  0
              jjtreeCloseNodeScope(jjtn001);
 843  
            }
 844  
         }
 845  23
       }
 846  1
       jj_consume_token(TCC);
 847  
     } finally {
 848  1
     if (jjtc000) {
 849  1
       jjtree.closeNodeScope(jjtn000, true);
 850  1
       jjtreeCloseNodeScope(jjtn000);
 851  
     }
 852  
     }
 853  1
   }
 854  
 
 855  
   final public void OldTable() throws ParseException {
 856  
  /*@bgen(jjtree) Table */
 857  1
   WikiTable jjtn000 = new WikiTable(this, JJTTABLE);
 858  1
   boolean jjtc000 = true;
 859  1
   jjtree.openNodeScope(jjtn000);
 860  1
   jjtreeOpenNodeScope(jjtn000);
 861  
     try {
 862  1
       OldTableRow();
 863  
       label_11:
 864  
       while (true) {
 865  2
         if (jj_2_7(2147483647)) {
 866  
           ;
 867  
         } else {
 868  
           break label_11;
 869  
         }
 870  1
         jj_consume_token(NEWLINE);
 871  1
         OldTableRow();
 872  
       }
 873  0
     } catch (Throwable jjte000) {
 874  0
     if (jjtc000) {
 875  0
       jjtree.clearNodeScope(jjtn000);
 876  0
       jjtc000 = false;
 877  
     } else {
 878  0
       jjtree.popNode();
 879  
     }
 880  0
     if (jjte000 instanceof RuntimeException) {
 881  0
       {if (true) throw (RuntimeException)jjte000;}
 882  
     }
 883  0
     if (jjte000 instanceof ParseException) {
 884  0
       {if (true) throw (ParseException)jjte000;}
 885  
     }
 886  0
     {if (true) throw (Error)jjte000;}
 887  
     } finally {
 888  1
     if (jjtc000) {
 889  1
       jjtree.closeNodeScope(jjtn000, true);
 890  1
       jjtreeCloseNodeScope(jjtn000);
 891  
     }
 892  
     }
 893  1
   }
 894  
 
 895  
   final public void OldTableRow() throws ParseException {
 896  
  /*@bgen(jjtree) TableRow */
 897  2
   WikiTableRow jjtn000 = new WikiTableRow(this, JJTTABLEROW);
 898  2
   boolean jjtc000 = true;
 899  2
   jjtree.openNodeScope(jjtn000);
 900  2
   jjtreeOpenNodeScope(jjtn000);
 901  
     try {
 902  
       label_12:
 903  
       while (true) {
 904  11
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 905  
         case DPIPE:
 906  1
           OldTableHeader();
 907  1
           break;
 908  
         case PIPE:
 909  10
           OldTableData();
 910  10
           break;
 911  
         default:
 912  0
           jj_la1[12] = jj_gen;
 913  0
           jj_consume_token(-1);
 914  0
           throw new ParseException();
 915  
         }
 916  11
         if (jj_2_8(2)) {
 917  
           ;
 918  
         } else {
 919  
           break label_12;
 920  
         }
 921  
       }
 922  0
     } catch (Throwable jjte000) {
 923  0
     if (jjtc000) {
 924  0
       jjtree.clearNodeScope(jjtn000);
 925  0
       jjtc000 = false;
 926  
     } else {
 927  0
       jjtree.popNode();
 928  
     }
 929  0
     if (jjte000 instanceof RuntimeException) {
 930  0
       {if (true) throw (RuntimeException)jjte000;}
 931  
     }
 932  0
     if (jjte000 instanceof ParseException) {
 933  0
       {if (true) throw (ParseException)jjte000;}
 934  
     }
 935  0
     {if (true) throw (Error)jjte000;}
 936  
     } finally {
 937  2
     if (jjtc000) {
 938  2
       jjtree.closeNodeScope(jjtn000, true);
 939  2
       jjtreeCloseNodeScope(jjtn000);
 940  
     }
 941  
     }
 942  2
   }
 943  
 
 944  
   final public void OldTableHeader() throws ParseException {
 945  
  /*@bgen(jjtree) TableHeader */
 946  1
   WikiTableHeader jjtn000 = new WikiTableHeader(this, JJTTABLEHEADER);
 947  1
   boolean jjtc000 = true;
 948  1
   jjtree.openNodeScope(jjtn000);
 949  1
   jjtreeOpenNodeScope(jjtn000);
 950  
     try {
 951  1
       jj_consume_token(DPIPE);
 952  1
       if (jj_2_9(2)) {
 953  1
         Text();
 954  
       } else {
 955  
         ;
 956  
       }
 957  0
     } catch (Throwable jjte000) {
 958  0
     if (jjtc000) {
 959  0
       jjtree.clearNodeScope(jjtn000);
 960  0
       jjtc000 = false;
 961  
     } else {
 962  0
       jjtree.popNode();
 963  
     }
 964  0
     if (jjte000 instanceof RuntimeException) {
 965  0
       {if (true) throw (RuntimeException)jjte000;}
 966  
     }
 967  0
     if (jjte000 instanceof ParseException) {
 968  0
       {if (true) throw (ParseException)jjte000;}
 969  
     }
 970  0
     {if (true) throw (Error)jjte000;}
 971  
     } finally {
 972  1
     if (jjtc000) {
 973  1
       jjtree.closeNodeScope(jjtn000, true);
 974  1
       jjtreeCloseNodeScope(jjtn000);
 975  
     }
 976  
     }
 977  1
   }
 978  
 
 979  
   final public void OldTableData() throws ParseException {
 980  
  /*@bgen(jjtree) TableData */
 981  10
   WikiTableData jjtn000 = new WikiTableData(this, JJTTABLEDATA);
 982  10
   boolean jjtc000 = true;
 983  10
   jjtree.openNodeScope(jjtn000);
 984  10
   jjtreeOpenNodeScope(jjtn000);
 985  
     try {
 986  10
       jj_consume_token(PIPE);
 987  10
       if (jj_2_10(2)) {
 988  7
         Text();
 989  
       } else {
 990  
         ;
 991  
       }
 992  0
     } catch (Throwable jjte000) {
 993  0
     if (jjtc000) {
 994  0
       jjtree.clearNodeScope(jjtn000);
 995  0
       jjtc000 = false;
 996  
     } else {
 997  0
       jjtree.popNode();
 998  
     }
 999  0
     if (jjte000 instanceof RuntimeException) {
 1000  0
       {if (true) throw (RuntimeException)jjte000;}
 1001  
     }
 1002  0
     if (jjte000 instanceof ParseException) {
 1003  0
       {if (true) throw (ParseException)jjte000;}
 1004  
     }
 1005  0
     {if (true) throw (Error)jjte000;}
 1006  
     } finally {
 1007  10
     if (jjtc000) {
 1008  10
       jjtree.closeNodeScope(jjtn000, true);
 1009  10
       jjtreeCloseNodeScope(jjtn000);
 1010  
     }
 1011  
     }
 1012  10
   }
 1013  
 
 1014  
   final public void Term() throws ParseException {
 1015  
  /*@bgen(jjtree) #Term( ! hadError) */
 1016  1
   WikiTerm jjtn000 = new WikiTerm(this, JJTTERM);
 1017  1
   boolean jjtc000 = true;
 1018  1
   jjtree.openNodeScope(jjtn000);
 1019  1
   jjtreeOpenNodeScope(jjtn000);Token t;
 1020  1
   boolean hadError = false;
 1021  
     try {
 1022  
       try {
 1023  1
         jj_consume_token(DEF_START);
 1024  1
         t = jj_consume_token(TERM);
 1025  1
       jjtn000.setTerm(t.image);
 1026  1
         jj_consume_token(TERM_COLON);
 1027  1
         Inline();
 1028  0
       } catch (ParseException e) {
 1029  0
     hadError = true;
 1030  
     //System.err.println("current(" + e.currentToken.kind + ")(" + DEF_START + "|" + TERM + ")");
 1031  0
     switch (e.currentToken.kind) {
 1032  
       case DEF_START:
 1033  0
         ParseError("term", "No term", e.currentToken, NEWLINE, null);
 1034  0
         break;
 1035  
       case TERM:
 1036  0
         ParseError("term", "No explanation", e.currentToken, NEWLINE, null);
 1037  0
         break;
 1038  
       default:
 1039  0
         switch (e.currentToken.next.kind) {
 1040  
           case EOF:
 1041  0
             hadError = false;
 1042  0
             break;
 1043  
           default:
 1044  0
             {if (true) throw e;}
 1045  
         }
 1046  
     }
 1047  1
       }
 1048  0
     } catch (Throwable jjte000) {
 1049  0
     if (jjtc000) {
 1050  0
       jjtree.clearNodeScope(jjtn000);
 1051  0
       jjtc000 = false;
 1052  
     } else {
 1053  0
       jjtree.popNode();
 1054  
     }
 1055  0
     if (jjte000 instanceof RuntimeException) {
 1056  0
       {if (true) throw (RuntimeException)jjte000;}
 1057  
     }
 1058  0
     if (jjte000 instanceof ParseException) {
 1059  0
       {if (true) throw (ParseException)jjte000;}
 1060  
     }
 1061  0
     {if (true) throw (Error)jjte000;}
 1062  
     } finally {
 1063  1
     if (jjtc000) {
 1064  1
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 1065  1
       jjtreeCloseNodeScope(jjtn000);
 1066  
     }
 1067  
     }
 1068  1
   }
 1069  
 
 1070  
   final public void Inline() throws ParseException {
 1071  25
   boolean create = false;
 1072  
     try {
 1073  
       label_13:
 1074  
       while (true) {
 1075  27
         InlineBody();
 1076  26
         if (jj_2_11(2)) {
 1077  
           ;
 1078  
         } else {
 1079  
           break label_13;
 1080  
         }
 1081  
       }
 1082  24
       create = true;
 1083  1
     } catch (CloseTokenFoundException e) {
 1084  1
     create = true;
 1085  1
     {if (true) throw e;}
 1086  24
     }
 1087  
 
 1088  24
   }
 1089  
 
 1090  
   final public void InlineBody() throws ParseException {
 1091  38
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1092  
     case DSQ:
 1093  1
       Italics();
 1094  1
       break;
 1095  
     case DU:
 1096  2
       Bold();
 1097  2
       break;
 1098  
     case DOC:
 1099  
     case DCC:
 1100  
     case OSQ:
 1101  
     case D_BSLASH:
 1102  
     case HR:
 1103  
     case TRANSCLUDE_START:
 1104  
     case ESCAPED_SQUARE:
 1105  
     case EMPTY_LINK:
 1106  
     case PIPE:
 1107  
     case CONTROL_START:
 1108  
     case DPIPE:
 1109  
     case EXP_START:
 1110  
     case SPACE:
 1111  
     case IDENTIFIER:
 1112  
     case FIRST_COLUMN_TEXT:
 1113  
     case TEXT:
 1114  35
       InlineWrap(false);
 1115  34
       break;
 1116  
     default:
 1117  0
       jj_la1[13] = jj_gen;
 1118  0
       jj_consume_token(-1);
 1119  0
       throw new ParseException();
 1120  
     }
 1121  37
   }
 1122  
 
 1123  
   final public void InlineWrap(boolean create) throws ParseException {
 1124  
     try {
 1125  
       label_14:
 1126  
       while (true) {
 1127  71
         InlineWrapBody();
 1128  70
         if (jj_2_12(2)) {
 1129  
           ;
 1130  
         } else {
 1131  
           break label_14;
 1132  
         }
 1133  
       }
 1134  1
     } catch (CloseTokenFoundException e) {
 1135  1
     {if (true) throw e;}
 1136  0
     } catch (ParseException e) {
 1137  0
     create = false;
 1138  40
     }
 1139  40
   }
 1140  
 
 1141  
   final public void InlineWrapBody() throws ParseException {
 1142  
   Token t;
 1143  71
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1144  
     case IDENTIFIER:
 1145  
     case FIRST_COLUMN_TEXT:
 1146  
     case TEXT:
 1147  29
       Text();
 1148  29
       break;
 1149  
     case SPACE:
 1150  22
       Space();
 1151  22
       break;
 1152  
     case DOC:
 1153  1
       Mono();
 1154  1
       break;
 1155  
     case OSQ:
 1156  13
       Link();
 1157  13
       break;
 1158  
     case D_BSLASH:
 1159  0
       Break();
 1160  0
       break;
 1161  
     case HR:
 1162  5
       HR();
 1163  5
       break;
 1164  
     case TRANSCLUDE_START:
 1165  0
       Transclude();
 1166  0
       break;
 1167  
     case ESCAPED_SQUARE:
 1168  0
       EscapedSquare();
 1169  0
       break;
 1170  
     case EMPTY_LINK:
 1171  0
       EmptyLink();
 1172  0
       break;
 1173  
     case EXP_START:
 1174  0
       Expression();
 1175  0
       break;
 1176  
     case CONTROL_START:
 1177  0
       Control();
 1178  0
       break;
 1179  
     case DCC:
 1180  
     case PIPE:
 1181  
     case DPIPE:
 1182  1
       MakeNextTokenText();
 1183  0
       break;
 1184  
     default:
 1185  0
       jj_la1[14] = jj_gen;
 1186  0
       jj_consume_token(-1);
 1187  0
       throw new ParseException();
 1188  
     }
 1189  70
   }
 1190  
 
 1191  
   final public void Space() throws ParseException {
 1192  
  /*@bgen(jjtree) Space */
 1193  22
   WikiSpace jjtn000 = new WikiSpace(this, JJTSPACE);
 1194  22
   boolean jjtc000 = true;
 1195  22
   jjtree.openNodeScope(jjtn000);
 1196  22
   jjtreeOpenNodeScope(jjtn000);
 1197  
     try {
 1198  22
       jj_consume_token(SPACE);
 1199  
     } finally {
 1200  22
     if (jjtc000) {
 1201  22
       jjtree.closeNodeScope(jjtn000, true);
 1202  22
       jjtreeCloseNodeScope(jjtn000);
 1203  
     }
 1204  
     }
 1205  22
   }
 1206  
 
 1207  
   final public void Control() throws ParseException {
 1208  0
     jj_consume_token(CONTROL_START);
 1209  0
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1210  
     case KEYWORD_CASE:
 1211  0
       ControlCase();
 1212  0
       break;
 1213  
     case KEYWORD_DEFAULT:
 1214  0
       ControlDefault();
 1215  0
       break;
 1216  
     case KEYWORD_DEFINE:
 1217  0
       ControlDefine();
 1218  0
       break;
 1219  
     case KEYWORD_FOR:
 1220  0
       ControlFor();
 1221  0
       break;
 1222  
     case KEYWORD_IF:
 1223  0
       ControlIf();
 1224  0
       break;
 1225  
     case KEYWORD_ELSE:
 1226  0
       ControlElse();
 1227  0
       break;
 1228  
     case KEYWORD_ELSEIF:
 1229  0
       ControlElseIf();
 1230  0
       break;
 1231  
     case KEYWORD_END:
 1232  0
       ControlEnd();
 1233  0
       break;
 1234  
     case KEYWORD_SWITCH:
 1235  0
       ControlSwitch();
 1236  0
       break;
 1237  
     case KEYWORD_WHILE:
 1238  0
       ControlWhile();
 1239  0
       break;
 1240  
     default:
 1241  0
       jj_la1[15] = jj_gen;
 1242  0
       jj_consume_token(-1);
 1243  0
       throw new ParseException();
 1244  
     }
 1245  0
     jj_consume_token(CONTROL_END);
 1246  0
   }
 1247  
 
 1248  
   final public void ConditionalExpression() throws ParseException {
 1249  
  /*@bgen(jjtree) ConditionalExpression */
 1250  0
   WikiConditionalExpression jjtn000 = new WikiConditionalExpression(this, JJTCONDITIONALEXPRESSION);
 1251  0
   boolean jjtc000 = true;
 1252  0
   jjtree.openNodeScope(jjtn000);
 1253  0
   jjtreeOpenNodeScope(jjtn000);
 1254  
     try {
 1255  0
       ConditionalOrExpression();
 1256  0
     } catch (Throwable jjte000) {
 1257  0
     if (jjtc000) {
 1258  0
       jjtree.clearNodeScope(jjtn000);
 1259  0
       jjtc000 = false;
 1260  
     } else {
 1261  0
       jjtree.popNode();
 1262  
     }
 1263  0
     if (jjte000 instanceof RuntimeException) {
 1264  0
       {if (true) throw (RuntimeException)jjte000;}
 1265  
     }
 1266  0
     if (jjte000 instanceof ParseException) {
 1267  0
       {if (true) throw (ParseException)jjte000;}
 1268  
     }
 1269  0
     {if (true) throw (Error)jjte000;}
 1270  
     } finally {
 1271  0
     if (jjtc000) {
 1272  0
       jjtree.closeNodeScope(jjtn000, true);
 1273  0
       jjtreeCloseNodeScope(jjtn000);
 1274  
     }
 1275  
     }
 1276  0
   }
 1277  
 
 1278  
   final public void ConditionalOrExpression() throws ParseException {
 1279  
  /*@bgen(jjtree) ConditionalOrExpression */
 1280  0
   WikiConditionalOrExpression jjtn000 = new WikiConditionalOrExpression(this, JJTCONDITIONALOREXPRESSION);
 1281  0
   boolean jjtc000 = true;
 1282  0
   jjtree.openNodeScope(jjtn000);
 1283  0
   jjtreeOpenNodeScope(jjtn000);
 1284  
     try {
 1285  0
       ConditionalAndExpression();
 1286  
       label_15:
 1287  
       while (true) {
 1288  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1289  
         case KEYWORD_OR:
 1290  
           ;
 1291  0
           break;
 1292  
         default:
 1293  0
           jj_la1[16] = jj_gen;
 1294  0
           break label_15;
 1295  
         }
 1296  0
         jj_consume_token(KEYWORD_OR);
 1297  0
         ConditionalAndExpression();
 1298  
       }
 1299  0
     } catch (Throwable jjte000) {
 1300  0
     if (jjtc000) {
 1301  0
       jjtree.clearNodeScope(jjtn000);
 1302  0
       jjtc000 = false;
 1303  
     } else {
 1304  0
       jjtree.popNode();
 1305  
     }
 1306  0
     if (jjte000 instanceof RuntimeException) {
 1307  0
       {if (true) throw (RuntimeException)jjte000;}
 1308  
     }
 1309  0
     if (jjte000 instanceof ParseException) {
 1310  0
       {if (true) throw (ParseException)jjte000;}
 1311  
     }
 1312  0
     {if (true) throw (Error)jjte000;}
 1313  
     } finally {
 1314  0
     if (jjtc000) {
 1315  0
       jjtree.closeNodeScope(jjtn000, true);
 1316  0
       jjtreeCloseNodeScope(jjtn000);
 1317  
     }
 1318  
     }
 1319  0
   }
 1320  
 
 1321  
   final public void ConditionalAndExpression() throws ParseException {
 1322  
  /*@bgen(jjtree) ConditionalAndExpression */
 1323  0
   WikiConditionalAndExpression jjtn000 = new WikiConditionalAndExpression(this, JJTCONDITIONALANDEXPRESSION);
 1324  0
   boolean jjtc000 = true;
 1325  0
   jjtree.openNodeScope(jjtn000);
 1326  0
   jjtreeOpenNodeScope(jjtn000);
 1327  
     try {
 1328  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1329  
       case IDENTIFIER:
 1330  0
         Identifier();
 1331  0
         break;
 1332  
       case NESTED_START:
 1333  0
         jj_consume_token(NESTED_START);
 1334  0
         ConditionalExpression();
 1335  0
         jj_consume_token(CLOSE_PAREN);
 1336  0
         break;
 1337  
       default:
 1338  0
         jj_la1[17] = jj_gen;
 1339  0
         jj_consume_token(-1);
 1340  0
         throw new ParseException();
 1341  
       }
 1342  0
     } catch (Throwable jjte000) {
 1343  0
     if (jjtc000) {
 1344  0
       jjtree.clearNodeScope(jjtn000);
 1345  0
       jjtc000 = false;
 1346  
     } else {
 1347  0
       jjtree.popNode();
 1348  
     }
 1349  0
     if (jjte000 instanceof RuntimeException) {
 1350  0
       {if (true) throw (RuntimeException)jjte000;}
 1351  
     }
 1352  0
     if (jjte000 instanceof ParseException) {
 1353  0
       {if (true) throw (ParseException)jjte000;}
 1354  
     }
 1355  0
     {if (true) throw (Error)jjte000;}
 1356  
     } finally {
 1357  0
     if (jjtc000) {
 1358  0
       jjtree.closeNodeScope(jjtn000, true);
 1359  0
       jjtreeCloseNodeScope(jjtn000);
 1360  
     }
 1361  
     }
 1362  0
   }
 1363  
 
 1364  
   final public void ControlDefine() throws ParseException {
 1365  
  /*@bgen(jjtree) ControlDefine */
 1366  0
   WikiControlDefine jjtn000 = new WikiControlDefine(this, JJTCONTROLDEFINE);
 1367  0
   boolean jjtc000 = true;
 1368  0
   jjtree.openNodeScope(jjtn000);
 1369  0
   jjtreeOpenNodeScope(jjtn000);
 1370  
     try {
 1371  0
       jj_consume_token(KEYWORD_DEFINE);
 1372  0
       jj_consume_token(CONTROL_ARG_START);
 1373  0
       Identifier();
 1374  0
       ConstantValue();
 1375  0
       jj_consume_token(CLOSE_PAREN);
 1376  0
     } catch (Throwable jjte000) {
 1377  0
     if (jjtc000) {
 1378  0
       jjtree.clearNodeScope(jjtn000);
 1379  0
       jjtc000 = false;
 1380  
     } else {
 1381  0
       jjtree.popNode();
 1382  
     }
 1383  0
     if (jjte000 instanceof RuntimeException) {
 1384  0
       {if (true) throw (RuntimeException)jjte000;}
 1385  
     }
 1386  0
     if (jjte000 instanceof ParseException) {
 1387  0
       {if (true) throw (ParseException)jjte000;}
 1388  
     }
 1389  0
     {if (true) throw (Error)jjte000;}
 1390  
     } finally {
 1391  0
     if (jjtc000) {
 1392  0
       jjtree.closeNodeScope(jjtn000, true);
 1393  0
       jjtreeCloseNodeScope(jjtn000);
 1394  
     }
 1395  
     }
 1396  0
   }
 1397  
 
 1398  
   final public void ConstantValue() throws ParseException {
 1399  0
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1400  
     case IDENTIFIER:
 1401  0
       Identifier();
 1402  0
       break;
 1403  
     case INTEGER_LITERAL:
 1404  
     case FLOATING_POINT_LITERAL:
 1405  
     case CHARACTER_LITERAL:
 1406  
     case STRING_LITERAL:
 1407  0
       Literal();
 1408  0
       break;
 1409  
     case STRING_START:
 1410  0
       String();
 1411  0
       break;
 1412  
     case MAP_START:
 1413  0
       MapValue();
 1414  0
       break;
 1415  
     default:
 1416  0
       jj_la1[18] = jj_gen;
 1417  0
       jj_consume_token(-1);
 1418  0
       throw new ParseException();
 1419  
     }
 1420  0
   }
 1421  
 
 1422  
   final public void MapValue() throws ParseException {
 1423  
  /*@bgen(jjtree) MapValue */
 1424  0
   WikiMapValue jjtn000 = new WikiMapValue(this, JJTMAPVALUE);
 1425  0
   boolean jjtc000 = true;
 1426  0
   jjtree.openNodeScope(jjtn000);
 1427  0
   jjtreeOpenNodeScope(jjtn000);
 1428  
     try {
 1429  0
       jj_consume_token(MAP_START);
 1430  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1431  
       case INTEGER_LITERAL:
 1432  
       case FLOATING_POINT_LITERAL:
 1433  
       case CHARACTER_LITERAL:
 1434  
       case STRING_LITERAL:
 1435  0
         MapEntry();
 1436  
         label_16:
 1437  
         while (true) {
 1438  0
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1439  
           case MAP_COMMA:
 1440  
             ;
 1441  0
             break;
 1442  
           default:
 1443  0
             jj_la1[19] = jj_gen;
 1444  0
             break label_16;
 1445  
           }
 1446  0
           jj_consume_token(MAP_COMMA);
 1447  0
           MapEntry();
 1448  
         }
 1449  
         break;
 1450  
       default:
 1451  0
         jj_la1[20] = jj_gen;
 1452  
         ;
 1453  
       }
 1454  0
       jj_consume_token(MAP_END);
 1455  0
     } catch (Throwable jjte000) {
 1456  0
     if (jjtc000) {
 1457  0
       jjtree.clearNodeScope(jjtn000);
 1458  0
       jjtc000 = false;
 1459  
     } else {
 1460  0
       jjtree.popNode();
 1461  
     }
 1462  0
     if (jjte000 instanceof RuntimeException) {
 1463  0
       {if (true) throw (RuntimeException)jjte000;}
 1464  
     }
 1465  0
     if (jjte000 instanceof ParseException) {
 1466  0
       {if (true) throw (ParseException)jjte000;}
 1467  
     }
 1468  0
     {if (true) throw (Error)jjte000;}
 1469  
     } finally {
 1470  0
     if (jjtc000) {
 1471  0
       jjtree.closeNodeScope(jjtn000, true);
 1472  0
       jjtreeCloseNodeScope(jjtn000);
 1473  
     }
 1474  
     }
 1475  0
   }
 1476  
 
 1477  
   final public void MapEntry() throws ParseException {
 1478  
  /*@bgen(jjtree) MapEntry */
 1479  0
   WikiMapEntry jjtn000 = new WikiMapEntry(this, JJTMAPENTRY);
 1480  0
   boolean jjtc000 = true;
 1481  0
   jjtree.openNodeScope(jjtn000);
 1482  0
   jjtreeOpenNodeScope(jjtn000);
 1483  
     try {
 1484  0
       Literal();
 1485  0
       jj_consume_token(MAP_COLON);
 1486  0
       ConstantValue();
 1487  0
     } catch (Throwable jjte000) {
 1488  0
     if (jjtc000) {
 1489  0
       jjtree.clearNodeScope(jjtn000);
 1490  0
       jjtc000 = false;
 1491  
     } else {
 1492  0
       jjtree.popNode();
 1493  
     }
 1494  0
     if (jjte000 instanceof RuntimeException) {
 1495  0
       {if (true) throw (RuntimeException)jjte000;}
 1496  
     }
 1497  0
     if (jjte000 instanceof ParseException) {
 1498  0
       {if (true) throw (ParseException)jjte000;}
 1499  
     }
 1500  0
     {if (true) throw (Error)jjte000;}
 1501  
     } finally {
 1502  0
     if (jjtc000) {
 1503  0
       jjtree.closeNodeScope(jjtn000, true);
 1504  0
       jjtreeCloseNodeScope(jjtn000);
 1505  
     }
 1506  
     }
 1507  0
   }
 1508  
 
 1509  
   final public void ControlIf() throws ParseException {
 1510  
  /*@bgen(jjtree) ControlIf */
 1511  0
   WikiControlIf jjtn000 = new WikiControlIf(this, JJTCONTROLIF);
 1512  0
   boolean jjtc000 = true;
 1513  0
   jjtree.openNodeScope(jjtn000);
 1514  0
   jjtreeOpenNodeScope(jjtn000);
 1515  
     try {
 1516  0
       jj_consume_token(KEYWORD_IF);
 1517  0
       jj_consume_token(CONTROL_ARG_START);
 1518  0
       ConditionalExpression();
 1519  0
       jj_consume_token(CLOSE_PAREN);
 1520  0
     } catch (Throwable jjte000) {
 1521  0
     if (jjtc000) {
 1522  0
       jjtree.clearNodeScope(jjtn000);
 1523  0
       jjtc000 = false;
 1524  
     } else {
 1525  0
       jjtree.popNode();
 1526  
     }
 1527  0
     if (jjte000 instanceof RuntimeException) {
 1528  0
       {if (true) throw (RuntimeException)jjte000;}
 1529  
     }
 1530  0
     if (jjte000 instanceof ParseException) {
 1531  0
       {if (true) throw (ParseException)jjte000;}
 1532  
     }
 1533  0
     {if (true) throw (Error)jjte000;}
 1534  
     } finally {
 1535  0
     if (jjtc000) {
 1536  0
       jjtree.closeNodeScope(jjtn000, true);
 1537  0
       jjtreeCloseNodeScope(jjtn000);
 1538  
     }
 1539  
     }
 1540  0
   }
 1541  
 
 1542  
   final public void ControlFor() throws ParseException {
 1543  
  /*@bgen(jjtree) ControlFor */
 1544  0
   WikiControlFor jjtn000 = new WikiControlFor(this, JJTCONTROLFOR);
 1545  0
   boolean jjtc000 = true;
 1546  0
   jjtree.openNodeScope(jjtn000);
 1547  0
   jjtreeOpenNodeScope(jjtn000);
 1548  
     try {
 1549  0
       jj_consume_token(KEYWORD_FOR);
 1550  0
       jj_consume_token(CONTROL_ARG_START);
 1551  0
       Identifier();
 1552  0
       jj_consume_token(KEYWORD_IN);
 1553  0
       Identifier();
 1554  0
       jj_consume_token(CLOSE_PAREN);
 1555  0
     } catch (Throwable jjte000) {
 1556  0
     if (jjtc000) {
 1557  0
       jjtree.clearNodeScope(jjtn000);
 1558  0
       jjtc000 = false;
 1559  
     } else {
 1560  0
       jjtree.popNode();
 1561  
     }
 1562  0
     if (jjte000 instanceof RuntimeException) {
 1563  0
       {if (true) throw (RuntimeException)jjte000;}
 1564  
     }
 1565  0
     if (jjte000 instanceof ParseException) {
 1566  0
       {if (true) throw (ParseException)jjte000;}
 1567  
     }
 1568  0
     {if (true) throw (Error)jjte000;}
 1569  
     } finally {
 1570  0
     if (jjtc000) {
 1571  0
       jjtree.closeNodeScope(jjtn000, true);
 1572  0
       jjtreeCloseNodeScope(jjtn000);
 1573  
     }
 1574  
     }
 1575  0
   }
 1576  
 
 1577  
   final public void ControlWhile() throws ParseException {
 1578  
  /*@bgen(jjtree) ControlWhile */
 1579  0
   WikiControlWhile jjtn000 = new WikiControlWhile(this, JJTCONTROLWHILE);
 1580  0
   boolean jjtc000 = true;
 1581  0
   jjtree.openNodeScope(jjtn000);
 1582  0
   jjtreeOpenNodeScope(jjtn000);
 1583  
     try {
 1584  0
       jj_consume_token(KEYWORD_WHILE);
 1585  0
       jj_consume_token(CONTROL_ARG_START);
 1586  0
       ConditionalExpression();
 1587  0
       jj_consume_token(CLOSE_PAREN);
 1588  0
     } catch (Throwable jjte000) {
 1589  0
     if (jjtc000) {
 1590  0
       jjtree.clearNodeScope(jjtn000);
 1591  0
       jjtc000 = false;
 1592  
     } else {
 1593  0
       jjtree.popNode();
 1594  
     }
 1595  0
     if (jjte000 instanceof RuntimeException) {
 1596  0
       {if (true) throw (RuntimeException)jjte000;}
 1597  
     }
 1598  0
     if (jjte000 instanceof ParseException) {
 1599  0
       {if (true) throw (ParseException)jjte000;}
 1600  
     }
 1601  0
     {if (true) throw (Error)jjte000;}
 1602  
     } finally {
 1603  0
     if (jjtc000) {
 1604  0
       jjtree.closeNodeScope(jjtn000, true);
 1605  0
       jjtreeCloseNodeScope(jjtn000);
 1606  
     }
 1607  
     }
 1608  0
   }
 1609  
 
 1610  
   final public void ControlEnd() throws ParseException {
 1611  
  /*@bgen(jjtree) ControlEnd */
 1612  0
   WikiControlEnd jjtn000 = new WikiControlEnd(this, JJTCONTROLEND);
 1613  0
   boolean jjtc000 = true;
 1614  0
   jjtree.openNodeScope(jjtn000);
 1615  0
   jjtreeOpenNodeScope(jjtn000);
 1616  
     try {
 1617  0
       jj_consume_token(KEYWORD_END);
 1618  
     } finally {
 1619  0
     if (jjtc000) {
 1620  0
       jjtree.closeNodeScope(jjtn000, true);
 1621  0
       jjtreeCloseNodeScope(jjtn000);
 1622  
     }
 1623  
     }
 1624  0
   }
 1625  
 
 1626  
   final public void ControlElseIf() throws ParseException {
 1627  
  /*@bgen(jjtree) ControlElseIf */
 1628  0
   WikiControlElseIf jjtn000 = new WikiControlElseIf(this, JJTCONTROLELSEIF);
 1629  0
   boolean jjtc000 = true;
 1630  0
   jjtree.openNodeScope(jjtn000);
 1631  0
   jjtreeOpenNodeScope(jjtn000);
 1632  
     try {
 1633  0
       jj_consume_token(KEYWORD_ELSEIF);
 1634  0
       jj_consume_token(CONTROL_ARG_START);
 1635  0
       ConditionalExpression();
 1636  0
       jj_consume_token(CLOSE_PAREN);
 1637  0
     } catch (Throwable jjte000) {
 1638  0
     if (jjtc000) {
 1639  0
       jjtree.clearNodeScope(jjtn000);
 1640  0
       jjtc000 = false;
 1641  
     } else {
 1642  0
       jjtree.popNode();
 1643  
     }
 1644  0
     if (jjte000 instanceof RuntimeException) {
 1645  0
       {if (true) throw (RuntimeException)jjte000;}
 1646  
     }
 1647  0
     if (jjte000 instanceof ParseException) {
 1648  0
       {if (true) throw (ParseException)jjte000;}
 1649  
     }
 1650  0
     {if (true) throw (Error)jjte000;}
 1651  
     } finally {
 1652  0
     if (jjtc000) {
 1653  0
       jjtree.closeNodeScope(jjtn000, true);
 1654  0
       jjtreeCloseNodeScope(jjtn000);
 1655  
     }
 1656  
     }
 1657  0
   }
 1658  
 
 1659  
   final public void ControlElse() throws ParseException {
 1660  
  /*@bgen(jjtree) ControlElse */
 1661  0
   WikiControlElse jjtn000 = new WikiControlElse(this, JJTCONTROLELSE);
 1662  0
   boolean jjtc000 = true;
 1663  0
   jjtree.openNodeScope(jjtn000);
 1664  0
   jjtreeOpenNodeScope(jjtn000);
 1665  
     try {
 1666  0
       jj_consume_token(KEYWORD_ELSE);
 1667  
     } finally {
 1668  0
     if (jjtc000) {
 1669  0
       jjtree.closeNodeScope(jjtn000, true);
 1670  0
       jjtreeCloseNodeScope(jjtn000);
 1671  
     }
 1672  
     }
 1673  0
   }
 1674  
 
 1675  
   final public void ControlDefault() throws ParseException {
 1676  
  /*@bgen(jjtree) ControlDefault */
 1677  0
   WikiControlDefault jjtn000 = new WikiControlDefault(this, JJTCONTROLDEFAULT);
 1678  0
   boolean jjtc000 = true;
 1679  0
   jjtree.openNodeScope(jjtn000);
 1680  0
   jjtreeOpenNodeScope(jjtn000);
 1681  
     try {
 1682  0
       jj_consume_token(KEYWORD_DEFAULT);
 1683  
     } finally {
 1684  0
     if (jjtc000) {
 1685  0
       jjtree.closeNodeScope(jjtn000, true);
 1686  0
       jjtreeCloseNodeScope(jjtn000);
 1687  
     }
 1688  
     }
 1689  0
   }
 1690  
 
 1691  
   final public void ControlSwitch() throws ParseException {
 1692  
  /*@bgen(jjtree) ControlSwitch */
 1693  0
   WikiControlSwitch jjtn000 = new WikiControlSwitch(this, JJTCONTROLSWITCH);
 1694  0
   boolean jjtc000 = true;
 1695  0
   jjtree.openNodeScope(jjtn000);
 1696  0
   jjtreeOpenNodeScope(jjtn000);
 1697  
     try {
 1698  0
       jj_consume_token(KEYWORD_SWITCH);
 1699  0
       jj_consume_token(CONTROL_ARG_START);
 1700  0
       Identifier();
 1701  0
       jj_consume_token(CLOSE_PAREN);
 1702  0
     } catch (Throwable jjte000) {
 1703  0
     if (jjtc000) {
 1704  0
       jjtree.clearNodeScope(jjtn000);
 1705  0
       jjtc000 = false;
 1706  
     } else {
 1707  0
       jjtree.popNode();
 1708  
     }
 1709  0
     if (jjte000 instanceof RuntimeException) {
 1710  0
       {if (true) throw (RuntimeException)jjte000;}
 1711  
     }
 1712  0
     if (jjte000 instanceof ParseException) {
 1713  0
       {if (true) throw (ParseException)jjte000;}
 1714  
     }
 1715  0
     {if (true) throw (Error)jjte000;}
 1716  
     } finally {
 1717  0
     if (jjtc000) {
 1718  0
       jjtree.closeNodeScope(jjtn000, true);
 1719  0
       jjtreeCloseNodeScope(jjtn000);
 1720  
     }
 1721  
     }
 1722  0
   }
 1723  
 
 1724  
   final public void ControlCase() throws ParseException {
 1725  
  /*@bgen(jjtree) ControlCase */
 1726  0
   WikiControlCase jjtn000 = new WikiControlCase(this, JJTCONTROLCASE);
 1727  0
   boolean jjtc000 = true;
 1728  0
   jjtree.openNodeScope(jjtn000);
 1729  0
   jjtreeOpenNodeScope(jjtn000);
 1730  
     try {
 1731  0
       jj_consume_token(KEYWORD_CASE);
 1732  0
       jj_consume_token(CONTROL_ARG_START);
 1733  0
       Literal();
 1734  
       label_17:
 1735  
       while (true) {
 1736  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1737  
         case KEYWORD_OR:
 1738  
           ;
 1739  0
           break;
 1740  
         default:
 1741  0
           jj_la1[21] = jj_gen;
 1742  0
           break label_17;
 1743  
         }
 1744  0
         jj_consume_token(KEYWORD_OR);
 1745  0
         Literal();
 1746  
       }
 1747  0
       jj_consume_token(CLOSE_PAREN);
 1748  0
     } catch (Throwable jjte000) {
 1749  0
     if (jjtc000) {
 1750  0
       jjtree.clearNodeScope(jjtn000);
 1751  0
       jjtc000 = false;
 1752  
     } else {
 1753  0
       jjtree.popNode();
 1754  
     }
 1755  0
     if (jjte000 instanceof RuntimeException) {
 1756  0
       {if (true) throw (RuntimeException)jjte000;}
 1757  
     }
 1758  0
     if (jjte000 instanceof ParseException) {
 1759  0
       {if (true) throw (ParseException)jjte000;}
 1760  
     }
 1761  0
     {if (true) throw (Error)jjte000;}
 1762  
     } finally {
 1763  0
     if (jjtc000) {
 1764  0
       jjtree.closeNodeScope(jjtn000, true);
 1765  0
       jjtreeCloseNodeScope(jjtn000);
 1766  
     }
 1767  
     }
 1768  0
   }
 1769  
 
 1770  
   final public void Value() throws ParseException {
 1771  0
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1772  
     case EXP_START:
 1773  0
       Expression();
 1774  0
       break;
 1775  
     case INTEGER_LITERAL:
 1776  
     case FLOATING_POINT_LITERAL:
 1777  
     case CHARACTER_LITERAL:
 1778  
     case STRING_LITERAL:
 1779  0
       Literal();
 1780  0
       break;
 1781  
     case STRING_START:
 1782  0
       String();
 1783  0
       break;
 1784  
     default:
 1785  0
       jj_la1[22] = jj_gen;
 1786  0
       jj_consume_token(-1);
 1787  0
       throw new ParseException();
 1788  
     }
 1789  0
   }
 1790  
 
 1791  
   final public void String() throws ParseException {
 1792  
  /*@bgen(jjtree) String */
 1793  0
   WikiString jjtn000 = new WikiString(this, JJTSTRING);
 1794  0
   boolean jjtc000 = true;
 1795  0
   jjtree.openNodeScope(jjtn000);
 1796  0
   jjtreeOpenNodeScope(jjtn000);
 1797  
     try {
 1798  0
       jj_consume_token(STRING_START);
 1799  
       label_18:
 1800  
       while (true) {
 1801  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1802  
         case EXP_START:
 1803  
         case STRING_BODY:
 1804  
         case STRING_DOLLAR:
 1805  
           ;
 1806  0
           break;
 1807  
         default:
 1808  0
           jj_la1[23] = jj_gen;
 1809  0
           break label_18;
 1810  
         }
 1811  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1812  
         case STRING_BODY:
 1813  
         case STRING_DOLLAR:
 1814  0
         WikiText jjtn001 = new WikiText(this, JJTTEXT);
 1815  0
         boolean jjtc001 = true;
 1816  0
         jjtree.openNodeScope(jjtn001);
 1817  0
         jjtreeOpenNodeScope(jjtn001);
 1818  
           try {
 1819  0
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1820  
             case STRING_BODY:
 1821  0
               jj_consume_token(STRING_BODY);
 1822  0
               break;
 1823  
             case STRING_DOLLAR:
 1824  0
               jj_consume_token(STRING_DOLLAR);
 1825  0
               break;
 1826  
             default:
 1827  0
               jj_la1[24] = jj_gen;
 1828  0
               jj_consume_token(-1);
 1829  0
               throw new ParseException();
 1830  
             }
 1831  0
                                            jjtree.closeNodeScope(jjtn001, true);
 1832  0
                                            jjtc001 = false;
 1833  0
                                            jjtreeCloseNodeScope(jjtn001);
 1834  0
                                            jjtn001.setText(WikiStringLiteral.filterString(getToken(0).image));
 1835  
           } finally {
 1836  0
         if (jjtc001) {
 1837  0
           jjtree.closeNodeScope(jjtn001, true);
 1838  0
           jjtreeCloseNodeScope(jjtn001);
 1839  
         }
 1840  
           }
 1841  0
           break;
 1842  
         case EXP_START:
 1843  0
           Expression();
 1844  0
           break;
 1845  
         default:
 1846  0
           jj_la1[25] = jj_gen;
 1847  0
           jj_consume_token(-1);
 1848  0
           throw new ParseException();
 1849  
         }
 1850  
       }
 1851  0
       jj_consume_token(STRING_END);
 1852  0
     } catch (Throwable jjte000) {
 1853  0
     if (jjtc000) {
 1854  0
       jjtree.clearNodeScope(jjtn000);
 1855  0
       jjtc000 = false;
 1856  
     } else {
 1857  0
       jjtree.popNode();
 1858  
     }
 1859  0
     if (jjte000 instanceof RuntimeException) {
 1860  0
       {if (true) throw (RuntimeException)jjte000;}
 1861  
     }
 1862  0
     if (jjte000 instanceof ParseException) {
 1863  0
       {if (true) throw (ParseException)jjte000;}
 1864  
     }
 1865  0
     {if (true) throw (Error)jjte000;}
 1866  
     } finally {
 1867  0
     if (jjtc000) {
 1868  0
       jjtree.closeNodeScope(jjtn000, true);
 1869  0
       jjtreeCloseNodeScope(jjtn000);
 1870  
     }
 1871  
     }
 1872  0
   }
 1873  
 
 1874  
   final public void Break() throws ParseException {
 1875  
  /*@bgen(jjtree) Break */
 1876  0
   WikiBreak jjtn000 = new WikiBreak(this, JJTBREAK);
 1877  0
   boolean jjtc000 = true;
 1878  0
   jjtree.openNodeScope(jjtn000);
 1879  0
   jjtreeOpenNodeScope(jjtn000);
 1880  
     try {
 1881  0
       jj_consume_token(D_BSLASH);
 1882  
     } finally {
 1883  0
     if (jjtc000) {
 1884  0
       jjtree.closeNodeScope(jjtn000, true);
 1885  0
       jjtreeCloseNodeScope(jjtn000);
 1886  
     }
 1887  
     }
 1888  0
   }
 1889  
 
 1890  
   final public void EmptyLink() throws ParseException {
 1891  
  /*@bgen(jjtree) Text */
 1892  0
   WikiText jjtn000 = new WikiText(this, JJTTEXT);
 1893  0
   boolean jjtc000 = true;
 1894  0
   jjtree.openNodeScope(jjtn000);
 1895  0
   jjtreeOpenNodeScope(jjtn000);Token t;
 1896  
     try {
 1897  0
       t = jj_consume_token(EMPTY_LINK);
 1898  0
                    jjtree.closeNodeScope(jjtn000, true);
 1899  0
                    jjtc000 = false;
 1900  0
                    jjtreeCloseNodeScope(jjtn000);
 1901  0
                    jjtn000.setText(t.image);
 1902  
     } finally {
 1903  0
     if (jjtc000) {
 1904  0
       jjtree.closeNodeScope(jjtn000, true);
 1905  0
       jjtreeCloseNodeScope(jjtn000);
 1906  
     }
 1907  
     }
 1908  0
   }
 1909  
 
 1910  
   final public void EscapedSquare() throws ParseException {
 1911  
  /*@bgen(jjtree) Text */
 1912  0
   WikiText jjtn000 = new WikiText(this, JJTTEXT);
 1913  0
   boolean jjtc000 = true;
 1914  0
   jjtree.openNodeScope(jjtn000);
 1915  0
   jjtreeOpenNodeScope(jjtn000);Token t;
 1916  
     try {
 1917  0
       t = jj_consume_token(ESCAPED_SQUARE);
 1918  0
                        jjtree.closeNodeScope(jjtn000, true);
 1919  0
                        jjtc000 = false;
 1920  0
                        jjtreeCloseNodeScope(jjtn000);
 1921  0
                        jjtn000.setText("[");
 1922  
     } finally {
 1923  0
     if (jjtc000) {
 1924  0
       jjtree.closeNodeScope(jjtn000, true);
 1925  0
       jjtreeCloseNodeScope(jjtn000);
 1926  
     }
 1927  
     }
 1928  0
   }
 1929  
 
 1930  
   final public void Expression() throws ParseException {
 1931  
  /*@bgen(jjtree) Expression */
 1932  0
   WikiExpression jjtn000 = new WikiExpression(this, JJTEXPRESSION);
 1933  0
   boolean jjtc000 = true;
 1934  0
   jjtree.openNodeScope(jjtn000);
 1935  0
   jjtreeOpenNodeScope(jjtn000);
 1936  
     try {
 1937  0
       jj_consume_token(EXP_START);
 1938  0
       Name();
 1939  0
       jj_consume_token(EXP_END);
 1940  0
     } catch (Throwable jjte000) {
 1941  0
     if (jjtc000) {
 1942  0
       jjtree.clearNodeScope(jjtn000);
 1943  0
       jjtc000 = false;
 1944  
     } else {
 1945  0
       jjtree.popNode();
 1946  
     }
 1947  0
     if (jjte000 instanceof RuntimeException) {
 1948  0
       {if (true) throw (RuntimeException)jjte000;}
 1949  
     }
 1950  0
     if (jjte000 instanceof ParseException) {
 1951  0
       {if (true) throw (ParseException)jjte000;}
 1952  
     }
 1953  0
     {if (true) throw (Error)jjte000;}
 1954  
     } finally {
 1955  0
     if (jjtc000) {
 1956  0
       jjtree.closeNodeScope(jjtn000, true);
 1957  0
       jjtreeCloseNodeScope(jjtn000);
 1958  
     }
 1959  
     }
 1960  0
   }
 1961  
 
 1962  
   final public void Name() throws ParseException {
 1963  
  /*@bgen(jjtree) Name */
 1964  0
   WikiName jjtn000 = new WikiName(this, JJTNAME);
 1965  0
   boolean jjtc000 = true;
 1966  0
   jjtree.openNodeScope(jjtn000);
 1967  0
   jjtreeOpenNodeScope(jjtn000);
 1968  
     try {
 1969  0
       NamePart();
 1970  
       label_19:
 1971  
       while (true) {
 1972  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 1973  
         case PERIOD:
 1974  
           ;
 1975  0
           break;
 1976  
         default:
 1977  0
           jj_la1[26] = jj_gen;
 1978  0
           break label_19;
 1979  
         }
 1980  0
         jj_consume_token(PERIOD);
 1981  0
         NamePart();
 1982  
       }
 1983  0
     } catch (Throwable jjte000) {
 1984  0
     if (jjtc000) {
 1985  0
       jjtree.clearNodeScope(jjtn000);
 1986  0
       jjtc000 = false;
 1987  
     } else {
 1988  0
       jjtree.popNode();
 1989  
     }
 1990  0
     if (jjte000 instanceof RuntimeException) {
 1991  0
       {if (true) throw (RuntimeException)jjte000;}
 1992  
     }
 1993  0
     if (jjte000 instanceof ParseException) {
 1994  0
       {if (true) throw (ParseException)jjte000;}
 1995  
     }
 1996  0
     {if (true) throw (Error)jjte000;}
 1997  
     } finally {
 1998  0
     if (jjtc000) {
 1999  0
       jjtree.closeNodeScope(jjtn000, true);
 2000  0
       jjtreeCloseNodeScope(jjtn000);
 2001  
     }
 2002  
     }
 2003  0
   }
 2004  
 
 2005  
   final public void NamePart() throws ParseException {
 2006  
  /*@bgen(jjtree) NamePart */
 2007  0
   WikiNamePart jjtn000 = new WikiNamePart(this, JJTNAMEPART);
 2008  0
   boolean jjtc000 = true;
 2009  0
   jjtree.openNodeScope(jjtn000);
 2010  0
   jjtreeOpenNodeScope(jjtn000);
 2011  
     try {
 2012  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2013  
       case IDENTIFIER:
 2014  0
         Identifier();
 2015  0
         break;
 2016  
       case EXP_START:
 2017  0
         Expression();
 2018  0
         break;
 2019  
       default:
 2020  0
         jj_la1[27] = jj_gen;
 2021  0
         jj_consume_token(-1);
 2022  0
         throw new ParseException();
 2023  
       }
 2024  
       label_20:
 2025  
       while (true) {
 2026  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2027  
         case ARRAY_START:
 2028  
           ;
 2029  0
           break;
 2030  
         default:
 2031  0
           jj_la1[28] = jj_gen;
 2032  0
           break label_20;
 2033  
         }
 2034  0
         ArrayIndex();
 2035  
       }
 2036  0
     } catch (Throwable jjte000) {
 2037  0
     if (jjtc000) {
 2038  0
       jjtree.clearNodeScope(jjtn000);
 2039  0
       jjtc000 = false;
 2040  
     } else {
 2041  0
       jjtree.popNode();
 2042  
     }
 2043  0
     if (jjte000 instanceof RuntimeException) {
 2044  0
       {if (true) throw (RuntimeException)jjte000;}
 2045  
     }
 2046  0
     if (jjte000 instanceof ParseException) {
 2047  0
       {if (true) throw (ParseException)jjte000;}
 2048  
     }
 2049  0
     {if (true) throw (Error)jjte000;}
 2050  
     } finally {
 2051  0
     if (jjtc000) {
 2052  0
       jjtree.closeNodeScope(jjtn000, true);
 2053  0
       jjtreeCloseNodeScope(jjtn000);
 2054  
     }
 2055  
     }
 2056  0
   }
 2057  
 
 2058  
   final public void ArrayIndex() throws ParseException {
 2059  
  /*@bgen(jjtree) ArrayIndex */
 2060  0
   WikiArrayIndex jjtn000 = new WikiArrayIndex(this, JJTARRAYINDEX);
 2061  0
   boolean jjtc000 = true;
 2062  0
   jjtree.openNodeScope(jjtn000);
 2063  0
   jjtreeOpenNodeScope(jjtn000);
 2064  
     try {
 2065  0
       jj_consume_token(ARRAY_START);
 2066  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2067  
       case INTEGER_LITERAL:
 2068  
       case FLOATING_POINT_LITERAL:
 2069  
       case CHARACTER_LITERAL:
 2070  
       case STRING_LITERAL:
 2071  0
         Literal();
 2072  0
         break;
 2073  
       case EXP_START:
 2074  
       case IDENTIFIER:
 2075  0
         Name();
 2076  0
         break;
 2077  
       default:
 2078  0
         jj_la1[29] = jj_gen;
 2079  0
         jj_consume_token(-1);
 2080  0
         throw new ParseException();
 2081  
       }
 2082  0
       jj_consume_token(ARRAY_END);
 2083  0
     } catch (Throwable jjte000) {
 2084  0
     if (jjtc000) {
 2085  0
       jjtree.clearNodeScope(jjtn000);
 2086  0
       jjtc000 = false;
 2087  
     } else {
 2088  0
       jjtree.popNode();
 2089  
     }
 2090  0
     if (jjte000 instanceof RuntimeException) {
 2091  0
       {if (true) throw (RuntimeException)jjte000;}
 2092  
     }
 2093  0
     if (jjte000 instanceof ParseException) {
 2094  0
       {if (true) throw (ParseException)jjte000;}
 2095  
     }
 2096  0
     {if (true) throw (Error)jjte000;}
 2097  
     } finally {
 2098  0
     if (jjtc000) {
 2099  0
       jjtree.closeNodeScope(jjtn000, true);
 2100  0
       jjtreeCloseNodeScope(jjtn000);
 2101  
     }
 2102  
     }
 2103  0
   }
 2104  
 
 2105  
   final public void Identifier() throws ParseException {
 2106  
  /*@bgen(jjtree) Identifier */
 2107  0
   WikiIdentifier jjtn000 = new WikiIdentifier(this, JJTIDENTIFIER);
 2108  0
   boolean jjtc000 = true;
 2109  0
   jjtree.openNodeScope(jjtn000);
 2110  0
   jjtreeOpenNodeScope(jjtn000);Token t;
 2111  
     try {
 2112  0
       t = jj_consume_token(IDENTIFIER);
 2113  0
     jjtree.closeNodeScope(jjtn000, true);
 2114  0
     jjtc000 = false;
 2115  0
     jjtreeCloseNodeScope(jjtn000);
 2116  0
     jjtn000.setName(t.image);
 2117  
     } finally {
 2118  0
     if (jjtc000) {
 2119  0
       jjtree.closeNodeScope(jjtn000, true);
 2120  0
       jjtreeCloseNodeScope(jjtn000);
 2121  
     }
 2122  
     }
 2123  0
   }
 2124  
 
 2125  
   final public void HR() throws ParseException {
 2126  
  /*@bgen(jjtree) HR */
 2127  5
   WikiHR jjtn000 = new WikiHR(this, JJTHR);
 2128  5
   boolean jjtc000 = true;
 2129  5
   jjtree.openNodeScope(jjtn000);
 2130  5
   jjtreeOpenNodeScope(jjtn000);
 2131  
     try {
 2132  5
       jj_consume_token(HR);
 2133  
     } finally {
 2134  5
     if (jjtc000) {
 2135  5
       jjtree.closeNodeScope(jjtn000, true);
 2136  5
       jjtreeCloseNodeScope(jjtn000);
 2137  
     }
 2138  
     }
 2139  5
   }
 2140  
 
 2141  
   final public void LinkTitle() throws ParseException {
 2142  
  /*@bgen(jjtree) LinkPart */
 2143  13
   WikiLinkPart jjtn000 = new WikiLinkPart(this, JJTLINKPART);
 2144  13
   boolean jjtc000 = true;
 2145  13
   jjtree.openNodeScope(jjtn000);
 2146  13
   jjtreeOpenNodeScope(jjtn000);StringBuilder sb = new StringBuilder();
 2147  
     try {
 2148  
       label_21:
 2149  
       while (true) {
 2150  26
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2151  
         case EXP_START:
 2152  
         case LINK_TITLE:
 2153  
           ;
 2154  13
           break;
 2155  
         default:
 2156  13
           jj_la1[30] = jj_gen;
 2157  13
           break label_21;
 2158  
         }
 2159  13
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2160  
         case LINK_TITLE:
 2161  13
       WikiText jjtn001 = new WikiText(this, JJTTEXT);
 2162  13
       boolean jjtc001 = true;
 2163  13
       jjtree.openNodeScope(jjtn001);
 2164  13
       jjtreeOpenNodeScope(jjtn001);
 2165  
           try {
 2166  
             label_22:
 2167  
             while (true) {
 2168  185
               jj_consume_token(LINK_TITLE);
 2169  185
                                   sb.append(getToken(0).image);
 2170  185
               if (jj_2_13(2)) {
 2171  
                 ;
 2172  
               } else {
 2173  
                 break label_22;
 2174  
               }
 2175  
             }
 2176  13
                                                                       jjtree.closeNodeScope(jjtn001, true);
 2177  13
                                                                       jjtc001 = false;
 2178  13
                                                                       jjtreeCloseNodeScope(jjtn001);
 2179  13
                                                                       jjtn001.setText(sb.toString()); sb.setLength(0);
 2180  
           } finally {
 2181  13
       if (jjtc001) {
 2182  0
         jjtree.closeNodeScope(jjtn001, true);
 2183  0
         jjtreeCloseNodeScope(jjtn001);
 2184  
       }
 2185  
           }
 2186  13
           break;
 2187  
         case EXP_START:
 2188  0
           Expression();
 2189  0
           break;
 2190  
         default:
 2191  0
           jj_la1[31] = jj_gen;
 2192  0
           jj_consume_token(-1);
 2193  0
           throw new ParseException();
 2194  
         }
 2195  
       }
 2196  0
     } catch (Throwable jjte000) {
 2197  0
     if (jjtc000) {
 2198  0
       jjtree.clearNodeScope(jjtn000);
 2199  0
       jjtc000 = false;
 2200  
     } else {
 2201  0
       jjtree.popNode();
 2202  
     }
 2203  0
     if (jjte000 instanceof RuntimeException) {
 2204  0
       {if (true) throw (RuntimeException)jjte000;}
 2205  
     }
 2206  0
     if (jjte000 instanceof ParseException) {
 2207  0
       {if (true) throw (ParseException)jjte000;}
 2208  
     }
 2209  0
     {if (true) throw (Error)jjte000;}
 2210  
     } finally {
 2211  13
     if (jjtc000) {
 2212  13
       jjtree.closeNodeScope(jjtn000, true);
 2213  13
       jjtreeCloseNodeScope(jjtn000);
 2214  
     }
 2215  
     }
 2216  13
   }
 2217  
 
 2218  
   final public void LinkLink() throws ParseException {
 2219  
  /*@bgen(jjtree) LinkPart */
 2220  4
   WikiLinkPart jjtn000 = new WikiLinkPart(this, JJTLINKPART);
 2221  4
   boolean jjtc000 = true;
 2222  4
   jjtree.openNodeScope(jjtn000);
 2223  4
   jjtreeOpenNodeScope(jjtn000);StringBuilder sb = new StringBuilder();
 2224  
     try {
 2225  
       label_23:
 2226  
       while (true) {
 2227  8
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2228  
         case EXP_START:
 2229  
         case LINK_LINK:
 2230  
           ;
 2231  4
           break;
 2232  
         default:
 2233  4
           jj_la1[32] = jj_gen;
 2234  4
           break label_23;
 2235  
         }
 2236  4
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2237  
         case LINK_LINK:
 2238  4
       WikiText jjtn001 = new WikiText(this, JJTTEXT);
 2239  4
       boolean jjtc001 = true;
 2240  4
       jjtree.openNodeScope(jjtn001);
 2241  4
       jjtreeOpenNodeScope(jjtn001);
 2242  
           try {
 2243  
             label_24:
 2244  
             while (true) {
 2245  93
               jj_consume_token(LINK_LINK);
 2246  93
                                  sb.append(getToken(0).image);
 2247  93
               if (jj_2_14(2)) {
 2248  
                 ;
 2249  
               } else {
 2250  
                 break label_24;
 2251  
               }
 2252  
             }
 2253  4
                                                                      jjtree.closeNodeScope(jjtn001, true);
 2254  4
                                                                      jjtc001 = false;
 2255  4
                                                                      jjtreeCloseNodeScope(jjtn001);
 2256  4
                                                                      jjtn001.setText(sb.toString()); sb.setLength(0);
 2257  
           } finally {
 2258  4
       if (jjtc001) {
 2259  0
         jjtree.closeNodeScope(jjtn001, true);
 2260  0
         jjtreeCloseNodeScope(jjtn001);
 2261  
       }
 2262  
           }
 2263  4
           break;
 2264  
         case EXP_START:
 2265  0
           Expression();
 2266  0
           break;
 2267  
         default:
 2268  0
           jj_la1[33] = jj_gen;
 2269  0
           jj_consume_token(-1);
 2270  0
           throw new ParseException();
 2271  
         }
 2272  
       }
 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  4
     if (jjtc000) {
 2289  4
       jjtree.closeNodeScope(jjtn000, true);
 2290  4
       jjtreeCloseNodeScope(jjtn000);
 2291  
     }
 2292  
     }
 2293  4
   }
 2294  
 
 2295  
   final public void Link() throws ParseException {
 2296  
  /*@bgen(jjtree) Link */
 2297  13
   WikiLink jjtn000 = new WikiLink(this, JJTLINK);
 2298  13
   boolean jjtc000 = true;
 2299  13
   jjtree.openNodeScope(jjtn000);
 2300  13
   jjtreeOpenNodeScope(jjtn000);Token t;
 2301  13
   StringBuilder sb = new StringBuilder();
 2302  
     try {
 2303  
       try {
 2304  13
         jj_consume_token(OSQ);
 2305  13
         LinkTitle();
 2306  13
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2307  
         case LINK_SEP:
 2308  4
           jj_consume_token(LINK_SEP);
 2309  4
           LinkLink();
 2310  4
           break;
 2311  
         default:
 2312  9
           jj_la1[34] = jj_gen;
 2313  
           ;
 2314  
         }
 2315  13
         jj_consume_token(CSQ);
 2316  0
       } catch (ParseException e) {
 2317  0
     switch (e.currentToken.next.kind) {
 2318  
       case LINK_SEP:
 2319  0
         error_skipto("link", "Empty Title", e, CSQ);
 2320  0
         break;
 2321  
       case LINK_NEWLINE:
 2322  0
         error_skipto("link", "Newline", e, CSQ);
 2323  0
         break;
 2324  
       case EOF:
 2325  0
         break;
 2326  
       default:
 2327  0
         {if (true) throw e;}
 2328  
     }
 2329  13
       }
 2330  0
     } catch (Throwable jjte000) {
 2331  0
     if (jjtc000) {
 2332  0
       jjtree.clearNodeScope(jjtn000);
 2333  0
       jjtc000 = false;
 2334  
     } else {
 2335  0
       jjtree.popNode();
 2336  
     }
 2337  0
     if (jjte000 instanceof RuntimeException) {
 2338  0
       {if (true) throw (RuntimeException)jjte000;}
 2339  
     }
 2340  0
     if (jjte000 instanceof ParseException) {
 2341  0
       {if (true) throw (ParseException)jjte000;}
 2342  
     }
 2343  0
     {if (true) throw (Error)jjte000;}
 2344  
     } finally {
 2345  13
     if (jjtc000) {
 2346  13
       jjtree.closeNodeScope(jjtn000, true);
 2347  13
       jjtreeCloseNodeScope(jjtn000);
 2348  
     }
 2349  
     }
 2350  13
   }
 2351  
 
 2352  
   final public void TextContent(StringBuilder sb) throws ParseException {
 2353  122
   Token t = getToken(1);
 2354  122
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2355  
     case TEXT:
 2356  115
       jj_consume_token(TEXT);
 2357  115
       break;
 2358  
     case FIRST_COLUMN_TEXT:
 2359  7
       jj_consume_token(FIRST_COLUMN_TEXT);
 2360  7
       break;
 2361  
     case IDENTIFIER:
 2362  0
       jj_consume_token(IDENTIFIER);
 2363  0
       break;
 2364  
     default:
 2365  0
       jj_la1[35] = jj_gen;
 2366  0
       jj_consume_token(-1);
 2367  0
       throw new ParseException();
 2368  
     }
 2369  122
   sb.append(t.image);
 2370  122
   }
 2371  
 
 2372  
   final public void Text() throws ParseException {
 2373  
  /*@bgen(jjtree) Text */
 2374  37
   WikiText jjtn000 = new WikiText(this, JJTTEXT);
 2375  37
   boolean jjtc000 = true;
 2376  37
   jjtree.openNodeScope(jjtn000);
 2377  37
   jjtreeOpenNodeScope(jjtn000);StringBuilder sb = new StringBuilder();
 2378  
     try {
 2379  
       try {
 2380  
         try {
 2381  
           label_25:
 2382  
           while (true) {
 2383  122
             TextContent(sb);
 2384  122
             if (jj_2_15(2)) {
 2385  
               ;
 2386  
             } else {
 2387  
               break label_25;
 2388  
             }
 2389  
           }
 2390  0
         } catch (Error e) {
 2391  0
         {if (true) throw e;}
 2392  0
         } catch (ParseException e) {
 2393  0
         sb.append(e.currentToken.image);
 2394  37
         }
 2395  
       } finally {
 2396  37
     jjtn000.setText(sb.toString());
 2397  37
       }
 2398  0
     } catch (Throwable jjte000) {
 2399  0
     if (jjtc000) {
 2400  0
       jjtree.clearNodeScope(jjtn000);
 2401  0
       jjtc000 = false;
 2402  
     } else {
 2403  0
       jjtree.popNode();
 2404  
     }
 2405  0
     if (jjte000 instanceof RuntimeException) {
 2406  0
       {if (true) throw (RuntimeException)jjte000;}
 2407  
     }
 2408  0
     if (jjte000 instanceof ParseException) {
 2409  0
       {if (true) throw (ParseException)jjte000;}
 2410  
     }
 2411  0
     {if (true) throw (Error)jjte000;}
 2412  
     } finally {
 2413  37
     if (jjtc000) {
 2414  37
       jjtree.closeNodeScope(jjtn000, true);
 2415  37
       jjtreeCloseNodeScope(jjtn000);
 2416  
     }
 2417  
     }
 2418  37
   }
 2419  
 
 2420  
   final public void Transclude() throws ParseException {
 2421  
  /*@bgen(jjtree) #Transclude( ! hadError) */
 2422  0
   WikiTransclude jjtn000 = new WikiTransclude(this, JJTTRANSCLUDE);
 2423  0
   boolean jjtc000 = true;
 2424  0
   jjtree.openNodeScope(jjtn000);
 2425  0
   jjtreeOpenNodeScope(jjtn000);Token start = getToken(1);
 2426  0
   boolean hadError = false;
 2427  
     try {
 2428  
       try {
 2429  0
         jj_consume_token(TRANSCLUDE_START);
 2430  0
         TranscludeTarget();
 2431  
         label_26:
 2432  
         while (true) {
 2433  0
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2434  
           case TRANSCLUDE_LINK:
 2435  
             ;
 2436  0
             break;
 2437  
           default:
 2438  0
             jj_la1[36] = jj_gen;
 2439  0
             break label_26;
 2440  
           }
 2441  0
           jj_consume_token(TRANSCLUDE_LINK);
 2442  0
           TranscludeTarget();
 2443  
         }
 2444  0
         jj_consume_token(CSQ);
 2445  0
       } catch (ParseException e) {
 2446  0
     System.err.println("current=" + e.currentToken.kind + ", next=" + e.currentToken.next.kind);
 2447  0
     hadError = true;
 2448  0
     flushNodes();
 2449  0
     if (e.currentToken.kind == TRANSCLUDE_START) {
 2450  0
       ParseError("transclude", "No target", start, NEWLINE, null);
 2451  
     //} else if (e.currentToken.next.kind == EOF) {
 2452  
     //  ParseError("bold", "Unclosed2:" + jjtree.nodeArity(), start, EOF, top);
 2453  
       //hadError = false;
 2454  0
     } else if (e.currentToken.kind == TRANSCLUDE_TARGET) {
 2455  
       // <EOF> after target, but before params or "]"
 2456  0
       ParseError("transclude", "Not closed", start, NEWLINE, null);
 2457  0
     } else if (e.currentToken.kind == TRANSCLUDE_PARAM_START) {
 2458  0
       ParseError("transclude", "No params", start, NEWLINE, null);
 2459  0
     } else if (e.currentToken.kind == IDENTIFIER) {
 2460  0
       ParseError("transclude", "No closing parenthesis", start, NEWLINE, null);
 2461  0
     } else if (e.currentToken.kind == EQUALS) {
 2462  0
       ParseError("transclude", "No closing parenthesis", start, NEWLINE, null);
 2463  
 //    } else if (e.currentToken.kind == TRANSCLUDE_RAW_VALUE) {
 2464  
 //      ParseError("transclude", "No closing parenthesis", start, NEWLINE, null);
 2465  0
     } else if (e.currentToken.kind == TRANSCLUDE_PARAM_END) {
 2466  0
       ParseError("transclude", "No closing parenthesis", start, NEWLINE, null);
 2467  0
     } else if (e.currentToken.kind == TRANSCLUDE_LINK) {
 2468  0
       ParseError("transclude", "No target after link", start, NEWLINE, null);
 2469  
     } else {
 2470  0
       {if (true) throw e;}
 2471  
     }
 2472  0
       }
 2473  0
     } catch (Throwable jjte000) {
 2474  0
     if (jjtc000) {
 2475  0
       jjtree.clearNodeScope(jjtn000);
 2476  0
       jjtc000 = false;
 2477  
     } else {
 2478  0
       jjtree.popNode();
 2479  
     }
 2480  0
     if (jjte000 instanceof RuntimeException) {
 2481  0
       {if (true) throw (RuntimeException)jjte000;}
 2482  
     }
 2483  0
     if (jjte000 instanceof ParseException) {
 2484  0
       {if (true) throw (ParseException)jjte000;}
 2485  
     }
 2486  0
     {if (true) throw (Error)jjte000;}
 2487  
     } finally {
 2488  0
     if (jjtc000) {
 2489  0
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 2490  0
       jjtreeCloseNodeScope(jjtn000);
 2491  
     }
 2492  
     }
 2493  0
   }
 2494  
 
 2495  
   final public void TranscludeTarget() throws ParseException {
 2496  
  /*@bgen(jjtree) TranscludeTarget */
 2497  0
   WikiTranscludeTarget jjtn000 = new WikiTranscludeTarget(this, JJTTRANSCLUDETARGET);
 2498  0
   boolean jjtc000 = true;
 2499  0
   jjtree.openNodeScope(jjtn000);
 2500  0
   jjtreeOpenNodeScope(jjtn000);Token t;
 2501  
     try {
 2502  0
       t = jj_consume_token(TRANSCLUDE_TARGET);
 2503  0
     jjtn000.setTarget(t.image);
 2504  0
       TranscludeParams();
 2505  0
     } catch (Throwable jjte000) {
 2506  0
     if (jjtc000) {
 2507  0
       jjtree.clearNodeScope(jjtn000);
 2508  0
       jjtc000 = false;
 2509  
     } else {
 2510  0
       jjtree.popNode();
 2511  
     }
 2512  0
     if (jjte000 instanceof RuntimeException) {
 2513  0
       {if (true) throw (RuntimeException)jjte000;}
 2514  
     }
 2515  0
     if (jjte000 instanceof ParseException) {
 2516  0
       {if (true) throw (ParseException)jjte000;}
 2517  
     }
 2518  0
     {if (true) throw (Error)jjte000;}
 2519  
     } finally {
 2520  0
     if (jjtc000) {
 2521  0
       jjtree.closeNodeScope(jjtn000, true);
 2522  0
       jjtreeCloseNodeScope(jjtn000);
 2523  
     }
 2524  
     }
 2525  0
   }
 2526  
 
 2527  
   final public void TranscludeParams() throws ParseException {
 2528  0
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2529  
     case TRANSCLUDE_PARAM_START:
 2530  0
       jj_consume_token(TRANSCLUDE_PARAM_START);
 2531  
       label_27:
 2532  
       while (true) {
 2533  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2534  
         case IDENTIFIER:
 2535  
           ;
 2536  0
           break;
 2537  
         default:
 2538  0
           jj_la1[37] = jj_gen;
 2539  0
           break label_27;
 2540  
         }
 2541  0
         TranscludeParam();
 2542  
       }
 2543  0
       jj_consume_token(TRANSCLUDE_PARAM_END);
 2544  0
       break;
 2545  
     default:
 2546  0
       jj_la1[38] = jj_gen;
 2547  
       ;
 2548  
     }
 2549  0
   }
 2550  
 
 2551  
   final public void TranscludeParam() throws ParseException {
 2552  
  /*@bgen(jjtree) TranscludeParam */
 2553  0
   WikiTranscludeParam jjtn000 = new WikiTranscludeParam(this, JJTTRANSCLUDEPARAM);
 2554  0
   boolean jjtc000 = true;
 2555  0
   jjtree.openNodeScope(jjtn000);
 2556  0
   jjtreeOpenNodeScope(jjtn000);
 2557  
     try {
 2558  0
       TranscludeParamName();
 2559  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2560  
       case EQUALS:
 2561  0
         jj_consume_token(EQUALS);
 2562  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2563  
         case EXP_START:
 2564  
         case INTEGER_LITERAL:
 2565  
         case FLOATING_POINT_LITERAL:
 2566  
         case CHARACTER_LITERAL:
 2567  
         case STRING_LITERAL:
 2568  
         case STRING_START:
 2569  0
           Value();
 2570  0
           break;
 2571  
         default:
 2572  0
           jj_la1[39] = jj_gen;
 2573  
           ;
 2574  
         }
 2575  0
         break;
 2576  
       default:
 2577  0
         jj_la1[40] = jj_gen;
 2578  
         ;
 2579  
       }
 2580  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2581  
       case TRANSCLUDE_VALUE_SEPARATOR:
 2582  0
         jj_consume_token(TRANSCLUDE_VALUE_SEPARATOR);
 2583  0
         break;
 2584  
       default:
 2585  0
         jj_la1[41] = jj_gen;
 2586  
         ;
 2587  
       }
 2588  0
     } catch (Throwable jjte000) {
 2589  0
     if (jjtc000) {
 2590  0
       jjtree.clearNodeScope(jjtn000);
 2591  0
       jjtc000 = false;
 2592  
     } else {
 2593  0
       jjtree.popNode();
 2594  
     }
 2595  0
     if (jjte000 instanceof RuntimeException) {
 2596  0
       {if (true) throw (RuntimeException)jjte000;}
 2597  
     }
 2598  0
     if (jjte000 instanceof ParseException) {
 2599  0
       {if (true) throw (ParseException)jjte000;}
 2600  
     }
 2601  0
     {if (true) throw (Error)jjte000;}
 2602  
     } finally {
 2603  0
     if (jjtc000) {
 2604  0
       jjtree.closeNodeScope(jjtn000, true);
 2605  0
       jjtreeCloseNodeScope(jjtn000);
 2606  
     }
 2607  
     }
 2608  0
   }
 2609  
 
 2610  
   final public void TranscludeParamName() throws ParseException {
 2611  
  /*@bgen(jjtree) TranscludeParamName */
 2612  0
   WikiTranscludeParamName jjtn000 = new WikiTranscludeParamName(this, JJTTRANSCLUDEPARAMNAME);
 2613  0
   boolean jjtc000 = true;
 2614  0
   jjtree.openNodeScope(jjtn000);
 2615  0
   jjtreeOpenNodeScope(jjtn000);Token name;
 2616  
     try {
 2617  0
       name = jj_consume_token(IDENTIFIER);
 2618  0
     jjtree.closeNodeScope(jjtn000, true);
 2619  0
     jjtc000 = false;
 2620  0
     jjtreeCloseNodeScope(jjtn000);
 2621  0
     jjtn000.setName(name.image);
 2622  
     } finally {
 2623  0
     if (jjtc000) {
 2624  0
       jjtree.closeNodeScope(jjtn000, true);
 2625  0
       jjtreeCloseNodeScope(jjtn000);
 2626  
     }
 2627  
     }
 2628  0
   }
 2629  
 
 2630  
   final public void Literal() throws ParseException {
 2631  0
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2632  
     case INTEGER_LITERAL:
 2633  0
       IntegerLiteral();
 2634  0
       break;
 2635  
     case FLOATING_POINT_LITERAL:
 2636  0
       FloatingPointLiteral();
 2637  0
       break;
 2638  
     case CHARACTER_LITERAL:
 2639  0
       CharacterLiteral();
 2640  0
       break;
 2641  
     case STRING_LITERAL:
 2642  0
       StringLiteral();
 2643  0
       break;
 2644  
     default:
 2645  0
       jj_la1[42] = jj_gen;
 2646  0
       jj_consume_token(-1);
 2647  0
       throw new ParseException();
 2648  
     }
 2649  0
   }
 2650  
 
 2651  
   final public void IntegerLiteral() throws ParseException {
 2652  
  /*@bgen(jjtree) IntegerLiteral */
 2653  0
   WikiIntegerLiteral jjtn000 = new WikiIntegerLiteral(this, JJTINTEGERLITERAL);
 2654  0
   boolean jjtc000 = true;
 2655  0
   jjtree.openNodeScope(jjtn000);
 2656  0
   jjtreeOpenNodeScope(jjtn000);
 2657  
     try {
 2658  0
       jj_consume_token(INTEGER_LITERAL);
 2659  0
     jjtree.closeNodeScope(jjtn000, true);
 2660  0
     jjtc000 = false;
 2661  0
     jjtreeCloseNodeScope(jjtn000);
 2662  0
     jjtn000.setStringValue(getToken(0).image);
 2663  
     } finally {
 2664  0
     if (jjtc000) {
 2665  0
       jjtree.closeNodeScope(jjtn000, true);
 2666  0
       jjtreeCloseNodeScope(jjtn000);
 2667  
     }
 2668  
     }
 2669  0
   }
 2670  
 
 2671  
   final public void FloatingPointLiteral() throws ParseException {
 2672  
  /*@bgen(jjtree) FloatingPointLiteral */
 2673  0
   WikiFloatingPointLiteral jjtn000 = new WikiFloatingPointLiteral(this, JJTFLOATINGPOINTLITERAL);
 2674  0
   boolean jjtc000 = true;
 2675  0
   jjtree.openNodeScope(jjtn000);
 2676  0
   jjtreeOpenNodeScope(jjtn000);
 2677  
     try {
 2678  0
       jj_consume_token(FLOATING_POINT_LITERAL);
 2679  0
     jjtree.closeNodeScope(jjtn000, true);
 2680  0
     jjtc000 = false;
 2681  0
     jjtreeCloseNodeScope(jjtn000);
 2682  0
     jjtn000.setStringValue(getToken(0).image);
 2683  
     } finally {
 2684  0
     if (jjtc000) {
 2685  0
       jjtree.closeNodeScope(jjtn000, true);
 2686  0
       jjtreeCloseNodeScope(jjtn000);
 2687  
     }
 2688  
     }
 2689  0
   }
 2690  
 
 2691  
   final public void CharacterLiteral() throws ParseException {
 2692  
  /*@bgen(jjtree) CharacterLiteral */
 2693  0
   WikiCharacterLiteral jjtn000 = new WikiCharacterLiteral(this, JJTCHARACTERLITERAL);
 2694  0
   boolean jjtc000 = true;
 2695  0
   jjtree.openNodeScope(jjtn000);
 2696  0
   jjtreeOpenNodeScope(jjtn000);
 2697  
     try {
 2698  0
       jj_consume_token(CHARACTER_LITERAL);
 2699  0
     jjtree.closeNodeScope(jjtn000, true);
 2700  0
     jjtc000 = false;
 2701  0
     jjtreeCloseNodeScope(jjtn000);
 2702  0
     jjtn000.setStringValue(getToken(0).image);
 2703  
     } finally {
 2704  0
     if (jjtc000) {
 2705  0
       jjtree.closeNodeScope(jjtn000, true);
 2706  0
       jjtreeCloseNodeScope(jjtn000);
 2707  
     }
 2708  
     }
 2709  0
   }
 2710  
 
 2711  
   final public void StringLiteral() throws ParseException {
 2712  
  /*@bgen(jjtree) StringLiteral */
 2713  0
   WikiStringLiteral jjtn000 = new WikiStringLiteral(this, JJTSTRINGLITERAL);
 2714  0
   boolean jjtc000 = true;
 2715  0
   jjtree.openNodeScope(jjtn000);
 2716  0
   jjtreeOpenNodeScope(jjtn000);
 2717  
     try {
 2718  0
       jj_consume_token(STRING_LITERAL);
 2719  0
     jjtree.closeNodeScope(jjtn000, true);
 2720  0
     jjtc000 = false;
 2721  0
     jjtreeCloseNodeScope(jjtn000);
 2722  0
     jjtn000.setStringValue(getToken(0).image);
 2723  
     } finally {
 2724  0
     if (jjtc000) {
 2725  0
       jjtree.closeNodeScope(jjtn000, true);
 2726  0
       jjtreeCloseNodeScope(jjtn000);
 2727  
     }
 2728  
     }
 2729  0
   }
 2730  
 
 2731  
   final public void Bold() throws ParseException {
 2732  
  /*@bgen(jjtree) #Bold( ! hadError) */
 2733  3
   WikiBold jjtn000 = new WikiBold(this, JJTBOLD);
 2734  3
   boolean jjtc000 = true;
 2735  3
   jjtree.openNodeScope(jjtn000);
 2736  3
   jjtreeOpenNodeScope(jjtn000);boolean hadError = false;
 2737  3
   Token start = getToken(1);
 2738  3
   enableCloseToken(DU);
 2739  
     try {
 2740  
       try {
 2741  3
         jj_consume_token(DU);
 2742  
         label_28:
 2743  
         while (true) {
 2744  8
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2745  
           case DOC:
 2746  
           case DCC:
 2747  
           case OSQ:
 2748  
           case DSQ:
 2749  
           case D_BSLASH:
 2750  
           case HR:
 2751  
           case TRANSCLUDE_START:
 2752  
           case ESCAPED_SQUARE:
 2753  
           case EMPTY_LINK:
 2754  
           case PIPE:
 2755  
           case CONTROL_START:
 2756  
           case DPIPE:
 2757  
           case EXP_START:
 2758  
           case SPACE:
 2759  
           case IDENTIFIER:
 2760  
           case NEWLINE:
 2761  
           case FIRST_COLUMN_TEXT:
 2762  
           case TEXT:
 2763  
             ;
 2764  5
             break;
 2765  
           default:
 2766  3
             jj_la1[43] = jj_gen;
 2767  3
             break label_28;
 2768  
           }
 2769  5
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2770  
           case DSQ:
 2771  1
             Italics();
 2772  1
             break;
 2773  
           case DOC:
 2774  
           case DCC:
 2775  
           case OSQ:
 2776  
           case D_BSLASH:
 2777  
           case HR:
 2778  
           case TRANSCLUDE_START:
 2779  
           case ESCAPED_SQUARE:
 2780  
           case EMPTY_LINK:
 2781  
           case PIPE:
 2782  
           case CONTROL_START:
 2783  
           case DPIPE:
 2784  
           case EXP_START:
 2785  
           case SPACE:
 2786  
           case IDENTIFIER:
 2787  
           case FIRST_COLUMN_TEXT:
 2788  
           case TEXT:
 2789  4
             InlineWrap(true);
 2790  4
             break;
 2791  
           case NEWLINE:
 2792  0
             Newline();
 2793  0
             break;
 2794  
           default:
 2795  0
             jj_la1[44] = jj_gen;
 2796  0
             jj_consume_token(-1);
 2797  0
             throw new ParseException();
 2798  
           }
 2799  
         }
 2800  3
         jj_consume_token(DU);
 2801  0
       } catch (CloseTokenFoundException e) {
 2802  0
     {if (true) throw e;}
 2803  0
       } catch (ParseException e) {
 2804  0
     hadError = true;
 2805  0
     Node top = flushNodes();
 2806  0
     if (e.currentToken.kind == DU) {
 2807  0
       ParseError("bold", "Unclosed1", start, NEWLINE, top);
 2808  0
     } else if (e.currentToken.next.kind == EOF) {
 2809  0
       ParseError("bold", "Unclosed2:" + jjtree.nodeArity(), start, EOF, top);
 2810  
       //hadError = false;
 2811  
     } else {
 2812  0
       {if (true) throw e;}
 2813  
     }
 2814  3
       }
 2815  0
     } catch (Throwable jjte000) {
 2816  0
     if (jjtc000) {
 2817  0
       jjtree.clearNodeScope(jjtn000);
 2818  0
       jjtc000 = false;
 2819  
     } else {
 2820  0
       jjtree.popNode();
 2821  
     }
 2822  0
     if (jjte000 instanceof RuntimeException) {
 2823  0
       {if (true) throw (RuntimeException)jjte000;}
 2824  
     }
 2825  0
     if (jjte000 instanceof ParseException) {
 2826  0
       {if (true) throw (ParseException)jjte000;}
 2827  
     }
 2828  0
     {if (true) throw (Error)jjte000;}
 2829  
     } finally {
 2830  3
     if (jjtc000) {
 2831  3
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 2832  3
       jjtreeCloseNodeScope(jjtn000);
 2833  
     }
 2834  
     }
 2835  3
   }
 2836  
 
 2837  
   final public void Italics() throws ParseException {
 2838  
  /*@bgen(jjtree) #Italics( ! hadError) */
 2839  2
   WikiItalics jjtn000 = new WikiItalics(this, JJTITALICS);
 2840  2
   boolean jjtc000 = true;
 2841  2
   jjtree.openNodeScope(jjtn000);
 2842  2
   jjtreeOpenNodeScope(jjtn000);boolean hadError = false;
 2843  2
   Token start = getToken(1);
 2844  2
   enableCloseToken(DSQ);
 2845  
     try {
 2846  
       try {
 2847  2
         jj_consume_token(DSQ);
 2848  
         label_29:
 2849  
         while (true) {
 2850  5
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2851  
           case DOC:
 2852  
           case DCC:
 2853  
           case OSQ:
 2854  
           case DU:
 2855  
           case D_BSLASH:
 2856  
           case HR:
 2857  
           case TRANSCLUDE_START:
 2858  
           case ESCAPED_SQUARE:
 2859  
           case EMPTY_LINK:
 2860  
           case PIPE:
 2861  
           case CONTROL_START:
 2862  
           case DPIPE:
 2863  
           case EXP_START:
 2864  
           case SPACE:
 2865  
           case IDENTIFIER:
 2866  
           case NEWLINE:
 2867  
           case FIRST_COLUMN_TEXT:
 2868  
           case TEXT:
 2869  
             ;
 2870  3
             break;
 2871  
           default:
 2872  2
             jj_la1[45] = jj_gen;
 2873  2
             break label_29;
 2874  
           }
 2875  3
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2876  
           case DU:
 2877  1
             Bold();
 2878  1
             break;
 2879  
           case DOC:
 2880  
           case DCC:
 2881  
           case OSQ:
 2882  
           case D_BSLASH:
 2883  
           case HR:
 2884  
           case TRANSCLUDE_START:
 2885  
           case ESCAPED_SQUARE:
 2886  
           case EMPTY_LINK:
 2887  
           case PIPE:
 2888  
           case CONTROL_START:
 2889  
           case DPIPE:
 2890  
           case EXP_START:
 2891  
           case SPACE:
 2892  
           case IDENTIFIER:
 2893  
           case FIRST_COLUMN_TEXT:
 2894  
           case TEXT:
 2895  2
             InlineWrap(true);
 2896  2
             break;
 2897  
           case NEWLINE:
 2898  0
             Newline();
 2899  0
             break;
 2900  
           default:
 2901  0
             jj_la1[46] = jj_gen;
 2902  0
             jj_consume_token(-1);
 2903  0
             throw new ParseException();
 2904  
           }
 2905  
         }
 2906  2
         jj_consume_token(DSQ);
 2907  0
       } catch (CloseTokenFoundException e) {
 2908  0
     if (e.getKind() != DSQ) {if (true) throw e;}
 2909  0
       } catch (ParseException e) {
 2910  0
     hadError = true;
 2911  0
     Node top = flushNodes();
 2912  0
     if (e.currentToken.kind == DSQ) {
 2913  0
       ParseError("italics", "Unclosed1", start, NEWLINE, top);
 2914  0
     } else if (e.currentToken.next.kind == EOF) {
 2915  0
       ParseError("italics", "Unclosed2:" + jjtree.nodeArity(), start, EOF, top);
 2916  
       //hadError = false;
 2917  
     } else {
 2918  0
       {if (true) throw e;}
 2919  
     }
 2920  
       } finally {
 2921  2
     disableCloseToken(DSQ);
 2922  2
       }
 2923  0
     } catch (Throwable jjte000) {
 2924  0
     if (jjtc000) {
 2925  0
       jjtree.clearNodeScope(jjtn000);
 2926  0
       jjtc000 = false;
 2927  
     } else {
 2928  0
       jjtree.popNode();
 2929  
     }
 2930  0
     if (jjte000 instanceof RuntimeException) {
 2931  0
       {if (true) throw (RuntimeException)jjte000;}
 2932  
     }
 2933  0
     if (jjte000 instanceof ParseException) {
 2934  0
       {if (true) throw (ParseException)jjte000;}
 2935  
     }
 2936  0
     {if (true) throw (Error)jjte000;}
 2937  
     } finally {
 2938  2
     if (jjtc000) {
 2939  2
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 2940  2
       jjtreeCloseNodeScope(jjtn000);
 2941  
     }
 2942  
     }
 2943  2
   }
 2944  
 
 2945  
   final public void Mono() throws ParseException {
 2946  
  /*@bgen(jjtree) #Mono( ! hadError) */
 2947  1
   WikiMono jjtn000 = new WikiMono(this, JJTMONO);
 2948  1
   boolean jjtc000 = true;
 2949  1
   jjtree.openNodeScope(jjtn000);
 2950  1
   jjtreeOpenNodeScope(jjtn000);boolean hadError = false;
 2951  1
   Token start = getToken(1);
 2952  1
   enableCloseToken(DCC);
 2953  
     try {
 2954  
       try {
 2955  1
         jj_consume_token(DOC);
 2956  
         label_30:
 2957  
         while (true) {
 2958  1
           if (jj_2_16(2)) {
 2959  
             ;
 2960  
           } else {
 2961  
             break label_30;
 2962  
           }
 2963  1
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 2964  
           case DOC:
 2965  
           case DCC:
 2966  
           case OSQ:
 2967  
           case DU:
 2968  
           case DSQ:
 2969  
           case D_BSLASH:
 2970  
           case HR:
 2971  
           case TRANSCLUDE_START:
 2972  
           case ESCAPED_SQUARE:
 2973  
           case EMPTY_LINK:
 2974  
           case PIPE:
 2975  
           case CONTROL_START:
 2976  
           case DPIPE:
 2977  
           case EXP_START:
 2978  
           case SPACE:
 2979  
           case IDENTIFIER:
 2980  
           case FIRST_COLUMN_TEXT:
 2981  
           case TEXT:
 2982  1
             Inline();
 2983  0
             break;
 2984  
           case NEWLINE:
 2985  0
             Newline();
 2986  0
             break;
 2987  
           default:
 2988  0
             jj_la1[47] = jj_gen;
 2989  0
             jj_consume_token(-1);
 2990  0
             throw new ParseException();
 2991  
           }
 2992  
         }
 2993  1
       } catch (CloseTokenFoundException e) {
 2994  1
     if (e.getKind() != DCC) {if (true) throw e;}
 2995  0
       } catch (ParseException e) {
 2996  0
     hadError = true;
 2997  0
     Node top = flushNodes();
 2998  0
     if (e.currentToken.kind == DOC) {
 2999  0
       ParseError("mono", "Unclosed1", start, NEWLINE, top);
 3000  0
     } else if (e.currentToken.next.kind == EOF) {
 3001  0
       ParseError("mono", "Unclosed2:" + jjtree.nodeArity(), start, EOF, top);
 3002  
      // hadError = false;
 3003  
     } else {
 3004  0
       {if (true) throw e;}
 3005  
     }
 3006  
       } finally {
 3007  1
     disableCloseToken(DCC);
 3008  1
       }
 3009  1
       jj_consume_token(DCC);
 3010  0
     } catch (Throwable jjte000) {
 3011  0
     if (jjtc000) {
 3012  0
       jjtree.clearNodeScope(jjtn000);
 3013  0
       jjtc000 = false;
 3014  
     } else {
 3015  0
       jjtree.popNode();
 3016  
     }
 3017  0
     if (jjte000 instanceof RuntimeException) {
 3018  0
       {if (true) throw (RuntimeException)jjte000;}
 3019  
     }
 3020  0
     if (jjte000 instanceof ParseException) {
 3021  0
       {if (true) throw (ParseException)jjte000;}
 3022  
     }
 3023  0
     {if (true) throw (Error)jjte000;}
 3024  
     } finally {
 3025  1
     if (jjtc000) {
 3026  1
       jjtree.closeNodeScope(jjtn000,  ! hadError);
 3027  1
       jjtreeCloseNodeScope(jjtn000);
 3028  
     }
 3029  
     }
 3030  1
   }
 3031  
 
 3032  
   final public void Attribute() throws ParseException {
 3033  
  /*@bgen(jjtree) Attribute */
 3034  0
   WikiAttribute jjtn000 = new WikiAttribute(this, JJTATTRIBUTE);
 3035  0
   boolean jjtc000 = true;
 3036  0
   jjtree.openNodeScope(jjtn000);
 3037  0
   jjtreeOpenNodeScope(jjtn000);
 3038  
     try {
 3039  0
       jj_consume_token(SPACE);
 3040  0
       Name();
 3041  0
       jj_consume_token(EQUALS);
 3042  0
       Expression();
 3043  0
     } catch (Throwable jjte000) {
 3044  0
    if (jjtc000) {
 3045  0
      jjtree.clearNodeScope(jjtn000);
 3046  0
      jjtc000 = false;
 3047  
    } else {
 3048  0
      jjtree.popNode();
 3049  
    }
 3050  0
    if (jjte000 instanceof RuntimeException) {
 3051  0
      {if (true) throw (RuntimeException)jjte000;}
 3052  
    }
 3053  0
    if (jjte000 instanceof ParseException) {
 3054  0
      {if (true) throw (ParseException)jjte000;}
 3055  
    }
 3056  0
    {if (true) throw (Error)jjte000;}
 3057  
     } finally {
 3058  0
    if (jjtc000) {
 3059  0
      jjtree.closeNodeScope(jjtn000, true);
 3060  0
      jjtreeCloseNodeScope(jjtn000);
 3061  
    }
 3062  
     }
 3063  0
   }
 3064  
 
 3065  
   final public void NewTable() throws ParseException {
 3066  
  /*@bgen(jjtree) Table */
 3067  0
   WikiTable jjtn000 = new WikiTable(this, JJTTABLE);
 3068  0
   boolean jjtc000 = true;
 3069  0
   jjtree.openNodeScope(jjtn000);
 3070  0
   jjtreeOpenNodeScope(jjtn000);
 3071  
     try {
 3072  0
       jj_consume_token(NEW_TABLE_START);
 3073  
       label_31:
 3074  
       while (true) {
 3075  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3076  
         case SPACE:
 3077  
           ;
 3078  0
           break;
 3079  
         default:
 3080  0
           jj_la1[48] = jj_gen;
 3081  0
           break label_31;
 3082  
         }
 3083  0
         Attribute();
 3084  
       }
 3085  0
       Newline();
 3086  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3087  
       case NEW_TABLE_CAPTION:
 3088  0
         NewTableCaption();
 3089  0
         break;
 3090  
       default:
 3091  0
         jj_la1[49] = jj_gen;
 3092  
         ;
 3093  
       }
 3094  
       label_32:
 3095  
       while (true) {
 3096  0
         NewTableRow();
 3097  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3098  
         case PIPE:
 3099  
         case EXP:
 3100  
         case NEW_TABLE_ROW_DIVIDER:
 3101  
           ;
 3102  0
           break;
 3103  
         default:
 3104  0
           jj_la1[50] = jj_gen;
 3105  0
           break label_32;
 3106  
         }
 3107  
       }
 3108  0
       jj_consume_token(NEW_TABLE_END);
 3109  0
     } catch (Throwable jjte000) {
 3110  0
    if (jjtc000) {
 3111  0
      jjtree.clearNodeScope(jjtn000);
 3112  0
      jjtc000 = false;
 3113  
    } else {
 3114  0
      jjtree.popNode();
 3115  
    }
 3116  0
    if (jjte000 instanceof RuntimeException) {
 3117  0
      {if (true) throw (RuntimeException)jjte000;}
 3118  
    }
 3119  0
    if (jjte000 instanceof ParseException) {
 3120  0
      {if (true) throw (ParseException)jjte000;}
 3121  
    }
 3122  0
    {if (true) throw (Error)jjte000;}
 3123  
     } finally {
 3124  0
    if (jjtc000) {
 3125  0
      jjtree.closeNodeScope(jjtn000, true);
 3126  0
      jjtreeCloseNodeScope(jjtn000);
 3127  
    }
 3128  
     }
 3129  0
   }
 3130  
 
 3131  
   final public void NewTableCaption() throws ParseException {
 3132  
  /*@bgen(jjtree) TableCaption */
 3133  0
   WikiTableCaption jjtn000 = new WikiTableCaption(this, JJTTABLECAPTION);
 3134  0
   boolean jjtc000 = true;
 3135  0
   jjtree.openNodeScope(jjtn000);
 3136  0
   jjtreeOpenNodeScope(jjtn000);
 3137  
     try {
 3138  0
       jj_consume_token(NEW_TABLE_CAPTION);
 3139  0
       Inline();
 3140  0
       Newline();
 3141  0
     } catch (Throwable jjte000) {
 3142  0
     if (jjtc000) {
 3143  0
       jjtree.clearNodeScope(jjtn000);
 3144  0
       jjtc000 = false;
 3145  
     } else {
 3146  0
       jjtree.popNode();
 3147  
     }
 3148  0
     if (jjte000 instanceof RuntimeException) {
 3149  0
       {if (true) throw (RuntimeException)jjte000;}
 3150  
     }
 3151  0
     if (jjte000 instanceof ParseException) {
 3152  0
       {if (true) throw (ParseException)jjte000;}
 3153  
     }
 3154  0
     {if (true) throw (Error)jjte000;}
 3155  
     } finally {
 3156  0
     if (jjtc000) {
 3157  0
       jjtree.closeNodeScope(jjtn000, true);
 3158  0
       jjtreeCloseNodeScope(jjtn000);
 3159  
     }
 3160  
     }
 3161  0
   }
 3162  
 
 3163  
   final public void NewTableRow() throws ParseException {
 3164  
  /*@bgen(jjtree) TableRow */
 3165  0
   WikiTableRow jjtn000 = new WikiTableRow(this, JJTTABLEROW);
 3166  0
   boolean jjtc000 = true;
 3167  0
   jjtree.openNodeScope(jjtn000);
 3168  0
   jjtreeOpenNodeScope(jjtn000);enableCloseToken(DPIPE);
 3169  
     try {
 3170  
       try {
 3171  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3172  
         case NEW_TABLE_ROW_DIVIDER:
 3173  0
           jj_consume_token(NEW_TABLE_ROW_DIVIDER);
 3174  0
           Newline();
 3175  0
           break;
 3176  
         default:
 3177  0
           jj_la1[51] = jj_gen;
 3178  
           ;
 3179  
         }
 3180  0
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3181  
         case PIPE:
 3182  0
           NewTableData();
 3183  0
           break;
 3184  
         case EXP:
 3185  0
           NewTableHeader();
 3186  0
           break;
 3187  
         default:
 3188  0
           jj_la1[52] = jj_gen;
 3189  0
           jj_consume_token(-1);
 3190  0
           throw new ParseException();
 3191  
         }
 3192  
         label_33:
 3193  
         while (true) {
 3194  0
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3195  
           case PIPE:
 3196  
           case DPIPE:
 3197  
             ;
 3198  0
             break;
 3199  
           default:
 3200  0
             jj_la1[53] = jj_gen;
 3201  0
             break label_33;
 3202  
           }
 3203  0
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3204  
           case PIPE:
 3205  0
             jj_consume_token(PIPE);
 3206  0
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3207  
             case PIPE:
 3208  0
               NewTableData();
 3209  0
               break;
 3210  
             case EXP:
 3211  0
               NewTableHeader();
 3212  0
               break;
 3213  
             default:
 3214  0
               jj_la1[54] = jj_gen;
 3215  0
               jj_consume_token(-1);
 3216  0
               throw new ParseException();
 3217  
             }
 3218  
             break;
 3219  
           case DPIPE:
 3220  0
             jj_consume_token(DPIPE);
 3221  0
             NewTableDataContent();
 3222  0
             break;
 3223  
           default:
 3224  0
             jj_la1[55] = jj_gen;
 3225  0
             jj_consume_token(-1);
 3226  0
             throw new ParseException();
 3227  
           }
 3228  
         }
 3229  0
         Newline();
 3230  
       } finally {
 3231  0
     disableCloseToken(DPIPE);
 3232  0
       }
 3233  0
     } catch (Throwable jjte000) {
 3234  0
     if (jjtc000) {
 3235  0
       jjtree.clearNodeScope(jjtn000);
 3236  0
       jjtc000 = false;
 3237  
     } else {
 3238  0
       jjtree.popNode();
 3239  
     }
 3240  0
     if (jjte000 instanceof RuntimeException) {
 3241  0
       {if (true) throw (RuntimeException)jjte000;}
 3242  
     }
 3243  0
     if (jjte000 instanceof ParseException) {
 3244  0
       {if (true) throw (ParseException)jjte000;}
 3245  
     }
 3246  0
     {if (true) throw (Error)jjte000;}
 3247  
     } finally {
 3248  0
     if (jjtc000) {
 3249  0
       jjtree.closeNodeScope(jjtn000, true);
 3250  0
       jjtreeCloseNodeScope(jjtn000);
 3251  
     }
 3252  
     }
 3253  0
   }
 3254  
 
 3255  
   final public void NewTableData() throws ParseException {
 3256  0
     jj_consume_token(PIPE);
 3257  0
     NewTableDataContent();
 3258  0
   }
 3259  
 
 3260  
   final public void NewTableHeader() throws ParseException {
 3261  0
     jj_consume_token(EXP);
 3262  0
     NewTableHeaderContent();
 3263  0
   }
 3264  
 
 3265  
   final public void NewTableDataContent() throws ParseException {
 3266  
  /*@bgen(jjtree) TableData */
 3267  0
   WikiTableData jjtn000 = new WikiTableData(this, JJTTABLEDATA);
 3268  0
   boolean jjtc000 = true;
 3269  0
   jjtree.openNodeScope(jjtn000);
 3270  0
   jjtreeOpenNodeScope(jjtn000);
 3271  
     try {
 3272  
       try {
 3273  0
         NewTableCellContent();
 3274  0
       } catch (CloseTokenFoundException e) {
 3275  0
     if (e.getKind() != DPIPE) {if (true) throw e;}
 3276  0
       }
 3277  0
     } catch (Throwable jjte000) {
 3278  0
     if (jjtc000) {
 3279  0
       jjtree.clearNodeScope(jjtn000);
 3280  0
       jjtc000 = false;
 3281  
     } else {
 3282  0
       jjtree.popNode();
 3283  
     }
 3284  0
     if (jjte000 instanceof RuntimeException) {
 3285  0
       {if (true) throw (RuntimeException)jjte000;}
 3286  
     }
 3287  0
     if (jjte000 instanceof ParseException) {
 3288  0
       {if (true) throw (ParseException)jjte000;}
 3289  
     }
 3290  0
     {if (true) throw (Error)jjte000;}
 3291  
     } finally {
 3292  0
     if (jjtc000) {
 3293  0
       jjtree.closeNodeScope(jjtn000, true);
 3294  0
       jjtreeCloseNodeScope(jjtn000);
 3295  
     }
 3296  
     }
 3297  0
   }
 3298  
 
 3299  
   final public void NewTableHeaderContent() throws ParseException {
 3300  
  /*@bgen(jjtree) TableHeader */
 3301  0
   WikiTableHeader jjtn000 = new WikiTableHeader(this, JJTTABLEHEADER);
 3302  0
   boolean jjtc000 = true;
 3303  0
   jjtree.openNodeScope(jjtn000);
 3304  0
   jjtreeOpenNodeScope(jjtn000);
 3305  
     try {
 3306  
       try {
 3307  0
         NewTableCellContent();
 3308  0
       } catch (CloseTokenFoundException e) {
 3309  0
     if (e.getKind() != DPIPE) {if (true) throw e;}
 3310  0
       }
 3311  0
     } catch (Throwable jjte000) {
 3312  0
     if (jjtc000) {
 3313  0
       jjtree.clearNodeScope(jjtn000);
 3314  0
       jjtc000 = false;
 3315  
     } else {
 3316  0
       jjtree.popNode();
 3317  
     }
 3318  0
     if (jjte000 instanceof RuntimeException) {
 3319  0
       {if (true) throw (RuntimeException)jjte000;}
 3320  
     }
 3321  0
     if (jjte000 instanceof ParseException) {
 3322  0
       {if (true) throw (ParseException)jjte000;}
 3323  
     }
 3324  0
     {if (true) throw (Error)jjte000;}
 3325  
     } finally {
 3326  0
     if (jjtc000) {
 3327  0
       jjtree.closeNodeScope(jjtn000, true);
 3328  0
       jjtreeCloseNodeScope(jjtn000);
 3329  
     }
 3330  
     }
 3331  0
   }
 3332  
 
 3333  
   final public void NewTableCellContent() throws ParseException {
 3334  0
     if (jj_2_17(2)) {
 3335  0
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 3336  
       case NEWLINE:
 3337  0
         Newline();
 3338  0
         break;
 3339  
       default:
 3340  0
         jj_la1[56] = jj_gen;
 3341  
         ;
 3342  
       }
 3343  0
       Inline();
 3344  
       label_34:
 3345  
       while (true) {
 3346  0
         if (getToken(1).kind == NEWLINE && !isTableToken(getToken(2))) {
 3347  
           ;
 3348  
         } else {
 3349  
           break label_34;
 3350  
         }
 3351  0
         Newline();
 3352  0
         Inline();
 3353  
       }
 3354  
     } else {
 3355  
       ;
 3356  
     }
 3357  0
   }
 3358  
 
 3359  
   final private boolean jj_2_1(int xla) {
 3360  40
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3361  40
     try { return !jj_3_1(); }
 3362  0
     catch(LookaheadSuccess ls) { return true; }
 3363  40
     finally { jj_save(0, xla); }
 3364  
   }
 3365  
 
 3366  
   final private boolean jj_2_2(int xla) {
 3367  34
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3368  34
     try { return !jj_3_2(); }
 3369  11
     catch(LookaheadSuccess ls) { return true; }
 3370  34
     finally { jj_save(1, xla); }
 3371  
   }
 3372  
 
 3373  
   final private boolean jj_2_3(int xla) {
 3374  6
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3375  6
     try { return !jj_3_3(); }
 3376  0
     catch(LookaheadSuccess ls) { return true; }
 3377  6
     finally { jj_save(2, xla); }
 3378  
   }
 3379  
 
 3380  
   final private boolean jj_2_4(int xla) {
 3381  22
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3382  22
     try { return !jj_3_4(); }
 3383  11
     catch(LookaheadSuccess ls) { return true; }
 3384  22
     finally { jj_save(3, xla); }
 3385  
   }
 3386  
 
 3387  
   final private boolean jj_2_5(int xla) {
 3388  11
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3389  11
     try { return !jj_3_5(); }
 3390  0
     catch(LookaheadSuccess ls) { return true; }
 3391  11
     finally { jj_save(4, xla); }
 3392  
   }
 3393  
 
 3394  
   final private boolean jj_2_6(int xla) {
 3395  0
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3396  0
     try { return !jj_3_6(); }
 3397  0
     catch(LookaheadSuccess ls) { return true; }
 3398  0
     finally { jj_save(5, xla); }
 3399  
   }
 3400  
 
 3401  
   final private boolean jj_2_7(int xla) {
 3402  2
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3403  2
     try { return !jj_3_7(); }
 3404  0
     catch(LookaheadSuccess ls) { return true; }
 3405  2
     finally { jj_save(6, xla); }
 3406  
   }
 3407  
 
 3408  
   final private boolean jj_2_8(int xla) {
 3409  11
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3410  11
     try { return !jj_3_8(); }
 3411  6
     catch(LookaheadSuccess ls) { return true; }
 3412  11
     finally { jj_save(7, xla); }
 3413  
   }
 3414  
 
 3415  
   final private boolean jj_2_9(int xla) {
 3416  1
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3417  1
     try { return !jj_3_9(); }
 3418  0
     catch(LookaheadSuccess ls) { return true; }
 3419  1
     finally { jj_save(8, xla); }
 3420  
   }
 3421  
 
 3422  
   final private boolean jj_2_10(int xla) {
 3423  10
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3424  10
     try { return !jj_3_10(); }
 3425  0
     catch(LookaheadSuccess ls) { return true; }
 3426  10
     finally { jj_save(9, xla); }
 3427  
   }
 3428  
 
 3429  
   final private boolean jj_2_11(int xla) {
 3430  26
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3431  26
     try { return !jj_3_11(); }
 3432  1
     catch(LookaheadSuccess ls) { return true; }
 3433  26
     finally { jj_save(10, xla); }
 3434  
   }
 3435  
 
 3436  
   final private boolean jj_2_12(int xla) {
 3437  70
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3438  70
     try { return !jj_3_12(); }
 3439  12
     catch(LookaheadSuccess ls) { return true; }
 3440  70
     finally { jj_save(11, xla); }
 3441  
   }
 3442  
 
 3443  
   final private boolean jj_2_13(int xla) {
 3444  185
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3445  185
     try { return !jj_3_13(); }
 3446  0
     catch(LookaheadSuccess ls) { return true; }
 3447  185
     finally { jj_save(12, xla); }
 3448  
   }
 3449  
 
 3450  
   final private boolean jj_2_14(int xla) {
 3451  93
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3452  93
     try { return !jj_3_14(); }
 3453  0
     catch(LookaheadSuccess ls) { return true; }
 3454  93
     finally { jj_save(13, xla); }
 3455  
   }
 3456  
 
 3457  
   final private boolean jj_2_15(int xla) {
 3458  122
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3459  122
     try { return !jj_3_15(); }
 3460  0
     catch(LookaheadSuccess ls) { return true; }
 3461  122
     finally { jj_save(14, xla); }
 3462  
   }
 3463  
 
 3464  
   final private boolean jj_2_16(int xla) {
 3465  1
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3466  1
     try { return !jj_3_16(); }
 3467  1
     catch(LookaheadSuccess ls) { return true; }
 3468  1
     finally { jj_save(15, xla); }
 3469  
   }
 3470  
 
 3471  
   final private boolean jj_2_17(int xla) {
 3472  0
     jj_la = xla; jj_lastpos = jj_scanpos = token;
 3473  0
     try { return !jj_3_17(); }
 3474  0
     catch(LookaheadSuccess ls) { return true; }
 3475  0
     finally { jj_save(16, xla); }
 3476  
   }
 3477  
 
 3478  
   final private boolean jj_3R_108() {
 3479  0
     if (jj_scan_token(TRANSCLUDE_TARGET)) return true;
 3480  0
     return false;
 3481  
   }
 3482  
 
 3483  
   final private boolean jj_3R_150() {
 3484  0
     if (jj_3R_156()) return true;
 3485  0
     return false;
 3486  
   }
 3487  
 
 3488  
   final private boolean jj_3R_94() {
 3489  33
     if (jj_3R_121()) return true;
 3490  0
     return false;
 3491  
   }
 3492  
 
 3493  
   final private boolean jj_3R_93() {
 3494  34
     if (jj_3R_120()) return true;
 3495  0
     return false;
 3496  
   }
 3497  
 
 3498  
   final private boolean jj_3R_72() {
 3499  
     Token xsp;
 3500  34
     xsp = jj_scanpos;
 3501  34
     if (jj_3R_93()) {
 3502  33
     jj_scanpos = xsp;
 3503  33
     if (jj_3R_94()) return true;
 3504  
     }
 3505  0
     return false;
 3506  
   }
 3507  
 
 3508  
   final private boolean jj_3R_149() {
 3509  0
     if (jj_scan_token(NEW_TABLE_ROW_DIVIDER)) return true;
 3510  0
     return false;
 3511  
   }
 3512  
 
 3513  
   final private boolean jj_3R_101() {
 3514  0
     if (jj_3R_125()) return true;
 3515  0
     return false;
 3516  
   }
 3517  
 
 3518  
   final private boolean jj_3R_127() {
 3519  
     Token xsp;
 3520  0
     xsp = jj_scanpos;
 3521  0
     if (jj_3R_149()) jj_scanpos = xsp;
 3522  0
     xsp = jj_scanpos;
 3523  0
     if (jj_3R_150()) {
 3524  0
     jj_scanpos = xsp;
 3525  0
     if (jj_3R_151()) return true;
 3526  
     }
 3527  0
     return false;
 3528  
   }
 3529  
 
 3530  
   final private boolean jj_3R_53() {
 3531  23
     if (jj_3R_78()) return true;
 3532  0
     return false;
 3533  
   }
 3534  
 
 3535  
   final private boolean jj_3R_52() {
 3536  24
     if (jj_3R_77()) return true;
 3537  0
     return false;
 3538  
   }
 3539  
 
 3540  
   final private boolean jj_3R_51() {
 3541  25
     if (jj_3R_76()) return true;
 3542  0
     return false;
 3543  
   }
 3544  
 
 3545  
   final private boolean jj_3R_50() {
 3546  26
     if (jj_3R_75()) return true;
 3547  0
     return false;
 3548  
   }
 3549  
 
 3550  
   final private boolean jj_3R_38() {
 3551  37
     if (jj_3R_58()) return true;
 3552  4
     return false;
 3553  
   }
 3554  
 
 3555  
   final private boolean jj_3R_49() {
 3556  27
     if (jj_3R_74()) return true;
 3557  0
     return false;
 3558  
   }
 3559  
 
 3560  
   final private boolean jj_3R_48() {
 3561  32
     if (jj_3R_73()) return true;
 3562  0
     return false;
 3563  
   }
 3564  
 
 3565  
   final private boolean jj_3R_136() {
 3566  0
     if (jj_scan_token(KEYWORD_CASE)) return true;
 3567  0
     return false;
 3568  
   }
 3569  
 
 3570  
   final private boolean jj_3R_47() {
 3571  34
     if (jj_3R_72()) return true;
 3572  0
     return false;
 3573  
   }
 3574  
 
 3575  
   final private boolean jj_3R_35() {
 3576  
     Token xsp;
 3577  34
     xsp = jj_scanpos;
 3578  34
     if (jj_3R_47()) {
 3579  32
     jj_scanpos = xsp;
 3580  32
     if (jj_3R_48()) {
 3581  27
     jj_scanpos = xsp;
 3582  27
     if (jj_3R_49()) {
 3583  26
     jj_scanpos = xsp;
 3584  26
     if (jj_3R_50()) {
 3585  25
     jj_scanpos = xsp;
 3586  25
     if (jj_3R_51()) {
 3587  24
     jj_scanpos = xsp;
 3588  24
     if (jj_3R_52()) {
 3589  23
     jj_scanpos = xsp;
 3590  23
     if (jj_3R_53()) return true;
 3591  
     }
 3592  
     }
 3593  
     }
 3594  
     }
 3595  
     }
 3596  
     }
 3597  0
     return false;
 3598  
   }
 3599  
 
 3600  
   final private boolean jj_3R_126() {
 3601  0
     if (jj_scan_token(NEW_TABLE_CAPTION)) return true;
 3602  0
     return false;
 3603  
   }
 3604  
 
 3605  
   final private boolean jj_3R_144() {
 3606  0
     if (jj_scan_token(KEYWORD_SWITCH)) return true;
 3607  0
     return false;
 3608  
   }
 3609  
 
 3610  
   final private boolean jj_3_2() {
 3611  34
     if (jj_3R_35()) return true;
 3612  0
     return false;
 3613  
   }
 3614  
 
 3615  
   final private boolean jj_3R_103() {
 3616  0
     if (jj_3R_127()) return true;
 3617  0
     return false;
 3618  
   }
 3619  
 
 3620  
   final private boolean jj_3_6() {
 3621  0
     if (jj_3R_36()) return true;
 3622  0
     return false;
 3623  
   }
 3624  
 
 3625  
   final private boolean jj_3R_102() {
 3626  0
     if (jj_3R_126()) return true;
 3627  0
     return false;
 3628  
   }
 3629  
 
 3630  
   final private boolean jj_3R_77() {
 3631  24
     if (jj_scan_token(DEF_START)) return true;
 3632  1
     if (jj_scan_token(TERM)) return true;
 3633  1
     if (jj_scan_token(TERM_COLON)) return true;
 3634  0
     return false;
 3635  
   }
 3636  
 
 3637  
   final private boolean jj_3_10() {
 3638  20
     if (jj_3R_39()) return true;
 3639  8
     return false;
 3640  
   }
 3641  
 
 3642  
   final private boolean jj_3R_137() {
 3643  0
     if (jj_scan_token(KEYWORD_DEFAULT)) return true;
 3644  0
     return false;
 3645  
   }
 3646  
 
 3647  
   final private boolean jj_3_1() {
 3648  40
     if (jj_scan_token(NEWLINE)) return true;
 3649  7
     return false;
 3650  
   }
 3651  
 
 3652  
   final private boolean jj_3R_78() {
 3653  23
     if (jj_scan_token(NEW_TABLE_START)) return true;
 3654  
     Token xsp;
 3655  
     while (true) {
 3656  0
       xsp = jj_scanpos;
 3657  0
       if (jj_3R_101()) { jj_scanpos = xsp; break; }
 3658  
     }
 3659  0
     if (jj_3R_71()) return true;
 3660  0
     xsp = jj_scanpos;
 3661  0
     if (jj_3R_102()) jj_scanpos = xsp;
 3662  0
     if (jj_3R_103()) return true;
 3663  
     while (true) {
 3664  0
       xsp = jj_scanpos;
 3665  0
       if (jj_3R_103()) { jj_scanpos = xsp; break; }
 3666  
     }
 3667  0
     return false;
 3668  
   }
 3669  
 
 3670  
   final private boolean jj_3R_71() {
 3671  
     Token xsp;
 3672  0
     if (jj_3_1()) return true;
 3673  
     while (true) {
 3674  0
       xsp = jj_scanpos;
 3675  0
       if (jj_3_1()) { jj_scanpos = xsp; break; }
 3676  
     }
 3677  0
     return false;
 3678  
   }
 3679  
 
 3680  
   final private boolean jj_3R_37() {
 3681  37
     if (jj_3R_57()) return true;
 3682  0
     return false;
 3683  
   }
 3684  
 
 3685  
   final private boolean jj_3_9() {
 3686  1
     if (jj_3R_39()) return true;
 3687  1
     return false;
 3688  
   }
 3689  
 
 3690  
   final private boolean jj_3R_141() {
 3691  0
     if (jj_scan_token(KEYWORD_ELSE)) return true;
 3692  0
     return false;
 3693  
   }
 3694  
 
 3695  
   final private boolean jj_3R_125() {
 3696  0
     if (jj_scan_token(SPACE)) return true;
 3697  0
     if (jj_3R_109()) return true;
 3698  0
     return false;
 3699  
   }
 3700  
 
 3701  
   final private boolean jj_3R_58() {
 3702  37
     if (jj_scan_token(PIPE)) return true;
 3703  
     Token xsp;
 3704  10
     xsp = jj_scanpos;
 3705  10
     if (jj_3_10()) jj_scanpos = xsp;
 3706  4
     return false;
 3707  
   }
 3708  
 
 3709  
   final private boolean jj_3R_92() {
 3710  
     Token xsp;
 3711  77
     xsp = jj_scanpos;
 3712  77
     if (jj_scan_token(2)) {
 3713  76
     jj_scanpos = xsp;
 3714  76
     if (jj_scan_token(11)) {
 3715  76
     jj_scanpos = xsp;
 3716  76
     if (jj_scan_token(14)) return true;
 3717  
     }
 3718  
     }
 3719  1
     return false;
 3720  
   }
 3721  
 
 3722  
   final private boolean jj_3R_87() {
 3723  77
     if (jj_scan_token(TRANSCLUDE_START)) return true;
 3724  0
     if (jj_3R_108()) return true;
 3725  0
     return false;
 3726  
   }
 3727  
 
 3728  
   final private boolean jj_3R_142() {
 3729  0
     if (jj_scan_token(KEYWORD_ELSEIF)) return true;
 3730  0
     return false;
 3731  
   }
 3732  
 
 3733  
   final private boolean jj_3R_57() {
 3734  37
     if (jj_scan_token(DPIPE)) return true;
 3735  
     Token xsp;
 3736  0
     xsp = jj_scanpos;
 3737  0
     if (jj_3_9()) jj_scanpos = xsp;
 3738  0
     return false;
 3739  
   }
 3740  
 
 3741  
   final private boolean jj_3_7() {
 3742  2
     if (jj_scan_token(NEWLINE)) return true;
 3743  
     Token xsp;
 3744  2
     xsp = jj_scanpos;
 3745  2
     if (jj_scan_token(14)) {
 3746  1
     jj_scanpos = xsp;
 3747  1
     if (jj_scan_token(11)) return true;
 3748  
     }
 3749  1
     return false;
 3750  
   }
 3751  
 
 3752  
   final private boolean jj_3R_143() {
 3753  0
     if (jj_scan_token(KEYWORD_END)) return true;
 3754  0
     return false;
 3755  
   }
 3756  
 
 3757  
   final private boolean jj_3_8() {
 3758  
     Token xsp;
 3759  37
     xsp = jj_scanpos;
 3760  37
     if (jj_3R_37()) {
 3761  37
     jj_scanpos = xsp;
 3762  37
     if (jj_3R_38()) return true;
 3763  
     }
 3764  4
     return false;
 3765  
   }
 3766  
 
 3767  
   final private boolean jj_3R_99() {
 3768  
     Token xsp;
 3769  25
     if (jj_3_8()) return true;
 3770  
     while (true) {
 3771  1
       xsp = jj_scanpos;
 3772  1
       if (jj_3_8()) { jj_scanpos = xsp; break; }
 3773  
     }
 3774  0
     return false;
 3775  
   }
 3776  
 
 3777  
   final private boolean jj_3_15() {
 3778  309
     if (jj_3R_41()) return true;
 3779  117
     return false;
 3780  
   }
 3781  
 
 3782  
   final private boolean jj_3_16() {
 3783  
     Token xsp;
 3784  2
     xsp = jj_scanpos;
 3785  2
     if (jj_3R_42()) {
 3786  0
     jj_scanpos = xsp;
 3787  0
     if (jj_3R_43()) return true;
 3788  
     }
 3789  0
     return false;
 3790  
   }
 3791  
 
 3792  
   final private boolean jj_3R_145() {
 3793  0
     if (jj_scan_token(KEYWORD_WHILE)) return true;
 3794  0
     return false;
 3795  
   }
 3796  
 
 3797  
   final private boolean jj_3R_100() {
 3798  0
     if (jj_scan_token(NEWLINE)) return true;
 3799  0
     if (jj_3R_99()) return true;
 3800  0
     return false;
 3801  
   }
 3802  
 
 3803  
   final private boolean jj_3R_98() {
 3804  2
     if (jj_scan_token(PRE_TEXT)) return true;
 3805  1
     return false;
 3806  
   }
 3807  
 
 3808  
   final private boolean jj_3R_43() {
 3809  0
     if (jj_3R_71()) return true;
 3810  0
     return false;
 3811  
   }
 3812  
 
 3813  
   final private boolean jj_3R_76() {
 3814  25
     if (jj_3R_99()) return true;
 3815  
     Token xsp;
 3816  
     while (true) {
 3817  0
       xsp = jj_scanpos;
 3818  0
       if (jj_3R_100()) { jj_scanpos = xsp; break; }
 3819  
     }
 3820  0
     return false;
 3821  
   }
 3822  
 
 3823  
   final private boolean jj_3R_42() {
 3824  2
     if (jj_3R_45()) return true;
 3825  0
     return false;
 3826  
   }
 3827  
 
 3828  
   final private boolean jj_3R_139() {
 3829  0
     if (jj_scan_token(KEYWORD_FOR)) return true;
 3830  0
     return false;
 3831  
   }
 3832  
 
 3833  
   final private boolean jj_3R_39() {
 3834  
     Token xsp;
 3835  155
     if (jj_3_15()) return true;
 3836  
     while (true) {
 3837  32
       xsp = jj_scanpos;
 3838  32
       if (jj_3_15()) { jj_scanpos = xsp; break; }
 3839  
     }
 3840  10
     return false;
 3841  
   }
 3842  
 
 3843  
   final private boolean jj_3R_83() {
 3844  80
     if (jj_scan_token(DOC)) return true;
 3845  
     Token xsp;
 3846  
     while (true) {
 3847  1
       xsp = jj_scanpos;
 3848  1
       if (jj_3_16()) { jj_scanpos = xsp; break; }
 3849  
     }
 3850  0
     if (jj_scan_token(DCC)) return true;
 3851  0
     return false;
 3852  
   }
 3853  
 
 3854  
   final private boolean jj_3R_75() {
 3855  26
     if (jj_scan_token(TOC)) return true;
 3856  
     Token xsp;
 3857  
     while (true) {
 3858  2
       xsp = jj_scanpos;
 3859  2
       if (jj_3R_98()) { jj_scanpos = xsp; break; }
 3860  
     }
 3861  0
     if (jj_scan_token(TCC)) return true;
 3862  0
     return false;
 3863  
   }
 3864  
 
 3865  
   final private boolean jj_3R_140() {
 3866  0
     if (jj_scan_token(KEYWORD_IF)) return true;
 3867  0
     return false;
 3868  
   }
 3869  
 
 3870  
   final private boolean jj_3_5() {
 3871  11
     if (jj_scan_token(NEWLINE)) return true;
 3872  11
     if (jj_scan_token(SPACE)) return true;
 3873  0
     return false;
 3874  
   }
 3875  
 
 3876  
   final private boolean jj_3R_41() {
 3877  
     Token xsp;
 3878  309
     xsp = jj_scanpos;
 3879  309
     if (jj_scan_token(76)) {
 3880  158
     jj_scanpos = xsp;
 3881  158
     if (jj_scan_token(75)) {
 3882  155
     jj_scanpos = xsp;
 3883  155
     if (jj_scan_token(62)) return true;
 3884  
     }
 3885  
     }
 3886  117
     return false;
 3887  
   }
 3888  
 
 3889  
   final private boolean jj_3R_146() {
 3890  0
     if (jj_scan_token(NEWLINE)) return true;
 3891  0
     if (jj_scan_token(SPACE)) return true;
 3892  0
     return false;
 3893  
   }
 3894  
 
 3895  
   final private boolean jj_3R_122() {
 3896  0
     if (jj_3R_146()) return true;
 3897  0
     return false;
 3898  
   }
 3899  
 
 3900  
   final private boolean jj_3_4() {
 3901  28
     if (jj_3R_36()) return true;
 3902  0
     return false;
 3903  
   }
 3904  
 
 3905  
   final private boolean jj_3R_95() {
 3906  
     Token xsp;
 3907  
     while (true) {
 3908  6
       xsp = jj_scanpos;
 3909  6
       if (jj_3_4()) { jj_scanpos = xsp; break; }
 3910  
     }
 3911  
     while (true) {
 3912  0
       xsp = jj_scanpos;
 3913  0
       if (jj_3R_122()) { jj_scanpos = xsp; break; }
 3914  
     }
 3915  0
     return false;
 3916  
   }
 3917  
 
 3918  
   final private boolean jj_3R_130() {
 3919  0
     if (jj_3R_71()) return true;
 3920  0
     return false;
 3921  
   }
 3922  
 
 3923  
   final private boolean jj_3R_129() {
 3924  1
     if (jj_3R_81()) return true;
 3925  0
     return false;
 3926  
   }
 3927  
 
 3928  
   final private boolean jj_3R_124() {
 3929  27
     if (jj_3R_148()) return true;
 3930  0
     return false;
 3931  
   }
 3932  
 
 3933  
   final private boolean jj_3R_128() {
 3934  1
     if (jj_3R_80()) return true;
 3935  0
     return false;
 3936  
   }
 3937  
 
 3938  
   final private boolean jj_3R_104() {
 3939  
     Token xsp;
 3940  1
     xsp = jj_scanpos;
 3941  1
     if (jj_3R_128()) {
 3942  1
     jj_scanpos = xsp;
 3943  1
     if (jj_3R_129()) {
 3944  0
     jj_scanpos = xsp;
 3945  0
     if (jj_3R_130()) return true;
 3946  
     }
 3947  
     }
 3948  0
     return false;
 3949  
   }
 3950  
 
 3951  
   final private boolean jj_3R_148() {
 3952  27
     if (jj_scan_token(STAR)) return true;
 3953  1
     if (jj_3R_95()) return true;
 3954  0
     return false;
 3955  
   }
 3956  
 
 3957  
   final private boolean jj_3R_138() {
 3958  0
     if (jj_scan_token(KEYWORD_DEFINE)) return true;
 3959  0
     return false;
 3960  
   }
 3961  
 
 3962  
   final private boolean jj_3R_107() {
 3963  0
     if (jj_scan_token(LINK_SEP)) return true;
 3964  0
     return false;
 3965  
   }
 3966  
 
 3967  
   final private boolean jj_3R_79() {
 3968  56
     if (jj_scan_token(DSQ)) return true;
 3969  
     Token xsp;
 3970  
     while (true) {
 3971  1
       xsp = jj_scanpos;
 3972  1
       if (jj_3R_104()) { jj_scanpos = xsp; break; }
 3973  
     }
 3974  0
     if (jj_scan_token(DSQ)) return true;
 3975  0
     return false;
 3976  
   }
 3977  
 
 3978  
   final private boolean jj_3R_147() {
 3979  27
     if (jj_scan_token(PLUS)) return true;
 3980  0
     if (jj_3R_95()) return true;
 3981  0
     return false;
 3982  
   }
 3983  
 
 3984  
   final private boolean jj_3_3() {
 3985  6
     if (jj_scan_token(NEWLINE)) return true;
 3986  
     Token xsp;
 3987  6
     xsp = jj_scanpos;
 3988  6
     if (jj_scan_token(42)) {
 3989  4
     jj_scanpos = xsp;
 3990  4
     if (jj_scan_token(41)) return true;
 3991  
     }
 3992  5
     return false;
 3993  
   }
 3994  
 
 3995  
   final private boolean jj_3R_84() {
 3996  79
     if (jj_scan_token(OSQ)) return true;
 3997  0
     if (jj_3R_106()) return true;
 3998  
     Token xsp;
 3999  0
     xsp = jj_scanpos;
 4000  0
     if (jj_3R_107()) jj_scanpos = xsp;
 4001  0
     if (jj_scan_token(CSQ)) return true;
 4002  0
     return false;
 4003  
   }
 4004  
 
 4005  
   final private boolean jj_3R_123() {
 4006  27
     if (jj_3R_147()) return true;
 4007  0
     return false;
 4008  
   }
 4009  
 
 4010  
   final private boolean jj_3R_96() {
 4011  
     Token xsp;
 4012  27
     xsp = jj_scanpos;
 4013  27
     if (jj_3R_123()) {
 4014  27
     jj_scanpos = xsp;
 4015  27
     if (jj_3R_124()) return true;
 4016  
     }
 4017  0
     return false;
 4018  
   }
 4019  
 
 4020  
   final private boolean jj_3_14() {
 4021  93
     if (jj_scan_token(LINK_LINK)) return true;
 4022  89
     return false;
 4023  
   }
 4024  
 
 4025  
   final private boolean jj_3R_97() {
 4026  0
     if (jj_scan_token(NEWLINE)) return true;
 4027  0
     if (jj_3R_96()) return true;
 4028  0
     return false;
 4029  
   }
 4030  
 
 4031  
   final private boolean jj_3R_74() {
 4032  27
     if (jj_3R_96()) return true;
 4033  
     Token xsp;
 4034  
     while (true) {
 4035  0
       xsp = jj_scanpos;
 4036  0
       if (jj_3R_97()) { jj_scanpos = xsp; break; }
 4037  
     }
 4038  0
     return false;
 4039  
   }
 4040  
 
 4041  
   final private boolean jj_3R_133() {
 4042  0
     if (jj_3R_71()) return true;
 4043  0
     return false;
 4044  
   }
 4045  
 
 4046  
   final private boolean jj_3R_132() {
 4047  0
     if (jj_3R_81()) return true;
 4048  0
     return false;
 4049  
   }
 4050  
 
 4051  
   final private boolean jj_3R_131() {
 4052  0
     if (jj_3R_79()) return true;
 4053  0
     return false;
 4054  
   }
 4055  
 
 4056  
   final private boolean jj_3R_119() {
 4057  0
     if (jj_3R_145()) return true;
 4058  0
     return false;
 4059  
   }
 4060  
 
 4061  
   final private boolean jj_3R_105() {
 4062  
     Token xsp;
 4063  0
     xsp = jj_scanpos;
 4064  0
     if (jj_3R_131()) {
 4065  0
     jj_scanpos = xsp;
 4066  0
     if (jj_3R_132()) {
 4067  0
     jj_scanpos = xsp;
 4068  0
     if (jj_3R_133()) return true;
 4069  
     }
 4070  
     }
 4071  0
     return false;
 4072  
   }
 4073  
 
 4074  
   final private boolean jj_3R_118() {
 4075  0
     if (jj_3R_144()) return true;
 4076  0
     return false;
 4077  
   }
 4078  
 
 4079  
   final private boolean jj_3R_117() {
 4080  0
     if (jj_3R_143()) return true;
 4081  0
     return false;
 4082  
   }
 4083  
 
 4084  
   final private boolean jj_3R_116() {
 4085  0
     if (jj_3R_142()) return true;
 4086  0
     return false;
 4087  
   }
 4088  
 
 4089  
   final private boolean jj_3R_115() {
 4090  0
     if (jj_3R_141()) return true;
 4091  0
     return false;
 4092  
   }
 4093  
 
 4094  
   final private boolean jj_3_13() {
 4095  185
     if (jj_scan_token(LINK_TITLE)) return true;
 4096  172
     return false;
 4097  
   }
 4098  
 
 4099  
   final private boolean jj_3R_153() {
 4100  0
     if (jj_3R_90()) return true;
 4101  0
     return false;
 4102  
   }
 4103  
 
 4104  
   final private boolean jj_3R_114() {
 4105  0
     if (jj_3R_140()) return true;
 4106  0
     return false;
 4107  
   }
 4108  
 
 4109  
   final private boolean jj_3R_73() {
 4110  32
     if (jj_scan_token(EXP)) return true;
 4111  5
     if (jj_3R_95()) return true;
 4112  0
     return false;
 4113  
   }
 4114  
 
 4115  
   final private boolean jj_3R_152() {
 4116  
     Token xsp;
 4117  0
     if (jj_3_13()) return true;
 4118  
     while (true) {
 4119  0
       xsp = jj_scanpos;
 4120  0
       if (jj_3_13()) { jj_scanpos = xsp; break; }
 4121  
     }
 4122  0
     return false;
 4123  
   }
 4124  
 
 4125  
   final private boolean jj_3R_134() {
 4126  
     Token xsp;
 4127  0
     xsp = jj_scanpos;
 4128  0
     if (jj_3R_152()) {
 4129  0
     jj_scanpos = xsp;
 4130  0
     if (jj_3R_153()) return true;
 4131  
     }
 4132  0
     return false;
 4133  
   }
 4134  
 
 4135  
   final private boolean jj_3R_113() {
 4136  0
     if (jj_3R_139()) return true;
 4137  0
     return false;
 4138  
   }
 4139  
 
 4140  
   final private boolean jj_3R_112() {
 4141  0
     if (jj_3R_138()) return true;
 4142  0
     return false;
 4143  
   }
 4144  
 
 4145  
   final private boolean jj_3R_111() {
 4146  0
     if (jj_3R_137()) return true;
 4147  0
     return false;
 4148  
   }
 4149  
 
 4150  
   final private boolean jj_3R_80() {
 4151  56
     if (jj_scan_token(DU)) return true;
 4152  
     Token xsp;
 4153  
     while (true) {
 4154  0
       xsp = jj_scanpos;
 4155  0
       if (jj_3R_105()) { jj_scanpos = xsp; break; }
 4156  
     }
 4157  0
     if (jj_scan_token(DU)) return true;
 4158  0
     return false;
 4159  
   }
 4160  
 
 4161  
   final private boolean jj_3R_110() {
 4162  0
     if (jj_3R_136()) return true;
 4163  0
     return false;
 4164  
   }
 4165  
 
 4166  
   final private boolean jj_3R_106() {
 4167  
     Token xsp;
 4168  
     while (true) {
 4169  0
       xsp = jj_scanpos;
 4170  0
       if (jj_3R_134()) { jj_scanpos = xsp; break; }
 4171  
     }
 4172  0
     return false;
 4173  
   }
 4174  
 
 4175  
   final private boolean jj_3R_91() {
 4176  77
     if (jj_scan_token(CONTROL_START)) return true;
 4177  
     Token xsp;
 4178  0
     xsp = jj_scanpos;
 4179  0
     if (jj_3R_110()) {
 4180  0
     jj_scanpos = xsp;
 4181  0
     if (jj_3R_111()) {
 4182  0
     jj_scanpos = xsp;
 4183  0
     if (jj_3R_112()) {
 4184  0
     jj_scanpos = xsp;
 4185  0
     if (jj_3R_113()) {
 4186  0
     jj_scanpos = xsp;
 4187  0
     if (jj_3R_114()) {
 4188  0
     jj_scanpos = xsp;
 4189  0
     if (jj_3R_115()) {
 4190  0
     jj_scanpos = xsp;
 4191  0
     if (jj_3R_116()) {
 4192  0
     jj_scanpos = xsp;
 4193  0
     if (jj_3R_117()) {
 4194  0
     jj_scanpos = xsp;
 4195  0
     if (jj_3R_118()) {
 4196  0
     jj_scanpos = xsp;
 4197  0
     if (jj_3R_119()) return true;
 4198  
     }
 4199  
     }
 4200  
     }
 4201  
     }
 4202  
     }
 4203  
     }
 4204  
     }
 4205  
     }
 4206  
     }
 4207  0
     return false;
 4208  
   }
 4209  
 
 4210  
   final private boolean jj_3R_86() {
 4211  79
     if (jj_scan_token(HR)) return true;
 4212  2
     return false;
 4213  
   }
 4214  
 
 4215  
   final private boolean jj_3R_82() {
 4216  102
     if (jj_scan_token(SPACE)) return true;
 4217  22
     return false;
 4218  
   }
 4219  
 
 4220  
   final private boolean jj_3R_155() {
 4221  0
     if (jj_3R_90()) return true;
 4222  0
     return false;
 4223  
   }
 4224  
 
 4225  
   final private boolean jj_3R_121() {
 4226  33
     if (jj_scan_token(DIV_STYLE_START)) return true;
 4227  1
     if (jj_scan_token(DIV_STYLE_NAME)) return true;
 4228  1
     if (jj_scan_token(DIV_STYLE_END)) return true;
 4229  0
     return false;
 4230  
   }
 4231  
 
 4232  
   final private boolean jj_3R_158() {
 4233  0
     if (jj_scan_token(IDENTIFIER)) return true;
 4234  0
     return false;
 4235  
   }
 4236  
 
 4237  
   final private boolean jj_3R_70() {
 4238  77
     if (jj_3R_92()) return true;
 4239  1
     return false;
 4240  
   }
 4241  
 
 4242  
   final private boolean jj_3R_69() {
 4243  77
     if (jj_3R_91()) return true;
 4244  0
     return false;
 4245  
   }
 4246  
 
 4247  
   final private boolean jj_3R_68() {
 4248  77
     if (jj_3R_90()) return true;
 4249  0
     return false;
 4250  
   }
 4251  
 
 4252  
   final private boolean jj_3R_67() {
 4253  77
     if (jj_3R_89()) return true;
 4254  0
     return false;
 4255  
   }
 4256  
 
 4257  
   final private boolean jj_3R_66() {
 4258  77
     if (jj_3R_88()) return true;
 4259  0
     return false;
 4260  
   }
 4261  
 
 4262  
   final private boolean jj_3R_65() {
 4263  77
     if (jj_3R_87()) return true;
 4264  0
     return false;
 4265  
   }
 4266  
 
 4267  
   final private boolean jj_3R_64() {
 4268  79
     if (jj_3R_86()) return true;
 4269  2
     return false;
 4270  
   }
 4271  
 
 4272  
   final private boolean jj_3R_63() {
 4273  79
     if (jj_3R_85()) return true;
 4274  0
     return false;
 4275  
   }
 4276  
 
 4277  
   final private boolean jj_3R_62() {
 4278  79
     if (jj_3R_84()) return true;
 4279  0
     return false;
 4280  
   }
 4281  
 
 4282  
   final private boolean jj_3R_61() {
 4283  80
     if (jj_3R_83()) return true;
 4284  0
     return false;
 4285  
   }
 4286  
 
 4287  
   final private boolean jj_3R_60() {
 4288  102
     if (jj_3R_82()) return true;
 4289  22
     return false;
 4290  
   }
 4291  
 
 4292  
   final private boolean jj_3R_46() {
 4293  0
     if (jj_3R_71()) return true;
 4294  0
     return false;
 4295  
   }
 4296  
 
 4297  
   final private boolean jj_3R_40() {
 4298  
     Token xsp;
 4299  134
     xsp = jj_scanpos;
 4300  134
     if (jj_3R_59()) {
 4301  102
     jj_scanpos = xsp;
 4302  102
     if (jj_3R_60()) {
 4303  80
     jj_scanpos = xsp;
 4304  80
     if (jj_3R_61()) {
 4305  79
     jj_scanpos = xsp;
 4306  79
     if (jj_3R_62()) {
 4307  79
     jj_scanpos = xsp;
 4308  79
     if (jj_3R_63()) {
 4309  79
     jj_scanpos = xsp;
 4310  79
     if (jj_3R_64()) {
 4311  77
     jj_scanpos = xsp;
 4312  77
     if (jj_3R_65()) {
 4313  77
     jj_scanpos = xsp;
 4314  77
     if (jj_3R_66()) {
 4315  77
     jj_scanpos = xsp;
 4316  77
     if (jj_3R_67()) {
 4317  77
     jj_scanpos = xsp;
 4318  77
     if (jj_3R_68()) {
 4319  77
     jj_scanpos = xsp;
 4320  77
     if (jj_3R_69()) {
 4321  77
     jj_scanpos = xsp;
 4322  77
     if (jj_3R_70()) return true;
 4323  
     }
 4324  
     }
 4325  
     }
 4326  
     }
 4327  
     }
 4328  
     }
 4329  
     }
 4330  
     }
 4331  
     }
 4332  
     }
 4333  
     }
 4334  26
     return false;
 4335  
   }
 4336  
 
 4337  
   final private boolean jj_3R_59() {
 4338  134
     if (jj_3R_39()) return true;
 4339  1
     return false;
 4340  
   }
 4341  
 
 4342  
   final private boolean jj_3R_154() {
 4343  0
     if (jj_3R_158()) return true;
 4344  0
     return false;
 4345  
   }
 4346  
 
 4347  
   final private boolean jj_3R_135() {
 4348  
     Token xsp;
 4349  0
     xsp = jj_scanpos;
 4350  0
     if (jj_3R_154()) {
 4351  0
     jj_scanpos = xsp;
 4352  0
     if (jj_3R_155()) return true;
 4353  
     }
 4354  0
     return false;
 4355  
   }
 4356  
 
 4357  
   final private boolean jj_3R_44() {
 4358  0
     if (jj_3R_71()) return true;
 4359  0
     return false;
 4360  
   }
 4361  
 
 4362  
   final private boolean jj_3_17() {
 4363  
     Token xsp;
 4364  0
     xsp = jj_scanpos;
 4365  0
     if (jj_3R_44()) jj_scanpos = xsp;
 4366  0
     if (jj_3R_45()) return true;
 4367  
     while (true) {
 4368  0
       xsp = jj_scanpos;
 4369  0
       if (jj_3R_46()) { jj_scanpos = xsp; break; }
 4370  
     }
 4371  0
     return false;
 4372  
   }
 4373  
 
 4374  
   final private boolean jj_3R_109() {
 4375  0
     if (jj_3R_135()) return true;
 4376  0
     return false;
 4377  
   }
 4378  
 
 4379  
   final private boolean jj_3_12() {
 4380  134
     if (jj_3R_40()) return true;
 4381  26
     return false;
 4382  
   }
 4383  
 
 4384  
   final private boolean jj_3R_81() {
 4385  
     Token xsp;
 4386  56
     if (jj_3_12()) return true;
 4387  
     while (true) {
 4388  8
       xsp = jj_scanpos;
 4389  8
       if (jj_3_12()) { jj_scanpos = xsp; break; }
 4390  
     }
 4391  1
     return false;
 4392  
   }
 4393  
 
 4394  
   final private boolean jj_3R_90() {
 4395  77
     if (jj_scan_token(EXP_START)) return true;
 4396  0
     if (jj_3R_109()) return true;
 4397  0
     return false;
 4398  
   }
 4399  
 
 4400  
   final private boolean jj_3R_56() {
 4401  55
     if (jj_3R_81()) return true;
 4402  1
     return false;
 4403  
   }
 4404  
 
 4405  
   final private boolean jj_3R_88() {
 4406  77
     if (jj_scan_token(ESCAPED_SQUARE)) return true;
 4407  0
     return false;
 4408  
   }
 4409  
 
 4410  
   final private boolean jj_3R_55() {
 4411  55
     if (jj_3R_80()) return true;
 4412  0
     return false;
 4413  
   }
 4414  
 
 4415  
   final private boolean jj_3R_36() {
 4416  
     Token xsp;
 4417  56
     xsp = jj_scanpos;
 4418  56
     if (jj_3R_54()) {
 4419  55
     jj_scanpos = xsp;
 4420  55
     if (jj_3R_55()) {
 4421  55
     jj_scanpos = xsp;
 4422  55
     if (jj_3R_56()) return true;
 4423  
     }
 4424  
     }
 4425  1
     return false;
 4426  
   }
 4427  
 
 4428  
   final private boolean jj_3R_54() {
 4429  56
     if (jj_3R_79()) return true;
 4430  0
     return false;
 4431  
   }
 4432  
 
 4433  
   final private boolean jj_3R_151() {
 4434  0
     if (jj_3R_157()) return true;
 4435  0
     return false;
 4436  
   }
 4437  
 
 4438  
   final private boolean jj_3R_89() {
 4439  77
     if (jj_scan_token(EMPTY_LINK)) return true;
 4440  0
     return false;
 4441  
   }
 4442  
 
 4443  
   final private boolean jj_3R_157() {
 4444  0
     if (jj_scan_token(EXP)) return true;
 4445  0
     return false;
 4446  
   }
 4447  
 
 4448  
   final private boolean jj_3_11() {
 4449  28
     if (jj_3R_36()) return true;
 4450  1
     return false;
 4451  
   }
 4452  
 
 4453  
   final private boolean jj_3R_120() {
 4454  34
     if (jj_scan_token(DPERCENT)) return true;
 4455  1
     if (jj_scan_token(DIV_CLASS_NAME)) return true;
 4456  1
     if (jj_scan_token(NEWLINE)) return true;
 4457  0
     return false;
 4458  
   }
 4459  
 
 4460  
   final private boolean jj_3R_45() {
 4461  
     Token xsp;
 4462  2
     if (jj_3_11()) return true;
 4463  
     while (true) {
 4464  0
       xsp = jj_scanpos;
 4465  0
       if (jj_3_11()) { jj_scanpos = xsp; break; }
 4466  
     }
 4467  0
     return false;
 4468  
   }
 4469  
 
 4470  
   final private boolean jj_3R_156() {
 4471  0
     if (jj_scan_token(PIPE)) return true;
 4472  0
     return false;
 4473  
   }
 4474  
 
 4475  
   final private boolean jj_3R_85() {
 4476  79
     if (jj_scan_token(D_BSLASH)) return true;
 4477  0
     return false;
 4478  
   }
 4479  
 
 4480  
   public WikiTokenManager token_source;
 4481  
   SimpleCharStream jj_input_stream;
 4482  
   public Token token, jj_nt;
 4483  
   private int jj_ntk;
 4484  
   private Token jj_scanpos, jj_lastpos;
 4485  
   private int jj_la;
 4486  3
   public boolean lookingAhead = false;
 4487  
   private boolean jj_semLA;
 4488  
   private int jj_gen;
 4489  3
   final private int[] jj_la1 = new int[57];
 4490  
   static private int[] jj_la1_0;
 4491  
   static private int[] jj_la1_1;
 4492  
   static private int[] jj_la1_2;
 4493  
   static {
 4494  1
       jj_la1_0();
 4495  1
       jj_la1_1();
 4496  1
       jj_la1_2();
 4497  1
    }
 4498  
    private static void jj_la1_0() {
 4499  1
       jj_la1_0 = new int[] {0x0,0xfffe,0x0,0xfffe,0xfffe,0x4804,0x5ffe,0xe800,0x0,0xfffe,0x0,0x0,0x4800,0x5ffe,0x5fce,0x3ff0000,0x0,0x10000000,0x20000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5fee,0x5fee,0x5fde,0x5fde,0x5ffe,0x0,0x0,0x8800,0x0,0x8800,0x4800,0x8800,0x4800,0x0,};
 4500  1
    }
 4501  
    private static void jj_la1_1() {
 4502  1
       jj_la1_1 = new int[] {0x0,0x40003fc0,0x0,0x40003fc0,0x40003fc0,0x0,0x400000c0,0x3f00,0x1800,0x40003fc0,0x600,0x0,0x0,0x400000c0,0x400000c0,0x0,0x8,0x40000000,0x40220000,0x0,0x220000,0x8,0x220040,0x40,0x0,0x40,0x10000000,0x40000040,0x20000000,0x40220040,0x40,0x40,0x40,0x40,0x0,0x40000000,0x0,0x40000000,0x0,0x220040,0x0,0x0,0x220000,0x400000c0,0x400000c0,0x400000c0,0x400000c0,0x400000c0,0x80,0x10000,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,};
 4503  1
    }
 4504  
    private static void jj_la1_2() {
 4505  1
       jj_la1_2 = new int[] {0x20,0x1800,0x20,0x1800,0x1800,0x0,0x1800,0x0,0x0,0x1800,0x0,0x10000000,0x0,0x1800,0x1800,0x0,0x0,0x0,0x380000,0x0,0x180000,0x0,0x380000,0xc00000,0xc00000,0xc00000,0x0,0x0,0x0,0x180000,0x40000000,0x40000000,0x20000000,0x20000000,0x4,0x1800,0x8000000,0x0,0x4000,0x380000,0x10000,0x2000000,0x180000,0x1820,0x1820,0x1820,0x1820,0x1820,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,};
 4506  1
    }
 4507  3
   final private JJCalls[] jj_2_rtns = new JJCalls[17];
 4508  3
   private boolean jj_rescan = false;
 4509  3
   private int jj_gc = 0;
 4510  
 
 4511  
   public Wiki(java.io.InputStream stream) {
 4512  0
      this(stream, null);
 4513  0
   }
 4514  0
   public Wiki(java.io.InputStream stream, String encoding) {
 4515  0
     try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
 4516  0
     token_source = new WikiTokenManager(jj_input_stream);
 4517  0
     token = new Token();
 4518  0
     jj_ntk = -1;
 4519  0
     jj_gen = 0;
 4520  0
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4521  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4522  0
   }
 4523  
 
 4524  
   public void ReInit(java.io.InputStream stream) {
 4525  0
      ReInit(stream, null);
 4526  0
   }
 4527  
   public void ReInit(java.io.InputStream stream, String encoding) {
 4528  0
     try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
 4529  0
     token_source.ReInit(jj_input_stream);
 4530  0
     token = new Token();
 4531  0
     jj_ntk = -1;
 4532  0
     jjtree.reset();
 4533  0
     jj_gen = 0;
 4534  0
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4535  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4536  0
   }
 4537  
 
 4538  3
   public Wiki(java.io.Reader stream) {
 4539  3
     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 4540  3
     token_source = new WikiTokenManager(jj_input_stream);
 4541  3
     token = new Token();
 4542  3
     jj_ntk = -1;
 4543  3
     jj_gen = 0;
 4544  3
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4545  3
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4546  3
   }
 4547  
 
 4548  
   public void ReInit(java.io.Reader stream) {
 4549  0
     jj_input_stream.ReInit(stream, 1, 1);
 4550  0
     token_source.ReInit(jj_input_stream);
 4551  0
     token = new Token();
 4552  0
     jj_ntk = -1;
 4553  0
     jjtree.reset();
 4554  0
     jj_gen = 0;
 4555  0
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4556  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4557  0
   }
 4558  
 
 4559  0
   public Wiki(WikiTokenManager tm) {
 4560  0
     token_source = tm;
 4561  0
     token = new Token();
 4562  0
     jj_ntk = -1;
 4563  0
     jj_gen = 0;
 4564  0
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4565  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4566  0
   }
 4567  
 
 4568  
   public void ReInit(WikiTokenManager tm) {
 4569  0
     token_source = tm;
 4570  0
     token = new Token();
 4571  0
     jj_ntk = -1;
 4572  0
     jjtree.reset();
 4573  0
     jj_gen = 0;
 4574  0
     for (int i = 0; i < 57; i++) jj_la1[i] = -1;
 4575  0
     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 4576  0
   }
 4577  
 
 4578  
   final private Token jj_consume_token(int kind) throws ParseException {
 4579  
     Token oldToken;
 4580  583
     if ((oldToken = token).next != null) token = token.next;
 4581  4
     else token = token.next = token_source.getNextToken();
 4582  583
     jj_ntk = -1;
 4583  583
     if (token.kind == kind) {
 4584  583
       jj_gen++;
 4585  583
       if (++jj_gc > 100) {
 4586  5
         jj_gc = 0;
 4587  90
         for (int i = 0; i < jj_2_rtns.length; i++) {
 4588  85
           JJCalls c = jj_2_rtns[i];
 4589  174
           while (c != null) {
 4590  89
             if (c.gen < jj_gen) c.first = null;
 4591  89
             c = c.next;
 4592  
           }
 4593  
         }
 4594  
       }
 4595  583
       return token;
 4596  
     }
 4597  0
     token = oldToken;
 4598  0
     jj_kind = kind;
 4599  0
     throw generateParseException();
 4600  
   }
 4601  
 
 4602  6
   static private final class LookaheadSuccess extends java.lang.Error { }
 4603  3
   final private LookaheadSuccess jj_ls = new LookaheadSuccess();
 4604  
   final private boolean jj_scan_token(int kind) {
 4605  2436
     if (jj_scanpos == jj_lastpos) {
 4606  719
       jj_la--;
 4607  719
       if (jj_scanpos.next == null) {
 4608  522
         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
 4609  
       } else {
 4610  197
         jj_lastpos = jj_scanpos = jj_scanpos.next;
 4611  
       }
 4612  
     } else {
 4613  1717
       jj_scanpos = jj_scanpos.next;
 4614  
     }
 4615  2436
     if (jj_rescan) {
 4616  0
       int i = 0; Token tok = token;
 4617  0
       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
 4618  0
       if (tok != null) jj_add_error_token(kind, i);
 4619  
     }
 4620  2436
     if (jj_scanpos.kind != kind) return true;
 4621  503
     if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
 4622  461
     return false;
 4623  
   }
 4624  
 
 4625  
   final public Token getNextToken() {
 4626  0
     if (token.next != null) token = token.next;
 4627  0
     else token = token.next = token_source.getNextToken();
 4628  0
     jj_ntk = -1;
 4629  0
     jj_gen++;
 4630  0
     return token;
 4631  
   }
 4632  
 
 4633  
   final public Token getToken(int index) {
 4634  851
     Token t = lookingAhead ? jj_scanpos : token;
 4635  1197
     for (int i = 0; i < index; i++) {
 4636  346
       if (t.next != null) t = t.next;
 4637  27
       else t = t.next = token_source.getNextToken();
 4638  
     }
 4639  851
     return t;
 4640  
   }
 4641  
 
 4642  
   final private int jj_ntk() {
 4643  295
     if ((jj_nt=token.next) == null)
 4644  30
       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
 4645  
     else
 4646  265
       return (jj_ntk = jj_nt.kind);
 4647  
   }
 4648  
 
 4649  3
   private java.util.Vector jj_expentries = new java.util.Vector();
 4650  
   private int[] jj_expentry;
 4651  3
   private int jj_kind = -1;
 4652  3
   private int[] jj_lasttokens = new int[100];
 4653  
   private int jj_endpos;
 4654  
 
 4655  
   private void jj_add_error_token(int kind, int pos) {
 4656  0
     if (pos >= 100) return;
 4657  0
     if (pos == jj_endpos + 1) {
 4658  0
       jj_lasttokens[jj_endpos++] = kind;
 4659  0
     } else if (jj_endpos != 0) {
 4660  0
       jj_expentry = new int[jj_endpos];
 4661  0
       for (int i = 0; i < jj_endpos; i++) {
 4662  0
         jj_expentry[i] = jj_lasttokens[i];
 4663  
       }
 4664  0
       boolean exists = false;
 4665  0
       for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
 4666  0
         int[] oldentry = (int[])(e.nextElement());
 4667  0
         if (oldentry.length == jj_expentry.length) {
 4668  0
           exists = true;
 4669  0
           for (int i = 0; i < jj_expentry.length; i++) {
 4670  0
             if (oldentry[i] != jj_expentry[i]) {
 4671  0
               exists = false;
 4672  0
               break;
 4673  
             }
 4674  
           }
 4675  0
           if (exists) break;
 4676  
         }
 4677  0
       }
 4678  0
       if (!exists) jj_expentries.addElement(jj_expentry);
 4679  0
       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
 4680  
     }
 4681  0
   }
 4682  
 
 4683  
   public ParseException generateParseException() {
 4684  0
     jj_expentries.removeAllElements();
 4685  0
     boolean[] la1tokens = new boolean[95];
 4686  0
     for (int i = 0; i < 95; i++) {
 4687  0
       la1tokens[i] = false;
 4688  
     }
 4689  0
     if (jj_kind >= 0) {
 4690  0
       la1tokens[jj_kind] = true;
 4691  0
       jj_kind = -1;
 4692  
     }
 4693  0
     for (int i = 0; i < 57; i++) {
 4694  0
       if (jj_la1[i] == jj_gen) {
 4695  0
         for (int j = 0; j < 32; j++) {
 4696  0
           if ((jj_la1_0[i] & (1<<j)) != 0) {
 4697  0
             la1tokens[j] = true;
 4698  
           }
 4699  0
           if ((jj_la1_1[i] & (1<<j)) != 0) {
 4700  0
             la1tokens[32+j] = true;
 4701  
           }
 4702  0
           if ((jj_la1_2[i] & (1<<j)) != 0) {
 4703  0
             la1tokens[64+j] = true;
 4704  
           }
 4705  
         }
 4706  
       }
 4707  
     }
 4708  0
     for (int i = 0; i < 95; i++) {
 4709  0
       if (la1tokens[i]) {
 4710  0
         jj_expentry = new int[1];
 4711  0
         jj_expentry[0] = i;
 4712  0
         jj_expentries.addElement(jj_expentry);
 4713  
       }
 4714  
     }
 4715  0
     jj_endpos = 0;
 4716  0
     jj_rescan_token();
 4717  0
     jj_add_error_token(0, 0);
 4718  0
     int[][] exptokseq = new int[jj_expentries.size()][];
 4719  0
     for (int i = 0; i < jj_expentries.size(); i++) {
 4720  0
       exptokseq[i] = (int[])jj_expentries.elementAt(i);
 4721  
     }
 4722  0
     return new ParseException(token, exptokseq, tokenImage);
 4723  
   }
 4724  
 
 4725  
   final public void enable_tracing() {
 4726  0
   }
 4727  
 
 4728  
   final public void disable_tracing() {
 4729  0
   }
 4730  
 
 4731  
   final private void jj_rescan_token() {
 4732  0
     jj_rescan = true;
 4733  0
     for (int i = 0; i < 17; i++) {
 4734  
     try {
 4735  0
       JJCalls p = jj_2_rtns[i];
 4736  
       do {
 4737  0
         if (p.gen > jj_gen) {
 4738  0
           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
 4739  0
           switch (i) {
 4740  0
             case 0: jj_3_1(); break;
 4741  0
             case 1: jj_3_2(); break;
 4742  0
             case 2: jj_3_3(); break;
 4743  0
             case 3: jj_3_4(); break;
 4744  0
             case 4: jj_3_5(); break;
 4745  0
             case 5: jj_3_6(); break;
 4746  0
             case 6: jj_3_7(); break;
 4747  0
             case 7: jj_3_8(); break;
 4748  0
             case 8: jj_3_9(); break;
 4749  0
             case 9: jj_3_10(); break;
 4750  0
             case 10: jj_3_11(); break;
 4751  0
             case 11: jj_3_12(); break;
 4752  0
             case 12: jj_3_13(); break;
 4753  0
             case 13: jj_3_14(); break;
 4754  0
             case 14: jj_3_15(); break;
 4755  0
             case 15: jj_3_16(); break;
 4756  0
             case 16: jj_3_17(); break;
 4757  
           }
 4758  
         }
 4759  0
         p = p.next;
 4760  0
       } while (p != null);
 4761  0
       } catch(LookaheadSuccess ls) { }
 4762  
     }
 4763  0
     jj_rescan = false;
 4764  0
   }
 4765  
 
 4766  
   final private void jj_save(int index, int xla) {
 4767  634
     JJCalls p = jj_2_rtns[index];
 4768  636
     while (p.gen > jj_gen) {
 4769  5
       if (p.next == null) { p = p.next = new JJCalls(); break; }
 4770  2
       p = p.next;
 4771  
     }
 4772  634
     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
 4773  634
   }
 4774  
 
 4775  54
   static final class JJCalls {
 4776  
     int gen;
 4777  
     Token first;
 4778  
     int arg;
 4779  
     JJCalls next;
 4780  
   }
 4781  
 
 4782  
 }