1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
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;
10 import java.util.Hashtable;
11 import java.util.Enumeration;
12 import java.util.ArrayList;
13 import java.io.StringReader;
15 import java.text.MessageFormat;
17 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
18 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
19 import net.sourceforge.phpdt.internal.compiler.ast.*;
20 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
21 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
25 * This php parser is inspired by the Java 1.2 grammar example
26 * given with JavaCC. You can get JavaCC at http://www.webgain.com
27 * You can test the parser with the PHPParserTestCase2.java
28 * @author Matthieu Casanova
30 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
32 /** The file that is parsed. */
33 private static IFile fileToParse;
35 /** The current segment. */
36 private static OutlineableWithChildren currentSegment;
38 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
39 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
40 static PHPOutlineInfo outlineInfo;
42 public static MethodDeclaration currentFunction;
43 private static boolean assigning;
45 /** The error level of the current ParseException. */
46 private static int errorLevel = ERROR;
47 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
48 private static String errorMessage;
50 private static int errorStart = -1;
51 private static int errorEnd = -1;
52 private static PHPDocument phpDocument;
54 * The point where html starts.
55 * It will be used by the token manager to create HTMLCode objects
57 public static int htmlStart;
60 private final static int AstStackIncrement = 100;
61 /** The stack of node. */
62 private static AstNode[] nodes;
63 /** The cursor in expression stack. */
64 private static int nodePtr;
66 public final void setFileToParse(final IFile fileToParse) {
67 this.fileToParse = fileToParse;
73 public PHPParser(final IFile fileToParse) {
74 this(new StringReader(""));
75 this.fileToParse = fileToParse;
79 * Reinitialize the parser.
81 private static final void init() {
82 nodes = new AstNode[AstStackIncrement];
88 * Add an php node on the stack.
89 * @param node the node that will be added to the stack
91 private static final void pushOnAstNodes(AstNode node) {
93 nodes[++nodePtr] = node;
94 } catch (IndexOutOfBoundsException e) {
95 int oldStackLength = nodes.length;
96 AstNode[] oldStack = nodes;
97 nodes = new AstNode[oldStackLength + AstStackIncrement];
98 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
99 nodePtr = oldStackLength;
100 nodes[nodePtr] = node;
104 public static final void phpParserTester(final String strEval) throws CoreException, ParseException {
105 PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
106 final StringReader stream = new StringReader(strEval);
107 if (jj_input_stream == null) {
108 jj_input_stream = new SimpleCharStream(stream, 1, 1);
110 ReInit(new StringReader(strEval));
115 public static final void htmlParserTester(final File fileName) throws CoreException, ParseException {
117 final Reader stream = new FileReader(fileName);
118 if (jj_input_stream == null) {
119 jj_input_stream = new SimpleCharStream(stream, 1, 1);
124 } catch (FileNotFoundException e) {
125 e.printStackTrace(); //To change body of catch statement use Options | File Templates.
129 public static final void htmlParserTester(final String strEval) throws CoreException, ParseException {
130 final StringReader stream = new StringReader(strEval);
131 if (jj_input_stream == null) {
132 jj_input_stream = new SimpleCharStream(stream, 1, 1);
139 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
140 currentSegment = new PHPDocument(parent);
141 outlineInfo = new PHPOutlineInfo(parent);
142 final StringReader stream = new StringReader(s);
143 if (jj_input_stream == null) {
144 jj_input_stream = new SimpleCharStream(stream, 1, 1);
150 //PHPeclipsePlugin.log(1,phpDocument.toString());
151 } catch (ParseException e) {
152 processParseException(e);
158 * This method will process the parse exception.
159 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
160 * @param e the ParseException
162 private static void processParseException(final ParseException e) {
163 if (errorMessage == null) {
164 PHPeclipsePlugin.log(e);
165 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
166 errorStart = jj_input_stream.getPosition();
167 errorEnd = errorStart + 1;
174 * Create marker for the parse error
175 * @param e the ParseException
177 private static void setMarker(final ParseException e) {
179 if (errorStart == -1) {
180 setMarker(fileToParse,
182 jj_input_stream.tokenBegin,
183 jj_input_stream.tokenBegin + e.currentToken.image.length(),
185 "Line " + e.currentToken.beginLine);
187 setMarker(fileToParse,
192 "Line " + e.currentToken.beginLine);
196 } catch (CoreException e2) {
197 PHPeclipsePlugin.log(e2);
202 * Create markers according to the external parser output
204 private static void createMarkers(final String output, final IFile file) throws CoreException {
205 // delete all markers
206 file.deleteMarkers(IMarker.PROBLEM, false, 0);
211 while ((brIndx = output.indexOf("<br />", indx)) != -1) {
212 // newer php error output (tested with 4.2.3)
213 scanLine(output, file, indx, brIndx);
218 while ((brIndx = output.indexOf("<br>", indx)) != -1) {
219 // older php error output (tested with 4.2.3)
220 scanLine(output, file, indx, brIndx);
226 private static void scanLine(final String output,
229 final int brIndx) throws CoreException {
231 StringBuffer lineNumberBuffer = new StringBuffer(10);
233 current = output.substring(indx, brIndx);
235 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
236 int onLine = current.indexOf("on line <b>");
238 lineNumberBuffer.delete(0, lineNumberBuffer.length());
239 for (int i = onLine; i < current.length(); i++) {
240 ch = current.charAt(i);
241 if ('0' <= ch && '9' >= ch) {
242 lineNumberBuffer.append(ch);
246 int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
248 Hashtable attributes = new Hashtable();
250 current = current.replaceAll("\n", "");
251 current = current.replaceAll("<b>", "");
252 current = current.replaceAll("</b>", "");
253 MarkerUtilities.setMessage(attributes, current);
255 if (current.indexOf(PARSE_ERROR_STRING) != -1)
256 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
257 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
258 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
260 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
261 MarkerUtilities.setLineNumber(attributes, lineNumber);
262 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
267 public final void parse(final String s) throws CoreException {
268 final StringReader stream = new StringReader(s);
269 if (jj_input_stream == null) {
270 jj_input_stream = new SimpleCharStream(stream, 1, 1);
276 } catch (ParseException e) {
277 processParseException(e);
282 * Call the php parse command ( php -l -f <filename> )
283 * and create markers according to the external parser output
285 public static void phpExternalParse(final IFile file) {
286 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
287 final String filename = file.getLocation().toString();
289 final String[] arguments = { filename };
290 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
291 final String command = form.format(arguments);
293 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
296 // parse the buffer to find the errors and warnings
297 createMarkers(parserResult, file);
298 } catch (CoreException e) {
299 PHPeclipsePlugin.log(e);
304 * Put a new html block in the stack.
306 public static final void createNewHTMLCode() {
307 final int currentPosition = SimpleCharStream.getPosition();
308 if (currentPosition == htmlStart) {
311 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition).toCharArray();
312 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
315 private static final void parse() throws ParseException {
319 static final public void phpTest() throws ParseException {
322 PHPParser.createNewHTMLCode();
325 static final public void phpFile() throws ParseException {
329 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
367 case INTEGER_LITERAL:
368 case FLOATING_POINT_LITERAL:
384 } catch (TokenMgrError e) {
385 PHPeclipsePlugin.log(e);
386 errorStart = SimpleCharStream.getPosition();
387 errorEnd = errorStart + 1;
388 errorMessage = e.getMessage();
390 {if (true) throw generateParseException();}
395 * A php block is a <?= expression [;]?>
396 * or <?php somephpcode ?>
397 * or <? somephpcode ?>
399 static final public void PhpBlock() throws ParseException {
400 final int start = jj_input_stream.getPosition();
401 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
441 case INTEGER_LITERAL:
442 case FLOATING_POINT_LITERAL:
449 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
452 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
454 jj_consume_token(PHPSTARTLONG);
457 jj_consume_token(PHPSTARTSHORT);
459 setMarker(fileToParse,
460 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
462 jj_input_stream.getPosition(),
464 "Line " + token.beginLine);
465 } catch (CoreException e) {
466 PHPeclipsePlugin.log(e);
471 jj_consume_token(-1);
472 throw new ParseException();
481 jj_consume_token(PHPEND);
482 } catch (ParseException e) {
483 errorMessage = "'?>' expected";
485 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
486 errorEnd = jj_input_stream.getPosition() + 1;
492 jj_consume_token(-1);
493 throw new ParseException();
497 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
498 final Expression expr;
499 final int pos = SimpleCharStream.getPosition();
500 PHPEchoBlock echoBlock;
501 jj_consume_token(PHPECHOSTART);
503 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
505 jj_consume_token(SEMICOLON);
511 jj_consume_token(PHPEND);
512 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
513 pushOnAstNodes(echoBlock);
514 {if (true) return echoBlock;}
515 throw new Error("Missing return statement in function");
518 static final public void Php() throws ParseException {
521 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
555 case INTEGER_LITERAL:
556 case FLOATING_POINT_LITERAL:
573 static final public ClassDeclaration ClassDeclaration() throws ParseException {
574 final ClassDeclaration classDeclaration;
575 final Token className;
576 Token superclassName = null;
578 jj_consume_token(CLASS);
580 pos = jj_input_stream.getPosition();
581 className = jj_consume_token(IDENTIFIER);
582 } catch (ParseException e) {
583 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
585 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
586 errorEnd = jj_input_stream.getPosition() + 1;
589 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
591 jj_consume_token(EXTENDS);
593 superclassName = jj_consume_token(IDENTIFIER);
594 } catch (ParseException e) {
595 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
597 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
598 errorEnd = jj_input_stream.getPosition() + 1;
606 if (superclassName == null) {
607 classDeclaration = new ClassDeclaration(currentSegment,
608 className.image.toCharArray(),
612 classDeclaration = new ClassDeclaration(currentSegment,
613 className.image.toCharArray(),
614 superclassName.image.toCharArray(),
618 currentSegment.add(classDeclaration);
619 currentSegment = classDeclaration;
620 ClassBody(classDeclaration);
621 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
622 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
623 pushOnAstNodes(classDeclaration);
624 {if (true) return classDeclaration;}
625 throw new Error("Missing return statement in function");
628 static final public void ClassBody(ClassDeclaration classDeclaration) throws ParseException {
630 jj_consume_token(LBRACE);
631 } catch (ParseException e) {
632 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected";
634 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
635 errorEnd = jj_input_stream.getPosition() + 1;
640 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
649 ClassBodyDeclaration(classDeclaration);
652 jj_consume_token(RBRACE);
653 } catch (ParseException e) {
654 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected";
656 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
657 errorEnd = jj_input_stream.getPosition() + 1;
663 * A class can contain only methods and fields.
665 static final public void ClassBodyDeclaration(ClassDeclaration classDeclaration) throws ParseException {
666 MethodDeclaration method;
667 FieldDeclaration field;
668 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
670 method = MethodDeclaration();
671 classDeclaration.addMethod(method);
674 field = FieldDeclaration();
675 classDeclaration.addVariable(field);
679 jj_consume_token(-1);
680 throw new ParseException();
685 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
687 static final public FieldDeclaration FieldDeclaration() throws ParseException {
688 VariableDeclaration variableDeclaration;
689 final ArrayList list = new ArrayList();
690 final int pos = SimpleCharStream.getPosition();
691 jj_consume_token(VAR);
692 variableDeclaration = VariableDeclarator();
693 list.add(variableDeclaration);
694 outlineInfo.addVariable(new String(variableDeclaration.name));
695 currentSegment.add(variableDeclaration);
698 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
706 jj_consume_token(COMMA);
707 variableDeclaration = VariableDeclarator();
708 list.add(variableDeclaration);
709 outlineInfo.addVariable(new String(variableDeclaration.name));
710 currentSegment.add(variableDeclaration);
713 jj_consume_token(SEMICOLON);
714 } catch (ParseException e) {
715 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
717 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
718 errorEnd = jj_input_stream.getPosition() + 1;
721 {if (true) return new FieldDeclaration((VariableDeclaration[]) list.toArray(),
723 SimpleCharStream.getPosition());}
724 throw new Error("Missing return statement in function");
727 static final public VariableDeclaration VariableDeclarator() throws ParseException {
728 final String varName, varValue;
729 Expression initializer = null;
730 final int pos = jj_input_stream.getPosition();
731 varName = VariableDeclaratorId();
732 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
734 jj_consume_token(ASSIGN);
736 initializer = VariableInitializer();
737 } catch (ParseException e) {
738 errorMessage = "Literal expression expected in variable initializer";
740 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
741 errorEnd = jj_input_stream.getPosition() + 1;
749 if (initializer == null) {
750 {if (true) return new VariableDeclaration(currentSegment,
751 varName.toCharArray(),
753 jj_input_stream.getPosition());}
755 {if (true) return new VariableDeclaration(currentSegment,
756 varName.toCharArray(),
759 throw new Error("Missing return statement in function");
764 * @return the variable name (with suffix)
766 static final public String VariableDeclaratorId() throws ParseException {
768 Expression expression;
769 final StringBuffer buff = new StringBuffer();
770 final int pos = SimpleCharStream.getPosition();
771 ConstantIdentifier ex;
782 ex = new ConstantIdentifier(expr.toCharArray(),
784 SimpleCharStream.getPosition());
785 expression = VariableSuffix(ex);
786 buff.append(expression.toStringExpression());
788 {if (true) return buff.toString();}
789 } catch (ParseException e) {
790 errorMessage = "'$' expected for variable identifier";
792 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
793 errorEnd = jj_input_stream.getPosition() + 1;
796 throw new Error("Missing return statement in function");
799 static final public String Variable() throws ParseException {
800 final StringBuffer buff;
801 Expression expression = null;
804 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
806 token = jj_consume_token(DOLLAR_ID);
807 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
809 jj_consume_token(LBRACE);
810 expression = Expression();
811 jj_consume_token(RBRACE);
817 if (expression == null && !assigning) {
818 {if (true) return token.image.substring(1);}
820 buff = new StringBuffer(token.image);
822 buff.append(expression.toStringExpression());
824 {if (true) return buff.toString();}
827 jj_consume_token(DOLLAR);
828 expr = VariableName();
829 {if (true) return expr;}
833 jj_consume_token(-1);
834 throw new ParseException();
836 throw new Error("Missing return statement in function");
839 static final public String VariableName() throws ParseException {
840 final StringBuffer buff;
842 Expression expression = null;
844 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
846 jj_consume_token(LBRACE);
847 expression = Expression();
848 jj_consume_token(RBRACE);
849 buff = new StringBuffer('{');
850 buff.append(expression.toStringExpression());
852 {if (true) return buff.toString();}
855 token = jj_consume_token(IDENTIFIER);
856 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
858 jj_consume_token(LBRACE);
859 expression = Expression();
860 jj_consume_token(RBRACE);
866 if (expression == null) {
867 {if (true) return token.image;}
869 buff = new StringBuffer(token.image);
871 buff.append(expression.toStringExpression());
873 {if (true) return buff.toString();}
876 jj_consume_token(DOLLAR);
877 expr = VariableName();
878 buff = new StringBuffer('$');
880 {if (true) return buff.toString();}
883 token = jj_consume_token(DOLLAR_ID);
884 {if (true) return token.image;}
888 jj_consume_token(-1);
889 throw new ParseException();
891 throw new Error("Missing return statement in function");
894 static final public Expression VariableInitializer() throws ParseException {
895 final Expression expr;
897 final int pos = SimpleCharStream.getPosition();
898 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
902 case INTEGER_LITERAL:
903 case FLOATING_POINT_LITERAL:
906 {if (true) return expr;}
909 jj_consume_token(MINUS);
910 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
911 case INTEGER_LITERAL:
912 token = jj_consume_token(INTEGER_LITERAL);
914 case FLOATING_POINT_LITERAL:
915 token = jj_consume_token(FLOATING_POINT_LITERAL);
919 jj_consume_token(-1);
920 throw new ParseException();
922 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
924 SimpleCharStream.getPosition()),
929 jj_consume_token(PLUS);
930 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
931 case INTEGER_LITERAL:
932 token = jj_consume_token(INTEGER_LITERAL);
934 case FLOATING_POINT_LITERAL:
935 token = jj_consume_token(FLOATING_POINT_LITERAL);
939 jj_consume_token(-1);
940 throw new ParseException();
942 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
944 SimpleCharStream.getPosition()),
949 expr = ArrayDeclarator();
950 {if (true) return expr;}
953 token = jj_consume_token(IDENTIFIER);
954 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
958 jj_consume_token(-1);
959 throw new ParseException();
961 throw new Error("Missing return statement in function");
964 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
966 Expression expr2 = null;
968 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
970 jj_consume_token(ARRAYASSIGN);
971 expr2 = Expression();
977 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
978 throw new Error("Missing return statement in function");
981 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
982 ArrayVariableDeclaration expr;
983 final ArrayList list = new ArrayList();
984 jj_consume_token(LPAREN);
985 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1001 case INTEGER_LITERAL:
1002 case FLOATING_POINT_LITERAL:
1003 case STRING_LITERAL:
1007 expr = ArrayVariable();
1016 jj_consume_token(COMMA);
1017 expr = ArrayVariable();
1022 jj_la1[19] = jj_gen;
1025 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1027 jj_consume_token(COMMA);
1031 jj_la1[20] = jj_gen;
1034 jj_consume_token(RPAREN);
1035 {if (true) return (ArrayVariableDeclaration[]) list.toArray();}
1036 throw new Error("Missing return statement in function");
1040 * A Method Declaration.
1041 * <b>function</b> MetodDeclarator() Block()
1043 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1044 final MethodDeclaration functionDeclaration;
1045 Token functionToken;
1047 functionToken = jj_consume_token(FUNCTION);
1049 functionDeclaration = MethodDeclarator();
1050 outlineInfo.addVariable(new String(functionDeclaration.name));
1051 } catch (ParseException e) {
1052 if (errorMessage != null) {
1053 {if (true) throw e;}
1055 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1057 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1058 errorEnd = jj_input_stream.getPosition() + 1;
1059 {if (true) throw e;}
1061 if (currentSegment != null) {
1062 currentSegment.add(functionDeclaration);
1063 currentSegment = functionDeclaration;
1065 currentFunction = functionDeclaration;
1067 functionDeclaration.statements = block.statements;
1068 currentFunction = null;
1069 if (currentSegment != null) {
1070 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1072 {if (true) return functionDeclaration;}
1073 throw new Error("Missing return statement in function");
1077 * A MethodDeclarator.
1078 * [&] IDENTIFIER(parameters ...).
1079 * @return a function description for the outline
1081 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1082 final Token identifier;
1083 Token reference = null;
1084 final Hashtable formalParameters;
1085 final int pos = SimpleCharStream.getPosition();
1086 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1088 reference = jj_consume_token(BIT_AND);
1091 jj_la1[21] = jj_gen;
1094 identifier = jj_consume_token(IDENTIFIER);
1095 formalParameters = FormalParameters();
1096 {if (true) return new MethodDeclaration(currentSegment,
1097 identifier.image.toCharArray(),
1101 SimpleCharStream.getPosition());}
1102 throw new Error("Missing return statement in function");
1106 * FormalParameters follows method identifier.
1107 * (FormalParameter())
1109 static final public Hashtable FormalParameters() throws ParseException {
1111 final StringBuffer buff = new StringBuffer("(");
1112 VariableDeclaration var;
1113 final Hashtable parameters = new Hashtable();
1115 jj_consume_token(LPAREN);
1116 } catch (ParseException e) {
1117 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1119 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1120 errorEnd = jj_input_stream.getPosition() + 1;
1121 {if (true) throw e;}
1123 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1127 var = FormalParameter();
1128 parameters.put(new String(var.name),var);
1131 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1136 jj_la1[22] = jj_gen;
1139 jj_consume_token(COMMA);
1140 var = FormalParameter();
1141 parameters.put(new String(var.name),var);
1145 jj_la1[23] = jj_gen;
1149 jj_consume_token(RPAREN);
1150 } catch (ParseException e) {
1151 errorMessage = "')' expected";
1153 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1154 errorEnd = jj_input_stream.getPosition() + 1;
1155 {if (true) throw e;}
1157 {if (true) return parameters;}
1158 throw new Error("Missing return statement in function");
1162 * A formal parameter.
1163 * $varname[=value] (,$varname[=value])
1165 static final public VariableDeclaration FormalParameter() throws ParseException {
1166 final VariableDeclaration variableDeclaration;
1168 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1170 token = jj_consume_token(BIT_AND);
1173 jj_la1[24] = jj_gen;
1176 variableDeclaration = VariableDeclarator();
1177 if (token != null) {
1178 variableDeclaration.setReference(true);
1180 {if (true) return variableDeclaration;}
1181 throw new Error("Missing return statement in function");
1184 static final public ConstantIdentifier Type() throws ParseException {
1186 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1188 jj_consume_token(STRING);
1189 pos = SimpleCharStream.getPosition();
1190 {if (true) return new ConstantIdentifier(Types.STRING,
1194 jj_consume_token(BOOL);
1195 pos = SimpleCharStream.getPosition();
1196 {if (true) return new ConstantIdentifier(Types.BOOL,
1200 jj_consume_token(BOOLEAN);
1201 pos = SimpleCharStream.getPosition();
1202 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1206 jj_consume_token(REAL);
1207 pos = SimpleCharStream.getPosition();
1208 {if (true) return new ConstantIdentifier(Types.REAL,
1212 jj_consume_token(DOUBLE);
1213 pos = SimpleCharStream.getPosition();
1214 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1218 jj_consume_token(FLOAT);
1219 pos = SimpleCharStream.getPosition();
1220 {if (true) return new ConstantIdentifier(Types.FLOAT,
1224 jj_consume_token(INT);
1225 pos = SimpleCharStream.getPosition();
1226 {if (true) return new ConstantIdentifier(Types.INT,
1230 jj_consume_token(INTEGER);
1231 pos = SimpleCharStream.getPosition();
1232 {if (true) return new ConstantIdentifier(Types.INTEGER,
1236 jj_consume_token(OBJECT);
1237 pos = SimpleCharStream.getPosition();
1238 {if (true) return new ConstantIdentifier(Types.OBJECT,
1242 jj_la1[25] = jj_gen;
1243 jj_consume_token(-1);
1244 throw new ParseException();
1246 throw new Error("Missing return statement in function");
1249 static final public Expression Expression() throws ParseException {
1250 final Expression expr;
1251 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1253 expr = PrintExpression();
1254 {if (true) return expr;}
1257 expr = ListExpression();
1258 {if (true) return expr;}
1261 jj_la1[26] = jj_gen;
1262 if (jj_2_3(2147483647)) {
1263 expr = varAssignation();
1264 {if (true) return expr;}
1266 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1280 case INTEGER_LITERAL:
1281 case FLOATING_POINT_LITERAL:
1282 case STRING_LITERAL:
1286 expr = ConditionalExpression();
1287 {if (true) return expr;}
1290 jj_la1[27] = jj_gen;
1291 jj_consume_token(-1);
1292 throw new ParseException();
1296 throw new Error("Missing return statement in function");
1300 * A Variable assignation.
1301 * varName (an assign operator) any expression
1303 static final public VarAssignation varAssignation() throws ParseException {
1305 final Expression expression;
1306 final int assignOperator;
1307 final int pos = SimpleCharStream.getPosition();
1308 varName = VariableDeclaratorId();
1309 assignOperator = AssignmentOperator();
1311 expression = Expression();
1312 } catch (ParseException e) {
1313 if (errorMessage != null) {
1314 {if (true) throw e;}
1316 errorMessage = "expression expected";
1318 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1319 errorEnd = jj_input_stream.getPosition() + 1;
1320 {if (true) throw e;}
1322 {if (true) return new VarAssignation(varName.toCharArray(),
1326 SimpleCharStream.getPosition());}
1327 throw new Error("Missing return statement in function");
1330 static final public int AssignmentOperator() throws ParseException {
1331 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1333 jj_consume_token(ASSIGN);
1334 {if (true) return VarAssignation.EQUAL;}
1337 jj_consume_token(STARASSIGN);
1338 {if (true) return VarAssignation.STAR_EQUAL;}
1341 jj_consume_token(SLASHASSIGN);
1342 {if (true) return VarAssignation.SLASH_EQUAL;}
1345 jj_consume_token(REMASSIGN);
1346 {if (true) return VarAssignation.REM_EQUAL;}
1349 jj_consume_token(PLUSASSIGN);
1350 {if (true) return VarAssignation.PLUS_EQUAL;}
1353 jj_consume_token(MINUSASSIGN);
1354 {if (true) return VarAssignation.MINUS_EQUAL;}
1357 jj_consume_token(LSHIFTASSIGN);
1358 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1360 case RSIGNEDSHIFTASSIGN:
1361 jj_consume_token(RSIGNEDSHIFTASSIGN);
1362 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1365 jj_consume_token(ANDASSIGN);
1366 {if (true) return VarAssignation.AND_EQUAL;}
1369 jj_consume_token(XORASSIGN);
1370 {if (true) return VarAssignation.XOR_EQUAL;}
1373 jj_consume_token(ORASSIGN);
1374 {if (true) return VarAssignation.OR_EQUAL;}
1377 jj_consume_token(DOTASSIGN);
1378 {if (true) return VarAssignation.DOT_EQUAL;}
1381 jj_consume_token(TILDEEQUAL);
1382 {if (true) return VarAssignation.TILDE_EQUAL;}
1385 jj_la1[28] = jj_gen;
1386 jj_consume_token(-1);
1387 throw new ParseException();
1389 throw new Error("Missing return statement in function");
1392 static final public Expression ConditionalExpression() throws ParseException {
1393 final Expression expr;
1394 Expression expr2 = null;
1395 Expression expr3 = null;
1396 expr = ConditionalOrExpression();
1397 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1399 jj_consume_token(HOOK);
1400 expr2 = Expression();
1401 jj_consume_token(COLON);
1402 expr3 = ConditionalExpression();
1405 jj_la1[29] = jj_gen;
1408 if (expr3 == null) {
1409 {if (true) return expr;}
1411 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1412 throw new Error("Missing return statement in function");
1415 static final public Expression ConditionalOrExpression() throws ParseException {
1416 Expression expr,expr2;
1418 expr = ConditionalAndExpression();
1421 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1427 jj_la1[30] = jj_gen;
1430 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1432 jj_consume_token(OR_OR);
1433 operator = OperatorIds.OR_OR;
1436 jj_consume_token(_ORL);
1437 operator = OperatorIds.ORL;
1440 jj_la1[31] = jj_gen;
1441 jj_consume_token(-1);
1442 throw new ParseException();
1444 expr2 = ConditionalAndExpression();
1445 expr = new BinaryExpression(expr,expr2,operator);
1447 {if (true) return expr;}
1448 throw new Error("Missing return statement in function");
1451 static final public Expression ConditionalAndExpression() throws ParseException {
1452 Expression expr,expr2;
1454 expr = ConcatExpression();
1457 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1463 jj_la1[32] = jj_gen;
1466 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1468 jj_consume_token(AND_AND);
1469 operator = OperatorIds.AND_AND;
1472 jj_consume_token(_ANDL);
1473 operator = OperatorIds.ANDL;
1476 jj_la1[33] = jj_gen;
1477 jj_consume_token(-1);
1478 throw new ParseException();
1480 expr2 = ConcatExpression();
1481 expr = new BinaryExpression(expr,expr2,operator);
1483 {if (true) return expr;}
1484 throw new Error("Missing return statement in function");
1487 static final public Expression ConcatExpression() throws ParseException {
1488 Expression expr,expr2;
1489 expr = InclusiveOrExpression();
1492 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1497 jj_la1[34] = jj_gen;
1500 jj_consume_token(DOT);
1501 expr2 = InclusiveOrExpression();
1502 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1504 {if (true) return expr;}
1505 throw new Error("Missing return statement in function");
1508 static final public Expression InclusiveOrExpression() throws ParseException {
1509 Expression expr,expr2;
1510 expr = ExclusiveOrExpression();
1513 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1518 jj_la1[35] = jj_gen;
1521 jj_consume_token(BIT_OR);
1522 expr2 = ExclusiveOrExpression();
1523 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1525 {if (true) return expr;}
1526 throw new Error("Missing return statement in function");
1529 static final public Expression ExclusiveOrExpression() throws ParseException {
1530 Expression expr,expr2;
1531 expr = AndExpression();
1534 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1539 jj_la1[36] = jj_gen;
1542 jj_consume_token(XOR);
1543 expr2 = AndExpression();
1544 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1546 {if (true) return expr;}
1547 throw new Error("Missing return statement in function");
1550 static final public Expression AndExpression() throws ParseException {
1551 Expression expr,expr2;
1552 expr = EqualityExpression();
1555 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1560 jj_la1[37] = jj_gen;
1563 jj_consume_token(BIT_AND);
1564 expr2 = EqualityExpression();
1565 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1567 {if (true) return expr;}
1568 throw new Error("Missing return statement in function");
1571 static final public Expression EqualityExpression() throws ParseException {
1572 Expression expr,expr2;
1574 expr = RelationalExpression();
1577 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1581 case BANGDOUBLEEQUAL:
1586 jj_la1[38] = jj_gen;
1589 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1591 jj_consume_token(EQUAL_EQUAL);
1592 operator = OperatorIds.EQUAL_EQUAL;
1595 jj_consume_token(DIF);
1596 operator = OperatorIds.DIF;
1599 jj_consume_token(NOT_EQUAL);
1600 operator = OperatorIds.DIF;
1602 case BANGDOUBLEEQUAL:
1603 jj_consume_token(BANGDOUBLEEQUAL);
1604 operator = OperatorIds.BANG_EQUAL_EQUAL;
1607 jj_consume_token(TRIPLEEQUAL);
1608 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1611 jj_la1[39] = jj_gen;
1612 jj_consume_token(-1);
1613 throw new ParseException();
1616 expr2 = RelationalExpression();
1617 } catch (ParseException e) {
1618 if (errorMessage != null) {
1619 {if (true) throw e;}
1621 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1623 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1624 errorEnd = jj_input_stream.getPosition() + 1;
1625 {if (true) throw e;}
1627 expr = new BinaryExpression(expr,expr2,operator);
1629 {if (true) return expr;}
1630 throw new Error("Missing return statement in function");
1633 static final public Expression RelationalExpression() throws ParseException {
1634 Expression expr,expr2;
1636 expr = ShiftExpression();
1639 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1647 jj_la1[40] = jj_gen;
1650 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1652 jj_consume_token(LT);
1653 operator = OperatorIds.LESS;
1656 jj_consume_token(GT);
1657 operator = OperatorIds.GREATER;
1660 jj_consume_token(LE);
1661 operator = OperatorIds.LESS_EQUAL;
1664 jj_consume_token(GE);
1665 operator = OperatorIds.GREATER_EQUAL;
1668 jj_la1[41] = jj_gen;
1669 jj_consume_token(-1);
1670 throw new ParseException();
1672 expr2 = ShiftExpression();
1673 expr = new BinaryExpression(expr,expr2,operator);
1675 {if (true) return expr;}
1676 throw new Error("Missing return statement in function");
1679 static final public Expression ShiftExpression() throws ParseException {
1680 Expression expr,expr2;
1682 expr = AdditiveExpression();
1685 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1688 case RUNSIGNEDSHIFT:
1692 jj_la1[42] = jj_gen;
1695 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1697 jj_consume_token(LSHIFT);
1698 operator = OperatorIds.LEFT_SHIFT;
1701 jj_consume_token(RSIGNEDSHIFT);
1702 operator = OperatorIds.RIGHT_SHIFT;
1704 case RUNSIGNEDSHIFT:
1705 jj_consume_token(RUNSIGNEDSHIFT);
1706 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1709 jj_la1[43] = jj_gen;
1710 jj_consume_token(-1);
1711 throw new ParseException();
1713 expr2 = AdditiveExpression();
1714 expr = new BinaryExpression(expr,expr2,operator);
1716 {if (true) return expr;}
1717 throw new Error("Missing return statement in function");
1720 static final public Expression AdditiveExpression() throws ParseException {
1721 Expression expr,expr2;
1723 expr = MultiplicativeExpression();
1726 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1732 jj_la1[44] = jj_gen;
1735 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1737 jj_consume_token(PLUS);
1738 operator = OperatorIds.PLUS;
1741 jj_consume_token(MINUS);
1742 operator = OperatorIds.MINUS;
1745 jj_la1[45] = jj_gen;
1746 jj_consume_token(-1);
1747 throw new ParseException();
1749 expr2 = MultiplicativeExpression();
1750 expr = new BinaryExpression(expr,expr2,operator);
1752 {if (true) return expr;}
1753 throw new Error("Missing return statement in function");
1756 static final public Expression MultiplicativeExpression() throws ParseException {
1757 Expression expr,expr2;
1760 expr = UnaryExpression();
1761 } catch (ParseException e) {
1762 if (errorMessage != null) {
1763 {if (true) throw e;}
1765 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1767 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1768 errorEnd = jj_input_stream.getPosition() + 1;
1769 {if (true) throw e;}
1773 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1780 jj_la1[46] = jj_gen;
1783 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1785 jj_consume_token(STAR);
1786 operator = OperatorIds.MULTIPLY;
1789 jj_consume_token(SLASH);
1790 operator = OperatorIds.DIVIDE;
1793 jj_consume_token(REMAINDER);
1794 operator = OperatorIds.REMAINDER;
1797 jj_la1[47] = jj_gen;
1798 jj_consume_token(-1);
1799 throw new ParseException();
1801 expr2 = UnaryExpression();
1802 expr = new BinaryExpression(expr,expr2,operator);
1804 {if (true) return expr;}
1805 throw new Error("Missing return statement in function");
1809 * An unary expression starting with @, & or nothing
1811 static final public Expression UnaryExpression() throws ParseException {
1813 final int pos = SimpleCharStream.getPosition();
1814 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1816 jj_consume_token(BIT_AND);
1817 expr = UnaryExpressionNoPrefix();
1818 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1832 case INTEGER_LITERAL:
1833 case FLOATING_POINT_LITERAL:
1834 case STRING_LITERAL:
1838 expr = AtUnaryExpression();
1839 {if (true) return expr;}
1842 jj_la1[48] = jj_gen;
1843 jj_consume_token(-1);
1844 throw new ParseException();
1846 throw new Error("Missing return statement in function");
1849 static final public Expression AtUnaryExpression() throws ParseException {
1851 final int pos = SimpleCharStream.getPosition();
1852 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1854 jj_consume_token(AT);
1855 expr = AtUnaryExpression();
1856 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1869 case INTEGER_LITERAL:
1870 case FLOATING_POINT_LITERAL:
1871 case STRING_LITERAL:
1875 expr = UnaryExpressionNoPrefix();
1876 {if (true) return expr;}
1879 jj_la1[49] = jj_gen;
1880 jj_consume_token(-1);
1881 throw new ParseException();
1883 throw new Error("Missing return statement in function");
1886 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1889 final int pos = SimpleCharStream.getPosition();
1890 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1893 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1895 jj_consume_token(PLUS);
1896 operator = OperatorIds.PLUS;
1899 jj_consume_token(MINUS);
1900 operator = OperatorIds.MINUS;
1903 jj_la1[50] = jj_gen;
1904 jj_consume_token(-1);
1905 throw new ParseException();
1907 expr = UnaryExpression();
1908 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1912 expr = PreIncDecExpression();
1913 {if (true) return expr;}
1922 case INTEGER_LITERAL:
1923 case FLOATING_POINT_LITERAL:
1924 case STRING_LITERAL:
1928 expr = UnaryExpressionNotPlusMinus();
1929 {if (true) return expr;}
1932 jj_la1[51] = jj_gen;
1933 jj_consume_token(-1);
1934 throw new ParseException();
1936 throw new Error("Missing return statement in function");
1939 static final public Expression PreIncDecExpression() throws ParseException {
1940 final Expression expr;
1942 final int pos = SimpleCharStream.getPosition();
1943 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1945 jj_consume_token(INCR);
1946 operator = OperatorIds.PLUS_PLUS;
1949 jj_consume_token(DECR);
1950 operator = OperatorIds.MINUS_MINUS;
1953 jj_la1[52] = jj_gen;
1954 jj_consume_token(-1);
1955 throw new ParseException();
1957 expr = PrimaryExpression();
1958 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1959 throw new Error("Missing return statement in function");
1962 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
1964 final int pos = SimpleCharStream.getPosition();
1965 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1967 jj_consume_token(BANG);
1968 expr = UnaryExpression();
1969 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1972 jj_la1[53] = jj_gen;
1973 if (jj_2_4(2147483647)) {
1974 expr = CastExpression();
1975 {if (true) return expr;}
1977 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1983 expr = PostfixExpression();
1984 {if (true) return expr;}
1989 case INTEGER_LITERAL:
1990 case FLOATING_POINT_LITERAL:
1991 case STRING_LITERAL:
1993 {if (true) return expr;}
1996 jj_consume_token(LPAREN);
1997 expr = Expression();
1999 jj_consume_token(RPAREN);
2000 } catch (ParseException e) {
2001 errorMessage = "')' expected";
2003 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2004 errorEnd = jj_input_stream.getPosition() + 1;
2005 {if (true) throw e;}
2007 {if (true) return expr;}
2010 jj_la1[54] = jj_gen;
2011 jj_consume_token(-1);
2012 throw new ParseException();
2016 throw new Error("Missing return statement in function");
2019 static final public CastExpression CastExpression() throws ParseException {
2020 final ConstantIdentifier type;
2021 final Expression expr;
2022 final int pos = SimpleCharStream.getPosition();
2023 jj_consume_token(LPAREN);
2024 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2037 jj_consume_token(ARRAY);
2038 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
2041 jj_la1[55] = jj_gen;
2042 jj_consume_token(-1);
2043 throw new ParseException();
2045 jj_consume_token(RPAREN);
2046 expr = UnaryExpression();
2047 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2048 throw new Error("Missing return statement in function");
2051 static final public Expression PostfixExpression() throws ParseException {
2054 final int pos = SimpleCharStream.getPosition();
2055 expr = PrimaryExpression();
2056 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2059 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2061 jj_consume_token(INCR);
2062 operator = OperatorIds.PLUS_PLUS;
2065 jj_consume_token(DECR);
2066 operator = OperatorIds.MINUS_MINUS;
2069 jj_la1[56] = jj_gen;
2070 jj_consume_token(-1);
2071 throw new ParseException();
2075 jj_la1[57] = jj_gen;
2078 if (operator == -1) {
2079 {if (true) return expr;}
2081 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2082 throw new Error("Missing return statement in function");
2085 static final public Expression PrimaryExpression() throws ParseException {
2086 final Token identifier;
2088 final StringBuffer buff = new StringBuffer();
2089 final int pos = SimpleCharStream.getPosition();
2091 identifier = jj_consume_token(IDENTIFIER);
2092 jj_consume_token(STATICCLASSACCESS);
2093 expr = ClassIdentifier();
2094 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2096 SimpleCharStream.getPosition()),
2098 ClassAccess.STATIC);
2101 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2108 jj_la1[58] = jj_gen;
2111 expr = PrimarySuffix(expr);
2113 {if (true) return expr;}
2115 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2120 expr = PrimaryPrefix();
2123 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2130 jj_la1[59] = jj_gen;
2133 expr = PrimarySuffix(expr);
2135 {if (true) return expr;}
2138 expr = ArrayDeclarator();
2139 {if (true) return expr;}
2142 jj_la1[60] = jj_gen;
2143 jj_consume_token(-1);
2144 throw new ParseException();
2147 throw new Error("Missing return statement in function");
2150 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2151 final ArrayVariableDeclaration[] vars;
2152 final int pos = SimpleCharStream.getPosition();
2153 jj_consume_token(ARRAY);
2154 vars = ArrayInitializer();
2155 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2156 throw new Error("Missing return statement in function");
2159 static final public Expression PrimaryPrefix() throws ParseException {
2160 final Expression expr;
2163 final int pos = SimpleCharStream.getPosition();
2164 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2166 token = jj_consume_token(IDENTIFIER);
2167 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2169 SimpleCharStream.getPosition());}
2172 jj_consume_token(NEW);
2173 expr = ClassIdentifier();
2174 {if (true) return new PrefixedUnaryExpression(expr,
2180 var = VariableDeclaratorId();
2181 {if (true) return new ConstantIdentifier(var.toCharArray(),
2183 SimpleCharStream.getPosition());}
2186 jj_la1[61] = jj_gen;
2187 jj_consume_token(-1);
2188 throw new ParseException();
2190 throw new Error("Missing return statement in function");
2193 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2195 final StringBuffer buff;
2196 final int pos = SimpleCharStream.getPosition();
2197 jj_consume_token(NEW);
2198 expr = ClassIdentifier();
2199 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2205 buff = new StringBuffer(expr.toStringExpression());
2206 expr = PrimaryExpression();
2207 buff.append(expr.toStringExpression());
2208 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2210 SimpleCharStream.getPosition());
2213 jj_la1[62] = jj_gen;
2216 {if (true) return new PrefixedUnaryExpression(expr,
2219 throw new Error("Missing return statement in function");
2222 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2225 final int pos = SimpleCharStream.getPosition();
2226 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2228 token = jj_consume_token(IDENTIFIER);
2229 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2231 SimpleCharStream.getPosition());}
2235 expr = VariableDeclaratorId();
2236 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2238 SimpleCharStream.getPosition());}
2241 jj_la1[63] = jj_gen;
2242 jj_consume_token(-1);
2243 throw new ParseException();
2245 throw new Error("Missing return statement in function");
2248 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2249 final AbstractSuffixExpression expr;
2250 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2252 expr = Arguments(prefix);
2253 {if (true) return expr;}
2257 expr = VariableSuffix(prefix);
2258 {if (true) return expr;}
2261 jj_la1[64] = jj_gen;
2262 jj_consume_token(-1);
2263 throw new ParseException();
2265 throw new Error("Missing return statement in function");
2268 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2270 final int pos = SimpleCharStream.getPosition();
2271 Expression expression = null;
2272 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2274 jj_consume_token(CLASSACCESS);
2276 expr = VariableName();
2277 } catch (ParseException e) {
2278 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2280 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2281 errorEnd = jj_input_stream.getPosition() + 1;
2282 {if (true) throw e;}
2284 {if (true) return new ClassAccess(prefix,
2285 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2286 ClassAccess.NORMAL);}
2289 jj_consume_token(LBRACKET);
2290 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2315 case INTEGER_LITERAL:
2316 case FLOATING_POINT_LITERAL:
2317 case STRING_LITERAL:
2321 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2337 case INTEGER_LITERAL:
2338 case FLOATING_POINT_LITERAL:
2339 case STRING_LITERAL:
2343 expression = Expression();
2354 expression = Type();
2357 jj_la1[65] = jj_gen;
2358 jj_consume_token(-1);
2359 throw new ParseException();
2363 jj_la1[66] = jj_gen;
2367 jj_consume_token(RBRACKET);
2368 } catch (ParseException e) {
2369 errorMessage = "']' expected";
2371 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2372 errorEnd = jj_input_stream.getPosition() + 1;
2373 {if (true) throw e;}
2375 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2378 jj_la1[67] = jj_gen;
2379 jj_consume_token(-1);
2380 throw new ParseException();
2382 throw new Error("Missing return statement in function");
2385 static final public Literal Literal() throws ParseException {
2388 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2389 case INTEGER_LITERAL:
2390 token = jj_consume_token(INTEGER_LITERAL);
2391 pos = SimpleCharStream.getPosition();
2392 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2394 case FLOATING_POINT_LITERAL:
2395 token = jj_consume_token(FLOATING_POINT_LITERAL);
2396 pos = SimpleCharStream.getPosition();
2397 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2399 case STRING_LITERAL:
2400 token = jj_consume_token(STRING_LITERAL);
2401 pos = SimpleCharStream.getPosition();
2402 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2405 jj_consume_token(TRUE);
2406 pos = SimpleCharStream.getPosition();
2407 {if (true) return new TrueLiteral(pos-4,pos);}
2410 jj_consume_token(FALSE);
2411 pos = SimpleCharStream.getPosition();
2412 {if (true) return new FalseLiteral(pos-4,pos);}
2415 jj_consume_token(NULL);
2416 pos = SimpleCharStream.getPosition();
2417 {if (true) return new NullLiteral(pos-4,pos);}
2420 jj_la1[68] = jj_gen;
2421 jj_consume_token(-1);
2422 throw new ParseException();
2424 throw new Error("Missing return statement in function");
2427 static final public FunctionCall Arguments(Expression func) throws ParseException {
2428 ArgumentDeclaration[] args = null;
2429 jj_consume_token(LPAREN);
2430 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2446 case INTEGER_LITERAL:
2447 case FLOATING_POINT_LITERAL:
2448 case STRING_LITERAL:
2452 args = ArgumentList();
2455 jj_la1[69] = jj_gen;
2459 jj_consume_token(RPAREN);
2460 } catch (ParseException e) {
2461 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2463 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2464 errorEnd = jj_input_stream.getPosition() + 1;
2465 {if (true) throw e;}
2467 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2468 throw new Error("Missing return statement in function");
2471 static final public ArgumentDeclaration[] ArgumentList() throws ParseException {
2473 final ArrayList list = new ArrayList();
2474 expr = Expression();
2478 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2483 jj_la1[70] = jj_gen;
2486 jj_consume_token(COMMA);
2488 expr = Expression();
2490 } catch (ParseException e) {
2491 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2493 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2494 errorEnd = jj_input_stream.getPosition() + 1;
2495 {if (true) throw e;}
2498 {if (true) return (ArgumentDeclaration[]) list.toArray();}
2499 throw new Error("Missing return statement in function");
2503 * A Statement without break.
2505 static final public Statement StatementNoBreak() throws ParseException {
2506 final Statement statement;
2509 statement = Expression();
2511 jj_consume_token(SEMICOLON);
2512 } catch (ParseException e) {
2513 if (e.currentToken.next.kind != 4) {
2514 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2516 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2517 errorEnd = jj_input_stream.getPosition() + 1;
2518 {if (true) throw e;}
2521 {if (true) return statement;}
2522 } else if (jj_2_7(2)) {
2523 statement = LabeledStatement();
2524 {if (true) return statement;}
2526 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2528 statement = Block();
2529 {if (true) return statement;}
2532 statement = EmptyStatement();
2533 {if (true) return statement;}
2542 statement = StatementExpression();
2544 jj_consume_token(SEMICOLON);
2545 } catch (ParseException e) {
2546 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2548 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2549 errorEnd = jj_input_stream.getPosition() + 1;
2550 {if (true) throw e;}
2552 {if (true) return statement;}
2555 statement = SwitchStatement();
2556 {if (true) return statement;}
2559 statement = IfStatement();
2560 {if (true) return statement;}
2563 statement = WhileStatement();
2564 {if (true) return statement;}
2567 statement = DoStatement();
2568 {if (true) return statement;}
2571 statement = ForStatement();
2572 {if (true) return statement;}
2575 statement = ForeachStatement();
2576 {if (true) return statement;}
2579 statement = ContinueStatement();
2580 {if (true) return statement;}
2583 statement = ReturnStatement();
2584 {if (true) return statement;}
2587 statement = EchoStatement();
2588 {if (true) return statement;}
2595 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2597 token = jj_consume_token(AT);
2600 jj_la1[71] = jj_gen;
2603 statement = IncludeStatement();
2604 if (token != null) {
2605 ((InclusionStatement)statement).silent = true;
2607 {if (true) return statement;}
2610 statement = StaticStatement();
2611 {if (true) return statement;}
2614 statement = GlobalStatement();
2615 {if (true) return statement;}
2618 jj_la1[72] = jj_gen;
2619 jj_consume_token(-1);
2620 throw new ParseException();
2623 throw new Error("Missing return statement in function");
2627 * A Normal statement.
2629 static final public Statement Statement() throws ParseException {
2630 final Statement statement;
2631 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2662 case INTEGER_LITERAL:
2663 case FLOATING_POINT_LITERAL:
2664 case STRING_LITERAL:
2670 statement = StatementNoBreak();
2671 {if (true) return statement;}
2674 statement = BreakStatement();
2675 {if (true) return statement;}
2678 jj_la1[73] = jj_gen;
2679 jj_consume_token(-1);
2680 throw new ParseException();
2682 throw new Error("Missing return statement in function");
2686 * An html block inside a php syntax.
2688 static final public HTMLBlock htmlBlock() throws ParseException {
2689 final int startIndex = nodePtr;
2690 AstNode[] blockNodes;
2692 jj_consume_token(PHPEND);
2695 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2700 jj_la1[74] = jj_gen;
2706 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2708 jj_consume_token(PHPSTARTLONG);
2711 jj_consume_token(PHPSTARTSHORT);
2714 jj_la1[75] = jj_gen;
2715 jj_consume_token(-1);
2716 throw new ParseException();
2718 } catch (ParseException e) {
2719 errorMessage = "End of file unexpected, '<?php' expected";
2721 errorStart = jj_input_stream.getPosition();
2722 errorEnd = jj_input_stream.getPosition();
2723 {if (true) throw e;}
2725 nbNodes = nodePtr-startIndex;
2726 blockNodes = new AstNode[nbNodes];
2727 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2728 {if (true) return new HTMLBlock(nodes);}
2729 throw new Error("Missing return statement in function");
2733 * An include statement. It's "include" an expression;
2735 static final public InclusionStatement IncludeStatement() throws ParseException {
2736 final Expression expr;
2739 final int pos = jj_input_stream.getPosition();
2740 final InclusionStatement inclusionStatement;
2741 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2743 jj_consume_token(REQUIRE);
2744 keyword = InclusionStatement.REQUIRE;
2747 jj_consume_token(REQUIRE_ONCE);
2748 keyword = InclusionStatement.REQUIRE_ONCE;
2751 jj_consume_token(INCLUDE);
2752 keyword = InclusionStatement.INCLUDE;
2755 jj_consume_token(INCLUDE_ONCE);
2756 keyword = InclusionStatement.INCLUDE_ONCE;
2759 jj_la1[76] = jj_gen;
2760 jj_consume_token(-1);
2761 throw new ParseException();
2764 expr = Expression();
2765 } catch (ParseException e) {
2766 if (errorMessage != null) {
2767 {if (true) throw e;}
2769 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2771 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2772 errorEnd = jj_input_stream.getPosition() + 1;
2773 {if (true) throw e;}
2775 inclusionStatement = new InclusionStatement(currentSegment,
2779 currentSegment.add(inclusionStatement);
2781 jj_consume_token(SEMICOLON);
2782 } catch (ParseException e) {
2783 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2785 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2786 errorEnd = jj_input_stream.getPosition() + 1;
2787 {if (true) throw e;}
2789 {if (true) return inclusionStatement;}
2790 throw new Error("Missing return statement in function");
2793 static final public PrintExpression PrintExpression() throws ParseException {
2794 final Expression expr;
2795 final int pos = SimpleCharStream.getPosition();
2796 jj_consume_token(PRINT);
2797 expr = Expression();
2798 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2799 throw new Error("Missing return statement in function");
2802 static final public ListExpression ListExpression() throws ParseException {
2804 Expression expression = null;
2805 ArrayList list = new ArrayList();
2806 final int pos = SimpleCharStream.getPosition();
2807 jj_consume_token(LIST);
2809 jj_consume_token(LPAREN);
2810 } catch (ParseException e) {
2811 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2813 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2814 errorEnd = jj_input_stream.getPosition() + 1;
2815 {if (true) throw e;}
2817 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2820 expr = VariableDeclaratorId();
2824 jj_la1[77] = jj_gen;
2827 if (expr == null) list.add(null);
2830 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2835 jj_la1[78] = jj_gen;
2839 jj_consume_token(COMMA);
2840 } catch (ParseException e) {
2841 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2843 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2844 errorEnd = jj_input_stream.getPosition() + 1;
2845 {if (true) throw e;}
2847 expr = VariableDeclaratorId();
2851 jj_consume_token(RPAREN);
2852 } catch (ParseException e) {
2853 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2855 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2856 errorEnd = jj_input_stream.getPosition() + 1;
2857 {if (true) throw e;}
2859 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2861 jj_consume_token(ASSIGN);
2862 expression = Expression();
2863 {if (true) return new ListExpression((String[]) list.toArray(),expression,pos,SimpleCharStream.getPosition());}
2866 jj_la1[79] = jj_gen;
2869 {if (true) return new ListExpression((String[]) list.toArray(),null,pos,SimpleCharStream.getPosition());}
2870 throw new Error("Missing return statement in function");
2874 * An echo statement.
2875 * echo anyexpression (, otherexpression)*
2877 static final public EchoStatement EchoStatement() throws ParseException {
2878 final ArrayList expressions = new ArrayList();
2880 final int pos = SimpleCharStream.getPosition();
2881 jj_consume_token(ECHO);
2882 expr = Expression();
2883 expressions.add(expr);
2886 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2891 jj_la1[80] = jj_gen;
2894 jj_consume_token(COMMA);
2895 expr = Expression();
2896 expressions.add(expr);
2899 jj_consume_token(SEMICOLON);
2900 {if (true) return new EchoStatement((Expression[]) expressions.toArray(),pos);}
2901 } catch (ParseException e) {
2902 if (e.currentToken.next.kind != 4) {
2903 errorMessage = "';' expected after 'echo' statement";
2905 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2906 errorEnd = jj_input_stream.getPosition() + 1;
2907 {if (true) throw e;}
2910 throw new Error("Missing return statement in function");
2913 static final public GlobalStatement GlobalStatement() throws ParseException {
2914 final int pos = jj_input_stream.getPosition();
2916 ArrayList vars = new ArrayList();
2917 GlobalStatement global;
2918 jj_consume_token(GLOBAL);
2919 expr = VariableDeclaratorId();
2923 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2928 jj_la1[81] = jj_gen;
2931 jj_consume_token(COMMA);
2932 expr = VariableDeclaratorId();
2936 jj_consume_token(SEMICOLON);
2937 global = new GlobalStatement(currentSegment,
2938 (String[]) vars.toArray(),
2940 SimpleCharStream.getPosition());
2941 currentSegment.add(global);
2942 {if (true) return global;}
2943 } catch (ParseException e) {
2944 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2946 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2947 errorEnd = jj_input_stream.getPosition() + 1;
2948 {if (true) throw e;}
2950 throw new Error("Missing return statement in function");
2953 static final public StaticStatement StaticStatement() throws ParseException {
2954 final int pos = SimpleCharStream.getPosition();
2955 final ArrayList vars = new ArrayList();
2956 VariableDeclaration expr;
2957 jj_consume_token(STATIC);
2958 expr = VariableDeclarator();
2959 vars.add(new String(expr.name));
2962 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2967 jj_la1[82] = jj_gen;
2970 jj_consume_token(COMMA);
2971 expr = VariableDeclarator();
2972 vars.add(new String(expr.name));
2975 jj_consume_token(SEMICOLON);
2976 {if (true) return new StaticStatement((String[])vars.toArray(),
2978 SimpleCharStream.getPosition());}
2979 } catch (ParseException e) {
2980 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2982 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2983 errorEnd = jj_input_stream.getPosition() + 1;
2984 {if (true) throw e;}
2986 throw new Error("Missing return statement in function");
2989 static final public LabeledStatement LabeledStatement() throws ParseException {
2990 final int pos = SimpleCharStream.getPosition();
2992 final Statement statement;
2993 label = jj_consume_token(IDENTIFIER);
2994 jj_consume_token(COLON);
2995 statement = Statement();
2996 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
2997 throw new Error("Missing return statement in function");
3007 static final public Block Block() throws ParseException {
3008 final int pos = SimpleCharStream.getPosition();
3010 jj_consume_token(LBRACE);
3011 } catch (ParseException e) {
3012 errorMessage = "'{' expected";
3014 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3015 errorEnd = jj_input_stream.getPosition() + 1;
3016 {if (true) throw e;}
3020 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3055 case INTEGER_LITERAL:
3056 case FLOATING_POINT_LITERAL:
3057 case STRING_LITERAL:
3066 jj_la1[83] = jj_gen;
3069 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3103 case INTEGER_LITERAL:
3104 case FLOATING_POINT_LITERAL:
3105 case STRING_LITERAL:
3117 jj_la1[84] = jj_gen;
3118 jj_consume_token(-1);
3119 throw new ParseException();
3123 jj_consume_token(RBRACE);
3124 } catch (ParseException e) {
3125 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3127 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3128 errorEnd = jj_input_stream.getPosition() + 1;
3129 {if (true) throw e;}
3131 throw new Error("Missing return statement in function");
3134 static final public Statement BlockStatement() throws ParseException {
3135 final Statement statement;
3136 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3168 case INTEGER_LITERAL:
3169 case FLOATING_POINT_LITERAL:
3170 case STRING_LITERAL:
3176 statement = Statement();
3177 {if (true) return statement;}
3180 statement = ClassDeclaration();
3181 {if (true) return statement;}
3184 statement = MethodDeclaration();
3185 {if (true) return statement;}
3188 jj_la1[85] = jj_gen;
3189 jj_consume_token(-1);
3190 throw new ParseException();
3192 throw new Error("Missing return statement in function");
3196 * A Block statement that will not contain any 'break'
3198 static final public Statement BlockStatementNoBreak() throws ParseException {
3199 final Statement statement;
3200 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3231 case INTEGER_LITERAL:
3232 case FLOATING_POINT_LITERAL:
3233 case STRING_LITERAL:
3239 statement = StatementNoBreak();
3240 {if (true) return statement;}
3243 statement = ClassDeclaration();
3244 {if (true) return statement;}
3247 statement = MethodDeclaration();
3248 {if (true) return statement;}
3251 jj_la1[86] = jj_gen;
3252 jj_consume_token(-1);
3253 throw new ParseException();
3255 throw new Error("Missing return statement in function");
3258 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3259 final ArrayList list = new ArrayList();
3260 VariableDeclaration var;
3261 var = LocalVariableDeclarator();
3265 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3270 jj_la1[87] = jj_gen;
3273 jj_consume_token(COMMA);
3274 var = LocalVariableDeclarator();
3277 {if (true) return (VariableDeclaration[]) list.toArray();}
3278 throw new Error("Missing return statement in function");
3281 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3282 final String varName;
3283 Expression initializer = null;
3284 final int pos = SimpleCharStream.getPosition();
3285 varName = VariableDeclaratorId();
3286 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3288 jj_consume_token(ASSIGN);
3289 initializer = Expression();
3292 jj_la1[88] = jj_gen;
3295 if (initializer == null) {
3296 {if (true) return new VariableDeclaration(currentSegment,
3297 varName.toCharArray(),
3299 jj_input_stream.getPosition());}
3301 {if (true) return new VariableDeclaration(currentSegment,
3302 varName.toCharArray(),
3305 throw new Error("Missing return statement in function");
3308 static final public EmptyStatement EmptyStatement() throws ParseException {
3310 jj_consume_token(SEMICOLON);
3311 pos = SimpleCharStream.getPosition();
3312 {if (true) return new EmptyStatement(pos-1,pos);}
3313 throw new Error("Missing return statement in function");
3316 static final public Statement StatementExpression() throws ParseException {
3318 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3321 expr = PreIncDecExpression();
3322 {if (true) return expr;}
3329 expr = PrimaryExpression();
3330 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3345 case RSIGNEDSHIFTASSIGN:
3346 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3348 jj_consume_token(INCR);
3349 expr = new PostfixedUnaryExpression(expr,
3350 OperatorIds.PLUS_PLUS,
3351 SimpleCharStream.getPosition());
3354 jj_consume_token(DECR);
3355 expr = new PostfixedUnaryExpression(expr,
3356 OperatorIds.MINUS_MINUS,
3357 SimpleCharStream.getPosition());
3371 case RSIGNEDSHIFTASSIGN:
3372 AssignmentOperator();
3376 jj_la1[89] = jj_gen;
3377 jj_consume_token(-1);
3378 throw new ParseException();
3382 jj_la1[90] = jj_gen;
3387 jj_la1[91] = jj_gen;
3388 jj_consume_token(-1);
3389 throw new ParseException();
3391 throw new Error("Missing return statement in function");
3394 static final public SwitchStatement SwitchStatement() throws ParseException {
3395 final Expression variable;
3396 final AbstractCase[] cases;
3397 final int pos = SimpleCharStream.getPosition();
3398 jj_consume_token(SWITCH);
3400 jj_consume_token(LPAREN);
3401 } catch (ParseException e) {
3402 errorMessage = "'(' expected after 'switch'";
3404 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3405 errorEnd = jj_input_stream.getPosition() + 1;
3406 {if (true) throw e;}
3409 variable = Expression();
3410 } catch (ParseException e) {
3411 if (errorMessage != null) {
3412 {if (true) throw e;}
3414 errorMessage = "expression expected";
3416 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3417 errorEnd = jj_input_stream.getPosition() + 1;
3418 {if (true) throw e;}
3421 jj_consume_token(RPAREN);
3422 } catch (ParseException e) {
3423 errorMessage = "')' expected";
3425 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3426 errorEnd = jj_input_stream.getPosition() + 1;
3427 {if (true) throw e;}
3429 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3431 cases = switchStatementBrace();
3434 cases = switchStatementColon(pos, pos + 6);
3437 jj_la1[92] = jj_gen;
3438 jj_consume_token(-1);
3439 throw new ParseException();
3441 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3442 throw new Error("Missing return statement in function");
3445 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3447 final ArrayList cases = new ArrayList();
3448 jj_consume_token(LBRACE);
3451 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3457 jj_la1[93] = jj_gen;
3460 cas = switchLabel0();
3464 jj_consume_token(RBRACE);
3465 {if (true) return (AbstractCase[]) cases.toArray();}
3466 } catch (ParseException e) {
3467 errorMessage = "'}' expected";
3469 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3470 errorEnd = jj_input_stream.getPosition() + 1;
3471 {if (true) throw e;}
3473 throw new Error("Missing return statement in function");
3477 * A Switch statement with : ... endswitch;
3478 * @param start the begin offset of the switch
3479 * @param end the end offset of the switch
3481 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3483 final ArrayList cases = new ArrayList();
3484 jj_consume_token(COLON);
3486 setMarker(fileToParse,
3487 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3491 "Line " + token.beginLine);
3492 } catch (CoreException e) {
3493 PHPeclipsePlugin.log(e);
3497 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3503 jj_la1[94] = jj_gen;
3506 cas = switchLabel0();
3510 jj_consume_token(ENDSWITCH);
3511 } catch (ParseException e) {
3512 errorMessage = "'endswitch' expected";
3514 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3515 errorEnd = jj_input_stream.getPosition() + 1;
3516 {if (true) throw e;}
3519 jj_consume_token(SEMICOLON);
3520 {if (true) return (AbstractCase[]) cases.toArray();}
3521 } catch (ParseException e) {
3522 errorMessage = "';' expected after 'endswitch' keyword";
3524 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3525 errorEnd = jj_input_stream.getPosition() + 1;
3526 {if (true) throw e;}
3528 throw new Error("Missing return statement in function");
3531 static final public AbstractCase switchLabel0() throws ParseException {
3532 final Expression expr;
3533 Statement statement;
3534 final ArrayList stmts = new ArrayList();
3535 final int pos = SimpleCharStream.getPosition();
3536 expr = SwitchLabel();
3539 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3573 case INTEGER_LITERAL:
3574 case FLOATING_POINT_LITERAL:
3575 case STRING_LITERAL:
3584 jj_la1[95] = jj_gen;
3587 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3620 case INTEGER_LITERAL:
3621 case FLOATING_POINT_LITERAL:
3622 case STRING_LITERAL:
3628 statement = BlockStatementNoBreak();
3629 stmts.add(statement);
3632 statement = htmlBlock();
3633 stmts.add(statement);
3636 jj_la1[96] = jj_gen;
3637 jj_consume_token(-1);
3638 throw new ParseException();
3641 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3643 statement = BreakStatement();
3644 stmts.add(statement);
3647 jj_la1[97] = jj_gen;
3650 if (expr == null) {//it's a default
3651 {if (true) return new DefaultCase((Statement[]) stmts.toArray(),pos,SimpleCharStream.getPosition());}
3653 {if (true) return new Case(expr,(Statement[]) stmts.toArray(),pos,SimpleCharStream.getPosition());}
3654 throw new Error("Missing return statement in function");
3659 * case Expression() :
3661 * @return the if it was a case and null if not
3663 static final public Expression SwitchLabel() throws ParseException {
3665 final Expression expr;
3666 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3668 token = jj_consume_token(CASE);
3670 expr = Expression();
3671 } catch (ParseException e) {
3672 if (errorMessage != null) {if (true) throw e;}
3673 errorMessage = "expression expected after 'case' keyword";
3675 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3676 errorEnd = jj_input_stream.getPosition() + 1;
3677 {if (true) throw e;}
3680 jj_consume_token(COLON);
3681 {if (true) return expr;}
3682 } catch (ParseException e) {
3683 errorMessage = "':' expected after case expression";
3685 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3686 errorEnd = jj_input_stream.getPosition() + 1;
3687 {if (true) throw e;}
3691 token = jj_consume_token(_DEFAULT);
3693 jj_consume_token(COLON);
3694 {if (true) return null;}
3695 } catch (ParseException e) {
3696 errorMessage = "':' expected after 'default' keyword";
3698 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3699 errorEnd = jj_input_stream.getPosition() + 1;
3700 {if (true) throw e;}
3704 jj_la1[98] = jj_gen;
3705 jj_consume_token(-1);
3706 throw new ParseException();
3708 throw new Error("Missing return statement in function");
3711 static final public Break BreakStatement() throws ParseException {
3712 Expression expression = null;
3713 final int start = SimpleCharStream.getPosition();
3714 jj_consume_token(BREAK);
3715 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3731 case INTEGER_LITERAL:
3732 case FLOATING_POINT_LITERAL:
3733 case STRING_LITERAL:
3737 expression = Expression();
3740 jj_la1[99] = jj_gen;
3744 jj_consume_token(SEMICOLON);
3745 } catch (ParseException e) {
3746 errorMessage = "';' expected after 'break' keyword";
3748 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3749 errorEnd = jj_input_stream.getPosition() + 1;
3750 {if (true) throw e;}
3752 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3753 throw new Error("Missing return statement in function");
3756 static final public IfStatement IfStatement() throws ParseException {
3757 final int pos = jj_input_stream.getPosition();
3758 Expression condition;
3759 IfStatement ifStatement;
3760 jj_consume_token(IF);
3761 condition = Condition("if");
3762 ifStatement = IfStatement0(condition, pos,pos+2);
3763 {if (true) return ifStatement;}
3764 throw new Error("Missing return statement in function");
3767 static final public Expression Condition(final String keyword) throws ParseException {
3768 final Expression condition;
3770 jj_consume_token(LPAREN);
3771 } catch (ParseException e) {
3772 errorMessage = "'(' expected after " + keyword + " keyword";
3774 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length();
3775 errorEnd = errorStart +1;
3776 processParseException(e);
3778 condition = Expression();
3780 jj_consume_token(RPAREN);
3781 {if (true) return condition;}
3782 } catch (ParseException e) {
3783 errorMessage = "')' expected after " + keyword + " keyword";
3785 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3786 errorEnd = jj_input_stream.getPosition() + 1;
3787 {if (true) throw e;}
3789 throw new Error("Missing return statement in function");
3792 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3793 Statement statement;
3794 ElseIf elseifStatement;
3795 Else elseStatement = null;
3796 ArrayList stmts = new ArrayList();
3797 ArrayList elseifs = new ArrayList();
3798 int pos = SimpleCharStream.getPosition();
3799 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3801 jj_consume_token(COLON);
3804 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3837 case INTEGER_LITERAL:
3838 case FLOATING_POINT_LITERAL:
3839 case STRING_LITERAL:
3848 jj_la1[100] = jj_gen;
3851 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3883 case INTEGER_LITERAL:
3884 case FLOATING_POINT_LITERAL:
3885 case STRING_LITERAL:
3891 statement = Statement();
3892 stmts.add(statement);
3895 statement = htmlBlock();
3896 stmts.add(statement);
3899 jj_la1[101] = jj_gen;
3900 jj_consume_token(-1);
3901 throw new ParseException();
3906 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3911 jj_la1[102] = jj_gen;
3914 elseifStatement = ElseIfStatementColon();
3915 elseifs.add(elseifStatement);
3917 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3919 elseStatement = ElseStatementColon();
3922 jj_la1[103] = jj_gen;
3926 setMarker(fileToParse,
3927 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
3931 "Line " + token.beginLine);
3932 } catch (CoreException e) {
3933 PHPeclipsePlugin.log(e);
3936 jj_consume_token(ENDIF);
3937 } catch (ParseException e) {
3938 errorMessage = "'endif' expected";
3940 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3941 errorEnd = jj_input_stream.getPosition() + 1;
3942 {if (true) throw e;}
3945 jj_consume_token(SEMICOLON);
3946 {if (true) return new IfStatement(condition,
3947 (ElseIf[]) elseifs.toArray(),
3950 SimpleCharStream.getPosition());}
3951 } catch (ParseException e) {
3952 errorMessage = "';' expected after 'endif' keyword";
3954 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3955 errorEnd = jj_input_stream.getPosition() + 1;
3956 {if (true) throw e;}
3991 case INTEGER_LITERAL:
3992 case FLOATING_POINT_LITERAL:
3993 case STRING_LITERAL:
3999 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4031 case INTEGER_LITERAL:
4032 case FLOATING_POINT_LITERAL:
4033 case STRING_LITERAL:
4039 statement = Statement();
4042 statement = htmlBlock();
4045 jj_la1[104] = jj_gen;
4046 jj_consume_token(-1);
4047 throw new ParseException();
4049 stmts.add(statement);
4052 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4057 jj_la1[105] = jj_gen;
4060 elseifStatement = ElseIfStatement();
4061 elseifs.add(elseifStatement);
4063 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4065 jj_consume_token(ELSE);
4067 pos = SimpleCharStream.getPosition();
4068 statement = Statement();
4069 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4070 } catch (ParseException e) {
4071 if (errorMessage != null) {
4072 {if (true) throw e;}
4074 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4076 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4077 errorEnd = jj_input_stream.getPosition() + 1;
4078 {if (true) throw e;}
4082 jj_la1[106] = jj_gen;
4085 {if (true) return new IfStatement(condition,
4086 (ElseIf[]) elseifs.toArray(),
4089 SimpleCharStream.getPosition());}
4092 jj_la1[107] = jj_gen;
4093 jj_consume_token(-1);
4094 throw new ParseException();
4096 throw new Error("Missing return statement in function");
4099 static final public ElseIf ElseIfStatementColon() throws ParseException {
4100 Expression condition;
4101 Statement statement;
4102 final ArrayList list = new ArrayList();
4103 final int pos = SimpleCharStream.getPosition();
4104 jj_consume_token(ELSEIF);
4105 condition = Condition("elseif");
4106 jj_consume_token(COLON);
4109 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4142 case INTEGER_LITERAL:
4143 case FLOATING_POINT_LITERAL:
4144 case STRING_LITERAL:
4153 jj_la1[108] = jj_gen;
4156 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4188 case INTEGER_LITERAL:
4189 case FLOATING_POINT_LITERAL:
4190 case STRING_LITERAL:
4196 statement = Statement();
4197 list.add(statement);
4200 statement = htmlBlock();
4201 list.add(statement);
4204 jj_la1[109] = jj_gen;
4205 jj_consume_token(-1);
4206 throw new ParseException();
4209 {if (true) return new ElseIf(condition,(Statement[]) list.toArray(),pos,SimpleCharStream.getPosition());}
4210 throw new Error("Missing return statement in function");
4213 static final public Else ElseStatementColon() throws ParseException {
4214 Statement statement;
4215 final ArrayList list = new ArrayList();
4216 final int pos = SimpleCharStream.getPosition();
4217 jj_consume_token(ELSE);
4218 jj_consume_token(COLON);
4221 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4254 case INTEGER_LITERAL:
4255 case FLOATING_POINT_LITERAL:
4256 case STRING_LITERAL:
4265 jj_la1[110] = jj_gen;
4268 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4300 case INTEGER_LITERAL:
4301 case FLOATING_POINT_LITERAL:
4302 case STRING_LITERAL:
4308 statement = Statement();
4309 list.add(statement);
4312 statement = htmlBlock();
4313 list.add(statement);
4316 jj_la1[111] = jj_gen;
4317 jj_consume_token(-1);
4318 throw new ParseException();
4321 {if (true) return new Else((Statement[]) list.toArray(),pos,SimpleCharStream.getPosition());}
4322 throw new Error("Missing return statement in function");
4325 static final public ElseIf ElseIfStatement() throws ParseException {
4326 Expression condition;
4327 Statement statement;
4328 final ArrayList list = new ArrayList();
4329 final int pos = SimpleCharStream.getPosition();
4330 jj_consume_token(ELSEIF);
4331 condition = Condition("elseif");
4332 statement = Statement();
4333 list.add(statement);/*todo:do better*/
4334 {if (true) return new ElseIf(condition,(Statement[]) list.toArray(),pos,SimpleCharStream.getPosition());}
4335 throw new Error("Missing return statement in function");
4338 static final public WhileStatement WhileStatement() throws ParseException {
4339 final Expression condition;
4340 final Statement action;
4341 final int pos = SimpleCharStream.getPosition();
4342 jj_consume_token(WHILE);
4343 condition = Condition("while");
4344 action = WhileStatement0(pos,pos + 5);
4345 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4346 throw new Error("Missing return statement in function");
4349 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4350 Statement statement;
4351 final ArrayList stmts = new ArrayList();
4352 final int pos = SimpleCharStream.getPosition();
4353 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4355 jj_consume_token(COLON);
4358 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4390 case INTEGER_LITERAL:
4391 case FLOATING_POINT_LITERAL:
4392 case STRING_LITERAL:
4401 jj_la1[112] = jj_gen;
4404 statement = Statement();
4405 stmts.add(statement);
4408 setMarker(fileToParse,
4409 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4413 "Line " + token.beginLine);
4414 } catch (CoreException e) {
4415 PHPeclipsePlugin.log(e);
4418 jj_consume_token(ENDWHILE);
4419 } catch (ParseException e) {
4420 errorMessage = "'endwhile' expected";
4422 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4423 errorEnd = jj_input_stream.getPosition() + 1;
4424 {if (true) throw e;}
4427 jj_consume_token(SEMICOLON);
4428 {if (true) return new Block((Statement[]) stmts.toArray(),pos,SimpleCharStream.getPosition());}
4429 } catch (ParseException e) {
4430 errorMessage = "';' expected after 'endwhile' keyword";
4432 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4433 errorEnd = jj_input_stream.getPosition() + 1;
4434 {if (true) throw e;}
4468 case INTEGER_LITERAL:
4469 case FLOATING_POINT_LITERAL:
4470 case STRING_LITERAL:
4476 statement = Statement();
4477 {if (true) return statement;}
4480 jj_la1[113] = jj_gen;
4481 jj_consume_token(-1);
4482 throw new ParseException();
4484 throw new Error("Missing return statement in function");
4487 static final public DoStatement DoStatement() throws ParseException {
4488 final Statement action;
4489 final Expression condition;
4490 final int pos = SimpleCharStream.getPosition();
4491 jj_consume_token(DO);
4492 action = Statement();
4493 jj_consume_token(WHILE);
4494 condition = Condition("while");
4496 jj_consume_token(SEMICOLON);
4497 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4498 } catch (ParseException e) {
4499 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4501 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4502 errorEnd = jj_input_stream.getPosition() + 1;
4503 {if (true) throw e;}
4505 throw new Error("Missing return statement in function");
4508 static final public ForeachStatement ForeachStatement() throws ParseException {
4509 Statement statement;
4510 Expression expression;
4511 final StringBuffer buff = new StringBuffer();
4512 final int pos = SimpleCharStream.getPosition();
4513 ArrayVariableDeclaration variable;
4514 jj_consume_token(FOREACH);
4516 jj_consume_token(LPAREN);
4517 } catch (ParseException e) {
4518 errorMessage = "'(' expected after 'foreach' keyword";
4520 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4521 errorEnd = jj_input_stream.getPosition() + 1;
4522 {if (true) throw e;}
4525 expression = Expression();
4526 } catch (ParseException e) {
4527 errorMessage = "variable expected";
4529 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4530 errorEnd = jj_input_stream.getPosition() + 1;
4531 {if (true) throw e;}
4534 jj_consume_token(AS);
4535 } catch (ParseException e) {
4536 errorMessage = "'as' expected";
4538 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4539 errorEnd = jj_input_stream.getPosition() + 1;
4540 {if (true) throw e;}
4543 variable = ArrayVariable();
4544 } catch (ParseException e) {
4545 errorMessage = "variable expected";
4547 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4548 errorEnd = jj_input_stream.getPosition() + 1;
4549 {if (true) throw e;}
4552 jj_consume_token(RPAREN);
4553 } catch (ParseException e) {
4554 errorMessage = "')' expected after 'foreach' keyword";
4556 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4557 errorEnd = jj_input_stream.getPosition() + 1;
4558 {if (true) throw e;}
4561 statement = Statement();
4562 } catch (ParseException e) {
4563 if (errorMessage != null) {if (true) throw e;}
4564 errorMessage = "statement expected";
4566 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4567 errorEnd = jj_input_stream.getPosition() + 1;
4568 {if (true) throw e;}
4570 {if (true) return new ForeachStatement(expression,
4574 SimpleCharStream.getPosition());}
4575 throw new Error("Missing return statement in function");
4578 static final public ForStatement ForStatement() throws ParseException {
4580 final int pos = SimpleCharStream.getPosition();
4581 Statement[] initializations = null;
4582 Expression condition = null;
4583 Statement[] increments = null;
4585 final ArrayList list = new ArrayList();
4586 final int startBlock, endBlock;
4587 token = jj_consume_token(FOR);
4589 jj_consume_token(LPAREN);
4590 } catch (ParseException e) {
4591 errorMessage = "'(' expected after 'for' keyword";
4593 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4594 errorEnd = jj_input_stream.getPosition() + 1;
4595 {if (true) throw e;}
4597 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4605 initializations = ForInit();
4608 jj_la1[114] = jj_gen;
4611 jj_consume_token(SEMICOLON);
4612 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4628 case INTEGER_LITERAL:
4629 case FLOATING_POINT_LITERAL:
4630 case STRING_LITERAL:
4634 condition = Expression();
4637 jj_la1[115] = jj_gen;
4640 jj_consume_token(SEMICOLON);
4641 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4649 increments = StatementExpressionList();
4652 jj_la1[116] = jj_gen;
4655 jj_consume_token(RPAREN);
4656 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4688 case INTEGER_LITERAL:
4689 case FLOATING_POINT_LITERAL:
4690 case STRING_LITERAL:
4696 action = Statement();
4697 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4700 jj_consume_token(COLON);
4701 startBlock = SimpleCharStream.getPosition();
4704 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4736 case INTEGER_LITERAL:
4737 case FLOATING_POINT_LITERAL:
4738 case STRING_LITERAL:
4747 jj_la1[117] = jj_gen;
4750 action = Statement();
4754 setMarker(fileToParse,
4755 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4757 pos+token.image.length(),
4759 "Line " + token.beginLine);
4760 } catch (CoreException e) {
4761 PHPeclipsePlugin.log(e);
4763 endBlock = SimpleCharStream.getPosition();
4765 jj_consume_token(ENDFOR);
4766 } catch (ParseException e) {
4767 errorMessage = "'endfor' expected";
4769 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4770 errorEnd = jj_input_stream.getPosition() + 1;
4771 {if (true) throw e;}
4774 jj_consume_token(SEMICOLON);
4775 {if (true) return new ForStatement(initializations,condition,increments,new Block((Statement[])list.toArray(),startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4776 } catch (ParseException e) {
4777 errorMessage = "';' expected after 'endfor' keyword";
4779 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4780 errorEnd = jj_input_stream.getPosition() + 1;
4781 {if (true) throw e;}
4785 jj_la1[118] = jj_gen;
4786 jj_consume_token(-1);
4787 throw new ParseException();
4789 throw new Error("Missing return statement in function");
4792 static final public Statement[] ForInit() throws ParseException {
4793 Statement[] statements;
4794 if (jj_2_8(2147483647)) {
4795 statements = LocalVariableDeclaration();
4796 {if (true) return statements;}
4798 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4806 statements = StatementExpressionList();
4807 {if (true) return statements;}
4810 jj_la1[119] = jj_gen;
4811 jj_consume_token(-1);
4812 throw new ParseException();
4815 throw new Error("Missing return statement in function");
4818 static final public Statement[] StatementExpressionList() throws ParseException {
4819 final ArrayList list = new ArrayList();
4821 expr = StatementExpression();
4825 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4830 jj_la1[120] = jj_gen;
4833 jj_consume_token(COMMA);
4834 StatementExpression();
4837 {if (true) return (Statement[]) list.toArray();}
4838 throw new Error("Missing return statement in function");
4841 static final public Continue ContinueStatement() throws ParseException {
4842 Expression expr = null;
4843 final int pos = SimpleCharStream.getPosition();
4844 jj_consume_token(CONTINUE);
4845 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4861 case INTEGER_LITERAL:
4862 case FLOATING_POINT_LITERAL:
4863 case STRING_LITERAL:
4867 expr = Expression();
4870 jj_la1[121] = jj_gen;
4874 jj_consume_token(SEMICOLON);
4875 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
4876 } catch (ParseException e) {
4877 errorMessage = "';' expected after 'continue' statement";
4879 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4880 errorEnd = jj_input_stream.getPosition() + 1;
4881 {if (true) throw e;}
4883 throw new Error("Missing return statement in function");
4886 static final public ReturnStatement ReturnStatement() throws ParseException {
4887 Expression expr = null;
4888 final int pos = SimpleCharStream.getPosition();
4889 jj_consume_token(RETURN);
4890 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4906 case INTEGER_LITERAL:
4907 case FLOATING_POINT_LITERAL:
4908 case STRING_LITERAL:
4912 expr = Expression();
4915 jj_la1[122] = jj_gen;
4919 jj_consume_token(SEMICOLON);
4920 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
4921 } catch (ParseException e) {
4922 errorMessage = "';' expected after 'return' statement";
4924 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4925 errorEnd = jj_input_stream.getPosition() + 1;
4926 {if (true) throw e;}
4928 throw new Error("Missing return statement in function");
4931 static final private boolean jj_2_1(int xla) {
4932 jj_la = xla; jj_lastpos = jj_scanpos = token;
4933 boolean retval = !jj_3_1();
4938 static final private boolean jj_2_2(int xla) {
4939 jj_la = xla; jj_lastpos = jj_scanpos = token;
4940 boolean retval = !jj_3_2();
4945 static final private boolean jj_2_3(int xla) {
4946 jj_la = xla; jj_lastpos = jj_scanpos = token;
4947 boolean retval = !jj_3_3();
4952 static final private boolean jj_2_4(int xla) {
4953 jj_la = xla; jj_lastpos = jj_scanpos = token;
4954 boolean retval = !jj_3_4();
4959 static final private boolean jj_2_5(int xla) {
4960 jj_la = xla; jj_lastpos = jj_scanpos = token;
4961 boolean retval = !jj_3_5();
4966 static final private boolean jj_2_6(int xla) {
4967 jj_la = xla; jj_lastpos = jj_scanpos = token;
4968 boolean retval = !jj_3_6();
4973 static final private boolean jj_2_7(int xla) {
4974 jj_la = xla; jj_lastpos = jj_scanpos = token;
4975 boolean retval = !jj_3_7();
4980 static final private boolean jj_2_8(int xla) {
4981 jj_la = xla; jj_lastpos = jj_scanpos = token;
4982 boolean retval = !jj_3_8();
4987 static final private boolean jj_3R_157() {
4992 if (jj_3R_160()) return true;
4993 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4994 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4995 if (jj_3R_166()) return true;
4996 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5000 static final private boolean jj_3R_152() {
5001 if (jj_3R_158()) return true;
5002 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5006 static final private boolean jj_3R_151() {
5007 if (jj_3R_157()) return true;
5008 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5012 static final private boolean jj_3R_156() {
5013 if (jj_scan_token(MINUS)) return true;
5014 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5018 static final private boolean jj_3R_155() {
5019 if (jj_scan_token(PLUS)) return true;
5020 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5024 static final private boolean jj_3R_148() {
5031 if (jj_3R_152()) return true;
5032 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5033 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5034 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5038 static final private boolean jj_3R_150() {
5043 if (jj_3R_156()) return true;
5044 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5045 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5046 if (jj_3R_139()) return true;
5047 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5051 static final private boolean jj_3R_154() {
5052 if (jj_3R_148()) return true;
5053 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5057 static final private boolean jj_3R_149() {
5062 if (jj_3R_154()) return true;
5063 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5064 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5068 static final private boolean jj_3R_153() {
5069 if (jj_scan_token(AT)) return true;
5070 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5071 if (jj_3R_149()) return true;
5072 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5076 static final private boolean jj_3R_144() {
5077 if (jj_3R_149()) return true;
5078 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5082 static final private boolean jj_3R_139() {
5087 if (jj_3R_144()) return true;
5088 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5089 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5093 static final private boolean jj_3R_143() {
5094 if (jj_scan_token(BIT_AND)) return true;
5095 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5096 if (jj_3R_148()) return true;
5097 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5101 static final private boolean jj_3R_147() {
5102 if (jj_scan_token(REMAINDER)) return true;
5103 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5107 static final private boolean jj_3R_146() {
5108 if (jj_scan_token(SLASH)) return true;
5109 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5113 static final private boolean jj_3R_145() {
5114 if (jj_scan_token(STAR)) return true;
5115 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5119 static final private boolean jj_3R_140() {
5126 if (jj_3R_147()) return true;
5127 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5128 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5129 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5130 if (jj_3R_139()) return true;
5131 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5135 static final private boolean jj_3R_134() {
5136 if (jj_3R_139()) return true;
5137 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5141 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5142 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5147 static final private boolean jj_3R_142() {
5148 if (jj_scan_token(MINUS)) return true;
5149 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5153 static final private boolean jj_3R_141() {
5154 if (jj_scan_token(PLUS)) return true;
5155 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5159 static final private boolean jj_3R_135() {
5164 if (jj_3R_142()) return true;
5165 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5166 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5167 if (jj_3R_134()) return true;
5168 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5172 static final private boolean jj_3R_128() {
5173 if (jj_3R_134()) return true;
5174 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5178 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5179 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5184 static final private boolean jj_3R_87() {
5185 if (jj_scan_token(ASSIGN)) return true;
5186 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5187 if (jj_3R_45()) return true;
5188 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5192 static final private boolean jj_3R_198() {
5193 if (jj_scan_token(COMMA)) return true;
5194 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5198 static final private boolean jj_3_7() {
5199 if (jj_3R_46()) return true;
5200 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5204 static final private boolean jj_3_2() {
5205 if (jj_scan_token(COMMA)) return true;
5206 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5207 if (jj_3R_41()) return true;
5208 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5212 static final private boolean jj_3R_138() {
5213 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5214 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5218 static final private boolean jj_3R_201() {
5219 if (jj_scan_token(ARRAYASSIGN)) return true;
5220 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5221 if (jj_3R_45()) return true;
5222 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5226 static final private boolean jj_3R_197() {
5227 if (jj_3R_41()) return true;
5228 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5232 if (jj_3_2()) { jj_scanpos = xsp; break; }
5233 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5238 static final private boolean jj_3R_137() {
5239 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5240 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5244 static final private boolean jj_3R_136() {
5245 if (jj_scan_token(LSHIFT)) return true;
5246 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5250 static final private boolean jj_3R_129() {
5257 if (jj_3R_138()) return true;
5258 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5259 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5260 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5261 if (jj_3R_128()) return true;
5262 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5266 static final private boolean jj_3R_121() {
5267 if (jj_3R_128()) return true;
5268 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5272 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5273 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5278 static final private boolean jj_3_6() {
5279 if (jj_3R_45()) return true;
5280 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5281 if (jj_scan_token(SEMICOLON)) return true;
5282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5286 static final private boolean jj_3R_192() {
5287 if (jj_scan_token(LPAREN)) return true;
5288 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5291 if (jj_3R_197()) jj_scanpos = xsp;
5292 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5294 if (jj_3R_198()) jj_scanpos = xsp;
5295 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5296 if (jj_scan_token(RPAREN)) return true;
5297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5301 static final private boolean jj_3R_133() {
5302 if (jj_scan_token(GE)) return true;
5303 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5307 static final private boolean jj_3R_132() {
5308 if (jj_scan_token(LE)) return true;
5309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5313 static final private boolean jj_3R_131() {
5314 if (jj_scan_token(GT)) return true;
5315 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5319 static final private boolean jj_3R_130() {
5320 if (jj_scan_token(LT)) return true;
5321 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5325 static final private boolean jj_3R_41() {
5326 if (jj_3R_45()) return true;
5327 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330 if (jj_3R_201()) jj_scanpos = xsp;
5331 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5335 static final private boolean jj_3R_122() {
5344 if (jj_3R_133()) return true;
5345 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5346 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5347 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5348 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5349 if (jj_3R_121()) return true;
5350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5354 static final private boolean jj_3R_119() {
5355 if (jj_3R_121()) return true;
5356 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5360 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5361 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5366 static final private boolean jj_3R_57() {
5367 if (jj_3R_50()) return true;
5368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5371 if (jj_3R_87()) jj_scanpos = xsp;
5372 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5376 static final private boolean jj_3R_203() {
5377 if (jj_scan_token(COMMA)) return true;
5378 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5379 if (jj_3R_45()) return true;
5380 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5384 static final private boolean jj_3R_202() {
5385 if (jj_3R_45()) return true;
5386 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5390 if (jj_3R_203()) { jj_scanpos = xsp; break; }
5391 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5396 static final private boolean jj_3R_58() {
5397 if (jj_scan_token(COMMA)) return true;
5398 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5399 if (jj_3R_57()) return true;
5400 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5404 static final private boolean jj_3R_47() {
5405 if (jj_3R_57()) return true;
5406 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5410 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5411 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5416 static final private boolean jj_3R_200() {
5417 if (jj_3R_202()) return true;
5418 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5422 static final private boolean jj_3R_127() {
5423 if (jj_scan_token(TRIPLEEQUAL)) return true;
5424 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5428 static final private boolean jj_3R_126() {
5429 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5430 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5434 static final private boolean jj_3R_125() {
5435 if (jj_scan_token(NOT_EQUAL)) return true;
5436 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5440 static final private boolean jj_3R_124() {
5441 if (jj_scan_token(DIF)) return true;
5442 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5446 static final private boolean jj_3R_123() {
5447 if (jj_scan_token(EQUAL_EQUAL)) return true;
5448 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5452 static final private boolean jj_3R_93() {
5453 if (jj_3R_52()) return true;
5454 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5458 static final private boolean jj_3R_199() {
5459 if (jj_scan_token(LPAREN)) return true;
5460 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5463 if (jj_3R_200()) jj_scanpos = xsp;
5464 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5465 if (jj_scan_token(RPAREN)) return true;
5466 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5470 static final private boolean jj_3R_120() {
5481 if (jj_3R_127()) return true;
5482 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5483 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5484 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5485 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5486 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5487 if (jj_3R_119()) return true;
5488 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5492 static final private boolean jj_3R_117() {
5493 if (jj_3R_119()) return true;
5494 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5498 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5499 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5504 static final private boolean jj_3R_108() {
5505 if (jj_scan_token(LBRACE)) return true;
5506 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5507 if (jj_3R_45()) return true;
5508 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5509 if (jj_scan_token(RBRACE)) return true;
5510 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5514 static final private boolean jj_3R_91() {
5515 if (jj_scan_token(DOLLAR_ID)) return true;
5516 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5520 static final private boolean jj_3R_177() {
5521 if (jj_scan_token(NULL)) return true;
5522 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5526 static final private boolean jj_3R_176() {
5527 if (jj_scan_token(FALSE)) return true;
5528 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5532 static final private boolean jj_3R_118() {
5533 if (jj_scan_token(BIT_AND)) return true;
5534 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5535 if (jj_3R_117()) return true;
5536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5540 static final private boolean jj_3R_175() {
5541 if (jj_scan_token(TRUE)) return true;
5542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5546 static final private boolean jj_3R_90() {
5547 if (jj_scan_token(DOLLAR)) return true;
5548 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5549 if (jj_3R_59()) return true;
5550 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5554 static final private boolean jj_3R_174() {
5555 if (jj_scan_token(STRING_LITERAL)) return true;
5556 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5560 static final private boolean jj_3R_115() {
5561 if (jj_3R_117()) return true;
5562 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5566 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5567 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5572 static final private boolean jj_3R_173() {
5573 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5574 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5578 static final private boolean jj_3R_169() {
5591 if (jj_3R_177()) return true;
5592 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5593 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5594 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5595 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5596 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5597 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5601 static final private boolean jj_3R_172() {
5602 if (jj_scan_token(INTEGER_LITERAL)) return true;
5603 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5607 static final private boolean jj_3R_116() {
5608 if (jj_scan_token(XOR)) return true;
5609 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5610 if (jj_3R_115()) return true;
5611 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5615 static final private boolean jj_3R_92() {
5616 if (jj_3R_45()) return true;
5617 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5621 static final private boolean jj_3R_60() {
5626 if (jj_3R_93()) return true;
5627 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5628 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5632 static final private boolean jj_3R_89() {
5633 if (jj_scan_token(IDENTIFIER)) return true;
5634 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5637 if (jj_3R_108()) jj_scanpos = xsp;
5638 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5642 static final private boolean jj_3R_113() {
5643 if (jj_3R_115()) return true;
5644 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5648 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5649 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5654 static final private boolean jj_3R_88() {
5655 if (jj_scan_token(LBRACE)) return true;
5656 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5657 if (jj_3R_45()) return true;
5658 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5659 if (jj_scan_token(RBRACE)) return true;
5660 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5664 static final private boolean jj_3R_59() {
5673 if (jj_3R_91()) return true;
5674 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5675 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5676 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5677 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5681 static final private boolean jj_3R_98() {
5682 if (jj_scan_token(LBRACE)) return true;
5683 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5684 if (jj_3R_45()) return true;
5685 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5686 if (jj_scan_token(RBRACE)) return true;
5687 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5691 static final private boolean jj_3R_49() {
5692 if (jj_scan_token(LBRACKET)) return true;
5693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5696 if (jj_3R_60()) jj_scanpos = xsp;
5697 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5698 if (jj_scan_token(RBRACKET)) return true;
5699 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5703 static final private boolean jj_3R_114() {
5704 if (jj_scan_token(BIT_OR)) return true;
5705 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5706 if (jj_3R_113()) return true;
5707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5711 static final private boolean jj_3R_109() {
5712 if (jj_3R_113()) return true;
5713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5717 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5718 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5723 static final private boolean jj_3R_95() {
5724 if (jj_scan_token(DOLLAR)) return true;
5725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5726 if (jj_3R_59()) return true;
5727 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 static final private boolean jj_3R_110() {
5732 if (jj_scan_token(DOT)) return true;
5733 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5734 if (jj_3R_109()) return true;
5735 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5739 static final private boolean jj_3R_48() {
5740 if (jj_scan_token(CLASSACCESS)) return true;
5741 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5742 if (jj_3R_59()) return true;
5743 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5747 static final private boolean jj_3R_40() {
5752 if (jj_3R_49()) return true;
5753 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5754 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5758 static final private boolean jj_3R_104() {
5759 if (jj_3R_109()) return true;
5760 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5764 if (jj_3R_110()) { jj_scanpos = xsp; break; }
5765 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5770 static final private boolean jj_3R_46() {
5771 if (jj_scan_token(IDENTIFIER)) return true;
5772 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5773 if (jj_scan_token(COLON)) return true;
5774 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5778 static final private boolean jj_3R_94() {
5779 if (jj_scan_token(DOLLAR_ID)) return true;
5780 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5783 if (jj_3R_98()) jj_scanpos = xsp;
5784 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5788 static final private boolean jj_3R_61() {
5793 if (jj_3R_95()) return true;
5794 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5795 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5799 static final private boolean jj_3R_196() {
5800 if (jj_3R_40()) return true;
5801 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5805 static final private boolean jj_3R_112() {
5806 if (jj_scan_token(_ANDL)) return true;
5807 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5811 static final private boolean jj_3R_195() {
5812 if (jj_3R_199()) return true;
5813 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5817 static final private boolean jj_3R_188() {
5822 if (jj_3R_196()) return true;
5823 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5824 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5828 static final private boolean jj_3R_111() {
5829 if (jj_scan_token(AND_AND)) return true;
5830 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5834 static final private boolean jj_3R_105() {
5839 if (jj_3R_112()) return true;
5840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5841 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5842 if (jj_3R_104()) return true;
5843 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5847 static final private boolean jj_3R_97() {
5848 if (jj_scan_token(HOOK)) return true;
5849 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850 if (jj_3R_45()) return true;
5851 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5852 if (jj_scan_token(COLON)) return true;
5853 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5854 if (jj_3R_86()) return true;
5855 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5859 static final private boolean jj_3R_102() {
5860 if (jj_3R_104()) return true;
5861 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5865 if (jj_3R_105()) { jj_scanpos = xsp; break; }
5866 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5871 static final private boolean jj_3R_187() {
5872 if (jj_3R_50()) return true;
5873 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5877 static final private boolean jj_3R_186() {
5878 if (jj_scan_token(IDENTIFIER)) return true;
5879 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5883 static final private boolean jj_3R_178() {
5888 if (jj_3R_187()) return true;
5889 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5890 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5894 static final private boolean jj_3_1() {
5895 if (jj_3R_40()) return true;
5896 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5900 static final private boolean jj_3R_107() {
5901 if (jj_scan_token(_ORL)) return true;
5902 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5906 static final private boolean jj_3R_106() {
5907 if (jj_scan_token(OR_OR)) return true;
5908 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5912 static final private boolean jj_3R_50() {
5913 if (jj_3R_61()) return true;
5914 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5918 if (jj_3_1()) { jj_scanpos = xsp; break; }
5919 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5924 static final private boolean jj_3R_103() {
5929 if (jj_3R_107()) return true;
5930 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5931 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5932 if (jj_3R_102()) return true;
5933 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5937 static final private boolean jj_3R_96() {
5938 if (jj_3R_102()) return true;
5939 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5943 if (jj_3R_103()) { jj_scanpos = xsp; break; }
5944 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5949 static final private boolean jj_3R_86() {
5950 if (jj_3R_96()) return true;
5951 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5954 if (jj_3R_97()) jj_scanpos = xsp;
5955 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5959 static final private boolean jj_3R_191() {
5960 if (jj_3R_50()) return true;
5961 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5965 static final private boolean jj_3R_190() {
5966 if (jj_scan_token(NEW)) return true;
5967 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5968 if (jj_3R_178()) return true;
5969 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5973 static final private boolean jj_3R_74() {
5974 if (jj_scan_token(TILDEEQUAL)) return true;
5975 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5979 static final private boolean jj_3R_73() {
5980 if (jj_scan_token(DOTASSIGN)) return true;
5981 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5985 static final private boolean jj_3R_72() {
5986 if (jj_scan_token(ORASSIGN)) return true;
5987 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5991 static final private boolean jj_3R_189() {
5992 if (jj_scan_token(IDENTIFIER)) return true;
5993 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5997 static final private boolean jj_3R_180() {
6004 if (jj_3R_191()) return true;
6005 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6006 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6007 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6011 static final private boolean jj_3R_71() {
6012 if (jj_scan_token(XORASSIGN)) return true;
6013 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6017 static final private boolean jj_3R_70() {
6018 if (jj_scan_token(ANDASSIGN)) return true;
6019 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6023 static final private boolean jj_3R_69() {
6024 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6025 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6029 static final private boolean jj_3R_68() {
6030 if (jj_scan_token(LSHIFTASSIGN)) return true;
6031 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6035 static final private boolean jj_3R_67() {
6036 if (jj_scan_token(MINUSASSIGN)) return true;
6037 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6041 static final private boolean jj_3R_66() {
6042 if (jj_scan_token(PLUSASSIGN)) return true;
6043 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6047 static final private boolean jj_3R_65() {
6048 if (jj_scan_token(REMASSIGN)) return true;
6049 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6053 static final private boolean jj_3R_64() {
6054 if (jj_scan_token(SLASHASSIGN)) return true;
6055 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6059 static final private boolean jj_3R_63() {
6060 if (jj_scan_token(STARASSIGN)) return true;
6061 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6065 static final private boolean jj_3R_51() {
6092 if (jj_3R_74()) return true;
6093 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6094 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6095 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6096 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6097 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6098 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6099 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6100 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6101 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6102 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6103 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6104 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6105 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6109 static final private boolean jj_3R_62() {
6110 if (jj_scan_token(ASSIGN)) return true;
6111 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6115 static final private boolean jj_3_8() {
6116 if (jj_3R_47()) return true;
6117 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6121 static final private boolean jj_3R_182() {
6122 if (jj_scan_token(ARRAY)) return true;
6123 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6124 if (jj_3R_192()) return true;
6125 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6129 static final private boolean jj_3R_171() {
6130 if (jj_3R_182()) return true;
6131 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6135 static final private boolean jj_3R_181() {
6136 if (jj_3R_188()) return true;
6137 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6141 static final private boolean jj_3R_170() {
6142 if (jj_3R_180()) return true;
6143 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6147 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6148 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6153 static final private boolean jj_3R_179() {
6154 if (jj_3R_188()) return true;
6155 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6159 static final private boolean jj_3R_42() {
6160 if (jj_3R_50()) return true;
6161 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6162 if (jj_3R_51()) return true;
6163 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6164 if (jj_3R_45()) return true;
6165 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6169 static final private boolean jj_3R_101() {
6170 if (jj_scan_token(ASSIGN)) return true;
6171 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6172 if (jj_3R_45()) return true;
6173 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6177 static final private boolean jj_3_5() {
6178 if (jj_scan_token(IDENTIFIER)) return true;
6179 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6180 if (jj_scan_token(STATICCLASSACCESS)) return true;
6181 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6182 if (jj_3R_178()) return true;
6183 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6187 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6188 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6193 static final private boolean jj_3R_166() {
6200 if (jj_3R_171()) return true;
6201 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6202 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6203 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6207 static final private boolean jj_3_3() {
6208 if (jj_3R_42()) return true;
6209 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6213 static final private boolean jj_3R_56() {
6214 if (jj_3R_86()) return true;
6215 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6219 static final private boolean jj_3R_55() {
6220 if (jj_3R_42()) return true;
6221 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6225 static final private boolean jj_3R_194() {
6226 if (jj_scan_token(DECR)) return true;
6227 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6231 static final private boolean jj_3R_54() {
6232 if (jj_3R_85()) return true;
6233 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6237 static final private boolean jj_3R_193() {
6238 if (jj_scan_token(INCR)) return true;
6239 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6243 static final private boolean jj_3R_185() {
6248 if (jj_3R_194()) return true;
6249 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6250 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6254 static final private boolean jj_3R_45() {
6263 if (jj_3R_56()) return true;
6264 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6265 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6266 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6267 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6271 static final private boolean jj_3R_53() {
6272 if (jj_3R_84()) return true;
6273 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6277 static final private boolean jj_3R_168() {
6278 if (jj_3R_166()) return true;
6279 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6282 if (jj_3R_185()) jj_scanpos = xsp;
6283 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6287 static final private boolean jj_3R_100() {
6288 if (jj_scan_token(COMMA)) return true;
6289 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6290 if (jj_3R_50()) return true;
6291 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6295 static final private boolean jj_3R_99() {
6296 if (jj_3R_50()) return true;
6297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6301 static final private boolean jj_3R_83() {
6302 if (jj_scan_token(OBJECT)) return true;
6303 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6307 static final private boolean jj_3R_44() {
6308 if (jj_scan_token(ARRAY)) return true;
6309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6313 static final private boolean jj_3R_184() {
6314 if (jj_scan_token(ARRAY)) return true;
6315 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6319 static final private boolean jj_3R_82() {
6320 if (jj_scan_token(INTEGER)) return true;
6321 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6325 static final private boolean jj_3R_183() {
6326 if (jj_3R_52()) return true;
6327 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6331 static final private boolean jj_3R_81() {
6332 if (jj_scan_token(INT)) return true;
6333 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6337 static final private boolean jj_3R_167() {
6338 if (jj_scan_token(LPAREN)) return true;
6339 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6344 if (jj_3R_184()) return true;
6345 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6346 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6347 if (jj_scan_token(RPAREN)) return true;
6348 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6349 if (jj_3R_139()) return true;
6350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6354 static final private boolean jj_3R_80() {
6355 if (jj_scan_token(FLOAT)) return true;
6356 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6360 static final private boolean jj_3R_43() {
6361 if (jj_3R_52()) return true;
6362 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6366 static final private boolean jj_3R_79() {
6367 if (jj_scan_token(DOUBLE)) return true;
6368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6372 static final private boolean jj_3R_85() {
6373 if (jj_scan_token(LIST)) return true;
6374 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6375 if (jj_scan_token(LPAREN)) return true;
6376 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6379 if (jj_3R_99()) jj_scanpos = xsp;
6380 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6383 if (jj_3R_100()) { jj_scanpos = xsp; break; }
6384 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6386 if (jj_scan_token(RPAREN)) return true;
6387 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6389 if (jj_3R_101()) jj_scanpos = xsp;
6390 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6394 static final private boolean jj_3R_78() {
6395 if (jj_scan_token(REAL)) return true;
6396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6400 static final private boolean jj_3R_77() {
6401 if (jj_scan_token(BOOLEAN)) return true;
6402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6406 static final private boolean jj_3_4() {
6407 if (jj_scan_token(LPAREN)) return true;
6408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6413 if (jj_3R_44()) return true;
6414 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6415 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6416 if (jj_scan_token(RPAREN)) return true;
6417 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6421 static final private boolean jj_3R_76() {
6422 if (jj_scan_token(BOOL)) return true;
6423 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6427 static final private boolean jj_3R_84() {
6428 if (jj_scan_token(PRINT)) return true;
6429 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6430 if (jj_3R_45()) return true;
6431 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6435 static final private boolean jj_3R_75() {
6436 if (jj_scan_token(STRING)) return true;
6437 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6441 static final private boolean jj_3R_52() {
6460 if (jj_3R_83()) return true;
6461 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6462 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6463 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6464 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6465 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6466 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6467 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6468 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6469 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6473 static final private boolean jj_3R_165() {
6474 if (jj_scan_token(LPAREN)) return true;
6475 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6476 if (jj_3R_45()) return true;
6477 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6478 if (jj_scan_token(RPAREN)) return true;
6479 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6483 static final private boolean jj_3R_164() {
6484 if (jj_3R_169()) return true;
6485 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6489 static final private boolean jj_3R_163() {
6490 if (jj_3R_168()) return true;
6491 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6495 static final private boolean jj_3R_162() {
6496 if (jj_3R_167()) return true;
6497 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6501 static final private boolean jj_3R_158() {
6512 if (jj_3R_165()) return true;
6513 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6514 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6515 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6516 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6517 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6521 static final private boolean jj_3R_161() {
6522 if (jj_scan_token(BANG)) return true;
6523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6524 if (jj_3R_139()) return true;
6525 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6529 static final private boolean jj_3R_160() {
6530 if (jj_scan_token(DECR)) return true;
6531 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6535 static final private boolean jj_3R_159() {
6536 if (jj_scan_token(INCR)) return true;
6537 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6541 static private boolean jj_initialized_once = false;
6542 static public PHPParserTokenManager token_source;
6543 static SimpleCharStream jj_input_stream;
6544 static public Token token, jj_nt;
6545 static private int jj_ntk;
6546 static private Token jj_scanpos, jj_lastpos;
6547 static private int jj_la;
6548 static public boolean lookingAhead = false;
6549 static private boolean jj_semLA;
6550 static private int jj_gen;
6551 static final private int[] jj_la1 = new int[123];
6552 static private int[] jj_la1_0;
6553 static private int[] jj_la1_1;
6554 static private int[] jj_la1_2;
6555 static private int[] jj_la1_3;
6556 static private int[] jj_la1_4;
6564 private static void jj_la1_0() {
6565 jj_la1_0 = new int[] {0xfcb0001e,0x6,0x6,0xfcb0001e,0x0,0xfcb00000,0x0,0x600000,0x600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x34000000,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x4000000,0x0,0x4000000,0x0,0x0,0x4000000,0x4000000,0x0,0x0,0x0,0x0,0x4000000,0x0,0x4000000,0x0,0x0,0x34000000,0x34000000,0x0,0x0,0x34000000,0x0,0x0,0xc4800000,0xfc800000,0x8,0x6,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0xfcb00010,0xfcb00010,0xfcb00000,0xf4b00000,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0xf4b00010,0xf4b00010,0x8000000,0x0,0x34000000,0xfc800010,0xfc800010,0x1000000,0x2000000,0xfc800010,0x1000000,0x2000000,0xfc800010,0xfc800010,0xfc800010,0xfc800010,0xfc800010,0xfc800000,0xfc800000,0x4000000,0x34000000,0x4000000,0xfc800000,0xfc800000,0x4000000,0x0,0x34000000,0x34000000,};
6567 private static void jj_la1_1() {
6568 jj_la1_1 = new int[] {0x21d7541f,0x0,0x0,0x21d7541f,0x0,0x21d7541f,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc20000,0x80,0xc30000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0xc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc30000,0xc30000,0x0,0xc30000,0x0,0x0,0xc30000,0x80000000,0x0,0x0,0x20,0x20,0x10000,0x10000,0x10000,0x0,0x20,0x80c30000,0x80c30000,0x20,0xc20000,0xc30000,0x0,0x0,0x2115541f,0x21d7541f,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x0,0x0,0x0,0x0,0x10000,0x0,0x900,0x900,0x21d7541f,0x21d7541f,0x0,0x900,0xc30000,0x21d7541f,0x21d7541f,0x0,0x0,0x21d7541f,0x0,0x0,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x10000,0xc30000,0x10000,0x21d7541f,0x21d7541f,0x10000,0x0,0xc30000,0xc30000,};
6570 private static void jj_la1_2() {
6571 jj_la1_2 = new int[] {0x804f0700,0x0,0x0,0x804f0700,0x0,0x804f0700,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x80000000,0x80000000,0x800c0000,0x0,0x804f0700,0x0,0x400000,0x0,0x400200,0x400000,0xff,0x0,0x804f0700,0x0,0x1000,0x20004000,0x20004000,0x40008000,0x40008000,0x0,0x800000,0x1000000,0x400000,0x0,0x0,0x0,0x0,0x1c000000,0x1c000000,0xc0000,0xc0000,0x2300000,0x2300000,0x804f0700,0x800f0700,0xc0000,0x800f0600,0x30000,0x400,0x80000200,0xff,0x30000,0x30000,0x0,0x0,0x200,0x200,0x200,0x200,0x0,0x804f07ff,0x804f07ff,0x0,0x80000000,0x804f0700,0x0,0x100,0x30300,0x804f0700,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x0,0x0,0x30000,0x30000,0x30200,0x2000,0x0,0x0,0x804f0700,0x804f0700,0x0,0x0,0x804f0700,0x804f0700,0x804f0700,0x0,0x0,0x804f0700,0x0,0x0,0x804f2700,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x804f2700,0x30200,0x804f0700,0x30200,0x804f0700,0x804f2700,0x30200,0x0,0x804f0700,0x804f0700,};
6573 private static void jj_la1_3() {
6574 jj_la1_3 = new int[] {0x8a228,0x0,0x0,0x8a228,0x80000,0x8a228,0x0,0x0,0x0,0x100000,0x80000000,0x8000,0x0,0x8000,0x8200,0x8,0x8,0x228,0x0,0x2228,0x100000,0x0,0x100000,0x0,0x0,0x0,0x0,0x2228,0x80000000,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x79000000,0x79000000,0x6c00000,0x6c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x2228,0x2228,0x0,0x2228,0x0,0x0,0x2228,0x0,0x0,0x0,0x22000,0x22000,0x200,0x200,0x200,0x200,0x22000,0x2228,0x2228,0x20000,0x28,0x2228,0x100000,0x0,0x88200,0x8a228,0x0,0x0,0x0,0x0,0x100000,0x80000000,0x100000,0x100000,0x100000,0x8a228,0x8a228,0x8a228,0x8a228,0x100000,0x80000000,0x80000000,0x80000000,0x200,0x8000,0x0,0x0,0x8a228,0x8a228,0x0,0x0,0x2228,0x8a228,0x8a228,0x0,0x0,0x8a228,0x0,0x0,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x200,0x2228,0x200,0x8a228,0x8a228,0x200,0x100000,0x2228,0x2228,};
6576 private static void jj_la1_4() {
6577 jj_la1_4 = new int[] {0x1000,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0xfff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x0,0x1000,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x0,0x0,0x1000,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x0,0x0,0xfff,0xfff,0x1000,0x0,0x0,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x1000,0x1000,0x0,0x0,0x1000,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x0,0x1000,0x1000,};
6579 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6580 static private boolean jj_rescan = false;
6581 static private int jj_gc = 0;
6583 public PHPParser(java.io.InputStream stream) {
6584 if (jj_initialized_once) {
6585 System.out.println("ERROR: Second call to constructor of static parser. You must");
6586 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6587 System.out.println(" during parser generation.");
6590 jj_initialized_once = true;
6591 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6592 token_source = new PHPParserTokenManager(jj_input_stream);
6593 token = new Token();
6596 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6597 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6600 static public void ReInit(java.io.InputStream stream) {
6601 jj_input_stream.ReInit(stream, 1, 1);
6602 token_source.ReInit(jj_input_stream);
6603 token = new Token();
6606 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6607 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6610 public PHPParser(java.io.Reader stream) {
6611 if (jj_initialized_once) {
6612 System.out.println("ERROR: Second call to constructor of static parser. You must");
6613 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6614 System.out.println(" during parser generation.");
6617 jj_initialized_once = true;
6618 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6619 token_source = new PHPParserTokenManager(jj_input_stream);
6620 token = new Token();
6623 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6624 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6627 static public void ReInit(java.io.Reader stream) {
6628 jj_input_stream.ReInit(stream, 1, 1);
6629 token_source.ReInit(jj_input_stream);
6630 token = new Token();
6633 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6634 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6637 public PHPParser(PHPParserTokenManager tm) {
6638 if (jj_initialized_once) {
6639 System.out.println("ERROR: Second call to constructor of static parser. You must");
6640 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6641 System.out.println(" during parser generation.");
6644 jj_initialized_once = true;
6646 token = new Token();
6649 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6650 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6653 public void ReInit(PHPParserTokenManager tm) {
6655 token = new Token();
6658 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6659 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6662 static final private Token jj_consume_token(int kind) throws ParseException {
6664 if ((oldToken = token).next != null) token = token.next;
6665 else token = token.next = token_source.getNextToken();
6667 if (token.kind == kind) {
6669 if (++jj_gc > 100) {
6671 for (int i = 0; i < jj_2_rtns.length; i++) {
6672 JJCalls c = jj_2_rtns[i];
6674 if (c.gen < jj_gen) c.first = null;
6683 throw generateParseException();
6686 static final private boolean jj_scan_token(int kind) {
6687 if (jj_scanpos == jj_lastpos) {
6689 if (jj_scanpos.next == null) {
6690 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6692 jj_lastpos = jj_scanpos = jj_scanpos.next;
6695 jj_scanpos = jj_scanpos.next;
6698 int i = 0; Token tok = token;
6699 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6700 if (tok != null) jj_add_error_token(kind, i);
6702 return (jj_scanpos.kind != kind);
6705 static final public Token getNextToken() {
6706 if (token.next != null) token = token.next;
6707 else token = token.next = token_source.getNextToken();
6713 static final public Token getToken(int index) {
6714 Token t = lookingAhead ? jj_scanpos : token;
6715 for (int i = 0; i < index; i++) {
6716 if (t.next != null) t = t.next;
6717 else t = t.next = token_source.getNextToken();
6722 static final private int jj_ntk() {
6723 if ((jj_nt=token.next) == null)
6724 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6726 return (jj_ntk = jj_nt.kind);
6729 static private java.util.Vector jj_expentries = new java.util.Vector();
6730 static private int[] jj_expentry;
6731 static private int jj_kind = -1;
6732 static private int[] jj_lasttokens = new int[100];
6733 static private int jj_endpos;
6735 static private void jj_add_error_token(int kind, int pos) {
6736 if (pos >= 100) return;
6737 if (pos == jj_endpos + 1) {
6738 jj_lasttokens[jj_endpos++] = kind;
6739 } else if (jj_endpos != 0) {
6740 jj_expentry = new int[jj_endpos];
6741 for (int i = 0; i < jj_endpos; i++) {
6742 jj_expentry[i] = jj_lasttokens[i];
6744 boolean exists = false;
6745 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
6746 int[] oldentry = (int[])(enum.nextElement());
6747 if (oldentry.length == jj_expentry.length) {
6749 for (int i = 0; i < jj_expentry.length; i++) {
6750 if (oldentry[i] != jj_expentry[i]) {
6758 if (!exists) jj_expentries.addElement(jj_expentry);
6759 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6763 static public ParseException generateParseException() {
6764 jj_expentries.removeAllElements();
6765 boolean[] la1tokens = new boolean[141];
6766 for (int i = 0; i < 141; i++) {
6767 la1tokens[i] = false;
6770 la1tokens[jj_kind] = true;
6773 for (int i = 0; i < 123; i++) {
6774 if (jj_la1[i] == jj_gen) {
6775 for (int j = 0; j < 32; j++) {
6776 if ((jj_la1_0[i] & (1<<j)) != 0) {
6777 la1tokens[j] = true;
6779 if ((jj_la1_1[i] & (1<<j)) != 0) {
6780 la1tokens[32+j] = true;
6782 if ((jj_la1_2[i] & (1<<j)) != 0) {
6783 la1tokens[64+j] = true;
6785 if ((jj_la1_3[i] & (1<<j)) != 0) {
6786 la1tokens[96+j] = true;
6788 if ((jj_la1_4[i] & (1<<j)) != 0) {
6789 la1tokens[128+j] = true;
6794 for (int i = 0; i < 141; i++) {
6796 jj_expentry = new int[1];
6798 jj_expentries.addElement(jj_expentry);
6803 jj_add_error_token(0, 0);
6804 int[][] exptokseq = new int[jj_expentries.size()][];
6805 for (int i = 0; i < jj_expentries.size(); i++) {
6806 exptokseq[i] = (int[])jj_expentries.elementAt(i);
6808 return new ParseException(token, exptokseq, tokenImage);
6811 static final public void enable_tracing() {
6814 static final public void disable_tracing() {
6817 static final private void jj_rescan_token() {
6819 for (int i = 0; i < 8; i++) {
6820 JJCalls p = jj_2_rtns[i];
6822 if (p.gen > jj_gen) {
6823 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
6825 case 0: jj_3_1(); break;
6826 case 1: jj_3_2(); break;
6827 case 2: jj_3_3(); break;
6828 case 3: jj_3_4(); break;
6829 case 4: jj_3_5(); break;
6830 case 5: jj_3_6(); break;
6831 case 6: jj_3_7(); break;
6832 case 7: jj_3_8(); break;
6836 } while (p != null);
6841 static final private void jj_save(int index, int xla) {
6842 JJCalls p = jj_2_rtns[index];
6843 while (p.gen > jj_gen) {
6844 if (p.next == null) { p = p.next = new JJCalls(); break; }
6847 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
6850 static final class JJCalls {