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