Home | History | Annotate | Download | only in lexer
      1 /* This file was generated by SableCC (http://www.sablecc.org/). */
      2 
      3 package com.google.clearsilver.jsilver.syntax.lexer;
      4 
      5 import java.io.*;
      6 import com.google.clearsilver.jsilver.syntax.node.*;
      7 
      8 @SuppressWarnings("nls")
      9 public class Lexer
     10 {
     11     protected Token token;
     12     protected State state = State.CONTENT;
     13 
     14     private PushbackReader in;
     15     private int line;
     16     private int pos;
     17     private boolean cr;
     18     private boolean eof;
     19     private final StringBuffer text = new StringBuffer();
     20 
     21     @SuppressWarnings("unused")
     22     protected void filter() throws LexerException, IOException
     23     {
     24         // Do nothing
     25     }
     26 
     27     public Lexer(@SuppressWarnings("hiding") PushbackReader in)
     28     {
     29         this.in = in;
     30     }
     31 
     32     public Token peek() throws LexerException, IOException
     33     {
     34         while(this.token == null)
     35         {
     36             this.token = getToken();
     37             filter();
     38         }
     39 
     40         return this.token;
     41     }
     42 
     43     public Token next() throws LexerException, IOException
     44     {
     45         while(this.token == null)
     46         {
     47             this.token = getToken();
     48             filter();
     49         }
     50 
     51         Token result = this.token;
     52         this.token = null;
     53         return result;
     54     }
     55 
     56     protected Token getToken() throws IOException, LexerException
     57     {
     58         int dfa_state = 0;
     59 
     60         int start_pos = this.pos;
     61         int start_line = this.line;
     62 
     63         int accept_state = -1;
     64         int accept_token = -1;
     65         int accept_length = -1;
     66         int accept_pos = -1;
     67         int accept_line = -1;
     68 
     69         @SuppressWarnings("hiding") int[][][] gotoTable = Lexer.gotoTable[this.state.id()];
     70         @SuppressWarnings("hiding") int[] accept = Lexer.accept[this.state.id()];
     71         this.text.setLength(0);
     72 
     73         while(true)
     74         {
     75             int c = getChar();
     76 
     77             if(c != -1)
     78             {
     79                 switch(c)
     80                 {
     81                 case 10:
     82                     if(this.cr)
     83                     {
     84                         this.cr = false;
     85                     }
     86                     else
     87                     {
     88                         this.line++;
     89                         this.pos = 0;
     90                     }
     91                     break;
     92                 case 13:
     93                     this.line++;
     94                     this.pos = 0;
     95                     this.cr = true;
     96                     break;
     97                 default:
     98                     this.pos++;
     99                     this.cr = false;
    100                     break;
    101                 }
    102 
    103                 this.text.append((char) c);
    104 
    105                 do
    106                 {
    107                     int oldState = (dfa_state < -1) ? (-2 -dfa_state) : dfa_state;
    108 
    109                     dfa_state = -1;
    110 
    111                     int[][] tmp1 =  gotoTable[oldState];
    112                     int low = 0;
    113                     int high = tmp1.length - 1;
    114 
    115                     while(low <= high)
    116                     {
    117                         int middle = (low + high) / 2;
    118                         int[] tmp2 = tmp1[middle];
    119 
    120                         if(c < tmp2[0])
    121                         {
    122                             high = middle - 1;
    123                         }
    124                         else if(c > tmp2[1])
    125                         {
    126                             low = middle + 1;
    127                         }
    128                         else
    129                         {
    130                             dfa_state = tmp2[2];
    131                             break;
    132                         }
    133                     }
    134                 }while(dfa_state < -1);
    135             }
    136             else
    137             {
    138                 dfa_state = -1;
    139             }
    140 
    141             if(dfa_state >= 0)
    142             {
    143                 if(accept[dfa_state] != -1)
    144                 {
    145                     accept_state = dfa_state;
    146                     accept_token = accept[dfa_state];
    147                     accept_length = this.text.length();
    148                     accept_pos = this.pos;
    149                     accept_line = this.line;
    150                 }
    151             }
    152             else
    153             {
    154                 if(accept_state != -1)
    155                 {
    156                     switch(accept_token)
    157                     {
    158                     case 0:
    159                         {
    160                             @SuppressWarnings("hiding") Token token = new0(
    161                                 getText(accept_length),
    162                                 start_line + 1,
    163                                 start_pos + 1);
    164                             pushBack(accept_length);
    165                             this.pos = accept_pos;
    166                             this.line = accept_line;
    167                             switch(state.id())
    168                             {
    169                                 case 0: state = State.CONTENT; break;
    170                             }
    171                             return token;
    172                         }
    173                     case 1:
    174                         {
    175                             @SuppressWarnings("hiding") Token token = new1(
    176                                 getText(accept_length),
    177                                 start_line + 1,
    178                                 start_pos + 1);
    179                             pushBack(accept_length);
    180                             this.pos = accept_pos;
    181                             this.line = accept_line;
    182                             switch(state.id())
    183                             {
    184                                 case 3: state = State.COMMENT; break;
    185                             }
    186                             return token;
    187                         }
    188                     case 2:
    189                         {
    190                             @SuppressWarnings("hiding") Token token = new2(
    191                                 start_line + 1,
    192                                 start_pos + 1);
    193                             pushBack(accept_length);
    194                             this.pos = accept_pos;
    195                             this.line = accept_line;
    196                             switch(state.id())
    197                             {
    198                                 case 1: state = State.COMMAND; break;
    199                             }
    200                             return token;
    201                         }
    202                     case 3:
    203                         {
    204                             @SuppressWarnings("hiding") Token token = new3(
    205                                 start_line + 1,
    206                                 start_pos + 1);
    207                             pushBack(accept_length);
    208                             this.pos = accept_pos;
    209                             this.line = accept_line;
    210                             switch(state.id())
    211                             {
    212                                 case 1: state = State.COMMAND; break;
    213                             }
    214                             return token;
    215                         }
    216                     case 4:
    217                         {
    218                             @SuppressWarnings("hiding") Token token = new4(
    219                                 start_line + 1,
    220                                 start_pos + 1);
    221                             pushBack(accept_length);
    222                             this.pos = accept_pos;
    223                             this.line = accept_line;
    224                             switch(state.id())
    225                             {
    226                                 case 1: state = State.COMMAND; break;
    227                             }
    228                             return token;
    229                         }
    230                     case 5:
    231                         {
    232                             @SuppressWarnings("hiding") Token token = new5(
    233                                 start_line + 1,
    234                                 start_pos + 1);
    235                             pushBack(accept_length);
    236                             this.pos = accept_pos;
    237                             this.line = accept_line;
    238                             switch(state.id())
    239                             {
    240                                 case 1: state = State.COMMAND; break;
    241                             }
    242                             return token;
    243                         }
    244                     case 6:
    245                         {
    246                             @SuppressWarnings("hiding") Token token = new6(
    247                                 start_line + 1,
    248                                 start_pos + 1);
    249                             pushBack(accept_length);
    250                             this.pos = accept_pos;
    251                             this.line = accept_line;
    252                             switch(state.id())
    253                             {
    254                                 case 1: state = State.COMMAND; break;
    255                             }
    256                             return token;
    257                         }
    258                     case 7:
    259                         {
    260                             @SuppressWarnings("hiding") Token token = new7(
    261                                 start_line + 1,
    262                                 start_pos + 1);
    263                             pushBack(accept_length);
    264                             this.pos = accept_pos;
    265                             this.line = accept_line;
    266                             switch(state.id())
    267                             {
    268                                 case 1: state = State.COMMAND; break;
    269                             }
    270                             return token;
    271                         }
    272                     case 8:
    273                         {
    274                             @SuppressWarnings("hiding") Token token = new8(
    275                                 getText(accept_length),
    276                                 start_line + 1,
    277                                 start_pos + 1);
    278                             pushBack(accept_length);
    279                             this.pos = accept_pos;
    280                             this.line = accept_line;
    281                             switch(state.id())
    282                             {
    283                                 case 1: state = State.COMMAND; break;
    284                             }
    285                             return token;
    286                         }
    287                     case 9:
    288                         {
    289                             @SuppressWarnings("hiding") Token token = new9(
    290                                 start_line + 1,
    291                                 start_pos + 1);
    292                             pushBack(accept_length);
    293                             this.pos = accept_pos;
    294                             this.line = accept_line;
    295                             switch(state.id())
    296                             {
    297                                 case 1: state = State.COMMAND; break;
    298                             }
    299                             return token;
    300                         }
    301                     case 10:
    302                         {
    303                             @SuppressWarnings("hiding") Token token = new10(
    304                                 start_line + 1,
    305                                 start_pos + 1);
    306                             pushBack(accept_length);
    307                             this.pos = accept_pos;
    308                             this.line = accept_line;
    309                             switch(state.id())
    310                             {
    311                                 case 1: state = State.COMMAND; break;
    312                             }
    313                             return token;
    314                         }
    315                     case 11:
    316                         {
    317                             @SuppressWarnings("hiding") Token token = new11(
    318                                 start_line + 1,
    319                                 start_pos + 1);
    320                             pushBack(accept_length);
    321                             this.pos = accept_pos;
    322                             this.line = accept_line;
    323                             switch(state.id())
    324                             {
    325                                 case 1: state = State.COMMAND; break;
    326                             }
    327                             return token;
    328                         }
    329                     case 12:
    330                         {
    331                             @SuppressWarnings("hiding") Token token = new12(
    332                                 start_line + 1,
    333                                 start_pos + 1);
    334                             pushBack(accept_length);
    335                             this.pos = accept_pos;
    336                             this.line = accept_line;
    337                             switch(state.id())
    338                             {
    339                                 case 1: state = State.COMMAND; break;
    340                             }
    341                             return token;
    342                         }
    343                     case 13:
    344                         {
    345                             @SuppressWarnings("hiding") Token token = new13(
    346                                 start_line + 1,
    347                                 start_pos + 1);
    348                             pushBack(accept_length);
    349                             this.pos = accept_pos;
    350                             this.line = accept_line;
    351                             switch(state.id())
    352                             {
    353                                 case 1: state = State.COMMAND; break;
    354                             }
    355                             return token;
    356                         }
    357                     case 14:
    358                         {
    359                             @SuppressWarnings("hiding") Token token = new14(
    360                                 start_line + 1,
    361                                 start_pos + 1);
    362                             pushBack(accept_length);
    363                             this.pos = accept_pos;
    364                             this.line = accept_line;
    365                             switch(state.id())
    366                             {
    367                                 case 1: state = State.COMMAND; break;
    368                             }
    369                             return token;
    370                         }
    371                     case 15:
    372                         {
    373                             @SuppressWarnings("hiding") Token token = new15(
    374                                 start_line + 1,
    375                                 start_pos + 1);
    376                             pushBack(accept_length);
    377                             this.pos = accept_pos;
    378                             this.line = accept_line;
    379                             switch(state.id())
    380                             {
    381                                 case 1: state = State.COMMAND; break;
    382                             }
    383                             return token;
    384                         }
    385                     case 16:
    386                         {
    387                             @SuppressWarnings("hiding") Token token = new16(
    388                                 start_line + 1,
    389                                 start_pos + 1);
    390                             pushBack(accept_length);
    391                             this.pos = accept_pos;
    392                             this.line = accept_line;
    393                             switch(state.id())
    394                             {
    395                                 case 1: state = State.COMMAND; break;
    396                             }
    397                             return token;
    398                         }
    399                     case 17:
    400                         {
    401                             @SuppressWarnings("hiding") Token token = new17(
    402                                 start_line + 1,
    403                                 start_pos + 1);
    404                             pushBack(accept_length);
    405                             this.pos = accept_pos;
    406                             this.line = accept_line;
    407                             switch(state.id())
    408                             {
    409                                 case 1: state = State.COMMAND; break;
    410                             }
    411                             return token;
    412                         }
    413                     case 18:
    414                         {
    415                             @SuppressWarnings("hiding") Token token = new18(
    416                                 start_line + 1,
    417                                 start_pos + 1);
    418                             pushBack(accept_length);
    419                             this.pos = accept_pos;
    420                             this.line = accept_line;
    421                             switch(state.id())
    422                             {
    423                                 case 1: state = State.COMMAND; break;
    424                             }
    425                             return token;
    426                         }
    427                     case 19:
    428                         {
    429                             @SuppressWarnings("hiding") Token token = new19(
    430                                 start_line + 1,
    431                                 start_pos + 1);
    432                             pushBack(accept_length);
    433                             this.pos = accept_pos;
    434                             this.line = accept_line;
    435                             switch(state.id())
    436                             {
    437                                 case 1: state = State.COMMAND; break;
    438                             }
    439                             return token;
    440                         }
    441                     case 20:
    442                         {
    443                             @SuppressWarnings("hiding") Token token = new20(
    444                                 start_line + 1,
    445                                 start_pos + 1);
    446                             pushBack(accept_length);
    447                             this.pos = accept_pos;
    448                             this.line = accept_line;
    449                             switch(state.id())
    450                             {
    451                                 case 1: state = State.COMMAND; break;
    452                             }
    453                             return token;
    454                         }
    455                     case 21:
    456                         {
    457                             @SuppressWarnings("hiding") Token token = new21(
    458                                 start_line + 1,
    459                                 start_pos + 1);
    460                             pushBack(accept_length);
    461                             this.pos = accept_pos;
    462                             this.line = accept_line;
    463                             switch(state.id())
    464                             {
    465                                 case 1: state = State.COMMAND; break;
    466                             }
    467                             return token;
    468                         }
    469                     case 22:
    470                         {
    471                             @SuppressWarnings("hiding") Token token = new22(
    472                                 start_line + 1,
    473                                 start_pos + 1);
    474                             pushBack(accept_length);
    475                             this.pos = accept_pos;
    476                             this.line = accept_line;
    477                             switch(state.id())
    478                             {
    479                                 case 1: state = State.COMMAND; break;
    480                             }
    481                             return token;
    482                         }
    483                     case 23:
    484                         {
    485                             @SuppressWarnings("hiding") Token token = new23(
    486                                 start_line + 1,
    487                                 start_pos + 1);
    488                             pushBack(accept_length);
    489                             this.pos = accept_pos;
    490                             this.line = accept_line;
    491                             switch(state.id())
    492                             {
    493                                 case 2: state = State.ARGS; break;
    494                             }
    495                             return token;
    496                         }
    497                     case 24:
    498                         {
    499                             @SuppressWarnings("hiding") Token token = new24(
    500                                 start_line + 1,
    501                                 start_pos + 1);
    502                             pushBack(accept_length);
    503                             this.pos = accept_pos;
    504                             this.line = accept_line;
    505                             switch(state.id())
    506                             {
    507                                 case 2: state = State.ARGS; break;
    508                             }
    509                             return token;
    510                         }
    511                     case 25:
    512                         {
    513                             @SuppressWarnings("hiding") Token token = new25(
    514                                 start_line + 1,
    515                                 start_pos + 1);
    516                             pushBack(accept_length);
    517                             this.pos = accept_pos;
    518                             this.line = accept_line;
    519                             switch(state.id())
    520                             {
    521                                 case 2: state = State.ARGS; break;
    522                             }
    523                             return token;
    524                         }
    525                     case 26:
    526                         {
    527                             @SuppressWarnings("hiding") Token token = new26(
    528                                 start_line + 1,
    529                                 start_pos + 1);
    530                             pushBack(accept_length);
    531                             this.pos = accept_pos;
    532                             this.line = accept_line;
    533                             switch(state.id())
    534                             {
    535                                 case 2: state = State.ARGS; break;
    536                             }
    537                             return token;
    538                         }
    539                     case 27:
    540                         {
    541                             @SuppressWarnings("hiding") Token token = new27(
    542                                 start_line + 1,
    543                                 start_pos + 1);
    544                             pushBack(accept_length);
    545                             this.pos = accept_pos;
    546                             this.line = accept_line;
    547                             switch(state.id())
    548                             {
    549                                 case 2: state = State.ARGS; break;
    550                             }
    551                             return token;
    552                         }
    553                     case 28:
    554                         {
    555                             @SuppressWarnings("hiding") Token token = new28(
    556                                 start_line + 1,
    557                                 start_pos + 1);
    558                             pushBack(accept_length);
    559                             this.pos = accept_pos;
    560                             this.line = accept_line;
    561                             switch(state.id())
    562                             {
    563                                 case 2: state = State.ARGS; break;
    564                             }
    565                             return token;
    566                         }
    567                     case 29:
    568                         {
    569                             @SuppressWarnings("hiding") Token token = new29(
    570                                 start_line + 1,
    571                                 start_pos + 1);
    572                             pushBack(accept_length);
    573                             this.pos = accept_pos;
    574                             this.line = accept_line;
    575                             switch(state.id())
    576                             {
    577                                 case 2: state = State.ARGS; break;
    578                             }
    579                             return token;
    580                         }
    581                     case 30:
    582                         {
    583                             @SuppressWarnings("hiding") Token token = new30(
    584                                 start_line + 1,
    585                                 start_pos + 1);
    586                             pushBack(accept_length);
    587                             this.pos = accept_pos;
    588                             this.line = accept_line;
    589                             switch(state.id())
    590                             {
    591                                 case 2: state = State.ARGS; break;
    592                             }
    593                             return token;
    594                         }
    595                     case 31:
    596                         {
    597                             @SuppressWarnings("hiding") Token token = new31(
    598                                 start_line + 1,
    599                                 start_pos + 1);
    600                             pushBack(accept_length);
    601                             this.pos = accept_pos;
    602                             this.line = accept_line;
    603                             switch(state.id())
    604                             {
    605                                 case 2: state = State.ARGS; break;
    606                             }
    607                             return token;
    608                         }
    609                     case 32:
    610                         {
    611                             @SuppressWarnings("hiding") Token token = new32(
    612                                 start_line + 1,
    613                                 start_pos + 1);
    614                             pushBack(accept_length);
    615                             this.pos = accept_pos;
    616                             this.line = accept_line;
    617                             switch(state.id())
    618                             {
    619                                 case 2: state = State.ARGS; break;
    620                             }
    621                             return token;
    622                         }
    623                     case 33:
    624                         {
    625                             @SuppressWarnings("hiding") Token token = new33(
    626                                 start_line + 1,
    627                                 start_pos + 1);
    628                             pushBack(accept_length);
    629                             this.pos = accept_pos;
    630                             this.line = accept_line;
    631                             switch(state.id())
    632                             {
    633                                 case 2: state = State.ARGS; break;
    634                             }
    635                             return token;
    636                         }
    637                     case 34:
    638                         {
    639                             @SuppressWarnings("hiding") Token token = new34(
    640                                 getText(accept_length),
    641                                 start_line + 1,
    642                                 start_pos + 1);
    643                             pushBack(accept_length);
    644                             this.pos = accept_pos;
    645                             this.line = accept_line;
    646                             switch(state.id())
    647                             {
    648                                 case 2: state = State.ARGS; break;
    649                             }
    650                             return token;
    651                         }
    652                     case 35:
    653                         {
    654                             @SuppressWarnings("hiding") Token token = new35(
    655                                 start_line + 1,
    656                                 start_pos + 1);
    657                             pushBack(accept_length);
    658                             this.pos = accept_pos;
    659                             this.line = accept_line;
    660                             switch(state.id())
    661                             {
    662                                 case 2: state = State.ARGS; break;
    663                             }
    664                             return token;
    665                         }
    666                     case 36:
    667                         {
    668                             @SuppressWarnings("hiding") Token token = new36(
    669                                 start_line + 1,
    670                                 start_pos + 1);
    671                             pushBack(accept_length);
    672                             this.pos = accept_pos;
    673                             this.line = accept_line;
    674                             switch(state.id())
    675                             {
    676                                 case 2: state = State.ARGS; break;
    677                             }
    678                             return token;
    679                         }
    680                     case 37:
    681                         {
    682                             @SuppressWarnings("hiding") Token token = new37(
    683                                 start_line + 1,
    684                                 start_pos + 1);
    685                             pushBack(accept_length);
    686                             this.pos = accept_pos;
    687                             this.line = accept_line;
    688                             switch(state.id())
    689                             {
    690                                 case 2: state = State.ARGS; break;
    691                             }
    692                             return token;
    693                         }
    694                     case 38:
    695                         {
    696                             @SuppressWarnings("hiding") Token token = new38(
    697                                 start_line + 1,
    698                                 start_pos + 1);
    699                             pushBack(accept_length);
    700                             this.pos = accept_pos;
    701                             this.line = accept_line;
    702                             switch(state.id())
    703                             {
    704                                 case 2: state = State.ARGS; break;
    705                             }
    706                             return token;
    707                         }
    708                     case 39:
    709                         {
    710                             @SuppressWarnings("hiding") Token token = new39(
    711                                 start_line + 1,
    712                                 start_pos + 1);
    713                             pushBack(accept_length);
    714                             this.pos = accept_pos;
    715                             this.line = accept_line;
    716                             switch(state.id())
    717                             {
    718                                 case 2: state = State.ARGS; break;
    719                             }
    720                             return token;
    721                         }
    722                     case 40:
    723                         {
    724                             @SuppressWarnings("hiding") Token token = new40(
    725                                 start_line + 1,
    726                                 start_pos + 1);
    727                             pushBack(accept_length);
    728                             this.pos = accept_pos;
    729                             this.line = accept_line;
    730                             switch(state.id())
    731                             {
    732                                 case 2: state = State.ARGS; break;
    733                             }
    734                             return token;
    735                         }
    736                     case 41:
    737                         {
    738                             @SuppressWarnings("hiding") Token token = new41(
    739                                 start_line + 1,
    740                                 start_pos + 1);
    741                             pushBack(accept_length);
    742                             this.pos = accept_pos;
    743                             this.line = accept_line;
    744                             switch(state.id())
    745                             {
    746                                 case 2: state = State.ARGS; break;
    747                             }
    748                             return token;
    749                         }
    750                     case 42:
    751                         {
    752                             @SuppressWarnings("hiding") Token token = new42(
    753                                 start_line + 1,
    754                                 start_pos + 1);
    755                             pushBack(accept_length);
    756                             this.pos = accept_pos;
    757                             this.line = accept_line;
    758                             switch(state.id())
    759                             {
    760                                 case 2: state = State.ARGS; break;
    761                             }
    762                             return token;
    763                         }
    764                     case 43:
    765                         {
    766                             @SuppressWarnings("hiding") Token token = new43(
    767                                 start_line + 1,
    768                                 start_pos + 1);
    769                             pushBack(accept_length);
    770                             this.pos = accept_pos;
    771                             this.line = accept_line;
    772                             switch(state.id())
    773                             {
    774                                 case 2: state = State.ARGS; break;
    775                             }
    776                             return token;
    777                         }
    778                     case 44:
    779                         {
    780                             @SuppressWarnings("hiding") Token token = new44(
    781                                 start_line + 1,
    782                                 start_pos + 1);
    783                             pushBack(accept_length);
    784                             this.pos = accept_pos;
    785                             this.line = accept_line;
    786                             switch(state.id())
    787                             {
    788                                 case 2: state = State.ARGS; break;
    789                             }
    790                             return token;
    791                         }
    792                     case 45:
    793                         {
    794                             @SuppressWarnings("hiding") Token token = new45(
    795                                 start_line + 1,
    796                                 start_pos + 1);
    797                             pushBack(accept_length);
    798                             this.pos = accept_pos;
    799                             this.line = accept_line;
    800                             switch(state.id())
    801                             {
    802                                 case 2: state = State.ARGS; break;
    803                             }
    804                             return token;
    805                         }
    806                     case 46:
    807                         {
    808                             @SuppressWarnings("hiding") Token token = new46(
    809                                 start_line + 1,
    810                                 start_pos + 1);
    811                             pushBack(accept_length);
    812                             this.pos = accept_pos;
    813                             this.line = accept_line;
    814                             switch(state.id())
    815                             {
    816                                 case 2: state = State.ARGS; break;
    817                             }
    818                             return token;
    819                         }
    820                     case 47:
    821                         {
    822                             @SuppressWarnings("hiding") Token token = new47(
    823                                 getText(accept_length),
    824                                 start_line + 1,
    825                                 start_pos + 1);
    826                             pushBack(accept_length);
    827                             this.pos = accept_pos;
    828                             this.line = accept_line;
    829                             switch(state.id())
    830                             {
    831                                 case 2: state = State.ARGS; break;
    832                             }
    833                             return token;
    834                         }
    835                     case 48:
    836                         {
    837                             @SuppressWarnings("hiding") Token token = new48(
    838                                 getText(accept_length),
    839                                 start_line + 1,
    840                                 start_pos + 1);
    841                             pushBack(accept_length);
    842                             this.pos = accept_pos;
    843                             this.line = accept_line;
    844                             switch(state.id())
    845                             {
    846                                 case 2: state = State.ARGS; break;
    847                             }
    848                             return token;
    849                         }
    850                     case 49:
    851                         {
    852                             @SuppressWarnings("hiding") Token token = new49(
    853                                 getText(accept_length),
    854                                 start_line + 1,
    855                                 start_pos + 1);
    856                             pushBack(accept_length);
    857                             this.pos = accept_pos;
    858                             this.line = accept_line;
    859                             switch(state.id())
    860                             {
    861                                 case 2: state = State.ARGS; break;
    862                             }
    863                             return token;
    864                         }
    865                     case 50:
    866                         {
    867                             @SuppressWarnings("hiding") Token token = new50(
    868                                 getText(accept_length),
    869                                 start_line + 1,
    870                                 start_pos + 1);
    871                             pushBack(accept_length);
    872                             this.pos = accept_pos;
    873                             this.line = accept_line;
    874                             switch(state.id())
    875                             {
    876                                 case 2: state = State.ARGS; break;
    877                             }
    878                             return token;
    879                         }
    880                     case 51:
    881                         {
    882                             @SuppressWarnings("hiding") Token token = new51(
    883                                 start_line + 1,
    884                                 start_pos + 1);
    885                             pushBack(accept_length);
    886                             this.pos = accept_pos;
    887                             this.line = accept_line;
    888                             switch(state.id())
    889                             {
    890                                 case 2: state = State.ARGS; break;
    891                                 case 1: state = State.COMMAND; break;
    892                             }
    893                             return token;
    894                         }
    895                     case 52:
    896                         {
    897                             @SuppressWarnings("hiding") Token token = new52(
    898                                 getText(accept_length),
    899                                 start_line + 1,
    900                                 start_pos + 1);
    901                             pushBack(accept_length);
    902                             this.pos = accept_pos;
    903                             this.line = accept_line;
    904                             switch(state.id())
    905                             {
    906                                 case 0: state = State.COMMAND; break;
    907                             }
    908                             return token;
    909                         }
    910                     case 53:
    911                         {
    912                             @SuppressWarnings("hiding") Token token = new53(
    913                                 start_line + 1,
    914                                 start_pos + 1);
    915                             pushBack(accept_length);
    916                             this.pos = accept_pos;
    917                             this.line = accept_line;
    918                             switch(state.id())
    919                             {
    920                                 case 1: state = State.COMMENT; break;
    921                             }
    922                             return token;
    923                         }
    924                     case 54:
    925                         {
    926                             @SuppressWarnings("hiding") Token token = new54(
    927                                 getText(accept_length),
    928                                 start_line + 1,
    929                                 start_pos + 1);
    930                             pushBack(accept_length);
    931                             this.pos = accept_pos;
    932                             this.line = accept_line;
    933                             switch(state.id())
    934                             {
    935                                 case 1: state = State.ARGS; break;
    936                             }
    937                             return token;
    938                         }
    939                     case 55:
    940                         {
    941                             @SuppressWarnings("hiding") Token token = new55(
    942                                 getText(accept_length),
    943                                 start_line + 1,
    944                                 start_pos + 1);
    945                             pushBack(accept_length);
    946                             this.pos = accept_pos;
    947                             this.line = accept_line;
    948                             switch(state.id())
    949                             {
    950                                 case 1: state = State.ARGS; break;
    951                             }
    952                             return token;
    953                         }
    954                     case 56:
    955                         {
    956                             @SuppressWarnings("hiding") Token token = new56(
    957                                 getText(accept_length),
    958                                 start_line + 1,
    959                                 start_pos + 1);
    960                             pushBack(accept_length);
    961                             this.pos = accept_pos;
    962                             this.line = accept_line;
    963                             switch(state.id())
    964                             {
    965                                 case 2: state = State.CONTENT; break;
    966                                 case 1: state = State.CONTENT; break;
    967                                 case 3: state = State.CONTENT; break;
    968                             }
    969                             return token;
    970                         }
    971                     }
    972                 }
    973                 else
    974                 {
    975                     if(this.text.length() > 0)
    976                     {
    977                         throw new LexerException(
    978                             "[" + (start_line + 1) + "," + (start_pos + 1) + "]" +
    979                             " Unknown token: " + this.text);
    980                     }
    981 
    982                     @SuppressWarnings("hiding") EOF token = new EOF(
    983                         start_line + 1,
    984                         start_pos + 1);
    985                     return token;
    986                 }
    987             }
    988         }
    989     }
    990 
    991     Token new0(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TData(text, line, pos); }
    992     Token new1(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComment(text, line, pos); }
    993     Token new2(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVar(line, pos); }
    994     Token new3(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLvar(line, pos); }
    995     Token new4(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEvar(line, pos); }
    996     Token new5(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUvar(line, pos); }
    997     Token new6(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSet(line, pos); }
    998     Token new7(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIf(line, pos); }
    999     Token new8(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElseIf(text, line, pos); }
   1000     Token new9(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElse(line, pos); }
   1001     Token new10(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWith(line, pos); }
   1002     Token new11(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEscape(line, pos); }
   1003     Token new12(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAutoescape(line, pos); }
   1004     Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLoop(line, pos); }
   1005     Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEach(line, pos); }
   1006     Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlt(line, pos); }
   1007     Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TName(line, pos); }
   1008     Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDef(line, pos); }
   1009     Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCall(line, pos); }
   1010     Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInclude(line, pos); }
   1011     Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLinclude(line, pos); }
   1012     Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TContentType(line, pos); }
   1013     Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInline(line, pos); }
   1014     Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComma(line, pos); }
   1015     Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBang(line, pos); }
   1016     Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAssignment(line, pos); }
   1017     Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEq(line, pos); }
   1018     Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNe(line, pos); }
   1019     Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLt(line, pos); }
   1020     Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGt(line, pos); }
   1021     Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLte(line, pos); }
   1022     Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGte(line, pos); }
   1023     Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAnd(line, pos); }
   1024     Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOr(line, pos); }
   1025     Token new34(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TString(text, line, pos); }
   1026     Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THash(line, pos); }
   1027     Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPlus(line, pos); }
   1028     Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TMinus(line, pos); }
   1029     Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStar(line, pos); }
   1030     Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPercent(line, pos); }
   1031     Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketOpen(line, pos); }
   1032     Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketClose(line, pos); }
   1033     Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenOpen(line, pos); }
   1034     Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenClose(line, pos); }
   1035     Token new44(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDot(line, pos); }
   1036     Token new45(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDollar(line, pos); }
   1037     Token new46(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TQuestion(line, pos); }
   1038     Token new47(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDecNumber(text, line, pos); }
   1039     Token new48(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THexNumber(text, line, pos); }
   1040     Token new49(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWord(text, line, pos); }
   1041     Token new50(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TArgWhitespace(text, line, pos); }
   1042     Token new51(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSlash(line, pos); }
   1043     Token new52(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsOpen(text, line, pos); }
   1044     Token new53(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommentStart(line, pos); }
   1045     Token new54(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommandDelimiter(text, line, pos); }
   1046     Token new55(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THardDelimiter(text, line, pos); }
   1047     Token new56(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsClose(text, line, pos); }
   1048 
   1049     private int getChar() throws IOException
   1050     {
   1051         if(this.eof)
   1052         {
   1053             return -1;
   1054         }
   1055 
   1056         int result = this.in.read();
   1057 
   1058         if(result == -1)
   1059         {
   1060             this.eof = true;
   1061         }
   1062 
   1063         return result;
   1064     }
   1065 
   1066     private void pushBack(int acceptLength) throws IOException
   1067     {
   1068         int length = this.text.length();
   1069         for(int i = length - 1; i >= acceptLength; i--)
   1070         {
   1071             this.eof = false;
   1072 
   1073             this.in.unread(this.text.charAt(i));
   1074         }
   1075     }
   1076 
   1077     protected void unread(@SuppressWarnings("hiding") Token token) throws IOException
   1078     {
   1079         @SuppressWarnings("hiding") String text = token.getText();
   1080         int length = text.length();
   1081 
   1082         for(int i = length - 1; i >= 0; i--)
   1083         {
   1084             this.eof = false;
   1085 
   1086             this.in.unread(text.charAt(i));
   1087         }
   1088 
   1089         this.pos = token.getPos() - 1;
   1090         this.line = token.getLine() - 1;
   1091     }
   1092 
   1093     private String getText(int acceptLength)
   1094     {
   1095         StringBuffer s = new StringBuffer(acceptLength);
   1096         for(int i = 0; i < acceptLength; i++)
   1097         {
   1098             s.append(this.text.charAt(i));
   1099         }
   1100 
   1101         return s.toString();
   1102     }
   1103 
   1104     private static int[][][][] gotoTable;
   1105 /*  {
   1106         { // CONTENT
   1107             {{0, 59, 1}, {60, 60, 2}, {61, 65535, 1}, },
   1108             {{0, 59, 1}, {60, 60, 3}, {61, 65535, 1}, },
   1109             {{0, 62, 4}, {63, 63, 5}, {64, 65535, 4}, },
   1110             {{0, 62, 4}, {63, 63, 6}, {64, 65535, 4}, },
   1111             {{0, 65535, -3}, },
   1112             {{0, 98, 7}, {99, 99, 8}, {100, 65535, 7}, },
   1113             {{0, 98, 7}, {99, 99, 9}, {100, 65535, 7}, },
   1114             {{0, 65535, -3}, },
   1115             {{0, 114, 10}, {115, 115, 11}, {116, 65535, 10}, },
   1116             {{0, 114, 10}, {115, 115, 12}, {116, 65535, 10}, },
   1117             {{0, 65535, -3}, },
   1118             {{0, 8, 13}, {9, 9, 14}, {10, 10, 15}, {11, 12, 13}, {13, 13, 16}, {14, 31, 13}, {32, 32, 17}, {33, 65535, 13}, },
   1119             {{0, 8, 13}, {11, 12, 13}, {14, 31, 13}, {33, 65535, 13}, },
   1120             {{0, 65535, -3}, },
   1121             {{9, 10, -13}, {13, 13, 16}, {32, 32, 17}, },
   1122             {{9, 32, -16}, },
   1123             {{9, 32, -16}, },
   1124             {{9, 32, -16}, },
   1125         }
   1126         { // COMMAND
   1127             {{9, 9, 1}, {10, 10, 2}, {13, 13, 3}, {32, 32, 4}, {33, 33, 5}, {35, 35, 6}, {47, 47, 7}, {58, 58, 8}, {63, 63, 9}, {97, 97, 10}, {99, 99, 11}, {100, 100, 12}, {101, 101, 13}, {105, 105, 14}, {108, 108, 15}, {110, 110, 16}, {115, 115, 17}, {117, 117, 18}, {118, 118, 19}, {119, 119, 20}, },
   1128             {{9, 9, 21}, {10, 10, 22}, {13, 13, 23}, {32, 32, 24}, {63, 63, 9}, },
   1129             {{9, 63, -3}, },
   1130             {{9, 63, -3}, },
   1131             {{9, 63, -3}, },
   1132             {},
   1133             {},
   1134             {},
   1135             {},
   1136             {{62, 62, 25}, },
   1137             {{108, 108, 26}, {117, 117, 27}, },
   1138             {{97, 97, 28}, {111, 111, 29}, },
   1139             {{101, 101, 30}, },
   1140             {{97, 97, 31}, {108, 108, 32}, {115, 115, 33}, {118, 118, 34}, },
   1141             {{102, 102, 35}, {110, 110, 36}, },
   1142             {{105, 105, 37}, {111, 111, 38}, {118, 118, 39}, },
   1143             {{97, 97, 40}, },
   1144             {{101, 101, 41}, },
   1145             {{118, 118, 42}, },
   1146             {{97, 97, 43}, },
   1147             {{105, 105, 44}, },
   1148             {{9, 63, -3}, },
   1149             {{9, 63, -3}, },
   1150             {{9, 63, -3}, },
   1151             {{9, 63, -3}, },
   1152             {},
   1153             {{116, 116, 45}, },
   1154             {{116, 116, 46}, },
   1155             {{108, 108, 47}, },
   1156             {{110, 110, 48}, },
   1157             {{102, 102, 49}, },
   1158             {{99, 99, 50}, },
   1159             {{105, 105, 51}, {115, 115, 52}, },
   1160             {{99, 99, 53}, },
   1161             {{97, 97, 54}, },
   1162             {},
   1163             {{99, 99, 55}, {108, 108, 56}, },
   1164             {{110, 110, 57}, },
   1165             {{111, 111, 58}, },
   1166             {{97, 97, 59}, },
   1167             {{109, 109, 60}, },
   1168             {{116, 116, 61}, },
   1169             {{97, 97, 62}, },
   1170             {{114, 114, 63}, },
   1171             {{116, 116, 64}, },
   1172             {},
   1173             {{111, 111, 65}, },
   1174             {{108, 108, 66}, },
   1175             {{116, 116, 67}, },
   1176             {},
   1177             {{104, 104, 68}, },
   1178             {{102, 102, 69}, },
   1179             {{101, 101, 70}, },
   1180             {{97, 97, 71}, },
   1181             {{114, 114, 72}, },
   1182             {{108, 108, 73}, },
   1183             {{105, 105, 74}, },
   1184             {{99, 99, 75}, },
   1185             {{112, 112, 76}, },
   1186             {{114, 114, 77}, },
   1187             {{101, 101, 78}, },
   1188             {},
   1189             {{114, 114, 79}, },
   1190             {},
   1191             {{104, 104, 80}, },
   1192             {{101, 101, 81}, },
   1193             {},
   1194             {{101, 101, 82}, },
   1195             {},
   1196             {},
   1197             {{105, 105, 83}, },
   1198             {{112, 112, 84}, },
   1199             {},
   1200             {{117, 117, 85}, },
   1201             {{110, 110, 86}, },
   1202             {{108, 108, 87}, },
   1203             {},
   1204             {},
   1205             {},
   1206             {},
   1207             {},
   1208             {{115, 115, 88}, },
   1209             {{110, 110, 89}, },
   1210             {{102, 102, 90}, },
   1211             {{101, 101, 91}, },
   1212             {{100, 100, 92}, },
   1213             {{101, 101, 93}, },
   1214             {{117, 117, 94}, },
   1215             {{99, 99, 95}, },
   1216             {{116, 116, 96}, },
   1217             {},
   1218             {},
   1219             {{101, 101, 97}, },
   1220             {},
   1221             {{100, 100, 98}, },
   1222             {{97, 97, 99}, },
   1223             {{45, 45, 100}, },
   1224             {},
   1225             {{101, 101, 101}, },
   1226             {{112, 112, 102}, },
   1227             {{116, 116, 103}, },
   1228             {},
   1229             {{101, 101, 104}, },
   1230             {{121, 121, 105}, },
   1231             {},
   1232             {{112, 112, 106}, },
   1233             {{101, 101, 107}, },
   1234             {},
   1235         }
   1236         { // ARGS
   1237             {{9, 9, 1}, {10, 10, 2}, {13, 13, 3}, {32, 32, 4}, {33, 33, 5}, {34, 34, 6}, {35, 35, 7}, {36, 36, 8}, {37, 37, 9}, {38, 38, 10}, {39, 39, 11}, {40, 40, 12}, {41, 41, 13}, {42, 42, 14}, {43, 43, 15}, {44, 44, 16}, {45, 45, 17}, {46, 46, 18}, {47, 47, 19}, {48, 48, 20}, {49, 57, 21}, {60, 60, 22}, {61, 61, 23}, {62, 62, 24}, {63, 63, 25}, {65, 90, 26}, {91, 91, 27}, {93, 93, 28}, {95, 95, 29}, {97, 122, 30}, {124, 124, 31}, },
   1238             {{9, 32, -2}, {63, 63, 32}, },
   1239             {{9, 63, -3}, },
   1240             {{9, 63, -3}, },
   1241             {{9, 63, -3}, },
   1242             {{61, 61, 33}, },
   1243             {{0, 33, 34}, {34, 34, 35}, {35, 65535, 34}, },
   1244             {},
   1245             {},
   1246             {},
   1247             {{38, 38, 36}, },
   1248             {{0, 38, 37}, {39, 39, 38}, {40, 65535, 37}, },
   1249             {},
   1250             {},
   1251             {},
   1252             {},
   1253             {},
   1254             {},
   1255             {},
   1256             {},
   1257             {{48, 57, 21}, {65, 87, 26}, {88, 88, 39}, {89, 90, 26}, {95, 95, 29}, {97, 119, 30}, {120, 120, 40}, {121, 122, 30}, },
   1258             {{48, 57, 21}, {65, 90, 26}, {95, 122, -2}, },
   1259             {{61, 61, 41}, },
   1260             {{61, 61, 42}, },
   1261             {{61, 61, 43}, },
   1262             {{62, 62, 44}, },
   1263             {{48, 57, 45}, {65, 122, -23}, },
   1264             {},
   1265             {},
   1266             {{48, 122, -28}, },
   1267             {{48, 122, -28}, },
   1268             {{124, 124, 46}, },
   1269             {{62, 62, 44}, },
   1270             {},
   1271             {{0, 65535, -8}, },
   1272             {},
   1273             {},
   1274             {{0, 65535, -13}, },
   1275             {},
   1276             {{48, 57, 47}, {65, 70, 48}, {71, 90, 26}, {95, 95, 29}, {97, 102, 49}, {103, 122, 30}, },
   1277             {{48, 122, -41}, },
   1278             {},
   1279             {},
   1280             {},
   1281             {},
   1282             {{48, 122, -28}, },
   1283             {},
   1284             {{48, 122, -41}, },
   1285             {{48, 122, -41}, },
   1286             {{48, 122, -41}, },
   1287         }
   1288         { // COMMENT
   1289             {{0, 8, 1}, {9, 9, 2}, {10, 10, 3}, {11, 12, 1}, {13, 13, 4}, {14, 31, 1}, {32, 32, 5}, {33, 62, 1}, {63, 63, 6}, {64, 65535, 1}, },
   1290             {{0, 62, 1}, {63, 63, 7}, {64, 65535, 1}, },
   1291             {{0, 65535, -2}, },
   1292             {{0, 65535, -2}, },
   1293             {{0, 65535, -2}, },
   1294             {{0, 65535, -2}, },
   1295             {{0, 61, 8}, {62, 62, 9}, {63, 65535, 8}, },
   1296             {{0, 61, 8}, {63, 65535, 8}, },
   1297             {{0, 65535, -3}, },
   1298             {},
   1299         }
   1300     };*/
   1301 
   1302     private static int[][] accept;
   1303 /*  {
   1304         // CONTENT
   1305         {-1, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, 52, 52, 52, 52, },
   1306         // COMMAND
   1307         {-1, 54, 54, 54, 54, 55, 53, 51, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, 2, -1, -1, 18, -1, 14, 8, 9, -1, 4, -1, -1, -1, 13, 3, 16, 5, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 11, -1, 22, -1, -1, -1, 19, -1, -1, -1, 20, -1, -1, 12, -1, -1, 21, },
   1308         // ARGS
   1309         {-1, 50, 50, 50, 50, 24, -1, 35, 45, 39, -1, -1, 42, 43, 38, 36, 23, 37, 44, 51, 47, 47, 28, 25, 29, 46, 49, 40, 41, 49, 49, -1, -1, 27, -1, 34, 32, -1, 34, 49, 49, 30, 26, 31, 56, 49, 33, 48, 48, 48, },
   1310         // COMMENT
   1311         {-1, 1, 1, 1, 1, 1, -1, -1, 1, 56, },
   1312 
   1313     };*/
   1314 
   1315     public static class State
   1316     {
   1317         public final static State CONTENT = new State(0);
   1318         public final static State COMMAND = new State(1);
   1319         public final static State ARGS = new State(2);
   1320         public final static State COMMENT = new State(3);
   1321 
   1322         private int id;
   1323 
   1324         private State(@SuppressWarnings("hiding") int id)
   1325         {
   1326             this.id = id;
   1327         }
   1328 
   1329         public int id()
   1330         {
   1331             return this.id;
   1332         }
   1333     }
   1334 
   1335     static
   1336     {
   1337         try
   1338         {
   1339             DataInputStream s = new DataInputStream(
   1340                 new BufferedInputStream(
   1341                 Lexer.class.getResourceAsStream("lexer.dat")));
   1342 
   1343             // read gotoTable
   1344             int length = s.readInt();
   1345             gotoTable = new int[length][][][];
   1346             for(int i = 0; i < gotoTable.length; i++)
   1347             {
   1348                 length = s.readInt();
   1349                 gotoTable[i] = new int[length][][];
   1350                 for(int j = 0; j < gotoTable[i].length; j++)
   1351                 {
   1352                     length = s.readInt();
   1353                     gotoTable[i][j] = new int[length][3];
   1354                     for(int k = 0; k < gotoTable[i][j].length; k++)
   1355                     {
   1356                         for(int l = 0; l < 3; l++)
   1357                         {
   1358                             gotoTable[i][j][k][l] = s.readInt();
   1359                         }
   1360                     }
   1361                 }
   1362             }
   1363 
   1364             // read accept
   1365             length = s.readInt();
   1366             accept = new int[length][];
   1367             for(int i = 0; i < accept.length; i++)
   1368             {
   1369                 length = s.readInt();
   1370                 accept[i] = new int[length];
   1371                 for(int j = 0; j < accept[i].length; j++)
   1372                 {
   1373                     accept[i][j] = s.readInt();
   1374                 }
   1375             }
   1376 
   1377             s.close();
   1378         }
   1379         catch(Exception e)
   1380         {
   1381             throw new RuntimeException("The file \"lexer.dat\" is either missing or corrupted.");
   1382         }
   1383     }
   1384 }
   1385