*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParser.java
1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
2 package test;
3
4 import org.eclipse.core.resources.IFile;
5 import org.eclipse.core.resources.IMarker;
6 import org.eclipse.core.runtime.CoreException;
7 import org.eclipse.ui.texteditor.MarkerUtilities;
8 import org.eclipse.jface.preference.IPreferenceStore;
9
10 import java.io.CharArrayReader;
11 import java.util.Hashtable;
12 import java.io.StringReader;
13 import java.text.MessageFormat;
14
15 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
16 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
17 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
18
19 /**
20  * A new php parser.
21  * This php parser is inspired by the Java 1.2 grammar example 
22  * given with JavaCC. You can get JavaCC at http://www.webgain.com
23  * You can test the parser with the PHPParserTestCase2.java
24  * @author Matthieu Casanova
25  */
26 public class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
27
28   private static PHPParser me;
29
30   private static IFile fileToParse;
31
32   private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
33   private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
34   public static final int ERROR = 2;
35   public static final int WARNING = 1;
36   public static final int INFO = 0;
37   PHPOutlineInfo outlineInfo;
38   private static int errorLevel = ERROR;
39   private static String errorMessage;
40
41   public PHPParser() {
42   }
43
44   public static PHPParser getInstance(IFile fileToParse) {
45     if (me == null) {
46       me = new PHPParser(fileToParse);
47     } else {
48       me.setFileToParse(fileToParse);
49     }
50     return me;
51   }
52
53   public void setFileToParse(IFile fileToParse) {
54     this.fileToParse = fileToParse;
55   }
56
57   public static PHPParser getInstance(java.io.Reader stream) {
58     if (me == null) {
59       me = new PHPParser(stream);
60     } else {
61       me.ReInit(stream);
62     }
63     return me;
64   }
65
66   public PHPParser(IFile fileToParse) {
67     this(new StringReader(""));
68     this.fileToParse = fileToParse;
69   }
70
71   public void phpParserTester(String strEval) throws CoreException, ParseException {
72     PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
73     StringReader stream = new StringReader(strEval);
74     if (jj_input_stream == null) {
75       jj_input_stream = new SimpleCharStream(stream, 1, 1);
76     }
77     ReInit(new StringReader(strEval));
78     phpTest();
79   }
80
81   public void htmlParserTester(String strEval) throws CoreException, ParseException {
82     StringReader stream = new StringReader(strEval);
83     if (jj_input_stream == null) {
84       jj_input_stream = new SimpleCharStream(stream, 1, 1);
85     }
86     ReInit(stream);
87     phpTest();
88   }
89
90   public PHPOutlineInfo parseInfo(Object parent, String s) {
91     outlineInfo = new PHPOutlineInfo(parent);
92     StringReader stream = new StringReader(s);
93     if (jj_input_stream == null) {
94       jj_input_stream = new SimpleCharStream(stream, 1, 1);
95     }
96     ReInit(stream);
97     try {
98       parse();
99     } catch (ParseException e) {
100       if (errorMessage == null) {
101         PHPeclipsePlugin.log(e);
102       } else {
103         setMarker(errorMessage, e.currentToken.beginLine, errorLevel);
104         errorMessage = null;
105       }
106     }
107     return outlineInfo;
108   }
109
110
111   /**
112    * Create marker for the parse error
113    */
114   private static void setMarker(String message, int lineNumber, int errorLevel) {
115     try {
116       setMarker(fileToParse, message, lineNumber, errorLevel);
117     } catch (CoreException e) {
118       PHPeclipsePlugin.log(e);
119     }
120   }
121
122   public static void setMarker(IFile file, String message, int lineNumber, int errorLevel) throws CoreException {
123     if (file != null) {
124       Hashtable attributes = new Hashtable();
125       MarkerUtilities.setMessage(attributes, message);
126       switch (errorLevel) {
127         case ERROR :
128           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
129           break;
130         case WARNING :
131           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
132           break;
133         case INFO :
134           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
135           break;
136       }
137       MarkerUtilities.setLineNumber(attributes, lineNumber);
138       MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
139     }
140   }
141
142   /**
143    * Create markers according to the external parser output
144    */
145   private static void createMarkers(String output, IFile file) throws CoreException {
146     // delete all markers
147     file.deleteMarkers(IMarker.PROBLEM, false, 0);
148
149     int indx = 0;
150     int brIndx = 0;
151     boolean flag = true;
152     while ((brIndx = output.indexOf("<br />", indx)) != -1) {
153       // newer php error output (tested with 4.2.3)
154       scanLine(output, file, indx, brIndx);
155       indx = brIndx + 6;
156       flag = false;
157     }
158     if (flag) {
159       while ((brIndx = output.indexOf("<br>", indx)) != -1) {
160         // older php error output (tested with 4.2.3)
161         scanLine(output, file, indx, brIndx);
162         indx = brIndx + 4;
163       }
164     }
165   }
166
167   private static void scanLine(String output, IFile file, int indx, int brIndx) throws CoreException {
168     String current;
169     StringBuffer lineNumberBuffer = new StringBuffer(10);
170     char ch;
171     current = output.substring(indx, brIndx);
172
173     if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
174       int onLine = current.indexOf("on line <b>");
175       if (onLine != -1) {
176         lineNumberBuffer.delete(0, lineNumberBuffer.length());
177         for (int i = onLine; i < current.length(); i++) {
178           ch = current.charAt(i);
179           if ('0' <= ch && '9' >= ch) {
180             lineNumberBuffer.append(ch);
181           }
182         }
183
184         int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
185
186         Hashtable attributes = new Hashtable();
187
188         current = current.replaceAll("\n", "");
189         current = current.replaceAll("<b>", "");
190         current = current.replaceAll("</b>", "");
191         MarkerUtilities.setMessage(attributes, current);
192
193         if (current.indexOf(PARSE_ERROR_STRING) != -1)
194           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
195         else if (current.indexOf(PARSE_WARNING_STRING) != -1)
196           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
197         else
198           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
199         MarkerUtilities.setLineNumber(attributes, lineNumber);
200         MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
201       }
202     }
203   }
204
205   public void parse(String s) throws CoreException {
206     ReInit(new StringReader(s));
207     try {
208       parse();
209     } catch (ParseException e) {
210       PHPeclipsePlugin.log(e);
211     }
212   }
213
214   /**
215    * Call the php parse command ( php -l -f &lt;filename&gt; )
216    * and create markers according to the external parser output
217    */
218   public static void phpExternalParse(IFile file) {
219     IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
220     String filename = file.getLocation().toString();
221
222     String[] arguments = { filename };
223     MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
224     String command = form.format(arguments);
225
226     String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
227
228     try {
229       // parse the buffer to find the errors and warnings
230       createMarkers(parserResult, file);
231     } catch (CoreException e) {
232       PHPeclipsePlugin.log(e);
233     }
234   }
235
236   public void parse() throws ParseException {
237           phpFile();
238   }
239
240 /*****************************************
241  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
242  *****************************************/
243
244 /*
245  * Program structuring syntax follows.
246  */
247   static final public void phpTest() throws ParseException {
248     Php();
249     jj_consume_token(0);
250   }
251
252   static final public void phpFile() throws ParseException {
253     label_1:
254     while (true) {
255       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
256       case 1:
257         ;
258         break;
259       default:
260         jj_la1[0] = jj_gen;
261         break label_1;
262       }
263       jj_consume_token(1);
264       Php();
265       jj_consume_token(128);
266     }
267     jj_consume_token(0);
268   }
269
270   static final public void Php() throws ParseException {
271     label_2:
272     while (true) {
273       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
274       case CLASS:
275       case FUNCTION:
276       case IF:
277       case ARRAY:
278       case PRINT:
279       case ECHO:
280       case INCLUDE:
281       case REQUIRE:
282       case INCLUDE_ONCE:
283       case REQUIRE_ONCE:
284       case GLOBAL:
285       case STATIC:
286       case BREAK:
287       case CONTINUE:
288       case DO:
289       case FALSE:
290       case FOR:
291       case NEW:
292       case NULL:
293       case RETURN:
294       case SWITCH:
295       case TRUE:
296       case WHILE:
297       case INTEGER_LITERAL:
298       case FLOATING_POINT_LITERAL:
299       case STRING_LITERAL:
300       case IDENTIFIER:
301       case LPAREN:
302       case LBRACE:
303       case SEMICOLON:
304       case AT:
305       case DOLLAR:
306       case BANG:
307       case INCR:
308       case DECR:
309       case PLUS:
310       case MINUS:
311       case DOLLAR_ID:
312         ;
313         break;
314       default:
315         jj_la1[1] = jj_gen;
316         break label_2;
317       }
318       BlockStatement();
319     }
320   }
321
322   static final public void ClassDeclaration() throws ParseException {
323     jj_consume_token(CLASS);
324     jj_consume_token(IDENTIFIER);
325     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
326     case EXTENDS:
327       jj_consume_token(EXTENDS);
328       jj_consume_token(IDENTIFIER);
329       break;
330     default:
331       jj_la1[2] = jj_gen;
332       ;
333     }
334     ClassBody();
335   }
336
337   static final public void ClassBody() throws ParseException {
338     jj_consume_token(LBRACE);
339     label_3:
340     while (true) {
341       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
342       case FUNCTION:
343       case VAR:
344         ;
345         break;
346       default:
347         jj_la1[3] = jj_gen;
348         break label_3;
349       }
350       ClassBodyDeclaration();
351     }
352     jj_consume_token(RBRACE);
353   }
354
355   static final public void ClassBodyDeclaration() throws ParseException {
356     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
357     case FUNCTION:
358       MethodDeclaration();
359       break;
360     case VAR:
361       FieldDeclaration();
362       break;
363     default:
364       jj_la1[4] = jj_gen;
365       jj_consume_token(-1);
366       throw new ParseException();
367     }
368   }
369
370   static final public void FieldDeclaration() throws ParseException {
371     jj_consume_token(VAR);
372     VariableDeclarator();
373     label_4:
374     while (true) {
375       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
376       case COMMA:
377         ;
378         break;
379       default:
380         jj_la1[5] = jj_gen;
381         break label_4;
382       }
383       jj_consume_token(COMMA);
384       VariableDeclarator();
385     }
386     jj_consume_token(SEMICOLON);
387   }
388
389   static final public void VariableDeclarator() throws ParseException {
390     VariableDeclaratorId();
391     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
392     case ASSIGN:
393       jj_consume_token(ASSIGN);
394       VariableInitializer();
395       break;
396     default:
397       jj_la1[6] = jj_gen;
398       ;
399     }
400   }
401
402   static final public void VariableDeclaratorId() throws ParseException {
403     Variable();
404     label_5:
405     while (true) {
406       if (jj_2_1(2)) {
407         ;
408       } else {
409         break label_5;
410       }
411       VariableSuffix();
412     }
413   }
414
415   static final public void Variable() throws ParseException {
416     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
417     case DOLLAR_ID:
418       jj_consume_token(DOLLAR_ID);
419       label_6:
420       while (true) {
421         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
422         case LBRACE:
423           ;
424           break;
425         default:
426           jj_la1[7] = jj_gen;
427           break label_6;
428         }
429         jj_consume_token(LBRACE);
430         Expression();
431         jj_consume_token(RBRACE);
432       }
433       break;
434     case DOLLAR:
435       jj_consume_token(DOLLAR);
436       VariableName();
437       break;
438     default:
439       jj_la1[8] = jj_gen;
440       jj_consume_token(-1);
441       throw new ParseException();
442     }
443   }
444
445   static final public void VariableName() throws ParseException {
446     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
447     case LBRACE:
448       jj_consume_token(LBRACE);
449       Expression();
450       jj_consume_token(RBRACE);
451       break;
452     case IDENTIFIER:
453       jj_consume_token(IDENTIFIER);
454       label_7:
455       while (true) {
456         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
457         case LBRACE:
458           ;
459           break;
460         default:
461           jj_la1[9] = jj_gen;
462           break label_7;
463         }
464         jj_consume_token(LBRACE);
465         Expression();
466         jj_consume_token(RBRACE);
467       }
468       break;
469     case DOLLAR:
470       jj_consume_token(DOLLAR);
471       VariableName();
472       break;
473     default:
474       jj_la1[10] = jj_gen;
475       jj_consume_token(-1);
476       throw new ParseException();
477     }
478   }
479
480   static final public void VariableInitializer() throws ParseException {
481     Expression();
482   }
483
484   static final public void ArrayVariable() throws ParseException {
485     Expression();
486     label_8:
487     while (true) {
488       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
489       case ARRAYASSIGN:
490         ;
491         break;
492       default:
493         jj_la1[11] = jj_gen;
494         break label_8;
495       }
496       jj_consume_token(ARRAYASSIGN);
497       Expression();
498     }
499   }
500
501   static final public void ArrayInitializer() throws ParseException {
502     jj_consume_token(LPAREN);
503     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
504     case ARRAY:
505     case PRINT:
506     case FALSE:
507     case NEW:
508     case NULL:
509     case TRUE:
510     case INTEGER_LITERAL:
511     case FLOATING_POINT_LITERAL:
512     case STRING_LITERAL:
513     case IDENTIFIER:
514     case LPAREN:
515     case AT:
516     case DOLLAR:
517     case BANG:
518     case INCR:
519     case DECR:
520     case PLUS:
521     case MINUS:
522     case DOLLAR_ID:
523       ArrayVariable();
524       label_9:
525       while (true) {
526         if (jj_2_2(2)) {
527           ;
528         } else {
529           break label_9;
530         }
531         jj_consume_token(COMMA);
532         ArrayVariable();
533       }
534       break;
535     default:
536       jj_la1[12] = jj_gen;
537       ;
538     }
539     jj_consume_token(RPAREN);
540   }
541
542   static final public void MethodDeclaration() throws ParseException {
543     jj_consume_token(FUNCTION);
544     MethodDeclarator();
545     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
546     case LBRACE:
547       Block();
548       break;
549     case SEMICOLON:
550       jj_consume_token(SEMICOLON);
551       break;
552     default:
553       jj_la1[13] = jj_gen;
554       jj_consume_token(-1);
555       throw new ParseException();
556     }
557   }
558
559   static final public void MethodDeclarator() throws ParseException {
560     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
561     case BIT_AND:
562       jj_consume_token(BIT_AND);
563       break;
564     default:
565       jj_la1[14] = jj_gen;
566       ;
567     }
568     jj_consume_token(IDENTIFIER);
569     FormalParameters();
570   }
571
572   static final public void FormalParameters() throws ParseException {
573     jj_consume_token(LPAREN);
574     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
575     case DOLLAR:
576     case BIT_AND:
577     case DOLLAR_ID:
578       FormalParameter();
579       label_10:
580       while (true) {
581         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
582         case COMMA:
583           ;
584           break;
585         default:
586           jj_la1[15] = jj_gen;
587           break label_10;
588         }
589         jj_consume_token(COMMA);
590         FormalParameter();
591       }
592       break;
593     default:
594       jj_la1[16] = jj_gen;
595       ;
596     }
597     jj_consume_token(RPAREN);
598   }
599
600   static final public void FormalParameter() throws ParseException {
601     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
602     case BIT_AND:
603       jj_consume_token(BIT_AND);
604       break;
605     default:
606       jj_la1[17] = jj_gen;
607       ;
608     }
609     VariableDeclarator();
610   }
611
612   static final public void Type() throws ParseException {
613     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
614     case STRING:
615       jj_consume_token(STRING);
616       break;
617     case BOOL:
618       jj_consume_token(BOOL);
619       break;
620     case BOOLEAN:
621       jj_consume_token(BOOLEAN);
622       break;
623     case REAL:
624       jj_consume_token(REAL);
625       break;
626     case DOUBLE:
627       jj_consume_token(DOUBLE);
628       break;
629     case FLOAT:
630       jj_consume_token(FLOAT);
631       break;
632     case INT:
633       jj_consume_token(INT);
634       break;
635     case INTEGER:
636       jj_consume_token(INTEGER);
637       break;
638     default:
639       jj_la1[18] = jj_gen;
640       jj_consume_token(-1);
641       throw new ParseException();
642     }
643   }
644
645 /*
646  * Expression syntax follows.
647  */
648   static final public void Expression() throws ParseException {
649     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
650     case PRINT:
651       PrintExpression();
652       break;
653     case ARRAY:
654     case FALSE:
655     case NEW:
656     case NULL:
657     case TRUE:
658     case INTEGER_LITERAL:
659     case FLOATING_POINT_LITERAL:
660     case STRING_LITERAL:
661     case IDENTIFIER:
662     case LPAREN:
663     case AT:
664     case DOLLAR:
665     case BANG:
666     case INCR:
667     case DECR:
668     case PLUS:
669     case MINUS:
670     case DOLLAR_ID:
671       ConditionalExpression();
672       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
673       case ASSIGN:
674       case PLUSASSIGN:
675       case MINUSASSIGN:
676       case STARASSIGN:
677       case SLASHASSIGN:
678       case ANDASSIGN:
679       case ORASSIGN:
680       case XORASSIGN:
681       case DOTASSIGN:
682       case REMASSIGN:
683       case LSHIFTASSIGN:
684       case RSIGNEDSHIFTASSIGN:
685       case RUNSIGNEDSHIFTASSIGN:
686         AssignmentOperator();
687         Expression();
688         break;
689       default:
690         jj_la1[19] = jj_gen;
691         ;
692       }
693       break;
694     default:
695       jj_la1[20] = jj_gen;
696       jj_consume_token(-1);
697       throw new ParseException();
698     }
699   }
700
701   static final public void AssignmentOperator() throws ParseException {
702     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
703     case ASSIGN:
704       jj_consume_token(ASSIGN);
705       break;
706     case STARASSIGN:
707       jj_consume_token(STARASSIGN);
708       break;
709     case SLASHASSIGN:
710       jj_consume_token(SLASHASSIGN);
711       break;
712     case REMASSIGN:
713       jj_consume_token(REMASSIGN);
714       break;
715     case PLUSASSIGN:
716       jj_consume_token(PLUSASSIGN);
717       break;
718     case MINUSASSIGN:
719       jj_consume_token(MINUSASSIGN);
720       break;
721     case LSHIFTASSIGN:
722       jj_consume_token(LSHIFTASSIGN);
723       break;
724     case RSIGNEDSHIFTASSIGN:
725       jj_consume_token(RSIGNEDSHIFTASSIGN);
726       break;
727     case RUNSIGNEDSHIFTASSIGN:
728       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
729       break;
730     case ANDASSIGN:
731       jj_consume_token(ANDASSIGN);
732       break;
733     case XORASSIGN:
734       jj_consume_token(XORASSIGN);
735       break;
736     case ORASSIGN:
737       jj_consume_token(ORASSIGN);
738       break;
739     case DOTASSIGN:
740       jj_consume_token(DOTASSIGN);
741       break;
742     default:
743       jj_la1[21] = jj_gen;
744       jj_consume_token(-1);
745       throw new ParseException();
746     }
747   }
748
749   static final public void ConditionalExpression() throws ParseException {
750     ConditionalOrExpression();
751     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
752     case HOOK:
753       jj_consume_token(HOOK);
754       Expression();
755       jj_consume_token(COLON);
756       ConditionalExpression();
757       break;
758     default:
759       jj_la1[22] = jj_gen;
760       ;
761     }
762   }
763
764   static final public void ConditionalOrExpression() throws ParseException {
765     ConditionalAndExpression();
766     label_11:
767     while (true) {
768       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
769       case _ORL:
770       case SC_OR:
771         ;
772         break;
773       default:
774         jj_la1[23] = jj_gen;
775         break label_11;
776       }
777       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
778       case SC_OR:
779         jj_consume_token(SC_OR);
780         break;
781       case _ORL:
782         jj_consume_token(_ORL);
783         break;
784       default:
785         jj_la1[24] = jj_gen;
786         jj_consume_token(-1);
787         throw new ParseException();
788       }
789       ConditionalAndExpression();
790     }
791   }
792
793   static final public void ConditionalAndExpression() throws ParseException {
794     ConcatExpression();
795     label_12:
796     while (true) {
797       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
798       case _ANDL:
799       case SC_AND:
800         ;
801         break;
802       default:
803         jj_la1[25] = jj_gen;
804         break label_12;
805       }
806       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
807       case SC_AND:
808         jj_consume_token(SC_AND);
809         break;
810       case _ANDL:
811         jj_consume_token(_ANDL);
812         break;
813       default:
814         jj_la1[26] = jj_gen;
815         jj_consume_token(-1);
816         throw new ParseException();
817       }
818       ConcatExpression();
819     }
820   }
821
822   static final public void ConcatExpression() throws ParseException {
823     InclusiveOrExpression();
824     label_13:
825     while (true) {
826       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
827       case DOT:
828         ;
829         break;
830       default:
831         jj_la1[27] = jj_gen;
832         break label_13;
833       }
834       jj_consume_token(DOT);
835       InclusiveOrExpression();
836     }
837   }
838
839   static final public void InclusiveOrExpression() throws ParseException {
840     ExclusiveOrExpression();
841     label_14:
842     while (true) {
843       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
844       case BIT_OR:
845         ;
846         break;
847       default:
848         jj_la1[28] = jj_gen;
849         break label_14;
850       }
851       jj_consume_token(BIT_OR);
852       ExclusiveOrExpression();
853     }
854   }
855
856   static final public void ExclusiveOrExpression() throws ParseException {
857     AndExpression();
858     label_15:
859     while (true) {
860       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
861       case XOR:
862         ;
863         break;
864       default:
865         jj_la1[29] = jj_gen;
866         break label_15;
867       }
868       jj_consume_token(XOR);
869       AndExpression();
870     }
871   }
872
873   static final public void AndExpression() throws ParseException {
874     EqualityExpression();
875     label_16:
876     while (true) {
877       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
878       case BIT_AND:
879         ;
880         break;
881       default:
882         jj_la1[30] = jj_gen;
883         break label_16;
884       }
885       jj_consume_token(BIT_AND);
886       EqualityExpression();
887     }
888   }
889
890   static final public void EqualityExpression() throws ParseException {
891     RelationalExpression();
892     label_17:
893     while (true) {
894       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
895       case EQ:
896       case NE:
897         ;
898         break;
899       default:
900         jj_la1[31] = jj_gen;
901         break label_17;
902       }
903       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
904       case EQ:
905         jj_consume_token(EQ);
906         break;
907       case NE:
908         jj_consume_token(NE);
909         break;
910       default:
911         jj_la1[32] = jj_gen;
912         jj_consume_token(-1);
913         throw new ParseException();
914       }
915       RelationalExpression();
916     }
917   }
918
919   static final public void RelationalExpression() throws ParseException {
920     ShiftExpression();
921     label_18:
922     while (true) {
923       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
924       case GT:
925       case LT:
926       case LE:
927       case GE:
928         ;
929         break;
930       default:
931         jj_la1[33] = jj_gen;
932         break label_18;
933       }
934       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
935       case LT:
936         jj_consume_token(LT);
937         break;
938       case GT:
939         jj_consume_token(GT);
940         break;
941       case LE:
942         jj_consume_token(LE);
943         break;
944       case GE:
945         jj_consume_token(GE);
946         break;
947       default:
948         jj_la1[34] = jj_gen;
949         jj_consume_token(-1);
950         throw new ParseException();
951       }
952       ShiftExpression();
953     }
954   }
955
956   static final public void ShiftExpression() throws ParseException {
957     AdditiveExpression();
958     label_19:
959     while (true) {
960       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
961       case LSHIFT:
962       case RSIGNEDSHIFT:
963       case RUNSIGNEDSHIFT:
964         ;
965         break;
966       default:
967         jj_la1[35] = jj_gen;
968         break label_19;
969       }
970       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
971       case LSHIFT:
972         jj_consume_token(LSHIFT);
973         break;
974       case RSIGNEDSHIFT:
975         jj_consume_token(RSIGNEDSHIFT);
976         break;
977       case RUNSIGNEDSHIFT:
978         jj_consume_token(RUNSIGNEDSHIFT);
979         break;
980       default:
981         jj_la1[36] = jj_gen;
982         jj_consume_token(-1);
983         throw new ParseException();
984       }
985       AdditiveExpression();
986     }
987   }
988
989   static final public void AdditiveExpression() throws ParseException {
990     MultiplicativeExpression();
991     label_20:
992     while (true) {
993       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
994       case PLUS:
995       case MINUS:
996         ;
997         break;
998       default:
999         jj_la1[37] = jj_gen;
1000         break label_20;
1001       }
1002       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1003       case PLUS:
1004         jj_consume_token(PLUS);
1005         break;
1006       case MINUS:
1007         jj_consume_token(MINUS);
1008         break;
1009       default:
1010         jj_la1[38] = jj_gen;
1011         jj_consume_token(-1);
1012         throw new ParseException();
1013       }
1014       MultiplicativeExpression();
1015     }
1016   }
1017
1018   static final public void MultiplicativeExpression() throws ParseException {
1019     UnaryExpression();
1020     label_21:
1021     while (true) {
1022       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1023       case STAR:
1024       case SLASH:
1025       case REM:
1026         ;
1027         break;
1028       default:
1029         jj_la1[39] = jj_gen;
1030         break label_21;
1031       }
1032       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1033       case STAR:
1034         jj_consume_token(STAR);
1035         break;
1036       case SLASH:
1037         jj_consume_token(SLASH);
1038         break;
1039       case REM:
1040         jj_consume_token(REM);
1041         break;
1042       default:
1043         jj_la1[40] = jj_gen;
1044         jj_consume_token(-1);
1045         throw new ParseException();
1046       }
1047       UnaryExpression();
1048     }
1049   }
1050
1051   static final public void UnaryExpression() throws ParseException {
1052     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1053     case AT:
1054       jj_consume_token(AT);
1055       UnaryExpression();
1056       break;
1057     case PLUS:
1058     case MINUS:
1059       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1060       case PLUS:
1061         jj_consume_token(PLUS);
1062         break;
1063       case MINUS:
1064         jj_consume_token(MINUS);
1065         break;
1066       default:
1067         jj_la1[41] = jj_gen;
1068         jj_consume_token(-1);
1069         throw new ParseException();
1070       }
1071       UnaryExpression();
1072       break;
1073     case INCR:
1074       PreIncrementExpression();
1075       break;
1076     case DECR:
1077       PreDecrementExpression();
1078       break;
1079     case ARRAY:
1080     case FALSE:
1081     case NEW:
1082     case NULL:
1083     case TRUE:
1084     case INTEGER_LITERAL:
1085     case FLOATING_POINT_LITERAL:
1086     case STRING_LITERAL:
1087     case IDENTIFIER:
1088     case LPAREN:
1089     case DOLLAR:
1090     case BANG:
1091     case DOLLAR_ID:
1092       UnaryExpressionNotPlusMinus();
1093       break;
1094     default:
1095       jj_la1[42] = jj_gen;
1096       jj_consume_token(-1);
1097       throw new ParseException();
1098     }
1099   }
1100
1101   static final public void PreIncrementExpression() throws ParseException {
1102     jj_consume_token(INCR);
1103     PrimaryExpression();
1104   }
1105
1106   static final public void PreDecrementExpression() throws ParseException {
1107     jj_consume_token(DECR);
1108     PrimaryExpression();
1109   }
1110
1111   static final public void UnaryExpressionNotPlusMinus() throws ParseException {
1112     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1113     case BANG:
1114       jj_consume_token(BANG);
1115       UnaryExpression();
1116       break;
1117     default:
1118       jj_la1[43] = jj_gen;
1119       if (jj_2_3(2147483647)) {
1120         CastExpression();
1121       } else {
1122         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1123         case ARRAY:
1124         case NEW:
1125         case IDENTIFIER:
1126         case DOLLAR:
1127         case DOLLAR_ID:
1128           PostfixExpression();
1129           break;
1130         case FALSE:
1131         case NULL:
1132         case TRUE:
1133         case INTEGER_LITERAL:
1134         case FLOATING_POINT_LITERAL:
1135         case STRING_LITERAL:
1136           Literal();
1137           break;
1138         case LPAREN:
1139           jj_consume_token(LPAREN);
1140           Expression();
1141           jj_consume_token(RPAREN);
1142           break;
1143         default:
1144           jj_la1[44] = jj_gen;
1145           jj_consume_token(-1);
1146           throw new ParseException();
1147         }
1148       }
1149     }
1150   }
1151
1152   static final public void CastExpression() throws ParseException {
1153     jj_consume_token(LPAREN);
1154     Type();
1155     jj_consume_token(RPAREN);
1156     UnaryExpression();
1157   }
1158
1159   static final public void PostfixExpression() throws ParseException {
1160     PrimaryExpression();
1161     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1162     case INCR:
1163     case DECR:
1164       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1165       case INCR:
1166         jj_consume_token(INCR);
1167         break;
1168       case DECR:
1169         jj_consume_token(DECR);
1170         break;
1171       default:
1172         jj_la1[45] = jj_gen;
1173         jj_consume_token(-1);
1174         throw new ParseException();
1175       }
1176       break;
1177     default:
1178       jj_la1[46] = jj_gen;
1179       ;
1180     }
1181   }
1182
1183   static final public void PrimaryExpression() throws ParseException {
1184     if (jj_2_4(2)) {
1185       jj_consume_token(IDENTIFIER);
1186       jj_consume_token(STATICCLASSACCESS);
1187       ClassIdentifier();
1188       label_22:
1189       while (true) {
1190         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1191         case CLASSACCESS:
1192         case LPAREN:
1193         case LBRACKET:
1194           ;
1195           break;
1196         default:
1197           jj_la1[47] = jj_gen;
1198           break label_22;
1199         }
1200         PrimarySuffix();
1201       }
1202     } else {
1203       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1204       case NEW:
1205       case IDENTIFIER:
1206       case DOLLAR:
1207       case DOLLAR_ID:
1208         PrimaryPrefix();
1209         label_23:
1210         while (true) {
1211           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1212           case CLASSACCESS:
1213           case LPAREN:
1214           case LBRACKET:
1215             ;
1216             break;
1217           default:
1218             jj_la1[48] = jj_gen;
1219             break label_23;
1220           }
1221           PrimarySuffix();
1222         }
1223         break;
1224       case ARRAY:
1225         jj_consume_token(ARRAY);
1226         ArrayInitializer();
1227         break;
1228       default:
1229         jj_la1[49] = jj_gen;
1230         jj_consume_token(-1);
1231         throw new ParseException();
1232       }
1233     }
1234   }
1235
1236   static final public void PrimaryPrefix() throws ParseException {
1237     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1238     case IDENTIFIER:
1239       jj_consume_token(IDENTIFIER);
1240       break;
1241     case NEW:
1242       jj_consume_token(NEW);
1243       ClassIdentifier();
1244       break;
1245     case DOLLAR:
1246     case DOLLAR_ID:
1247       VariableDeclaratorId();
1248       break;
1249     default:
1250       jj_la1[50] = jj_gen;
1251       jj_consume_token(-1);
1252       throw new ParseException();
1253     }
1254   }
1255
1256   static final public void ClassIdentifier() throws ParseException {
1257     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1258     case IDENTIFIER:
1259       jj_consume_token(IDENTIFIER);
1260       break;
1261     case DOLLAR:
1262     case DOLLAR_ID:
1263       VariableDeclaratorId();
1264       break;
1265     default:
1266       jj_la1[51] = jj_gen;
1267       jj_consume_token(-1);
1268       throw new ParseException();
1269     }
1270   }
1271
1272   static final public void PrimarySuffix() throws ParseException {
1273     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1274     case LPAREN:
1275       Arguments();
1276       break;
1277     case CLASSACCESS:
1278     case LBRACKET:
1279       VariableSuffix();
1280       break;
1281     default:
1282       jj_la1[52] = jj_gen;
1283       jj_consume_token(-1);
1284       throw new ParseException();
1285     }
1286   }
1287
1288   static final public void VariableSuffix() throws ParseException {
1289     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1290     case CLASSACCESS:
1291       jj_consume_token(CLASSACCESS);
1292       VariableName();
1293       break;
1294     case LBRACKET:
1295       jj_consume_token(LBRACKET);
1296       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1297       case ARRAY:
1298       case PRINT:
1299       case FALSE:
1300       case NEW:
1301       case NULL:
1302       case TRUE:
1303       case INTEGER_LITERAL:
1304       case FLOATING_POINT_LITERAL:
1305       case STRING_LITERAL:
1306       case IDENTIFIER:
1307       case LPAREN:
1308       case AT:
1309       case DOLLAR:
1310       case BANG:
1311       case INCR:
1312       case DECR:
1313       case PLUS:
1314       case MINUS:
1315       case DOLLAR_ID:
1316         Expression();
1317         break;
1318       default:
1319         jj_la1[53] = jj_gen;
1320         ;
1321       }
1322       jj_consume_token(RBRACKET);
1323       break;
1324     default:
1325       jj_la1[54] = jj_gen;
1326       jj_consume_token(-1);
1327       throw new ParseException();
1328     }
1329   }
1330
1331   static final public void Literal() throws ParseException {
1332     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1333     case INTEGER_LITERAL:
1334       jj_consume_token(INTEGER_LITERAL);
1335       break;
1336     case FLOATING_POINT_LITERAL:
1337       jj_consume_token(FLOATING_POINT_LITERAL);
1338       break;
1339     case STRING_LITERAL:
1340       jj_consume_token(STRING_LITERAL);
1341       break;
1342     case FALSE:
1343     case TRUE:
1344       BooleanLiteral();
1345       break;
1346     case NULL:
1347       NullLiteral();
1348       break;
1349     default:
1350       jj_la1[55] = jj_gen;
1351       jj_consume_token(-1);
1352       throw new ParseException();
1353     }
1354   }
1355
1356   static final public void BooleanLiteral() throws ParseException {
1357     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1358     case TRUE:
1359       jj_consume_token(TRUE);
1360       break;
1361     case FALSE:
1362       jj_consume_token(FALSE);
1363       break;
1364     default:
1365       jj_la1[56] = jj_gen;
1366       jj_consume_token(-1);
1367       throw new ParseException();
1368     }
1369   }
1370
1371   static final public void NullLiteral() throws ParseException {
1372     jj_consume_token(NULL);
1373   }
1374
1375   static final public void Arguments() throws ParseException {
1376     jj_consume_token(LPAREN);
1377     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1378     case ARRAY:
1379     case PRINT:
1380     case FALSE:
1381     case NEW:
1382     case NULL:
1383     case TRUE:
1384     case INTEGER_LITERAL:
1385     case FLOATING_POINT_LITERAL:
1386     case STRING_LITERAL:
1387     case IDENTIFIER:
1388     case LPAREN:
1389     case AT:
1390     case DOLLAR:
1391     case BANG:
1392     case INCR:
1393     case DECR:
1394     case PLUS:
1395     case MINUS:
1396     case DOLLAR_ID:
1397       ArgumentList();
1398       break;
1399     default:
1400       jj_la1[57] = jj_gen;
1401       ;
1402     }
1403     jj_consume_token(RPAREN);
1404   }
1405
1406   static final public void ArgumentList() throws ParseException {
1407     Expression();
1408     label_24:
1409     while (true) {
1410       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1411       case COMMA:
1412         ;
1413         break;
1414       default:
1415         jj_la1[58] = jj_gen;
1416         break label_24;
1417       }
1418       jj_consume_token(COMMA);
1419       Expression();
1420     }
1421   }
1422
1423 /*
1424  * Statement syntax follows.
1425  */
1426   static final public void Statement() throws ParseException {
1427     if (jj_2_5(2)) {
1428       Expression();
1429       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1430       case SEMICOLON:
1431         jj_consume_token(SEMICOLON);
1432         break;
1433       case 128:
1434         jj_consume_token(128);
1435         break;
1436       default:
1437         jj_la1[59] = jj_gen;
1438         jj_consume_token(-1);
1439         throw new ParseException();
1440       }
1441     } else if (jj_2_6(2)) {
1442       LabeledStatement();
1443     } else {
1444       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1445       case LBRACE:
1446         Block();
1447         break;
1448       case SEMICOLON:
1449         EmptyStatement();
1450         break;
1451       case ARRAY:
1452       case NEW:
1453       case IDENTIFIER:
1454       case DOLLAR:
1455       case INCR:
1456       case DECR:
1457       case DOLLAR_ID:
1458         StatementExpression();
1459         try {
1460           jj_consume_token(SEMICOLON);
1461         } catch (ParseException e) {
1462     errorMessage = "';' expected after expression";
1463     errorLevel   = ERROR;
1464     {if (true) throw e;}
1465         }
1466         break;
1467       case SWITCH:
1468         SwitchStatement();
1469         break;
1470       case IF:
1471         IfStatement();
1472         break;
1473       case WHILE:
1474         WhileStatement();
1475         break;
1476       case DO:
1477         DoStatement();
1478         break;
1479       case FOR:
1480         ForStatement();
1481         break;
1482       case BREAK:
1483         BreakStatement();
1484         break;
1485       case CONTINUE:
1486         ContinueStatement();
1487         break;
1488       case RETURN:
1489         ReturnStatement();
1490         break;
1491       case ECHO:
1492         EchoStatement();
1493         break;
1494       case INCLUDE:
1495       case REQUIRE:
1496       case INCLUDE_ONCE:
1497       case REQUIRE_ONCE:
1498         IncludeStatement();
1499         break;
1500       case STATIC:
1501         StaticStatement();
1502         break;
1503       case GLOBAL:
1504         GlobalStatement();
1505         break;
1506       default:
1507         jj_la1[60] = jj_gen;
1508         jj_consume_token(-1);
1509         throw new ParseException();
1510       }
1511     }
1512   }
1513
1514   static final public void IncludeStatement() throws ParseException {
1515     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1516     case REQUIRE:
1517       jj_consume_token(REQUIRE);
1518       Expression();
1519       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1520       case SEMICOLON:
1521         jj_consume_token(SEMICOLON);
1522         break;
1523       case 128:
1524         jj_consume_token(128);
1525         break;
1526       default:
1527         jj_la1[61] = jj_gen;
1528         jj_consume_token(-1);
1529         throw new ParseException();
1530       }
1531       break;
1532     case REQUIRE_ONCE:
1533       jj_consume_token(REQUIRE_ONCE);
1534       Expression();
1535       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1536       case SEMICOLON:
1537         jj_consume_token(SEMICOLON);
1538         break;
1539       case 128:
1540         jj_consume_token(128);
1541         break;
1542       default:
1543         jj_la1[62] = jj_gen;
1544         jj_consume_token(-1);
1545         throw new ParseException();
1546       }
1547       break;
1548     case INCLUDE:
1549       jj_consume_token(INCLUDE);
1550       Expression();
1551       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1552       case SEMICOLON:
1553         jj_consume_token(SEMICOLON);
1554         break;
1555       case 128:
1556         jj_consume_token(128);
1557         break;
1558       default:
1559         jj_la1[63] = jj_gen;
1560         jj_consume_token(-1);
1561         throw new ParseException();
1562       }
1563       break;
1564     case INCLUDE_ONCE:
1565       jj_consume_token(INCLUDE_ONCE);
1566       Expression();
1567       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1568       case SEMICOLON:
1569         jj_consume_token(SEMICOLON);
1570         break;
1571       case 128:
1572         jj_consume_token(128);
1573         break;
1574       default:
1575         jj_la1[64] = jj_gen;
1576         jj_consume_token(-1);
1577         throw new ParseException();
1578       }
1579       break;
1580     default:
1581       jj_la1[65] = jj_gen;
1582       jj_consume_token(-1);
1583       throw new ParseException();
1584     }
1585   }
1586
1587   static final public void PrintExpression() throws ParseException {
1588     jj_consume_token(PRINT);
1589     Expression();
1590   }
1591
1592   static final public void EchoStatement() throws ParseException {
1593     jj_consume_token(ECHO);
1594     Expression();
1595     label_25:
1596     while (true) {
1597       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1598       case COMMA:
1599         ;
1600         break;
1601       default:
1602         jj_la1[66] = jj_gen;
1603         break label_25;
1604       }
1605       jj_consume_token(COMMA);
1606       Expression();
1607     }
1608     try {
1609       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1610       case SEMICOLON:
1611         jj_consume_token(SEMICOLON);
1612         break;
1613       case 128:
1614         jj_consume_token(128);
1615         break;
1616       default:
1617         jj_la1[67] = jj_gen;
1618         jj_consume_token(-1);
1619         throw new ParseException();
1620       }
1621     } catch (ParseException e) {
1622     errorMessage = "';' expected after 'echo' statement";
1623     errorLevel   = ERROR;
1624     {if (true) throw e;}
1625     }
1626   }
1627
1628   static final public void GlobalStatement() throws ParseException {
1629     jj_consume_token(GLOBAL);
1630     VariableDeclaratorId();
1631     label_26:
1632     while (true) {
1633       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1634       case COMMA:
1635         ;
1636         break;
1637       default:
1638         jj_la1[68] = jj_gen;
1639         break label_26;
1640       }
1641       jj_consume_token(COMMA);
1642       VariableDeclaratorId();
1643     }
1644     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1645     case SEMICOLON:
1646       jj_consume_token(SEMICOLON);
1647       break;
1648     case 128:
1649       jj_consume_token(128);
1650       break;
1651     default:
1652       jj_la1[69] = jj_gen;
1653       jj_consume_token(-1);
1654       throw new ParseException();
1655     }
1656   }
1657
1658   static final public void StaticStatement() throws ParseException {
1659     jj_consume_token(STATIC);
1660     VariableDeclarator();
1661     label_27:
1662     while (true) {
1663       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1664       case COMMA:
1665         ;
1666         break;
1667       default:
1668         jj_la1[70] = jj_gen;
1669         break label_27;
1670       }
1671       jj_consume_token(COMMA);
1672       VariableDeclarator();
1673     }
1674     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1675     case SEMICOLON:
1676       jj_consume_token(SEMICOLON);
1677       break;
1678     case 128:
1679       jj_consume_token(128);
1680       break;
1681     default:
1682       jj_la1[71] = jj_gen;
1683       jj_consume_token(-1);
1684       throw new ParseException();
1685     }
1686   }
1687
1688   static final public void LabeledStatement() throws ParseException {
1689     jj_consume_token(IDENTIFIER);
1690     jj_consume_token(COLON);
1691     Statement();
1692   }
1693
1694   static final public void Block() throws ParseException {
1695     jj_consume_token(LBRACE);
1696     label_28:
1697     while (true) {
1698       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1699       case CLASS:
1700       case FUNCTION:
1701       case IF:
1702       case ARRAY:
1703       case PRINT:
1704       case ECHO:
1705       case INCLUDE:
1706       case REQUIRE:
1707       case INCLUDE_ONCE:
1708       case REQUIRE_ONCE:
1709       case GLOBAL:
1710       case STATIC:
1711       case BREAK:
1712       case CONTINUE:
1713       case DO:
1714       case FALSE:
1715       case FOR:
1716       case NEW:
1717       case NULL:
1718       case RETURN:
1719       case SWITCH:
1720       case TRUE:
1721       case WHILE:
1722       case INTEGER_LITERAL:
1723       case FLOATING_POINT_LITERAL:
1724       case STRING_LITERAL:
1725       case IDENTIFIER:
1726       case LPAREN:
1727       case LBRACE:
1728       case SEMICOLON:
1729       case AT:
1730       case DOLLAR:
1731       case BANG:
1732       case INCR:
1733       case DECR:
1734       case PLUS:
1735       case MINUS:
1736       case DOLLAR_ID:
1737         ;
1738         break;
1739       default:
1740         jj_la1[72] = jj_gen;
1741         break label_28;
1742       }
1743       BlockStatement();
1744     }
1745     jj_consume_token(RBRACE);
1746   }
1747
1748   static final public void BlockStatement() throws ParseException {
1749     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1750     case IF:
1751     case ARRAY:
1752     case PRINT:
1753     case ECHO:
1754     case INCLUDE:
1755     case REQUIRE:
1756     case INCLUDE_ONCE:
1757     case REQUIRE_ONCE:
1758     case GLOBAL:
1759     case STATIC:
1760     case BREAK:
1761     case CONTINUE:
1762     case DO:
1763     case FALSE:
1764     case FOR:
1765     case NEW:
1766     case NULL:
1767     case RETURN:
1768     case SWITCH:
1769     case TRUE:
1770     case WHILE:
1771     case INTEGER_LITERAL:
1772     case FLOATING_POINT_LITERAL:
1773     case STRING_LITERAL:
1774     case IDENTIFIER:
1775     case LPAREN:
1776     case LBRACE:
1777     case SEMICOLON:
1778     case AT:
1779     case DOLLAR:
1780     case BANG:
1781     case INCR:
1782     case DECR:
1783     case PLUS:
1784     case MINUS:
1785     case DOLLAR_ID:
1786       Statement();
1787       break;
1788     case CLASS:
1789       ClassDeclaration();
1790       break;
1791     case FUNCTION:
1792       MethodDeclaration();
1793       break;
1794     default:
1795       jj_la1[73] = jj_gen;
1796       jj_consume_token(-1);
1797       throw new ParseException();
1798     }
1799   }
1800
1801   static final public void LocalVariableDeclaration() throws ParseException {
1802     VariableDeclarator();
1803     label_29:
1804     while (true) {
1805       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1806       case COMMA:
1807         ;
1808         break;
1809       default:
1810         jj_la1[74] = jj_gen;
1811         break label_29;
1812       }
1813       jj_consume_token(COMMA);
1814       VariableDeclarator();
1815     }
1816   }
1817
1818   static final public void EmptyStatement() throws ParseException {
1819     jj_consume_token(SEMICOLON);
1820   }
1821
1822   static final public void StatementExpression() throws ParseException {
1823     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1824     case INCR:
1825       PreIncrementExpression();
1826       break;
1827     case DECR:
1828       PreDecrementExpression();
1829       break;
1830     case ARRAY:
1831     case NEW:
1832     case IDENTIFIER:
1833     case DOLLAR:
1834     case DOLLAR_ID:
1835       PrimaryExpression();
1836       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1837       case ASSIGN:
1838       case INCR:
1839       case DECR:
1840       case PLUSASSIGN:
1841       case MINUSASSIGN:
1842       case STARASSIGN:
1843       case SLASHASSIGN:
1844       case ANDASSIGN:
1845       case ORASSIGN:
1846       case XORASSIGN:
1847       case DOTASSIGN:
1848       case REMASSIGN:
1849       case LSHIFTASSIGN:
1850       case RSIGNEDSHIFTASSIGN:
1851       case RUNSIGNEDSHIFTASSIGN:
1852         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1853         case INCR:
1854           jj_consume_token(INCR);
1855           break;
1856         case DECR:
1857           jj_consume_token(DECR);
1858           break;
1859         case ASSIGN:
1860         case PLUSASSIGN:
1861         case MINUSASSIGN:
1862         case STARASSIGN:
1863         case SLASHASSIGN:
1864         case ANDASSIGN:
1865         case ORASSIGN:
1866         case XORASSIGN:
1867         case DOTASSIGN:
1868         case REMASSIGN:
1869         case LSHIFTASSIGN:
1870         case RSIGNEDSHIFTASSIGN:
1871         case RUNSIGNEDSHIFTASSIGN:
1872           AssignmentOperator();
1873           Expression();
1874           break;
1875         default:
1876           jj_la1[75] = jj_gen;
1877           jj_consume_token(-1);
1878           throw new ParseException();
1879         }
1880         break;
1881       default:
1882         jj_la1[76] = jj_gen;
1883         ;
1884       }
1885       break;
1886     default:
1887       jj_la1[77] = jj_gen;
1888       jj_consume_token(-1);
1889       throw new ParseException();
1890     }
1891   }
1892
1893   static final public void SwitchStatement() throws ParseException {
1894     jj_consume_token(SWITCH);
1895     jj_consume_token(LPAREN);
1896     Expression();
1897     jj_consume_token(RPAREN);
1898     jj_consume_token(LBRACE);
1899     label_30:
1900     while (true) {
1901       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1902       case CASE:
1903       case _DEFAULT:
1904         ;
1905         break;
1906       default:
1907         jj_la1[78] = jj_gen;
1908         break label_30;
1909       }
1910       SwitchLabel();
1911       label_31:
1912       while (true) {
1913         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1914         case CLASS:
1915         case FUNCTION:
1916         case IF:
1917         case ARRAY:
1918         case PRINT:
1919         case ECHO:
1920         case INCLUDE:
1921         case REQUIRE:
1922         case INCLUDE_ONCE:
1923         case REQUIRE_ONCE:
1924         case GLOBAL:
1925         case STATIC:
1926         case BREAK:
1927         case CONTINUE:
1928         case DO:
1929         case FALSE:
1930         case FOR:
1931         case NEW:
1932         case NULL:
1933         case RETURN:
1934         case SWITCH:
1935         case TRUE:
1936         case WHILE:
1937         case INTEGER_LITERAL:
1938         case FLOATING_POINT_LITERAL:
1939         case STRING_LITERAL:
1940         case IDENTIFIER:
1941         case LPAREN:
1942         case LBRACE:
1943         case SEMICOLON:
1944         case AT:
1945         case DOLLAR:
1946         case BANG:
1947         case INCR:
1948         case DECR:
1949         case PLUS:
1950         case MINUS:
1951         case DOLLAR_ID:
1952           ;
1953           break;
1954         default:
1955           jj_la1[79] = jj_gen;
1956           break label_31;
1957         }
1958         BlockStatement();
1959       }
1960     }
1961     jj_consume_token(RBRACE);
1962   }
1963
1964   static final public void SwitchLabel() throws ParseException {
1965     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1966     case CASE:
1967       jj_consume_token(CASE);
1968       Expression();
1969       jj_consume_token(COLON);
1970       break;
1971     case _DEFAULT:
1972       jj_consume_token(_DEFAULT);
1973       jj_consume_token(COLON);
1974       break;
1975     default:
1976       jj_la1[80] = jj_gen;
1977       jj_consume_token(-1);
1978       throw new ParseException();
1979     }
1980   }
1981
1982   static final public void IfStatement() throws ParseException {
1983     jj_consume_token(IF);
1984     Condition("if");
1985     Statement();
1986     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1987     case ELSEIF:
1988       ElseIfStatement();
1989       break;
1990     default:
1991       jj_la1[81] = jj_gen;
1992       ;
1993     }
1994     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1995     case ELSE:
1996       jj_consume_token(ELSE);
1997       Statement();
1998       break;
1999     default:
2000       jj_la1[82] = jj_gen;
2001       ;
2002     }
2003   }
2004
2005   static final public void Condition(String keyword) throws ParseException {
2006     try {
2007       jj_consume_token(LPAREN);
2008     } catch (ParseException e) {
2009     errorMessage = "'(' expected after " + keyword + " keyword";
2010     errorLevel   = ERROR;
2011     {if (true) throw e;}
2012     }
2013     Expression();
2014     try {
2015       jj_consume_token(RPAREN);
2016     } catch (ParseException e) {
2017     errorMessage = "')' expected after " + keyword + " keyword";
2018     errorLevel   = ERROR;
2019     {if (true) throw e;}
2020     }
2021   }
2022
2023   static final public void ElseIfStatement() throws ParseException {
2024     jj_consume_token(ELSEIF);
2025     Condition("elseif");
2026     Statement();
2027   }
2028
2029   static final public void WhileStatement() throws ParseException {
2030     jj_consume_token(WHILE);
2031     Condition("while");
2032     WhileStatement0();
2033   }
2034
2035   static final public void WhileStatement0() throws ParseException {
2036     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2037     case COLON:
2038       jj_consume_token(COLON);
2039       label_32:
2040       while (true) {
2041         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2042         case IF:
2043         case ARRAY:
2044         case PRINT:
2045         case ECHO:
2046         case INCLUDE:
2047         case REQUIRE:
2048         case INCLUDE_ONCE:
2049         case REQUIRE_ONCE:
2050         case GLOBAL:
2051         case STATIC:
2052         case BREAK:
2053         case CONTINUE:
2054         case DO:
2055         case FALSE:
2056         case FOR:
2057         case NEW:
2058         case NULL:
2059         case RETURN:
2060         case SWITCH:
2061         case TRUE:
2062         case WHILE:
2063         case INTEGER_LITERAL:
2064         case FLOATING_POINT_LITERAL:
2065         case STRING_LITERAL:
2066         case IDENTIFIER:
2067         case LPAREN:
2068         case LBRACE:
2069         case SEMICOLON:
2070         case AT:
2071         case DOLLAR:
2072         case BANG:
2073         case INCR:
2074         case DECR:
2075         case PLUS:
2076         case MINUS:
2077         case DOLLAR_ID:
2078           ;
2079           break;
2080         default:
2081           jj_la1[83] = jj_gen;
2082           break label_32;
2083         }
2084         Statement();
2085       }
2086       jj_consume_token(ENDWHILE);
2087       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2088       case SEMICOLON:
2089         jj_consume_token(SEMICOLON);
2090         break;
2091       case 128:
2092         jj_consume_token(128);
2093         break;
2094       default:
2095         jj_la1[84] = jj_gen;
2096         jj_consume_token(-1);
2097         throw new ParseException();
2098       }
2099       break;
2100     case IF:
2101     case ARRAY:
2102     case PRINT:
2103     case ECHO:
2104     case INCLUDE:
2105     case REQUIRE:
2106     case INCLUDE_ONCE:
2107     case REQUIRE_ONCE:
2108     case GLOBAL:
2109     case STATIC:
2110     case BREAK:
2111     case CONTINUE:
2112     case DO:
2113     case FALSE:
2114     case FOR:
2115     case NEW:
2116     case NULL:
2117     case RETURN:
2118     case SWITCH:
2119     case TRUE:
2120     case WHILE:
2121     case INTEGER_LITERAL:
2122     case FLOATING_POINT_LITERAL:
2123     case STRING_LITERAL:
2124     case IDENTIFIER:
2125     case LPAREN:
2126     case LBRACE:
2127     case SEMICOLON:
2128     case AT:
2129     case DOLLAR:
2130     case BANG:
2131     case INCR:
2132     case DECR:
2133     case PLUS:
2134     case MINUS:
2135     case DOLLAR_ID:
2136       Statement();
2137       break;
2138     default:
2139       jj_la1[85] = jj_gen;
2140       jj_consume_token(-1);
2141       throw new ParseException();
2142     }
2143   }
2144
2145   static final public void DoStatement() throws ParseException {
2146     jj_consume_token(DO);
2147     Statement();
2148     jj_consume_token(WHILE);
2149     Condition("while");
2150     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2151     case SEMICOLON:
2152       jj_consume_token(SEMICOLON);
2153       break;
2154     case 128:
2155       jj_consume_token(128);
2156       break;
2157     default:
2158       jj_la1[86] = jj_gen;
2159       jj_consume_token(-1);
2160       throw new ParseException();
2161     }
2162   }
2163
2164   static final public void ForStatement() throws ParseException {
2165     jj_consume_token(FOR);
2166     jj_consume_token(LPAREN);
2167     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2168     case ARRAY:
2169     case NEW:
2170     case IDENTIFIER:
2171     case DOLLAR:
2172     case INCR:
2173     case DECR:
2174     case DOLLAR_ID:
2175       ForInit();
2176       break;
2177     default:
2178       jj_la1[87] = jj_gen;
2179       ;
2180     }
2181     jj_consume_token(SEMICOLON);
2182     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2183     case ARRAY:
2184     case PRINT:
2185     case FALSE:
2186     case NEW:
2187     case NULL:
2188     case TRUE:
2189     case INTEGER_LITERAL:
2190     case FLOATING_POINT_LITERAL:
2191     case STRING_LITERAL:
2192     case IDENTIFIER:
2193     case LPAREN:
2194     case AT:
2195     case DOLLAR:
2196     case BANG:
2197     case INCR:
2198     case DECR:
2199     case PLUS:
2200     case MINUS:
2201     case DOLLAR_ID:
2202       Expression();
2203       break;
2204     default:
2205       jj_la1[88] = jj_gen;
2206       ;
2207     }
2208     jj_consume_token(SEMICOLON);
2209     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2210     case ARRAY:
2211     case NEW:
2212     case IDENTIFIER:
2213     case DOLLAR:
2214     case INCR:
2215     case DECR:
2216     case DOLLAR_ID:
2217       ForUpdate();
2218       break;
2219     default:
2220       jj_la1[89] = jj_gen;
2221       ;
2222     }
2223     jj_consume_token(RPAREN);
2224     Statement();
2225   }
2226
2227   static final public void ForInit() throws ParseException {
2228     if (jj_2_7(2147483647)) {
2229       LocalVariableDeclaration();
2230     } else {
2231       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2232       case ARRAY:
2233       case NEW:
2234       case IDENTIFIER:
2235       case DOLLAR:
2236       case INCR:
2237       case DECR:
2238       case DOLLAR_ID:
2239         StatementExpressionList();
2240         break;
2241       default:
2242         jj_la1[90] = jj_gen;
2243         jj_consume_token(-1);
2244         throw new ParseException();
2245       }
2246     }
2247   }
2248
2249   static final public void StatementExpressionList() throws ParseException {
2250     StatementExpression();
2251     label_33:
2252     while (true) {
2253       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2254       case COMMA:
2255         ;
2256         break;
2257       default:
2258         jj_la1[91] = jj_gen;
2259         break label_33;
2260       }
2261       jj_consume_token(COMMA);
2262       StatementExpression();
2263     }
2264   }
2265
2266   static final public void ForUpdate() throws ParseException {
2267     StatementExpressionList();
2268   }
2269
2270   static final public void BreakStatement() throws ParseException {
2271     jj_consume_token(BREAK);
2272     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2273     case IDENTIFIER:
2274       jj_consume_token(IDENTIFIER);
2275       break;
2276     default:
2277       jj_la1[92] = jj_gen;
2278       ;
2279     }
2280     jj_consume_token(SEMICOLON);
2281   }
2282
2283   static final public void ContinueStatement() throws ParseException {
2284     jj_consume_token(CONTINUE);
2285     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2286     case IDENTIFIER:
2287       jj_consume_token(IDENTIFIER);
2288       break;
2289     default:
2290       jj_la1[93] = jj_gen;
2291       ;
2292     }
2293     jj_consume_token(SEMICOLON);
2294   }
2295
2296   static final public void ReturnStatement() throws ParseException {
2297     jj_consume_token(RETURN);
2298     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2299     case ARRAY:
2300     case PRINT:
2301     case FALSE:
2302     case NEW:
2303     case NULL:
2304     case TRUE:
2305     case INTEGER_LITERAL:
2306     case FLOATING_POINT_LITERAL:
2307     case STRING_LITERAL:
2308     case IDENTIFIER:
2309     case LPAREN:
2310     case AT:
2311     case DOLLAR:
2312     case BANG:
2313     case INCR:
2314     case DECR:
2315     case PLUS:
2316     case MINUS:
2317     case DOLLAR_ID:
2318       Expression();
2319       break;
2320     default:
2321       jj_la1[94] = jj_gen;
2322       ;
2323     }
2324     jj_consume_token(SEMICOLON);
2325   }
2326
2327   static final private boolean jj_2_1(int xla) {
2328     jj_la = xla; jj_lastpos = jj_scanpos = token;
2329     boolean retval = !jj_3_1();
2330     jj_save(0, xla);
2331     return retval;
2332   }
2333
2334   static final private boolean jj_2_2(int xla) {
2335     jj_la = xla; jj_lastpos = jj_scanpos = token;
2336     boolean retval = !jj_3_2();
2337     jj_save(1, xla);
2338     return retval;
2339   }
2340
2341   static final private boolean jj_2_3(int xla) {
2342     jj_la = xla; jj_lastpos = jj_scanpos = token;
2343     boolean retval = !jj_3_3();
2344     jj_save(2, xla);
2345     return retval;
2346   }
2347
2348   static final private boolean jj_2_4(int xla) {
2349     jj_la = xla; jj_lastpos = jj_scanpos = token;
2350     boolean retval = !jj_3_4();
2351     jj_save(3, xla);
2352     return retval;
2353   }
2354
2355   static final private boolean jj_2_5(int xla) {
2356     jj_la = xla; jj_lastpos = jj_scanpos = token;
2357     boolean retval = !jj_3_5();
2358     jj_save(4, xla);
2359     return retval;
2360   }
2361
2362   static final private boolean jj_2_6(int xla) {
2363     jj_la = xla; jj_lastpos = jj_scanpos = token;
2364     boolean retval = !jj_3_6();
2365     jj_save(5, xla);
2366     return retval;
2367   }
2368
2369   static final private boolean jj_2_7(int xla) {
2370     jj_la = xla; jj_lastpos = jj_scanpos = token;
2371     boolean retval = !jj_3_7();
2372     jj_save(6, xla);
2373     return retval;
2374   }
2375
2376   static final private boolean jj_3R_77() {
2377     if (jj_scan_token(PLUSASSIGN)) return true;
2378     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2379     return false;
2380   }
2381
2382   static final private boolean jj_3R_98() {
2383     if (jj_scan_token(BIT_OR)) return true;
2384     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2385     if (jj_3R_97()) return true;
2386     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2387     return false;
2388   }
2389
2390   static final private boolean jj_3R_101() {
2391     if (jj_scan_token(XOR)) return true;
2392     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2393     if (jj_3R_100()) return true;
2394     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2395     return false;
2396   }
2397
2398   static final private boolean jj_3R_104() {
2399     if (jj_3R_106()) return true;
2400     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2401     Token xsp;
2402     while (true) {
2403       xsp = jj_scanpos;
2404       if (jj_3R_107()) { jj_scanpos = xsp; break; }
2405       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2406     }
2407     return false;
2408   }
2409
2410   static final private boolean jj_3R_91() {
2411     if (jj_scan_token(_ORL)) return true;
2412     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2413     return false;
2414   }
2415
2416   static final private boolean jj_3R_96() {
2417     if (jj_scan_token(_ANDL)) return true;
2418     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2419     return false;
2420   }
2421
2422   static final private boolean jj_3R_94() {
2423     if (jj_scan_token(DOT)) return true;
2424     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2425     if (jj_3R_93()) return true;
2426     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2427     return false;
2428   }
2429
2430   static final private boolean jj_3R_102() {
2431     if (jj_3R_104()) return true;
2432     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2433     Token xsp;
2434     while (true) {
2435       xsp = jj_scanpos;
2436       if (jj_3R_105()) { jj_scanpos = xsp; break; }
2437       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2438     }
2439     return false;
2440   }
2441
2442   static final private boolean jj_3R_90() {
2443     if (jj_scan_token(SC_OR)) return true;
2444     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2445     return false;
2446   }
2447
2448   static final private boolean jj_3R_76() {
2449     if (jj_scan_token(REMASSIGN)) return true;
2450     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2451     return false;
2452   }
2453
2454   static final private boolean jj_3R_100() {
2455     if (jj_3R_102()) return true;
2456     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2457     Token xsp;
2458     while (true) {
2459       xsp = jj_scanpos;
2460       if (jj_3R_103()) { jj_scanpos = xsp; break; }
2461       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2462     }
2463     return false;
2464   }
2465
2466   static final private boolean jj_3R_72() {
2467     Token xsp;
2468     xsp = jj_scanpos;
2469     if (jj_3R_90()) {
2470     jj_scanpos = xsp;
2471     if (jj_3R_91()) return true;
2472     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2473     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2474     if (jj_3R_71()) return true;
2475     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2476     return false;
2477   }
2478
2479   static final private boolean jj_3R_95() {
2480     if (jj_scan_token(SC_AND)) return true;
2481     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2482     return false;
2483   }
2484
2485   static final private boolean jj_3R_89() {
2486     Token xsp;
2487     xsp = jj_scanpos;
2488     if (jj_3R_95()) {
2489     jj_scanpos = xsp;
2490     if (jj_3R_96()) return true;
2491     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2492     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2493     if (jj_3R_88()) return true;
2494     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2495     return false;
2496   }
2497
2498   static final private boolean jj_3R_97() {
2499     if (jj_3R_100()) return true;
2500     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2501     Token xsp;
2502     while (true) {
2503       xsp = jj_scanpos;
2504       if (jj_3R_101()) { jj_scanpos = xsp; break; }
2505       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2506     }
2507     return false;
2508   }
2509
2510   static final private boolean jj_3R_67() {
2511     if (jj_scan_token(HOOK)) return true;
2512     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2513     if (jj_3R_37()) return true;
2514     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2515     if (jj_scan_token(COLON)) return true;
2516     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2517     if (jj_3R_59()) return true;
2518     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2519     return false;
2520   }
2521
2522   static final private boolean jj_3R_93() {
2523     if (jj_3R_97()) return true;
2524     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2525     Token xsp;
2526     while (true) {
2527       xsp = jj_scanpos;
2528       if (jj_3R_98()) { jj_scanpos = xsp; break; }
2529       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2530     }
2531     return false;
2532   }
2533
2534   static final private boolean jj_3R_75() {
2535     if (jj_scan_token(SLASHASSIGN)) return true;
2536     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2537     return false;
2538   }
2539
2540   static final private boolean jj_3R_88() {
2541     if (jj_3R_93()) return true;
2542     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2543     Token xsp;
2544     while (true) {
2545       xsp = jj_scanpos;
2546       if (jj_3R_94()) { jj_scanpos = xsp; break; }
2547       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2548     }
2549     return false;
2550   }
2551
2552   static final private boolean jj_3R_71() {
2553     if (jj_3R_88()) return true;
2554     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2555     Token xsp;
2556     while (true) {
2557       xsp = jj_scanpos;
2558       if (jj_3R_89()) { jj_scanpos = xsp; break; }
2559       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2560     }
2561     return false;
2562   }
2563
2564   static final private boolean jj_3R_66() {
2565     if (jj_3R_71()) return true;
2566     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2567     Token xsp;
2568     while (true) {
2569       xsp = jj_scanpos;
2570       if (jj_3R_72()) { jj_scanpos = xsp; break; }
2571       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2572     }
2573     return false;
2574   }
2575
2576   static final private boolean jj_3R_74() {
2577     if (jj_scan_token(STARASSIGN)) return true;
2578     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2579     return false;
2580   }
2581
2582   static final private boolean jj_3R_59() {
2583     if (jj_3R_66()) return true;
2584     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2585     Token xsp;
2586     xsp = jj_scanpos;
2587     if (jj_3R_67()) jj_scanpos = xsp;
2588     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2589     return false;
2590   }
2591
2592   static final private boolean jj_3R_73() {
2593     if (jj_scan_token(ASSIGN)) return true;
2594     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2595     return false;
2596   }
2597
2598   static final private boolean jj_3R_68() {
2599     Token xsp;
2600     xsp = jj_scanpos;
2601     if (jj_3R_73()) {
2602     jj_scanpos = xsp;
2603     if (jj_3R_74()) {
2604     jj_scanpos = xsp;
2605     if (jj_3R_75()) {
2606     jj_scanpos = xsp;
2607     if (jj_3R_76()) {
2608     jj_scanpos = xsp;
2609     if (jj_3R_77()) {
2610     jj_scanpos = xsp;
2611     if (jj_3R_78()) {
2612     jj_scanpos = xsp;
2613     if (jj_3R_79()) {
2614     jj_scanpos = xsp;
2615     if (jj_3R_80()) {
2616     jj_scanpos = xsp;
2617     if (jj_3R_81()) {
2618     jj_scanpos = xsp;
2619     if (jj_3R_82()) {
2620     jj_scanpos = xsp;
2621     if (jj_3R_83()) {
2622     jj_scanpos = xsp;
2623     if (jj_3R_84()) {
2624     jj_scanpos = xsp;
2625     if (jj_3R_85()) return true;
2626     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2627     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2628     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2629     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2630     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2631     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2632     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2633     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2634     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2635     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2636     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2637     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2638     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2639     return false;
2640   }
2641
2642   static final private boolean jj_3R_60() {
2643     if (jj_3R_68()) return true;
2644     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2645     if (jj_3R_37()) return true;
2646     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2647     return false;
2648   }
2649
2650   static final private boolean jj_3R_53() {
2651     if (jj_3R_59()) return true;
2652     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2653     Token xsp;
2654     xsp = jj_scanpos;
2655     if (jj_3R_60()) jj_scanpos = xsp;
2656     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2657     return false;
2658   }
2659
2660   static final private boolean jj_3R_37() {
2661     Token xsp;
2662     xsp = jj_scanpos;
2663     if (jj_3R_52()) {
2664     jj_scanpos = xsp;
2665     if (jj_3R_53()) return true;
2666     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2667     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2668     return false;
2669   }
2670
2671   static final private boolean jj_3R_52() {
2672     if (jj_3R_58()) return true;
2673     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2674     return false;
2675   }
2676
2677   static final private boolean jj_3R_55() {
2678     if (jj_scan_token(COMMA)) return true;
2679     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2680     if (jj_3R_54()) return true;
2681     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2682     return false;
2683   }
2684
2685   static final private boolean jj_3R_51() {
2686     if (jj_scan_token(INTEGER)) return true;
2687     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2688     return false;
2689   }
2690
2691   static final private boolean jj_3R_50() {
2692     if (jj_scan_token(INT)) return true;
2693     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2694     return false;
2695   }
2696
2697   static final private boolean jj_3R_49() {
2698     if (jj_scan_token(FLOAT)) return true;
2699     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2700     return false;
2701   }
2702
2703   static final private boolean jj_3R_48() {
2704     if (jj_scan_token(DOUBLE)) return true;
2705     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2706     return false;
2707   }
2708
2709   static final private boolean jj_3R_47() {
2710     if (jj_scan_token(REAL)) return true;
2711     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2712     return false;
2713   }
2714
2715   static final private boolean jj_3R_46() {
2716     if (jj_scan_token(BOOLEAN)) return true;
2717     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2718     return false;
2719   }
2720
2721   static final private boolean jj_3R_45() {
2722     if (jj_scan_token(BOOL)) return true;
2723     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2724     return false;
2725   }
2726
2727   static final private boolean jj_3R_36() {
2728     Token xsp;
2729     xsp = jj_scanpos;
2730     if (jj_3R_44()) {
2731     jj_scanpos = xsp;
2732     if (jj_3R_45()) {
2733     jj_scanpos = xsp;
2734     if (jj_3R_46()) {
2735     jj_scanpos = xsp;
2736     if (jj_3R_47()) {
2737     jj_scanpos = xsp;
2738     if (jj_3R_48()) {
2739     jj_scanpos = xsp;
2740     if (jj_3R_49()) {
2741     jj_scanpos = xsp;
2742     if (jj_3R_50()) {
2743     jj_scanpos = xsp;
2744     if (jj_3R_51()) return true;
2745     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2746     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2747     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2748     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2749     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2750     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2751     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2752     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2753     return false;
2754   }
2755
2756   static final private boolean jj_3R_44() {
2757     if (jj_scan_token(STRING)) return true;
2758     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2759     return false;
2760   }
2761
2762   static final private boolean jj_3_2() {
2763     if (jj_scan_token(COMMA)) return true;
2764     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2765     if (jj_3R_35()) return true;
2766     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2767     return false;
2768   }
2769
2770   static final private boolean jj_3R_41() {
2771     if (jj_3R_54()) return true;
2772     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2773     Token xsp;
2774     while (true) {
2775       xsp = jj_scanpos;
2776       if (jj_3R_55()) { jj_scanpos = xsp; break; }
2777       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2778     }
2779     return false;
2780   }
2781
2782   static final private boolean jj_3R_175() {
2783     if (jj_3R_35()) return true;
2784     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2785     Token xsp;
2786     while (true) {
2787       xsp = jj_scanpos;
2788       if (jj_3_2()) { jj_scanpos = xsp; break; }
2789       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2790     }
2791     return false;
2792   }
2793
2794   static final private boolean jj_3R_176() {
2795     if (jj_scan_token(ARRAYASSIGN)) return true;
2796     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2797     if (jj_3R_37()) return true;
2798     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2799     return false;
2800   }
2801
2802   static final private boolean jj_3R_40() {
2803     if (jj_scan_token(IDENTIFIER)) return true;
2804     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2805     if (jj_scan_token(COLON)) return true;
2806     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2807     return false;
2808   }
2809
2810   static final private boolean jj_3R_164() {
2811     if (jj_scan_token(LPAREN)) return true;
2812     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2813     Token xsp;
2814     xsp = jj_scanpos;
2815     if (jj_3R_175()) jj_scanpos = xsp;
2816     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2817     if (jj_scan_token(RPAREN)) return true;
2818     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2819     return false;
2820   }
2821
2822   static final private boolean jj_3R_35() {
2823     if (jj_3R_37()) return true;
2824     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2825     Token xsp;
2826     while (true) {
2827       xsp = jj_scanpos;
2828       if (jj_3R_176()) { jj_scanpos = xsp; break; }
2829       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2830     }
2831     return false;
2832   }
2833
2834   static final private boolean jj_3R_99() {
2835     if (jj_scan_token(LBRACE)) return true;
2836     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2837     if (jj_3R_37()) return true;
2838     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2839     if (jj_scan_token(RBRACE)) return true;
2840     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2841     return false;
2842   }
2843
2844   static final private boolean jj_3R_70() {
2845     if (jj_3R_37()) return true;
2846     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2847     return false;
2848   }
2849
2850   static final private boolean jj_3R_92() {
2851     if (jj_scan_token(LBRACE)) return true;
2852     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2853     if (jj_3R_37()) return true;
2854     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2855     if (jj_scan_token(RBRACE)) return true;
2856     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2857     return false;
2858   }
2859
2860   static final private boolean jj_3R_62() {
2861     if (jj_scan_token(ASSIGN)) return true;
2862     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2863     if (jj_3R_70()) return true;
2864     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2865     return false;
2866   }
2867
2868   static final private boolean jj_3R_65() {
2869     if (jj_scan_token(DOLLAR)) return true;
2870     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2871     if (jj_3R_56()) return true;
2872     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2873     return false;
2874   }
2875
2876   static final private boolean jj_3R_64() {
2877     if (jj_scan_token(IDENTIFIER)) return true;
2878     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2879     Token xsp;
2880     while (true) {
2881       xsp = jj_scanpos;
2882       if (jj_3R_99()) { jj_scanpos = xsp; break; }
2883       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2884     }
2885     return false;
2886   }
2887
2888   static final private boolean jj_3R_63() {
2889     if (jj_scan_token(LBRACE)) return true;
2890     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2891     if (jj_3R_37()) return true;
2892     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2893     if (jj_scan_token(RBRACE)) return true;
2894     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2895     return false;
2896   }
2897
2898   static final private boolean jj_3R_56() {
2899     Token xsp;
2900     xsp = jj_scanpos;
2901     if (jj_3R_63()) {
2902     jj_scanpos = xsp;
2903     if (jj_3R_64()) {
2904     jj_scanpos = xsp;
2905     if (jj_3R_65()) return true;
2906     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2907     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2908     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2909     return false;
2910   }
2911
2912   static final private boolean jj_3_1() {
2913     if (jj_3R_34()) return true;
2914     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2915     return false;
2916   }
2917
2918   static final private boolean jj_3R_87() {
2919     if (jj_scan_token(DOLLAR)) return true;
2920     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2921     if (jj_3R_56()) return true;
2922     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2923     return false;
2924   }
2925
2926   static final private boolean jj_3R_58() {
2927     if (jj_scan_token(PRINT)) return true;
2928     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2929     if (jj_3R_37()) return true;
2930     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2931     return false;
2932   }
2933
2934   static final private boolean jj_3R_86() {
2935     if (jj_scan_token(DOLLAR_ID)) return true;
2936     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2937     Token xsp;
2938     while (true) {
2939       xsp = jj_scanpos;
2940       if (jj_3R_92()) { jj_scanpos = xsp; break; }
2941       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2942     }
2943     return false;
2944   }
2945
2946   static final private boolean jj_3R_69() {
2947     Token xsp;
2948     xsp = jj_scanpos;
2949     if (jj_3R_86()) {
2950     jj_scanpos = xsp;
2951     if (jj_3R_87()) return true;
2952     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2953     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2954     return false;
2955   }
2956
2957   static final private boolean jj_3R_61() {
2958     if (jj_3R_69()) return true;
2959     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2960     Token xsp;
2961     while (true) {
2962       xsp = jj_scanpos;
2963       if (jj_3_1()) { jj_scanpos = xsp; break; }
2964       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2965     }
2966     return false;
2967   }
2968
2969   static final private boolean jj_3R_54() {
2970     if (jj_3R_61()) return true;
2971     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2972     Token xsp;
2973     xsp = jj_scanpos;
2974     if (jj_3R_62()) jj_scanpos = xsp;
2975     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2976     return false;
2977   }
2978
2979   static final private boolean jj_3R_39() {
2980     if (jj_scan_token(128)) return true;
2981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2982     return false;
2983   }
2984
2985   static final private boolean jj_3R_38() {
2986     if (jj_scan_token(SEMICOLON)) return true;
2987     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2988     return false;
2989   }
2990
2991   static final private boolean jj_3R_179() {
2992     if (jj_scan_token(COMMA)) return true;
2993     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2994     if (jj_3R_37()) return true;
2995     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2996     return false;
2997   }
2998
2999   static final private boolean jj_3_6() {
3000     if (jj_3R_40()) return true;
3001     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3002     return false;
3003   }
3004
3005   static final private boolean jj_3_5() {
3006     if (jj_3R_37()) return true;
3007     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3008     Token xsp;
3009     xsp = jj_scanpos;
3010     if (jj_3R_38()) {
3011     jj_scanpos = xsp;
3012     if (jj_3R_39()) return true;
3013     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3014     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3015     return false;
3016   }
3017
3018   static final private boolean jj_3R_177() {
3019     if (jj_3R_178()) return true;
3020     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3021     return false;
3022   }
3023
3024   static final private boolean jj_3R_178() {
3025     if (jj_3R_37()) return true;
3026     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3027     Token xsp;
3028     while (true) {
3029       xsp = jj_scanpos;
3030       if (jj_3R_179()) { jj_scanpos = xsp; break; }
3031       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3032     }
3033     return false;
3034   }
3035
3036   static final private boolean jj_3R_174() {
3037     if (jj_scan_token(LPAREN)) return true;
3038     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3039     Token xsp;
3040     xsp = jj_scanpos;
3041     if (jj_3R_177()) jj_scanpos = xsp;
3042     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3043     if (jj_scan_token(RPAREN)) return true;
3044     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3045     return false;
3046   }
3047
3048   static final private boolean jj_3R_162() {
3049     if (jj_scan_token(NULL)) return true;
3050     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3051     return false;
3052   }
3053
3054   static final private boolean jj_3R_85() {
3055     if (jj_scan_token(DOTASSIGN)) return true;
3056     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3057     return false;
3058   }
3059
3060   static final private boolean jj_3R_166() {
3061     if (jj_scan_token(FALSE)) return true;
3062     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3063     return false;
3064   }
3065
3066   static final private boolean jj_3R_161() {
3067     Token xsp;
3068     xsp = jj_scanpos;
3069     if (jj_3R_165()) {
3070     jj_scanpos = xsp;
3071     if (jj_3R_166()) return true;
3072     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3073     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3074     return false;
3075   }
3076
3077   static final private boolean jj_3R_165() {
3078     if (jj_scan_token(TRUE)) return true;
3079     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3080     return false;
3081   }
3082
3083   static final private boolean jj_3R_171() {
3084     if (jj_3R_167()) return true;
3085     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3086     return false;
3087   }
3088
3089   static final private boolean jj_3R_155() {
3090     if (jj_3R_162()) return true;
3091     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3092     return false;
3093   }
3094
3095   static final private boolean jj_3R_57() {
3096     if (jj_3R_37()) return true;
3097     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3098     return false;
3099   }
3100
3101   static final private boolean jj_3R_154() {
3102     if (jj_3R_161()) return true;
3103     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3104     return false;
3105   }
3106
3107   static final private boolean jj_3R_84() {
3108     if (jj_scan_token(ORASSIGN)) return true;
3109     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3110     return false;
3111   }
3112
3113   static final private boolean jj_3R_153() {
3114     if (jj_scan_token(STRING_LITERAL)) return true;
3115     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3116     return false;
3117   }
3118
3119   static final private boolean jj_3R_152() {
3120     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
3121     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3122     return false;
3123   }
3124
3125   static final private boolean jj_3R_148() {
3126     Token xsp;
3127     xsp = jj_scanpos;
3128     if (jj_3R_151()) {
3129     jj_scanpos = xsp;
3130     if (jj_3R_152()) {
3131     jj_scanpos = xsp;
3132     if (jj_3R_153()) {
3133     jj_scanpos = xsp;
3134     if (jj_3R_154()) {
3135     jj_scanpos = xsp;
3136     if (jj_3R_155()) return true;
3137     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3138     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3139     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3140     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3141     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3142     return false;
3143   }
3144
3145   static final private boolean jj_3R_151() {
3146     if (jj_scan_token(INTEGER_LITERAL)) return true;
3147     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3148     return false;
3149   }
3150
3151   static final private boolean jj_3R_43() {
3152     if (jj_scan_token(LBRACKET)) return true;
3153     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3154     Token xsp;
3155     xsp = jj_scanpos;
3156     if (jj_3R_57()) jj_scanpos = xsp;
3157     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3158     if (jj_scan_token(RBRACKET)) return true;
3159     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3160     return false;
3161   }
3162
3163   static final private boolean jj_3R_42() {
3164     if (jj_scan_token(CLASSACCESS)) return true;
3165     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3166     if (jj_3R_56()) return true;
3167     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3168     return false;
3169   }
3170
3171   static final private boolean jj_3R_34() {
3172     Token xsp;
3173     xsp = jj_scanpos;
3174     if (jj_3R_42()) {
3175     jj_scanpos = xsp;
3176     if (jj_3R_43()) return true;
3177     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3178     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3179     return false;
3180   }
3181
3182   static final private boolean jj_3R_83() {
3183     if (jj_scan_token(XORASSIGN)) return true;
3184     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3185     return false;
3186   }
3187
3188   static final private boolean jj_3R_170() {
3189     if (jj_3R_34()) return true;
3190     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3191     return false;
3192   }
3193
3194   static final private boolean jj_3R_167() {
3195     Token xsp;
3196     xsp = jj_scanpos;
3197     if (jj_3R_169()) {
3198     jj_scanpos = xsp;
3199     if (jj_3R_170()) return true;
3200     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3201     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3202     return false;
3203   }
3204
3205   static final private boolean jj_3R_169() {
3206     if (jj_3R_174()) return true;
3207     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3208     return false;
3209   }
3210
3211   static final private boolean jj_3R_160() {
3212     if (jj_scan_token(DECR)) return true;
3213     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3214     return false;
3215   }
3216
3217   static final private boolean jj_3R_173() {
3218     if (jj_3R_61()) return true;
3219     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3220     return false;
3221   }
3222
3223   static final private boolean jj_3R_172() {
3224     if (jj_scan_token(IDENTIFIER)) return true;
3225     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3226     return false;
3227   }
3228
3229   static final private boolean jj_3R_82() {
3230     if (jj_scan_token(ANDASSIGN)) return true;
3231     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3232     return false;
3233   }
3234
3235   static final private boolean jj_3R_163() {
3236     if (jj_3R_167()) return true;
3237     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3238     return false;
3239   }
3240
3241   static final private boolean jj_3R_168() {
3242     Token xsp;
3243     xsp = jj_scanpos;
3244     if (jj_3R_172()) {
3245     jj_scanpos = xsp;
3246     if (jj_3R_173()) return true;
3247     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3248     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3249     return false;
3250   }
3251
3252   static final private boolean jj_3R_150() {
3253     Token xsp;
3254     xsp = jj_scanpos;
3255     if (jj_3R_159()) {
3256     jj_scanpos = xsp;
3257     if (jj_3R_160()) return true;
3258     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3259     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3260     return false;
3261   }
3262
3263   static final private boolean jj_3R_159() {
3264     if (jj_scan_token(INCR)) return true;
3265     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3266     return false;
3267   }
3268
3269   static final private boolean jj_3R_158() {
3270     if (jj_3R_61()) return true;
3271     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3272     return false;
3273   }
3274
3275   static final private boolean jj_3R_157() {
3276     if (jj_scan_token(NEW)) return true;
3277     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3278     if (jj_3R_168()) return true;
3279     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3280     return false;
3281   }
3282
3283   static final private boolean jj_3R_149() {
3284     Token xsp;
3285     xsp = jj_scanpos;
3286     if (jj_3R_156()) {
3287     jj_scanpos = xsp;
3288     if (jj_3R_157()) {
3289     jj_scanpos = xsp;
3290     if (jj_3R_158()) return true;
3291     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3292     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3293     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3294     return false;
3295   }
3296
3297   static final private boolean jj_3R_156() {
3298     if (jj_scan_token(IDENTIFIER)) return true;
3299     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3300     return false;
3301   }
3302
3303   static final private boolean jj_3R_145() {
3304     if (jj_scan_token(ARRAY)) return true;
3305     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3306     if (jj_3R_164()) return true;
3307     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3308     return false;
3309   }
3310
3311   static final private boolean jj_3R_144() {
3312     if (jj_3R_149()) return true;
3313     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3314     Token xsp;
3315     while (true) {
3316       xsp = jj_scanpos;
3317       if (jj_3R_163()) { jj_scanpos = xsp; break; }
3318       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3319     }
3320     return false;
3321   }
3322
3323   static final private boolean jj_3_4() {
3324     if (jj_scan_token(IDENTIFIER)) return true;
3325     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3326     if (jj_scan_token(STATICCLASSACCESS)) return true;
3327     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3328     if (jj_3R_168()) return true;
3329     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3330     Token xsp;
3331     while (true) {
3332       xsp = jj_scanpos;
3333       if (jj_3R_171()) { jj_scanpos = xsp; break; }
3334       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3335     }
3336     return false;
3337   }
3338
3339   static final private boolean jj_3R_138() {
3340     Token xsp;
3341     xsp = jj_scanpos;
3342     if (jj_3_4()) {
3343     jj_scanpos = xsp;
3344     if (jj_3R_144()) {
3345     jj_scanpos = xsp;
3346     if (jj_3R_145()) return true;
3347     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3348     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3349     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3350     return false;
3351   }
3352
3353   static final private boolean jj_3R_81() {
3354     if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
3355     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3356     return false;
3357   }
3358
3359   static final private boolean jj_3R_147() {
3360     if (jj_3R_138()) return true;
3361     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3362     Token xsp;
3363     xsp = jj_scanpos;
3364     if (jj_3R_150()) jj_scanpos = xsp;
3365     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3366     return false;
3367   }
3368
3369   static final private boolean jj_3R_146() {
3370     if (jj_scan_token(LPAREN)) return true;
3371     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3372     if (jj_3R_36()) return true;
3373     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3374     if (jj_scan_token(RPAREN)) return true;
3375     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3376     if (jj_3R_121()) return true;
3377     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3378     return false;
3379   }
3380
3381   static final private boolean jj_3_3() {
3382     if (jj_scan_token(LPAREN)) return true;
3383     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3384     if (jj_3R_36()) return true;
3385     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3386     if (jj_scan_token(RPAREN)) return true;
3387     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3388     return false;
3389   }
3390
3391   static final private boolean jj_3R_120() {
3392     if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
3393     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3394     return false;
3395   }
3396
3397   static final private boolean jj_3R_132() {
3398     if (jj_scan_token(REM)) return true;
3399     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3400     return false;
3401   }
3402
3403   static final private boolean jj_3R_143() {
3404     if (jj_scan_token(LPAREN)) return true;
3405     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3406     if (jj_3R_37()) return true;
3407     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3408     if (jj_scan_token(RPAREN)) return true;
3409     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3410     return false;
3411   }
3412
3413   static final private boolean jj_3R_142() {
3414     if (jj_3R_148()) return true;
3415     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3416     return false;
3417   }
3418
3419   static final private boolean jj_3R_141() {
3420     if (jj_3R_147()) return true;
3421     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3422     return false;
3423   }
3424
3425   static final private boolean jj_3R_124() {
3426     if (jj_scan_token(MINUS)) return true;
3427     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3428     return false;
3429   }
3430
3431   static final private boolean jj_3R_140() {
3432     if (jj_3R_146()) return true;
3433     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3434     return false;
3435   }
3436
3437   static final private boolean jj_3R_80() {
3438     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
3439     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3440     return false;
3441   }
3442
3443   static final private boolean jj_3R_137() {
3444     Token xsp;
3445     xsp = jj_scanpos;
3446     if (jj_3R_139()) {
3447     jj_scanpos = xsp;
3448     if (jj_3R_140()) {
3449     jj_scanpos = xsp;
3450     if (jj_3R_141()) {
3451     jj_scanpos = xsp;
3452     if (jj_3R_142()) {
3453     jj_scanpos = xsp;
3454     if (jj_3R_143()) return true;
3455     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3456     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3457     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3458     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3459     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3460     return false;
3461   }
3462
3463   static final private boolean jj_3R_139() {
3464     if (jj_scan_token(BANG)) return true;
3465     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3466     if (jj_3R_121()) return true;
3467     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3468     return false;
3469   }
3470
3471   static final private boolean jj_3R_131() {
3472     if (jj_scan_token(SLASH)) return true;
3473     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3474     return false;
3475   }
3476
3477   static final private boolean jj_3R_136() {
3478     if (jj_scan_token(DECR)) return true;
3479     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3480     if (jj_3R_138()) return true;
3481     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3482     return false;
3483   }
3484
3485   static final private boolean jj_3R_115() {
3486     if (jj_scan_token(GE)) return true;
3487     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3488     return false;
3489   }
3490
3491   static final private boolean jj_3R_123() {
3492     if (jj_scan_token(PLUS)) return true;
3493     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3494     return false;
3495   }
3496
3497   static final private boolean jj_3R_119() {
3498     if (jj_scan_token(RSIGNEDSHIFT)) return true;
3499     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3500     return false;
3501   }
3502
3503   static final private boolean jj_3R_117() {
3504     Token xsp;
3505     xsp = jj_scanpos;
3506     if (jj_3R_123()) {
3507     jj_scanpos = xsp;
3508     if (jj_3R_124()) return true;
3509     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3510     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3511     if (jj_3R_116()) return true;
3512     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3513     return false;
3514   }
3515
3516   static final private boolean jj_3R_130() {
3517     if (jj_scan_token(STAR)) return true;
3518     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3519     return false;
3520   }
3521
3522   static final private boolean jj_3R_122() {
3523     Token xsp;
3524     xsp = jj_scanpos;
3525     if (jj_3R_130()) {
3526     jj_scanpos = xsp;
3527     if (jj_3R_131()) {
3528     jj_scanpos = xsp;
3529     if (jj_3R_132()) return true;
3530     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3531     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3532     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3533     if (jj_3R_121()) return true;
3534     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3535     return false;
3536   }
3537
3538   static final private boolean jj_3R_135() {
3539     if (jj_scan_token(INCR)) return true;
3540     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3541     if (jj_3R_138()) return true;
3542     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3543     return false;
3544   }
3545
3546   static final private boolean jj_3R_134() {
3547     if (jj_scan_token(MINUS)) return true;
3548     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3549     return false;
3550   }
3551
3552   static final private boolean jj_3R_114() {
3553     if (jj_scan_token(LE)) return true;
3554     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3555     return false;
3556   }
3557
3558   static final private boolean jj_3R_79() {
3559     if (jj_scan_token(LSHIFTASSIGN)) return true;
3560     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3561     return false;
3562   }
3563
3564   static final private boolean jj_3R_129() {
3565     if (jj_3R_137()) return true;
3566     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3567     return false;
3568   }
3569
3570   static final private boolean jj_3R_118() {
3571     if (jj_scan_token(LSHIFT)) return true;
3572     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3573     return false;
3574   }
3575
3576   static final private boolean jj_3R_128() {
3577     if (jj_3R_136()) return true;
3578     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3579     return false;
3580   }
3581
3582   static final private boolean jj_3R_111() {
3583     Token xsp;
3584     xsp = jj_scanpos;
3585     if (jj_3R_118()) {
3586     jj_scanpos = xsp;
3587     if (jj_3R_119()) {
3588     jj_scanpos = xsp;
3589     if (jj_3R_120()) return true;
3590     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3591     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3592     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3593     if (jj_3R_110()) return true;
3594     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3595     return false;
3596   }
3597
3598   static final private boolean jj_3R_113() {
3599     if (jj_scan_token(GT)) return true;
3600     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3601     return false;
3602   }
3603
3604   static final private boolean jj_3R_109() {
3605     if (jj_scan_token(NE)) return true;
3606     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3607     return false;
3608   }
3609
3610   static final private boolean jj_3R_127() {
3611     if (jj_3R_135()) return true;
3612     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3613     return false;
3614   }
3615
3616   static final private boolean jj_3R_133() {
3617     if (jj_scan_token(PLUS)) return true;
3618     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3619     return false;
3620   }
3621
3622   static final private boolean jj_3R_126() {
3623     Token xsp;
3624     xsp = jj_scanpos;
3625     if (jj_3R_133()) {
3626     jj_scanpos = xsp;
3627     if (jj_3R_134()) return true;
3628     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3629     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3630     if (jj_3R_121()) return true;
3631     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3632     return false;
3633   }
3634
3635   static final private boolean jj_3R_121() {
3636     Token xsp;
3637     xsp = jj_scanpos;
3638     if (jj_3R_125()) {
3639     jj_scanpos = xsp;
3640     if (jj_3R_126()) {
3641     jj_scanpos = xsp;
3642     if (jj_3R_127()) {
3643     jj_scanpos = xsp;
3644     if (jj_3R_128()) {
3645     jj_scanpos = xsp;
3646     if (jj_3R_129()) return true;
3647     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3648     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3649     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3650     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3651     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3652     return false;
3653   }
3654
3655   static final private boolean jj_3R_125() {
3656     if (jj_scan_token(AT)) return true;
3657     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3658     if (jj_3R_121()) return true;
3659     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3660     return false;
3661   }
3662
3663   static final private boolean jj_3R_112() {
3664     if (jj_scan_token(LT)) return true;
3665     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3666     return false;
3667   }
3668
3669   static final private boolean jj_3R_108() {
3670     if (jj_scan_token(EQ)) return true;
3671     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3672     return false;
3673   }
3674
3675   static final private boolean jj_3R_107() {
3676     Token xsp;
3677     xsp = jj_scanpos;
3678     if (jj_3R_112()) {
3679     jj_scanpos = xsp;
3680     if (jj_3R_113()) {
3681     jj_scanpos = xsp;
3682     if (jj_3R_114()) {
3683     jj_scanpos = xsp;
3684     if (jj_3R_115()) return true;
3685     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3686     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3687     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3688     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3689     if (jj_3R_106()) return true;
3690     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3691     return false;
3692   }
3693
3694   static final private boolean jj_3R_105() {
3695     Token xsp;
3696     xsp = jj_scanpos;
3697     if (jj_3R_108()) {
3698     jj_scanpos = xsp;
3699     if (jj_3R_109()) return true;
3700     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3701     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3702     if (jj_3R_104()) return true;
3703     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3704     return false;
3705   }
3706
3707   static final private boolean jj_3R_116() {
3708     if (jj_3R_121()) return true;
3709     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3710     Token xsp;
3711     while (true) {
3712       xsp = jj_scanpos;
3713       if (jj_3R_122()) { jj_scanpos = xsp; break; }
3714       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3715     }
3716     return false;
3717   }
3718
3719   static final private boolean jj_3_7() {
3720     if (jj_3R_41()) return true;
3721     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3722     return false;
3723   }
3724
3725   static final private boolean jj_3R_78() {
3726     if (jj_scan_token(MINUSASSIGN)) return true;
3727     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3728     return false;
3729   }
3730
3731   static final private boolean jj_3R_110() {
3732     if (jj_3R_116()) return true;
3733     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3734     Token xsp;
3735     while (true) {
3736       xsp = jj_scanpos;
3737       if (jj_3R_117()) { jj_scanpos = xsp; break; }
3738       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3739     }
3740     return false;
3741   }
3742
3743   static final private boolean jj_3R_103() {
3744     if (jj_scan_token(BIT_AND)) return true;
3745     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3746     if (jj_3R_102()) return true;
3747     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3748     return false;
3749   }
3750
3751   static final private boolean jj_3R_106() {
3752     if (jj_3R_110()) return true;
3753     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3754     Token xsp;
3755     while (true) {
3756       xsp = jj_scanpos;
3757       if (jj_3R_111()) { jj_scanpos = xsp; break; }
3758       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3759     }
3760     return false;
3761   }
3762
3763   static private boolean jj_initialized_once = false;
3764   static public PHPParserTokenManager token_source;
3765   static SimpleCharStream jj_input_stream;
3766   static public Token token, jj_nt;
3767   static private int jj_ntk;
3768   static private Token jj_scanpos, jj_lastpos;
3769   static private int jj_la;
3770   static public boolean lookingAhead = false;
3771   static private boolean jj_semLA;
3772   static private int jj_gen;
3773   static final private int[] jj_la1 = new int[95];
3774   static final private int[] jj_la1_0 = {0x2,0xff960000,0x0,0xc0000,0xc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0x800000,0x0,0x0,0x0,0x0,0x800000,0x0,0x0,0x0,0x1800000,0x0,0x0,0x0,0x1800000,0x0,0x0,0xfe900000,0x0,0x0,0x0,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x0,0xff960000,0xff960000,0x0,0x0,0x0,0x800000,0x0,0xff960000,0x0,0x200000,0x400000,0xff900000,0x0,0xff900000,0x0,0x800000,0x1800000,0x800000,0x800000,0x0,0x0,0x0,0x1800000,};
3775   static final private int[] jj_la1_1 = {0x0,0x1aed48,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x86400,0x0,0x0,0x0,0x0,0x0,0x7f400000,0x0,0x86400,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x86400,0x0,0x86400,0x0,0x0,0x1,0x1,0x2000,0x2000,0x0,0x1,0x86400,0x1,0x84400,0x80400,0x86400,0x0,0x0,0x12a948,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1aed48,0x1aed48,0x0,0x0,0x0,0x2000,0x90,0x1aed48,0x90,0x0,0x0,0x1aed48,0x0,0x1aed48,0x0,0x2000,0x86400,0x2000,0x2000,0x0,0x0,0x0,0x86400,};
3776   static final private int[] jj_la1_2 = {0x0,0x232288a2,0x0,0x0,0x0,0x400000,0x4000000,0x20000,0x2000000,0x20000,0x2020800,0x0,0x230088a2,0x220000,0x0,0x400000,0x2000000,0x0,0x0,0x4000000,0x230088a2,0x4000000,0x40000000,0x0,0x0,0x1,0x1,0x800000,0x0,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x230088a2,0x20000000,0x20088a2,0x0,0x0,0x88000,0x88000,0x2000800,0x2000800,0x2000800,0x88000,0x230088a2,0x80000,0xa2,0x0,0x230088a2,0x400000,0x200000,0x2220800,0x200000,0x200000,0x200000,0x200000,0x0,0x400000,0x200000,0x400000,0x200000,0x400000,0x200000,0x232288a2,0x232288a2,0x400000,0x4000000,0x4000000,0x2000800,0x0,0x232288a2,0x0,0x0,0x0,0x232288a2,0x200000,0xa32288a2,0x200000,0x2000800,0x230088a2,0x2000800,0x2000800,0x400000,0x800,0x800,0x230088a2,};
3777   static final private int[] jj_la1_3 = {0x0,0x800003c0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x800003c0,0x0,0x1000,0x0,0x80001000,0x1000,0x0,0x7ff80000,0x800003c0,0x7ff80000,0x0,0x10,0x10,0x20,0x20,0x0,0x2000,0x4000,0x1000,0x9,0x9,0x6,0x6,0x70000,0x70000,0x300,0x300,0x8c00,0x8c00,0x300,0x800003c0,0x0,0x80000000,0xc0,0xc0,0x0,0x0,0x80000000,0x80000000,0x80000000,0x0,0x800003c0,0x0,0x0,0x0,0x800003c0,0x0,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800003c0,0x800003c0,0x0,0x7ff800c0,0x7ff800c0,0x800000c0,0x0,0x800003c0,0x0,0x0,0x0,0x800003c0,0x0,0x800003c0,0x0,0x800000c0,0x800003c0,0x800000c0,0x800000c0,0x0,0x0,0x0,0x800003c0,};
3778   static final private int[] jj_la1_4 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
3779   static final private JJCalls[] jj_2_rtns = new JJCalls[7];
3780   static private boolean jj_rescan = false;
3781   static private int jj_gc = 0;
3782
3783   public PHPParser(java.io.InputStream stream) {
3784     if (jj_initialized_once) {
3785       System.out.println("ERROR: Second call to constructor of static parser.  You must");
3786       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
3787       System.out.println("       during parser generation.");
3788       throw new Error();
3789     }
3790     jj_initialized_once = true;
3791     jj_input_stream = new SimpleCharStream(stream, 1, 1);
3792     token_source = new PHPParserTokenManager(jj_input_stream);
3793     token = new Token();
3794     jj_ntk = -1;
3795     jj_gen = 0;
3796     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3797     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3798   }
3799
3800   static public void ReInit(java.io.InputStream stream) {
3801     jj_input_stream.ReInit(stream, 1, 1);
3802     token_source.ReInit(jj_input_stream);
3803     token = new Token();
3804     jj_ntk = -1;
3805     jj_gen = 0;
3806     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3807     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3808   }
3809
3810   public PHPParser(java.io.Reader stream) {
3811     if (jj_initialized_once) {
3812       System.out.println("ERROR: Second call to constructor of static parser.  You must");
3813       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
3814       System.out.println("       during parser generation.");
3815       throw new Error();
3816     }
3817     jj_initialized_once = true;
3818     jj_input_stream = new SimpleCharStream(stream, 1, 1);
3819     token_source = new PHPParserTokenManager(jj_input_stream);
3820     token = new Token();
3821     jj_ntk = -1;
3822     jj_gen = 0;
3823     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3824     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3825   }
3826
3827   static public void ReInit(java.io.Reader stream) {
3828     jj_input_stream.ReInit(stream, 1, 1);
3829     token_source.ReInit(jj_input_stream);
3830     token = new Token();
3831     jj_ntk = -1;
3832     jj_gen = 0;
3833     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3834     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3835   }
3836
3837   public PHPParser(PHPParserTokenManager tm) {
3838     if (jj_initialized_once) {
3839       System.out.println("ERROR: Second call to constructor of static parser.  You must");
3840       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
3841       System.out.println("       during parser generation.");
3842       throw new Error();
3843     }
3844     jj_initialized_once = true;
3845     token_source = tm;
3846     token = new Token();
3847     jj_ntk = -1;
3848     jj_gen = 0;
3849     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3850     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3851   }
3852
3853   public void ReInit(PHPParserTokenManager tm) {
3854     token_source = tm;
3855     token = new Token();
3856     jj_ntk = -1;
3857     jj_gen = 0;
3858     for (int i = 0; i < 95; i++) jj_la1[i] = -1;
3859     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3860   }
3861
3862   static final private Token jj_consume_token(int kind) throws ParseException {
3863     Token oldToken;
3864     if ((oldToken = token).next != null) token = token.next;
3865     else token = token.next = token_source.getNextToken();
3866     jj_ntk = -1;
3867     if (token.kind == kind) {
3868       jj_gen++;
3869       if (++jj_gc > 100) {
3870         jj_gc = 0;
3871         for (int i = 0; i < jj_2_rtns.length; i++) {
3872           JJCalls c = jj_2_rtns[i];
3873           while (c != null) {
3874             if (c.gen < jj_gen) c.first = null;
3875             c = c.next;
3876           }
3877         }
3878       }
3879       return token;
3880     }
3881     token = oldToken;
3882     jj_kind = kind;
3883     throw generateParseException();
3884   }
3885
3886   static final private boolean jj_scan_token(int kind) {
3887     if (jj_scanpos == jj_lastpos) {
3888       jj_la--;
3889       if (jj_scanpos.next == null) {
3890         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
3891       } else {
3892         jj_lastpos = jj_scanpos = jj_scanpos.next;
3893       }
3894     } else {
3895       jj_scanpos = jj_scanpos.next;
3896     }
3897     if (jj_rescan) {
3898       int i = 0; Token tok = token;
3899       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
3900       if (tok != null) jj_add_error_token(kind, i);
3901     }
3902     return (jj_scanpos.kind != kind);
3903   }
3904
3905   static final public Token getNextToken() {
3906     if (token.next != null) token = token.next;
3907     else token = token.next = token_source.getNextToken();
3908     jj_ntk = -1;
3909     jj_gen++;
3910     return token;
3911   }
3912
3913   static final public Token getToken(int index) {
3914     Token t = lookingAhead ? jj_scanpos : token;
3915     for (int i = 0; i < index; i++) {
3916       if (t.next != null) t = t.next;
3917       else t = t.next = token_source.getNextToken();
3918     }
3919     return t;
3920   }
3921
3922   static final private int jj_ntk() {
3923     if ((jj_nt=token.next) == null)
3924       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
3925     else
3926       return (jj_ntk = jj_nt.kind);
3927   }
3928
3929   static private java.util.Vector jj_expentries = new java.util.Vector();
3930   static private int[] jj_expentry;
3931   static private int jj_kind = -1;
3932   static private int[] jj_lasttokens = new int[100];
3933   static private int jj_endpos;
3934
3935   static private void jj_add_error_token(int kind, int pos) {
3936     if (pos >= 100) return;
3937     if (pos == jj_endpos + 1) {
3938       jj_lasttokens[jj_endpos++] = kind;
3939     } else if (jj_endpos != 0) {
3940       jj_expentry = new int[jj_endpos];
3941       for (int i = 0; i < jj_endpos; i++) {
3942         jj_expentry[i] = jj_lasttokens[i];
3943       }
3944       boolean exists = false;
3945       for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
3946         int[] oldentry = (int[])(enum.nextElement());
3947         if (oldentry.length == jj_expentry.length) {
3948           exists = true;
3949           for (int i = 0; i < jj_expentry.length; i++) {
3950             if (oldentry[i] != jj_expentry[i]) {
3951               exists = false;
3952               break;
3953             }
3954           }
3955           if (exists) break;
3956         }
3957       }
3958       if (!exists) jj_expentries.addElement(jj_expentry);
3959       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
3960     }
3961   }
3962
3963   static final public ParseException generateParseException() {
3964     jj_expentries.removeAllElements();
3965     boolean[] la1tokens = new boolean[129];
3966     for (int i = 0; i < 129; i++) {
3967       la1tokens[i] = false;
3968     }
3969     if (jj_kind >= 0) {
3970       la1tokens[jj_kind] = true;
3971       jj_kind = -1;
3972     }
3973     for (int i = 0; i < 95; i++) {
3974       if (jj_la1[i] == jj_gen) {
3975         for (int j = 0; j < 32; j++) {
3976           if ((jj_la1_0[i] & (1<<j)) != 0) {
3977             la1tokens[j] = true;
3978           }
3979           if ((jj_la1_1[i] & (1<<j)) != 0) {
3980             la1tokens[32+j] = true;
3981           }
3982           if ((jj_la1_2[i] & (1<<j)) != 0) {
3983             la1tokens[64+j] = true;
3984           }
3985           if ((jj_la1_3[i] & (1<<j)) != 0) {
3986             la1tokens[96+j] = true;
3987           }
3988           if ((jj_la1_4[i] & (1<<j)) != 0) {
3989             la1tokens[128+j] = true;
3990           }
3991         }
3992       }
3993     }
3994     for (int i = 0; i < 129; i++) {
3995       if (la1tokens[i]) {
3996         jj_expentry = new int[1];
3997         jj_expentry[0] = i;
3998         jj_expentries.addElement(jj_expentry);
3999       }
4000     }
4001     jj_endpos = 0;
4002     jj_rescan_token();
4003     jj_add_error_token(0, 0);
4004     int[][] exptokseq = new int[jj_expentries.size()][];
4005     for (int i = 0; i < jj_expentries.size(); i++) {
4006       exptokseq[i] = (int[])jj_expentries.elementAt(i);
4007     }
4008     return new ParseException(token, exptokseq, tokenImage);
4009   }
4010
4011   static final public void enable_tracing() {
4012   }
4013
4014   static final public void disable_tracing() {
4015   }
4016
4017   static final private void jj_rescan_token() {
4018     jj_rescan = true;
4019     for (int i = 0; i < 7; i++) {
4020       JJCalls p = jj_2_rtns[i];
4021       do {
4022         if (p.gen > jj_gen) {
4023           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
4024           switch (i) {
4025             case 0: jj_3_1(); break;
4026             case 1: jj_3_2(); break;
4027             case 2: jj_3_3(); break;
4028             case 3: jj_3_4(); break;
4029             case 4: jj_3_5(); break;
4030             case 5: jj_3_6(); break;
4031             case 6: jj_3_7(); break;
4032           }
4033         }
4034         p = p.next;
4035       } while (p != null);
4036     }
4037     jj_rescan = false;
4038   }
4039
4040   static final private void jj_save(int index, int xla) {
4041     JJCalls p = jj_2_rtns[index];
4042     while (p.gen > jj_gen) {
4043       if (p.next == null) { p = p.next = new JJCalls(); break; }
4044       p = p.next;
4045     }
4046     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
4047   }
4048
4049   static final class JJCalls {
4050     int gen;
4051     Token first;
4052     int arg;
4053     JJCalls next;
4054   }
4055
4056 }