• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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")
filter()22     protected void filter() throws LexerException, IOException
23     {
24         // Do nothing
25     }
26 
Lexer(@uppressWarnings"hiding") PushbackReader in)27     public Lexer(@SuppressWarnings("hiding") PushbackReader in)
28     {
29         this.in = in;
30     }
31 
peek()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 
next()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 
getToken()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 
new0(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)991     Token new0(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TData(text, line, pos); }
new1(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)992     Token new1(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComment(text, line, pos); }
new2(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)993     Token new2(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TVar(line, pos); }
new3(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)994     Token new3(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLvar(line, pos); }
new4(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)995     Token new4(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEvar(line, pos); }
new5(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)996     Token new5(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TUvar(line, pos); }
new6(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)997     Token new6(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSet(line, pos); }
new7(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)998     Token new7(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TIf(line, pos); }
new8(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)999     Token new8(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElseIf(text, line, pos); }
new9(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1000     Token new9(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TElse(line, pos); }
new10(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1001     Token new10(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWith(line, pos); }
new11(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1002     Token new11(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEscape(line, pos); }
new12(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1003     Token new12(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAutoescape(line, pos); }
new13(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1004     Token new13(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLoop(line, pos); }
new14(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1005     Token new14(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEach(line, pos); }
new15(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1006     Token new15(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAlt(line, pos); }
new16(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1007     Token new16(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TName(line, pos); }
new17(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1008     Token new17(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDef(line, pos); }
new18(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1009     Token new18(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCall(line, pos); }
new19(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1010     Token new19(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInclude(line, pos); }
new20(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1011     Token new20(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLinclude(line, pos); }
new21(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1012     Token new21(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TContentType(line, pos); }
new22(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1013     Token new22(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TInline(line, pos); }
new23(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1014     Token new23(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TComma(line, pos); }
new24(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1015     Token new24(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBang(line, pos); }
new25(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1016     Token new25(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAssignment(line, pos); }
new26(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1017     Token new26(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TEq(line, pos); }
new27(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1018     Token new27(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TNe(line, pos); }
new28(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1019     Token new28(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLt(line, pos); }
new29(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1020     Token new29(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGt(line, pos); }
new30(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1021     Token new30(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TLte(line, pos); }
new31(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1022     Token new31(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TGte(line, pos); }
new32(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1023     Token new32(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TAnd(line, pos); }
new33(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1024     Token new33(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TOr(line, pos); }
new34(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1025     Token new34(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TString(text, line, pos); }
new35(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1026     Token new35(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THash(line, pos); }
new36(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1027     Token new36(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPlus(line, pos); }
new37(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1028     Token new37(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TMinus(line, pos); }
new38(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1029     Token new38(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TStar(line, pos); }
new39(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1030     Token new39(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TPercent(line, pos); }
new40(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1031     Token new40(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketOpen(line, pos); }
new41(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1032     Token new41(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TBracketClose(line, pos); }
new42(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1033     Token new42(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenOpen(line, pos); }
new43(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1034     Token new43(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TParenClose(line, pos); }
new44(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1035     Token new44(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDot(line, pos); }
new45(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1036     Token new45(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDollar(line, pos); }
new46(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1037     Token new46(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TQuestion(line, pos); }
new47(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1038     Token new47(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TDecNumber(text, line, pos); }
new48(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1039     Token new48(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THexNumber(text, line, pos); }
new49(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1040     Token new49(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TWord(text, line, pos); }
new50(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1041     Token new50(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TArgWhitespace(text, line, pos); }
new51(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1042     Token new51(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TSlash(line, pos); }
new52(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1043     Token new52(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsOpen(text, line, pos); }
new53(@uppressWarnings"hiding") int line, @SuppressWarnings("hiding") int pos)1044     Token new53(@SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommentStart(line, pos); }
new54(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1045     Token new54(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCommandDelimiter(text, line, pos); }
new55(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1046     Token new55(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new THardDelimiter(text, line, pos); }
new56(@uppressWarnings"hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos)1047     Token new56(@SuppressWarnings("hiding") String text, @SuppressWarnings("hiding") int line, @SuppressWarnings("hiding") int pos) { return new TCsClose(text, line, pos); }
1048 
getChar()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 
pushBack(int acceptLength)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 
unread(@uppressWarnings"hiding") Token token)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 
getText(int acceptLength)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 
State(@uppressWarnings"hiding") int id)1324         private State(@SuppressWarnings("hiding") int id)
1325         {
1326             this.id = id;
1327         }
1328 
id()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 
s.close()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