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 private static boolean assigning;
44 /** The error level of the current ParseException. */
45 private static int errorLevel = ERROR;
46 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
47 private static String errorMessage;
49 private static int errorStart = -1;
50 private static int errorEnd = -1;
51 private static PHPDocument phpDocument;
53 * The point where html starts.
54 * It will be used by the token manager to create HTMLCode objects
56 public static int htmlStart;
59 private final static int AstStackIncrement = 100;
60 /** The stack of node. */
61 private static AstNode[] nodes;
62 /** The cursor in expression stack. */
63 private static int nodePtr;
65 public final void setFileToParse(final IFile fileToParse) {
66 this.fileToParse = fileToParse;
72 public PHPParser(final IFile fileToParse) {
73 this(new StringReader(""));
74 this.fileToParse = fileToParse;
78 * Reinitialize the parser.
80 private static final void init() {
81 nodes = new AstNode[AstStackIncrement];
87 * Add an php node on the stack.
88 * @param node the node that will be added to the stack
90 private static final void pushOnAstNodes(AstNode node) {
92 nodes[++nodePtr] = node;
93 } catch (IndexOutOfBoundsException e) {
94 int oldStackLength = nodes.length;
95 AstNode[] oldStack = nodes;
96 nodes = new AstNode[oldStackLength + AstStackIncrement];
97 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
98 nodePtr = oldStackLength;
99 nodes[nodePtr] = node;
103 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
104 phpDocument = new PHPDocument(parent,"_root".toCharArray());
105 currentSegment = phpDocument;
106 outlineInfo = new PHPOutlineInfo(parent, currentSegment);
107 final StringReader stream = new StringReader(s);
108 if (jj_input_stream == null) {
109 jj_input_stream = new SimpleCharStream(stream, 1, 1);
115 phpDocument.nodes = new AstNode[nodes.length];
116 System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
117 phpDocument.toString();
118 } catch (ParseException e) {
119 processParseException(e);
125 * This method will process the parse exception.
126 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
127 * @param e the ParseException
129 private static void processParseException(final ParseException e) {
130 if (errorMessage == null) {
131 PHPeclipsePlugin.log(e);
132 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
133 errorStart = SimpleCharStream.getPosition();
134 errorEnd = errorStart + 1;
141 * Create marker for the parse error
142 * @param e the ParseException
144 private static void setMarker(final ParseException e) {
146 if (errorStart == -1) {
147 setMarker(fileToParse,
149 SimpleCharStream.tokenBegin,
150 SimpleCharStream.tokenBegin + e.currentToken.image.length(),
152 "Line " + e.currentToken.beginLine);
154 setMarker(fileToParse,
159 "Line " + e.currentToken.beginLine);
163 } catch (CoreException e2) {
164 PHPeclipsePlugin.log(e2);
169 * Create markers according to the external parser output
171 private static void createMarkers(final String output, final IFile file) throws CoreException {
172 // delete all markers
173 file.deleteMarkers(IMarker.PROBLEM, false, 0);
178 while ((brIndx = output.indexOf("<br />", indx)) != -1) {
179 // newer php error output (tested with 4.2.3)
180 scanLine(output, file, indx, brIndx);
185 while ((brIndx = output.indexOf("<br>", indx)) != -1) {
186 // older php error output (tested with 4.2.3)
187 scanLine(output, file, indx, brIndx);
193 private static void scanLine(final String output,
196 final int brIndx) throws CoreException {
198 StringBuffer lineNumberBuffer = new StringBuffer(10);
200 current = output.substring(indx, brIndx);
202 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
203 int onLine = current.indexOf("on line <b>");
205 lineNumberBuffer.delete(0, lineNumberBuffer.length());
206 for (int i = onLine; i < current.length(); i++) {
207 ch = current.charAt(i);
208 if ('0' <= ch && '9' >= ch) {
209 lineNumberBuffer.append(ch);
213 int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
215 Hashtable attributes = new Hashtable();
217 current = current.replaceAll("\n", "");
218 current = current.replaceAll("<b>", "");
219 current = current.replaceAll("</b>", "");
220 MarkerUtilities.setMessage(attributes, current);
222 if (current.indexOf(PARSE_ERROR_STRING) != -1)
223 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
224 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
225 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
227 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
228 MarkerUtilities.setLineNumber(attributes, lineNumber);
229 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
234 public final void parse(final String s) throws CoreException {
235 final StringReader stream = new StringReader(s);
236 if (jj_input_stream == null) {
237 jj_input_stream = new SimpleCharStream(stream, 1, 1);
243 } catch (ParseException e) {
244 processParseException(e);
249 * Call the php parse command ( php -l -f <filename> )
250 * and create markers according to the external parser output
252 public static void phpExternalParse(final IFile file) {
253 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
254 final String filename = file.getLocation().toString();
256 final String[] arguments = { filename };
257 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
258 final String command = form.format(arguments);
260 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
263 // parse the buffer to find the errors and warnings
264 createMarkers(parserResult, file);
265 } catch (CoreException e) {
266 PHPeclipsePlugin.log(e);
271 * Put a new html block in the stack.
273 public static final void createNewHTMLCode() {
274 final int currentPosition = SimpleCharStream.getPosition();
275 if (currentPosition == htmlStart) {
278 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
279 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
282 private static final void parse() throws ParseException {
286 static final public void phpFile() throws ParseException {
290 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
328 case INTEGER_LITERAL:
329 case FLOATING_POINT_LITERAL:
345 } catch (TokenMgrError e) {
346 PHPeclipsePlugin.log(e);
347 errorStart = SimpleCharStream.getPosition();
348 errorEnd = errorStart + 1;
349 errorMessage = e.getMessage();
351 {if (true) throw generateParseException();}
356 * A php block is a <?= expression [;]?>
357 * or <?php somephpcode ?>
358 * or <? somephpcode ?>
360 static final public void PhpBlock() throws ParseException {
361 final int start = SimpleCharStream.getPosition();
362 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
402 case INTEGER_LITERAL:
403 case FLOATING_POINT_LITERAL:
410 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
413 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
415 jj_consume_token(PHPSTARTLONG);
418 jj_consume_token(PHPSTARTSHORT);
420 setMarker(fileToParse,
421 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
423 SimpleCharStream.getPosition(),
425 "Line " + token.beginLine);
426 } catch (CoreException e) {
427 PHPeclipsePlugin.log(e);
432 jj_consume_token(-1);
433 throw new ParseException();
442 jj_consume_token(PHPEND);
443 } catch (ParseException e) {
444 errorMessage = "'?>' expected";
446 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
447 errorEnd = SimpleCharStream.getPosition() + 1;
453 jj_consume_token(-1);
454 throw new ParseException();
458 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
459 final Expression expr;
460 final int pos = SimpleCharStream.getPosition();
461 PHPEchoBlock echoBlock;
462 jj_consume_token(PHPECHOSTART);
464 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
466 jj_consume_token(SEMICOLON);
472 jj_consume_token(PHPEND);
473 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
474 pushOnAstNodes(echoBlock);
475 {if (true) return echoBlock;}
476 throw new Error("Missing return statement in function");
479 static final public void Php() throws ParseException {
482 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
516 case INTEGER_LITERAL:
517 case FLOATING_POINT_LITERAL:
534 static final public ClassDeclaration ClassDeclaration() throws ParseException {
535 final ClassDeclaration classDeclaration;
536 final Token className;
537 Token superclassName = null;
539 jj_consume_token(CLASS);
541 pos = SimpleCharStream.getPosition();
542 className = jj_consume_token(IDENTIFIER);
543 } catch (ParseException e) {
544 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
546 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
547 errorEnd = SimpleCharStream.getPosition() + 1;
550 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
552 jj_consume_token(EXTENDS);
554 superclassName = jj_consume_token(IDENTIFIER);
555 } catch (ParseException e) {
556 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
558 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
559 errorEnd = SimpleCharStream.getPosition() + 1;
567 if (superclassName == null) {
568 classDeclaration = new ClassDeclaration(currentSegment,
569 className.image.toCharArray(),
573 classDeclaration = new ClassDeclaration(currentSegment,
574 className.image.toCharArray(),
575 superclassName.image.toCharArray(),
579 currentSegment.add(classDeclaration);
580 currentSegment = classDeclaration;
581 ClassBody(classDeclaration);
582 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
583 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
584 pushOnAstNodes(classDeclaration);
585 {if (true) return classDeclaration;}
586 throw new Error("Missing return statement in function");
589 static final public void ClassBody(ClassDeclaration classDeclaration) throws ParseException {
591 jj_consume_token(LBRACE);
592 } catch (ParseException e) {
593 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected";
595 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
596 errorEnd = SimpleCharStream.getPosition() + 1;
601 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
610 ClassBodyDeclaration(classDeclaration);
613 jj_consume_token(RBRACE);
614 } catch (ParseException e) {
615 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected";
617 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
618 errorEnd = SimpleCharStream.getPosition() + 1;
624 * A class can contain only methods and fields.
626 static final public void ClassBodyDeclaration(ClassDeclaration classDeclaration) throws ParseException {
627 MethodDeclaration method;
628 FieldDeclaration field;
629 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
631 method = MethodDeclaration();
632 method.setParent(classDeclaration);
635 field = FieldDeclaration();
639 jj_consume_token(-1);
640 throw new ParseException();
645 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
647 static final public FieldDeclaration FieldDeclaration() throws ParseException {
648 VariableDeclaration variableDeclaration;
649 VariableDeclaration[] list;
650 final ArrayList arrayList = new ArrayList();
651 final int pos = SimpleCharStream.getPosition();
652 jj_consume_token(VAR);
653 variableDeclaration = VariableDeclarator();
654 arrayList.add(variableDeclaration);
655 outlineInfo.addVariable(new String(variableDeclaration.name));
656 currentSegment.add(variableDeclaration);
659 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
667 jj_consume_token(COMMA);
668 variableDeclaration = VariableDeclarator();
669 arrayList.add(variableDeclaration);
670 outlineInfo.addVariable(new String(variableDeclaration.name));
671 currentSegment.add(variableDeclaration);
674 jj_consume_token(SEMICOLON);
675 } catch (ParseException e) {
676 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
678 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
679 errorEnd = SimpleCharStream.getPosition() + 1;
682 list = new VariableDeclaration[arrayList.size()];
683 arrayList.toArray(list);
684 {if (true) return new FieldDeclaration(list,
686 SimpleCharStream.getPosition(),
688 throw new Error("Missing return statement in function");
691 static final public VariableDeclaration VariableDeclarator() throws ParseException {
692 final String varName;
693 Expression initializer = null;
694 final int pos = SimpleCharStream.getPosition();
695 varName = VariableDeclaratorId();
696 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
698 jj_consume_token(ASSIGN);
700 initializer = VariableInitializer();
701 } catch (ParseException e) {
702 errorMessage = "Literal expression expected in variable initializer";
704 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
705 errorEnd = SimpleCharStream.getPosition() + 1;
713 if (initializer == null) {
714 {if (true) return new VariableDeclaration(currentSegment,
715 varName.toCharArray(),
717 SimpleCharStream.getPosition());}
719 {if (true) return new VariableDeclaration(currentSegment,
720 varName.toCharArray(),
723 throw new Error("Missing return statement in function");
728 * @return the variable name (with suffix)
730 static final public String VariableDeclaratorId() throws ParseException {
732 Expression expression;
733 final StringBuffer buff = new StringBuffer();
734 final int pos = SimpleCharStream.getPosition();
735 ConstantIdentifier ex;
746 ex = new ConstantIdentifier(expr.toCharArray(),
748 SimpleCharStream.getPosition());
749 expression = VariableSuffix(ex);
750 buff.append(expression.toStringExpression());
752 {if (true) return buff.toString();}
753 } catch (ParseException e) {
754 errorMessage = "'$' expected for variable identifier";
756 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
757 errorEnd = SimpleCharStream.getPosition() + 1;
760 throw new Error("Missing return statement in function");
763 static final public String Variable() throws ParseException {
764 final StringBuffer buff;
765 Expression expression = null;
768 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
770 token = jj_consume_token(DOLLAR_ID);
771 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
773 jj_consume_token(LBRACE);
774 expression = Expression();
775 jj_consume_token(RBRACE);
781 if (expression == null && !assigning) {
782 {if (true) return token.image.substring(1);}
784 buff = new StringBuffer(token.image);
786 buff.append(expression.toStringExpression());
788 {if (true) return buff.toString();}
791 jj_consume_token(DOLLAR);
792 expr = VariableName();
793 {if (true) return "$" + expr;}
797 jj_consume_token(-1);
798 throw new ParseException();
800 throw new Error("Missing return statement in function");
803 static final public String VariableName() throws ParseException {
804 final StringBuffer buff;
806 Expression expression = null;
808 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
810 jj_consume_token(LBRACE);
811 expression = Expression();
812 jj_consume_token(RBRACE);
813 buff = new StringBuffer("{");
814 buff.append(expression.toStringExpression());
816 {if (true) return buff.toString();}
819 token = jj_consume_token(IDENTIFIER);
820 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
822 jj_consume_token(LBRACE);
823 expression = Expression();
824 jj_consume_token(RBRACE);
830 if (expression == null) {
831 {if (true) return token.image;}
833 buff = new StringBuffer(token.image);
835 buff.append(expression.toStringExpression());
837 {if (true) return buff.toString();}
840 jj_consume_token(DOLLAR);
841 expr = VariableName();
842 buff = new StringBuffer('$');
844 {if (true) return buff.toString();}
847 token = jj_consume_token(DOLLAR_ID);
848 {if (true) return token.image;}
852 jj_consume_token(-1);
853 throw new ParseException();
855 throw new Error("Missing return statement in function");
858 static final public Expression VariableInitializer() throws ParseException {
859 final Expression expr;
861 final int pos = SimpleCharStream.getPosition();
862 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
866 case INTEGER_LITERAL:
867 case FLOATING_POINT_LITERAL:
870 {if (true) return expr;}
873 jj_consume_token(MINUS);
874 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
875 case INTEGER_LITERAL:
876 token = jj_consume_token(INTEGER_LITERAL);
878 case FLOATING_POINT_LITERAL:
879 token = jj_consume_token(FLOATING_POINT_LITERAL);
883 jj_consume_token(-1);
884 throw new ParseException();
886 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
888 SimpleCharStream.getPosition()),
893 jj_consume_token(PLUS);
894 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
895 case INTEGER_LITERAL:
896 token = jj_consume_token(INTEGER_LITERAL);
898 case FLOATING_POINT_LITERAL:
899 token = jj_consume_token(FLOATING_POINT_LITERAL);
903 jj_consume_token(-1);
904 throw new ParseException();
906 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
908 SimpleCharStream.getPosition()),
913 expr = ArrayDeclarator();
914 {if (true) return expr;}
917 token = jj_consume_token(IDENTIFIER);
918 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
922 jj_consume_token(-1);
923 throw new ParseException();
925 throw new Error("Missing return statement in function");
928 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
929 Expression expr,expr2;
931 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
933 jj_consume_token(ARRAYASSIGN);
934 expr2 = Expression();
935 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
941 {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());}
942 throw new Error("Missing return statement in function");
945 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
946 ArrayVariableDeclaration expr;
947 final ArrayList list = new ArrayList();
948 jj_consume_token(LPAREN);
949 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
965 case INTEGER_LITERAL:
966 case FLOATING_POINT_LITERAL:
971 expr = ArrayVariable();
980 jj_consume_token(COMMA);
981 expr = ArrayVariable();
989 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
991 jj_consume_token(COMMA);
998 jj_consume_token(RPAREN);
999 ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1001 {if (true) return vars;}
1002 throw new Error("Missing return statement in function");
1006 * A Method Declaration.
1007 * <b>function</b> MetodDeclarator() Block()
1009 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1010 final MethodDeclaration functionDeclaration;
1012 jj_consume_token(FUNCTION);
1014 functionDeclaration = MethodDeclarator();
1015 outlineInfo.addVariable(new String(functionDeclaration.name));
1016 } catch (ParseException e) {
1017 if (errorMessage != null) {if (true) throw e;}
1018 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1020 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1021 errorEnd = SimpleCharStream.getPosition() + 1;
1022 {if (true) throw e;}
1024 if (currentSegment != null) {
1025 currentSegment.add(functionDeclaration);
1026 currentSegment = functionDeclaration;
1029 functionDeclaration.statements = block.statements;
1030 if (currentSegment != null) {
1031 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1033 {if (true) return functionDeclaration;}
1034 throw new Error("Missing return statement in function");
1038 * A MethodDeclarator.
1039 * [&] IDENTIFIER(parameters ...).
1040 * @return a function description for the outline
1042 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1043 final Token identifier;
1044 Token reference = null;
1045 final Hashtable formalParameters;
1046 final int pos = SimpleCharStream.getPosition();
1047 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1049 reference = jj_consume_token(BIT_AND);
1052 jj_la1[21] = jj_gen;
1055 identifier = jj_consume_token(IDENTIFIER);
1056 formalParameters = FormalParameters();
1057 {if (true) return new MethodDeclaration(currentSegment,
1058 identifier.image.toCharArray(),
1062 SimpleCharStream.getPosition());}
1063 throw new Error("Missing return statement in function");
1067 * FormalParameters follows method identifier.
1068 * (FormalParameter())
1070 static final public Hashtable FormalParameters() throws ParseException {
1071 VariableDeclaration var;
1072 final Hashtable parameters = new Hashtable();
1074 jj_consume_token(LPAREN);
1075 } catch (ParseException e) {
1076 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1078 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1079 errorEnd = SimpleCharStream.getPosition() + 1;
1080 {if (true) throw e;}
1082 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1086 var = FormalParameter();
1087 parameters.put(new String(var.name),var);
1090 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1095 jj_la1[22] = jj_gen;
1098 jj_consume_token(COMMA);
1099 var = FormalParameter();
1100 parameters.put(new String(var.name),var);
1104 jj_la1[23] = jj_gen;
1108 jj_consume_token(RPAREN);
1109 } catch (ParseException e) {
1110 errorMessage = "')' expected";
1112 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1113 errorEnd = SimpleCharStream.getPosition() + 1;
1114 {if (true) throw e;}
1116 {if (true) return parameters;}
1117 throw new Error("Missing return statement in function");
1121 * A formal parameter.
1122 * $varname[=value] (,$varname[=value])
1124 static final public VariableDeclaration FormalParameter() throws ParseException {
1125 final VariableDeclaration variableDeclaration;
1127 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1129 token = jj_consume_token(BIT_AND);
1132 jj_la1[24] = jj_gen;
1135 variableDeclaration = VariableDeclarator();
1136 if (token != null) {
1137 variableDeclaration.setReference(true);
1139 {if (true) return variableDeclaration;}
1140 throw new Error("Missing return statement in function");
1143 static final public ConstantIdentifier Type() throws ParseException {
1145 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1147 jj_consume_token(STRING);
1148 pos = SimpleCharStream.getPosition();
1149 {if (true) return new ConstantIdentifier(Types.STRING,
1153 jj_consume_token(BOOL);
1154 pos = SimpleCharStream.getPosition();
1155 {if (true) return new ConstantIdentifier(Types.BOOL,
1159 jj_consume_token(BOOLEAN);
1160 pos = SimpleCharStream.getPosition();
1161 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1165 jj_consume_token(REAL);
1166 pos = SimpleCharStream.getPosition();
1167 {if (true) return new ConstantIdentifier(Types.REAL,
1171 jj_consume_token(DOUBLE);
1172 pos = SimpleCharStream.getPosition();
1173 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1177 jj_consume_token(FLOAT);
1178 pos = SimpleCharStream.getPosition();
1179 {if (true) return new ConstantIdentifier(Types.FLOAT,
1183 jj_consume_token(INT);
1184 pos = SimpleCharStream.getPosition();
1185 {if (true) return new ConstantIdentifier(Types.INT,
1189 jj_consume_token(INTEGER);
1190 pos = SimpleCharStream.getPosition();
1191 {if (true) return new ConstantIdentifier(Types.INTEGER,
1195 jj_consume_token(OBJECT);
1196 pos = SimpleCharStream.getPosition();
1197 {if (true) return new ConstantIdentifier(Types.OBJECT,
1201 jj_la1[25] = jj_gen;
1202 jj_consume_token(-1);
1203 throw new ParseException();
1205 throw new Error("Missing return statement in function");
1208 static final public Expression Expression() throws ParseException {
1209 final Expression expr;
1210 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1212 expr = PrintExpression();
1213 {if (true) return expr;}
1216 expr = ListExpression();
1217 {if (true) return expr;}
1220 jj_la1[26] = jj_gen;
1221 if (jj_2_3(2147483647)) {
1222 expr = varAssignation();
1223 {if (true) return expr;}
1225 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1239 case INTEGER_LITERAL:
1240 case FLOATING_POINT_LITERAL:
1241 case STRING_LITERAL:
1245 expr = ConditionalExpression();
1246 {if (true) return expr;}
1249 jj_la1[27] = jj_gen;
1250 jj_consume_token(-1);
1251 throw new ParseException();
1255 throw new Error("Missing return statement in function");
1259 * A Variable assignation.
1260 * varName (an assign operator) any expression
1262 static final public VarAssignation varAssignation() throws ParseException {
1264 final Expression expression;
1265 final int assignOperator;
1266 final int pos = SimpleCharStream.getPosition();
1267 varName = VariableDeclaratorId();
1268 assignOperator = AssignmentOperator();
1270 expression = Expression();
1271 } catch (ParseException e) {
1272 if (errorMessage != null) {
1273 {if (true) throw e;}
1275 errorMessage = "expression expected";
1277 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1278 errorEnd = SimpleCharStream.getPosition() + 1;
1279 {if (true) throw e;}
1281 {if (true) return new VarAssignation(varName.toCharArray(),
1285 SimpleCharStream.getPosition());}
1286 throw new Error("Missing return statement in function");
1289 static final public int AssignmentOperator() throws ParseException {
1290 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1292 jj_consume_token(ASSIGN);
1293 {if (true) return VarAssignation.EQUAL;}
1296 jj_consume_token(STARASSIGN);
1297 {if (true) return VarAssignation.STAR_EQUAL;}
1300 jj_consume_token(SLASHASSIGN);
1301 {if (true) return VarAssignation.SLASH_EQUAL;}
1304 jj_consume_token(REMASSIGN);
1305 {if (true) return VarAssignation.REM_EQUAL;}
1308 jj_consume_token(PLUSASSIGN);
1309 {if (true) return VarAssignation.PLUS_EQUAL;}
1312 jj_consume_token(MINUSASSIGN);
1313 {if (true) return VarAssignation.MINUS_EQUAL;}
1316 jj_consume_token(LSHIFTASSIGN);
1317 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1319 case RSIGNEDSHIFTASSIGN:
1320 jj_consume_token(RSIGNEDSHIFTASSIGN);
1321 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1324 jj_consume_token(ANDASSIGN);
1325 {if (true) return VarAssignation.AND_EQUAL;}
1328 jj_consume_token(XORASSIGN);
1329 {if (true) return VarAssignation.XOR_EQUAL;}
1332 jj_consume_token(ORASSIGN);
1333 {if (true) return VarAssignation.OR_EQUAL;}
1336 jj_consume_token(DOTASSIGN);
1337 {if (true) return VarAssignation.DOT_EQUAL;}
1340 jj_consume_token(TILDEEQUAL);
1341 {if (true) return VarAssignation.TILDE_EQUAL;}
1344 jj_la1[28] = jj_gen;
1345 jj_consume_token(-1);
1346 throw new ParseException();
1348 throw new Error("Missing return statement in function");
1351 static final public Expression ConditionalExpression() throws ParseException {
1352 final Expression expr;
1353 Expression expr2 = null;
1354 Expression expr3 = null;
1355 expr = ConditionalOrExpression();
1356 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1358 jj_consume_token(HOOK);
1359 expr2 = Expression();
1360 jj_consume_token(COLON);
1361 expr3 = ConditionalExpression();
1364 jj_la1[29] = jj_gen;
1367 if (expr3 == null) {
1368 {if (true) return expr;}
1370 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1371 throw new Error("Missing return statement in function");
1374 static final public Expression ConditionalOrExpression() throws ParseException {
1375 Expression expr,expr2;
1377 expr = ConditionalAndExpression();
1380 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1386 jj_la1[30] = jj_gen;
1389 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1391 jj_consume_token(OR_OR);
1392 operator = OperatorIds.OR_OR;
1395 jj_consume_token(_ORL);
1396 operator = OperatorIds.ORL;
1399 jj_la1[31] = jj_gen;
1400 jj_consume_token(-1);
1401 throw new ParseException();
1403 expr2 = ConditionalAndExpression();
1404 expr = new BinaryExpression(expr,expr2,operator);
1406 {if (true) return expr;}
1407 throw new Error("Missing return statement in function");
1410 static final public Expression ConditionalAndExpression() throws ParseException {
1411 Expression expr,expr2;
1413 expr = ConcatExpression();
1416 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1422 jj_la1[32] = jj_gen;
1425 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1427 jj_consume_token(AND_AND);
1428 operator = OperatorIds.AND_AND;
1431 jj_consume_token(_ANDL);
1432 operator = OperatorIds.ANDL;
1435 jj_la1[33] = jj_gen;
1436 jj_consume_token(-1);
1437 throw new ParseException();
1439 expr2 = ConcatExpression();
1440 expr = new BinaryExpression(expr,expr2,operator);
1442 {if (true) return expr;}
1443 throw new Error("Missing return statement in function");
1446 static final public Expression ConcatExpression() throws ParseException {
1447 Expression expr,expr2;
1448 expr = InclusiveOrExpression();
1451 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1456 jj_la1[34] = jj_gen;
1459 jj_consume_token(DOT);
1460 expr2 = InclusiveOrExpression();
1461 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1463 {if (true) return expr;}
1464 throw new Error("Missing return statement in function");
1467 static final public Expression InclusiveOrExpression() throws ParseException {
1468 Expression expr,expr2;
1469 expr = ExclusiveOrExpression();
1472 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1477 jj_la1[35] = jj_gen;
1480 jj_consume_token(BIT_OR);
1481 expr2 = ExclusiveOrExpression();
1482 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1484 {if (true) return expr;}
1485 throw new Error("Missing return statement in function");
1488 static final public Expression ExclusiveOrExpression() throws ParseException {
1489 Expression expr,expr2;
1490 expr = AndExpression();
1493 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1498 jj_la1[36] = jj_gen;
1501 jj_consume_token(XOR);
1502 expr2 = AndExpression();
1503 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1505 {if (true) return expr;}
1506 throw new Error("Missing return statement in function");
1509 static final public Expression AndExpression() throws ParseException {
1510 Expression expr,expr2;
1511 expr = EqualityExpression();
1514 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1519 jj_la1[37] = jj_gen;
1522 jj_consume_token(BIT_AND);
1523 expr2 = EqualityExpression();
1524 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1526 {if (true) return expr;}
1527 throw new Error("Missing return statement in function");
1530 static final public Expression EqualityExpression() throws ParseException {
1531 Expression expr,expr2;
1533 expr = RelationalExpression();
1536 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1540 case BANGDOUBLEEQUAL:
1545 jj_la1[38] = jj_gen;
1548 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1550 jj_consume_token(EQUAL_EQUAL);
1551 operator = OperatorIds.EQUAL_EQUAL;
1554 jj_consume_token(DIF);
1555 operator = OperatorIds.DIF;
1558 jj_consume_token(NOT_EQUAL);
1559 operator = OperatorIds.DIF;
1561 case BANGDOUBLEEQUAL:
1562 jj_consume_token(BANGDOUBLEEQUAL);
1563 operator = OperatorIds.BANG_EQUAL_EQUAL;
1566 jj_consume_token(TRIPLEEQUAL);
1567 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1570 jj_la1[39] = jj_gen;
1571 jj_consume_token(-1);
1572 throw new ParseException();
1575 expr2 = RelationalExpression();
1576 } catch (ParseException e) {
1577 if (errorMessage != null) {
1578 {if (true) throw e;}
1580 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1582 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1583 errorEnd = SimpleCharStream.getPosition() + 1;
1584 {if (true) throw e;}
1586 expr = new BinaryExpression(expr,expr2,operator);
1588 {if (true) return expr;}
1589 throw new Error("Missing return statement in function");
1592 static final public Expression RelationalExpression() throws ParseException {
1593 Expression expr,expr2;
1595 expr = ShiftExpression();
1598 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1606 jj_la1[40] = jj_gen;
1609 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1611 jj_consume_token(LT);
1612 operator = OperatorIds.LESS;
1615 jj_consume_token(GT);
1616 operator = OperatorIds.GREATER;
1619 jj_consume_token(LE);
1620 operator = OperatorIds.LESS_EQUAL;
1623 jj_consume_token(GE);
1624 operator = OperatorIds.GREATER_EQUAL;
1627 jj_la1[41] = jj_gen;
1628 jj_consume_token(-1);
1629 throw new ParseException();
1631 expr2 = ShiftExpression();
1632 expr = new BinaryExpression(expr,expr2,operator);
1634 {if (true) return expr;}
1635 throw new Error("Missing return statement in function");
1638 static final public Expression ShiftExpression() throws ParseException {
1639 Expression expr,expr2;
1641 expr = AdditiveExpression();
1644 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1647 case RUNSIGNEDSHIFT:
1651 jj_la1[42] = jj_gen;
1654 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1656 jj_consume_token(LSHIFT);
1657 operator = OperatorIds.LEFT_SHIFT;
1660 jj_consume_token(RSIGNEDSHIFT);
1661 operator = OperatorIds.RIGHT_SHIFT;
1663 case RUNSIGNEDSHIFT:
1664 jj_consume_token(RUNSIGNEDSHIFT);
1665 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1668 jj_la1[43] = jj_gen;
1669 jj_consume_token(-1);
1670 throw new ParseException();
1672 expr2 = AdditiveExpression();
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 AdditiveExpression() throws ParseException {
1680 Expression expr,expr2;
1682 expr = MultiplicativeExpression();
1685 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1691 jj_la1[44] = jj_gen;
1694 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1696 jj_consume_token(PLUS);
1697 operator = OperatorIds.PLUS;
1700 jj_consume_token(MINUS);
1701 operator = OperatorIds.MINUS;
1704 jj_la1[45] = jj_gen;
1705 jj_consume_token(-1);
1706 throw new ParseException();
1708 expr2 = MultiplicativeExpression();
1709 expr = new BinaryExpression(expr,expr2,operator);
1711 {if (true) return expr;}
1712 throw new Error("Missing return statement in function");
1715 static final public Expression MultiplicativeExpression() throws ParseException {
1716 Expression expr,expr2;
1719 expr = UnaryExpression();
1720 } catch (ParseException e) {
1721 if (errorMessage != null) {if (true) throw e;}
1722 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1724 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1725 errorEnd = SimpleCharStream.getPosition() + 1;
1726 {if (true) throw e;}
1730 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1737 jj_la1[46] = jj_gen;
1740 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1742 jj_consume_token(STAR);
1743 operator = OperatorIds.MULTIPLY;
1746 jj_consume_token(SLASH);
1747 operator = OperatorIds.DIVIDE;
1750 jj_consume_token(REMAINDER);
1751 operator = OperatorIds.REMAINDER;
1754 jj_la1[47] = jj_gen;
1755 jj_consume_token(-1);
1756 throw new ParseException();
1758 expr2 = UnaryExpression();
1759 expr = new BinaryExpression(expr,expr2,operator);
1761 {if (true) return expr;}
1762 throw new Error("Missing return statement in function");
1766 * An unary expression starting with @, & or nothing
1768 static final public Expression UnaryExpression() throws ParseException {
1770 final int pos = SimpleCharStream.getPosition();
1771 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1773 jj_consume_token(BIT_AND);
1774 expr = UnaryExpressionNoPrefix();
1775 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1789 case INTEGER_LITERAL:
1790 case FLOATING_POINT_LITERAL:
1791 case STRING_LITERAL:
1795 expr = AtUnaryExpression();
1796 {if (true) return expr;}
1799 jj_la1[48] = jj_gen;
1800 jj_consume_token(-1);
1801 throw new ParseException();
1803 throw new Error("Missing return statement in function");
1806 static final public Expression AtUnaryExpression() throws ParseException {
1808 final int pos = SimpleCharStream.getPosition();
1809 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1811 jj_consume_token(AT);
1812 expr = AtUnaryExpression();
1813 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1826 case INTEGER_LITERAL:
1827 case FLOATING_POINT_LITERAL:
1828 case STRING_LITERAL:
1832 expr = UnaryExpressionNoPrefix();
1833 {if (true) return expr;}
1836 jj_la1[49] = jj_gen;
1837 jj_consume_token(-1);
1838 throw new ParseException();
1840 throw new Error("Missing return statement in function");
1843 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1846 final int pos = SimpleCharStream.getPosition();
1847 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1850 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1852 jj_consume_token(PLUS);
1853 operator = OperatorIds.PLUS;
1856 jj_consume_token(MINUS);
1857 operator = OperatorIds.MINUS;
1860 jj_la1[50] = jj_gen;
1861 jj_consume_token(-1);
1862 throw new ParseException();
1864 expr = UnaryExpression();
1865 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1869 expr = PreIncDecExpression();
1870 {if (true) return expr;}
1879 case INTEGER_LITERAL:
1880 case FLOATING_POINT_LITERAL:
1881 case STRING_LITERAL:
1885 expr = UnaryExpressionNotPlusMinus();
1886 {if (true) return expr;}
1889 jj_la1[51] = jj_gen;
1890 jj_consume_token(-1);
1891 throw new ParseException();
1893 throw new Error("Missing return statement in function");
1896 static final public Expression PreIncDecExpression() throws ParseException {
1897 final Expression expr;
1899 final int pos = SimpleCharStream.getPosition();
1900 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1902 jj_consume_token(INCR);
1903 operator = OperatorIds.PLUS_PLUS;
1906 jj_consume_token(DECR);
1907 operator = OperatorIds.MINUS_MINUS;
1910 jj_la1[52] = jj_gen;
1911 jj_consume_token(-1);
1912 throw new ParseException();
1914 expr = PrimaryExpression();
1915 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1916 throw new Error("Missing return statement in function");
1919 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
1921 final int pos = SimpleCharStream.getPosition();
1922 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1924 jj_consume_token(BANG);
1925 expr = UnaryExpression();
1926 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1929 jj_la1[53] = jj_gen;
1930 if (jj_2_4(2147483647)) {
1931 expr = CastExpression();
1932 {if (true) return expr;}
1934 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1940 expr = PostfixExpression();
1941 {if (true) return expr;}
1946 case INTEGER_LITERAL:
1947 case FLOATING_POINT_LITERAL:
1948 case STRING_LITERAL:
1950 {if (true) return expr;}
1953 jj_consume_token(LPAREN);
1954 expr = Expression();
1956 jj_consume_token(RPAREN);
1957 } catch (ParseException e) {
1958 errorMessage = "')' expected";
1960 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1961 errorEnd = SimpleCharStream.getPosition() + 1;
1962 {if (true) throw e;}
1964 {if (true) return expr;}
1967 jj_la1[54] = jj_gen;
1968 jj_consume_token(-1);
1969 throw new ParseException();
1973 throw new Error("Missing return statement in function");
1976 static final public CastExpression CastExpression() throws ParseException {
1977 final ConstantIdentifier type;
1978 final Expression expr;
1979 final int pos = SimpleCharStream.getPosition();
1980 jj_consume_token(LPAREN);
1981 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1994 jj_consume_token(ARRAY);
1995 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
1998 jj_la1[55] = jj_gen;
1999 jj_consume_token(-1);
2000 throw new ParseException();
2002 jj_consume_token(RPAREN);
2003 expr = UnaryExpression();
2004 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2005 throw new Error("Missing return statement in function");
2008 static final public Expression PostfixExpression() throws ParseException {
2011 final int pos = SimpleCharStream.getPosition();
2012 expr = PrimaryExpression();
2013 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2016 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2018 jj_consume_token(INCR);
2019 operator = OperatorIds.PLUS_PLUS;
2022 jj_consume_token(DECR);
2023 operator = OperatorIds.MINUS_MINUS;
2026 jj_la1[56] = jj_gen;
2027 jj_consume_token(-1);
2028 throw new ParseException();
2032 jj_la1[57] = jj_gen;
2035 if (operator == -1) {
2036 {if (true) return expr;}
2038 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2039 throw new Error("Missing return statement in function");
2042 static final public Expression PrimaryExpression() throws ParseException {
2043 final Token identifier;
2045 final int pos = SimpleCharStream.getPosition();
2047 identifier = jj_consume_token(IDENTIFIER);
2048 jj_consume_token(STATICCLASSACCESS);
2049 expr = ClassIdentifier();
2050 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2052 SimpleCharStream.getPosition()),
2054 ClassAccess.STATIC);
2057 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2064 jj_la1[58] = jj_gen;
2067 expr = PrimarySuffix(expr);
2069 {if (true) return expr;}
2071 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2076 expr = PrimaryPrefix();
2079 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2086 jj_la1[59] = jj_gen;
2089 expr = PrimarySuffix(expr);
2091 {if (true) return expr;}
2094 expr = ArrayDeclarator();
2095 {if (true) return expr;}
2098 jj_la1[60] = jj_gen;
2099 jj_consume_token(-1);
2100 throw new ParseException();
2103 throw new Error("Missing return statement in function");
2106 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2107 final ArrayVariableDeclaration[] vars;
2108 final int pos = SimpleCharStream.getPosition();
2109 jj_consume_token(ARRAY);
2110 vars = ArrayInitializer();
2111 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2112 throw new Error("Missing return statement in function");
2115 static final public Expression PrimaryPrefix() throws ParseException {
2116 final Expression expr;
2119 final int pos = SimpleCharStream.getPosition();
2120 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2122 token = jj_consume_token(IDENTIFIER);
2123 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2125 SimpleCharStream.getPosition());}
2128 jj_consume_token(NEW);
2129 expr = ClassIdentifier();
2130 {if (true) return new PrefixedUnaryExpression(expr,
2136 var = VariableDeclaratorId();
2137 {if (true) return new ConstantIdentifier(var.toCharArray(),
2139 SimpleCharStream.getPosition());}
2142 jj_la1[61] = jj_gen;
2143 jj_consume_token(-1);
2144 throw new ParseException();
2146 throw new Error("Missing return statement in function");
2149 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2151 final StringBuffer buff;
2152 final int pos = SimpleCharStream.getPosition();
2153 jj_consume_token(NEW);
2154 expr = ClassIdentifier();
2155 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2161 buff = new StringBuffer(expr.toStringExpression());
2162 expr = PrimaryExpression();
2163 buff.append(expr.toStringExpression());
2164 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2166 SimpleCharStream.getPosition());
2169 jj_la1[62] = jj_gen;
2172 {if (true) return new PrefixedUnaryExpression(expr,
2175 throw new Error("Missing return statement in function");
2178 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2181 final int pos = SimpleCharStream.getPosition();
2182 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2184 token = jj_consume_token(IDENTIFIER);
2185 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2187 SimpleCharStream.getPosition());}
2191 expr = VariableDeclaratorId();
2192 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2194 SimpleCharStream.getPosition());}
2197 jj_la1[63] = jj_gen;
2198 jj_consume_token(-1);
2199 throw new ParseException();
2201 throw new Error("Missing return statement in function");
2204 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2205 final AbstractSuffixExpression expr;
2206 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2208 expr = Arguments(prefix);
2209 {if (true) return expr;}
2213 expr = VariableSuffix(prefix);
2214 {if (true) return expr;}
2217 jj_la1[64] = jj_gen;
2218 jj_consume_token(-1);
2219 throw new ParseException();
2221 throw new Error("Missing return statement in function");
2224 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2226 final int pos = SimpleCharStream.getPosition();
2227 Expression expression = null;
2228 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2230 jj_consume_token(CLASSACCESS);
2232 expr = VariableName();
2233 } catch (ParseException e) {
2234 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2236 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2237 errorEnd = SimpleCharStream.getPosition() + 1;
2238 {if (true) throw e;}
2240 {if (true) return new ClassAccess(prefix,
2241 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2242 ClassAccess.NORMAL);}
2245 jj_consume_token(LBRACKET);
2246 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2271 case INTEGER_LITERAL:
2272 case FLOATING_POINT_LITERAL:
2273 case STRING_LITERAL:
2277 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2293 case INTEGER_LITERAL:
2294 case FLOATING_POINT_LITERAL:
2295 case STRING_LITERAL:
2299 expression = Expression();
2310 expression = Type();
2313 jj_la1[65] = jj_gen;
2314 jj_consume_token(-1);
2315 throw new ParseException();
2319 jj_la1[66] = jj_gen;
2323 jj_consume_token(RBRACKET);
2324 } catch (ParseException e) {
2325 errorMessage = "']' expected";
2327 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2328 errorEnd = SimpleCharStream.getPosition() + 1;
2329 {if (true) throw e;}
2331 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2334 jj_la1[67] = jj_gen;
2335 jj_consume_token(-1);
2336 throw new ParseException();
2338 throw new Error("Missing return statement in function");
2341 static final public Literal Literal() throws ParseException {
2344 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2345 case INTEGER_LITERAL:
2346 token = jj_consume_token(INTEGER_LITERAL);
2347 pos = SimpleCharStream.getPosition();
2348 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2350 case FLOATING_POINT_LITERAL:
2351 token = jj_consume_token(FLOATING_POINT_LITERAL);
2352 pos = SimpleCharStream.getPosition();
2353 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2355 case STRING_LITERAL:
2356 token = jj_consume_token(STRING_LITERAL);
2357 pos = SimpleCharStream.getPosition();
2358 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length());}
2361 jj_consume_token(TRUE);
2362 pos = SimpleCharStream.getPosition();
2363 {if (true) return new TrueLiteral(pos-4,pos);}
2366 jj_consume_token(FALSE);
2367 pos = SimpleCharStream.getPosition();
2368 {if (true) return new FalseLiteral(pos-4,pos);}
2371 jj_consume_token(NULL);
2372 pos = SimpleCharStream.getPosition();
2373 {if (true) return new NullLiteral(pos-4,pos);}
2376 jj_la1[68] = jj_gen;
2377 jj_consume_token(-1);
2378 throw new ParseException();
2380 throw new Error("Missing return statement in function");
2383 static final public FunctionCall Arguments(Expression func) throws ParseException {
2384 Expression[] args = null;
2385 jj_consume_token(LPAREN);
2386 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2402 case INTEGER_LITERAL:
2403 case FLOATING_POINT_LITERAL:
2404 case STRING_LITERAL:
2408 args = ArgumentList();
2411 jj_la1[69] = jj_gen;
2415 jj_consume_token(RPAREN);
2416 } catch (ParseException e) {
2417 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2419 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2420 errorEnd = SimpleCharStream.getPosition() + 1;
2421 {if (true) throw e;}
2423 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2424 throw new Error("Missing return statement in function");
2428 * An argument list is a list of arguments separated by comma :
2429 * argumentDeclaration() (, argumentDeclaration)*
2430 * @return an array of arguments
2432 static final public Expression[] ArgumentList() throws ParseException {
2434 final ArrayList list = new ArrayList();
2439 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2444 jj_la1[70] = jj_gen;
2447 jj_consume_token(COMMA);
2451 } catch (ParseException e) {
2452 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2454 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2455 errorEnd = SimpleCharStream.getPosition() + 1;
2456 {if (true) throw e;}
2459 Expression[] arguments = new Expression[list.size()];
2460 list.toArray(arguments);
2461 {if (true) return arguments;}
2462 throw new Error("Missing return statement in function");
2466 * A Statement without break.
2468 static final public Statement StatementNoBreak() throws ParseException {
2469 final Statement statement;
2472 statement = Expression();
2474 jj_consume_token(SEMICOLON);
2475 } catch (ParseException e) {
2476 if (e.currentToken.next.kind != 4) {
2477 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2479 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2480 errorEnd = SimpleCharStream.getPosition() + 1;
2481 {if (true) throw e;}
2484 {if (true) return statement;}
2485 } else if (jj_2_7(2)) {
2486 statement = LabeledStatement();
2487 {if (true) return statement;}
2489 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2491 statement = Block();
2492 {if (true) return statement;}
2495 statement = EmptyStatement();
2496 {if (true) return statement;}
2505 statement = StatementExpression();
2507 jj_consume_token(SEMICOLON);
2508 } catch (ParseException e) {
2509 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2511 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2512 errorEnd = SimpleCharStream.getPosition() + 1;
2513 {if (true) throw e;}
2515 {if (true) return statement;}
2518 statement = SwitchStatement();
2519 {if (true) return statement;}
2522 statement = IfStatement();
2523 {if (true) return statement;}
2526 statement = WhileStatement();
2527 {if (true) return statement;}
2530 statement = DoStatement();
2531 {if (true) return statement;}
2534 statement = ForStatement();
2535 {if (true) return statement;}
2538 statement = ForeachStatement();
2539 {if (true) return statement;}
2542 statement = ContinueStatement();
2543 {if (true) return statement;}
2546 statement = ReturnStatement();
2547 {if (true) return statement;}
2550 statement = EchoStatement();
2551 {if (true) return statement;}
2558 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2560 token = jj_consume_token(AT);
2563 jj_la1[71] = jj_gen;
2566 statement = IncludeStatement();
2567 if (token != null) {
2568 ((InclusionStatement)statement).silent = true;
2570 {if (true) return statement;}
2573 statement = StaticStatement();
2574 {if (true) return statement;}
2577 statement = GlobalStatement();
2578 {if (true) return statement;}
2581 jj_la1[72] = jj_gen;
2582 jj_consume_token(-1);
2583 throw new ParseException();
2586 throw new Error("Missing return statement in function");
2590 * A Normal statement.
2592 static final public Statement Statement() throws ParseException {
2593 final Statement statement;
2594 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2625 case INTEGER_LITERAL:
2626 case FLOATING_POINT_LITERAL:
2627 case STRING_LITERAL:
2633 statement = StatementNoBreak();
2634 {if (true) return statement;}
2637 statement = BreakStatement();
2638 {if (true) return statement;}
2641 jj_la1[73] = jj_gen;
2642 jj_consume_token(-1);
2643 throw new ParseException();
2645 throw new Error("Missing return statement in function");
2649 * An html block inside a php syntax.
2651 static final public HTMLBlock htmlBlock() throws ParseException {
2652 final int startIndex = nodePtr;
2653 AstNode[] blockNodes;
2655 jj_consume_token(PHPEND);
2658 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2663 jj_la1[74] = jj_gen;
2669 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2671 jj_consume_token(PHPSTARTLONG);
2674 jj_consume_token(PHPSTARTSHORT);
2677 jj_la1[75] = jj_gen;
2678 jj_consume_token(-1);
2679 throw new ParseException();
2681 } catch (ParseException e) {
2682 errorMessage = "End of file unexpected, '<?php' expected";
2684 errorStart = SimpleCharStream.getPosition();
2685 errorEnd = SimpleCharStream.getPosition();
2686 {if (true) throw e;}
2688 nbNodes = nodePtr-startIndex - 1;
2689 blockNodes = new AstNode[nbNodes];
2690 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2691 {if (true) return new HTMLBlock(nodes);}
2692 throw new Error("Missing return statement in function");
2696 * An include statement. It's "include" an expression;
2698 static final public InclusionStatement IncludeStatement() throws ParseException {
2699 final Expression expr;
2701 final int pos = SimpleCharStream.getPosition();
2702 final InclusionStatement inclusionStatement;
2703 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2705 jj_consume_token(REQUIRE);
2706 keyword = InclusionStatement.REQUIRE;
2709 jj_consume_token(REQUIRE_ONCE);
2710 keyword = InclusionStatement.REQUIRE_ONCE;
2713 jj_consume_token(INCLUDE);
2714 keyword = InclusionStatement.INCLUDE;
2717 jj_consume_token(INCLUDE_ONCE);
2718 keyword = InclusionStatement.INCLUDE_ONCE;
2721 jj_la1[76] = jj_gen;
2722 jj_consume_token(-1);
2723 throw new ParseException();
2726 expr = Expression();
2727 } catch (ParseException e) {
2728 if (errorMessage != null) {
2729 {if (true) throw e;}
2731 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2733 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2734 errorEnd = SimpleCharStream.getPosition() + 1;
2735 {if (true) throw e;}
2737 inclusionStatement = new InclusionStatement(currentSegment,
2741 currentSegment.add(inclusionStatement);
2743 jj_consume_token(SEMICOLON);
2744 } catch (ParseException e) {
2745 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2747 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2748 errorEnd = SimpleCharStream.getPosition() + 1;
2749 {if (true) throw e;}
2751 {if (true) return inclusionStatement;}
2752 throw new Error("Missing return statement in function");
2755 static final public PrintExpression PrintExpression() throws ParseException {
2756 final Expression expr;
2757 final int pos = SimpleCharStream.getPosition();
2758 jj_consume_token(PRINT);
2759 expr = Expression();
2760 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2761 throw new Error("Missing return statement in function");
2764 static final public ListExpression ListExpression() throws ParseException {
2766 Expression expression = null;
2767 ArrayList list = new ArrayList();
2768 final int pos = SimpleCharStream.getPosition();
2769 jj_consume_token(LIST);
2771 jj_consume_token(LPAREN);
2772 } catch (ParseException e) {
2773 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2775 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2776 errorEnd = SimpleCharStream.getPosition() + 1;
2777 {if (true) throw e;}
2779 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2782 expr = VariableDeclaratorId();
2786 jj_la1[77] = jj_gen;
2789 if (expr == null) list.add(null);
2792 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2797 jj_la1[78] = jj_gen;
2801 jj_consume_token(COMMA);
2802 } catch (ParseException e) {
2803 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2805 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2806 errorEnd = SimpleCharStream.getPosition() + 1;
2807 {if (true) throw e;}
2809 expr = VariableDeclaratorId();
2813 jj_consume_token(RPAREN);
2814 } catch (ParseException e) {
2815 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2817 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2818 errorEnd = SimpleCharStream.getPosition() + 1;
2819 {if (true) throw e;}
2821 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2823 jj_consume_token(ASSIGN);
2824 expression = Expression();
2825 String[] strings = new String[list.size()];
2826 list.toArray(strings);
2827 {if (true) return new ListExpression(strings,
2830 SimpleCharStream.getPosition());}
2833 jj_la1[79] = jj_gen;
2836 String[] strings = new String[list.size()];
2837 list.toArray(strings);
2838 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2839 throw new Error("Missing return statement in function");
2843 * An echo statement.
2844 * echo anyexpression (, otherexpression)*
2846 static final public EchoStatement EchoStatement() throws ParseException {
2847 final ArrayList expressions = new ArrayList();
2849 final int pos = SimpleCharStream.getPosition();
2850 jj_consume_token(ECHO);
2851 expr = Expression();
2852 expressions.add(expr);
2855 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2860 jj_la1[80] = jj_gen;
2863 jj_consume_token(COMMA);
2864 expr = Expression();
2865 expressions.add(expr);
2868 jj_consume_token(SEMICOLON);
2869 Expression[] exprs = new Expression[expressions.size()];
2870 expressions.toArray(exprs);
2871 {if (true) return new EchoStatement(exprs,pos);}
2872 } catch (ParseException e) {
2873 if (e.currentToken.next.kind != 4) {
2874 errorMessage = "';' expected after 'echo' statement";
2876 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2877 errorEnd = SimpleCharStream.getPosition() + 1;
2878 {if (true) throw e;}
2881 throw new Error("Missing return statement in function");
2884 static final public GlobalStatement GlobalStatement() throws ParseException {
2885 final int pos = SimpleCharStream.getPosition();
2887 ArrayList vars = new ArrayList();
2888 GlobalStatement global;
2889 jj_consume_token(GLOBAL);
2890 expr = VariableDeclaratorId();
2894 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2899 jj_la1[81] = jj_gen;
2902 jj_consume_token(COMMA);
2903 expr = VariableDeclaratorId();
2907 jj_consume_token(SEMICOLON);
2908 String[] strings = new String[vars.size()];
2909 vars.toArray(strings);
2910 global = new GlobalStatement(currentSegment,
2913 SimpleCharStream.getPosition());
2914 currentSegment.add(global);
2915 {if (true) return global;}
2916 } catch (ParseException e) {
2917 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2919 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2920 errorEnd = SimpleCharStream.getPosition() + 1;
2921 {if (true) throw e;}
2923 throw new Error("Missing return statement in function");
2926 static final public StaticStatement StaticStatement() throws ParseException {
2927 final int pos = SimpleCharStream.getPosition();
2928 final ArrayList vars = new ArrayList();
2929 VariableDeclaration expr;
2930 jj_consume_token(STATIC);
2931 expr = VariableDeclarator();
2932 vars.add(new String(expr.name));
2935 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2940 jj_la1[82] = jj_gen;
2943 jj_consume_token(COMMA);
2944 expr = VariableDeclarator();
2945 vars.add(new String(expr.name));
2948 jj_consume_token(SEMICOLON);
2949 String[] strings = new String[vars.size()];
2950 vars.toArray(strings);
2951 {if (true) return new StaticStatement(strings,
2953 SimpleCharStream.getPosition());}
2954 } catch (ParseException e) {
2955 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2957 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2958 errorEnd = SimpleCharStream.getPosition() + 1;
2959 {if (true) throw e;}
2961 throw new Error("Missing return statement in function");
2964 static final public LabeledStatement LabeledStatement() throws ParseException {
2965 final int pos = SimpleCharStream.getPosition();
2967 final Statement statement;
2968 label = jj_consume_token(IDENTIFIER);
2969 jj_consume_token(COLON);
2970 statement = Statement();
2971 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
2972 throw new Error("Missing return statement in function");
2982 static final public Block Block() throws ParseException {
2983 final int pos = SimpleCharStream.getPosition();
2984 final ArrayList list = new ArrayList();
2985 Statement statement;
2987 jj_consume_token(LBRACE);
2988 } catch (ParseException e) {
2989 errorMessage = "'{' expected";
2991 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2992 errorEnd = SimpleCharStream.getPosition() + 1;
2993 {if (true) throw e;}
2997 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3032 case INTEGER_LITERAL:
3033 case FLOATING_POINT_LITERAL:
3034 case STRING_LITERAL:
3043 jj_la1[83] = jj_gen;
3046 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3080 case INTEGER_LITERAL:
3081 case FLOATING_POINT_LITERAL:
3082 case STRING_LITERAL:
3088 statement = BlockStatement();
3089 list.add(statement);
3092 statement = htmlBlock();
3093 list.add(statement);
3096 jj_la1[84] = jj_gen;
3097 jj_consume_token(-1);
3098 throw new ParseException();
3102 jj_consume_token(RBRACE);
3103 } catch (ParseException e) {
3104 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3106 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3107 errorEnd = SimpleCharStream.getPosition() + 1;
3108 {if (true) throw e;}
3110 Statement[] statements = new Statement[list.size()];
3111 list.toArray(statements);
3112 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3113 throw new Error("Missing return statement in function");
3116 static final public Statement BlockStatement() throws ParseException {
3117 final Statement statement;
3118 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3150 case INTEGER_LITERAL:
3151 case FLOATING_POINT_LITERAL:
3152 case STRING_LITERAL:
3158 statement = Statement();
3159 {if (true) return statement;}
3162 statement = ClassDeclaration();
3163 {if (true) return statement;}
3166 statement = MethodDeclaration();
3167 {if (true) return statement;}
3170 jj_la1[85] = jj_gen;
3171 jj_consume_token(-1);
3172 throw new ParseException();
3174 throw new Error("Missing return statement in function");
3178 * A Block statement that will not contain any 'break'
3180 static final public Statement BlockStatementNoBreak() throws ParseException {
3181 final Statement statement;
3182 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3213 case INTEGER_LITERAL:
3214 case FLOATING_POINT_LITERAL:
3215 case STRING_LITERAL:
3221 statement = StatementNoBreak();
3222 {if (true) return statement;}
3225 statement = ClassDeclaration();
3226 {if (true) return statement;}
3229 statement = MethodDeclaration();
3230 {if (true) return statement;}
3233 jj_la1[86] = jj_gen;
3234 jj_consume_token(-1);
3235 throw new ParseException();
3237 throw new Error("Missing return statement in function");
3240 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3241 final ArrayList list = new ArrayList();
3242 VariableDeclaration var;
3243 var = LocalVariableDeclarator();
3247 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3252 jj_la1[87] = jj_gen;
3255 jj_consume_token(COMMA);
3256 var = LocalVariableDeclarator();
3259 VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3261 {if (true) return vars;}
3262 throw new Error("Missing return statement in function");
3265 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3266 final String varName;
3267 Expression initializer = null;
3268 final int pos = SimpleCharStream.getPosition();
3269 varName = VariableDeclaratorId();
3270 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3272 jj_consume_token(ASSIGN);
3273 initializer = Expression();
3276 jj_la1[88] = jj_gen;
3279 if (initializer == null) {
3280 {if (true) return new VariableDeclaration(currentSegment,
3281 varName.toCharArray(),
3283 SimpleCharStream.getPosition());}
3285 {if (true) return new VariableDeclaration(currentSegment,
3286 varName.toCharArray(),
3289 throw new Error("Missing return statement in function");
3292 static final public EmptyStatement EmptyStatement() throws ParseException {
3294 jj_consume_token(SEMICOLON);
3295 pos = SimpleCharStream.getPosition();
3296 {if (true) return new EmptyStatement(pos-1,pos);}
3297 throw new Error("Missing return statement in function");
3300 static final public Statement StatementExpression() throws ParseException {
3301 Expression expr,expr2;
3303 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3306 expr = PreIncDecExpression();
3307 {if (true) return expr;}
3314 expr = PrimaryExpression();
3315 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3330 case RSIGNEDSHIFTASSIGN:
3331 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3333 jj_consume_token(INCR);
3334 {if (true) return new PostfixedUnaryExpression(expr,
3335 OperatorIds.PLUS_PLUS,
3336 SimpleCharStream.getPosition());}
3339 jj_consume_token(DECR);
3340 {if (true) return new PostfixedUnaryExpression(expr,
3341 OperatorIds.MINUS_MINUS,
3342 SimpleCharStream.getPosition());}
3356 case RSIGNEDSHIFTASSIGN:
3357 operator = AssignmentOperator();
3358 expr2 = Expression();
3359 {if (true) return new BinaryExpression(expr,expr2,operator);}
3362 jj_la1[89] = jj_gen;
3363 jj_consume_token(-1);
3364 throw new ParseException();
3368 jj_la1[90] = jj_gen;
3371 {if (true) return expr;}
3374 jj_la1[91] = jj_gen;
3375 jj_consume_token(-1);
3376 throw new ParseException();
3378 throw new Error("Missing return statement in function");
3381 static final public SwitchStatement SwitchStatement() throws ParseException {
3382 final Expression variable;
3383 final AbstractCase[] cases;
3384 final int pos = SimpleCharStream.getPosition();
3385 jj_consume_token(SWITCH);
3387 jj_consume_token(LPAREN);
3388 } catch (ParseException e) {
3389 errorMessage = "'(' expected after 'switch'";
3391 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3392 errorEnd = SimpleCharStream.getPosition() + 1;
3393 {if (true) throw e;}
3396 variable = Expression();
3397 } catch (ParseException e) {
3398 if (errorMessage != null) {
3399 {if (true) throw e;}
3401 errorMessage = "expression expected";
3403 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3404 errorEnd = SimpleCharStream.getPosition() + 1;
3405 {if (true) throw e;}
3408 jj_consume_token(RPAREN);
3409 } catch (ParseException e) {
3410 errorMessage = "')' expected";
3412 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3413 errorEnd = SimpleCharStream.getPosition() + 1;
3414 {if (true) throw e;}
3416 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3418 cases = switchStatementBrace();
3421 cases = switchStatementColon(pos, pos + 6);
3424 jj_la1[92] = jj_gen;
3425 jj_consume_token(-1);
3426 throw new ParseException();
3428 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3429 throw new Error("Missing return statement in function");
3432 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3434 final ArrayList cases = new ArrayList();
3435 jj_consume_token(LBRACE);
3438 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3444 jj_la1[93] = jj_gen;
3447 cas = switchLabel0();
3451 jj_consume_token(RBRACE);
3452 AbstractCase[] abcase = new AbstractCase[cases.size()];
3453 cases.toArray(abcase);
3454 {if (true) return abcase;}
3455 } catch (ParseException e) {
3456 errorMessage = "'}' expected";
3458 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3459 errorEnd = SimpleCharStream.getPosition() + 1;
3460 {if (true) throw e;}
3462 throw new Error("Missing return statement in function");
3466 * A Switch statement with : ... endswitch;
3467 * @param start the begin offset of the switch
3468 * @param end the end offset of the switch
3470 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3472 final ArrayList cases = new ArrayList();
3473 jj_consume_token(COLON);
3475 setMarker(fileToParse,
3476 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3480 "Line " + token.beginLine);
3481 } catch (CoreException e) {
3482 PHPeclipsePlugin.log(e);
3486 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3492 jj_la1[94] = jj_gen;
3495 cas = switchLabel0();
3499 jj_consume_token(ENDSWITCH);
3500 } catch (ParseException e) {
3501 errorMessage = "'endswitch' expected";
3503 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3504 errorEnd = SimpleCharStream.getPosition() + 1;
3505 {if (true) throw e;}
3508 jj_consume_token(SEMICOLON);
3509 AbstractCase[] abcase = new AbstractCase[cases.size()];
3510 cases.toArray(abcase);
3511 {if (true) return abcase;}
3512 } catch (ParseException e) {
3513 errorMessage = "';' expected after 'endswitch' keyword";
3515 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3516 errorEnd = SimpleCharStream.getPosition() + 1;
3517 {if (true) throw e;}
3519 throw new Error("Missing return statement in function");
3522 static final public AbstractCase switchLabel0() throws ParseException {
3523 final Expression expr;
3524 Statement statement;
3525 final ArrayList stmts = new ArrayList();
3526 final int pos = SimpleCharStream.getPosition();
3527 expr = SwitchLabel();
3530 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3564 case INTEGER_LITERAL:
3565 case FLOATING_POINT_LITERAL:
3566 case STRING_LITERAL:
3575 jj_la1[95] = jj_gen;
3578 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3611 case INTEGER_LITERAL:
3612 case FLOATING_POINT_LITERAL:
3613 case STRING_LITERAL:
3619 statement = BlockStatementNoBreak();
3620 stmts.add(statement);
3623 statement = htmlBlock();
3624 stmts.add(statement);
3627 jj_la1[96] = jj_gen;
3628 jj_consume_token(-1);
3629 throw new ParseException();
3632 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3634 statement = BreakStatement();
3635 stmts.add(statement);
3638 jj_la1[97] = jj_gen;
3641 Statement[] stmtsArray = new Statement[stmts.size()];
3642 stmts.toArray(stmtsArray);
3643 if (expr == null) {//it's a default
3644 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3646 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3647 throw new Error("Missing return statement in function");
3652 * case Expression() :
3654 * @return the if it was a case and null if not
3656 static final public Expression SwitchLabel() throws ParseException {
3657 final Expression expr;
3658 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3660 token = jj_consume_token(CASE);
3662 expr = Expression();
3663 } catch (ParseException e) {
3664 if (errorMessage != null) {if (true) throw e;}
3665 errorMessage = "expression expected after 'case' keyword";
3667 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3668 errorEnd = SimpleCharStream.getPosition() + 1;
3669 {if (true) throw e;}
3672 jj_consume_token(COLON);
3673 {if (true) return expr;}
3674 } catch (ParseException e) {
3675 errorMessage = "':' expected after case expression";
3677 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3678 errorEnd = SimpleCharStream.getPosition() + 1;
3679 {if (true) throw e;}
3683 token = jj_consume_token(_DEFAULT);
3685 jj_consume_token(COLON);
3686 {if (true) return null;}
3687 } catch (ParseException e) {
3688 errorMessage = "':' expected after 'default' keyword";
3690 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3691 errorEnd = SimpleCharStream.getPosition() + 1;
3692 {if (true) throw e;}
3696 jj_la1[98] = jj_gen;
3697 jj_consume_token(-1);
3698 throw new ParseException();
3700 throw new Error("Missing return statement in function");
3703 static final public Break BreakStatement() throws ParseException {
3704 Expression expression = null;
3705 final int start = SimpleCharStream.getPosition();
3706 jj_consume_token(BREAK);
3707 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3723 case INTEGER_LITERAL:
3724 case FLOATING_POINT_LITERAL:
3725 case STRING_LITERAL:
3729 expression = Expression();
3732 jj_la1[99] = jj_gen;
3736 jj_consume_token(SEMICOLON);
3737 } catch (ParseException e) {
3738 errorMessage = "';' expected after 'break' keyword";
3740 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3741 errorEnd = SimpleCharStream.getPosition() + 1;
3742 {if (true) throw e;}
3744 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3745 throw new Error("Missing return statement in function");
3748 static final public IfStatement IfStatement() throws ParseException {
3749 final int pos = SimpleCharStream.getPosition();
3750 Expression condition;
3751 IfStatement ifStatement;
3752 jj_consume_token(IF);
3753 condition = Condition("if");
3754 ifStatement = IfStatement0(condition, pos,pos+2);
3755 {if (true) return ifStatement;}
3756 throw new Error("Missing return statement in function");
3759 static final public Expression Condition(final String keyword) throws ParseException {
3760 final Expression condition;
3762 jj_consume_token(LPAREN);
3763 } catch (ParseException e) {
3764 errorMessage = "'(' expected after " + keyword + " keyword";
3766 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length();
3767 errorEnd = errorStart +1;
3768 processParseException(e);
3770 condition = Expression();
3772 jj_consume_token(RPAREN);
3773 {if (true) return condition;}
3774 } catch (ParseException e) {
3775 errorMessage = "')' expected after " + keyword + " keyword";
3777 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3778 errorEnd = SimpleCharStream.getPosition() + 1;
3779 {if (true) throw e;}
3781 throw new Error("Missing return statement in function");
3784 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3785 Statement statement;
3787 final Statement[] statementsArray;
3788 ElseIf elseifStatement;
3789 Else elseStatement = null;
3791 final ArrayList elseIfList = new ArrayList();
3793 int pos = SimpleCharStream.getPosition();
3795 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3797 jj_consume_token(COLON);
3798 stmts = new ArrayList();
3801 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3834 case INTEGER_LITERAL:
3835 case FLOATING_POINT_LITERAL:
3836 case STRING_LITERAL:
3845 jj_la1[100] = jj_gen;
3848 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3880 case INTEGER_LITERAL:
3881 case FLOATING_POINT_LITERAL:
3882 case STRING_LITERAL:
3888 statement = Statement();
3889 stmts.add(statement);
3892 statement = htmlBlock();
3893 stmts.add(statement);
3896 jj_la1[101] = jj_gen;
3897 jj_consume_token(-1);
3898 throw new ParseException();
3901 endStatements = SimpleCharStream.getPosition();
3904 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3909 jj_la1[102] = jj_gen;
3912 elseifStatement = ElseIfStatementColon();
3913 elseIfList.add(elseifStatement);
3915 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3917 elseStatement = ElseStatementColon();
3920 jj_la1[103] = jj_gen;
3924 setMarker(fileToParse,
3925 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
3929 "Line " + token.beginLine);
3930 } catch (CoreException e) {
3931 PHPeclipsePlugin.log(e);
3934 jj_consume_token(ENDIF);
3935 } catch (ParseException e) {
3936 errorMessage = "'endif' expected";
3938 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3939 errorEnd = SimpleCharStream.getPosition() + 1;
3940 {if (true) throw e;}
3943 jj_consume_token(SEMICOLON);
3944 } catch (ParseException e) {
3945 errorMessage = "';' expected after 'endif' keyword";
3947 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3948 errorEnd = SimpleCharStream.getPosition() + 1;
3949 {if (true) throw e;}
3951 elseIfs = new ElseIf[elseIfList.size()];
3952 elseIfList.toArray(elseIfs);
3953 if (stmts.size() == 1) {
3954 {if (true) return new IfStatement(condition,
3955 (Statement) stmts.get(0),
3959 SimpleCharStream.getPosition());}
3961 statementsArray = new Statement[stmts.size()];
3962 stmts.toArray(statementsArray);
3963 {if (true) return new IfStatement(condition,
3964 new Block(statementsArray,pos,endStatements),
3968 SimpleCharStream.getPosition());}
4003 case INTEGER_LITERAL:
4004 case FLOATING_POINT_LITERAL:
4005 case STRING_LITERAL:
4011 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4043 case INTEGER_LITERAL:
4044 case FLOATING_POINT_LITERAL:
4045 case STRING_LITERAL:
4057 jj_la1[104] = jj_gen;
4058 jj_consume_token(-1);
4059 throw new ParseException();
4063 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4068 jj_la1[105] = jj_gen;
4071 elseifStatement = ElseIfStatement();
4072 elseIfList.add(elseifStatement);
4074 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4076 jj_consume_token(ELSE);
4078 pos = SimpleCharStream.getPosition();
4079 statement = Statement();
4080 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4081 } catch (ParseException e) {
4082 if (errorMessage != null) {
4083 {if (true) throw e;}
4085 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4087 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4088 errorEnd = SimpleCharStream.getPosition() + 1;
4089 {if (true) throw e;}
4093 jj_la1[106] = jj_gen;
4096 elseIfs = new ElseIf[elseIfList.size()];
4097 elseIfList.toArray(elseIfs);
4098 {if (true) return new IfStatement(condition,
4103 SimpleCharStream.getPosition());}
4106 jj_la1[107] = jj_gen;
4107 jj_consume_token(-1);
4108 throw new ParseException();
4110 throw new Error("Missing return statement in function");
4113 static final public ElseIf ElseIfStatementColon() throws ParseException {
4114 Expression condition;
4115 Statement statement;
4116 final ArrayList list = new ArrayList();
4117 final int pos = SimpleCharStream.getPosition();
4118 jj_consume_token(ELSEIF);
4119 condition = Condition("elseif");
4120 jj_consume_token(COLON);
4123 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4156 case INTEGER_LITERAL:
4157 case FLOATING_POINT_LITERAL:
4158 case STRING_LITERAL:
4167 jj_la1[108] = jj_gen;
4170 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4202 case INTEGER_LITERAL:
4203 case FLOATING_POINT_LITERAL:
4204 case STRING_LITERAL:
4210 statement = Statement();
4211 list.add(statement);
4214 statement = htmlBlock();
4215 list.add(statement);
4218 jj_la1[109] = jj_gen;
4219 jj_consume_token(-1);
4220 throw new ParseException();
4223 Statement[] stmtsArray = new Statement[list.size()];
4224 list.toArray(stmtsArray);
4225 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4226 throw new Error("Missing return statement in function");
4229 static final public Else ElseStatementColon() throws ParseException {
4230 Statement statement;
4231 final ArrayList list = new ArrayList();
4232 final int pos = SimpleCharStream.getPosition();
4233 jj_consume_token(ELSE);
4234 jj_consume_token(COLON);
4237 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4270 case INTEGER_LITERAL:
4271 case FLOATING_POINT_LITERAL:
4272 case STRING_LITERAL:
4281 jj_la1[110] = jj_gen;
4284 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4316 case INTEGER_LITERAL:
4317 case FLOATING_POINT_LITERAL:
4318 case STRING_LITERAL:
4324 statement = Statement();
4325 list.add(statement);
4328 statement = htmlBlock();
4329 list.add(statement);
4332 jj_la1[111] = jj_gen;
4333 jj_consume_token(-1);
4334 throw new ParseException();
4337 Statement[] stmtsArray = new Statement[list.size()];
4338 list.toArray(stmtsArray);
4339 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4340 throw new Error("Missing return statement in function");
4343 static final public ElseIf ElseIfStatement() throws ParseException {
4344 Expression condition;
4345 Statement statement;
4346 final ArrayList list = new ArrayList();
4347 final int pos = SimpleCharStream.getPosition();
4348 jj_consume_token(ELSEIF);
4349 condition = Condition("elseif");
4350 statement = Statement();
4351 list.add(statement);/*todo:do better*/
4352 Statement[] stmtsArray = new Statement[list.size()];
4353 list.toArray(stmtsArray);
4354 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4355 throw new Error("Missing return statement in function");
4358 static final public WhileStatement WhileStatement() throws ParseException {
4359 final Expression condition;
4360 final Statement action;
4361 final int pos = SimpleCharStream.getPosition();
4362 jj_consume_token(WHILE);
4363 condition = Condition("while");
4364 action = WhileStatement0(pos,pos + 5);
4365 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4366 throw new Error("Missing return statement in function");
4369 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4370 Statement statement;
4371 final ArrayList stmts = new ArrayList();
4372 final int pos = SimpleCharStream.getPosition();
4373 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4375 jj_consume_token(COLON);
4378 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4410 case INTEGER_LITERAL:
4411 case FLOATING_POINT_LITERAL:
4412 case STRING_LITERAL:
4421 jj_la1[112] = jj_gen;
4424 statement = Statement();
4425 stmts.add(statement);
4428 setMarker(fileToParse,
4429 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4433 "Line " + token.beginLine);
4434 } catch (CoreException e) {
4435 PHPeclipsePlugin.log(e);
4438 jj_consume_token(ENDWHILE);
4439 } catch (ParseException e) {
4440 errorMessage = "'endwhile' expected";
4442 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4443 errorEnd = SimpleCharStream.getPosition() + 1;
4444 {if (true) throw e;}
4447 jj_consume_token(SEMICOLON);
4448 Statement[] stmtsArray = new Statement[stmts.size()];
4449 stmts.toArray(stmtsArray);
4450 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4451 } catch (ParseException e) {
4452 errorMessage = "';' expected after 'endwhile' keyword";
4454 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4455 errorEnd = SimpleCharStream.getPosition() + 1;
4456 {if (true) throw e;}
4490 case INTEGER_LITERAL:
4491 case FLOATING_POINT_LITERAL:
4492 case STRING_LITERAL:
4498 statement = Statement();
4499 {if (true) return statement;}
4502 jj_la1[113] = jj_gen;
4503 jj_consume_token(-1);
4504 throw new ParseException();
4506 throw new Error("Missing return statement in function");
4509 static final public DoStatement DoStatement() throws ParseException {
4510 final Statement action;
4511 final Expression condition;
4512 final int pos = SimpleCharStream.getPosition();
4513 jj_consume_token(DO);
4514 action = Statement();
4515 jj_consume_token(WHILE);
4516 condition = Condition("while");
4518 jj_consume_token(SEMICOLON);
4519 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4520 } catch (ParseException e) {
4521 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4523 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4524 errorEnd = SimpleCharStream.getPosition() + 1;
4525 {if (true) throw e;}
4527 throw new Error("Missing return statement in function");
4530 static final public ForeachStatement ForeachStatement() throws ParseException {
4531 Statement statement;
4532 Expression expression;
4533 final int pos = SimpleCharStream.getPosition();
4534 ArrayVariableDeclaration variable;
4535 jj_consume_token(FOREACH);
4537 jj_consume_token(LPAREN);
4538 } catch (ParseException e) {
4539 errorMessage = "'(' expected after 'foreach' keyword";
4541 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4542 errorEnd = SimpleCharStream.getPosition() + 1;
4543 {if (true) throw e;}
4546 expression = Expression();
4547 } catch (ParseException e) {
4548 errorMessage = "variable expected";
4550 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4551 errorEnd = SimpleCharStream.getPosition() + 1;
4552 {if (true) throw e;}
4555 jj_consume_token(AS);
4556 } catch (ParseException e) {
4557 errorMessage = "'as' expected";
4559 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4560 errorEnd = SimpleCharStream.getPosition() + 1;
4561 {if (true) throw e;}
4564 variable = ArrayVariable();
4565 } catch (ParseException e) {
4566 errorMessage = "variable expected";
4568 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4569 errorEnd = SimpleCharStream.getPosition() + 1;
4570 {if (true) throw e;}
4573 jj_consume_token(RPAREN);
4574 } catch (ParseException e) {
4575 errorMessage = "')' expected after 'foreach' keyword";
4577 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4578 errorEnd = SimpleCharStream.getPosition() + 1;
4579 {if (true) throw e;}
4582 statement = Statement();
4583 } catch (ParseException e) {
4584 if (errorMessage != null) {if (true) throw e;}
4585 errorMessage = "statement expected";
4587 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4588 errorEnd = SimpleCharStream.getPosition() + 1;
4589 {if (true) throw e;}
4591 {if (true) return new ForeachStatement(expression,
4595 SimpleCharStream.getPosition());}
4596 throw new Error("Missing return statement in function");
4599 static final public ForStatement ForStatement() throws ParseException {
4601 final int pos = SimpleCharStream.getPosition();
4602 Statement[] initializations = null;
4603 Expression condition = null;
4604 Statement[] increments = null;
4606 final ArrayList list = new ArrayList();
4607 final int startBlock, endBlock;
4608 token = jj_consume_token(FOR);
4610 jj_consume_token(LPAREN);
4611 } catch (ParseException e) {
4612 errorMessage = "'(' expected after 'for' keyword";
4614 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4615 errorEnd = SimpleCharStream.getPosition() + 1;
4616 {if (true) throw e;}
4618 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4626 initializations = ForInit();
4629 jj_la1[114] = jj_gen;
4632 jj_consume_token(SEMICOLON);
4633 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4649 case INTEGER_LITERAL:
4650 case FLOATING_POINT_LITERAL:
4651 case STRING_LITERAL:
4655 condition = Expression();
4658 jj_la1[115] = jj_gen;
4661 jj_consume_token(SEMICOLON);
4662 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4670 increments = StatementExpressionList();
4673 jj_la1[116] = jj_gen;
4676 jj_consume_token(RPAREN);
4677 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4709 case INTEGER_LITERAL:
4710 case FLOATING_POINT_LITERAL:
4711 case STRING_LITERAL:
4717 action = Statement();
4718 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4721 jj_consume_token(COLON);
4722 startBlock = SimpleCharStream.getPosition();
4725 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4757 case INTEGER_LITERAL:
4758 case FLOATING_POINT_LITERAL:
4759 case STRING_LITERAL:
4768 jj_la1[117] = jj_gen;
4771 action = Statement();
4775 setMarker(fileToParse,
4776 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4778 pos+token.image.length(),
4780 "Line " + token.beginLine);
4781 } catch (CoreException e) {
4782 PHPeclipsePlugin.log(e);
4784 endBlock = SimpleCharStream.getPosition();
4786 jj_consume_token(ENDFOR);
4787 } catch (ParseException e) {
4788 errorMessage = "'endfor' expected";
4790 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4791 errorEnd = SimpleCharStream.getPosition() + 1;
4792 {if (true) throw e;}
4795 jj_consume_token(SEMICOLON);
4796 Statement[] stmtsArray = new Statement[list.size()];
4797 list.toArray(stmtsArray);
4798 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4799 } catch (ParseException e) {
4800 errorMessage = "';' expected after 'endfor' keyword";
4802 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4803 errorEnd = SimpleCharStream.getPosition() + 1;
4804 {if (true) throw e;}
4808 jj_la1[118] = jj_gen;
4809 jj_consume_token(-1);
4810 throw new ParseException();
4812 throw new Error("Missing return statement in function");
4815 static final public Statement[] ForInit() throws ParseException {
4816 Statement[] statements;
4817 if (jj_2_8(2147483647)) {
4818 statements = LocalVariableDeclaration();
4819 {if (true) return statements;}
4821 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4829 statements = StatementExpressionList();
4830 {if (true) return statements;}
4833 jj_la1[119] = jj_gen;
4834 jj_consume_token(-1);
4835 throw new ParseException();
4838 throw new Error("Missing return statement in function");
4841 static final public Statement[] StatementExpressionList() throws ParseException {
4842 final ArrayList list = new ArrayList();
4844 expr = StatementExpression();
4848 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4853 jj_la1[120] = jj_gen;
4856 jj_consume_token(COMMA);
4857 StatementExpression();
4860 Statement[] stmtsArray = new Statement[list.size()];
4861 list.toArray(stmtsArray);
4862 {if (true) return stmtsArray;}
4863 throw new Error("Missing return statement in function");
4866 static final public Continue ContinueStatement() throws ParseException {
4867 Expression expr = null;
4868 final int pos = SimpleCharStream.getPosition();
4869 jj_consume_token(CONTINUE);
4870 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4886 case INTEGER_LITERAL:
4887 case FLOATING_POINT_LITERAL:
4888 case STRING_LITERAL:
4892 expr = Expression();
4895 jj_la1[121] = jj_gen;
4899 jj_consume_token(SEMICOLON);
4900 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
4901 } catch (ParseException e) {
4902 errorMessage = "';' expected after 'continue' statement";
4904 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4905 errorEnd = SimpleCharStream.getPosition() + 1;
4906 {if (true) throw e;}
4908 throw new Error("Missing return statement in function");
4911 static final public ReturnStatement ReturnStatement() throws ParseException {
4912 Expression expr = null;
4913 final int pos = SimpleCharStream.getPosition();
4914 jj_consume_token(RETURN);
4915 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4931 case INTEGER_LITERAL:
4932 case FLOATING_POINT_LITERAL:
4933 case STRING_LITERAL:
4937 expr = Expression();
4940 jj_la1[122] = jj_gen;
4944 jj_consume_token(SEMICOLON);
4945 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
4946 } catch (ParseException e) {
4947 errorMessage = "';' expected after 'return' statement";
4949 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4950 errorEnd = SimpleCharStream.getPosition() + 1;
4951 {if (true) throw e;}
4953 throw new Error("Missing return statement in function");
4956 static final private boolean jj_2_1(int xla) {
4957 jj_la = xla; jj_lastpos = jj_scanpos = token;
4958 boolean retval = !jj_3_1();
4963 static final private boolean jj_2_2(int xla) {
4964 jj_la = xla; jj_lastpos = jj_scanpos = token;
4965 boolean retval = !jj_3_2();
4970 static final private boolean jj_2_3(int xla) {
4971 jj_la = xla; jj_lastpos = jj_scanpos = token;
4972 boolean retval = !jj_3_3();
4977 static final private boolean jj_2_4(int xla) {
4978 jj_la = xla; jj_lastpos = jj_scanpos = token;
4979 boolean retval = !jj_3_4();
4984 static final private boolean jj_2_5(int xla) {
4985 jj_la = xla; jj_lastpos = jj_scanpos = token;
4986 boolean retval = !jj_3_5();
4991 static final private boolean jj_2_6(int xla) {
4992 jj_la = xla; jj_lastpos = jj_scanpos = token;
4993 boolean retval = !jj_3_6();
4998 static final private boolean jj_2_7(int xla) {
4999 jj_la = xla; jj_lastpos = jj_scanpos = token;
5000 boolean retval = !jj_3_7();
5005 static final private boolean jj_2_8(int xla) {
5006 jj_la = xla; jj_lastpos = jj_scanpos = token;
5007 boolean retval = !jj_3_8();
5012 static final private boolean jj_3R_83() {
5013 if (jj_scan_token(OBJECT)) return true;
5014 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5018 static final private boolean jj_3R_82() {
5019 if (jj_scan_token(INTEGER)) return true;
5020 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5024 static final private boolean jj_3R_44() {
5025 if (jj_scan_token(ARRAY)) return true;
5026 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5030 static final private boolean jj_3R_184() {
5031 if (jj_scan_token(ARRAY)) return true;
5032 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5036 static final private boolean jj_3R_81() {
5037 if (jj_scan_token(INT)) return true;
5038 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5042 static final private boolean jj_3R_183() {
5043 if (jj_3R_52()) return true;
5044 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5048 static final private boolean jj_3R_80() {
5049 if (jj_scan_token(FLOAT)) return true;
5050 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5054 static final private boolean jj_3R_85() {
5055 if (jj_scan_token(LIST)) return true;
5056 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5057 if (jj_scan_token(LPAREN)) return true;
5058 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5061 if (jj_3R_99()) jj_scanpos = xsp;
5062 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5065 if (jj_3R_100()) { jj_scanpos = xsp; break; }
5066 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5068 if (jj_scan_token(RPAREN)) return true;
5069 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5071 if (jj_3R_101()) jj_scanpos = xsp;
5072 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5076 static final private boolean jj_3R_167() {
5077 if (jj_scan_token(LPAREN)) return true;
5078 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5083 if (jj_3R_184()) return true;
5084 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5085 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5086 if (jj_scan_token(RPAREN)) return true;
5087 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5088 if (jj_3R_139()) return true;
5089 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5093 static final private boolean jj_3R_79() {
5094 if (jj_scan_token(DOUBLE)) return true;
5095 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5099 static final private boolean jj_3R_43() {
5100 if (jj_3R_52()) return true;
5101 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5105 static final private boolean jj_3R_78() {
5106 if (jj_scan_token(REAL)) return true;
5107 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5111 static final private boolean jj_3R_77() {
5112 if (jj_scan_token(BOOLEAN)) return true;
5113 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5117 static final private boolean jj_3R_84() {
5118 if (jj_scan_token(PRINT)) return true;
5119 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5120 if (jj_3R_45()) return true;
5121 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5125 static final private boolean jj_3R_76() {
5126 if (jj_scan_token(BOOL)) return true;
5127 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5131 static final private boolean jj_3_4() {
5132 if (jj_scan_token(LPAREN)) return true;
5133 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5138 if (jj_3R_44()) return true;
5139 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5140 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5141 if (jj_scan_token(RPAREN)) return true;
5142 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5146 static final private boolean jj_3R_75() {
5147 if (jj_scan_token(STRING)) return true;
5148 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5152 static final private boolean jj_3R_52() {
5171 if (jj_3R_83()) return true;
5172 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5173 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5174 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5175 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5176 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5177 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5178 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5179 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5180 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5184 static final private boolean jj_3R_165() {
5185 if (jj_scan_token(LPAREN)) 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;
5189 if (jj_scan_token(RPAREN)) return true;
5190 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5194 static final private boolean jj_3R_164() {
5195 if (jj_3R_169()) return true;
5196 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5200 static final private boolean jj_3R_163() {
5201 if (jj_3R_168()) return true;
5202 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5206 static final private boolean jj_3R_162() {
5207 if (jj_3R_167()) return true;
5208 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5212 static final private boolean jj_3R_158() {
5223 if (jj_3R_165()) return true;
5224 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5225 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5226 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5227 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5228 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5232 static final private boolean jj_3R_161() {
5233 if (jj_scan_token(BANG)) return true;
5234 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5235 if (jj_3R_139()) return true;
5236 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5240 static final private boolean jj_3R_160() {
5241 if (jj_scan_token(DECR)) return true;
5242 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5246 static final private boolean jj_3R_159() {
5247 if (jj_scan_token(INCR)) return true;
5248 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5252 static final private boolean jj_3R_157() {
5257 if (jj_3R_160()) 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 if (jj_3R_166()) return true;
5261 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5265 static final private boolean jj_3R_152() {
5266 if (jj_3R_158()) return true;
5267 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5271 static final private boolean jj_3R_151() {
5272 if (jj_3R_157()) return true;
5273 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5277 static final private boolean jj_3R_156() {
5278 if (jj_scan_token(MINUS)) return true;
5279 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5283 static final private boolean jj_3R_155() {
5284 if (jj_scan_token(PLUS)) return true;
5285 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5289 static final private boolean jj_3R_148() {
5296 if (jj_3R_152()) return true;
5297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5298 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5299 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5303 static final private boolean jj_3R_150() {
5308 if (jj_3R_156()) return true;
5309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5310 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5311 if (jj_3R_139()) return true;
5312 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5316 static final private boolean jj_3R_154() {
5317 if (jj_3R_148()) return true;
5318 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5322 static final private boolean jj_3R_149() {
5327 if (jj_3R_154()) return true;
5328 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5329 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5333 static final private boolean jj_3R_153() {
5334 if (jj_scan_token(AT)) return true;
5335 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5336 if (jj_3R_149()) return true;
5337 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5341 static final private boolean jj_3R_144() {
5342 if (jj_3R_149()) return true;
5343 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5347 static final private boolean jj_3R_139() {
5352 if (jj_3R_144()) return true;
5353 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5354 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5358 static final private boolean jj_3R_143() {
5359 if (jj_scan_token(BIT_AND)) return true;
5360 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5361 if (jj_3R_148()) return true;
5362 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5366 static final private boolean jj_3R_147() {
5367 if (jj_scan_token(REMAINDER)) return true;
5368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5372 static final private boolean jj_3R_146() {
5373 if (jj_scan_token(SLASH)) return true;
5374 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5378 static final private boolean jj_3R_145() {
5379 if (jj_scan_token(STAR)) return true;
5380 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5384 static final private boolean jj_3R_140() {
5391 if (jj_3R_147()) return true;
5392 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5393 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5394 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5395 if (jj_3R_139()) return true;
5396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5400 static final private boolean jj_3R_87() {
5401 if (jj_scan_token(ASSIGN)) return true;
5402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5403 if (jj_3R_45()) return true;
5404 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5408 static final private boolean jj_3R_134() {
5409 if (jj_3R_139()) return true;
5410 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5414 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5415 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5420 static final private boolean jj_3R_142() {
5421 if (jj_scan_token(MINUS)) return true;
5422 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5426 static final private boolean jj_3R_141() {
5427 if (jj_scan_token(PLUS)) return true;
5428 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5432 static final private boolean jj_3R_135() {
5437 if (jj_3R_142()) return true;
5438 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5439 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5440 if (jj_3R_134()) return true;
5441 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5445 static final private boolean jj_3R_128() {
5446 if (jj_3R_134()) return true;
5447 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5451 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5452 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5457 static final private boolean jj_3R_198() {
5458 if (jj_scan_token(COMMA)) return true;
5459 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5463 static final private boolean jj_3_7() {
5464 if (jj_3R_46()) return true;
5465 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5469 static final private boolean jj_3_2() {
5470 if (jj_scan_token(COMMA)) return true;
5471 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5472 if (jj_3R_41()) return true;
5473 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5477 static final private boolean jj_3R_197() {
5478 if (jj_3R_41()) return true;
5479 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5483 if (jj_3_2()) { jj_scanpos = xsp; break; }
5484 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5489 static final private boolean jj_3R_57() {
5490 if (jj_3R_50()) return true;
5491 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5494 if (jj_3R_87()) jj_scanpos = xsp;
5495 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5499 static final private boolean jj_3R_138() {
5500 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5501 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5505 static final private boolean jj_3R_137() {
5506 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5507 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5511 static final private boolean jj_3R_136() {
5512 if (jj_scan_token(LSHIFT)) return true;
5513 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5517 static final private boolean jj_3R_129() {
5524 if (jj_3R_138()) return true;
5525 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5526 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5527 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5528 if (jj_3R_128()) return true;
5529 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5533 static final private boolean jj_3R_121() {
5534 if (jj_3R_128()) return true;
5535 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5539 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5540 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5545 static final private boolean jj_3_6() {
5546 if (jj_3R_45()) return true;
5547 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5548 if (jj_scan_token(SEMICOLON)) return true;
5549 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5553 static final private boolean jj_3R_192() {
5554 if (jj_scan_token(LPAREN)) return true;
5555 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5558 if (jj_3R_197()) jj_scanpos = xsp;
5559 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5561 if (jj_3R_198()) jj_scanpos = xsp;
5562 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5563 if (jj_scan_token(RPAREN)) return true;
5564 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5568 static final private boolean jj_3R_58() {
5569 if (jj_scan_token(COMMA)) return true;
5570 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5571 if (jj_3R_57()) return true;
5572 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5576 static final private boolean jj_3R_47() {
5577 if (jj_3R_57()) return true;
5578 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5582 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5583 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5588 static final private boolean jj_3R_133() {
5589 if (jj_scan_token(GE)) return true;
5590 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5594 static final private boolean jj_3R_201() {
5595 if (jj_scan_token(ARRAYASSIGN)) return true;
5596 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5597 if (jj_3R_45()) return true;
5598 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5602 static final private boolean jj_3R_132() {
5603 if (jj_scan_token(LE)) return true;
5604 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5608 static final private boolean jj_3R_131() {
5609 if (jj_scan_token(GT)) return true;
5610 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5614 static final private boolean jj_3R_41() {
5615 if (jj_3R_45()) return true;
5616 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5619 if (jj_3R_201()) jj_scanpos = xsp;
5620 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5624 static final private boolean jj_3R_130() {
5625 if (jj_scan_token(LT)) return true;
5626 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5630 static final private boolean jj_3R_122() {
5639 if (jj_3R_133()) return true;
5640 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5641 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5642 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5643 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5644 if (jj_3R_121()) return true;
5645 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5649 static final private boolean jj_3R_119() {
5650 if (jj_3R_121()) return true;
5651 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5655 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5656 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5661 static final private boolean jj_3R_203() {
5662 if (jj_scan_token(COMMA)) return true;
5663 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5664 if (jj_3R_45()) return true;
5665 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5669 static final private boolean jj_3R_202() {
5670 if (jj_3R_45()) return true;
5671 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5675 if (jj_3R_203()) { jj_scanpos = xsp; break; }
5676 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5681 static final private boolean jj_3R_127() {
5682 if (jj_scan_token(TRIPLEEQUAL)) return true;
5683 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5687 static final private boolean jj_3R_200() {
5688 if (jj_3R_202()) return true;
5689 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5693 static final private boolean jj_3R_126() {
5694 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5695 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5699 static final private boolean jj_3R_125() {
5700 if (jj_scan_token(NOT_EQUAL)) return true;
5701 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5705 static final private boolean jj_3R_124() {
5706 if (jj_scan_token(DIF)) return true;
5707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5711 static final private boolean jj_3R_123() {
5712 if (jj_scan_token(EQUAL_EQUAL)) return true;
5713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5717 static final private boolean jj_3R_120() {
5728 if (jj_3R_127()) return true;
5729 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5730 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5732 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5733 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5734 if (jj_3R_119()) return true;
5735 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5739 static final private boolean jj_3R_108() {
5740 if (jj_scan_token(LBRACE)) return true;
5741 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5742 if (jj_3R_45()) return true;
5743 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5744 if (jj_scan_token(RBRACE)) return true;
5745 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5749 static final private boolean jj_3R_93() {
5750 if (jj_3R_52()) return true;
5751 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5755 static final private boolean jj_3R_117() {
5756 if (jj_3R_119()) return true;
5757 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5761 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5762 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5767 static final private boolean jj_3R_199() {
5768 if (jj_scan_token(LPAREN)) return true;
5769 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5772 if (jj_3R_200()) jj_scanpos = xsp;
5773 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5774 if (jj_scan_token(RPAREN)) return true;
5775 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5779 static final private boolean jj_3R_91() {
5780 if (jj_scan_token(DOLLAR_ID)) return true;
5781 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5785 static final private boolean jj_3R_90() {
5786 if (jj_scan_token(DOLLAR)) return true;
5787 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5788 if (jj_3R_59()) return true;
5789 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5793 static final private boolean jj_3R_118() {
5794 if (jj_scan_token(BIT_AND)) return true;
5795 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5796 if (jj_3R_117()) return true;
5797 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5801 static final private boolean jj_3R_177() {
5802 if (jj_scan_token(NULL)) return true;
5803 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5807 static final private boolean jj_3R_176() {
5808 if (jj_scan_token(FALSE)) return true;
5809 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5813 static final private boolean jj_3R_115() {
5814 if (jj_3R_117()) return true;
5815 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5819 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5820 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5825 static final private boolean jj_3R_175() {
5826 if (jj_scan_token(TRUE)) return true;
5827 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5831 static final private boolean jj_3R_174() {
5832 if (jj_scan_token(STRING_LITERAL)) return true;
5833 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5837 static final private boolean jj_3R_173() {
5838 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5839 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5843 static final private boolean jj_3R_89() {
5844 if (jj_scan_token(IDENTIFIER)) return true;
5845 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5848 if (jj_3R_108()) jj_scanpos = xsp;
5849 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5853 static final private boolean jj_3R_169() {
5866 if (jj_3R_177()) return true;
5867 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5868 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5869 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5870 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5871 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5872 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5876 static final private boolean jj_3R_172() {
5877 if (jj_scan_token(INTEGER_LITERAL)) return true;
5878 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5882 static final private boolean jj_3R_116() {
5883 if (jj_scan_token(XOR)) return true;
5884 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5885 if (jj_3R_115()) return true;
5886 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5890 static final private boolean jj_3R_88() {
5891 if (jj_scan_token(LBRACE)) return true;
5892 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5893 if (jj_3R_45()) return true;
5894 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5895 if (jj_scan_token(RBRACE)) return true;
5896 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5900 static final private boolean jj_3R_59() {
5909 if (jj_3R_91()) return true;
5910 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5911 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5912 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5913 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5917 static final private boolean jj_3R_113() {
5918 if (jj_3R_115()) return true;
5919 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5923 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5924 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5929 static final private boolean jj_3R_92() {
5930 if (jj_3R_45()) return true;
5931 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5935 static final private boolean jj_3R_60() {
5940 if (jj_3R_93()) return true;
5941 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5942 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5946 static final private boolean jj_3R_98() {
5947 if (jj_scan_token(LBRACE)) return true;
5948 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5949 if (jj_3R_45()) return true;
5950 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5951 if (jj_scan_token(RBRACE)) return true;
5952 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5956 static final private boolean jj_3R_46() {
5957 if (jj_scan_token(IDENTIFIER)) return true;
5958 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5959 if (jj_scan_token(COLON)) return true;
5960 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5964 static final private boolean jj_3R_114() {
5965 if (jj_scan_token(BIT_OR)) return true;
5966 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5967 if (jj_3R_113()) return true;
5968 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5972 static final private boolean jj_3R_95() {
5973 if (jj_scan_token(DOLLAR)) return true;
5974 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5975 if (jj_3R_59()) return true;
5976 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5980 static final private boolean jj_3R_109() {
5981 if (jj_3R_113()) return true;
5982 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5986 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5987 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5992 static final private boolean jj_3R_49() {
5993 if (jj_scan_token(LBRACKET)) return true;
5994 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5997 if (jj_3R_60()) jj_scanpos = xsp;
5998 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5999 if (jj_scan_token(RBRACKET)) return true;
6000 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6004 static final private boolean jj_3_8() {
6005 if (jj_3R_47()) return true;
6006 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6010 static final private boolean jj_3R_110() {
6011 if (jj_scan_token(DOT)) return true;
6012 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6013 if (jj_3R_109()) return true;
6014 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6018 static final private boolean jj_3R_94() {
6019 if (jj_scan_token(DOLLAR_ID)) return true;
6020 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6023 if (jj_3R_98()) jj_scanpos = xsp;
6024 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6028 static final private boolean jj_3R_61() {
6033 if (jj_3R_95()) return true;
6034 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6035 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6039 static final private boolean jj_3R_104() {
6040 if (jj_3R_109()) return true;
6041 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6045 if (jj_3R_110()) { jj_scanpos = xsp; break; }
6046 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6051 static final private boolean jj_3R_48() {
6052 if (jj_scan_token(CLASSACCESS)) return true;
6053 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6054 if (jj_3R_59()) return true;
6055 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6059 static final private boolean jj_3R_40() {
6064 if (jj_3R_49()) return true;
6065 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6066 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6070 static final private boolean jj_3R_112() {
6071 if (jj_scan_token(_ANDL)) return true;
6072 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6076 static final private boolean jj_3R_111() {
6077 if (jj_scan_token(AND_AND)) return true;
6078 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6082 static final private boolean jj_3R_196() {
6083 if (jj_3R_40()) return true;
6084 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6088 static final private boolean jj_3R_105() {
6093 if (jj_3R_112()) return true;
6094 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6095 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6096 if (jj_3R_104()) return true;
6097 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6101 static final private boolean jj_3R_195() {
6102 if (jj_3R_199()) return true;
6103 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6107 static final private boolean jj_3R_188() {
6112 if (jj_3R_196()) return true;
6113 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6114 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6118 static final private boolean jj_3R_97() {
6119 if (jj_scan_token(HOOK)) return true;
6120 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6121 if (jj_3R_45()) return true;
6122 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6123 if (jj_scan_token(COLON)) return true;
6124 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6125 if (jj_3R_86()) return true;
6126 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6130 static final private boolean jj_3R_102() {
6131 if (jj_3R_104()) return true;
6132 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6136 if (jj_3R_105()) { jj_scanpos = xsp; break; }
6137 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6142 static final private boolean jj_3_1() {
6143 if (jj_3R_40()) return true;
6144 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6148 static final private boolean jj_3R_187() {
6149 if (jj_3R_50()) return true;
6150 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6154 static final private boolean jj_3R_107() {
6155 if (jj_scan_token(_ORL)) return true;
6156 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6160 static final private boolean jj_3R_106() {
6161 if (jj_scan_token(OR_OR)) return true;
6162 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6166 static final private boolean jj_3R_186() {
6167 if (jj_scan_token(IDENTIFIER)) return true;
6168 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6172 static final private boolean jj_3R_178() {
6177 if (jj_3R_187()) return true;
6178 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6179 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6183 static final private boolean jj_3R_50() {
6184 if (jj_3R_61()) return true;
6185 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6189 if (jj_3_1()) { jj_scanpos = xsp; break; }
6190 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6195 static final private boolean jj_3R_103() {
6200 if (jj_3R_107()) 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 if (jj_3R_102()) return true;
6204 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6208 static final private boolean jj_3R_96() {
6209 if (jj_3R_102()) return true;
6210 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6214 if (jj_3R_103()) { jj_scanpos = xsp; break; }
6215 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6220 static final private boolean jj_3R_86() {
6221 if (jj_3R_96()) return true;
6222 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6225 if (jj_3R_97()) jj_scanpos = xsp;
6226 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6230 static final private boolean jj_3R_74() {
6231 if (jj_scan_token(TILDEEQUAL)) return true;
6232 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6236 static final private boolean jj_3R_191() {
6237 if (jj_3R_50()) return true;
6238 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6242 static final private boolean jj_3R_73() {
6243 if (jj_scan_token(DOTASSIGN)) return true;
6244 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6248 static final private boolean jj_3R_72() {
6249 if (jj_scan_token(ORASSIGN)) return true;
6250 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6254 static final private boolean jj_3R_71() {
6255 if (jj_scan_token(XORASSIGN)) return true;
6256 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6260 static final private boolean jj_3R_190() {
6261 if (jj_scan_token(NEW)) return true;
6262 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6263 if (jj_3R_178()) return true;
6264 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6268 static final private boolean jj_3R_70() {
6269 if (jj_scan_token(ANDASSIGN)) return true;
6270 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6274 static final private boolean jj_3R_69() {
6275 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6280 static final private boolean jj_3R_68() {
6281 if (jj_scan_token(LSHIFTASSIGN)) return true;
6282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6286 static final private boolean jj_3R_189() {
6287 if (jj_scan_token(IDENTIFIER)) return true;
6288 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6292 static final private boolean jj_3R_180() {
6299 if (jj_3R_191()) return true;
6300 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6301 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6302 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6306 static final private boolean jj_3R_67() {
6307 if (jj_scan_token(MINUSASSIGN)) return true;
6308 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6312 static final private boolean jj_3R_66() {
6313 if (jj_scan_token(PLUSASSIGN)) return true;
6314 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6318 static final private boolean jj_3R_65() {
6319 if (jj_scan_token(REMASSIGN)) return true;
6320 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6324 static final private boolean jj_3R_64() {
6325 if (jj_scan_token(SLASHASSIGN)) return true;
6326 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6330 static final private boolean jj_3R_63() {
6331 if (jj_scan_token(STARASSIGN)) return true;
6332 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6336 static final private boolean jj_3R_51() {
6363 if (jj_3R_74()) return true;
6364 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6365 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6366 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6367 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6368 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6369 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6370 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6371 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6372 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6373 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6374 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6375 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6376 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6380 static final private boolean jj_3R_62() {
6381 if (jj_scan_token(ASSIGN)) return true;
6382 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6386 static final private boolean jj_3R_182() {
6387 if (jj_scan_token(ARRAY)) return true;
6388 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6389 if (jj_3R_192()) return true;
6390 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6394 static final private boolean jj_3R_171() {
6395 if (jj_3R_182()) return true;
6396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6400 static final private boolean jj_3R_181() {
6401 if (jj_3R_188()) return true;
6402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6406 static final private boolean jj_3R_170() {
6407 if (jj_3R_180()) return true;
6408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6412 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6413 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6418 static final private boolean jj_3R_179() {
6419 if (jj_3R_188()) return true;
6420 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6424 static final private boolean jj_3R_101() {
6425 if (jj_scan_token(ASSIGN)) return true;
6426 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6427 if (jj_3R_45()) return true;
6428 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6432 static final private boolean jj_3R_42() {
6433 if (jj_3R_50()) return true;
6434 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6435 if (jj_3R_51()) return true;
6436 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6437 if (jj_3R_45()) return true;
6438 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6442 static final private boolean jj_3_3() {
6443 if (jj_3R_42()) return true;
6444 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6448 static final private boolean jj_3_5() {
6449 if (jj_scan_token(IDENTIFIER)) return true;
6450 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6451 if (jj_scan_token(STATICCLASSACCESS)) return true;
6452 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6453 if (jj_3R_178()) return true;
6454 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6458 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6459 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6464 static final private boolean jj_3R_166() {
6471 if (jj_3R_171()) return true;
6472 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6473 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6474 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6478 static final private boolean jj_3R_56() {
6479 if (jj_3R_86()) return true;
6480 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6484 static final private boolean jj_3R_55() {
6485 if (jj_3R_42()) return true;
6486 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6490 static final private boolean jj_3R_54() {
6491 if (jj_3R_85()) return true;
6492 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6496 static final private boolean jj_3R_45() {
6505 if (jj_3R_56()) return true;
6506 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6507 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6508 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6509 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6513 static final private boolean jj_3R_53() {
6514 if (jj_3R_84()) return true;
6515 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6519 static final private boolean jj_3R_100() {
6520 if (jj_scan_token(COMMA)) return true;
6521 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6522 if (jj_3R_50()) return true;
6523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6527 static final private boolean jj_3R_194() {
6528 if (jj_scan_token(DECR)) return true;
6529 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6533 static final private boolean jj_3R_193() {
6534 if (jj_scan_token(INCR)) return true;
6535 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6539 static final private boolean jj_3R_185() {
6544 if (jj_3R_194()) return true;
6545 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6546 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6550 static final private boolean jj_3R_168() {
6551 if (jj_3R_166()) return true;
6552 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6555 if (jj_3R_185()) jj_scanpos = xsp;
6556 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6560 static final private boolean jj_3R_99() {
6561 if (jj_3R_50()) return true;
6562 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6566 static private boolean jj_initialized_once = false;
6567 static public PHPParserTokenManager token_source;
6568 static SimpleCharStream jj_input_stream;
6569 static public Token token, jj_nt;
6570 static private int jj_ntk;
6571 static private Token jj_scanpos, jj_lastpos;
6572 static private int jj_la;
6573 static public boolean lookingAhead = false;
6574 static private boolean jj_semLA;
6575 static private int jj_gen;
6576 static final private int[] jj_la1 = new int[123];
6577 static private int[] jj_la1_0;
6578 static private int[] jj_la1_1;
6579 static private int[] jj_la1_2;
6580 static private int[] jj_la1_3;
6581 static private int[] jj_la1_4;
6589 private static void jj_la1_0() {
6590 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,};
6592 private static void jj_la1_1() {
6593 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,};
6595 private static void jj_la1_2() {
6596 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,};
6598 private static void jj_la1_3() {
6599 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,};
6601 private static void jj_la1_4() {
6602 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,};
6604 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6605 static private boolean jj_rescan = false;
6606 static private int jj_gc = 0;
6608 public PHPParser(java.io.InputStream stream) {
6609 if (jj_initialized_once) {
6610 System.out.println("ERROR: Second call to constructor of static parser. You must");
6611 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6612 System.out.println(" during parser generation.");
6615 jj_initialized_once = true;
6616 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6617 token_source = new PHPParserTokenManager(jj_input_stream);
6618 token = new Token();
6621 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6622 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6625 static public void ReInit(java.io.InputStream stream) {
6626 jj_input_stream.ReInit(stream, 1, 1);
6627 token_source.ReInit(jj_input_stream);
6628 token = new Token();
6631 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6632 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6635 public PHPParser(java.io.Reader stream) {
6636 if (jj_initialized_once) {
6637 System.out.println("ERROR: Second call to constructor of static parser. You must");
6638 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6639 System.out.println(" during parser generation.");
6642 jj_initialized_once = true;
6643 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6644 token_source = new PHPParserTokenManager(jj_input_stream);
6645 token = new Token();
6648 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6649 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6652 static public void ReInit(java.io.Reader stream) {
6653 jj_input_stream.ReInit(stream, 1, 1);
6654 token_source.ReInit(jj_input_stream);
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 public PHPParser(PHPParserTokenManager tm) {
6663 if (jj_initialized_once) {
6664 System.out.println("ERROR: Second call to constructor of static parser. You must");
6665 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6666 System.out.println(" during parser generation.");
6669 jj_initialized_once = true;
6671 token = new Token();
6674 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6675 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6678 public void ReInit(PHPParserTokenManager tm) {
6680 token = new Token();
6683 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6684 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6687 static final private Token jj_consume_token(int kind) throws ParseException {
6689 if ((oldToken = token).next != null) token = token.next;
6690 else token = token.next = token_source.getNextToken();
6692 if (token.kind == kind) {
6694 if (++jj_gc > 100) {
6696 for (int i = 0; i < jj_2_rtns.length; i++) {
6697 JJCalls c = jj_2_rtns[i];
6699 if (c.gen < jj_gen) c.first = null;
6708 throw generateParseException();
6711 static final private boolean jj_scan_token(int kind) {
6712 if (jj_scanpos == jj_lastpos) {
6714 if (jj_scanpos.next == null) {
6715 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6717 jj_lastpos = jj_scanpos = jj_scanpos.next;
6720 jj_scanpos = jj_scanpos.next;
6723 int i = 0; Token tok = token;
6724 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6725 if (tok != null) jj_add_error_token(kind, i);
6727 return (jj_scanpos.kind != kind);
6730 static final public Token getNextToken() {
6731 if (token.next != null) token = token.next;
6732 else token = token.next = token_source.getNextToken();
6738 static final public Token getToken(int index) {
6739 Token t = lookingAhead ? jj_scanpos : token;
6740 for (int i = 0; i < index; i++) {
6741 if (t.next != null) t = t.next;
6742 else t = t.next = token_source.getNextToken();
6747 static final private int jj_ntk() {
6748 if ((jj_nt=token.next) == null)
6749 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6751 return (jj_ntk = jj_nt.kind);
6754 static private java.util.Vector jj_expentries = new java.util.Vector();
6755 static private int[] jj_expentry;
6756 static private int jj_kind = -1;
6757 static private int[] jj_lasttokens = new int[100];
6758 static private int jj_endpos;
6760 static private void jj_add_error_token(int kind, int pos) {
6761 if (pos >= 100) return;
6762 if (pos == jj_endpos + 1) {
6763 jj_lasttokens[jj_endpos++] = kind;
6764 } else if (jj_endpos != 0) {
6765 jj_expentry = new int[jj_endpos];
6766 for (int i = 0; i < jj_endpos; i++) {
6767 jj_expentry[i] = jj_lasttokens[i];
6769 boolean exists = false;
6770 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
6771 int[] oldentry = (int[])(enum.nextElement());
6772 if (oldentry.length == jj_expentry.length) {
6774 for (int i = 0; i < jj_expentry.length; i++) {
6775 if (oldentry[i] != jj_expentry[i]) {
6783 if (!exists) jj_expentries.addElement(jj_expentry);
6784 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6788 static public ParseException generateParseException() {
6789 jj_expentries.removeAllElements();
6790 boolean[] la1tokens = new boolean[141];
6791 for (int i = 0; i < 141; i++) {
6792 la1tokens[i] = false;
6795 la1tokens[jj_kind] = true;
6798 for (int i = 0; i < 123; i++) {
6799 if (jj_la1[i] == jj_gen) {
6800 for (int j = 0; j < 32; j++) {
6801 if ((jj_la1_0[i] & (1<<j)) != 0) {
6802 la1tokens[j] = true;
6804 if ((jj_la1_1[i] & (1<<j)) != 0) {
6805 la1tokens[32+j] = true;
6807 if ((jj_la1_2[i] & (1<<j)) != 0) {
6808 la1tokens[64+j] = true;
6810 if ((jj_la1_3[i] & (1<<j)) != 0) {
6811 la1tokens[96+j] = true;
6813 if ((jj_la1_4[i] & (1<<j)) != 0) {
6814 la1tokens[128+j] = true;
6819 for (int i = 0; i < 141; i++) {
6821 jj_expentry = new int[1];
6823 jj_expentries.addElement(jj_expentry);
6828 jj_add_error_token(0, 0);
6829 int[][] exptokseq = new int[jj_expentries.size()][];
6830 for (int i = 0; i < jj_expentries.size(); i++) {
6831 exptokseq[i] = (int[])jj_expentries.elementAt(i);
6833 return new ParseException(token, exptokseq, tokenImage);
6836 static final public void enable_tracing() {
6839 static final public void disable_tracing() {
6842 static final private void jj_rescan_token() {
6844 for (int i = 0; i < 8; i++) {
6845 JJCalls p = jj_2_rtns[i];
6847 if (p.gen > jj_gen) {
6848 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
6850 case 0: jj_3_1(); break;
6851 case 1: jj_3_2(); break;
6852 case 2: jj_3_3(); break;
6853 case 3: jj_3_4(); break;
6854 case 4: jj_3_5(); break;
6855 case 5: jj_3_6(); break;
6856 case 6: jj_3_7(); break;
6857 case 7: jj_3_8(); break;
6861 } while (p != null);
6866 static final private void jj_save(int index, int xla) {
6867 JJCalls p = jj_2_rtns[index];
6868 while (p.gen > jj_gen) {
6869 if (p.next == null) { p = p.next = new JJCalls(); break; }
6872 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
6875 static final class JJCalls {