1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
4 import org.eclipse.core.resources.IFile;
5 import org.eclipse.core.resources.IMarker;
6 import org.eclipse.core.runtime.CoreException;
7 import org.eclipse.ui.texteditor.MarkerUtilities;
8 import org.eclipse.jface.preference.IPreferenceStore;
10 import java.util.Hashtable;
11 import java.util.Enumeration;
12 import java.util.ArrayList;
13 import java.io.StringReader;
15 import java.text.MessageFormat;
17 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
18 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
19 import net.sourceforge.phpdt.internal.compiler.ast.*;
20 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
21 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
25 * This php parser is inspired by the Java 1.2 grammar example
26 * given with JavaCC. You can get JavaCC at http://www.webgain.com
27 * You can test the parser with the PHPParserTestCase2.java
28 * @author Matthieu Casanova
30 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
32 /** The file that is parsed. */
33 private static IFile fileToParse;
35 /** The current segment. */
36 private static OutlineableWithChildren currentSegment;
38 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
39 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
40 static PHPOutlineInfo outlineInfo;
42 public static MethodDeclaration currentFunction;
43 private static boolean assigning;
45 /** The error level of the current ParseException. */
46 private static int errorLevel = ERROR;
47 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
48 private static String errorMessage;
50 private static int errorStart = -1;
51 private static int errorEnd = -1;
52 private static PHPDocument phpDocument;
54 * The point where html starts.
55 * It will be used by the token manager to create HTMLCode objects
57 public static int htmlStart;
60 private final static int AstStackIncrement = 100;
61 /** The stack of node. */
62 private static AstNode[] nodes;
63 /** The cursor in expression stack. */
64 private static int nodePtr;
66 public final void setFileToParse(final IFile fileToParse) {
67 this.fileToParse = fileToParse;
73 public PHPParser(final IFile fileToParse) {
74 this(new StringReader(""));
75 this.fileToParse = fileToParse;
79 * Reinitialize the parser.
81 private static final void init() {
82 nodes = new AstNode[AstStackIncrement];
88 * Add an php node on the stack.
89 * @param node the node that will be added to the stack
91 private static final void pushOnAstNodes(AstNode node) {
93 nodes[++nodePtr] = node;
94 } catch (IndexOutOfBoundsException e) {
95 int oldStackLength = nodes.length;
96 AstNode[] oldStack = nodes;
97 nodes = new AstNode[oldStackLength + AstStackIncrement];
98 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
99 nodePtr = oldStackLength;
100 nodes[nodePtr] = node;
104 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
105 currentSegment = new PHPDocument(parent);
106 outlineInfo = new PHPOutlineInfo(parent);
107 final StringReader stream = new StringReader(s);
108 if (jj_input_stream == null) {
109 jj_input_stream = new SimpleCharStream(stream, 1, 1);
115 phpDocument = new PHPDocument(null);
116 phpDocument.nodes = new AstNode[nodes.length];
117 System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
118 PHPeclipsePlugin.log(1,phpDocument.toString());
119 } catch (ParseException e) {
120 processParseException(e);
126 * This method will process the parse exception.
127 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
128 * @param e the ParseException
130 private static void processParseException(final ParseException e) {
131 if (errorMessage == null) {
132 PHPeclipsePlugin.log(e);
133 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
134 errorStart = jj_input_stream.getPosition();
135 errorEnd = errorStart + 1;
142 * Create marker for the parse error
143 * @param e the ParseException
145 private static void setMarker(final ParseException e) {
147 if (errorStart == -1) {
148 setMarker(fileToParse,
150 jj_input_stream.tokenBegin,
151 jj_input_stream.tokenBegin + e.currentToken.image.length(),
153 "Line " + e.currentToken.beginLine);
155 setMarker(fileToParse,
160 "Line " + e.currentToken.beginLine);
164 } catch (CoreException e2) {
165 PHPeclipsePlugin.log(e2);
170 * Create markers according to the external parser output
172 private static void createMarkers(final String output, final IFile file) throws CoreException {
173 // delete all markers
174 file.deleteMarkers(IMarker.PROBLEM, false, 0);
179 while ((brIndx = output.indexOf("<br />", indx)) != -1) {
180 // newer php error output (tested with 4.2.3)
181 scanLine(output, file, indx, brIndx);
186 while ((brIndx = output.indexOf("<br>", indx)) != -1) {
187 // older php error output (tested with 4.2.3)
188 scanLine(output, file, indx, brIndx);
194 private static void scanLine(final String output,
197 final int brIndx) throws CoreException {
199 StringBuffer lineNumberBuffer = new StringBuffer(10);
201 current = output.substring(indx, brIndx);
203 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
204 int onLine = current.indexOf("on line <b>");
206 lineNumberBuffer.delete(0, lineNumberBuffer.length());
207 for (int i = onLine; i < current.length(); i++) {
208 ch = current.charAt(i);
209 if ('0' <= ch && '9' >= ch) {
210 lineNumberBuffer.append(ch);
214 int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
216 Hashtable attributes = new Hashtable();
218 current = current.replaceAll("\n", "");
219 current = current.replaceAll("<b>", "");
220 current = current.replaceAll("</b>", "");
221 MarkerUtilities.setMessage(attributes, current);
223 if (current.indexOf(PARSE_ERROR_STRING) != -1)
224 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
225 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
226 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
228 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
229 MarkerUtilities.setLineNumber(attributes, lineNumber);
230 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
235 public final void parse(final String s) throws CoreException {
236 final StringReader stream = new StringReader(s);
237 if (jj_input_stream == null) {
238 jj_input_stream = new SimpleCharStream(stream, 1, 1);
244 } catch (ParseException e) {
245 processParseException(e);
250 * Call the php parse command ( php -l -f <filename> )
251 * and create markers according to the external parser output
253 public static void phpExternalParse(final IFile file) {
254 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
255 final String filename = file.getLocation().toString();
257 final String[] arguments = { filename };
258 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
259 final String command = form.format(arguments);
261 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
264 // parse the buffer to find the errors and warnings
265 createMarkers(parserResult, file);
266 } catch (CoreException e) {
267 PHPeclipsePlugin.log(e);
272 * Put a new html block in the stack.
274 public static final void createNewHTMLCode() {
275 final int currentPosition = SimpleCharStream.getPosition();
276 if (currentPosition == htmlStart) {
279 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
280 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
283 private static final void parse() throws ParseException {
287 static final public void phpFile() throws ParseException {
291 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
329 case INTEGER_LITERAL:
330 case FLOATING_POINT_LITERAL:
346 } catch (TokenMgrError e) {
347 PHPeclipsePlugin.log(e);
348 errorStart = SimpleCharStream.getPosition();
349 errorEnd = errorStart + 1;
350 errorMessage = e.getMessage();
352 {if (true) throw generateParseException();}
357 * A php block is a <?= expression [;]?>
358 * or <?php somephpcode ?>
359 * or <? somephpcode ?>
361 static final public void PhpBlock() throws ParseException {
362 final int start = jj_input_stream.getPosition();
363 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
403 case INTEGER_LITERAL:
404 case FLOATING_POINT_LITERAL:
411 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
414 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
416 jj_consume_token(PHPSTARTLONG);
419 jj_consume_token(PHPSTARTSHORT);
421 setMarker(fileToParse,
422 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
424 jj_input_stream.getPosition(),
426 "Line " + token.beginLine);
427 } catch (CoreException e) {
428 PHPeclipsePlugin.log(e);
433 jj_consume_token(-1);
434 throw new ParseException();
443 jj_consume_token(PHPEND);
444 } catch (ParseException e) {
445 errorMessage = "'?>' expected";
447 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
448 errorEnd = jj_input_stream.getPosition() + 1;
454 jj_consume_token(-1);
455 throw new ParseException();
459 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
460 final Expression expr;
461 final int pos = SimpleCharStream.getPosition();
462 PHPEchoBlock echoBlock;
463 jj_consume_token(PHPECHOSTART);
465 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
467 jj_consume_token(SEMICOLON);
473 jj_consume_token(PHPEND);
474 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
475 pushOnAstNodes(echoBlock);
476 {if (true) return echoBlock;}
477 throw new Error("Missing return statement in function");
480 static final public void Php() throws ParseException {
483 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
517 case INTEGER_LITERAL:
518 case FLOATING_POINT_LITERAL:
535 static final public ClassDeclaration ClassDeclaration() throws ParseException {
536 final ClassDeclaration classDeclaration;
537 final Token className;
538 Token superclassName = null;
540 jj_consume_token(CLASS);
542 pos = jj_input_stream.getPosition();
543 className = jj_consume_token(IDENTIFIER);
544 } catch (ParseException e) {
545 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
547 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
548 errorEnd = jj_input_stream.getPosition() + 1;
551 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
553 jj_consume_token(EXTENDS);
555 superclassName = jj_consume_token(IDENTIFIER);
556 } catch (ParseException e) {
557 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
559 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
560 errorEnd = jj_input_stream.getPosition() + 1;
568 if (superclassName == null) {
569 classDeclaration = new ClassDeclaration(currentSegment,
570 className.image.toCharArray(),
574 classDeclaration = new ClassDeclaration(currentSegment,
575 className.image.toCharArray(),
576 superclassName.image.toCharArray(),
580 currentSegment.add(classDeclaration);
581 currentSegment = classDeclaration;
582 ClassBody(classDeclaration);
583 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
584 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
585 pushOnAstNodes(classDeclaration);
586 {if (true) return classDeclaration;}
587 throw new Error("Missing return statement in function");
590 static final public void ClassBody(ClassDeclaration classDeclaration) throws ParseException {
592 jj_consume_token(LBRACE);
593 } catch (ParseException e) {
594 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected";
596 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
597 errorEnd = SimpleCharStream.getPosition() + 1;
602 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
611 ClassBodyDeclaration(classDeclaration);
614 jj_consume_token(RBRACE);
615 } catch (ParseException e) {
616 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected";
618 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
619 errorEnd = SimpleCharStream.getPosition() + 1;
625 * A class can contain only methods and fields.
627 static final public void ClassBodyDeclaration(ClassDeclaration classDeclaration) throws ParseException {
628 MethodDeclaration method;
629 FieldDeclaration field;
630 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
632 method = MethodDeclaration();
633 classDeclaration.addMethod(method);
636 field = FieldDeclaration();
637 classDeclaration.addVariable(field);
641 jj_consume_token(-1);
642 throw new ParseException();
647 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
649 static final public FieldDeclaration FieldDeclaration() throws ParseException {
650 VariableDeclaration variableDeclaration;
651 VariableDeclaration[] list;
652 final ArrayList arrayList = new ArrayList();
653 final int pos = SimpleCharStream.getPosition();
654 jj_consume_token(VAR);
655 variableDeclaration = VariableDeclarator();
656 arrayList.add(variableDeclaration);
657 outlineInfo.addVariable(new String(variableDeclaration.name));
658 currentSegment.add(variableDeclaration);
661 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
669 jj_consume_token(COMMA);
670 variableDeclaration = VariableDeclarator();
671 arrayList.add(variableDeclaration);
672 outlineInfo.addVariable(new String(variableDeclaration.name));
673 currentSegment.add(variableDeclaration);
676 jj_consume_token(SEMICOLON);
677 } catch (ParseException e) {
678 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
680 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
681 errorEnd = SimpleCharStream.getPosition() + 1;
684 list = new VariableDeclaration[arrayList.size()];
685 arrayList.toArray(list);
686 {if (true) return new FieldDeclaration(list,
688 SimpleCharStream.getPosition());}
689 throw new Error("Missing return statement in function");
692 static final public VariableDeclaration VariableDeclarator() throws ParseException {
693 final String varName;
694 Expression initializer = null;
695 final int pos = jj_input_stream.getPosition();
696 varName = VariableDeclaratorId();
697 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
699 jj_consume_token(ASSIGN);
701 initializer = VariableInitializer();
702 } catch (ParseException e) {
703 errorMessage = "Literal expression expected in variable initializer";
705 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
706 errorEnd = jj_input_stream.getPosition() + 1;
714 if (initializer == null) {
715 {if (true) return new VariableDeclaration(currentSegment,
716 varName.toCharArray(),
718 jj_input_stream.getPosition());}
720 {if (true) return new VariableDeclaration(currentSegment,
721 varName.toCharArray(),
724 throw new Error("Missing return statement in function");
729 * @return the variable name (with suffix)
731 static final public String VariableDeclaratorId() throws ParseException {
733 Expression expression;
734 final StringBuffer buff = new StringBuffer();
735 final int pos = SimpleCharStream.getPosition();
736 ConstantIdentifier ex;
747 ex = new ConstantIdentifier(expr.toCharArray(),
749 SimpleCharStream.getPosition());
750 expression = VariableSuffix(ex);
751 buff.append(expression.toStringExpression());
753 {if (true) return buff.toString();}
754 } catch (ParseException e) {
755 errorMessage = "'$' expected for variable identifier";
757 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
758 errorEnd = jj_input_stream.getPosition() + 1;
761 throw new Error("Missing return statement in function");
764 static final public String Variable() throws ParseException {
765 final StringBuffer buff;
766 Expression expression = null;
769 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
771 token = jj_consume_token(DOLLAR_ID);
772 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
774 jj_consume_token(LBRACE);
775 expression = Expression();
776 jj_consume_token(RBRACE);
782 if (expression == null && !assigning) {
783 {if (true) return token.image.substring(1);}
785 buff = new StringBuffer(token.image);
787 buff.append(expression.toStringExpression());
789 {if (true) return buff.toString();}
792 jj_consume_token(DOLLAR);
793 expr = VariableName();
794 {if (true) return expr;}
798 jj_consume_token(-1);
799 throw new ParseException();
801 throw new Error("Missing return statement in function");
804 static final public String VariableName() throws ParseException {
805 final StringBuffer buff;
807 Expression expression = null;
809 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
811 jj_consume_token(LBRACE);
812 expression = Expression();
813 jj_consume_token(RBRACE);
814 buff = new StringBuffer('{');
815 buff.append(expression.toStringExpression());
817 {if (true) return buff.toString();}
820 token = jj_consume_token(IDENTIFIER);
821 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
823 jj_consume_token(LBRACE);
824 expression = Expression();
825 jj_consume_token(RBRACE);
831 if (expression == null) {
832 {if (true) return token.image;}
834 buff = new StringBuffer(token.image);
836 buff.append(expression.toStringExpression());
838 {if (true) return buff.toString();}
841 jj_consume_token(DOLLAR);
842 expr = VariableName();
843 buff = new StringBuffer('$');
845 {if (true) return buff.toString();}
848 token = jj_consume_token(DOLLAR_ID);
849 {if (true) return token.image;}
853 jj_consume_token(-1);
854 throw new ParseException();
856 throw new Error("Missing return statement in function");
859 static final public Expression VariableInitializer() throws ParseException {
860 final Expression expr;
862 final int pos = SimpleCharStream.getPosition();
863 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
867 case INTEGER_LITERAL:
868 case FLOATING_POINT_LITERAL:
871 {if (true) return expr;}
874 jj_consume_token(MINUS);
875 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
876 case INTEGER_LITERAL:
877 token = jj_consume_token(INTEGER_LITERAL);
879 case FLOATING_POINT_LITERAL:
880 token = jj_consume_token(FLOATING_POINT_LITERAL);
884 jj_consume_token(-1);
885 throw new ParseException();
887 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
889 SimpleCharStream.getPosition()),
894 jj_consume_token(PLUS);
895 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
896 case INTEGER_LITERAL:
897 token = jj_consume_token(INTEGER_LITERAL);
899 case FLOATING_POINT_LITERAL:
900 token = jj_consume_token(FLOATING_POINT_LITERAL);
904 jj_consume_token(-1);
905 throw new ParseException();
907 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
909 SimpleCharStream.getPosition()),
914 expr = ArrayDeclarator();
915 {if (true) return expr;}
918 token = jj_consume_token(IDENTIFIER);
919 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
923 jj_consume_token(-1);
924 throw new ParseException();
926 throw new Error("Missing return statement in function");
929 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
930 Expression expr,expr2;
932 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
934 jj_consume_token(ARRAYASSIGN);
935 expr2 = Expression();
936 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
942 {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());}
943 throw new Error("Missing return statement in function");
946 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
947 ArrayVariableDeclaration expr;
948 final ArrayList list = new ArrayList();
949 jj_consume_token(LPAREN);
950 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
966 case INTEGER_LITERAL:
967 case FLOATING_POINT_LITERAL:
972 expr = ArrayVariable();
981 jj_consume_token(COMMA);
982 expr = ArrayVariable();
990 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
992 jj_consume_token(COMMA);
999 jj_consume_token(RPAREN);
1000 ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1002 {if (true) return vars;}
1003 throw new Error("Missing return statement in function");
1007 * A Method Declaration.
1008 * <b>function</b> MetodDeclarator() Block()
1010 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1011 final MethodDeclaration functionDeclaration;
1013 jj_consume_token(FUNCTION);
1015 functionDeclaration = MethodDeclarator();
1016 outlineInfo.addVariable(new String(functionDeclaration.name));
1017 } catch (ParseException e) {
1018 if (errorMessage != null) {if (true) throw e;}
1019 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1021 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1022 errorEnd = jj_input_stream.getPosition() + 1;
1023 {if (true) throw e;}
1025 if (currentSegment != null) {
1026 currentSegment.add(functionDeclaration);
1027 currentSegment = functionDeclaration;
1029 currentFunction = functionDeclaration;
1031 functionDeclaration.statements = block.statements;
1032 currentFunction = null;
1033 if (currentSegment != null) {
1034 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1036 {if (true) return functionDeclaration;}
1037 throw new Error("Missing return statement in function");
1041 * A MethodDeclarator.
1042 * [&] IDENTIFIER(parameters ...).
1043 * @return a function description for the outline
1045 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1046 final Token identifier;
1047 Token reference = null;
1048 final Hashtable formalParameters;
1049 final int pos = SimpleCharStream.getPosition();
1050 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1052 reference = jj_consume_token(BIT_AND);
1055 jj_la1[21] = jj_gen;
1058 identifier = jj_consume_token(IDENTIFIER);
1059 formalParameters = FormalParameters();
1060 {if (true) return new MethodDeclaration(currentSegment,
1061 identifier.image.toCharArray(),
1065 SimpleCharStream.getPosition());}
1066 throw new Error("Missing return statement in function");
1070 * FormalParameters follows method identifier.
1071 * (FormalParameter())
1073 static final public Hashtable FormalParameters() throws ParseException {
1074 VariableDeclaration var;
1075 final Hashtable parameters = new Hashtable();
1077 jj_consume_token(LPAREN);
1078 } catch (ParseException e) {
1079 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1081 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1082 errorEnd = jj_input_stream.getPosition() + 1;
1083 {if (true) throw e;}
1085 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1089 var = FormalParameter();
1090 parameters.put(new String(var.name),var);
1093 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1098 jj_la1[22] = jj_gen;
1101 jj_consume_token(COMMA);
1102 var = FormalParameter();
1103 parameters.put(new String(var.name),var);
1107 jj_la1[23] = jj_gen;
1111 jj_consume_token(RPAREN);
1112 } catch (ParseException e) {
1113 errorMessage = "')' expected";
1115 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1116 errorEnd = jj_input_stream.getPosition() + 1;
1117 {if (true) throw e;}
1119 {if (true) return parameters;}
1120 throw new Error("Missing return statement in function");
1124 * A formal parameter.
1125 * $varname[=value] (,$varname[=value])
1127 static final public VariableDeclaration FormalParameter() throws ParseException {
1128 final VariableDeclaration variableDeclaration;
1130 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1132 token = jj_consume_token(BIT_AND);
1135 jj_la1[24] = jj_gen;
1138 variableDeclaration = VariableDeclarator();
1139 if (token != null) {
1140 variableDeclaration.setReference(true);
1142 {if (true) return variableDeclaration;}
1143 throw new Error("Missing return statement in function");
1146 static final public ConstantIdentifier Type() throws ParseException {
1148 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1150 jj_consume_token(STRING);
1151 pos = SimpleCharStream.getPosition();
1152 {if (true) return new ConstantIdentifier(Types.STRING,
1156 jj_consume_token(BOOL);
1157 pos = SimpleCharStream.getPosition();
1158 {if (true) return new ConstantIdentifier(Types.BOOL,
1162 jj_consume_token(BOOLEAN);
1163 pos = SimpleCharStream.getPosition();
1164 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1168 jj_consume_token(REAL);
1169 pos = SimpleCharStream.getPosition();
1170 {if (true) return new ConstantIdentifier(Types.REAL,
1174 jj_consume_token(DOUBLE);
1175 pos = SimpleCharStream.getPosition();
1176 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1180 jj_consume_token(FLOAT);
1181 pos = SimpleCharStream.getPosition();
1182 {if (true) return new ConstantIdentifier(Types.FLOAT,
1186 jj_consume_token(INT);
1187 pos = SimpleCharStream.getPosition();
1188 {if (true) return new ConstantIdentifier(Types.INT,
1192 jj_consume_token(INTEGER);
1193 pos = SimpleCharStream.getPosition();
1194 {if (true) return new ConstantIdentifier(Types.INTEGER,
1198 jj_consume_token(OBJECT);
1199 pos = SimpleCharStream.getPosition();
1200 {if (true) return new ConstantIdentifier(Types.OBJECT,
1204 jj_la1[25] = jj_gen;
1205 jj_consume_token(-1);
1206 throw new ParseException();
1208 throw new Error("Missing return statement in function");
1211 static final public Expression Expression() throws ParseException {
1212 final Expression expr;
1213 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1215 expr = PrintExpression();
1216 {if (true) return expr;}
1219 expr = ListExpression();
1220 {if (true) return expr;}
1223 jj_la1[26] = jj_gen;
1224 if (jj_2_3(2147483647)) {
1225 expr = varAssignation();
1226 {if (true) return expr;}
1228 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1242 case INTEGER_LITERAL:
1243 case FLOATING_POINT_LITERAL:
1244 case STRING_LITERAL:
1248 expr = ConditionalExpression();
1249 {if (true) return expr;}
1252 jj_la1[27] = jj_gen;
1253 jj_consume_token(-1);
1254 throw new ParseException();
1258 throw new Error("Missing return statement in function");
1262 * A Variable assignation.
1263 * varName (an assign operator) any expression
1265 static final public VarAssignation varAssignation() throws ParseException {
1267 final Expression expression;
1268 final int assignOperator;
1269 final int pos = SimpleCharStream.getPosition();
1270 varName = VariableDeclaratorId();
1271 assignOperator = AssignmentOperator();
1273 expression = Expression();
1274 } catch (ParseException e) {
1275 if (errorMessage != null) {
1276 {if (true) throw e;}
1278 errorMessage = "expression expected";
1280 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1281 errorEnd = jj_input_stream.getPosition() + 1;
1282 {if (true) throw e;}
1284 {if (true) return new VarAssignation(varName.toCharArray(),
1288 SimpleCharStream.getPosition());}
1289 throw new Error("Missing return statement in function");
1292 static final public int AssignmentOperator() throws ParseException {
1293 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1295 jj_consume_token(ASSIGN);
1296 {if (true) return VarAssignation.EQUAL;}
1299 jj_consume_token(STARASSIGN);
1300 {if (true) return VarAssignation.STAR_EQUAL;}
1303 jj_consume_token(SLASHASSIGN);
1304 {if (true) return VarAssignation.SLASH_EQUAL;}
1307 jj_consume_token(REMASSIGN);
1308 {if (true) return VarAssignation.REM_EQUAL;}
1311 jj_consume_token(PLUSASSIGN);
1312 {if (true) return VarAssignation.PLUS_EQUAL;}
1315 jj_consume_token(MINUSASSIGN);
1316 {if (true) return VarAssignation.MINUS_EQUAL;}
1319 jj_consume_token(LSHIFTASSIGN);
1320 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1322 case RSIGNEDSHIFTASSIGN:
1323 jj_consume_token(RSIGNEDSHIFTASSIGN);
1324 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1327 jj_consume_token(ANDASSIGN);
1328 {if (true) return VarAssignation.AND_EQUAL;}
1331 jj_consume_token(XORASSIGN);
1332 {if (true) return VarAssignation.XOR_EQUAL;}
1335 jj_consume_token(ORASSIGN);
1336 {if (true) return VarAssignation.OR_EQUAL;}
1339 jj_consume_token(DOTASSIGN);
1340 {if (true) return VarAssignation.DOT_EQUAL;}
1343 jj_consume_token(TILDEEQUAL);
1344 {if (true) return VarAssignation.TILDE_EQUAL;}
1347 jj_la1[28] = jj_gen;
1348 jj_consume_token(-1);
1349 throw new ParseException();
1351 throw new Error("Missing return statement in function");
1354 static final public Expression ConditionalExpression() throws ParseException {
1355 final Expression expr;
1356 Expression expr2 = null;
1357 Expression expr3 = null;
1358 expr = ConditionalOrExpression();
1359 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1361 jj_consume_token(HOOK);
1362 expr2 = Expression();
1363 jj_consume_token(COLON);
1364 expr3 = ConditionalExpression();
1367 jj_la1[29] = jj_gen;
1370 if (expr3 == null) {
1371 {if (true) return expr;}
1373 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1374 throw new Error("Missing return statement in function");
1377 static final public Expression ConditionalOrExpression() throws ParseException {
1378 Expression expr,expr2;
1380 expr = ConditionalAndExpression();
1383 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1389 jj_la1[30] = jj_gen;
1392 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1394 jj_consume_token(OR_OR);
1395 operator = OperatorIds.OR_OR;
1398 jj_consume_token(_ORL);
1399 operator = OperatorIds.ORL;
1402 jj_la1[31] = jj_gen;
1403 jj_consume_token(-1);
1404 throw new ParseException();
1406 expr2 = ConditionalAndExpression();
1407 expr = new BinaryExpression(expr,expr2,operator);
1409 {if (true) return expr;}
1410 throw new Error("Missing return statement in function");
1413 static final public Expression ConditionalAndExpression() throws ParseException {
1414 Expression expr,expr2;
1416 expr = ConcatExpression();
1419 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1425 jj_la1[32] = jj_gen;
1428 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1430 jj_consume_token(AND_AND);
1431 operator = OperatorIds.AND_AND;
1434 jj_consume_token(_ANDL);
1435 operator = OperatorIds.ANDL;
1438 jj_la1[33] = jj_gen;
1439 jj_consume_token(-1);
1440 throw new ParseException();
1442 expr2 = ConcatExpression();
1443 expr = new BinaryExpression(expr,expr2,operator);
1445 {if (true) return expr;}
1446 throw new Error("Missing return statement in function");
1449 static final public Expression ConcatExpression() throws ParseException {
1450 Expression expr,expr2;
1451 expr = InclusiveOrExpression();
1454 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1459 jj_la1[34] = jj_gen;
1462 jj_consume_token(DOT);
1463 expr2 = InclusiveOrExpression();
1464 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1466 {if (true) return expr;}
1467 throw new Error("Missing return statement in function");
1470 static final public Expression InclusiveOrExpression() throws ParseException {
1471 Expression expr,expr2;
1472 expr = ExclusiveOrExpression();
1475 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1480 jj_la1[35] = jj_gen;
1483 jj_consume_token(BIT_OR);
1484 expr2 = ExclusiveOrExpression();
1485 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1487 {if (true) return expr;}
1488 throw new Error("Missing return statement in function");
1491 static final public Expression ExclusiveOrExpression() throws ParseException {
1492 Expression expr,expr2;
1493 expr = AndExpression();
1496 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1501 jj_la1[36] = jj_gen;
1504 jj_consume_token(XOR);
1505 expr2 = AndExpression();
1506 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1508 {if (true) return expr;}
1509 throw new Error("Missing return statement in function");
1512 static final public Expression AndExpression() throws ParseException {
1513 Expression expr,expr2;
1514 expr = EqualityExpression();
1517 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1522 jj_la1[37] = jj_gen;
1525 jj_consume_token(BIT_AND);
1526 expr2 = EqualityExpression();
1527 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1529 {if (true) return expr;}
1530 throw new Error("Missing return statement in function");
1533 static final public Expression EqualityExpression() throws ParseException {
1534 Expression expr,expr2;
1536 expr = RelationalExpression();
1539 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1543 case BANGDOUBLEEQUAL:
1548 jj_la1[38] = jj_gen;
1551 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1553 jj_consume_token(EQUAL_EQUAL);
1554 operator = OperatorIds.EQUAL_EQUAL;
1557 jj_consume_token(DIF);
1558 operator = OperatorIds.DIF;
1561 jj_consume_token(NOT_EQUAL);
1562 operator = OperatorIds.DIF;
1564 case BANGDOUBLEEQUAL:
1565 jj_consume_token(BANGDOUBLEEQUAL);
1566 operator = OperatorIds.BANG_EQUAL_EQUAL;
1569 jj_consume_token(TRIPLEEQUAL);
1570 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1573 jj_la1[39] = jj_gen;
1574 jj_consume_token(-1);
1575 throw new ParseException();
1578 expr2 = RelationalExpression();
1579 } catch (ParseException e) {
1580 if (errorMessage != null) {
1581 {if (true) throw e;}
1583 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1585 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1586 errorEnd = jj_input_stream.getPosition() + 1;
1587 {if (true) throw e;}
1589 expr = new BinaryExpression(expr,expr2,operator);
1591 {if (true) return expr;}
1592 throw new Error("Missing return statement in function");
1595 static final public Expression RelationalExpression() throws ParseException {
1596 Expression expr,expr2;
1598 expr = ShiftExpression();
1601 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1609 jj_la1[40] = jj_gen;
1612 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1614 jj_consume_token(LT);
1615 operator = OperatorIds.LESS;
1618 jj_consume_token(GT);
1619 operator = OperatorIds.GREATER;
1622 jj_consume_token(LE);
1623 operator = OperatorIds.LESS_EQUAL;
1626 jj_consume_token(GE);
1627 operator = OperatorIds.GREATER_EQUAL;
1630 jj_la1[41] = jj_gen;
1631 jj_consume_token(-1);
1632 throw new ParseException();
1634 expr2 = ShiftExpression();
1635 expr = new BinaryExpression(expr,expr2,operator);
1637 {if (true) return expr;}
1638 throw new Error("Missing return statement in function");
1641 static final public Expression ShiftExpression() throws ParseException {
1642 Expression expr,expr2;
1644 expr = AdditiveExpression();
1647 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1650 case RUNSIGNEDSHIFT:
1654 jj_la1[42] = jj_gen;
1657 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1659 jj_consume_token(LSHIFT);
1660 operator = OperatorIds.LEFT_SHIFT;
1663 jj_consume_token(RSIGNEDSHIFT);
1664 operator = OperatorIds.RIGHT_SHIFT;
1666 case RUNSIGNEDSHIFT:
1667 jj_consume_token(RUNSIGNEDSHIFT);
1668 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1671 jj_la1[43] = jj_gen;
1672 jj_consume_token(-1);
1673 throw new ParseException();
1675 expr2 = AdditiveExpression();
1676 expr = new BinaryExpression(expr,expr2,operator);
1678 {if (true) return expr;}
1679 throw new Error("Missing return statement in function");
1682 static final public Expression AdditiveExpression() throws ParseException {
1683 Expression expr,expr2;
1685 expr = MultiplicativeExpression();
1688 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1694 jj_la1[44] = jj_gen;
1697 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1699 jj_consume_token(PLUS);
1700 operator = OperatorIds.PLUS;
1703 jj_consume_token(MINUS);
1704 operator = OperatorIds.MINUS;
1707 jj_la1[45] = jj_gen;
1708 jj_consume_token(-1);
1709 throw new ParseException();
1711 expr2 = MultiplicativeExpression();
1712 expr = new BinaryExpression(expr,expr2,operator);
1714 {if (true) return expr;}
1715 throw new Error("Missing return statement in function");
1718 static final public Expression MultiplicativeExpression() throws ParseException {
1719 Expression expr,expr2;
1722 expr = UnaryExpression();
1723 } catch (ParseException e) {
1724 if (errorMessage != null) {if (true) throw e;}
1725 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1727 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1728 errorEnd = jj_input_stream.getPosition() + 1;
1729 {if (true) throw e;}
1733 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1740 jj_la1[46] = jj_gen;
1743 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1745 jj_consume_token(STAR);
1746 operator = OperatorIds.MULTIPLY;
1749 jj_consume_token(SLASH);
1750 operator = OperatorIds.DIVIDE;
1753 jj_consume_token(REMAINDER);
1754 operator = OperatorIds.REMAINDER;
1757 jj_la1[47] = jj_gen;
1758 jj_consume_token(-1);
1759 throw new ParseException();
1761 expr2 = UnaryExpression();
1762 expr = new BinaryExpression(expr,expr2,operator);
1764 {if (true) return expr;}
1765 throw new Error("Missing return statement in function");
1769 * An unary expression starting with @, & or nothing
1771 static final public Expression UnaryExpression() throws ParseException {
1773 final int pos = SimpleCharStream.getPosition();
1774 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1776 jj_consume_token(BIT_AND);
1777 expr = UnaryExpressionNoPrefix();
1778 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1792 case INTEGER_LITERAL:
1793 case FLOATING_POINT_LITERAL:
1794 case STRING_LITERAL:
1798 expr = AtUnaryExpression();
1799 {if (true) return expr;}
1802 jj_la1[48] = jj_gen;
1803 jj_consume_token(-1);
1804 throw new ParseException();
1806 throw new Error("Missing return statement in function");
1809 static final public Expression AtUnaryExpression() throws ParseException {
1811 final int pos = SimpleCharStream.getPosition();
1812 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1814 jj_consume_token(AT);
1815 expr = AtUnaryExpression();
1816 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1829 case INTEGER_LITERAL:
1830 case FLOATING_POINT_LITERAL:
1831 case STRING_LITERAL:
1835 expr = UnaryExpressionNoPrefix();
1836 {if (true) return expr;}
1839 jj_la1[49] = jj_gen;
1840 jj_consume_token(-1);
1841 throw new ParseException();
1843 throw new Error("Missing return statement in function");
1846 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1849 final int pos = SimpleCharStream.getPosition();
1850 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1853 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1855 jj_consume_token(PLUS);
1856 operator = OperatorIds.PLUS;
1859 jj_consume_token(MINUS);
1860 operator = OperatorIds.MINUS;
1863 jj_la1[50] = jj_gen;
1864 jj_consume_token(-1);
1865 throw new ParseException();
1867 expr = UnaryExpression();
1868 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1872 expr = PreIncDecExpression();
1873 {if (true) return expr;}
1882 case INTEGER_LITERAL:
1883 case FLOATING_POINT_LITERAL:
1884 case STRING_LITERAL:
1888 expr = UnaryExpressionNotPlusMinus();
1889 {if (true) return expr;}
1892 jj_la1[51] = jj_gen;
1893 jj_consume_token(-1);
1894 throw new ParseException();
1896 throw new Error("Missing return statement in function");
1899 static final public Expression PreIncDecExpression() throws ParseException {
1900 final Expression expr;
1902 final int pos = SimpleCharStream.getPosition();
1903 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1905 jj_consume_token(INCR);
1906 operator = OperatorIds.PLUS_PLUS;
1909 jj_consume_token(DECR);
1910 operator = OperatorIds.MINUS_MINUS;
1913 jj_la1[52] = jj_gen;
1914 jj_consume_token(-1);
1915 throw new ParseException();
1917 expr = PrimaryExpression();
1918 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1919 throw new Error("Missing return statement in function");
1922 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
1924 final int pos = SimpleCharStream.getPosition();
1925 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1927 jj_consume_token(BANG);
1928 expr = UnaryExpression();
1929 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1932 jj_la1[53] = jj_gen;
1933 if (jj_2_4(2147483647)) {
1934 expr = CastExpression();
1935 {if (true) return expr;}
1937 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1943 expr = PostfixExpression();
1944 {if (true) return expr;}
1949 case INTEGER_LITERAL:
1950 case FLOATING_POINT_LITERAL:
1951 case STRING_LITERAL:
1953 {if (true) return expr;}
1956 jj_consume_token(LPAREN);
1957 expr = Expression();
1959 jj_consume_token(RPAREN);
1960 } catch (ParseException e) {
1961 errorMessage = "')' expected";
1963 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1964 errorEnd = jj_input_stream.getPosition() + 1;
1965 {if (true) throw e;}
1967 {if (true) return expr;}
1970 jj_la1[54] = jj_gen;
1971 jj_consume_token(-1);
1972 throw new ParseException();
1976 throw new Error("Missing return statement in function");
1979 static final public CastExpression CastExpression() throws ParseException {
1980 final ConstantIdentifier type;
1981 final Expression expr;
1982 final int pos = SimpleCharStream.getPosition();
1983 jj_consume_token(LPAREN);
1984 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1997 jj_consume_token(ARRAY);
1998 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
2001 jj_la1[55] = jj_gen;
2002 jj_consume_token(-1);
2003 throw new ParseException();
2005 jj_consume_token(RPAREN);
2006 expr = UnaryExpression();
2007 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2008 throw new Error("Missing return statement in function");
2011 static final public Expression PostfixExpression() throws ParseException {
2014 final int pos = SimpleCharStream.getPosition();
2015 expr = PrimaryExpression();
2016 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2019 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2021 jj_consume_token(INCR);
2022 operator = OperatorIds.PLUS_PLUS;
2025 jj_consume_token(DECR);
2026 operator = OperatorIds.MINUS_MINUS;
2029 jj_la1[56] = jj_gen;
2030 jj_consume_token(-1);
2031 throw new ParseException();
2035 jj_la1[57] = jj_gen;
2038 if (operator == -1) {
2039 {if (true) return expr;}
2041 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2042 throw new Error("Missing return statement in function");
2045 static final public Expression PrimaryExpression() throws ParseException {
2046 final Token identifier;
2048 final int pos = SimpleCharStream.getPosition();
2050 identifier = jj_consume_token(IDENTIFIER);
2051 jj_consume_token(STATICCLASSACCESS);
2052 expr = ClassIdentifier();
2053 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2055 SimpleCharStream.getPosition()),
2057 ClassAccess.STATIC);
2060 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2067 jj_la1[58] = jj_gen;
2070 expr = PrimarySuffix(expr);
2072 {if (true) return expr;}
2074 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2079 expr = PrimaryPrefix();
2082 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2089 jj_la1[59] = jj_gen;
2092 expr = PrimarySuffix(expr);
2094 {if (true) return expr;}
2097 expr = ArrayDeclarator();
2098 {if (true) return expr;}
2101 jj_la1[60] = jj_gen;
2102 jj_consume_token(-1);
2103 throw new ParseException();
2106 throw new Error("Missing return statement in function");
2109 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2110 final ArrayVariableDeclaration[] vars;
2111 final int pos = SimpleCharStream.getPosition();
2112 jj_consume_token(ARRAY);
2113 vars = ArrayInitializer();
2114 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2115 throw new Error("Missing return statement in function");
2118 static final public Expression PrimaryPrefix() throws ParseException {
2119 final Expression expr;
2122 final int pos = SimpleCharStream.getPosition();
2123 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2125 token = jj_consume_token(IDENTIFIER);
2126 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2128 SimpleCharStream.getPosition());}
2131 jj_consume_token(NEW);
2132 expr = ClassIdentifier();
2133 {if (true) return new PrefixedUnaryExpression(expr,
2139 var = VariableDeclaratorId();
2140 {if (true) return new ConstantIdentifier(var.toCharArray(),
2142 SimpleCharStream.getPosition());}
2145 jj_la1[61] = jj_gen;
2146 jj_consume_token(-1);
2147 throw new ParseException();
2149 throw new Error("Missing return statement in function");
2152 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2154 final StringBuffer buff;
2155 final int pos = SimpleCharStream.getPosition();
2156 jj_consume_token(NEW);
2157 expr = ClassIdentifier();
2158 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2164 buff = new StringBuffer(expr.toStringExpression());
2165 expr = PrimaryExpression();
2166 buff.append(expr.toStringExpression());
2167 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2169 SimpleCharStream.getPosition());
2172 jj_la1[62] = jj_gen;
2175 {if (true) return new PrefixedUnaryExpression(expr,
2178 throw new Error("Missing return statement in function");
2181 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2184 final int pos = SimpleCharStream.getPosition();
2185 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2187 token = jj_consume_token(IDENTIFIER);
2188 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2190 SimpleCharStream.getPosition());}
2194 expr = VariableDeclaratorId();
2195 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2197 SimpleCharStream.getPosition());}
2200 jj_la1[63] = jj_gen;
2201 jj_consume_token(-1);
2202 throw new ParseException();
2204 throw new Error("Missing return statement in function");
2207 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2208 final AbstractSuffixExpression expr;
2209 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2211 expr = Arguments(prefix);
2212 {if (true) return expr;}
2216 expr = VariableSuffix(prefix);
2217 {if (true) return expr;}
2220 jj_la1[64] = jj_gen;
2221 jj_consume_token(-1);
2222 throw new ParseException();
2224 throw new Error("Missing return statement in function");
2227 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2229 final int pos = SimpleCharStream.getPosition();
2230 Expression expression = null;
2231 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2233 jj_consume_token(CLASSACCESS);
2235 expr = VariableName();
2236 } catch (ParseException e) {
2237 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2239 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2240 errorEnd = jj_input_stream.getPosition() + 1;
2241 {if (true) throw e;}
2243 {if (true) return new ClassAccess(prefix,
2244 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2245 ClassAccess.NORMAL);}
2248 jj_consume_token(LBRACKET);
2249 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2274 case INTEGER_LITERAL:
2275 case FLOATING_POINT_LITERAL:
2276 case STRING_LITERAL:
2280 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2296 case INTEGER_LITERAL:
2297 case FLOATING_POINT_LITERAL:
2298 case STRING_LITERAL:
2302 expression = Expression();
2313 expression = Type();
2316 jj_la1[65] = jj_gen;
2317 jj_consume_token(-1);
2318 throw new ParseException();
2322 jj_la1[66] = jj_gen;
2326 jj_consume_token(RBRACKET);
2327 } catch (ParseException e) {
2328 errorMessage = "']' expected";
2330 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2331 errorEnd = jj_input_stream.getPosition() + 1;
2332 {if (true) throw e;}
2334 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2337 jj_la1[67] = jj_gen;
2338 jj_consume_token(-1);
2339 throw new ParseException();
2341 throw new Error("Missing return statement in function");
2344 static final public Literal Literal() throws ParseException {
2347 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2348 case INTEGER_LITERAL:
2349 token = jj_consume_token(INTEGER_LITERAL);
2350 pos = SimpleCharStream.getPosition();
2351 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2353 case FLOATING_POINT_LITERAL:
2354 token = jj_consume_token(FLOATING_POINT_LITERAL);
2355 pos = SimpleCharStream.getPosition();
2356 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2358 case STRING_LITERAL:
2359 token = jj_consume_token(STRING_LITERAL);
2360 pos = SimpleCharStream.getPosition();
2361 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length());}
2364 jj_consume_token(TRUE);
2365 pos = SimpleCharStream.getPosition();
2366 {if (true) return new TrueLiteral(pos-4,pos);}
2369 jj_consume_token(FALSE);
2370 pos = SimpleCharStream.getPosition();
2371 {if (true) return new FalseLiteral(pos-4,pos);}
2374 jj_consume_token(NULL);
2375 pos = SimpleCharStream.getPosition();
2376 {if (true) return new NullLiteral(pos-4,pos);}
2379 jj_la1[68] = jj_gen;
2380 jj_consume_token(-1);
2381 throw new ParseException();
2383 throw new Error("Missing return statement in function");
2386 static final public FunctionCall Arguments(Expression func) throws ParseException {
2387 Expression[] args = null;
2388 jj_consume_token(LPAREN);
2389 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2405 case INTEGER_LITERAL:
2406 case FLOATING_POINT_LITERAL:
2407 case STRING_LITERAL:
2411 args = ArgumentList();
2414 jj_la1[69] = jj_gen;
2418 jj_consume_token(RPAREN);
2419 } catch (ParseException e) {
2420 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2422 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2423 errorEnd = jj_input_stream.getPosition() + 1;
2424 {if (true) throw e;}
2426 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2427 throw new Error("Missing return statement in function");
2431 * An argument list is a list of arguments separated by comma :
2432 * argumentDeclaration() (, argumentDeclaration)*
2433 * @return an array of arguments
2435 static final public Expression[] ArgumentList() throws ParseException {
2437 final ArrayList list = new ArrayList();
2442 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2447 jj_la1[70] = jj_gen;
2450 jj_consume_token(COMMA);
2454 } catch (ParseException e) {
2455 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2457 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2458 errorEnd = jj_input_stream.getPosition() + 1;
2459 {if (true) throw e;}
2462 Expression[] arguments = new Expression[list.size()];
2463 list.toArray(arguments);
2464 {if (true) return arguments;}
2465 throw new Error("Missing return statement in function");
2469 * A Statement without break.
2471 static final public Statement StatementNoBreak() throws ParseException {
2472 final Statement statement;
2475 statement = Expression();
2477 jj_consume_token(SEMICOLON);
2478 } catch (ParseException e) {
2479 if (e.currentToken.next.kind != 4) {
2480 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2482 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2483 errorEnd = jj_input_stream.getPosition() + 1;
2484 {if (true) throw e;}
2487 {if (true) return statement;}
2488 } else if (jj_2_7(2)) {
2489 statement = LabeledStatement();
2490 {if (true) return statement;}
2492 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2494 statement = Block();
2495 {if (true) return statement;}
2498 statement = EmptyStatement();
2499 {if (true) return statement;}
2508 statement = StatementExpression();
2510 jj_consume_token(SEMICOLON);
2511 } catch (ParseException e) {
2512 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2514 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2515 errorEnd = jj_input_stream.getPosition() + 1;
2516 {if (true) throw e;}
2518 {if (true) return statement;}
2521 statement = SwitchStatement();
2522 {if (true) return statement;}
2525 statement = IfStatement();
2526 {if (true) return statement;}
2529 statement = WhileStatement();
2530 {if (true) return statement;}
2533 statement = DoStatement();
2534 {if (true) return statement;}
2537 statement = ForStatement();
2538 {if (true) return statement;}
2541 statement = ForeachStatement();
2542 {if (true) return statement;}
2545 statement = ContinueStatement();
2546 {if (true) return statement;}
2549 statement = ReturnStatement();
2550 {if (true) return statement;}
2553 statement = EchoStatement();
2554 {if (true) return statement;}
2561 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2563 token = jj_consume_token(AT);
2566 jj_la1[71] = jj_gen;
2569 statement = IncludeStatement();
2570 if (token != null) {
2571 ((InclusionStatement)statement).silent = true;
2573 {if (true) return statement;}
2576 statement = StaticStatement();
2577 {if (true) return statement;}
2580 statement = GlobalStatement();
2581 {if (true) return statement;}
2584 jj_la1[72] = jj_gen;
2585 jj_consume_token(-1);
2586 throw new ParseException();
2589 throw new Error("Missing return statement in function");
2593 * A Normal statement.
2595 static final public Statement Statement() throws ParseException {
2596 final Statement statement;
2597 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2628 case INTEGER_LITERAL:
2629 case FLOATING_POINT_LITERAL:
2630 case STRING_LITERAL:
2636 statement = StatementNoBreak();
2637 {if (true) return statement;}
2640 statement = BreakStatement();
2641 {if (true) return statement;}
2644 jj_la1[73] = jj_gen;
2645 jj_consume_token(-1);
2646 throw new ParseException();
2648 throw new Error("Missing return statement in function");
2652 * An html block inside a php syntax.
2654 static final public HTMLBlock htmlBlock() throws ParseException {
2655 final int startIndex = nodePtr;
2656 AstNode[] blockNodes;
2658 jj_consume_token(PHPEND);
2661 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2666 jj_la1[74] = jj_gen;
2672 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2674 jj_consume_token(PHPSTARTLONG);
2677 jj_consume_token(PHPSTARTSHORT);
2680 jj_la1[75] = jj_gen;
2681 jj_consume_token(-1);
2682 throw new ParseException();
2684 } catch (ParseException e) {
2685 errorMessage = "End of file unexpected, '<?php' expected";
2687 errorStart = jj_input_stream.getPosition();
2688 errorEnd = jj_input_stream.getPosition();
2689 {if (true) throw e;}
2691 nbNodes = nodePtr-startIndex - 1;
2692 blockNodes = new AstNode[nbNodes];
2693 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2694 {if (true) return new HTMLBlock(nodes);}
2695 throw new Error("Missing return statement in function");
2699 * An include statement. It's "include" an expression;
2701 static final public InclusionStatement IncludeStatement() throws ParseException {
2702 final Expression expr;
2704 final int pos = jj_input_stream.getPosition();
2705 final InclusionStatement inclusionStatement;
2706 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2708 jj_consume_token(REQUIRE);
2709 keyword = InclusionStatement.REQUIRE;
2712 jj_consume_token(REQUIRE_ONCE);
2713 keyword = InclusionStatement.REQUIRE_ONCE;
2716 jj_consume_token(INCLUDE);
2717 keyword = InclusionStatement.INCLUDE;
2720 jj_consume_token(INCLUDE_ONCE);
2721 keyword = InclusionStatement.INCLUDE_ONCE;
2724 jj_la1[76] = jj_gen;
2725 jj_consume_token(-1);
2726 throw new ParseException();
2729 expr = Expression();
2730 } catch (ParseException e) {
2731 if (errorMessage != null) {
2732 {if (true) throw e;}
2734 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2736 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2737 errorEnd = jj_input_stream.getPosition() + 1;
2738 {if (true) throw e;}
2740 inclusionStatement = new InclusionStatement(currentSegment,
2744 currentSegment.add(inclusionStatement);
2746 jj_consume_token(SEMICOLON);
2747 } catch (ParseException e) {
2748 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2750 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2751 errorEnd = jj_input_stream.getPosition() + 1;
2752 {if (true) throw e;}
2754 {if (true) return inclusionStatement;}
2755 throw new Error("Missing return statement in function");
2758 static final public PrintExpression PrintExpression() throws ParseException {
2759 final Expression expr;
2760 final int pos = SimpleCharStream.getPosition();
2761 jj_consume_token(PRINT);
2762 expr = Expression();
2763 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2764 throw new Error("Missing return statement in function");
2767 static final public ListExpression ListExpression() throws ParseException {
2769 Expression expression = null;
2770 ArrayList list = new ArrayList();
2771 final int pos = SimpleCharStream.getPosition();
2772 jj_consume_token(LIST);
2774 jj_consume_token(LPAREN);
2775 } catch (ParseException e) {
2776 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2778 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2779 errorEnd = jj_input_stream.getPosition() + 1;
2780 {if (true) throw e;}
2782 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2785 expr = VariableDeclaratorId();
2789 jj_la1[77] = jj_gen;
2792 if (expr == null) list.add(null);
2795 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2800 jj_la1[78] = jj_gen;
2804 jj_consume_token(COMMA);
2805 } catch (ParseException e) {
2806 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2808 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2809 errorEnd = jj_input_stream.getPosition() + 1;
2810 {if (true) throw e;}
2812 expr = VariableDeclaratorId();
2816 jj_consume_token(RPAREN);
2817 } catch (ParseException e) {
2818 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2820 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2821 errorEnd = jj_input_stream.getPosition() + 1;
2822 {if (true) throw e;}
2824 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2826 jj_consume_token(ASSIGN);
2827 expression = Expression();
2828 String[] strings = new String[list.size()];
2829 list.toArray(strings);
2830 {if (true) return new ListExpression(strings,
2833 SimpleCharStream.getPosition());}
2836 jj_la1[79] = jj_gen;
2839 String[] strings = new String[list.size()];
2840 list.toArray(strings);
2841 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2842 throw new Error("Missing return statement in function");
2846 * An echo statement.
2847 * echo anyexpression (, otherexpression)*
2849 static final public EchoStatement EchoStatement() throws ParseException {
2850 final ArrayList expressions = new ArrayList();
2852 final int pos = SimpleCharStream.getPosition();
2853 jj_consume_token(ECHO);
2854 expr = Expression();
2855 expressions.add(expr);
2858 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2863 jj_la1[80] = jj_gen;
2866 jj_consume_token(COMMA);
2867 expr = Expression();
2868 expressions.add(expr);
2871 jj_consume_token(SEMICOLON);
2872 Expression[] exprs = new Expression[expressions.size()];
2873 expressions.toArray(exprs);
2874 {if (true) return new EchoStatement(exprs,pos);}
2875 } catch (ParseException e) {
2876 if (e.currentToken.next.kind != 4) {
2877 errorMessage = "';' expected after 'echo' statement";
2879 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2880 errorEnd = jj_input_stream.getPosition() + 1;
2881 {if (true) throw e;}
2884 throw new Error("Missing return statement in function");
2887 static final public GlobalStatement GlobalStatement() throws ParseException {
2888 final int pos = jj_input_stream.getPosition();
2890 ArrayList vars = new ArrayList();
2891 GlobalStatement global;
2892 jj_consume_token(GLOBAL);
2893 expr = VariableDeclaratorId();
2897 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2902 jj_la1[81] = jj_gen;
2905 jj_consume_token(COMMA);
2906 expr = VariableDeclaratorId();
2910 jj_consume_token(SEMICOLON);
2911 String[] strings = new String[vars.size()];
2912 vars.toArray(strings);
2913 global = new GlobalStatement(currentSegment,
2916 SimpleCharStream.getPosition());
2917 currentSegment.add(global);
2918 {if (true) return global;}
2919 } catch (ParseException e) {
2920 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2922 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2923 errorEnd = jj_input_stream.getPosition() + 1;
2924 {if (true) throw e;}
2926 throw new Error("Missing return statement in function");
2929 static final public StaticStatement StaticStatement() throws ParseException {
2930 final int pos = SimpleCharStream.getPosition();
2931 final ArrayList vars = new ArrayList();
2932 VariableDeclaration expr;
2933 jj_consume_token(STATIC);
2934 expr = VariableDeclarator();
2935 vars.add(new String(expr.name));
2938 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2943 jj_la1[82] = jj_gen;
2946 jj_consume_token(COMMA);
2947 expr = VariableDeclarator();
2948 vars.add(new String(expr.name));
2951 jj_consume_token(SEMICOLON);
2952 String[] strings = new String[vars.size()];
2953 vars.toArray(strings);
2954 {if (true) return new StaticStatement(strings,
2956 SimpleCharStream.getPosition());}
2957 } catch (ParseException e) {
2958 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2960 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2961 errorEnd = jj_input_stream.getPosition() + 1;
2962 {if (true) throw e;}
2964 throw new Error("Missing return statement in function");
2967 static final public LabeledStatement LabeledStatement() throws ParseException {
2968 final int pos = SimpleCharStream.getPosition();
2970 final Statement statement;
2971 label = jj_consume_token(IDENTIFIER);
2972 jj_consume_token(COLON);
2973 statement = Statement();
2974 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
2975 throw new Error("Missing return statement in function");
2985 static final public Block Block() throws ParseException {
2986 final int pos = SimpleCharStream.getPosition();
2987 final ArrayList list = new ArrayList();
2988 Statement statement;
2990 jj_consume_token(LBRACE);
2991 } catch (ParseException e) {
2992 errorMessage = "'{' expected";
2994 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2995 errorEnd = jj_input_stream.getPosition() + 1;
2996 {if (true) throw e;}
3000 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3035 case INTEGER_LITERAL:
3036 case FLOATING_POINT_LITERAL:
3037 case STRING_LITERAL:
3046 jj_la1[83] = jj_gen;
3049 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3083 case INTEGER_LITERAL:
3084 case FLOATING_POINT_LITERAL:
3085 case STRING_LITERAL:
3091 statement = BlockStatement();
3092 list.add(statement);
3095 statement = htmlBlock();
3096 list.add(statement);
3099 jj_la1[84] = jj_gen;
3100 jj_consume_token(-1);
3101 throw new ParseException();
3105 jj_consume_token(RBRACE);
3106 } catch (ParseException e) {
3107 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3109 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3110 errorEnd = jj_input_stream.getPosition() + 1;
3111 {if (true) throw e;}
3113 Statement[] statements = new Statement[list.size()];
3114 list.toArray(statements);
3115 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3116 throw new Error("Missing return statement in function");
3119 static final public Statement BlockStatement() throws ParseException {
3120 final Statement statement;
3121 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3153 case INTEGER_LITERAL:
3154 case FLOATING_POINT_LITERAL:
3155 case STRING_LITERAL:
3161 statement = Statement();
3162 {if (true) return statement;}
3165 statement = ClassDeclaration();
3166 {if (true) return statement;}
3169 statement = MethodDeclaration();
3170 {if (true) return statement;}
3173 jj_la1[85] = jj_gen;
3174 jj_consume_token(-1);
3175 throw new ParseException();
3177 throw new Error("Missing return statement in function");
3181 * A Block statement that will not contain any 'break'
3183 static final public Statement BlockStatementNoBreak() throws ParseException {
3184 final Statement statement;
3185 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3216 case INTEGER_LITERAL:
3217 case FLOATING_POINT_LITERAL:
3218 case STRING_LITERAL:
3224 statement = StatementNoBreak();
3225 {if (true) return statement;}
3228 statement = ClassDeclaration();
3229 {if (true) return statement;}
3232 statement = MethodDeclaration();
3233 {if (true) return statement;}
3236 jj_la1[86] = jj_gen;
3237 jj_consume_token(-1);
3238 throw new ParseException();
3240 throw new Error("Missing return statement in function");
3243 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3244 final ArrayList list = new ArrayList();
3245 VariableDeclaration var;
3246 var = LocalVariableDeclarator();
3250 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3255 jj_la1[87] = jj_gen;
3258 jj_consume_token(COMMA);
3259 var = LocalVariableDeclarator();
3262 VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3264 {if (true) return vars;}
3265 throw new Error("Missing return statement in function");
3268 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3269 final String varName;
3270 Expression initializer = null;
3271 final int pos = SimpleCharStream.getPosition();
3272 varName = VariableDeclaratorId();
3273 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3275 jj_consume_token(ASSIGN);
3276 initializer = Expression();
3279 jj_la1[88] = jj_gen;
3282 if (initializer == null) {
3283 {if (true) return new VariableDeclaration(currentSegment,
3284 varName.toCharArray(),
3286 jj_input_stream.getPosition());}
3288 {if (true) return new VariableDeclaration(currentSegment,
3289 varName.toCharArray(),
3292 throw new Error("Missing return statement in function");
3295 static final public EmptyStatement EmptyStatement() throws ParseException {
3297 jj_consume_token(SEMICOLON);
3298 pos = SimpleCharStream.getPosition();
3299 {if (true) return new EmptyStatement(pos-1,pos);}
3300 throw new Error("Missing return statement in function");
3303 static final public Statement StatementExpression() throws ParseException {
3304 Expression expr,expr2;
3306 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3309 expr = PreIncDecExpression();
3310 {if (true) return expr;}
3317 expr = PrimaryExpression();
3318 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3333 case RSIGNEDSHIFTASSIGN:
3334 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3336 jj_consume_token(INCR);
3337 {if (true) return new PostfixedUnaryExpression(expr,
3338 OperatorIds.PLUS_PLUS,
3339 SimpleCharStream.getPosition());}
3342 jj_consume_token(DECR);
3343 {if (true) return new PostfixedUnaryExpression(expr,
3344 OperatorIds.MINUS_MINUS,
3345 SimpleCharStream.getPosition());}
3359 case RSIGNEDSHIFTASSIGN:
3360 operator = AssignmentOperator();
3361 expr2 = Expression();
3362 {if (true) return new BinaryExpression(expr,expr2,operator);}
3365 jj_la1[89] = jj_gen;
3366 jj_consume_token(-1);
3367 throw new ParseException();
3371 jj_la1[90] = jj_gen;
3374 {if (true) return expr;}
3377 jj_la1[91] = jj_gen;
3378 jj_consume_token(-1);
3379 throw new ParseException();
3381 throw new Error("Missing return statement in function");
3384 static final public SwitchStatement SwitchStatement() throws ParseException {
3385 final Expression variable;
3386 final AbstractCase[] cases;
3387 final int pos = SimpleCharStream.getPosition();
3388 jj_consume_token(SWITCH);
3390 jj_consume_token(LPAREN);
3391 } catch (ParseException e) {
3392 errorMessage = "'(' expected after 'switch'";
3394 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3395 errorEnd = jj_input_stream.getPosition() + 1;
3396 {if (true) throw e;}
3399 variable = Expression();
3400 } catch (ParseException e) {
3401 if (errorMessage != null) {
3402 {if (true) throw e;}
3404 errorMessage = "expression expected";
3406 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3407 errorEnd = jj_input_stream.getPosition() + 1;
3408 {if (true) throw e;}
3411 jj_consume_token(RPAREN);
3412 } catch (ParseException e) {
3413 errorMessage = "')' expected";
3415 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3416 errorEnd = jj_input_stream.getPosition() + 1;
3417 {if (true) throw e;}
3419 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3421 cases = switchStatementBrace();
3424 cases = switchStatementColon(pos, pos + 6);
3427 jj_la1[92] = jj_gen;
3428 jj_consume_token(-1);
3429 throw new ParseException();
3431 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3432 throw new Error("Missing return statement in function");
3435 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3437 final ArrayList cases = new ArrayList();
3438 jj_consume_token(LBRACE);
3441 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3447 jj_la1[93] = jj_gen;
3450 cas = switchLabel0();
3454 jj_consume_token(RBRACE);
3455 AbstractCase[] abcase = new AbstractCase[cases.size()];
3456 cases.toArray(abcase);
3457 {if (true) return abcase;}
3458 } catch (ParseException e) {
3459 errorMessage = "'}' expected";
3461 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3462 errorEnd = jj_input_stream.getPosition() + 1;
3463 {if (true) throw e;}
3465 throw new Error("Missing return statement in function");
3469 * A Switch statement with : ... endswitch;
3470 * @param start the begin offset of the switch
3471 * @param end the end offset of the switch
3473 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3475 final ArrayList cases = new ArrayList();
3476 jj_consume_token(COLON);
3478 setMarker(fileToParse,
3479 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3483 "Line " + token.beginLine);
3484 } catch (CoreException e) {
3485 PHPeclipsePlugin.log(e);
3489 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3495 jj_la1[94] = jj_gen;
3498 cas = switchLabel0();
3502 jj_consume_token(ENDSWITCH);
3503 } catch (ParseException e) {
3504 errorMessage = "'endswitch' expected";
3506 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3507 errorEnd = jj_input_stream.getPosition() + 1;
3508 {if (true) throw e;}
3511 jj_consume_token(SEMICOLON);
3512 AbstractCase[] abcase = new AbstractCase[cases.size()];
3513 cases.toArray(abcase);
3514 {if (true) return abcase;}
3515 } catch (ParseException e) {
3516 errorMessage = "';' expected after 'endswitch' keyword";
3518 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3519 errorEnd = jj_input_stream.getPosition() + 1;
3520 {if (true) throw e;}
3522 throw new Error("Missing return statement in function");
3525 static final public AbstractCase switchLabel0() throws ParseException {
3526 final Expression expr;
3527 Statement statement;
3528 final ArrayList stmts = new ArrayList();
3529 final int pos = SimpleCharStream.getPosition();
3530 expr = SwitchLabel();
3533 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3567 case INTEGER_LITERAL:
3568 case FLOATING_POINT_LITERAL:
3569 case STRING_LITERAL:
3578 jj_la1[95] = jj_gen;
3581 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3614 case INTEGER_LITERAL:
3615 case FLOATING_POINT_LITERAL:
3616 case STRING_LITERAL:
3622 statement = BlockStatementNoBreak();
3623 stmts.add(statement);
3626 statement = htmlBlock();
3627 stmts.add(statement);
3630 jj_la1[96] = jj_gen;
3631 jj_consume_token(-1);
3632 throw new ParseException();
3635 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3637 statement = BreakStatement();
3638 stmts.add(statement);
3641 jj_la1[97] = jj_gen;
3644 Statement[] stmtsArray = new Statement[stmts.size()];
3645 stmts.toArray(stmtsArray);
3646 if (expr == null) {//it's a default
3647 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3649 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3650 throw new Error("Missing return statement in function");
3655 * case Expression() :
3657 * @return the if it was a case and null if not
3659 static final public Expression SwitchLabel() throws ParseException {
3660 final Expression expr;
3661 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3663 token = jj_consume_token(CASE);
3665 expr = Expression();
3666 } catch (ParseException e) {
3667 if (errorMessage != null) {if (true) throw e;}
3668 errorMessage = "expression expected after 'case' keyword";
3670 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3671 errorEnd = jj_input_stream.getPosition() + 1;
3672 {if (true) throw e;}
3675 jj_consume_token(COLON);
3676 {if (true) return expr;}
3677 } catch (ParseException e) {
3678 errorMessage = "':' expected after case expression";
3680 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3681 errorEnd = jj_input_stream.getPosition() + 1;
3682 {if (true) throw e;}
3686 token = jj_consume_token(_DEFAULT);
3688 jj_consume_token(COLON);
3689 {if (true) return null;}
3690 } catch (ParseException e) {
3691 errorMessage = "':' expected after 'default' keyword";
3693 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3694 errorEnd = jj_input_stream.getPosition() + 1;
3695 {if (true) throw e;}
3699 jj_la1[98] = jj_gen;
3700 jj_consume_token(-1);
3701 throw new ParseException();
3703 throw new Error("Missing return statement in function");
3706 static final public Break BreakStatement() throws ParseException {
3707 Expression expression = null;
3708 final int start = SimpleCharStream.getPosition();
3709 jj_consume_token(BREAK);
3710 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3726 case INTEGER_LITERAL:
3727 case FLOATING_POINT_LITERAL:
3728 case STRING_LITERAL:
3732 expression = Expression();
3735 jj_la1[99] = jj_gen;
3739 jj_consume_token(SEMICOLON);
3740 } catch (ParseException e) {
3741 errorMessage = "';' expected after 'break' keyword";
3743 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3744 errorEnd = jj_input_stream.getPosition() + 1;
3745 {if (true) throw e;}
3747 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3748 throw new Error("Missing return statement in function");
3751 static final public IfStatement IfStatement() throws ParseException {
3752 final int pos = jj_input_stream.getPosition();
3753 Expression condition;
3754 IfStatement ifStatement;
3755 jj_consume_token(IF);
3756 condition = Condition("if");
3757 ifStatement = IfStatement0(condition, pos,pos+2);
3758 {if (true) return ifStatement;}
3759 throw new Error("Missing return statement in function");
3762 static final public Expression Condition(final String keyword) throws ParseException {
3763 final Expression condition;
3765 jj_consume_token(LPAREN);
3766 } catch (ParseException e) {
3767 errorMessage = "'(' expected after " + keyword + " keyword";
3769 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length();
3770 errorEnd = errorStart +1;
3771 processParseException(e);
3773 condition = Expression();
3775 jj_consume_token(RPAREN);
3776 {if (true) return condition;}
3777 } catch (ParseException e) {
3778 errorMessage = "')' expected after " + keyword + " keyword";
3780 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3781 errorEnd = jj_input_stream.getPosition() + 1;
3782 {if (true) throw e;}
3784 throw new Error("Missing return statement in function");
3787 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3788 Statement statement;
3790 final Statement[] statementsArray;
3791 ElseIf elseifStatement;
3792 Else elseStatement = null;
3794 final ArrayList elseIfList = new ArrayList();
3796 int pos = SimpleCharStream.getPosition();
3798 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3800 jj_consume_token(COLON);
3801 stmts = new ArrayList();
3804 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3837 case INTEGER_LITERAL:
3838 case FLOATING_POINT_LITERAL:
3839 case STRING_LITERAL:
3848 jj_la1[100] = jj_gen;
3851 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3883 case INTEGER_LITERAL:
3884 case FLOATING_POINT_LITERAL:
3885 case STRING_LITERAL:
3891 statement = Statement();
3892 stmts.add(statement);
3895 statement = htmlBlock();
3896 stmts.add(statement);
3899 jj_la1[101] = jj_gen;
3900 jj_consume_token(-1);
3901 throw new ParseException();
3904 endStatements = SimpleCharStream.getPosition();
3907 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3912 jj_la1[102] = jj_gen;
3915 elseifStatement = ElseIfStatementColon();
3916 elseIfList.add(elseifStatement);
3918 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3920 elseStatement = ElseStatementColon();
3923 jj_la1[103] = jj_gen;
3927 setMarker(fileToParse,
3928 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
3932 "Line " + token.beginLine);
3933 } catch (CoreException e) {
3934 PHPeclipsePlugin.log(e);
3937 jj_consume_token(ENDIF);
3938 } catch (ParseException e) {
3939 errorMessage = "'endif' expected";
3941 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3942 errorEnd = jj_input_stream.getPosition() + 1;
3943 {if (true) throw e;}
3946 jj_consume_token(SEMICOLON);
3947 } catch (ParseException e) {
3948 errorMessage = "';' expected after 'endif' keyword";
3950 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3951 errorEnd = jj_input_stream.getPosition() + 1;
3952 {if (true) throw e;}
3954 elseIfs = new ElseIf[elseIfList.size()];
3955 elseIfList.toArray(elseIfs);
3956 if (stmts.size() == 1) {
3957 {if (true) return new IfStatement(condition,
3958 (Statement) stmts.get(0),
3962 SimpleCharStream.getPosition());}
3964 statementsArray = new Statement[stmts.size()];
3965 stmts.toArray(statementsArray);
3966 {if (true) return new IfStatement(condition,
3967 new Block(statementsArray,pos,endStatements),
3971 SimpleCharStream.getPosition());}
4006 case INTEGER_LITERAL:
4007 case FLOATING_POINT_LITERAL:
4008 case STRING_LITERAL:
4014 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4046 case INTEGER_LITERAL:
4047 case FLOATING_POINT_LITERAL:
4048 case STRING_LITERAL:
4060 jj_la1[104] = jj_gen;
4061 jj_consume_token(-1);
4062 throw new ParseException();
4066 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4071 jj_la1[105] = jj_gen;
4074 elseifStatement = ElseIfStatement();
4075 elseIfList.add(elseifStatement);
4077 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4079 jj_consume_token(ELSE);
4081 pos = SimpleCharStream.getPosition();
4082 statement = Statement();
4083 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4084 } catch (ParseException e) {
4085 if (errorMessage != null) {
4086 {if (true) throw e;}
4088 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4090 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4091 errorEnd = jj_input_stream.getPosition() + 1;
4092 {if (true) throw e;}
4096 jj_la1[106] = jj_gen;
4099 elseIfs = new ElseIf[elseIfList.size()];
4100 elseIfList.toArray(elseIfs);
4101 {if (true) return new IfStatement(condition,
4106 SimpleCharStream.getPosition());}
4109 jj_la1[107] = jj_gen;
4110 jj_consume_token(-1);
4111 throw new ParseException();
4113 throw new Error("Missing return statement in function");
4116 static final public ElseIf ElseIfStatementColon() throws ParseException {
4117 Expression condition;
4118 Statement statement;
4119 final ArrayList list = new ArrayList();
4120 final int pos = SimpleCharStream.getPosition();
4121 jj_consume_token(ELSEIF);
4122 condition = Condition("elseif");
4123 jj_consume_token(COLON);
4126 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4159 case INTEGER_LITERAL:
4160 case FLOATING_POINT_LITERAL:
4161 case STRING_LITERAL:
4170 jj_la1[108] = jj_gen;
4173 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4205 case INTEGER_LITERAL:
4206 case FLOATING_POINT_LITERAL:
4207 case STRING_LITERAL:
4213 statement = Statement();
4214 list.add(statement);
4217 statement = htmlBlock();
4218 list.add(statement);
4221 jj_la1[109] = jj_gen;
4222 jj_consume_token(-1);
4223 throw new ParseException();
4226 Statement[] stmtsArray = new Statement[list.size()];
4227 list.toArray(stmtsArray);
4228 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4229 throw new Error("Missing return statement in function");
4232 static final public Else ElseStatementColon() throws ParseException {
4233 Statement statement;
4234 final ArrayList list = new ArrayList();
4235 final int pos = SimpleCharStream.getPosition();
4236 jj_consume_token(ELSE);
4237 jj_consume_token(COLON);
4240 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4273 case INTEGER_LITERAL:
4274 case FLOATING_POINT_LITERAL:
4275 case STRING_LITERAL:
4284 jj_la1[110] = jj_gen;
4287 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4319 case INTEGER_LITERAL:
4320 case FLOATING_POINT_LITERAL:
4321 case STRING_LITERAL:
4327 statement = Statement();
4328 list.add(statement);
4331 statement = htmlBlock();
4332 list.add(statement);
4335 jj_la1[111] = jj_gen;
4336 jj_consume_token(-1);
4337 throw new ParseException();
4340 Statement[] stmtsArray = new Statement[list.size()];
4341 list.toArray(stmtsArray);
4342 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4343 throw new Error("Missing return statement in function");
4346 static final public ElseIf ElseIfStatement() throws ParseException {
4347 Expression condition;
4348 Statement statement;
4349 final ArrayList list = new ArrayList();
4350 final int pos = SimpleCharStream.getPosition();
4351 jj_consume_token(ELSEIF);
4352 condition = Condition("elseif");
4353 statement = Statement();
4354 list.add(statement);/*todo:do better*/
4355 Statement[] stmtsArray = new Statement[list.size()];
4356 list.toArray(stmtsArray);
4357 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4358 throw new Error("Missing return statement in function");
4361 static final public WhileStatement WhileStatement() throws ParseException {
4362 final Expression condition;
4363 final Statement action;
4364 final int pos = SimpleCharStream.getPosition();
4365 jj_consume_token(WHILE);
4366 condition = Condition("while");
4367 action = WhileStatement0(pos,pos + 5);
4368 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4369 throw new Error("Missing return statement in function");
4372 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4373 Statement statement;
4374 final ArrayList stmts = new ArrayList();
4375 final int pos = SimpleCharStream.getPosition();
4376 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4378 jj_consume_token(COLON);
4381 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4413 case INTEGER_LITERAL:
4414 case FLOATING_POINT_LITERAL:
4415 case STRING_LITERAL:
4424 jj_la1[112] = jj_gen;
4427 statement = Statement();
4428 stmts.add(statement);
4431 setMarker(fileToParse,
4432 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4436 "Line " + token.beginLine);
4437 } catch (CoreException e) {
4438 PHPeclipsePlugin.log(e);
4441 jj_consume_token(ENDWHILE);
4442 } catch (ParseException e) {
4443 errorMessage = "'endwhile' expected";
4445 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4446 errorEnd = jj_input_stream.getPosition() + 1;
4447 {if (true) throw e;}
4450 jj_consume_token(SEMICOLON);
4451 Statement[] stmtsArray = new Statement[stmts.size()];
4452 stmts.toArray(stmtsArray);
4453 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4454 } catch (ParseException e) {
4455 errorMessage = "';' expected after 'endwhile' keyword";
4457 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4458 errorEnd = jj_input_stream.getPosition() + 1;
4459 {if (true) throw e;}
4493 case INTEGER_LITERAL:
4494 case FLOATING_POINT_LITERAL:
4495 case STRING_LITERAL:
4501 statement = Statement();
4502 {if (true) return statement;}
4505 jj_la1[113] = jj_gen;
4506 jj_consume_token(-1);
4507 throw new ParseException();
4509 throw new Error("Missing return statement in function");
4512 static final public DoStatement DoStatement() throws ParseException {
4513 final Statement action;
4514 final Expression condition;
4515 final int pos = SimpleCharStream.getPosition();
4516 jj_consume_token(DO);
4517 action = Statement();
4518 jj_consume_token(WHILE);
4519 condition = Condition("while");
4521 jj_consume_token(SEMICOLON);
4522 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4523 } catch (ParseException e) {
4524 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4526 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4527 errorEnd = jj_input_stream.getPosition() + 1;
4528 {if (true) throw e;}
4530 throw new Error("Missing return statement in function");
4533 static final public ForeachStatement ForeachStatement() throws ParseException {
4534 Statement statement;
4535 Expression expression;
4536 final int pos = SimpleCharStream.getPosition();
4537 ArrayVariableDeclaration variable;
4538 jj_consume_token(FOREACH);
4540 jj_consume_token(LPAREN);
4541 } catch (ParseException e) {
4542 errorMessage = "'(' expected after 'foreach' keyword";
4544 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4545 errorEnd = jj_input_stream.getPosition() + 1;
4546 {if (true) throw e;}
4549 expression = Expression();
4550 } catch (ParseException e) {
4551 errorMessage = "variable expected";
4553 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4554 errorEnd = jj_input_stream.getPosition() + 1;
4555 {if (true) throw e;}
4558 jj_consume_token(AS);
4559 } catch (ParseException e) {
4560 errorMessage = "'as' expected";
4562 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4563 errorEnd = jj_input_stream.getPosition() + 1;
4564 {if (true) throw e;}
4567 variable = ArrayVariable();
4568 } catch (ParseException e) {
4569 errorMessage = "variable expected";
4571 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4572 errorEnd = jj_input_stream.getPosition() + 1;
4573 {if (true) throw e;}
4576 jj_consume_token(RPAREN);
4577 } catch (ParseException e) {
4578 errorMessage = "')' expected after 'foreach' keyword";
4580 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4581 errorEnd = jj_input_stream.getPosition() + 1;
4582 {if (true) throw e;}
4585 statement = Statement();
4586 } catch (ParseException e) {
4587 if (errorMessage != null) {if (true) throw e;}
4588 errorMessage = "statement expected";
4590 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4591 errorEnd = jj_input_stream.getPosition() + 1;
4592 {if (true) throw e;}
4594 {if (true) return new ForeachStatement(expression,
4598 SimpleCharStream.getPosition());}
4599 throw new Error("Missing return statement in function");
4602 static final public ForStatement ForStatement() throws ParseException {
4604 final int pos = SimpleCharStream.getPosition();
4605 Statement[] initializations = null;
4606 Expression condition = null;
4607 Statement[] increments = null;
4609 final ArrayList list = new ArrayList();
4610 final int startBlock, endBlock;
4611 token = jj_consume_token(FOR);
4613 jj_consume_token(LPAREN);
4614 } catch (ParseException e) {
4615 errorMessage = "'(' expected after 'for' keyword";
4617 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4618 errorEnd = jj_input_stream.getPosition() + 1;
4619 {if (true) throw e;}
4621 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4629 initializations = ForInit();
4632 jj_la1[114] = jj_gen;
4635 jj_consume_token(SEMICOLON);
4636 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4652 case INTEGER_LITERAL:
4653 case FLOATING_POINT_LITERAL:
4654 case STRING_LITERAL:
4658 condition = Expression();
4661 jj_la1[115] = jj_gen;
4664 jj_consume_token(SEMICOLON);
4665 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4673 increments = StatementExpressionList();
4676 jj_la1[116] = jj_gen;
4679 jj_consume_token(RPAREN);
4680 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4712 case INTEGER_LITERAL:
4713 case FLOATING_POINT_LITERAL:
4714 case STRING_LITERAL:
4720 action = Statement();
4721 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4724 jj_consume_token(COLON);
4725 startBlock = SimpleCharStream.getPosition();
4728 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4760 case INTEGER_LITERAL:
4761 case FLOATING_POINT_LITERAL:
4762 case STRING_LITERAL:
4771 jj_la1[117] = jj_gen;
4774 action = Statement();
4778 setMarker(fileToParse,
4779 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4781 pos+token.image.length(),
4783 "Line " + token.beginLine);
4784 } catch (CoreException e) {
4785 PHPeclipsePlugin.log(e);
4787 endBlock = SimpleCharStream.getPosition();
4789 jj_consume_token(ENDFOR);
4790 } catch (ParseException e) {
4791 errorMessage = "'endfor' expected";
4793 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4794 errorEnd = jj_input_stream.getPosition() + 1;
4795 {if (true) throw e;}
4798 jj_consume_token(SEMICOLON);
4799 Statement[] stmtsArray = new Statement[list.size()];
4800 list.toArray(stmtsArray);
4801 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4802 } catch (ParseException e) {
4803 errorMessage = "';' expected after 'endfor' keyword";
4805 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4806 errorEnd = jj_input_stream.getPosition() + 1;
4807 {if (true) throw e;}
4811 jj_la1[118] = jj_gen;
4812 jj_consume_token(-1);
4813 throw new ParseException();
4815 throw new Error("Missing return statement in function");
4818 static final public Statement[] ForInit() throws ParseException {
4819 Statement[] statements;
4820 if (jj_2_8(2147483647)) {
4821 statements = LocalVariableDeclaration();
4822 {if (true) return statements;}
4824 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4832 statements = StatementExpressionList();
4833 {if (true) return statements;}
4836 jj_la1[119] = jj_gen;
4837 jj_consume_token(-1);
4838 throw new ParseException();
4841 throw new Error("Missing return statement in function");
4844 static final public Statement[] StatementExpressionList() throws ParseException {
4845 final ArrayList list = new ArrayList();
4847 expr = StatementExpression();
4851 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4856 jj_la1[120] = jj_gen;
4859 jj_consume_token(COMMA);
4860 StatementExpression();
4863 Statement[] stmtsArray = new Statement[list.size()];
4864 list.toArray(stmtsArray);
4865 {if (true) return stmtsArray;}
4866 throw new Error("Missing return statement in function");
4869 static final public Continue ContinueStatement() throws ParseException {
4870 Expression expr = null;
4871 final int pos = SimpleCharStream.getPosition();
4872 jj_consume_token(CONTINUE);
4873 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4889 case INTEGER_LITERAL:
4890 case FLOATING_POINT_LITERAL:
4891 case STRING_LITERAL:
4895 expr = Expression();
4898 jj_la1[121] = jj_gen;
4902 jj_consume_token(SEMICOLON);
4903 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
4904 } catch (ParseException e) {
4905 errorMessage = "';' expected after 'continue' statement";
4907 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4908 errorEnd = jj_input_stream.getPosition() + 1;
4909 {if (true) throw e;}
4911 throw new Error("Missing return statement in function");
4914 static final public ReturnStatement ReturnStatement() throws ParseException {
4915 Expression expr = null;
4916 final int pos = SimpleCharStream.getPosition();
4917 jj_consume_token(RETURN);
4918 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4934 case INTEGER_LITERAL:
4935 case FLOATING_POINT_LITERAL:
4936 case STRING_LITERAL:
4940 expr = Expression();
4943 jj_la1[122] = jj_gen;
4947 jj_consume_token(SEMICOLON);
4948 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
4949 } catch (ParseException e) {
4950 errorMessage = "';' expected after 'return' statement";
4952 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4953 errorEnd = jj_input_stream.getPosition() + 1;
4954 {if (true) throw e;}
4956 throw new Error("Missing return statement in function");
4959 static final private boolean jj_2_1(int xla) {
4960 jj_la = xla; jj_lastpos = jj_scanpos = token;
4961 boolean retval = !jj_3_1();
4966 static final private boolean jj_2_2(int xla) {
4967 jj_la = xla; jj_lastpos = jj_scanpos = token;
4968 boolean retval = !jj_3_2();
4973 static final private boolean jj_2_3(int xla) {
4974 jj_la = xla; jj_lastpos = jj_scanpos = token;
4975 boolean retval = !jj_3_3();
4980 static final private boolean jj_2_4(int xla) {
4981 jj_la = xla; jj_lastpos = jj_scanpos = token;
4982 boolean retval = !jj_3_4();
4987 static final private boolean jj_2_5(int xla) {
4988 jj_la = xla; jj_lastpos = jj_scanpos = token;
4989 boolean retval = !jj_3_5();
4994 static final private boolean jj_2_6(int xla) {
4995 jj_la = xla; jj_lastpos = jj_scanpos = token;
4996 boolean retval = !jj_3_6();
5001 static final private boolean jj_2_7(int xla) {
5002 jj_la = xla; jj_lastpos = jj_scanpos = token;
5003 boolean retval = !jj_3_7();
5008 static final private boolean jj_2_8(int xla) {
5009 jj_la = xla; jj_lastpos = jj_scanpos = token;
5010 boolean retval = !jj_3_8();
5015 static final private boolean jj_3R_82() {
5016 if (jj_scan_token(INTEGER)) return true;
5017 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5021 static final private boolean jj_3R_44() {
5022 if (jj_scan_token(ARRAY)) return true;
5023 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5027 static final private boolean jj_3R_184() {
5028 if (jj_scan_token(ARRAY)) return true;
5029 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5033 static final private boolean jj_3R_81() {
5034 if (jj_scan_token(INT)) return true;
5035 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5039 static final private boolean jj_3R_183() {
5040 if (jj_3R_52()) return true;
5041 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5045 static final private boolean jj_3R_80() {
5046 if (jj_scan_token(FLOAT)) return true;
5047 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5051 static final private boolean jj_3R_85() {
5052 if (jj_scan_token(LIST)) return true;
5053 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5054 if (jj_scan_token(LPAREN)) return true;
5055 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5058 if (jj_3R_99()) jj_scanpos = xsp;
5059 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5062 if (jj_3R_100()) { jj_scanpos = xsp; break; }
5063 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5065 if (jj_scan_token(RPAREN)) return true;
5066 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5068 if (jj_3R_101()) jj_scanpos = xsp;
5069 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5073 static final private boolean jj_3R_167() {
5074 if (jj_scan_token(LPAREN)) return true;
5075 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5080 if (jj_3R_184()) return true;
5081 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5082 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5083 if (jj_scan_token(RPAREN)) return true;
5084 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5085 if (jj_3R_139()) return true;
5086 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5090 static final private boolean jj_3R_79() {
5091 if (jj_scan_token(DOUBLE)) return true;
5092 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5096 static final private boolean jj_3R_43() {
5097 if (jj_3R_52()) return true;
5098 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5102 static final private boolean jj_3R_78() {
5103 if (jj_scan_token(REAL)) return true;
5104 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5108 static final private boolean jj_3R_77() {
5109 if (jj_scan_token(BOOLEAN)) return true;
5110 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5114 static final private boolean jj_3R_84() {
5115 if (jj_scan_token(PRINT)) return true;
5116 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5117 if (jj_3R_45()) return true;
5118 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5122 static final private boolean jj_3R_76() {
5123 if (jj_scan_token(BOOL)) return true;
5124 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5128 static final private boolean jj_3_4() {
5129 if (jj_scan_token(LPAREN)) return true;
5130 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5135 if (jj_3R_44()) return true;
5136 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5137 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5138 if (jj_scan_token(RPAREN)) return true;
5139 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5143 static final private boolean jj_3R_75() {
5144 if (jj_scan_token(STRING)) return true;
5145 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5149 static final private boolean jj_3R_52() {
5168 if (jj_3R_83()) return true;
5169 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5170 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5171 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5172 } else 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;
5181 static final private boolean jj_3R_165() {
5182 if (jj_scan_token(LPAREN)) return true;
5183 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5184 if (jj_3R_45()) return true;
5185 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5186 if (jj_scan_token(RPAREN)) return true;
5187 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5191 static final private boolean jj_3R_164() {
5192 if (jj_3R_169()) return true;
5193 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5197 static final private boolean jj_3R_163() {
5198 if (jj_3R_168()) return true;
5199 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5203 static final private boolean jj_3R_162() {
5204 if (jj_3R_167()) return true;
5205 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5209 static final private boolean jj_3R_158() {
5220 if (jj_3R_165()) return true;
5221 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5222 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5223 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5224 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5225 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5229 static final private boolean jj_3R_161() {
5230 if (jj_scan_token(BANG)) return true;
5231 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5232 if (jj_3R_139()) return true;
5233 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5237 static final private boolean jj_3R_160() {
5238 if (jj_scan_token(DECR)) return true;
5239 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5243 static final private boolean jj_3R_159() {
5244 if (jj_scan_token(INCR)) return true;
5245 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5249 static final private boolean jj_3R_157() {
5254 if (jj_3R_160()) return true;
5255 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5256 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5257 if (jj_3R_166()) return true;
5258 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5262 static final private boolean jj_3R_152() {
5263 if (jj_3R_158()) return true;
5264 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5268 static final private boolean jj_3R_151() {
5269 if (jj_3R_157()) return true;
5270 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5274 static final private boolean jj_3R_156() {
5275 if (jj_scan_token(MINUS)) return true;
5276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5280 static final private boolean jj_3R_155() {
5281 if (jj_scan_token(PLUS)) return true;
5282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5286 static final private boolean jj_3R_148() {
5293 if (jj_3R_152()) return true;
5294 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5295 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5296 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5300 static final private boolean jj_3R_150() {
5305 if (jj_3R_156()) return true;
5306 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5307 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5308 if (jj_3R_139()) return true;
5309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5313 static final private boolean jj_3R_154() {
5314 if (jj_3R_148()) return true;
5315 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5319 static final private boolean jj_3R_149() {
5324 if (jj_3R_154()) return true;
5325 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5326 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330 static final private boolean jj_3R_153() {
5331 if (jj_scan_token(AT)) return true;
5332 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5333 if (jj_3R_149()) return true;
5334 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5338 static final private boolean jj_3R_144() {
5339 if (jj_3R_149()) return true;
5340 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5344 static final private boolean jj_3R_139() {
5349 if (jj_3R_144()) return true;
5350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5351 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5355 static final private boolean jj_3R_143() {
5356 if (jj_scan_token(BIT_AND)) return true;
5357 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5358 if (jj_3R_148()) return true;
5359 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5363 static final private boolean jj_3R_147() {
5364 if (jj_scan_token(REMAINDER)) return true;
5365 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5369 static final private boolean jj_3R_146() {
5370 if (jj_scan_token(SLASH)) return true;
5371 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5375 static final private boolean jj_3R_145() {
5376 if (jj_scan_token(STAR)) return true;
5377 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5381 static final private boolean jj_3R_140() {
5388 if (jj_3R_147()) return true;
5389 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5390 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5391 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5392 if (jj_3R_139()) return true;
5393 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5397 static final private boolean jj_3R_87() {
5398 if (jj_scan_token(ASSIGN)) return true;
5399 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5400 if (jj_3R_45()) return true;
5401 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5405 static final private boolean jj_3R_134() {
5406 if (jj_3R_139()) return true;
5407 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5411 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5412 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5417 static final private boolean jj_3R_142() {
5418 if (jj_scan_token(MINUS)) return true;
5419 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5423 static final private boolean jj_3R_141() {
5424 if (jj_scan_token(PLUS)) return true;
5425 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5429 static final private boolean jj_3R_135() {
5434 if (jj_3R_142()) return true;
5435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5436 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5437 if (jj_3R_134()) return true;
5438 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5442 static final private boolean jj_3R_128() {
5443 if (jj_3R_134()) return true;
5444 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5448 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5449 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5454 static final private boolean jj_3_7() {
5455 if (jj_3R_46()) return true;
5456 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5460 static final private boolean jj_3R_198() {
5461 if (jj_scan_token(COMMA)) return true;
5462 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5466 static final private boolean jj_3_2() {
5467 if (jj_scan_token(COMMA)) return true;
5468 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5469 if (jj_3R_41()) return true;
5470 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5474 static final private boolean jj_3R_197() {
5475 if (jj_3R_41()) return true;
5476 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5480 if (jj_3_2()) { jj_scanpos = xsp; break; }
5481 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5486 static final private boolean jj_3R_57() {
5487 if (jj_3R_50()) return true;
5488 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5491 if (jj_3R_87()) jj_scanpos = xsp;
5492 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5496 static final private boolean jj_3R_138() {
5497 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5498 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5502 static final private boolean jj_3R_137() {
5503 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5504 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5508 static final private boolean jj_3R_136() {
5509 if (jj_scan_token(LSHIFT)) return true;
5510 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5514 static final private boolean jj_3R_129() {
5521 if (jj_3R_138()) return true;
5522 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5523 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5524 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5525 if (jj_3R_128()) return true;
5526 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5530 static final private boolean jj_3R_121() {
5531 if (jj_3R_128()) return true;
5532 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5536 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5537 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5542 static final private boolean jj_3_6() {
5543 if (jj_3R_45()) return true;
5544 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5545 if (jj_scan_token(SEMICOLON)) return true;
5546 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5550 static final private boolean jj_3R_192() {
5551 if (jj_scan_token(LPAREN)) return true;
5552 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5555 if (jj_3R_197()) jj_scanpos = xsp;
5556 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5558 if (jj_3R_198()) jj_scanpos = xsp;
5559 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5560 if (jj_scan_token(RPAREN)) return true;
5561 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5565 static final private boolean jj_3R_58() {
5566 if (jj_scan_token(COMMA)) return true;
5567 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5568 if (jj_3R_57()) return true;
5569 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5573 static final private boolean jj_3R_47() {
5574 if (jj_3R_57()) return true;
5575 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5579 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5580 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5585 static final private boolean jj_3R_133() {
5586 if (jj_scan_token(GE)) return true;
5587 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5591 static final private boolean jj_3R_132() {
5592 if (jj_scan_token(LE)) return true;
5593 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5597 static final private boolean jj_3R_131() {
5598 if (jj_scan_token(GT)) return true;
5599 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5603 static final private boolean jj_3R_201() {
5604 if (jj_scan_token(ARRAYASSIGN)) return true;
5605 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5606 if (jj_3R_45()) return true;
5607 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5611 static final private boolean jj_3R_130() {
5612 if (jj_scan_token(LT)) return true;
5613 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5617 static final private boolean jj_3R_41() {
5618 if (jj_3R_45()) return true;
5619 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5622 if (jj_3R_201()) jj_scanpos = xsp;
5623 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5627 static final private boolean jj_3R_122() {
5636 if (jj_3R_133()) return true;
5637 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5638 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5639 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5640 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5641 if (jj_3R_121()) return true;
5642 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5646 static final private boolean jj_3R_119() {
5647 if (jj_3R_121()) return true;
5648 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5652 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5653 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5658 static final private boolean jj_3R_203() {
5659 if (jj_scan_token(COMMA)) return true;
5660 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5661 if (jj_3R_45()) return true;
5662 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5666 static final private boolean jj_3R_202() {
5667 if (jj_3R_45()) return true;
5668 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5672 if (jj_3R_203()) { jj_scanpos = xsp; break; }
5673 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5678 static final private boolean jj_3R_127() {
5679 if (jj_scan_token(TRIPLEEQUAL)) return true;
5680 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5684 static final private boolean jj_3R_200() {
5685 if (jj_3R_202()) return true;
5686 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5690 static final private boolean jj_3R_126() {
5691 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5692 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5696 static final private boolean jj_3R_125() {
5697 if (jj_scan_token(NOT_EQUAL)) return true;
5698 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5702 static final private boolean jj_3R_124() {
5703 if (jj_scan_token(DIF)) return true;
5704 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5708 static final private boolean jj_3R_123() {
5709 if (jj_scan_token(EQUAL_EQUAL)) return true;
5710 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5714 static final private boolean jj_3R_120() {
5725 if (jj_3R_127()) return true;
5726 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5727 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5728 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5729 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5730 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 if (jj_3R_119()) return true;
5732 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5736 static final private boolean jj_3R_93() {
5737 if (jj_3R_52()) return true;
5738 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5742 static final private boolean jj_3R_117() {
5743 if (jj_3R_119()) return true;
5744 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5748 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5749 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5754 static final private boolean jj_3R_108() {
5755 if (jj_scan_token(LBRACE)) return true;
5756 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5757 if (jj_3R_45()) return true;
5758 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5759 if (jj_scan_token(RBRACE)) return true;
5760 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5764 static final private boolean jj_3R_199() {
5765 if (jj_scan_token(LPAREN)) return true;
5766 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5769 if (jj_3R_200()) jj_scanpos = xsp;
5770 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5771 if (jj_scan_token(RPAREN)) return true;
5772 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5776 static final private boolean jj_3R_91() {
5777 if (jj_scan_token(DOLLAR_ID)) return true;
5778 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5782 static final private boolean jj_3R_118() {
5783 if (jj_scan_token(BIT_AND)) return true;
5784 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5785 if (jj_3R_117()) return true;
5786 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5790 static final private boolean jj_3R_177() {
5791 if (jj_scan_token(NULL)) return true;
5792 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5796 static final private boolean jj_3R_90() {
5797 if (jj_scan_token(DOLLAR)) return true;
5798 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5799 if (jj_3R_59()) return true;
5800 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5804 static final private boolean jj_3R_176() {
5805 if (jj_scan_token(FALSE)) return true;
5806 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5810 static final private boolean jj_3R_115() {
5811 if (jj_3R_117()) return true;
5812 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5816 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5817 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5822 static final private boolean jj_3R_175() {
5823 if (jj_scan_token(TRUE)) return true;
5824 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5828 static final private boolean jj_3R_174() {
5829 if (jj_scan_token(STRING_LITERAL)) return true;
5830 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5834 static final private boolean jj_3R_173() {
5835 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5836 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5840 static final private boolean jj_3R_169() {
5853 if (jj_3R_177()) return true;
5854 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5855 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5856 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5857 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5858 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5859 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5863 static final private boolean jj_3R_172() {
5864 if (jj_scan_token(INTEGER_LITERAL)) return true;
5865 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5869 static final private boolean jj_3R_89() {
5870 if (jj_scan_token(IDENTIFIER)) return true;
5871 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5874 if (jj_3R_108()) jj_scanpos = xsp;
5875 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5879 static final private boolean jj_3R_116() {
5880 if (jj_scan_token(XOR)) return true;
5881 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5882 if (jj_3R_115()) return true;
5883 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5887 static final private boolean jj_3R_113() {
5888 if (jj_3R_115()) return true;
5889 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5893 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5894 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5899 static final private boolean jj_3R_92() {
5900 if (jj_3R_45()) return true;
5901 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5905 static final private boolean jj_3R_60() {
5910 if (jj_3R_93()) return true;
5911 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5912 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5916 static final private boolean jj_3R_88() {
5917 if (jj_scan_token(LBRACE)) return true;
5918 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5919 if (jj_3R_45()) return true;
5920 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5921 if (jj_scan_token(RBRACE)) return true;
5922 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5926 static final private boolean jj_3R_59() {
5935 if (jj_3R_91()) return true;
5936 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5937 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5938 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5939 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5943 static final private boolean jj_3R_46() {
5944 if (jj_scan_token(IDENTIFIER)) return true;
5945 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5946 if (jj_scan_token(COLON)) return true;
5947 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5951 static final private boolean jj_3R_98() {
5952 if (jj_scan_token(LBRACE)) return true;
5953 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5954 if (jj_3R_45()) return true;
5955 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5956 if (jj_scan_token(RBRACE)) return true;
5957 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5961 static final private boolean jj_3R_114() {
5962 if (jj_scan_token(BIT_OR)) return true;
5963 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5964 if (jj_3R_113()) return true;
5965 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5969 static final private boolean jj_3R_109() {
5970 if (jj_3R_113()) return true;
5971 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5975 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5976 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5981 static final private boolean jj_3R_49() {
5982 if (jj_scan_token(LBRACKET)) return true;
5983 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5986 if (jj_3R_60()) jj_scanpos = xsp;
5987 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5988 if (jj_scan_token(RBRACKET)) return true;
5989 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5993 static final private boolean jj_3_8() {
5994 if (jj_3R_47()) return true;
5995 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5999 static final private boolean jj_3R_95() {
6000 if (jj_scan_token(DOLLAR)) return true;
6001 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6002 if (jj_3R_59()) return true;
6003 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6007 static final private boolean jj_3R_110() {
6008 if (jj_scan_token(DOT)) return true;
6009 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6010 if (jj_3R_109()) return true;
6011 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6015 static final private boolean jj_3R_104() {
6016 if (jj_3R_109()) return true;
6017 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6021 if (jj_3R_110()) { jj_scanpos = xsp; break; }
6022 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6027 static final private boolean jj_3R_94() {
6028 if (jj_scan_token(DOLLAR_ID)) return true;
6029 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6032 if (jj_3R_98()) jj_scanpos = xsp;
6033 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6037 static final private boolean jj_3R_61() {
6042 if (jj_3R_95()) return true;
6043 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6044 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6048 static final private boolean jj_3R_48() {
6049 if (jj_scan_token(CLASSACCESS)) return true;
6050 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6051 if (jj_3R_59()) return true;
6052 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6056 static final private boolean jj_3R_40() {
6061 if (jj_3R_49()) return true;
6062 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6063 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6067 static final private boolean jj_3R_112() {
6068 if (jj_scan_token(_ANDL)) return true;
6069 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6073 static final private boolean jj_3R_111() {
6074 if (jj_scan_token(AND_AND)) return true;
6075 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6079 static final private boolean jj_3R_196() {
6080 if (jj_3R_40()) return true;
6081 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6085 static final private boolean jj_3R_105() {
6090 if (jj_3R_112()) return true;
6091 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6092 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6093 if (jj_3R_104()) return true;
6094 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6098 static final private boolean jj_3R_195() {
6099 if (jj_3R_199()) return true;
6100 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6104 static final private boolean jj_3R_188() {
6109 if (jj_3R_196()) return true;
6110 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6111 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6115 static final private boolean jj_3R_97() {
6116 if (jj_scan_token(HOOK)) return true;
6117 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6118 if (jj_3R_45()) return true;
6119 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6120 if (jj_scan_token(COLON)) return true;
6121 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6122 if (jj_3R_86()) return true;
6123 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6127 static final private boolean jj_3R_102() {
6128 if (jj_3R_104()) return true;
6129 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6133 if (jj_3R_105()) { jj_scanpos = xsp; break; }
6134 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6139 static final private boolean jj_3_1() {
6140 if (jj_3R_40()) return true;
6141 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6145 static final private boolean jj_3R_187() {
6146 if (jj_3R_50()) return true;
6147 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6151 static final private boolean jj_3R_107() {
6152 if (jj_scan_token(_ORL)) return true;
6153 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6157 static final private boolean jj_3R_106() {
6158 if (jj_scan_token(OR_OR)) return true;
6159 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6163 static final private boolean jj_3R_186() {
6164 if (jj_scan_token(IDENTIFIER)) return true;
6165 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6169 static final private boolean jj_3R_178() {
6174 if (jj_3R_187()) return true;
6175 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6176 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6180 static final private boolean jj_3R_50() {
6181 if (jj_3R_61()) return true;
6182 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6186 if (jj_3_1()) { jj_scanpos = xsp; break; }
6187 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6192 static final private boolean jj_3R_103() {
6197 if (jj_3R_107()) return true;
6198 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6199 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6200 if (jj_3R_102()) return true;
6201 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6205 static final private boolean jj_3R_96() {
6206 if (jj_3R_102()) return true;
6207 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6211 if (jj_3R_103()) { jj_scanpos = xsp; break; }
6212 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6217 static final private boolean jj_3R_86() {
6218 if (jj_3R_96()) return true;
6219 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6222 if (jj_3R_97()) jj_scanpos = xsp;
6223 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6227 static final private boolean jj_3R_74() {
6228 if (jj_scan_token(TILDEEQUAL)) return true;
6229 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6233 static final private boolean jj_3R_191() {
6234 if (jj_3R_50()) return true;
6235 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6239 static final private boolean jj_3R_73() {
6240 if (jj_scan_token(DOTASSIGN)) return true;
6241 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6245 static final private boolean jj_3R_72() {
6246 if (jj_scan_token(ORASSIGN)) return true;
6247 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6251 static final private boolean jj_3R_71() {
6252 if (jj_scan_token(XORASSIGN)) return true;
6253 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6257 static final private boolean jj_3R_190() {
6258 if (jj_scan_token(NEW)) return true;
6259 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6260 if (jj_3R_178()) return true;
6261 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6265 static final private boolean jj_3R_70() {
6266 if (jj_scan_token(ANDASSIGN)) return true;
6267 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6271 static final private boolean jj_3R_69() {
6272 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6273 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6277 static final private boolean jj_3R_68() {
6278 if (jj_scan_token(LSHIFTASSIGN)) return true;
6279 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6283 static final private boolean jj_3R_189() {
6284 if (jj_scan_token(IDENTIFIER)) return true;
6285 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6289 static final private boolean jj_3R_180() {
6296 if (jj_3R_191()) return true;
6297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6298 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6299 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6303 static final private boolean jj_3R_67() {
6304 if (jj_scan_token(MINUSASSIGN)) return true;
6305 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6309 static final private boolean jj_3R_66() {
6310 if (jj_scan_token(PLUSASSIGN)) return true;
6311 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6315 static final private boolean jj_3R_65() {
6316 if (jj_scan_token(REMASSIGN)) return true;
6317 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6321 static final private boolean jj_3R_64() {
6322 if (jj_scan_token(SLASHASSIGN)) return true;
6323 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6327 static final private boolean jj_3R_63() {
6328 if (jj_scan_token(STARASSIGN)) return true;
6329 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6333 static final private boolean jj_3R_51() {
6360 if (jj_3R_74()) return true;
6361 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6362 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6363 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6364 } else 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;
6377 static final private boolean jj_3R_62() {
6378 if (jj_scan_token(ASSIGN)) return true;
6379 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6383 static final private boolean jj_3R_182() {
6384 if (jj_scan_token(ARRAY)) return true;
6385 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6386 if (jj_3R_192()) return true;
6387 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6391 static final private boolean jj_3R_171() {
6392 if (jj_3R_182()) return true;
6393 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6397 static final private boolean jj_3R_181() {
6398 if (jj_3R_188()) return true;
6399 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6403 static final private boolean jj_3R_170() {
6404 if (jj_3R_180()) return true;
6405 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6409 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6410 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6415 static final private boolean jj_3R_179() {
6416 if (jj_3R_188()) return true;
6417 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6421 static final private boolean jj_3R_101() {
6422 if (jj_scan_token(ASSIGN)) return true;
6423 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6424 if (jj_3R_45()) return true;
6425 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6429 static final private boolean jj_3R_42() {
6430 if (jj_3R_50()) return true;
6431 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6432 if (jj_3R_51()) return true;
6433 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6434 if (jj_3R_45()) return true;
6435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6439 static final private boolean jj_3_3() {
6440 if (jj_3R_42()) return true;
6441 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6445 static final private boolean jj_3_5() {
6446 if (jj_scan_token(IDENTIFIER)) return true;
6447 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6448 if (jj_scan_token(STATICCLASSACCESS)) return true;
6449 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6450 if (jj_3R_178()) return true;
6451 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6455 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6456 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6461 static final private boolean jj_3R_166() {
6468 if (jj_3R_171()) return true;
6469 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6470 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6471 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6475 static final private boolean jj_3R_56() {
6476 if (jj_3R_86()) return true;
6477 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6481 static final private boolean jj_3R_55() {
6482 if (jj_3R_42()) return true;
6483 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6487 static final private boolean jj_3R_54() {
6488 if (jj_3R_85()) return true;
6489 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6493 static final private boolean jj_3R_45() {
6502 if (jj_3R_56()) return true;
6503 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6504 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6505 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6506 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6510 static final private boolean jj_3R_53() {
6511 if (jj_3R_84()) return true;
6512 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6516 static final private boolean jj_3R_100() {
6517 if (jj_scan_token(COMMA)) return true;
6518 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6519 if (jj_3R_50()) return true;
6520 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6524 static final private boolean jj_3R_194() {
6525 if (jj_scan_token(DECR)) return true;
6526 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6530 static final private boolean jj_3R_193() {
6531 if (jj_scan_token(INCR)) return true;
6532 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6536 static final private boolean jj_3R_185() {
6541 if (jj_3R_194()) return true;
6542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6543 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6547 static final private boolean jj_3R_168() {
6548 if (jj_3R_166()) return true;
6549 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6552 if (jj_3R_185()) jj_scanpos = xsp;
6553 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6557 static final private boolean jj_3R_99() {
6558 if (jj_3R_50()) return true;
6559 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6563 static final private boolean jj_3R_83() {
6564 if (jj_scan_token(OBJECT)) return true;
6565 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6569 static private boolean jj_initialized_once = false;
6570 static public PHPParserTokenManager token_source;
6571 static SimpleCharStream jj_input_stream;
6572 static public Token token, jj_nt;
6573 static private int jj_ntk;
6574 static private Token jj_scanpos, jj_lastpos;
6575 static private int jj_la;
6576 static public boolean lookingAhead = false;
6577 static private boolean jj_semLA;
6578 static private int jj_gen;
6579 static final private int[] jj_la1 = new int[123];
6580 static private int[] jj_la1_0;
6581 static private int[] jj_la1_1;
6582 static private int[] jj_la1_2;
6583 static private int[] jj_la1_3;
6584 static private int[] jj_la1_4;
6592 private static void jj_la1_0() {
6593 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,};
6595 private static void jj_la1_1() {
6596 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,};
6598 private static void jj_la1_2() {
6599 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,};
6601 private static void jj_la1_3() {
6602 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,};
6604 private static void jj_la1_4() {
6605 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,};
6607 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6608 static private boolean jj_rescan = false;
6609 static private int jj_gc = 0;
6611 public PHPParser(java.io.InputStream stream) {
6612 if (jj_initialized_once) {
6613 System.out.println("ERROR: Second call to constructor of static parser. You must");
6614 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6615 System.out.println(" during parser generation.");
6618 jj_initialized_once = true;
6619 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6620 token_source = new PHPParserTokenManager(jj_input_stream);
6621 token = new Token();
6624 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6625 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6628 static public void ReInit(java.io.InputStream stream) {
6629 jj_input_stream.ReInit(stream, 1, 1);
6630 token_source.ReInit(jj_input_stream);
6631 token = new Token();
6634 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6635 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6638 public PHPParser(java.io.Reader stream) {
6639 if (jj_initialized_once) {
6640 System.out.println("ERROR: Second call to constructor of static parser. You must");
6641 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6642 System.out.println(" during parser generation.");
6645 jj_initialized_once = true;
6646 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6647 token_source = new PHPParserTokenManager(jj_input_stream);
6648 token = new Token();
6651 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6652 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6655 static public void ReInit(java.io.Reader stream) {
6656 jj_input_stream.ReInit(stream, 1, 1);
6657 token_source.ReInit(jj_input_stream);
6658 token = new Token();
6661 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6662 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6665 public PHPParser(PHPParserTokenManager tm) {
6666 if (jj_initialized_once) {
6667 System.out.println("ERROR: Second call to constructor of static parser. You must");
6668 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6669 System.out.println(" during parser generation.");
6672 jj_initialized_once = true;
6674 token = new Token();
6677 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6678 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6681 public void ReInit(PHPParserTokenManager tm) {
6683 token = new Token();
6686 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6687 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6690 static final private Token jj_consume_token(int kind) throws ParseException {
6692 if ((oldToken = token).next != null) token = token.next;
6693 else token = token.next = token_source.getNextToken();
6695 if (token.kind == kind) {
6697 if (++jj_gc > 100) {
6699 for (int i = 0; i < jj_2_rtns.length; i++) {
6700 JJCalls c = jj_2_rtns[i];
6702 if (c.gen < jj_gen) c.first = null;
6711 throw generateParseException();
6714 static final private boolean jj_scan_token(int kind) {
6715 if (jj_scanpos == jj_lastpos) {
6717 if (jj_scanpos.next == null) {
6718 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6720 jj_lastpos = jj_scanpos = jj_scanpos.next;
6723 jj_scanpos = jj_scanpos.next;
6726 int i = 0; Token tok = token;
6727 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6728 if (tok != null) jj_add_error_token(kind, i);
6730 return (jj_scanpos.kind != kind);
6733 static final public Token getNextToken() {
6734 if (token.next != null) token = token.next;
6735 else token = token.next = token_source.getNextToken();
6741 static final public Token getToken(int index) {
6742 Token t = lookingAhead ? jj_scanpos : token;
6743 for (int i = 0; i < index; i++) {
6744 if (t.next != null) t = t.next;
6745 else t = t.next = token_source.getNextToken();
6750 static final private int jj_ntk() {
6751 if ((jj_nt=token.next) == null)
6752 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6754 return (jj_ntk = jj_nt.kind);
6757 static private java.util.Vector jj_expentries = new java.util.Vector();
6758 static private int[] jj_expentry;
6759 static private int jj_kind = -1;
6760 static private int[] jj_lasttokens = new int[100];
6761 static private int jj_endpos;
6763 static private void jj_add_error_token(int kind, int pos) {
6764 if (pos >= 100) return;
6765 if (pos == jj_endpos + 1) {
6766 jj_lasttokens[jj_endpos++] = kind;
6767 } else if (jj_endpos != 0) {
6768 jj_expentry = new int[jj_endpos];
6769 for (int i = 0; i < jj_endpos; i++) {
6770 jj_expentry[i] = jj_lasttokens[i];
6772 boolean exists = false;
6773 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
6774 int[] oldentry = (int[])(enum.nextElement());
6775 if (oldentry.length == jj_expentry.length) {
6777 for (int i = 0; i < jj_expentry.length; i++) {
6778 if (oldentry[i] != jj_expentry[i]) {
6786 if (!exists) jj_expentries.addElement(jj_expentry);
6787 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6791 static public ParseException generateParseException() {
6792 jj_expentries.removeAllElements();
6793 boolean[] la1tokens = new boolean[141];
6794 for (int i = 0; i < 141; i++) {
6795 la1tokens[i] = false;
6798 la1tokens[jj_kind] = true;
6801 for (int i = 0; i < 123; i++) {
6802 if (jj_la1[i] == jj_gen) {
6803 for (int j = 0; j < 32; j++) {
6804 if ((jj_la1_0[i] & (1<<j)) != 0) {
6805 la1tokens[j] = true;
6807 if ((jj_la1_1[i] & (1<<j)) != 0) {
6808 la1tokens[32+j] = true;
6810 if ((jj_la1_2[i] & (1<<j)) != 0) {
6811 la1tokens[64+j] = true;
6813 if ((jj_la1_3[i] & (1<<j)) != 0) {
6814 la1tokens[96+j] = true;
6816 if ((jj_la1_4[i] & (1<<j)) != 0) {
6817 la1tokens[128+j] = true;
6822 for (int i = 0; i < 141; i++) {
6824 jj_expentry = new int[1];
6826 jj_expentries.addElement(jj_expentry);
6831 jj_add_error_token(0, 0);
6832 int[][] exptokseq = new int[jj_expentries.size()][];
6833 for (int i = 0; i < jj_expentries.size(); i++) {
6834 exptokseq[i] = (int[])jj_expentries.elementAt(i);
6836 return new ParseException(token, exptokseq, tokenImage);
6839 static final public void enable_tracing() {
6842 static final public void disable_tracing() {
6845 static final private void jj_rescan_token() {
6847 for (int i = 0; i < 8; i++) {
6848 JJCalls p = jj_2_rtns[i];
6850 if (p.gen > jj_gen) {
6851 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
6853 case 0: jj_3_1(); break;
6854 case 1: jj_3_2(); break;
6855 case 2: jj_3_3(); break;
6856 case 3: jj_3_4(); break;
6857 case 4: jj_3_5(); break;
6858 case 5: jj_3_6(); break;
6859 case 6: jj_3_7(); break;
6860 case 7: jj_3_8(); break;
6864 } while (p != null);
6869 static final private void jj_save(int index, int xla) {
6870 JJCalls p = jj_2_rtns[index];
6871 while (p.gen > jj_gen) {
6872 if (p.next == null) { p = p.next = new JJCalls(); break; }
6875 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
6878 static final class JJCalls {