1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
4 import org.eclipse.core.resources.IFile;
5 import org.eclipse.core.resources.IMarker;
6 import org.eclipse.core.runtime.CoreException;
7 import org.eclipse.ui.texteditor.MarkerUtilities;
8 import org.eclipse.jface.preference.IPreferenceStore;
10 import java.util.Hashtable;
11 import java.util.Enumeration;
12 import java.util.ArrayList;
13 import java.io.StringReader;
15 import java.text.MessageFormat;
17 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
18 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
19 import net.sourceforge.phpdt.internal.compiler.ast.*;
20 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
21 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
25 * This php parser is inspired by the Java 1.2 grammar example
26 * given with JavaCC. You can get JavaCC at http://www.webgain.com
27 * You can test the parser with the PHPParserTestCase2.java
28 * @author Matthieu Casanova
30 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
32 /** The file that is parsed. */
33 private static IFile fileToParse;
35 /** The current segment. */
36 private static OutlineableWithChildren currentSegment;
38 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
39 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
40 static PHPOutlineInfo outlineInfo;
42 private static boolean assigning;
44 /** The error level of the current ParseException. */
45 private static int errorLevel = ERROR;
46 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
47 private static String errorMessage;
49 private static int errorStart = -1;
50 private static int errorEnd = -1;
51 private static PHPDocument phpDocument;
53 * The point where html starts.
54 * It will be used by the token manager to create HTMLCode objects
56 public static int htmlStart;
59 private final static int AstStackIncrement = 100;
60 /** The stack of node. */
61 private static AstNode[] nodes;
62 /** The cursor in expression stack. */
63 private static int nodePtr;
65 public final void setFileToParse(final IFile fileToParse) {
66 this.fileToParse = fileToParse;
72 public PHPParser(final IFile fileToParse) {
73 this(new StringReader(""));
74 this.fileToParse = fileToParse;
78 * Reinitialize the parser.
80 private static final void init() {
81 nodes = new AstNode[AstStackIncrement];
87 * Add an php node on the stack.
88 * @param node the node that will be added to the stack
90 private static final void pushOnAstNodes(AstNode node) {
92 nodes[++nodePtr] = node;
93 } catch (IndexOutOfBoundsException e) {
94 int oldStackLength = nodes.length;
95 AstNode[] oldStack = nodes;
96 nodes = new AstNode[oldStackLength + AstStackIncrement];
97 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
98 nodePtr = oldStackLength;
99 nodes[nodePtr] = node;
103 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
104 currentSegment = new PHPDocument(parent);
105 outlineInfo = new PHPOutlineInfo(parent, currentSegment);
106 final StringReader stream = new StringReader(s);
107 if (jj_input_stream == null) {
108 jj_input_stream = new SimpleCharStream(stream, 1, 1);
114 phpDocument = new PHPDocument(null);
115 phpDocument.nodes = new AstNode[nodes.length];
116 System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
117 } catch (ParseException e) {
118 processParseException(e);
124 * This method will process the parse exception.
125 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
126 * @param e the ParseException
128 private static void processParseException(final ParseException e) {
129 if (errorMessage == null) {
130 PHPeclipsePlugin.log(e);
131 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
132 errorStart = SimpleCharStream.getPosition();
133 errorEnd = errorStart + 1;
140 * Create marker for the parse error
141 * @param e the ParseException
143 private static void setMarker(final ParseException e) {
145 if (errorStart == -1) {
146 setMarker(fileToParse,
148 jj_input_stream.tokenBegin,
149 jj_input_stream.tokenBegin + e.currentToken.image.length(),
151 "Line " + e.currentToken.beginLine);
153 setMarker(fileToParse,
158 "Line " + e.currentToken.beginLine);
162 } catch (CoreException e2) {
163 PHPeclipsePlugin.log(e2);
168 * Create markers according to the external parser output
170 private static void createMarkers(final String output, final IFile file) throws CoreException {
171 // delete all markers
172 file.deleteMarkers(IMarker.PROBLEM, false, 0);
177 while ((brIndx = output.indexOf("<br />", indx)) != -1) {
178 // newer php error output (tested with 4.2.3)
179 scanLine(output, file, indx, brIndx);
184 while ((brIndx = output.indexOf("<br>", indx)) != -1) {
185 // older php error output (tested with 4.2.3)
186 scanLine(output, file, indx, brIndx);
192 private static void scanLine(final String output,
195 final int brIndx) throws CoreException {
197 StringBuffer lineNumberBuffer = new StringBuffer(10);
199 current = output.substring(indx, brIndx);
201 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
202 int onLine = current.indexOf("on line <b>");
204 lineNumberBuffer.delete(0, lineNumberBuffer.length());
205 for (int i = onLine; i < current.length(); i++) {
206 ch = current.charAt(i);
207 if ('0' <= ch && '9' >= ch) {
208 lineNumberBuffer.append(ch);
212 int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
214 Hashtable attributes = new Hashtable();
216 current = current.replaceAll("\n", "");
217 current = current.replaceAll("<b>", "");
218 current = current.replaceAll("</b>", "");
219 MarkerUtilities.setMessage(attributes, current);
221 if (current.indexOf(PARSE_ERROR_STRING) != -1)
222 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
223 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
224 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
226 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
227 MarkerUtilities.setLineNumber(attributes, lineNumber);
228 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
233 public final void parse(final String s) throws CoreException {
234 final StringReader stream = new StringReader(s);
235 if (jj_input_stream == null) {
236 jj_input_stream = new SimpleCharStream(stream, 1, 1);
242 } catch (ParseException e) {
243 processParseException(e);
248 * Call the php parse command ( php -l -f <filename> )
249 * and create markers according to the external parser output
251 public static void phpExternalParse(final IFile file) {
252 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
253 final String filename = file.getLocation().toString();
255 final String[] arguments = { filename };
256 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
257 final String command = form.format(arguments);
259 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
262 // parse the buffer to find the errors and warnings
263 createMarkers(parserResult, file);
264 } catch (CoreException e) {
265 PHPeclipsePlugin.log(e);
270 * Put a new html block in the stack.
272 public static final void createNewHTMLCode() {
273 final int currentPosition = SimpleCharStream.getPosition();
274 if (currentPosition == htmlStart) {
277 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
278 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
281 private static final void parse() throws ParseException {
285 static final public void phpFile() throws ParseException {
289 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
327 case INTEGER_LITERAL:
328 case FLOATING_POINT_LITERAL:
344 } catch (TokenMgrError e) {
345 PHPeclipsePlugin.log(e);
346 errorStart = SimpleCharStream.getPosition();
347 errorEnd = errorStart + 1;
348 errorMessage = e.getMessage();
350 {if (true) throw generateParseException();}
355 * A php block is a <?= expression [;]?>
356 * or <?php somephpcode ?>
357 * or <? somephpcode ?>
359 static final public void PhpBlock() throws ParseException {
360 final int start = SimpleCharStream.getPosition();
361 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
401 case INTEGER_LITERAL:
402 case FLOATING_POINT_LITERAL:
409 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
412 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
414 jj_consume_token(PHPSTARTLONG);
417 jj_consume_token(PHPSTARTSHORT);
419 setMarker(fileToParse,
420 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
422 SimpleCharStream.getPosition(),
424 "Line " + token.beginLine);
425 } catch (CoreException e) {
426 PHPeclipsePlugin.log(e);
431 jj_consume_token(-1);
432 throw new ParseException();
441 jj_consume_token(PHPEND);
442 } catch (ParseException e) {
443 errorMessage = "'?>' expected";
445 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
446 errorEnd = SimpleCharStream.getPosition() + 1;
452 jj_consume_token(-1);
453 throw new ParseException();
457 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
458 final Expression expr;
459 final int pos = SimpleCharStream.getPosition();
460 PHPEchoBlock echoBlock;
461 jj_consume_token(PHPECHOSTART);
463 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
465 jj_consume_token(SEMICOLON);
471 jj_consume_token(PHPEND);
472 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
473 pushOnAstNodes(echoBlock);
474 {if (true) return echoBlock;}
475 throw new Error("Missing return statement in function");
478 static final public void Php() throws ParseException {
481 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
515 case INTEGER_LITERAL:
516 case FLOATING_POINT_LITERAL:
533 static final public ClassDeclaration ClassDeclaration() throws ParseException {
534 final ClassDeclaration classDeclaration;
535 final Token className;
536 Token superclassName = null;
538 jj_consume_token(CLASS);
540 pos = SimpleCharStream.getPosition();
541 className = jj_consume_token(IDENTIFIER);
542 } catch (ParseException e) {
543 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
545 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
546 errorEnd = SimpleCharStream.getPosition() + 1;
549 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
551 jj_consume_token(EXTENDS);
553 superclassName = jj_consume_token(IDENTIFIER);
554 } catch (ParseException e) {
555 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
557 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
558 errorEnd = SimpleCharStream.getPosition() + 1;
566 if (superclassName == null) {
567 classDeclaration = new ClassDeclaration(currentSegment,
568 className.image.toCharArray(),
572 classDeclaration = new ClassDeclaration(currentSegment,
573 className.image.toCharArray(),
574 superclassName.image.toCharArray(),
578 currentSegment.add(classDeclaration);
579 currentSegment = classDeclaration;
580 ClassBody(classDeclaration);
581 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
582 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
583 pushOnAstNodes(classDeclaration);
584 {if (true) return classDeclaration;}
585 throw new Error("Missing return statement in function");
588 static final public void ClassBody(ClassDeclaration classDeclaration) throws ParseException {
590 jj_consume_token(LBRACE);
591 } catch (ParseException e) {
592 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected";
594 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
595 errorEnd = SimpleCharStream.getPosition() + 1;
600 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
609 ClassBodyDeclaration(classDeclaration);
612 jj_consume_token(RBRACE);
613 } catch (ParseException e) {
614 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected";
616 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
617 errorEnd = SimpleCharStream.getPosition() + 1;
623 * A class can contain only methods and fields.
625 static final public void ClassBodyDeclaration(ClassDeclaration classDeclaration) throws ParseException {
626 MethodDeclaration method;
627 FieldDeclaration field;
628 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
630 method = MethodDeclaration();
631 method.setParent(classDeclaration);
632 classDeclaration.addMethod(method);
635 field = FieldDeclaration();
636 classDeclaration.addVariable(field);
640 jj_consume_token(-1);
641 throw new ParseException();
646 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
648 static final public FieldDeclaration FieldDeclaration() throws ParseException {
649 VariableDeclaration variableDeclaration;
650 VariableDeclaration[] list;
651 final ArrayList arrayList = new ArrayList();
652 final int pos = SimpleCharStream.getPosition();
653 jj_consume_token(VAR);
654 variableDeclaration = VariableDeclarator();
655 arrayList.add(variableDeclaration);
656 outlineInfo.addVariable(new String(variableDeclaration.name));
657 currentSegment.add(variableDeclaration);
660 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
668 jj_consume_token(COMMA);
669 variableDeclaration = VariableDeclarator();
670 arrayList.add(variableDeclaration);
671 outlineInfo.addVariable(new String(variableDeclaration.name));
672 currentSegment.add(variableDeclaration);
675 jj_consume_token(SEMICOLON);
676 } catch (ParseException e) {
677 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
679 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
680 errorEnd = SimpleCharStream.getPosition() + 1;
683 list = new VariableDeclaration[arrayList.size()];
684 arrayList.toArray(list);
685 {if (true) return new FieldDeclaration(list,
687 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 = SimpleCharStream.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 = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
706 errorEnd = SimpleCharStream.getPosition() + 1;
714 if (initializer == null) {
715 {if (true) return new VariableDeclaration(currentSegment,
716 varName.toCharArray(),
718 SimpleCharStream.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 = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
758 errorEnd = SimpleCharStream.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 = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1022 errorEnd = SimpleCharStream.getPosition() + 1;
1023 {if (true) throw e;}
1025 if (currentSegment != null) {
1026 currentSegment.add(functionDeclaration);
1027 currentSegment = functionDeclaration;
1030 functionDeclaration.statements = block.statements;
1031 if (currentSegment != null) {
1032 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1034 {if (true) return functionDeclaration;}
1035 throw new Error("Missing return statement in function");
1039 * A MethodDeclarator.
1040 * [&] IDENTIFIER(parameters ...).
1041 * @return a function description for the outline
1043 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1044 final Token identifier;
1045 Token reference = null;
1046 final Hashtable formalParameters;
1047 final int pos = SimpleCharStream.getPosition();
1048 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1050 reference = jj_consume_token(BIT_AND);
1053 jj_la1[21] = jj_gen;
1056 identifier = jj_consume_token(IDENTIFIER);
1057 formalParameters = FormalParameters();
1058 {if (true) return new MethodDeclaration(currentSegment,
1059 identifier.image.toCharArray(),
1063 SimpleCharStream.getPosition());}
1064 throw new Error("Missing return statement in function");
1068 * FormalParameters follows method identifier.
1069 * (FormalParameter())
1071 static final public Hashtable FormalParameters() throws ParseException {
1072 VariableDeclaration var;
1073 final Hashtable parameters = new Hashtable();
1075 jj_consume_token(LPAREN);
1076 } catch (ParseException e) {
1077 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1079 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1080 errorEnd = SimpleCharStream.getPosition() + 1;
1081 {if (true) throw e;}
1083 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1087 var = FormalParameter();
1088 parameters.put(new String(var.name),var);
1091 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1096 jj_la1[22] = jj_gen;
1099 jj_consume_token(COMMA);
1100 var = FormalParameter();
1101 parameters.put(new String(var.name),var);
1105 jj_la1[23] = jj_gen;
1109 jj_consume_token(RPAREN);
1110 } catch (ParseException e) {
1111 errorMessage = "')' expected";
1113 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1114 errorEnd = SimpleCharStream.getPosition() + 1;
1115 {if (true) throw e;}
1117 {if (true) return parameters;}
1118 throw new Error("Missing return statement in function");
1122 * A formal parameter.
1123 * $varname[=value] (,$varname[=value])
1125 static final public VariableDeclaration FormalParameter() throws ParseException {
1126 final VariableDeclaration variableDeclaration;
1128 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1130 token = jj_consume_token(BIT_AND);
1133 jj_la1[24] = jj_gen;
1136 variableDeclaration = VariableDeclarator();
1137 if (token != null) {
1138 variableDeclaration.setReference(true);
1140 {if (true) return variableDeclaration;}
1141 throw new Error("Missing return statement in function");
1144 static final public ConstantIdentifier Type() throws ParseException {
1146 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1148 jj_consume_token(STRING);
1149 pos = SimpleCharStream.getPosition();
1150 {if (true) return new ConstantIdentifier(Types.STRING,
1154 jj_consume_token(BOOL);
1155 pos = SimpleCharStream.getPosition();
1156 {if (true) return new ConstantIdentifier(Types.BOOL,
1160 jj_consume_token(BOOLEAN);
1161 pos = SimpleCharStream.getPosition();
1162 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1166 jj_consume_token(REAL);
1167 pos = SimpleCharStream.getPosition();
1168 {if (true) return new ConstantIdentifier(Types.REAL,
1172 jj_consume_token(DOUBLE);
1173 pos = SimpleCharStream.getPosition();
1174 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1178 jj_consume_token(FLOAT);
1179 pos = SimpleCharStream.getPosition();
1180 {if (true) return new ConstantIdentifier(Types.FLOAT,
1184 jj_consume_token(INT);
1185 pos = SimpleCharStream.getPosition();
1186 {if (true) return new ConstantIdentifier(Types.INT,
1190 jj_consume_token(INTEGER);
1191 pos = SimpleCharStream.getPosition();
1192 {if (true) return new ConstantIdentifier(Types.INTEGER,
1196 jj_consume_token(OBJECT);
1197 pos = SimpleCharStream.getPosition();
1198 {if (true) return new ConstantIdentifier(Types.OBJECT,
1202 jj_la1[25] = jj_gen;
1203 jj_consume_token(-1);
1204 throw new ParseException();
1206 throw new Error("Missing return statement in function");
1209 static final public Expression Expression() throws ParseException {
1210 final Expression expr;
1211 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1213 expr = PrintExpression();
1214 {if (true) return expr;}
1217 expr = ListExpression();
1218 {if (true) return expr;}
1221 jj_la1[26] = jj_gen;
1222 if (jj_2_3(2147483647)) {
1223 expr = varAssignation();
1224 {if (true) return expr;}
1226 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1240 case INTEGER_LITERAL:
1241 case FLOATING_POINT_LITERAL:
1242 case STRING_LITERAL:
1246 expr = ConditionalExpression();
1247 {if (true) return expr;}
1250 jj_la1[27] = jj_gen;
1251 jj_consume_token(-1);
1252 throw new ParseException();
1256 throw new Error("Missing return statement in function");
1260 * A Variable assignation.
1261 * varName (an assign operator) any expression
1263 static final public VarAssignation varAssignation() throws ParseException {
1265 final Expression expression;
1266 final int assignOperator;
1267 final int pos = SimpleCharStream.getPosition();
1268 varName = VariableDeclaratorId();
1269 assignOperator = AssignmentOperator();
1271 expression = Expression();
1272 } catch (ParseException e) {
1273 if (errorMessage != null) {
1274 {if (true) throw e;}
1276 errorMessage = "expression expected";
1278 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1279 errorEnd = SimpleCharStream.getPosition() + 1;
1280 {if (true) throw e;}
1282 {if (true) return new VarAssignation(varName.toCharArray(),
1286 SimpleCharStream.getPosition());}
1287 throw new Error("Missing return statement in function");
1290 static final public int AssignmentOperator() throws ParseException {
1291 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1293 jj_consume_token(ASSIGN);
1294 {if (true) return VarAssignation.EQUAL;}
1297 jj_consume_token(STARASSIGN);
1298 {if (true) return VarAssignation.STAR_EQUAL;}
1301 jj_consume_token(SLASHASSIGN);
1302 {if (true) return VarAssignation.SLASH_EQUAL;}
1305 jj_consume_token(REMASSIGN);
1306 {if (true) return VarAssignation.REM_EQUAL;}
1309 jj_consume_token(PLUSASSIGN);
1310 {if (true) return VarAssignation.PLUS_EQUAL;}
1313 jj_consume_token(MINUSASSIGN);
1314 {if (true) return VarAssignation.MINUS_EQUAL;}
1317 jj_consume_token(LSHIFTASSIGN);
1318 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1320 case RSIGNEDSHIFTASSIGN:
1321 jj_consume_token(RSIGNEDSHIFTASSIGN);
1322 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1325 jj_consume_token(ANDASSIGN);
1326 {if (true) return VarAssignation.AND_EQUAL;}
1329 jj_consume_token(XORASSIGN);
1330 {if (true) return VarAssignation.XOR_EQUAL;}
1333 jj_consume_token(ORASSIGN);
1334 {if (true) return VarAssignation.OR_EQUAL;}
1337 jj_consume_token(DOTASSIGN);
1338 {if (true) return VarAssignation.DOT_EQUAL;}
1341 jj_consume_token(TILDEEQUAL);
1342 {if (true) return VarAssignation.TILDE_EQUAL;}
1345 jj_la1[28] = jj_gen;
1346 jj_consume_token(-1);
1347 throw new ParseException();
1349 throw new Error("Missing return statement in function");
1352 static final public Expression ConditionalExpression() throws ParseException {
1353 final Expression expr;
1354 Expression expr2 = null;
1355 Expression expr3 = null;
1356 expr = ConditionalOrExpression();
1357 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1359 jj_consume_token(HOOK);
1360 expr2 = Expression();
1361 jj_consume_token(COLON);
1362 expr3 = ConditionalExpression();
1365 jj_la1[29] = jj_gen;
1368 if (expr3 == null) {
1369 {if (true) return expr;}
1371 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1372 throw new Error("Missing return statement in function");
1375 static final public Expression ConditionalOrExpression() throws ParseException {
1376 Expression expr,expr2;
1378 expr = ConditionalAndExpression();
1381 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1387 jj_la1[30] = jj_gen;
1390 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1392 jj_consume_token(OR_OR);
1393 operator = OperatorIds.OR_OR;
1396 jj_consume_token(_ORL);
1397 operator = OperatorIds.ORL;
1400 jj_la1[31] = jj_gen;
1401 jj_consume_token(-1);
1402 throw new ParseException();
1404 expr2 = ConditionalAndExpression();
1405 expr = new BinaryExpression(expr,expr2,operator);
1407 {if (true) return expr;}
1408 throw new Error("Missing return statement in function");
1411 static final public Expression ConditionalAndExpression() throws ParseException {
1412 Expression expr,expr2;
1414 expr = ConcatExpression();
1417 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1423 jj_la1[32] = jj_gen;
1426 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1428 jj_consume_token(AND_AND);
1429 operator = OperatorIds.AND_AND;
1432 jj_consume_token(_ANDL);
1433 operator = OperatorIds.ANDL;
1436 jj_la1[33] = jj_gen;
1437 jj_consume_token(-1);
1438 throw new ParseException();
1440 expr2 = ConcatExpression();
1441 expr = new BinaryExpression(expr,expr2,operator);
1443 {if (true) return expr;}
1444 throw new Error("Missing return statement in function");
1447 static final public Expression ConcatExpression() throws ParseException {
1448 Expression expr,expr2;
1449 expr = InclusiveOrExpression();
1452 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1457 jj_la1[34] = jj_gen;
1460 jj_consume_token(DOT);
1461 expr2 = InclusiveOrExpression();
1462 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1464 {if (true) return expr;}
1465 throw new Error("Missing return statement in function");
1468 static final public Expression InclusiveOrExpression() throws ParseException {
1469 Expression expr,expr2;
1470 expr = ExclusiveOrExpression();
1473 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1478 jj_la1[35] = jj_gen;
1481 jj_consume_token(BIT_OR);
1482 expr2 = ExclusiveOrExpression();
1483 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1485 {if (true) return expr;}
1486 throw new Error("Missing return statement in function");
1489 static final public Expression ExclusiveOrExpression() throws ParseException {
1490 Expression expr,expr2;
1491 expr = AndExpression();
1494 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1499 jj_la1[36] = jj_gen;
1502 jj_consume_token(XOR);
1503 expr2 = AndExpression();
1504 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1506 {if (true) return expr;}
1507 throw new Error("Missing return statement in function");
1510 static final public Expression AndExpression() throws ParseException {
1511 Expression expr,expr2;
1512 expr = EqualityExpression();
1515 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1520 jj_la1[37] = jj_gen;
1523 jj_consume_token(BIT_AND);
1524 expr2 = EqualityExpression();
1525 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1527 {if (true) return expr;}
1528 throw new Error("Missing return statement in function");
1531 static final public Expression EqualityExpression() throws ParseException {
1532 Expression expr,expr2;
1534 expr = RelationalExpression();
1537 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1541 case BANGDOUBLEEQUAL:
1546 jj_la1[38] = jj_gen;
1549 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1551 jj_consume_token(EQUAL_EQUAL);
1552 operator = OperatorIds.EQUAL_EQUAL;
1555 jj_consume_token(DIF);
1556 operator = OperatorIds.DIF;
1559 jj_consume_token(NOT_EQUAL);
1560 operator = OperatorIds.DIF;
1562 case BANGDOUBLEEQUAL:
1563 jj_consume_token(BANGDOUBLEEQUAL);
1564 operator = OperatorIds.BANG_EQUAL_EQUAL;
1567 jj_consume_token(TRIPLEEQUAL);
1568 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1571 jj_la1[39] = jj_gen;
1572 jj_consume_token(-1);
1573 throw new ParseException();
1576 expr2 = RelationalExpression();
1577 } catch (ParseException e) {
1578 if (errorMessage != null) {
1579 {if (true) throw e;}
1581 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1583 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1584 errorEnd = SimpleCharStream.getPosition() + 1;
1585 {if (true) throw e;}
1587 expr = new BinaryExpression(expr,expr2,operator);
1589 {if (true) return expr;}
1590 throw new Error("Missing return statement in function");
1593 static final public Expression RelationalExpression() throws ParseException {
1594 Expression expr,expr2;
1596 expr = ShiftExpression();
1599 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1607 jj_la1[40] = jj_gen;
1610 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1612 jj_consume_token(LT);
1613 operator = OperatorIds.LESS;
1616 jj_consume_token(GT);
1617 operator = OperatorIds.GREATER;
1620 jj_consume_token(LE);
1621 operator = OperatorIds.LESS_EQUAL;
1624 jj_consume_token(GE);
1625 operator = OperatorIds.GREATER_EQUAL;
1628 jj_la1[41] = jj_gen;
1629 jj_consume_token(-1);
1630 throw new ParseException();
1632 expr2 = ShiftExpression();
1633 expr = new BinaryExpression(expr,expr2,operator);
1635 {if (true) return expr;}
1636 throw new Error("Missing return statement in function");
1639 static final public Expression ShiftExpression() throws ParseException {
1640 Expression expr,expr2;
1642 expr = AdditiveExpression();
1645 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1648 case RUNSIGNEDSHIFT:
1652 jj_la1[42] = jj_gen;
1655 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1657 jj_consume_token(LSHIFT);
1658 operator = OperatorIds.LEFT_SHIFT;
1661 jj_consume_token(RSIGNEDSHIFT);
1662 operator = OperatorIds.RIGHT_SHIFT;
1664 case RUNSIGNEDSHIFT:
1665 jj_consume_token(RUNSIGNEDSHIFT);
1666 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1669 jj_la1[43] = jj_gen;
1670 jj_consume_token(-1);
1671 throw new ParseException();
1673 expr2 = AdditiveExpression();
1674 expr = new BinaryExpression(expr,expr2,operator);
1676 {if (true) return expr;}
1677 throw new Error("Missing return statement in function");
1680 static final public Expression AdditiveExpression() throws ParseException {
1681 Expression expr,expr2;
1683 expr = MultiplicativeExpression();
1686 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1692 jj_la1[44] = jj_gen;
1695 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1697 jj_consume_token(PLUS);
1698 operator = OperatorIds.PLUS;
1701 jj_consume_token(MINUS);
1702 operator = OperatorIds.MINUS;
1705 jj_la1[45] = jj_gen;
1706 jj_consume_token(-1);
1707 throw new ParseException();
1709 expr2 = MultiplicativeExpression();
1710 expr = new BinaryExpression(expr,expr2,operator);
1712 {if (true) return expr;}
1713 throw new Error("Missing return statement in function");
1716 static final public Expression MultiplicativeExpression() throws ParseException {
1717 Expression expr,expr2;
1720 expr = UnaryExpression();
1721 } catch (ParseException e) {
1722 if (errorMessage != null) {if (true) throw e;}
1723 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1725 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1726 errorEnd = SimpleCharStream.getPosition() + 1;
1727 {if (true) throw e;}
1731 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1738 jj_la1[46] = jj_gen;
1741 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1743 jj_consume_token(STAR);
1744 operator = OperatorIds.MULTIPLY;
1747 jj_consume_token(SLASH);
1748 operator = OperatorIds.DIVIDE;
1751 jj_consume_token(REMAINDER);
1752 operator = OperatorIds.REMAINDER;
1755 jj_la1[47] = jj_gen;
1756 jj_consume_token(-1);
1757 throw new ParseException();
1759 expr2 = UnaryExpression();
1760 expr = new BinaryExpression(expr,expr2,operator);
1762 {if (true) return expr;}
1763 throw new Error("Missing return statement in function");
1767 * An unary expression starting with @, & or nothing
1769 static final public Expression UnaryExpression() throws ParseException {
1771 final int pos = SimpleCharStream.getPosition();
1772 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1774 jj_consume_token(BIT_AND);
1775 expr = UnaryExpressionNoPrefix();
1776 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1790 case INTEGER_LITERAL:
1791 case FLOATING_POINT_LITERAL:
1792 case STRING_LITERAL:
1796 expr = AtUnaryExpression();
1797 {if (true) return expr;}
1800 jj_la1[48] = jj_gen;
1801 jj_consume_token(-1);
1802 throw new ParseException();
1804 throw new Error("Missing return statement in function");
1807 static final public Expression AtUnaryExpression() throws ParseException {
1809 final int pos = SimpleCharStream.getPosition();
1810 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1812 jj_consume_token(AT);
1813 expr = AtUnaryExpression();
1814 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1827 case INTEGER_LITERAL:
1828 case FLOATING_POINT_LITERAL:
1829 case STRING_LITERAL:
1833 expr = UnaryExpressionNoPrefix();
1834 {if (true) return expr;}
1837 jj_la1[49] = jj_gen;
1838 jj_consume_token(-1);
1839 throw new ParseException();
1841 throw new Error("Missing return statement in function");
1844 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1847 final int pos = SimpleCharStream.getPosition();
1848 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1851 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1853 jj_consume_token(PLUS);
1854 operator = OperatorIds.PLUS;
1857 jj_consume_token(MINUS);
1858 operator = OperatorIds.MINUS;
1861 jj_la1[50] = jj_gen;
1862 jj_consume_token(-1);
1863 throw new ParseException();
1865 expr = UnaryExpression();
1866 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1870 expr = PreIncDecExpression();
1871 {if (true) return expr;}
1880 case INTEGER_LITERAL:
1881 case FLOATING_POINT_LITERAL:
1882 case STRING_LITERAL:
1886 expr = UnaryExpressionNotPlusMinus();
1887 {if (true) return expr;}
1890 jj_la1[51] = jj_gen;
1891 jj_consume_token(-1);
1892 throw new ParseException();
1894 throw new Error("Missing return statement in function");
1897 static final public Expression PreIncDecExpression() throws ParseException {
1898 final Expression expr;
1900 final int pos = SimpleCharStream.getPosition();
1901 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1903 jj_consume_token(INCR);
1904 operator = OperatorIds.PLUS_PLUS;
1907 jj_consume_token(DECR);
1908 operator = OperatorIds.MINUS_MINUS;
1911 jj_la1[52] = jj_gen;
1912 jj_consume_token(-1);
1913 throw new ParseException();
1915 expr = PrimaryExpression();
1916 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1917 throw new Error("Missing return statement in function");
1920 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
1922 final int pos = SimpleCharStream.getPosition();
1923 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1925 jj_consume_token(BANG);
1926 expr = UnaryExpression();
1927 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1930 jj_la1[53] = jj_gen;
1931 if (jj_2_4(2147483647)) {
1932 expr = CastExpression();
1933 {if (true) return expr;}
1935 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1941 expr = PostfixExpression();
1942 {if (true) return expr;}
1947 case INTEGER_LITERAL:
1948 case FLOATING_POINT_LITERAL:
1949 case STRING_LITERAL:
1951 {if (true) return expr;}
1954 jj_consume_token(LPAREN);
1955 expr = Expression();
1957 jj_consume_token(RPAREN);
1958 } catch (ParseException e) {
1959 errorMessage = "')' expected";
1961 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1962 errorEnd = SimpleCharStream.getPosition() + 1;
1963 {if (true) throw e;}
1965 {if (true) return expr;}
1968 jj_la1[54] = jj_gen;
1969 jj_consume_token(-1);
1970 throw new ParseException();
1974 throw new Error("Missing return statement in function");
1977 static final public CastExpression CastExpression() throws ParseException {
1978 final ConstantIdentifier type;
1979 final Expression expr;
1980 final int pos = SimpleCharStream.getPosition();
1981 jj_consume_token(LPAREN);
1982 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1995 jj_consume_token(ARRAY);
1996 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
1999 jj_la1[55] = jj_gen;
2000 jj_consume_token(-1);
2001 throw new ParseException();
2003 jj_consume_token(RPAREN);
2004 expr = UnaryExpression();
2005 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2006 throw new Error("Missing return statement in function");
2009 static final public Expression PostfixExpression() throws ParseException {
2012 final int pos = SimpleCharStream.getPosition();
2013 expr = PrimaryExpression();
2014 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2017 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2019 jj_consume_token(INCR);
2020 operator = OperatorIds.PLUS_PLUS;
2023 jj_consume_token(DECR);
2024 operator = OperatorIds.MINUS_MINUS;
2027 jj_la1[56] = jj_gen;
2028 jj_consume_token(-1);
2029 throw new ParseException();
2033 jj_la1[57] = jj_gen;
2036 if (operator == -1) {
2037 {if (true) return expr;}
2039 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2040 throw new Error("Missing return statement in function");
2043 static final public Expression PrimaryExpression() throws ParseException {
2044 final Token identifier;
2046 final int pos = SimpleCharStream.getPosition();
2048 identifier = jj_consume_token(IDENTIFIER);
2049 jj_consume_token(STATICCLASSACCESS);
2050 expr = ClassIdentifier();
2051 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2053 SimpleCharStream.getPosition()),
2055 ClassAccess.STATIC);
2058 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2065 jj_la1[58] = jj_gen;
2068 expr = PrimarySuffix(expr);
2070 {if (true) return expr;}
2072 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2077 expr = PrimaryPrefix();
2080 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2087 jj_la1[59] = jj_gen;
2090 expr = PrimarySuffix(expr);
2092 {if (true) return expr;}
2095 expr = ArrayDeclarator();
2096 {if (true) return expr;}
2099 jj_la1[60] = jj_gen;
2100 jj_consume_token(-1);
2101 throw new ParseException();
2104 throw new Error("Missing return statement in function");
2107 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2108 final ArrayVariableDeclaration[] vars;
2109 final int pos = SimpleCharStream.getPosition();
2110 jj_consume_token(ARRAY);
2111 vars = ArrayInitializer();
2112 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2113 throw new Error("Missing return statement in function");
2116 static final public Expression PrimaryPrefix() throws ParseException {
2117 final Expression expr;
2120 final int pos = SimpleCharStream.getPosition();
2121 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2123 token = jj_consume_token(IDENTIFIER);
2124 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2126 SimpleCharStream.getPosition());}
2129 jj_consume_token(NEW);
2130 expr = ClassIdentifier();
2131 {if (true) return new PrefixedUnaryExpression(expr,
2137 var = VariableDeclaratorId();
2138 {if (true) return new ConstantIdentifier(var.toCharArray(),
2140 SimpleCharStream.getPosition());}
2143 jj_la1[61] = jj_gen;
2144 jj_consume_token(-1);
2145 throw new ParseException();
2147 throw new Error("Missing return statement in function");
2150 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2152 final StringBuffer buff;
2153 final int pos = SimpleCharStream.getPosition();
2154 jj_consume_token(NEW);
2155 expr = ClassIdentifier();
2156 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2162 buff = new StringBuffer(expr.toStringExpression());
2163 expr = PrimaryExpression();
2164 buff.append(expr.toStringExpression());
2165 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2167 SimpleCharStream.getPosition());
2170 jj_la1[62] = jj_gen;
2173 {if (true) return new PrefixedUnaryExpression(expr,
2176 throw new Error("Missing return statement in function");
2179 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2182 final int pos = SimpleCharStream.getPosition();
2183 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2185 token = jj_consume_token(IDENTIFIER);
2186 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2188 SimpleCharStream.getPosition());}
2192 expr = VariableDeclaratorId();
2193 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2195 SimpleCharStream.getPosition());}
2198 jj_la1[63] = jj_gen;
2199 jj_consume_token(-1);
2200 throw new ParseException();
2202 throw new Error("Missing return statement in function");
2205 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2206 final AbstractSuffixExpression expr;
2207 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2209 expr = Arguments(prefix);
2210 {if (true) return expr;}
2214 expr = VariableSuffix(prefix);
2215 {if (true) return expr;}
2218 jj_la1[64] = jj_gen;
2219 jj_consume_token(-1);
2220 throw new ParseException();
2222 throw new Error("Missing return statement in function");
2225 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2227 final int pos = SimpleCharStream.getPosition();
2228 Expression expression = null;
2229 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2231 jj_consume_token(CLASSACCESS);
2233 expr = VariableName();
2234 } catch (ParseException e) {
2235 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2237 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2238 errorEnd = SimpleCharStream.getPosition() + 1;
2239 {if (true) throw e;}
2241 {if (true) return new ClassAccess(prefix,
2242 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2243 ClassAccess.NORMAL);}
2246 jj_consume_token(LBRACKET);
2247 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2272 case INTEGER_LITERAL:
2273 case FLOATING_POINT_LITERAL:
2274 case STRING_LITERAL:
2278 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2294 case INTEGER_LITERAL:
2295 case FLOATING_POINT_LITERAL:
2296 case STRING_LITERAL:
2300 expression = Expression();
2311 expression = Type();
2314 jj_la1[65] = jj_gen;
2315 jj_consume_token(-1);
2316 throw new ParseException();
2320 jj_la1[66] = jj_gen;
2324 jj_consume_token(RBRACKET);
2325 } catch (ParseException e) {
2326 errorMessage = "']' expected";
2328 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2329 errorEnd = SimpleCharStream.getPosition() + 1;
2330 {if (true) throw e;}
2332 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2335 jj_la1[67] = jj_gen;
2336 jj_consume_token(-1);
2337 throw new ParseException();
2339 throw new Error("Missing return statement in function");
2342 static final public Literal Literal() throws ParseException {
2345 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2346 case INTEGER_LITERAL:
2347 token = jj_consume_token(INTEGER_LITERAL);
2348 pos = SimpleCharStream.getPosition();
2349 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2351 case FLOATING_POINT_LITERAL:
2352 token = jj_consume_token(FLOATING_POINT_LITERAL);
2353 pos = SimpleCharStream.getPosition();
2354 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2356 case STRING_LITERAL:
2357 token = jj_consume_token(STRING_LITERAL);
2358 pos = SimpleCharStream.getPosition();
2359 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length());}
2362 jj_consume_token(TRUE);
2363 pos = SimpleCharStream.getPosition();
2364 {if (true) return new TrueLiteral(pos-4,pos);}
2367 jj_consume_token(FALSE);
2368 pos = SimpleCharStream.getPosition();
2369 {if (true) return new FalseLiteral(pos-4,pos);}
2372 jj_consume_token(NULL);
2373 pos = SimpleCharStream.getPosition();
2374 {if (true) return new NullLiteral(pos-4,pos);}
2377 jj_la1[68] = jj_gen;
2378 jj_consume_token(-1);
2379 throw new ParseException();
2381 throw new Error("Missing return statement in function");
2384 static final public FunctionCall Arguments(Expression func) throws ParseException {
2385 Expression[] args = null;
2386 jj_consume_token(LPAREN);
2387 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2403 case INTEGER_LITERAL:
2404 case FLOATING_POINT_LITERAL:
2405 case STRING_LITERAL:
2409 args = ArgumentList();
2412 jj_la1[69] = jj_gen;
2416 jj_consume_token(RPAREN);
2417 } catch (ParseException e) {
2418 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2420 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2421 errorEnd = SimpleCharStream.getPosition() + 1;
2422 {if (true) throw e;}
2424 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2425 throw new Error("Missing return statement in function");
2429 * An argument list is a list of arguments separated by comma :
2430 * argumentDeclaration() (, argumentDeclaration)*
2431 * @return an array of arguments
2433 static final public Expression[] ArgumentList() throws ParseException {
2435 final ArrayList list = new ArrayList();
2440 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2445 jj_la1[70] = jj_gen;
2448 jj_consume_token(COMMA);
2452 } catch (ParseException e) {
2453 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2455 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2456 errorEnd = SimpleCharStream.getPosition() + 1;
2457 {if (true) throw e;}
2460 Expression[] arguments = new Expression[list.size()];
2461 list.toArray(arguments);
2462 {if (true) return arguments;}
2463 throw new Error("Missing return statement in function");
2467 * A Statement without break.
2469 static final public Statement StatementNoBreak() throws ParseException {
2470 final Statement statement;
2473 statement = Expression();
2475 jj_consume_token(SEMICOLON);
2476 } catch (ParseException e) {
2477 if (e.currentToken.next.kind != 4) {
2478 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2480 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2481 errorEnd = SimpleCharStream.getPosition() + 1;
2482 {if (true) throw e;}
2485 {if (true) return statement;}
2486 } else if (jj_2_7(2)) {
2487 statement = LabeledStatement();
2488 {if (true) return statement;}
2490 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2492 statement = Block();
2493 {if (true) return statement;}
2496 statement = EmptyStatement();
2497 {if (true) return statement;}
2506 statement = StatementExpression();
2508 jj_consume_token(SEMICOLON);
2509 } catch (ParseException e) {
2510 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2512 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2513 errorEnd = SimpleCharStream.getPosition() + 1;
2514 {if (true) throw e;}
2516 {if (true) return statement;}
2519 statement = SwitchStatement();
2520 {if (true) return statement;}
2523 statement = IfStatement();
2524 {if (true) return statement;}
2527 statement = WhileStatement();
2528 {if (true) return statement;}
2531 statement = DoStatement();
2532 {if (true) return statement;}
2535 statement = ForStatement();
2536 {if (true) return statement;}
2539 statement = ForeachStatement();
2540 {if (true) return statement;}
2543 statement = ContinueStatement();
2544 {if (true) return statement;}
2547 statement = ReturnStatement();
2548 {if (true) return statement;}
2551 statement = EchoStatement();
2552 {if (true) return statement;}
2559 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2561 token = jj_consume_token(AT);
2564 jj_la1[71] = jj_gen;
2567 statement = IncludeStatement();
2568 if (token != null) {
2569 ((InclusionStatement)statement).silent = true;
2571 {if (true) return statement;}
2574 statement = StaticStatement();
2575 {if (true) return statement;}
2578 statement = GlobalStatement();
2579 {if (true) return statement;}
2582 jj_la1[72] = jj_gen;
2583 jj_consume_token(-1);
2584 throw new ParseException();
2587 throw new Error("Missing return statement in function");
2591 * A Normal statement.
2593 static final public Statement Statement() throws ParseException {
2594 final Statement statement;
2595 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2626 case INTEGER_LITERAL:
2627 case FLOATING_POINT_LITERAL:
2628 case STRING_LITERAL:
2634 statement = StatementNoBreak();
2635 {if (true) return statement;}
2638 statement = BreakStatement();
2639 {if (true) return statement;}
2642 jj_la1[73] = jj_gen;
2643 jj_consume_token(-1);
2644 throw new ParseException();
2646 throw new Error("Missing return statement in function");
2650 * An html block inside a php syntax.
2652 static final public HTMLBlock htmlBlock() throws ParseException {
2653 final int startIndex = nodePtr;
2654 AstNode[] blockNodes;
2656 jj_consume_token(PHPEND);
2659 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2664 jj_la1[74] = jj_gen;
2670 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2672 jj_consume_token(PHPSTARTLONG);
2675 jj_consume_token(PHPSTARTSHORT);
2678 jj_la1[75] = jj_gen;
2679 jj_consume_token(-1);
2680 throw new ParseException();
2682 } catch (ParseException e) {
2683 errorMessage = "End of file unexpected, '<?php' expected";
2685 errorStart = SimpleCharStream.getPosition();
2686 errorEnd = SimpleCharStream.getPosition();
2687 {if (true) throw e;}
2689 nbNodes = nodePtr-startIndex - 1;
2690 blockNodes = new AstNode[nbNodes];
2691 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2692 {if (true) return new HTMLBlock(nodes);}
2693 throw new Error("Missing return statement in function");
2697 * An include statement. It's "include" an expression;
2699 static final public InclusionStatement IncludeStatement() throws ParseException {
2700 final Expression expr;
2702 final int pos = SimpleCharStream.getPosition();
2703 final InclusionStatement inclusionStatement;
2704 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2706 jj_consume_token(REQUIRE);
2707 keyword = InclusionStatement.REQUIRE;
2710 jj_consume_token(REQUIRE_ONCE);
2711 keyword = InclusionStatement.REQUIRE_ONCE;
2714 jj_consume_token(INCLUDE);
2715 keyword = InclusionStatement.INCLUDE;
2718 jj_consume_token(INCLUDE_ONCE);
2719 keyword = InclusionStatement.INCLUDE_ONCE;
2722 jj_la1[76] = jj_gen;
2723 jj_consume_token(-1);
2724 throw new ParseException();
2727 expr = Expression();
2728 } catch (ParseException e) {
2729 if (errorMessage != null) {
2730 {if (true) throw e;}
2732 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2734 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2735 errorEnd = SimpleCharStream.getPosition() + 1;
2736 {if (true) throw e;}
2738 inclusionStatement = new InclusionStatement(currentSegment,
2742 currentSegment.add(inclusionStatement);
2744 jj_consume_token(SEMICOLON);
2745 } catch (ParseException e) {
2746 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2748 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2749 errorEnd = SimpleCharStream.getPosition() + 1;
2750 {if (true) throw e;}
2752 {if (true) return inclusionStatement;}
2753 throw new Error("Missing return statement in function");
2756 static final public PrintExpression PrintExpression() throws ParseException {
2757 final Expression expr;
2758 final int pos = SimpleCharStream.getPosition();
2759 jj_consume_token(PRINT);
2760 expr = Expression();
2761 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2762 throw new Error("Missing return statement in function");
2765 static final public ListExpression ListExpression() throws ParseException {
2767 Expression expression = null;
2768 ArrayList list = new ArrayList();
2769 final int pos = SimpleCharStream.getPosition();
2770 jj_consume_token(LIST);
2772 jj_consume_token(LPAREN);
2773 } catch (ParseException e) {
2774 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2776 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2777 errorEnd = SimpleCharStream.getPosition() + 1;
2778 {if (true) throw e;}
2780 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2783 expr = VariableDeclaratorId();
2787 jj_la1[77] = jj_gen;
2790 if (expr == null) list.add(null);
2793 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2798 jj_la1[78] = jj_gen;
2802 jj_consume_token(COMMA);
2803 } catch (ParseException e) {
2804 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2806 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2807 errorEnd = SimpleCharStream.getPosition() + 1;
2808 {if (true) throw e;}
2810 expr = VariableDeclaratorId();
2814 jj_consume_token(RPAREN);
2815 } catch (ParseException e) {
2816 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2818 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2819 errorEnd = SimpleCharStream.getPosition() + 1;
2820 {if (true) throw e;}
2822 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2824 jj_consume_token(ASSIGN);
2825 expression = Expression();
2826 String[] strings = new String[list.size()];
2827 list.toArray(strings);
2828 {if (true) return new ListExpression(strings,
2831 SimpleCharStream.getPosition());}
2834 jj_la1[79] = jj_gen;
2837 String[] strings = new String[list.size()];
2838 list.toArray(strings);
2839 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2840 throw new Error("Missing return statement in function");
2844 * An echo statement.
2845 * echo anyexpression (, otherexpression)*
2847 static final public EchoStatement EchoStatement() throws ParseException {
2848 final ArrayList expressions = new ArrayList();
2850 final int pos = SimpleCharStream.getPosition();
2851 jj_consume_token(ECHO);
2852 expr = Expression();
2853 expressions.add(expr);
2856 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2861 jj_la1[80] = jj_gen;
2864 jj_consume_token(COMMA);
2865 expr = Expression();
2866 expressions.add(expr);
2869 jj_consume_token(SEMICOLON);
2870 Expression[] exprs = new Expression[expressions.size()];
2871 expressions.toArray(exprs);
2872 {if (true) return new EchoStatement(exprs,pos);}
2873 } catch (ParseException e) {
2874 if (e.currentToken.next.kind != 4) {
2875 errorMessage = "';' expected after 'echo' statement";
2877 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2878 errorEnd = SimpleCharStream.getPosition() + 1;
2879 {if (true) throw e;}
2882 throw new Error("Missing return statement in function");
2885 static final public GlobalStatement GlobalStatement() throws ParseException {
2886 final int pos = SimpleCharStream.getPosition();
2888 ArrayList vars = new ArrayList();
2889 GlobalStatement global;
2890 jj_consume_token(GLOBAL);
2891 expr = VariableDeclaratorId();
2895 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2900 jj_la1[81] = jj_gen;
2903 jj_consume_token(COMMA);
2904 expr = VariableDeclaratorId();
2908 jj_consume_token(SEMICOLON);
2909 String[] strings = new String[vars.size()];
2910 vars.toArray(strings);
2911 global = new GlobalStatement(currentSegment,
2914 SimpleCharStream.getPosition());
2915 currentSegment.add(global);
2916 {if (true) return global;}
2917 } catch (ParseException e) {
2918 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2920 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2921 errorEnd = SimpleCharStream.getPosition() + 1;
2922 {if (true) throw e;}
2924 throw new Error("Missing return statement in function");
2927 static final public StaticStatement StaticStatement() throws ParseException {
2928 final int pos = SimpleCharStream.getPosition();
2929 final ArrayList vars = new ArrayList();
2930 VariableDeclaration expr;
2931 jj_consume_token(STATIC);
2932 expr = VariableDeclarator();
2933 vars.add(new String(expr.name));
2936 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2941 jj_la1[82] = jj_gen;
2944 jj_consume_token(COMMA);
2945 expr = VariableDeclarator();
2946 vars.add(new String(expr.name));
2949 jj_consume_token(SEMICOLON);
2950 String[] strings = new String[vars.size()];
2951 vars.toArray(strings);
2952 {if (true) return new StaticStatement(strings,
2954 SimpleCharStream.getPosition());}
2955 } catch (ParseException e) {
2956 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
2958 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2959 errorEnd = SimpleCharStream.getPosition() + 1;
2960 {if (true) throw e;}
2962 throw new Error("Missing return statement in function");
2965 static final public LabeledStatement LabeledStatement() throws ParseException {
2966 final int pos = SimpleCharStream.getPosition();
2968 final Statement statement;
2969 label = jj_consume_token(IDENTIFIER);
2970 jj_consume_token(COLON);
2971 statement = Statement();
2972 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
2973 throw new Error("Missing return statement in function");
2983 static final public Block Block() throws ParseException {
2984 final int pos = SimpleCharStream.getPosition();
2985 final ArrayList list = new ArrayList();
2986 Statement statement;
2988 jj_consume_token(LBRACE);
2989 } catch (ParseException e) {
2990 errorMessage = "'{' expected";
2992 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2993 errorEnd = SimpleCharStream.getPosition() + 1;
2994 {if (true) throw e;}
2998 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3033 case INTEGER_LITERAL:
3034 case FLOATING_POINT_LITERAL:
3035 case STRING_LITERAL:
3044 jj_la1[83] = jj_gen;
3047 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3081 case INTEGER_LITERAL:
3082 case FLOATING_POINT_LITERAL:
3083 case STRING_LITERAL:
3089 statement = BlockStatement();
3090 list.add(statement);
3093 statement = htmlBlock();
3094 list.add(statement);
3097 jj_la1[84] = jj_gen;
3098 jj_consume_token(-1);
3099 throw new ParseException();
3103 jj_consume_token(RBRACE);
3104 } catch (ParseException e) {
3105 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3107 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3108 errorEnd = SimpleCharStream.getPosition() + 1;
3109 {if (true) throw e;}
3111 Statement[] statements = new Statement[list.size()];
3112 list.toArray(statements);
3113 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3114 throw new Error("Missing return statement in function");
3117 static final public Statement BlockStatement() throws ParseException {
3118 final Statement statement;
3119 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3151 case INTEGER_LITERAL:
3152 case FLOATING_POINT_LITERAL:
3153 case STRING_LITERAL:
3159 statement = Statement();
3160 {if (true) return statement;}
3163 statement = ClassDeclaration();
3164 {if (true) return statement;}
3167 statement = MethodDeclaration();
3168 {if (true) return statement;}
3171 jj_la1[85] = jj_gen;
3172 jj_consume_token(-1);
3173 throw new ParseException();
3175 throw new Error("Missing return statement in function");
3179 * A Block statement that will not contain any 'break'
3181 static final public Statement BlockStatementNoBreak() throws ParseException {
3182 final Statement statement;
3183 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3214 case INTEGER_LITERAL:
3215 case FLOATING_POINT_LITERAL:
3216 case STRING_LITERAL:
3222 statement = StatementNoBreak();
3223 {if (true) return statement;}
3226 statement = ClassDeclaration();
3227 {if (true) return statement;}
3230 statement = MethodDeclaration();
3231 {if (true) return statement;}
3234 jj_la1[86] = jj_gen;
3235 jj_consume_token(-1);
3236 throw new ParseException();
3238 throw new Error("Missing return statement in function");
3241 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3242 final ArrayList list = new ArrayList();
3243 VariableDeclaration var;
3244 var = LocalVariableDeclarator();
3248 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3253 jj_la1[87] = jj_gen;
3256 jj_consume_token(COMMA);
3257 var = LocalVariableDeclarator();
3260 VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3262 {if (true) return vars;}
3263 throw new Error("Missing return statement in function");
3266 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3267 final String varName;
3268 Expression initializer = null;
3269 final int pos = SimpleCharStream.getPosition();
3270 varName = VariableDeclaratorId();
3271 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3273 jj_consume_token(ASSIGN);
3274 initializer = Expression();
3277 jj_la1[88] = jj_gen;
3280 if (initializer == null) {
3281 {if (true) return new VariableDeclaration(currentSegment,
3282 varName.toCharArray(),
3284 SimpleCharStream.getPosition());}
3286 {if (true) return new VariableDeclaration(currentSegment,
3287 varName.toCharArray(),
3290 throw new Error("Missing return statement in function");
3293 static final public EmptyStatement EmptyStatement() throws ParseException {
3295 jj_consume_token(SEMICOLON);
3296 pos = SimpleCharStream.getPosition();
3297 {if (true) return new EmptyStatement(pos-1,pos);}
3298 throw new Error("Missing return statement in function");
3301 static final public Statement StatementExpression() throws ParseException {
3302 Expression expr,expr2;
3304 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3307 expr = PreIncDecExpression();
3308 {if (true) return expr;}
3315 expr = PrimaryExpression();
3316 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3331 case RSIGNEDSHIFTASSIGN:
3332 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3334 jj_consume_token(INCR);
3335 {if (true) return new PostfixedUnaryExpression(expr,
3336 OperatorIds.PLUS_PLUS,
3337 SimpleCharStream.getPosition());}
3340 jj_consume_token(DECR);
3341 {if (true) return new PostfixedUnaryExpression(expr,
3342 OperatorIds.MINUS_MINUS,
3343 SimpleCharStream.getPosition());}
3357 case RSIGNEDSHIFTASSIGN:
3358 operator = AssignmentOperator();
3359 expr2 = Expression();
3360 {if (true) return new BinaryExpression(expr,expr2,operator);}
3363 jj_la1[89] = jj_gen;
3364 jj_consume_token(-1);
3365 throw new ParseException();
3369 jj_la1[90] = jj_gen;
3372 {if (true) return expr;}
3375 jj_la1[91] = jj_gen;
3376 jj_consume_token(-1);
3377 throw new ParseException();
3379 throw new Error("Missing return statement in function");
3382 static final public SwitchStatement SwitchStatement() throws ParseException {
3383 final Expression variable;
3384 final AbstractCase[] cases;
3385 final int pos = SimpleCharStream.getPosition();
3386 jj_consume_token(SWITCH);
3388 jj_consume_token(LPAREN);
3389 } catch (ParseException e) {
3390 errorMessage = "'(' expected after 'switch'";
3392 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3393 errorEnd = SimpleCharStream.getPosition() + 1;
3394 {if (true) throw e;}
3397 variable = Expression();
3398 } catch (ParseException e) {
3399 if (errorMessage != null) {
3400 {if (true) throw e;}
3402 errorMessage = "expression expected";
3404 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3405 errorEnd = SimpleCharStream.getPosition() + 1;
3406 {if (true) throw e;}
3409 jj_consume_token(RPAREN);
3410 } catch (ParseException e) {
3411 errorMessage = "')' expected";
3413 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3414 errorEnd = SimpleCharStream.getPosition() + 1;
3415 {if (true) throw e;}
3417 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3419 cases = switchStatementBrace();
3422 cases = switchStatementColon(pos, pos + 6);
3425 jj_la1[92] = jj_gen;
3426 jj_consume_token(-1);
3427 throw new ParseException();
3429 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3430 throw new Error("Missing return statement in function");
3433 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3435 final ArrayList cases = new ArrayList();
3436 jj_consume_token(LBRACE);
3439 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3445 jj_la1[93] = jj_gen;
3448 cas = switchLabel0();
3452 jj_consume_token(RBRACE);
3453 AbstractCase[] abcase = new AbstractCase[cases.size()];
3454 cases.toArray(abcase);
3455 {if (true) return abcase;}
3456 } catch (ParseException e) {
3457 errorMessage = "'}' expected";
3459 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3460 errorEnd = SimpleCharStream.getPosition() + 1;
3461 {if (true) throw e;}
3463 throw new Error("Missing return statement in function");
3467 * A Switch statement with : ... endswitch;
3468 * @param start the begin offset of the switch
3469 * @param end the end offset of the switch
3471 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3473 final ArrayList cases = new ArrayList();
3474 jj_consume_token(COLON);
3476 setMarker(fileToParse,
3477 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3481 "Line " + token.beginLine);
3482 } catch (CoreException e) {
3483 PHPeclipsePlugin.log(e);
3487 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3493 jj_la1[94] = jj_gen;
3496 cas = switchLabel0();
3500 jj_consume_token(ENDSWITCH);
3501 } catch (ParseException e) {
3502 errorMessage = "'endswitch' expected";
3504 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3505 errorEnd = SimpleCharStream.getPosition() + 1;
3506 {if (true) throw e;}
3509 jj_consume_token(SEMICOLON);
3510 AbstractCase[] abcase = new AbstractCase[cases.size()];
3511 cases.toArray(abcase);
3512 {if (true) return abcase;}
3513 } catch (ParseException e) {
3514 errorMessage = "';' expected after 'endswitch' keyword";
3516 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3517 errorEnd = SimpleCharStream.getPosition() + 1;
3518 {if (true) throw e;}
3520 throw new Error("Missing return statement in function");
3523 static final public AbstractCase switchLabel0() throws ParseException {
3524 final Expression expr;
3525 Statement statement;
3526 final ArrayList stmts = new ArrayList();
3527 final int pos = SimpleCharStream.getPosition();
3528 expr = SwitchLabel();
3531 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3565 case INTEGER_LITERAL:
3566 case FLOATING_POINT_LITERAL:
3567 case STRING_LITERAL:
3576 jj_la1[95] = jj_gen;
3579 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3612 case INTEGER_LITERAL:
3613 case FLOATING_POINT_LITERAL:
3614 case STRING_LITERAL:
3620 statement = BlockStatementNoBreak();
3621 stmts.add(statement);
3624 statement = htmlBlock();
3625 stmts.add(statement);
3628 jj_la1[96] = jj_gen;
3629 jj_consume_token(-1);
3630 throw new ParseException();
3633 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3635 statement = BreakStatement();
3636 stmts.add(statement);
3639 jj_la1[97] = jj_gen;
3642 Statement[] stmtsArray = new Statement[stmts.size()];
3643 stmts.toArray(stmtsArray);
3644 if (expr == null) {//it's a default
3645 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3647 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3648 throw new Error("Missing return statement in function");
3653 * case Expression() :
3655 * @return the if it was a case and null if not
3657 static final public Expression SwitchLabel() throws ParseException {
3658 final Expression expr;
3659 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3661 token = jj_consume_token(CASE);
3663 expr = Expression();
3664 } catch (ParseException e) {
3665 if (errorMessage != null) {if (true) throw e;}
3666 errorMessage = "expression expected after 'case' keyword";
3668 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3669 errorEnd = SimpleCharStream.getPosition() + 1;
3670 {if (true) throw e;}
3673 jj_consume_token(COLON);
3674 {if (true) return expr;}
3675 } catch (ParseException e) {
3676 errorMessage = "':' expected after case expression";
3678 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3679 errorEnd = SimpleCharStream.getPosition() + 1;
3680 {if (true) throw e;}
3684 token = jj_consume_token(_DEFAULT);
3686 jj_consume_token(COLON);
3687 {if (true) return null;}
3688 } catch (ParseException e) {
3689 errorMessage = "':' expected after 'default' keyword";
3691 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3692 errorEnd = SimpleCharStream.getPosition() + 1;
3693 {if (true) throw e;}
3697 jj_la1[98] = jj_gen;
3698 jj_consume_token(-1);
3699 throw new ParseException();
3701 throw new Error("Missing return statement in function");
3704 static final public Break BreakStatement() throws ParseException {
3705 Expression expression = null;
3706 final int start = SimpleCharStream.getPosition();
3707 jj_consume_token(BREAK);
3708 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3724 case INTEGER_LITERAL:
3725 case FLOATING_POINT_LITERAL:
3726 case STRING_LITERAL:
3730 expression = Expression();
3733 jj_la1[99] = jj_gen;
3737 jj_consume_token(SEMICOLON);
3738 } catch (ParseException e) {
3739 errorMessage = "';' expected after 'break' keyword";
3741 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3742 errorEnd = SimpleCharStream.getPosition() + 1;
3743 {if (true) throw e;}
3745 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3746 throw new Error("Missing return statement in function");
3749 static final public IfStatement IfStatement() throws ParseException {
3750 final int pos = SimpleCharStream.getPosition();
3751 Expression condition;
3752 IfStatement ifStatement;
3753 jj_consume_token(IF);
3754 condition = Condition("if");
3755 ifStatement = IfStatement0(condition, pos,pos+2);
3756 {if (true) return ifStatement;}
3757 throw new Error("Missing return statement in function");
3760 static final public Expression Condition(final String keyword) throws ParseException {
3761 final Expression condition;
3763 jj_consume_token(LPAREN);
3764 } catch (ParseException e) {
3765 errorMessage = "'(' expected after " + keyword + " keyword";
3767 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length();
3768 errorEnd = errorStart +1;
3769 processParseException(e);
3771 condition = Expression();
3773 jj_consume_token(RPAREN);
3774 {if (true) return condition;}
3775 } catch (ParseException e) {
3776 errorMessage = "')' expected after " + keyword + " keyword";
3778 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3779 errorEnd = SimpleCharStream.getPosition() + 1;
3780 {if (true) throw e;}
3782 throw new Error("Missing return statement in function");
3785 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3786 Statement statement;
3788 final Statement[] statementsArray;
3789 ElseIf elseifStatement;
3790 Else elseStatement = null;
3792 final ArrayList elseIfList = new ArrayList();
3794 int pos = SimpleCharStream.getPosition();
3796 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3798 jj_consume_token(COLON);
3799 stmts = new ArrayList();
3802 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3835 case INTEGER_LITERAL:
3836 case FLOATING_POINT_LITERAL:
3837 case STRING_LITERAL:
3846 jj_la1[100] = jj_gen;
3849 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3881 case INTEGER_LITERAL:
3882 case FLOATING_POINT_LITERAL:
3883 case STRING_LITERAL:
3889 statement = Statement();
3890 stmts.add(statement);
3893 statement = htmlBlock();
3894 stmts.add(statement);
3897 jj_la1[101] = jj_gen;
3898 jj_consume_token(-1);
3899 throw new ParseException();
3902 endStatements = SimpleCharStream.getPosition();
3905 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3910 jj_la1[102] = jj_gen;
3913 elseifStatement = ElseIfStatementColon();
3914 elseIfList.add(elseifStatement);
3916 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3918 elseStatement = ElseStatementColon();
3921 jj_la1[103] = jj_gen;
3925 setMarker(fileToParse,
3926 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
3930 "Line " + token.beginLine);
3931 } catch (CoreException e) {
3932 PHPeclipsePlugin.log(e);
3935 jj_consume_token(ENDIF);
3936 } catch (ParseException e) {
3937 errorMessage = "'endif' expected";
3939 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3940 errorEnd = SimpleCharStream.getPosition() + 1;
3941 {if (true) throw e;}
3944 jj_consume_token(SEMICOLON);
3945 } catch (ParseException e) {
3946 errorMessage = "';' expected after 'endif' keyword";
3948 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3949 errorEnd = SimpleCharStream.getPosition() + 1;
3950 {if (true) throw e;}
3952 elseIfs = new ElseIf[elseIfList.size()];
3953 elseIfList.toArray(elseIfs);
3954 if (stmts.size() == 1) {
3955 {if (true) return new IfStatement(condition,
3956 (Statement) stmts.get(0),
3960 SimpleCharStream.getPosition());}
3962 statementsArray = new Statement[stmts.size()];
3963 stmts.toArray(statementsArray);
3964 {if (true) return new IfStatement(condition,
3965 new Block(statementsArray,pos,endStatements),
3969 SimpleCharStream.getPosition());}
4004 case INTEGER_LITERAL:
4005 case FLOATING_POINT_LITERAL:
4006 case STRING_LITERAL:
4012 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4044 case INTEGER_LITERAL:
4045 case FLOATING_POINT_LITERAL:
4046 case STRING_LITERAL:
4058 jj_la1[104] = jj_gen;
4059 jj_consume_token(-1);
4060 throw new ParseException();
4064 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4069 jj_la1[105] = jj_gen;
4072 elseifStatement = ElseIfStatement();
4073 elseIfList.add(elseifStatement);
4075 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4077 jj_consume_token(ELSE);
4079 pos = SimpleCharStream.getPosition();
4080 statement = Statement();
4081 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4082 } catch (ParseException e) {
4083 if (errorMessage != null) {
4084 {if (true) throw e;}
4086 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4088 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4089 errorEnd = SimpleCharStream.getPosition() + 1;
4090 {if (true) throw e;}
4094 jj_la1[106] = jj_gen;
4097 elseIfs = new ElseIf[elseIfList.size()];
4098 elseIfList.toArray(elseIfs);
4099 {if (true) return new IfStatement(condition,
4104 SimpleCharStream.getPosition());}
4107 jj_la1[107] = jj_gen;
4108 jj_consume_token(-1);
4109 throw new ParseException();
4111 throw new Error("Missing return statement in function");
4114 static final public ElseIf ElseIfStatementColon() throws ParseException {
4115 Expression condition;
4116 Statement statement;
4117 final ArrayList list = new ArrayList();
4118 final int pos = SimpleCharStream.getPosition();
4119 jj_consume_token(ELSEIF);
4120 condition = Condition("elseif");
4121 jj_consume_token(COLON);
4124 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4157 case INTEGER_LITERAL:
4158 case FLOATING_POINT_LITERAL:
4159 case STRING_LITERAL:
4168 jj_la1[108] = jj_gen;
4171 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4203 case INTEGER_LITERAL:
4204 case FLOATING_POINT_LITERAL:
4205 case STRING_LITERAL:
4211 statement = Statement();
4212 list.add(statement);
4215 statement = htmlBlock();
4216 list.add(statement);
4219 jj_la1[109] = jj_gen;
4220 jj_consume_token(-1);
4221 throw new ParseException();
4224 Statement[] stmtsArray = new Statement[list.size()];
4225 list.toArray(stmtsArray);
4226 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4227 throw new Error("Missing return statement in function");
4230 static final public Else ElseStatementColon() throws ParseException {
4231 Statement statement;
4232 final ArrayList list = new ArrayList();
4233 final int pos = SimpleCharStream.getPosition();
4234 jj_consume_token(ELSE);
4235 jj_consume_token(COLON);
4238 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4271 case INTEGER_LITERAL:
4272 case FLOATING_POINT_LITERAL:
4273 case STRING_LITERAL:
4282 jj_la1[110] = jj_gen;
4285 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4317 case INTEGER_LITERAL:
4318 case FLOATING_POINT_LITERAL:
4319 case STRING_LITERAL:
4325 statement = Statement();
4326 list.add(statement);
4329 statement = htmlBlock();
4330 list.add(statement);
4333 jj_la1[111] = jj_gen;
4334 jj_consume_token(-1);
4335 throw new ParseException();
4338 Statement[] stmtsArray = new Statement[list.size()];
4339 list.toArray(stmtsArray);
4340 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4341 throw new Error("Missing return statement in function");
4344 static final public ElseIf ElseIfStatement() throws ParseException {
4345 Expression condition;
4346 Statement statement;
4347 final ArrayList list = new ArrayList();
4348 final int pos = SimpleCharStream.getPosition();
4349 jj_consume_token(ELSEIF);
4350 condition = Condition("elseif");
4351 statement = Statement();
4352 list.add(statement);/*todo:do better*/
4353 Statement[] stmtsArray = new Statement[list.size()];
4354 list.toArray(stmtsArray);
4355 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4356 throw new Error("Missing return statement in function");
4359 static final public WhileStatement WhileStatement() throws ParseException {
4360 final Expression condition;
4361 final Statement action;
4362 final int pos = SimpleCharStream.getPosition();
4363 jj_consume_token(WHILE);
4364 condition = Condition("while");
4365 action = WhileStatement0(pos,pos + 5);
4366 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4367 throw new Error("Missing return statement in function");
4370 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4371 Statement statement;
4372 final ArrayList stmts = new ArrayList();
4373 final int pos = SimpleCharStream.getPosition();
4374 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4376 jj_consume_token(COLON);
4379 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4411 case INTEGER_LITERAL:
4412 case FLOATING_POINT_LITERAL:
4413 case STRING_LITERAL:
4422 jj_la1[112] = jj_gen;
4425 statement = Statement();
4426 stmts.add(statement);
4429 setMarker(fileToParse,
4430 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4434 "Line " + token.beginLine);
4435 } catch (CoreException e) {
4436 PHPeclipsePlugin.log(e);
4439 jj_consume_token(ENDWHILE);
4440 } catch (ParseException e) {
4441 errorMessage = "'endwhile' expected";
4443 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4444 errorEnd = SimpleCharStream.getPosition() + 1;
4445 {if (true) throw e;}
4448 jj_consume_token(SEMICOLON);
4449 Statement[] stmtsArray = new Statement[stmts.size()];
4450 stmts.toArray(stmtsArray);
4451 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4452 } catch (ParseException e) {
4453 errorMessage = "';' expected after 'endwhile' keyword";
4455 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4456 errorEnd = SimpleCharStream.getPosition() + 1;
4457 {if (true) throw e;}
4491 case INTEGER_LITERAL:
4492 case FLOATING_POINT_LITERAL:
4493 case STRING_LITERAL:
4499 statement = Statement();
4500 {if (true) return statement;}
4503 jj_la1[113] = jj_gen;
4504 jj_consume_token(-1);
4505 throw new ParseException();
4507 throw new Error("Missing return statement in function");
4510 static final public DoStatement DoStatement() throws ParseException {
4511 final Statement action;
4512 final Expression condition;
4513 final int pos = SimpleCharStream.getPosition();
4514 jj_consume_token(DO);
4515 action = Statement();
4516 jj_consume_token(WHILE);
4517 condition = Condition("while");
4519 jj_consume_token(SEMICOLON);
4520 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4521 } catch (ParseException e) {
4522 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4524 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4525 errorEnd = SimpleCharStream.getPosition() + 1;
4526 {if (true) throw e;}
4528 throw new Error("Missing return statement in function");
4531 static final public ForeachStatement ForeachStatement() throws ParseException {
4532 Statement statement;
4533 Expression expression;
4534 final int pos = SimpleCharStream.getPosition();
4535 ArrayVariableDeclaration variable;
4536 jj_consume_token(FOREACH);
4538 jj_consume_token(LPAREN);
4539 } catch (ParseException e) {
4540 errorMessage = "'(' expected after 'foreach' keyword";
4542 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4543 errorEnd = SimpleCharStream.getPosition() + 1;
4544 {if (true) throw e;}
4547 expression = Expression();
4548 } catch (ParseException e) {
4549 errorMessage = "variable expected";
4551 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4552 errorEnd = SimpleCharStream.getPosition() + 1;
4553 {if (true) throw e;}
4556 jj_consume_token(AS);
4557 } catch (ParseException e) {
4558 errorMessage = "'as' expected";
4560 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4561 errorEnd = SimpleCharStream.getPosition() + 1;
4562 {if (true) throw e;}
4565 variable = ArrayVariable();
4566 } catch (ParseException e) {
4567 errorMessage = "variable expected";
4569 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4570 errorEnd = SimpleCharStream.getPosition() + 1;
4571 {if (true) throw e;}
4574 jj_consume_token(RPAREN);
4575 } catch (ParseException e) {
4576 errorMessage = "')' expected after 'foreach' keyword";
4578 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4579 errorEnd = SimpleCharStream.getPosition() + 1;
4580 {if (true) throw e;}
4583 statement = Statement();
4584 } catch (ParseException e) {
4585 if (errorMessage != null) {if (true) throw e;}
4586 errorMessage = "statement expected";
4588 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4589 errorEnd = SimpleCharStream.getPosition() + 1;
4590 {if (true) throw e;}
4592 {if (true) return new ForeachStatement(expression,
4596 SimpleCharStream.getPosition());}
4597 throw new Error("Missing return statement in function");
4600 static final public ForStatement ForStatement() throws ParseException {
4602 final int pos = SimpleCharStream.getPosition();
4603 Statement[] initializations = null;
4604 Expression condition = null;
4605 Statement[] increments = null;
4607 final ArrayList list = new ArrayList();
4608 final int startBlock, endBlock;
4609 token = jj_consume_token(FOR);
4611 jj_consume_token(LPAREN);
4612 } catch (ParseException e) {
4613 errorMessage = "'(' expected after 'for' keyword";
4615 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4616 errorEnd = SimpleCharStream.getPosition() + 1;
4617 {if (true) throw e;}
4619 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4627 initializations = ForInit();
4630 jj_la1[114] = jj_gen;
4633 jj_consume_token(SEMICOLON);
4634 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4650 case INTEGER_LITERAL:
4651 case FLOATING_POINT_LITERAL:
4652 case STRING_LITERAL:
4656 condition = Expression();
4659 jj_la1[115] = jj_gen;
4662 jj_consume_token(SEMICOLON);
4663 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4671 increments = StatementExpressionList();
4674 jj_la1[116] = jj_gen;
4677 jj_consume_token(RPAREN);
4678 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4710 case INTEGER_LITERAL:
4711 case FLOATING_POINT_LITERAL:
4712 case STRING_LITERAL:
4718 action = Statement();
4719 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4722 jj_consume_token(COLON);
4723 startBlock = SimpleCharStream.getPosition();
4726 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4758 case INTEGER_LITERAL:
4759 case FLOATING_POINT_LITERAL:
4760 case STRING_LITERAL:
4769 jj_la1[117] = jj_gen;
4772 action = Statement();
4776 setMarker(fileToParse,
4777 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4779 pos+token.image.length(),
4781 "Line " + token.beginLine);
4782 } catch (CoreException e) {
4783 PHPeclipsePlugin.log(e);
4785 endBlock = SimpleCharStream.getPosition();
4787 jj_consume_token(ENDFOR);
4788 } catch (ParseException e) {
4789 errorMessage = "'endfor' expected";
4791 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4792 errorEnd = SimpleCharStream.getPosition() + 1;
4793 {if (true) throw e;}
4796 jj_consume_token(SEMICOLON);
4797 Statement[] stmtsArray = new Statement[list.size()];
4798 list.toArray(stmtsArray);
4799 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4800 } catch (ParseException e) {
4801 errorMessage = "';' expected after 'endfor' keyword";
4803 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4804 errorEnd = SimpleCharStream.getPosition() + 1;
4805 {if (true) throw e;}
4809 jj_la1[118] = jj_gen;
4810 jj_consume_token(-1);
4811 throw new ParseException();
4813 throw new Error("Missing return statement in function");
4816 static final public Statement[] ForInit() throws ParseException {
4817 Statement[] statements;
4818 if (jj_2_8(2147483647)) {
4819 statements = LocalVariableDeclaration();
4820 {if (true) return statements;}
4822 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4830 statements = StatementExpressionList();
4831 {if (true) return statements;}
4834 jj_la1[119] = jj_gen;
4835 jj_consume_token(-1);
4836 throw new ParseException();
4839 throw new Error("Missing return statement in function");
4842 static final public Statement[] StatementExpressionList() throws ParseException {
4843 final ArrayList list = new ArrayList();
4845 expr = StatementExpression();
4849 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4854 jj_la1[120] = jj_gen;
4857 jj_consume_token(COMMA);
4858 StatementExpression();
4861 Statement[] stmtsArray = new Statement[list.size()];
4862 list.toArray(stmtsArray);
4863 {if (true) return stmtsArray;}
4864 throw new Error("Missing return statement in function");
4867 static final public Continue ContinueStatement() throws ParseException {
4868 Expression expr = null;
4869 final int pos = SimpleCharStream.getPosition();
4870 jj_consume_token(CONTINUE);
4871 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4887 case INTEGER_LITERAL:
4888 case FLOATING_POINT_LITERAL:
4889 case STRING_LITERAL:
4893 expr = Expression();
4896 jj_la1[121] = jj_gen;
4900 jj_consume_token(SEMICOLON);
4901 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
4902 } catch (ParseException e) {
4903 errorMessage = "';' expected after 'continue' statement";
4905 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4906 errorEnd = SimpleCharStream.getPosition() + 1;
4907 {if (true) throw e;}
4909 throw new Error("Missing return statement in function");
4912 static final public ReturnStatement ReturnStatement() throws ParseException {
4913 Expression expr = null;
4914 final int pos = SimpleCharStream.getPosition();
4915 jj_consume_token(RETURN);
4916 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4932 case INTEGER_LITERAL:
4933 case FLOATING_POINT_LITERAL:
4934 case STRING_LITERAL:
4938 expr = Expression();
4941 jj_la1[122] = jj_gen;
4945 jj_consume_token(SEMICOLON);
4946 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
4947 } catch (ParseException e) {
4948 errorMessage = "';' expected after 'return' statement";
4950 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4951 errorEnd = SimpleCharStream.getPosition() + 1;
4952 {if (true) throw e;}
4954 throw new Error("Missing return statement in function");
4957 static final private boolean jj_2_1(int xla) {
4958 jj_la = xla; jj_lastpos = jj_scanpos = token;
4959 boolean retval = !jj_3_1();
4964 static final private boolean jj_2_2(int xla) {
4965 jj_la = xla; jj_lastpos = jj_scanpos = token;
4966 boolean retval = !jj_3_2();
4971 static final private boolean jj_2_3(int xla) {
4972 jj_la = xla; jj_lastpos = jj_scanpos = token;
4973 boolean retval = !jj_3_3();
4978 static final private boolean jj_2_4(int xla) {
4979 jj_la = xla; jj_lastpos = jj_scanpos = token;
4980 boolean retval = !jj_3_4();
4985 static final private boolean jj_2_5(int xla) {
4986 jj_la = xla; jj_lastpos = jj_scanpos = token;
4987 boolean retval = !jj_3_5();
4992 static final private boolean jj_2_6(int xla) {
4993 jj_la = xla; jj_lastpos = jj_scanpos = token;
4994 boolean retval = !jj_3_6();
4999 static final private boolean jj_2_7(int xla) {
5000 jj_la = xla; jj_lastpos = jj_scanpos = token;
5001 boolean retval = !jj_3_7();
5006 static final private boolean jj_2_8(int xla) {
5007 jj_la = xla; jj_lastpos = jj_scanpos = token;
5008 boolean retval = !jj_3_8();
5013 static final private boolean jj_3R_83() {
5014 if (jj_scan_token(OBJECT)) return true;
5015 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5019 static final private boolean jj_3R_82() {
5020 if (jj_scan_token(INTEGER)) return true;
5021 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5025 static final private boolean jj_3R_44() {
5026 if (jj_scan_token(ARRAY)) return true;
5027 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5031 static final private boolean jj_3R_184() {
5032 if (jj_scan_token(ARRAY)) return true;
5033 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5037 static final private boolean jj_3R_81() {
5038 if (jj_scan_token(INT)) return true;
5039 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5043 static final private boolean jj_3R_183() {
5044 if (jj_3R_52()) return true;
5045 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5049 static final private boolean jj_3R_80() {
5050 if (jj_scan_token(FLOAT)) return true;
5051 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5055 static final private boolean jj_3R_85() {
5056 if (jj_scan_token(LIST)) return true;
5057 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5058 if (jj_scan_token(LPAREN)) return true;
5059 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5062 if (jj_3R_99()) jj_scanpos = xsp;
5063 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5066 if (jj_3R_100()) { jj_scanpos = xsp; break; }
5067 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5069 if (jj_scan_token(RPAREN)) return true;
5070 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5072 if (jj_3R_101()) jj_scanpos = xsp;
5073 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5077 static final private boolean jj_3R_167() {
5078 if (jj_scan_token(LPAREN)) return true;
5079 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5084 if (jj_3R_184()) return true;
5085 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5086 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5087 if (jj_scan_token(RPAREN)) return true;
5088 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5089 if (jj_3R_139()) return true;
5090 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5094 static final private boolean jj_3R_79() {
5095 if (jj_scan_token(DOUBLE)) return true;
5096 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5100 static final private boolean jj_3R_43() {
5101 if (jj_3R_52()) return true;
5102 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5106 static final private boolean jj_3R_78() {
5107 if (jj_scan_token(REAL)) return true;
5108 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5112 static final private boolean jj_3R_77() {
5113 if (jj_scan_token(BOOLEAN)) return true;
5114 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5118 static final private boolean jj_3R_84() {
5119 if (jj_scan_token(PRINT)) return true;
5120 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5121 if (jj_3R_45()) return true;
5122 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5126 static final private boolean jj_3R_76() {
5127 if (jj_scan_token(BOOL)) return true;
5128 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5132 static final private boolean jj_3_4() {
5133 if (jj_scan_token(LPAREN)) return true;
5134 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5139 if (jj_3R_44()) return true;
5140 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5141 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5142 if (jj_scan_token(RPAREN)) return true;
5143 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5147 static final private boolean jj_3R_75() {
5148 if (jj_scan_token(STRING)) return true;
5149 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5153 static final private boolean jj_3R_52() {
5172 if (jj_3R_83()) return true;
5173 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5174 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5175 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5176 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5177 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5178 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5179 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5180 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5181 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5185 static final private boolean jj_3R_165() {
5186 if (jj_scan_token(LPAREN)) return true;
5187 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5188 if (jj_3R_45()) return true;
5189 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5190 if (jj_scan_token(RPAREN)) return true;
5191 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5195 static final private boolean jj_3R_164() {
5196 if (jj_3R_169()) return true;
5197 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5201 static final private boolean jj_3R_163() {
5202 if (jj_3R_168()) return true;
5203 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5207 static final private boolean jj_3R_162() {
5208 if (jj_3R_167()) return true;
5209 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5213 static final private boolean jj_3R_158() {
5224 if (jj_3R_165()) return true;
5225 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5226 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5227 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5228 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5229 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5233 static final private boolean jj_3R_161() {
5234 if (jj_scan_token(BANG)) return true;
5235 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5236 if (jj_3R_139()) return true;
5237 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5241 static final private boolean jj_3R_160() {
5242 if (jj_scan_token(DECR)) return true;
5243 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5247 static final private boolean jj_3R_159() {
5248 if (jj_scan_token(INCR)) return true;
5249 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5253 static final private boolean jj_3R_157() {
5258 if (jj_3R_160()) return true;
5259 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5260 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5261 if (jj_3R_166()) return true;
5262 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5266 static final private boolean jj_3R_152() {
5267 if (jj_3R_158()) return true;
5268 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5272 static final private boolean jj_3R_151() {
5273 if (jj_3R_157()) return true;
5274 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5278 static final private boolean jj_3R_156() {
5279 if (jj_scan_token(MINUS)) return true;
5280 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5284 static final private boolean jj_3R_155() {
5285 if (jj_scan_token(PLUS)) return true;
5286 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5290 static final private boolean jj_3R_148() {
5297 if (jj_3R_152()) return true;
5298 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5299 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5300 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5304 static final private boolean jj_3R_150() {
5309 if (jj_3R_156()) return true;
5310 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5311 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5312 if (jj_3R_139()) return true;
5313 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5317 static final private boolean jj_3R_154() {
5318 if (jj_3R_148()) return true;
5319 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5323 static final private boolean jj_3R_149() {
5328 if (jj_3R_154()) return true;
5329 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5334 static final private boolean jj_3R_153() {
5335 if (jj_scan_token(AT)) return true;
5336 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5337 if (jj_3R_149()) return true;
5338 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5342 static final private boolean jj_3R_144() {
5343 if (jj_3R_149()) return true;
5344 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5348 static final private boolean jj_3R_139() {
5353 if (jj_3R_144()) return true;
5354 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5355 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5359 static final private boolean jj_3R_143() {
5360 if (jj_scan_token(BIT_AND)) return true;
5361 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5362 if (jj_3R_148()) return true;
5363 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5367 static final private boolean jj_3R_147() {
5368 if (jj_scan_token(REMAINDER)) return true;
5369 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5373 static final private boolean jj_3R_146() {
5374 if (jj_scan_token(SLASH)) return true;
5375 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5379 static final private boolean jj_3R_145() {
5380 if (jj_scan_token(STAR)) return true;
5381 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5385 static final private boolean jj_3R_140() {
5392 if (jj_3R_147()) return true;
5393 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5394 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5395 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5396 if (jj_3R_139()) return true;
5397 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5401 static final private boolean jj_3R_87() {
5402 if (jj_scan_token(ASSIGN)) return true;
5403 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5404 if (jj_3R_45()) return true;
5405 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5409 static final private boolean jj_3R_134() {
5410 if (jj_3R_139()) return true;
5411 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5415 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5416 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5421 static final private boolean jj_3R_142() {
5422 if (jj_scan_token(MINUS)) return true;
5423 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5427 static final private boolean jj_3R_141() {
5428 if (jj_scan_token(PLUS)) return true;
5429 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5433 static final private boolean jj_3R_135() {
5438 if (jj_3R_142()) return true;
5439 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5440 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5441 if (jj_3R_134()) return true;
5442 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5446 static final private boolean jj_3R_128() {
5447 if (jj_3R_134()) return true;
5448 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5452 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5458 static final private boolean jj_3R_198() {
5459 if (jj_scan_token(COMMA)) return true;
5460 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5464 static final private boolean jj_3_7() {
5465 if (jj_3R_46()) return true;
5466 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5470 static final private boolean jj_3_2() {
5471 if (jj_scan_token(COMMA)) return true;
5472 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5473 if (jj_3R_41()) return true;
5474 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5478 static final private boolean jj_3R_197() {
5479 if (jj_3R_41()) return true;
5480 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5484 if (jj_3_2()) { jj_scanpos = xsp; break; }
5485 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5490 static final private boolean jj_3R_57() {
5491 if (jj_3R_50()) return true;
5492 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5495 if (jj_3R_87()) jj_scanpos = xsp;
5496 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5500 static final private boolean jj_3R_138() {
5501 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5502 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5506 static final private boolean jj_3R_137() {
5507 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5508 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5512 static final private boolean jj_3R_136() {
5513 if (jj_scan_token(LSHIFT)) return true;
5514 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5518 static final private boolean jj_3R_129() {
5525 if (jj_3R_138()) return true;
5526 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5527 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5528 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5529 if (jj_3R_128()) return true;
5530 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5534 static final private boolean jj_3R_121() {
5535 if (jj_3R_128()) return true;
5536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5540 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5541 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5546 static final private boolean jj_3_6() {
5547 if (jj_3R_45()) return true;
5548 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5549 if (jj_scan_token(SEMICOLON)) return true;
5550 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5554 static final private boolean jj_3R_192() {
5555 if (jj_scan_token(LPAREN)) return true;
5556 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5559 if (jj_3R_197()) jj_scanpos = xsp;
5560 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5562 if (jj_3R_198()) jj_scanpos = xsp;
5563 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5564 if (jj_scan_token(RPAREN)) return true;
5565 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5569 static final private boolean jj_3R_58() {
5570 if (jj_scan_token(COMMA)) return true;
5571 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5572 if (jj_3R_57()) return true;
5573 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5577 static final private boolean jj_3R_47() {
5578 if (jj_3R_57()) return true;
5579 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5583 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5584 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5589 static final private boolean jj_3R_133() {
5590 if (jj_scan_token(GE)) return true;
5591 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5595 static final private boolean jj_3R_201() {
5596 if (jj_scan_token(ARRAYASSIGN)) return true;
5597 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5598 if (jj_3R_45()) return true;
5599 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5603 static final private boolean jj_3R_132() {
5604 if (jj_scan_token(LE)) return true;
5605 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5609 static final private boolean jj_3R_131() {
5610 if (jj_scan_token(GT)) return true;
5611 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5615 static final private boolean jj_3R_41() {
5616 if (jj_3R_45()) return true;
5617 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5620 if (jj_3R_201()) jj_scanpos = xsp;
5621 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5625 static final private boolean jj_3R_130() {
5626 if (jj_scan_token(LT)) return true;
5627 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5631 static final private boolean jj_3R_122() {
5640 if (jj_3R_133()) return true;
5641 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5642 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5643 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5644 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5645 if (jj_3R_121()) return true;
5646 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5650 static final private boolean jj_3R_119() {
5651 if (jj_3R_121()) return true;
5652 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5656 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5657 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5662 static final private boolean jj_3R_203() {
5663 if (jj_scan_token(COMMA)) return true;
5664 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5665 if (jj_3R_45()) return true;
5666 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5670 static final private boolean jj_3R_202() {
5671 if (jj_3R_45()) return true;
5672 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5676 if (jj_3R_203()) { jj_scanpos = xsp; break; }
5677 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5682 static final private boolean jj_3R_127() {
5683 if (jj_scan_token(TRIPLEEQUAL)) return true;
5684 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5688 static final private boolean jj_3R_200() {
5689 if (jj_3R_202()) return true;
5690 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5694 static final private boolean jj_3R_126() {
5695 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5696 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5700 static final private boolean jj_3R_125() {
5701 if (jj_scan_token(NOT_EQUAL)) return true;
5702 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5706 static final private boolean jj_3R_124() {
5707 if (jj_scan_token(DIF)) return true;
5708 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5712 static final private boolean jj_3R_123() {
5713 if (jj_scan_token(EQUAL_EQUAL)) return true;
5714 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5718 static final private boolean jj_3R_120() {
5729 if (jj_3R_127()) return true;
5730 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5732 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5733 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5734 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5735 if (jj_3R_119()) return true;
5736 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5740 static final private boolean jj_3R_108() {
5741 if (jj_scan_token(LBRACE)) return true;
5742 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5743 if (jj_3R_45()) return true;
5744 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5745 if (jj_scan_token(RBRACE)) return true;
5746 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5750 static final private boolean jj_3R_93() {
5751 if (jj_3R_52()) return true;
5752 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5756 static final private boolean jj_3R_117() {
5757 if (jj_3R_119()) return true;
5758 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5762 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5763 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5768 static final private boolean jj_3R_199() {
5769 if (jj_scan_token(LPAREN)) return true;
5770 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5773 if (jj_3R_200()) jj_scanpos = xsp;
5774 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5775 if (jj_scan_token(RPAREN)) return true;
5776 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5780 static final private boolean jj_3R_91() {
5781 if (jj_scan_token(DOLLAR_ID)) return true;
5782 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5786 static final private boolean jj_3R_90() {
5787 if (jj_scan_token(DOLLAR)) return true;
5788 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5789 if (jj_3R_59()) return true;
5790 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5794 static final private boolean jj_3R_118() {
5795 if (jj_scan_token(BIT_AND)) return true;
5796 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5797 if (jj_3R_117()) return true;
5798 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5802 static final private boolean jj_3R_177() {
5803 if (jj_scan_token(NULL)) return true;
5804 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5808 static final private boolean jj_3R_176() {
5809 if (jj_scan_token(FALSE)) return true;
5810 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5814 static final private boolean jj_3R_115() {
5815 if (jj_3R_117()) return true;
5816 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5820 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5821 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5826 static final private boolean jj_3R_175() {
5827 if (jj_scan_token(TRUE)) return true;
5828 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5832 static final private boolean jj_3R_174() {
5833 if (jj_scan_token(STRING_LITERAL)) return true;
5834 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5838 static final private boolean jj_3R_173() {
5839 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5844 static final private boolean jj_3R_89() {
5845 if (jj_scan_token(IDENTIFIER)) return true;
5846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5849 if (jj_3R_108()) jj_scanpos = xsp;
5850 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5854 static final private boolean jj_3R_169() {
5867 if (jj_3R_177()) return true;
5868 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5869 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5870 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5871 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5872 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5873 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5877 static final private boolean jj_3R_172() {
5878 if (jj_scan_token(INTEGER_LITERAL)) return true;
5879 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5883 static final private boolean jj_3R_116() {
5884 if (jj_scan_token(XOR)) return true;
5885 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5886 if (jj_3R_115()) return true;
5887 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5891 static final private boolean jj_3R_88() {
5892 if (jj_scan_token(LBRACE)) return true;
5893 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5894 if (jj_3R_45()) return true;
5895 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5896 if (jj_scan_token(RBRACE)) return true;
5897 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5901 static final private boolean jj_3R_59() {
5910 if (jj_3R_91()) 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;
5913 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5914 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5918 static final private boolean jj_3R_113() {
5919 if (jj_3R_115()) return true;
5920 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5924 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5925 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5930 static final private boolean jj_3R_92() {
5931 if (jj_3R_45()) return true;
5932 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5936 static final private boolean jj_3R_60() {
5941 if (jj_3R_93()) return true;
5942 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5943 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5947 static final private boolean jj_3R_98() {
5948 if (jj_scan_token(LBRACE)) return true;
5949 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5950 if (jj_3R_45()) return true;
5951 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5952 if (jj_scan_token(RBRACE)) return true;
5953 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5957 static final private boolean jj_3R_46() {
5958 if (jj_scan_token(IDENTIFIER)) return true;
5959 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5960 if (jj_scan_token(COLON)) return true;
5961 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5965 static final private boolean jj_3R_114() {
5966 if (jj_scan_token(BIT_OR)) return true;
5967 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5968 if (jj_3R_113()) return true;
5969 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5973 static final private boolean jj_3R_95() {
5974 if (jj_scan_token(DOLLAR)) return true;
5975 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5976 if (jj_3R_59()) return true;
5977 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5981 static final private boolean jj_3R_109() {
5982 if (jj_3R_113()) return true;
5983 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5987 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5988 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5993 static final private boolean jj_3R_49() {
5994 if (jj_scan_token(LBRACKET)) return true;
5995 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5998 if (jj_3R_60()) jj_scanpos = xsp;
5999 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6000 if (jj_scan_token(RBRACKET)) return true;
6001 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6005 static final private boolean jj_3_8() {
6006 if (jj_3R_47()) return true;
6007 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6011 static final private boolean jj_3R_110() {
6012 if (jj_scan_token(DOT)) return true;
6013 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6014 if (jj_3R_109()) return true;
6015 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6019 static final private boolean jj_3R_94() {
6020 if (jj_scan_token(DOLLAR_ID)) return true;
6021 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6024 if (jj_3R_98()) jj_scanpos = xsp;
6025 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6029 static final private boolean jj_3R_61() {
6034 if (jj_3R_95()) return true;
6035 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6036 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6040 static final private boolean jj_3R_104() {
6041 if (jj_3R_109()) return true;
6042 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6046 if (jj_3R_110()) { jj_scanpos = xsp; break; }
6047 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6052 static final private boolean jj_3R_48() {
6053 if (jj_scan_token(CLASSACCESS)) return true;
6054 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6055 if (jj_3R_59()) return true;
6056 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6060 static final private boolean jj_3R_40() {
6065 if (jj_3R_49()) return true;
6066 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6067 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6071 static final private boolean jj_3R_112() {
6072 if (jj_scan_token(_ANDL)) return true;
6073 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6077 static final private boolean jj_3R_111() {
6078 if (jj_scan_token(AND_AND)) return true;
6079 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6083 static final private boolean jj_3R_196() {
6084 if (jj_3R_40()) return true;
6085 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6089 static final private boolean jj_3R_105() {
6094 if (jj_3R_112()) return true;
6095 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6096 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6097 if (jj_3R_104()) return true;
6098 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6102 static final private boolean jj_3R_195() {
6103 if (jj_3R_199()) return true;
6104 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6108 static final private boolean jj_3R_188() {
6113 if (jj_3R_196()) return true;
6114 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6115 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6119 static final private boolean jj_3R_97() {
6120 if (jj_scan_token(HOOK)) return true;
6121 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6122 if (jj_3R_45()) return true;
6123 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6124 if (jj_scan_token(COLON)) return true;
6125 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6126 if (jj_3R_86()) return true;
6127 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6131 static final private boolean jj_3R_102() {
6132 if (jj_3R_104()) return true;
6133 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6137 if (jj_3R_105()) { jj_scanpos = xsp; break; }
6138 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6143 static final private boolean jj_3_1() {
6144 if (jj_3R_40()) return true;
6145 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6149 static final private boolean jj_3R_187() {
6150 if (jj_3R_50()) return true;
6151 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6155 static final private boolean jj_3R_107() {
6156 if (jj_scan_token(_ORL)) return true;
6157 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6161 static final private boolean jj_3R_106() {
6162 if (jj_scan_token(OR_OR)) return true;
6163 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6167 static final private boolean jj_3R_186() {
6168 if (jj_scan_token(IDENTIFIER)) return true;
6169 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6173 static final private boolean jj_3R_178() {
6178 if (jj_3R_187()) return true;
6179 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6180 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6184 static final private boolean jj_3R_50() {
6185 if (jj_3R_61()) return true;
6186 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6190 if (jj_3_1()) { jj_scanpos = xsp; break; }
6191 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6196 static final private boolean jj_3R_103() {
6201 if (jj_3R_107()) return true;
6202 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6203 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6204 if (jj_3R_102()) return true;
6205 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6209 static final private boolean jj_3R_96() {
6210 if (jj_3R_102()) return true;
6211 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6215 if (jj_3R_103()) { jj_scanpos = xsp; break; }
6216 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6221 static final private boolean jj_3R_86() {
6222 if (jj_3R_96()) return true;
6223 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6226 if (jj_3R_97()) jj_scanpos = xsp;
6227 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6231 static final private boolean jj_3R_74() {
6232 if (jj_scan_token(TILDEEQUAL)) return true;
6233 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6237 static final private boolean jj_3R_191() {
6238 if (jj_3R_50()) return true;
6239 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6243 static final private boolean jj_3R_73() {
6244 if (jj_scan_token(DOTASSIGN)) return true;
6245 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6249 static final private boolean jj_3R_72() {
6250 if (jj_scan_token(ORASSIGN)) return true;
6251 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6255 static final private boolean jj_3R_71() {
6256 if (jj_scan_token(XORASSIGN)) return true;
6257 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6261 static final private boolean jj_3R_190() {
6262 if (jj_scan_token(NEW)) return true;
6263 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6264 if (jj_3R_178()) return true;
6265 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6269 static final private boolean jj_3R_70() {
6270 if (jj_scan_token(ANDASSIGN)) return true;
6271 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6275 static final private boolean jj_3R_69() {
6276 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6277 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6281 static final private boolean jj_3R_68() {
6282 if (jj_scan_token(LSHIFTASSIGN)) return true;
6283 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6287 static final private boolean jj_3R_189() {
6288 if (jj_scan_token(IDENTIFIER)) return true;
6289 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6293 static final private boolean jj_3R_180() {
6300 if (jj_3R_191()) return true;
6301 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6302 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6303 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6307 static final private boolean jj_3R_67() {
6308 if (jj_scan_token(MINUSASSIGN)) return true;
6309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6313 static final private boolean jj_3R_66() {
6314 if (jj_scan_token(PLUSASSIGN)) return true;
6315 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6319 static final private boolean jj_3R_65() {
6320 if (jj_scan_token(REMASSIGN)) return true;
6321 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6325 static final private boolean jj_3R_64() {
6326 if (jj_scan_token(SLASHASSIGN)) return true;
6327 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6331 static final private boolean jj_3R_63() {
6332 if (jj_scan_token(STARASSIGN)) return true;
6333 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6337 static final private boolean jj_3R_51() {
6364 if (jj_3R_74()) return true;
6365 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6366 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6367 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6368 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6369 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6370 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6371 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6372 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6373 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6374 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6375 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6376 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6377 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6381 static final private boolean jj_3R_62() {
6382 if (jj_scan_token(ASSIGN)) return true;
6383 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6387 static final private boolean jj_3R_182() {
6388 if (jj_scan_token(ARRAY)) return true;
6389 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6390 if (jj_3R_192()) return true;
6391 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6395 static final private boolean jj_3R_171() {
6396 if (jj_3R_182()) return true;
6397 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6401 static final private boolean jj_3R_181() {
6402 if (jj_3R_188()) return true;
6403 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6407 static final private boolean jj_3R_170() {
6408 if (jj_3R_180()) return true;
6409 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6413 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6414 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6419 static final private boolean jj_3R_179() {
6420 if (jj_3R_188()) return true;
6421 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6425 static final private boolean jj_3R_101() {
6426 if (jj_scan_token(ASSIGN)) return true;
6427 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6428 if (jj_3R_45()) return true;
6429 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6433 static final private boolean jj_3R_42() {
6434 if (jj_3R_50()) return true;
6435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6436 if (jj_3R_51()) return true;
6437 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6438 if (jj_3R_45()) return true;
6439 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6443 static final private boolean jj_3_3() {
6444 if (jj_3R_42()) return true;
6445 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6449 static final private boolean jj_3_5() {
6450 if (jj_scan_token(IDENTIFIER)) return true;
6451 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6452 if (jj_scan_token(STATICCLASSACCESS)) return true;
6453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6454 if (jj_3R_178()) return true;
6455 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6459 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6460 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6465 static final private boolean jj_3R_166() {
6472 if (jj_3R_171()) return true;
6473 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6474 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6475 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6479 static final private boolean jj_3R_56() {
6480 if (jj_3R_86()) return true;
6481 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6485 static final private boolean jj_3R_55() {
6486 if (jj_3R_42()) return true;
6487 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6491 static final private boolean jj_3R_54() {
6492 if (jj_3R_85()) return true;
6493 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6497 static final private boolean jj_3R_45() {
6506 if (jj_3R_56()) return true;
6507 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6508 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6509 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6510 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6514 static final private boolean jj_3R_53() {
6515 if (jj_3R_84()) return true;
6516 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6520 static final private boolean jj_3R_100() {
6521 if (jj_scan_token(COMMA)) return true;
6522 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6523 if (jj_3R_50()) return true;
6524 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6528 static final private boolean jj_3R_194() {
6529 if (jj_scan_token(DECR)) return true;
6530 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6534 static final private boolean jj_3R_193() {
6535 if (jj_scan_token(INCR)) return true;
6536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6540 static final private boolean jj_3R_185() {
6545 if (jj_3R_194()) return true;
6546 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6547 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6551 static final private boolean jj_3R_168() {
6552 if (jj_3R_166()) return true;
6553 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6556 if (jj_3R_185()) jj_scanpos = xsp;
6557 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6561 static final private boolean jj_3R_99() {
6562 if (jj_3R_50()) return true;
6563 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6567 static private boolean jj_initialized_once = false;
6568 static public PHPParserTokenManager token_source;
6569 static SimpleCharStream jj_input_stream;
6570 static public Token token, jj_nt;
6571 static private int jj_ntk;
6572 static private Token jj_scanpos, jj_lastpos;
6573 static private int jj_la;
6574 static public boolean lookingAhead = false;
6575 static private boolean jj_semLA;
6576 static private int jj_gen;
6577 static final private int[] jj_la1 = new int[123];
6578 static private int[] jj_la1_0;
6579 static private int[] jj_la1_1;
6580 static private int[] jj_la1_2;
6581 static private int[] jj_la1_3;
6582 static private int[] jj_la1_4;
6590 private static void jj_la1_0() {
6591 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,};
6593 private static void jj_la1_1() {
6594 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,};
6596 private static void jj_la1_2() {
6597 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,};
6599 private static void jj_la1_3() {
6600 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,};
6602 private static void jj_la1_4() {
6603 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,};
6605 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6606 static private boolean jj_rescan = false;
6607 static private int jj_gc = 0;
6609 public PHPParser(java.io.InputStream stream) {
6610 if (jj_initialized_once) {
6611 System.out.println("ERROR: Second call to constructor of static parser. You must");
6612 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6613 System.out.println(" during parser generation.");
6616 jj_initialized_once = true;
6617 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6618 token_source = new PHPParserTokenManager(jj_input_stream);
6619 token = new Token();
6622 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6623 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6626 static public void ReInit(java.io.InputStream stream) {
6627 jj_input_stream.ReInit(stream, 1, 1);
6628 token_source.ReInit(jj_input_stream);
6629 token = new Token();
6632 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6633 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6636 public PHPParser(java.io.Reader stream) {
6637 if (jj_initialized_once) {
6638 System.out.println("ERROR: Second call to constructor of static parser. You must");
6639 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6640 System.out.println(" during parser generation.");
6643 jj_initialized_once = true;
6644 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6645 token_source = new PHPParserTokenManager(jj_input_stream);
6646 token = new Token();
6649 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6650 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6653 static public void ReInit(java.io.Reader stream) {
6654 jj_input_stream.ReInit(stream, 1, 1);
6655 token_source.ReInit(jj_input_stream);
6656 token = new Token();
6659 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6660 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6663 public PHPParser(PHPParserTokenManager tm) {
6664 if (jj_initialized_once) {
6665 System.out.println("ERROR: Second call to constructor of static parser. You must");
6666 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6667 System.out.println(" during parser generation.");
6670 jj_initialized_once = true;
6672 token = new Token();
6675 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6676 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6679 public void ReInit(PHPParserTokenManager tm) {
6681 token = new Token();
6684 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6685 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6688 static final private Token jj_consume_token(int kind) throws ParseException {
6690 if ((oldToken = token).next != null) token = token.next;
6691 else token = token.next = token_source.getNextToken();
6693 if (token.kind == kind) {
6695 if (++jj_gc > 100) {
6697 for (int i = 0; i < jj_2_rtns.length; i++) {
6698 JJCalls c = jj_2_rtns[i];
6700 if (c.gen < jj_gen) c.first = null;
6709 throw generateParseException();
6712 static final private boolean jj_scan_token(int kind) {
6713 if (jj_scanpos == jj_lastpos) {
6715 if (jj_scanpos.next == null) {
6716 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6718 jj_lastpos = jj_scanpos = jj_scanpos.next;
6721 jj_scanpos = jj_scanpos.next;
6724 int i = 0; Token tok = token;
6725 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6726 if (tok != null) jj_add_error_token(kind, i);
6728 return (jj_scanpos.kind != kind);
6731 static final public Token getNextToken() {
6732 if (token.next != null) token = token.next;
6733 else token = token.next = token_source.getNextToken();
6739 static final public Token getToken(int index) {
6740 Token t = lookingAhead ? jj_scanpos : token;
6741 for (int i = 0; i < index; i++) {
6742 if (t.next != null) t = t.next;
6743 else t = t.next = token_source.getNextToken();
6748 static final private int jj_ntk() {
6749 if ((jj_nt=token.next) == null)
6750 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6752 return (jj_ntk = jj_nt.kind);
6755 static private java.util.Vector jj_expentries = new java.util.Vector();
6756 static private int[] jj_expentry;
6757 static private int jj_kind = -1;
6758 static private int[] jj_lasttokens = new int[100];
6759 static private int jj_endpos;
6761 static private void jj_add_error_token(int kind, int pos) {
6762 if (pos >= 100) return;
6763 if (pos == jj_endpos + 1) {
6764 jj_lasttokens[jj_endpos++] = kind;
6765 } else if (jj_endpos != 0) {
6766 jj_expentry = new int[jj_endpos];
6767 for (int i = 0; i < jj_endpos; i++) {
6768 jj_expentry[i] = jj_lasttokens[i];
6770 boolean exists = false;
6771 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
6772 int[] oldentry = (int[])(enum.nextElement());
6773 if (oldentry.length == jj_expentry.length) {
6775 for (int i = 0; i < jj_expentry.length; i++) {
6776 if (oldentry[i] != jj_expentry[i]) {
6784 if (!exists) jj_expentries.addElement(jj_expentry);
6785 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6789 static public ParseException generateParseException() {
6790 jj_expentries.removeAllElements();
6791 boolean[] la1tokens = new boolean[141];
6792 for (int i = 0; i < 141; i++) {
6793 la1tokens[i] = false;
6796 la1tokens[jj_kind] = true;
6799 for (int i = 0; i < 123; i++) {
6800 if (jj_la1[i] == jj_gen) {
6801 for (int j = 0; j < 32; j++) {
6802 if ((jj_la1_0[i] & (1<<j)) != 0) {
6803 la1tokens[j] = true;
6805 if ((jj_la1_1[i] & (1<<j)) != 0) {
6806 la1tokens[32+j] = true;
6808 if ((jj_la1_2[i] & (1<<j)) != 0) {
6809 la1tokens[64+j] = true;
6811 if ((jj_la1_3[i] & (1<<j)) != 0) {
6812 la1tokens[96+j] = true;
6814 if ((jj_la1_4[i] & (1<<j)) != 0) {
6815 la1tokens[128+j] = true;
6820 for (int i = 0; i < 141; i++) {
6822 jj_expentry = new int[1];
6824 jj_expentries.addElement(jj_expentry);
6829 jj_add_error_token(0, 0);
6830 int[][] exptokseq = new int[jj_expentries.size()][];
6831 for (int i = 0; i < jj_expentries.size(); i++) {
6832 exptokseq[i] = (int[])jj_expentries.elementAt(i);
6834 return new ParseException(token, exptokseq, tokenImage);
6837 static final public void enable_tracing() {
6840 static final public void disable_tracing() {
6843 static final private void jj_rescan_token() {
6845 for (int i = 0; i < 8; i++) {
6846 JJCalls p = jj_2_rtns[i];
6848 if (p.gen > jj_gen) {
6849 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
6851 case 0: jj_3_1(); break;
6852 case 1: jj_3_2(); break;
6853 case 2: jj_3_3(); break;
6854 case 3: jj_3_4(); break;
6855 case 4: jj_3_5(); break;
6856 case 5: jj_3_6(); break;
6857 case 6: jj_3_7(); break;
6858 case 7: jj_3_8(); break;
6862 } while (p != null);
6867 static final private void jj_save(int index, int xla) {
6868 JJCalls p = jj_2_rtns[index];
6869 while (p.gen > jj_gen) {
6870 if (p.next == null) { p = p.next = new JJCalls(); break; }
6873 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
6876 static final class JJCalls {