1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
4 import org.eclipse.core.resources.IFile;
5 import org.eclipse.core.resources.IMarker;
6 import org.eclipse.core.runtime.CoreException;
7 import org.eclipse.ui.texteditor.MarkerUtilities;
8 import org.eclipse.jface.preference.IPreferenceStore;
10 import java.util.Hashtable;
11 import java.util.Enumeration;
12 import java.util.ArrayList;
13 import java.io.StringReader;
15 import java.text.MessageFormat;
17 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
18 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
19 import net.sourceforge.phpdt.internal.compiler.ast.*;
20 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
21 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
25 * This php parser is inspired by the Java 1.2 grammar example
26 * given with JavaCC. You can get JavaCC at http://www.webgain.com
27 * You can test the parser with the PHPParserTestCase2.java
28 * @author Matthieu Casanova
30 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
32 /** The file that is parsed. */
33 private static IFile fileToParse;
35 /** The current segment. */
36 private static OutlineableWithChildren currentSegment;
38 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
39 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
40 static PHPOutlineInfo outlineInfo;
42 public static MethodDeclaration currentFunction;
43 private static boolean assigning;
45 /** The error level of the current ParseException. */
46 private static int errorLevel = ERROR;
47 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
48 private static String errorMessage;
50 private static int errorStart = -1;
51 private static int errorEnd = -1;
52 private static PHPDocument phpDocument;
54 * The point where html starts.
55 * It will be used by the token manager to create HTMLCode objects
57 public static int htmlStart;
60 private final static int AstStackIncrement = 100;
61 /** The stack of node. */
62 private static AstNode[] nodes;
63 /** The cursor in expression stack. */
64 private static int nodePtr;
65 private static VariableDeclaration[] variableDeclarationStack;
66 private static int variableDeclarationPtr;
67 private static Statement[] statementStack;
68 private static int statementPtr;
69 private static ElseIf[] elseIfStack;
70 private static int elseIfPtr;
72 public final void setFileToParse(final IFile fileToParse) {
73 this.fileToParse = fileToParse;
79 public PHPParser(final IFile fileToParse) {
80 this(new StringReader(""));
81 this.fileToParse = fileToParse;
85 * Reinitialize the parser.
87 private static final void init() {
88 nodes = new AstNode[AstStackIncrement];
89 statementStack = new Statement[AstStackIncrement];
90 elseIfStack = new ElseIf[AstStackIncrement];
98 * Add an php node on the stack.
99 * @param node the node that will be added to the stack
101 private static final void pushOnAstNodes(AstNode node) {
103 nodes[++nodePtr] = node;
104 } catch (IndexOutOfBoundsException e) {
105 int oldStackLength = nodes.length;
106 AstNode[] oldStack = nodes;
107 nodes = new AstNode[oldStackLength + AstStackIncrement];
108 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
109 nodePtr = oldStackLength;
110 nodes[nodePtr] = node;
114 private static final void pushOnVariableDeclarationStack(VariableDeclaration var) {
116 variableDeclarationStack[++variableDeclarationPtr] = var;
117 } catch (IndexOutOfBoundsException e) {
118 int oldStackLength = variableDeclarationStack.length;
119 VariableDeclaration[] oldStack = variableDeclarationStack;
120 variableDeclarationStack = new VariableDeclaration[oldStackLength + AstStackIncrement];
121 System.arraycopy(oldStack, 0, variableDeclarationStack, 0, oldStackLength);
122 variableDeclarationPtr = oldStackLength;
123 variableDeclarationStack[variableDeclarationPtr] = var;
127 private static final void pushOnStatementStack(Statement statement) {
129 statementStack[++statementPtr] = statement;
130 } catch (IndexOutOfBoundsException e) {
131 int oldStackLength = statementStack.length;
132 Statement[] oldStack = statementStack;
133 statementStack = new Statement[oldStackLength + AstStackIncrement];
134 System.arraycopy(oldStack, 0, statementStack, 0, oldStackLength);
135 statementPtr = oldStackLength;
136 statementStack[statementPtr] = statement;
140 private static final void pushOnElseIfStack(ElseIf elseIf) {
142 elseIfStack[++elseIfPtr] = elseIf;
143 } catch (IndexOutOfBoundsException e) {
144 int oldStackLength = elseIfStack.length;
145 ElseIf[] oldStack = elseIfStack;
146 elseIfStack = new ElseIf[oldStackLength + AstStackIncrement];
147 System.arraycopy(oldStack, 0, elseIfStack, 0, oldStackLength);
148 elseIfPtr = oldStackLength;
149 elseIfStack[elseIfPtr] = elseIf;
153 public static final void phpParserTester(final String strEval) throws CoreException, ParseException {
154 PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
155 final StringReader stream = new StringReader(strEval);
156 if (jj_input_stream == null) {
157 jj_input_stream = new SimpleCharStream(stream, 1, 1);
159 ReInit(new StringReader(strEval));
164 public static final void htmlParserTester(final File fileName) throws CoreException, ParseException {
166 final Reader stream = new FileReader(fileName);
167 if (jj_input_stream == null) {
168 jj_input_stream = new SimpleCharStream(stream, 1, 1);
173 } catch (FileNotFoundException e) {
174 e.printStackTrace(); //To change body of catch statement use Options | File Templates.
178 public static final void htmlParserTester(final String strEval) throws CoreException, ParseException {
179 final StringReader stream = new StringReader(strEval);
180 if (jj_input_stream == null) {
181 jj_input_stream = new SimpleCharStream(stream, 1, 1);
188 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
189 currentSegment = new PHPDocument(parent);
190 outlineInfo = new PHPOutlineInfo(parent);
191 final StringReader stream = new StringReader(s);
192 if (jj_input_stream == null) {
193 jj_input_stream = new SimpleCharStream(stream, 1, 1);
199 phpDocument = new PHPDocument(null);
200 phpDocument.nodes = nodes;
201 //PHPeclipsePlugin.log(1,phpDocument.toString());
202 } catch (ParseException e) {
203 processParseException(e);
209 * This method will process the parse exception.
210 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
211 * @param e the ParseException
213 private static void processParseException(final ParseException e) {
214 if (errorMessage == null) {
215 PHPeclipsePlugin.log(e);
216 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
217 errorStart = jj_input_stream.getPosition();
218 errorEnd = errorStart + 1;
225 * Create marker for the parse error
226 * @param e the ParseException
228 private static void setMarker(final ParseException e) {
230 if (errorStart == -1) {
231 setMarker(fileToParse,
233 jj_input_stream.tokenBegin,
234 jj_input_stream.tokenBegin + e.currentToken.image.length(),
236 "Line " + e.currentToken.beginLine);
238 setMarker(fileToParse,
243 "Line " + e.currentToken.beginLine);
247 } catch (CoreException e2) {
248 PHPeclipsePlugin.log(e2);
253 * Create markers according to the external parser output
255 private static void createMarkers(final String output, final IFile file) throws CoreException {
256 // delete all markers
257 file.deleteMarkers(IMarker.PROBLEM, false, 0);
262 while ((brIndx = output.indexOf("<br />", indx)) != -1) {
263 // newer php error output (tested with 4.2.3)
264 scanLine(output, file, indx, brIndx);
269 while ((brIndx = output.indexOf("<br>", indx)) != -1) {
270 // older php error output (tested with 4.2.3)
271 scanLine(output, file, indx, brIndx);
277 private static void scanLine(final String output,
280 final int brIndx) throws CoreException {
282 StringBuffer lineNumberBuffer = new StringBuffer(10);
284 current = output.substring(indx, brIndx);
286 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
287 int onLine = current.indexOf("on line <b>");
289 lineNumberBuffer.delete(0, lineNumberBuffer.length());
290 for (int i = onLine; i < current.length(); i++) {
291 ch = current.charAt(i);
292 if ('0' <= ch && '9' >= ch) {
293 lineNumberBuffer.append(ch);
297 int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
299 Hashtable attributes = new Hashtable();
301 current = current.replaceAll("\n", "");
302 current = current.replaceAll("<b>", "");
303 current = current.replaceAll("</b>", "");
304 MarkerUtilities.setMessage(attributes, current);
306 if (current.indexOf(PARSE_ERROR_STRING) != -1)
307 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
308 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
309 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
311 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
312 MarkerUtilities.setLineNumber(attributes, lineNumber);
313 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
318 public final void parse(final String s) throws CoreException {
319 final StringReader stream = new StringReader(s);
320 if (jj_input_stream == null) {
321 jj_input_stream = new SimpleCharStream(stream, 1, 1);
327 } catch (ParseException e) {
328 processParseException(e);
333 * Call the php parse command ( php -l -f <filename> )
334 * and create markers according to the external parser output
336 public static void phpExternalParse(final IFile file) {
337 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
338 final String filename = file.getLocation().toString();
340 final String[] arguments = { filename };
341 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
342 final String command = form.format(arguments);
344 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
347 // parse the buffer to find the errors and warnings
348 createMarkers(parserResult, file);
349 } catch (CoreException e) {
350 PHPeclipsePlugin.log(e);
355 * Put a new html block in the stack.
357 public static final void createNewHTMLCode() {
358 final int currentPosition = SimpleCharStream.getPosition();
359 if (currentPosition == htmlStart) {
362 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition).toCharArray();
363 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
366 private static final void parse() throws ParseException {
370 static final public void phpTest() throws ParseException {
373 PHPParser.createNewHTMLCode();
376 static final public void phpFile() throws ParseException {
380 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
418 case INTEGER_LITERAL:
419 case FLOATING_POINT_LITERAL:
435 } catch (TokenMgrError e) {
436 PHPeclipsePlugin.log(e);
437 errorStart = SimpleCharStream.getPosition();
438 errorEnd = errorStart + 1;
439 errorMessage = e.getMessage();
441 {if (true) throw generateParseException();}
446 * A php block is a <?= expression [;]?>
447 * or <?php somephpcode ?>
448 * or <? somephpcode ?>
450 static final public void PhpBlock() throws ParseException {
451 final int start = jj_input_stream.getPosition();
452 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
492 case INTEGER_LITERAL:
493 case FLOATING_POINT_LITERAL:
500 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
503 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
505 jj_consume_token(PHPSTARTLONG);
508 jj_consume_token(PHPSTARTSHORT);
510 setMarker(fileToParse,
511 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
513 jj_input_stream.getPosition(),
515 "Line " + token.beginLine);
516 } catch (CoreException e) {
517 PHPeclipsePlugin.log(e);
522 jj_consume_token(-1);
523 throw new ParseException();
532 jj_consume_token(PHPEND);
533 } catch (ParseException e) {
534 errorMessage = "'?>' expected";
536 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
537 errorEnd = jj_input_stream.getPosition() + 1;
543 jj_consume_token(-1);
544 throw new ParseException();
548 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
549 final Expression expr;
550 final int pos = SimpleCharStream.getPosition();
551 PHPEchoBlock echoBlock;
552 jj_consume_token(PHPECHOSTART);
554 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
556 jj_consume_token(SEMICOLON);
562 jj_consume_token(PHPEND);
563 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
564 pushOnAstNodes(echoBlock);
565 {if (true) return echoBlock;}
566 throw new Error("Missing return statement in function");
569 static final public void Php() throws ParseException {
572 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
606 case INTEGER_LITERAL:
607 case FLOATING_POINT_LITERAL:
624 static final public ClassDeclaration ClassDeclaration() throws ParseException {
625 final ClassDeclaration classDeclaration;
626 final Token className;
627 Token superclassName = null;
629 jj_consume_token(CLASS);
631 pos = jj_input_stream.getPosition();
632 className = jj_consume_token(IDENTIFIER);
633 } catch (ParseException e) {
634 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
636 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
637 errorEnd = jj_input_stream.getPosition() + 1;
640 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
642 jj_consume_token(EXTENDS);
644 superclassName = jj_consume_token(IDENTIFIER);
645 } catch (ParseException e) {
646 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
648 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
649 errorEnd = jj_input_stream.getPosition() + 1;
657 if (superclassName == null) {
658 classDeclaration = new ClassDeclaration(currentSegment,
659 className.image.toCharArray(),
663 classDeclaration = new ClassDeclaration(currentSegment,
664 className.image.toCharArray(),
665 superclassName.image.toCharArray(),
669 currentSegment.add(classDeclaration);
670 currentSegment = classDeclaration;
671 ClassBody(classDeclaration);
672 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
673 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
674 pushOnAstNodes(classDeclaration);
675 {if (true) return classDeclaration;}
676 throw new Error("Missing return statement in function");
679 static final public void ClassBody(ClassDeclaration classDeclaration) throws ParseException {
681 jj_consume_token(LBRACE);
682 } catch (ParseException e) {
683 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected";
685 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
686 errorEnd = jj_input_stream.getPosition() + 1;
691 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
700 ClassBodyDeclaration(classDeclaration);
703 jj_consume_token(RBRACE);
704 } catch (ParseException e) {
705 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected";
707 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
708 errorEnd = jj_input_stream.getPosition() + 1;
714 * A class can contain only methods and fields.
716 static final public void ClassBodyDeclaration(ClassDeclaration classDeclaration) throws ParseException {
717 MethodDeclaration method;
718 FieldDeclaration field;
719 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
721 method = MethodDeclaration();
722 classDeclaration.addMethod(method);
725 field = FieldDeclaration();
726 classDeclaration.addVariable(field);
730 jj_consume_token(-1);
731 throw new ParseException();
736 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
738 static final public FieldDeclaration FieldDeclaration() throws ParseException {
739 VariableDeclaration variableDeclaration;
740 variableDeclarationPtr = 0;
741 variableDeclarationStack = new VariableDeclaration[AstStackIncrement];
742 VariableDeclaration[] list;
743 final int pos = SimpleCharStream.getPosition();
744 jj_consume_token(VAR);
745 variableDeclaration = VariableDeclarator();
746 pushOnVariableDeclarationStack(variableDeclaration);
747 outlineInfo.addVariable(new String(variableDeclaration.name));
748 currentSegment.add(variableDeclaration);
751 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
759 jj_consume_token(COMMA);
760 variableDeclaration = VariableDeclarator();
761 pushOnVariableDeclarationStack(variableDeclaration);
762 outlineInfo.addVariable(new String(variableDeclaration.name));
763 currentSegment.add(variableDeclaration);
766 jj_consume_token(SEMICOLON);
767 } catch (ParseException e) {
768 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
770 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
771 errorEnd = jj_input_stream.getPosition() + 1;
774 list = new VariableDeclaration[variableDeclarationPtr];
775 System.arraycopy(variableDeclarationStack,0,list,0,variableDeclarationPtr);
776 {if (true) return new FieldDeclaration(list,
778 SimpleCharStream.getPosition());}
779 throw new Error("Missing return statement in function");
782 static final public VariableDeclaration VariableDeclarator() throws ParseException {
783 final String varName, varValue;
784 Expression initializer = null;
785 final int pos = jj_input_stream.getPosition();
786 varName = VariableDeclaratorId();
787 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
789 jj_consume_token(ASSIGN);
791 initializer = VariableInitializer();
792 } catch (ParseException e) {
793 errorMessage = "Literal expression expected in variable initializer";
795 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
796 errorEnd = jj_input_stream.getPosition() + 1;
804 if (initializer == null) {
805 {if (true) return new VariableDeclaration(currentSegment,
806 varName.toCharArray(),
808 jj_input_stream.getPosition());}
810 {if (true) return new VariableDeclaration(currentSegment,
811 varName.toCharArray(),
814 throw new Error("Missing return statement in function");
819 * @return the variable name (with suffix)
821 static final public String VariableDeclaratorId() throws ParseException {
823 Expression expression;
824 final StringBuffer buff = new StringBuffer();
825 final int pos = SimpleCharStream.getPosition();
826 ConstantIdentifier ex;
837 ex = new ConstantIdentifier(expr.toCharArray(),
839 SimpleCharStream.getPosition());
840 expression = VariableSuffix(ex);
841 buff.append(expression.toStringExpression());
843 {if (true) return buff.toString();}
844 } catch (ParseException e) {
845 errorMessage = "'$' expected for variable identifier";
847 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
848 errorEnd = jj_input_stream.getPosition() + 1;
851 throw new Error("Missing return statement in function");
854 static final public String Variable() throws ParseException {
855 final StringBuffer buff;
856 Expression expression = null;
859 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
861 token = jj_consume_token(DOLLAR_ID);
862 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
864 jj_consume_token(LBRACE);
865 expression = Expression();
866 jj_consume_token(RBRACE);
872 if (expression == null && !assigning) {
873 {if (true) return token.image.substring(1);}
875 buff = new StringBuffer(token.image);
877 buff.append(expression.toStringExpression());
879 {if (true) return buff.toString();}
882 jj_consume_token(DOLLAR);
883 expr = VariableName();
884 {if (true) return expr;}
888 jj_consume_token(-1);
889 throw new ParseException();
891 throw new Error("Missing return statement in function");
894 static final public String VariableName() throws ParseException {
895 final StringBuffer buff;
897 Expression expression = null;
899 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
901 jj_consume_token(LBRACE);
902 expression = Expression();
903 jj_consume_token(RBRACE);
904 buff = new StringBuffer('{');
905 buff.append(expression.toStringExpression());
907 {if (true) return buff.toString();}
910 token = jj_consume_token(IDENTIFIER);
911 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
913 jj_consume_token(LBRACE);
914 expression = Expression();
915 jj_consume_token(RBRACE);
921 if (expression == null) {
922 {if (true) return token.image;}
924 buff = new StringBuffer(token.image);
926 buff.append(expression.toStringExpression());
928 {if (true) return buff.toString();}
931 jj_consume_token(DOLLAR);
932 expr = VariableName();
933 buff = new StringBuffer('$');
935 {if (true) return buff.toString();}
938 token = jj_consume_token(DOLLAR_ID);
939 {if (true) return token.image;}
943 jj_consume_token(-1);
944 throw new ParseException();
946 throw new Error("Missing return statement in function");
949 static final public Expression VariableInitializer() throws ParseException {
950 final Expression expr;
952 final int pos = SimpleCharStream.getPosition();
953 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
957 case INTEGER_LITERAL:
958 case FLOATING_POINT_LITERAL:
961 {if (true) return expr;}
964 jj_consume_token(MINUS);
965 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
966 case INTEGER_LITERAL:
967 token = jj_consume_token(INTEGER_LITERAL);
969 case FLOATING_POINT_LITERAL:
970 token = jj_consume_token(FLOATING_POINT_LITERAL);
974 jj_consume_token(-1);
975 throw new ParseException();
977 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
979 SimpleCharStream.getPosition()),
984 jj_consume_token(PLUS);
985 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
986 case INTEGER_LITERAL:
987 token = jj_consume_token(INTEGER_LITERAL);
989 case FLOATING_POINT_LITERAL:
990 token = jj_consume_token(FLOATING_POINT_LITERAL);
994 jj_consume_token(-1);
995 throw new ParseException();
997 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
999 SimpleCharStream.getPosition()),
1004 expr = ArrayDeclarator();
1005 {if (true) return expr;}
1008 token = jj_consume_token(IDENTIFIER);
1009 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
1012 jj_la1[17] = jj_gen;
1013 jj_consume_token(-1);
1014 throw new ParseException();
1016 throw new Error("Missing return statement in function");
1019 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
1021 Expression expr2 = null;
1022 expr = Expression();
1023 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1025 jj_consume_token(ARRAYASSIGN);
1026 expr2 = Expression();
1029 jj_la1[18] = jj_gen;
1032 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
1033 throw new Error("Missing return statement in function");
1036 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
1037 ArrayVariableDeclaration expr;
1038 final ArrayList list = new ArrayList();
1039 jj_consume_token(LPAREN);
1040 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1056 case INTEGER_LITERAL:
1057 case FLOATING_POINT_LITERAL:
1058 case STRING_LITERAL:
1062 expr = ArrayVariable();
1071 jj_consume_token(COMMA);
1072 expr = ArrayVariable();
1077 jj_la1[19] = jj_gen;
1080 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1082 jj_consume_token(COMMA);
1086 jj_la1[20] = jj_gen;
1089 jj_consume_token(RPAREN);
1090 ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1092 {if (true) return vars;}
1093 throw new Error("Missing return statement in function");
1097 * A Method Declaration.
1098 * <b>function</b> MetodDeclarator() Block()
1100 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1101 final MethodDeclaration functionDeclaration;
1102 Token functionToken;
1104 functionToken = jj_consume_token(FUNCTION);
1106 functionDeclaration = MethodDeclarator();
1107 outlineInfo.addVariable(new String(functionDeclaration.name));
1108 } catch (ParseException e) {
1109 if (errorMessage != null) {
1110 {if (true) throw e;}
1112 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1114 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1115 errorEnd = jj_input_stream.getPosition() + 1;
1116 {if (true) throw e;}
1118 if (currentSegment != null) {
1119 currentSegment.add(functionDeclaration);
1120 currentSegment = functionDeclaration;
1122 currentFunction = functionDeclaration;
1124 functionDeclaration.statements = block.statements;
1125 currentFunction = null;
1126 if (currentSegment != null) {
1127 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1129 {if (true) return functionDeclaration;}
1130 throw new Error("Missing return statement in function");
1134 * A MethodDeclarator.
1135 * [&] IDENTIFIER(parameters ...).
1136 * @return a function description for the outline
1138 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1139 final Token identifier;
1140 Token reference = null;
1141 final Hashtable formalParameters;
1142 final int pos = SimpleCharStream.getPosition();
1143 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1145 reference = jj_consume_token(BIT_AND);
1148 jj_la1[21] = jj_gen;
1151 identifier = jj_consume_token(IDENTIFIER);
1152 formalParameters = FormalParameters();
1153 {if (true) return new MethodDeclaration(currentSegment,
1154 identifier.image.toCharArray(),
1158 SimpleCharStream.getPosition());}
1159 throw new Error("Missing return statement in function");
1163 * FormalParameters follows method identifier.
1164 * (FormalParameter())
1166 static final public Hashtable FormalParameters() throws ParseException {
1168 final StringBuffer buff = new StringBuffer("(");
1169 VariableDeclaration var;
1170 final Hashtable parameters = new Hashtable();
1172 jj_consume_token(LPAREN);
1173 } catch (ParseException e) {
1174 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1176 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1177 errorEnd = jj_input_stream.getPosition() + 1;
1178 {if (true) throw e;}
1180 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1184 var = FormalParameter();
1185 parameters.put(new String(var.name),var);
1188 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1193 jj_la1[22] = jj_gen;
1196 jj_consume_token(COMMA);
1197 var = FormalParameter();
1198 parameters.put(new String(var.name),var);
1202 jj_la1[23] = jj_gen;
1206 jj_consume_token(RPAREN);
1207 } catch (ParseException e) {
1208 errorMessage = "')' expected";
1210 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1211 errorEnd = jj_input_stream.getPosition() + 1;
1212 {if (true) throw e;}
1214 {if (true) return parameters;}
1215 throw new Error("Missing return statement in function");
1219 * A formal parameter.
1220 * $varname[=value] (,$varname[=value])
1222 static final public VariableDeclaration FormalParameter() throws ParseException {
1223 final VariableDeclaration variableDeclaration;
1225 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1227 token = jj_consume_token(BIT_AND);
1230 jj_la1[24] = jj_gen;
1233 variableDeclaration = VariableDeclarator();
1234 if (token != null) {
1235 variableDeclaration.setReference(true);
1237 {if (true) return variableDeclaration;}
1238 throw new Error("Missing return statement in function");
1241 static final public ConstantIdentifier Type() throws ParseException {
1243 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1245 jj_consume_token(STRING);
1246 pos = SimpleCharStream.getPosition();
1247 {if (true) return new ConstantIdentifier(Types.STRING,
1251 jj_consume_token(BOOL);
1252 pos = SimpleCharStream.getPosition();
1253 {if (true) return new ConstantIdentifier(Types.BOOL,
1257 jj_consume_token(BOOLEAN);
1258 pos = SimpleCharStream.getPosition();
1259 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1263 jj_consume_token(REAL);
1264 pos = SimpleCharStream.getPosition();
1265 {if (true) return new ConstantIdentifier(Types.REAL,
1269 jj_consume_token(DOUBLE);
1270 pos = SimpleCharStream.getPosition();
1271 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1275 jj_consume_token(FLOAT);
1276 pos = SimpleCharStream.getPosition();
1277 {if (true) return new ConstantIdentifier(Types.FLOAT,
1281 jj_consume_token(INT);
1282 pos = SimpleCharStream.getPosition();
1283 {if (true) return new ConstantIdentifier(Types.INT,
1287 jj_consume_token(INTEGER);
1288 pos = SimpleCharStream.getPosition();
1289 {if (true) return new ConstantIdentifier(Types.INTEGER,
1293 jj_consume_token(OBJECT);
1294 pos = SimpleCharStream.getPosition();
1295 {if (true) return new ConstantIdentifier(Types.OBJECT,
1299 jj_la1[25] = jj_gen;
1300 jj_consume_token(-1);
1301 throw new ParseException();
1303 throw new Error("Missing return statement in function");
1306 static final public Expression Expression() throws ParseException {
1307 final Expression expr;
1308 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1310 expr = PrintExpression();
1311 {if (true) return expr;}
1314 expr = ListExpression();
1315 {if (true) return expr;}
1318 jj_la1[26] = jj_gen;
1319 if (jj_2_3(2147483647)) {
1320 expr = varAssignation();
1321 {if (true) return expr;}
1323 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1337 case INTEGER_LITERAL:
1338 case FLOATING_POINT_LITERAL:
1339 case STRING_LITERAL:
1343 expr = ConditionalExpression();
1344 {if (true) return expr;}
1347 jj_la1[27] = jj_gen;
1348 jj_consume_token(-1);
1349 throw new ParseException();
1353 throw new Error("Missing return statement in function");
1357 * A Variable assignation.
1358 * varName (an assign operator) any expression
1360 static final public VarAssignation varAssignation() throws ParseException {
1362 final Expression expression;
1363 final int assignOperator;
1364 final int pos = SimpleCharStream.getPosition();
1365 varName = VariableDeclaratorId();
1366 assignOperator = AssignmentOperator();
1368 expression = Expression();
1369 } catch (ParseException e) {
1370 if (errorMessage != null) {
1371 {if (true) throw e;}
1373 errorMessage = "expression expected";
1375 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1376 errorEnd = jj_input_stream.getPosition() + 1;
1377 {if (true) throw e;}
1379 {if (true) return new VarAssignation(varName.toCharArray(),
1383 SimpleCharStream.getPosition());}
1384 throw new Error("Missing return statement in function");
1387 static final public int AssignmentOperator() throws ParseException {
1388 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1390 jj_consume_token(ASSIGN);
1391 {if (true) return VarAssignation.EQUAL;}
1394 jj_consume_token(STARASSIGN);
1395 {if (true) return VarAssignation.STAR_EQUAL;}
1398 jj_consume_token(SLASHASSIGN);
1399 {if (true) return VarAssignation.SLASH_EQUAL;}
1402 jj_consume_token(REMASSIGN);
1403 {if (true) return VarAssignation.REM_EQUAL;}
1406 jj_consume_token(PLUSASSIGN);
1407 {if (true) return VarAssignation.PLUS_EQUAL;}
1410 jj_consume_token(MINUSASSIGN);
1411 {if (true) return VarAssignation.MINUS_EQUAL;}
1414 jj_consume_token(LSHIFTASSIGN);
1415 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1417 case RSIGNEDSHIFTASSIGN:
1418 jj_consume_token(RSIGNEDSHIFTASSIGN);
1419 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1422 jj_consume_token(ANDASSIGN);
1423 {if (true) return VarAssignation.AND_EQUAL;}
1426 jj_consume_token(XORASSIGN);
1427 {if (true) return VarAssignation.XOR_EQUAL;}
1430 jj_consume_token(ORASSIGN);
1431 {if (true) return VarAssignation.OR_EQUAL;}
1434 jj_consume_token(DOTASSIGN);
1435 {if (true) return VarAssignation.DOT_EQUAL;}
1438 jj_consume_token(TILDEEQUAL);
1439 {if (true) return VarAssignation.TILDE_EQUAL;}
1442 jj_la1[28] = jj_gen;
1443 jj_consume_token(-1);
1444 throw new ParseException();
1446 throw new Error("Missing return statement in function");
1449 static final public Expression ConditionalExpression() throws ParseException {
1450 final Expression expr;
1451 Expression expr2 = null;
1452 Expression expr3 = null;
1453 expr = ConditionalOrExpression();
1454 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1456 jj_consume_token(HOOK);
1457 expr2 = Expression();
1458 jj_consume_token(COLON);
1459 expr3 = ConditionalExpression();
1462 jj_la1[29] = jj_gen;
1465 if (expr3 == null) {
1466 {if (true) return expr;}
1468 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1469 throw new Error("Missing return statement in function");
1472 static final public Expression ConditionalOrExpression() throws ParseException {
1473 Expression expr,expr2;
1475 expr = ConditionalAndExpression();
1478 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1484 jj_la1[30] = jj_gen;
1487 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1489 jj_consume_token(OR_OR);
1490 operator = OperatorIds.OR_OR;
1493 jj_consume_token(_ORL);
1494 operator = OperatorIds.ORL;
1497 jj_la1[31] = jj_gen;
1498 jj_consume_token(-1);
1499 throw new ParseException();
1501 expr2 = ConditionalAndExpression();
1502 expr = new BinaryExpression(expr,expr2,operator);
1504 {if (true) return expr;}
1505 throw new Error("Missing return statement in function");
1508 static final public Expression ConditionalAndExpression() throws ParseException {
1509 Expression expr,expr2;
1511 expr = ConcatExpression();
1514 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1520 jj_la1[32] = jj_gen;
1523 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1525 jj_consume_token(AND_AND);
1526 operator = OperatorIds.AND_AND;
1529 jj_consume_token(_ANDL);
1530 operator = OperatorIds.ANDL;
1533 jj_la1[33] = jj_gen;
1534 jj_consume_token(-1);
1535 throw new ParseException();
1537 expr2 = ConcatExpression();
1538 expr = new BinaryExpression(expr,expr2,operator);
1540 {if (true) return expr;}
1541 throw new Error("Missing return statement in function");
1544 static final public Expression ConcatExpression() throws ParseException {
1545 Expression expr,expr2;
1546 expr = InclusiveOrExpression();
1549 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1554 jj_la1[34] = jj_gen;
1557 jj_consume_token(DOT);
1558 expr2 = InclusiveOrExpression();
1559 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1561 {if (true) return expr;}
1562 throw new Error("Missing return statement in function");
1565 static final public Expression InclusiveOrExpression() throws ParseException {
1566 Expression expr,expr2;
1567 expr = ExclusiveOrExpression();
1570 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1575 jj_la1[35] = jj_gen;
1578 jj_consume_token(BIT_OR);
1579 expr2 = ExclusiveOrExpression();
1580 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1582 {if (true) return expr;}
1583 throw new Error("Missing return statement in function");
1586 static final public Expression ExclusiveOrExpression() throws ParseException {
1587 Expression expr,expr2;
1588 expr = AndExpression();
1591 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1596 jj_la1[36] = jj_gen;
1599 jj_consume_token(XOR);
1600 expr2 = AndExpression();
1601 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1603 {if (true) return expr;}
1604 throw new Error("Missing return statement in function");
1607 static final public Expression AndExpression() throws ParseException {
1608 Expression expr,expr2;
1609 expr = EqualityExpression();
1612 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1617 jj_la1[37] = jj_gen;
1620 jj_consume_token(BIT_AND);
1621 expr2 = EqualityExpression();
1622 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1624 {if (true) return expr;}
1625 throw new Error("Missing return statement in function");
1628 static final public Expression EqualityExpression() throws ParseException {
1629 Expression expr,expr2;
1631 expr = RelationalExpression();
1634 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1638 case BANGDOUBLEEQUAL:
1643 jj_la1[38] = jj_gen;
1646 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1648 jj_consume_token(EQUAL_EQUAL);
1649 operator = OperatorIds.EQUAL_EQUAL;
1652 jj_consume_token(DIF);
1653 operator = OperatorIds.DIF;
1656 jj_consume_token(NOT_EQUAL);
1657 operator = OperatorIds.DIF;
1659 case BANGDOUBLEEQUAL:
1660 jj_consume_token(BANGDOUBLEEQUAL);
1661 operator = OperatorIds.BANG_EQUAL_EQUAL;
1664 jj_consume_token(TRIPLEEQUAL);
1665 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1668 jj_la1[39] = jj_gen;
1669 jj_consume_token(-1);
1670 throw new ParseException();
1673 expr2 = RelationalExpression();
1674 } catch (ParseException e) {
1675 if (errorMessage != null) {
1676 {if (true) throw e;}
1678 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1680 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1681 errorEnd = jj_input_stream.getPosition() + 1;
1682 {if (true) throw e;}
1684 expr = new BinaryExpression(expr,expr2,operator);
1686 {if (true) return expr;}
1687 throw new Error("Missing return statement in function");
1690 static final public Expression RelationalExpression() throws ParseException {
1691 Expression expr,expr2;
1693 expr = ShiftExpression();
1696 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1704 jj_la1[40] = jj_gen;
1707 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1709 jj_consume_token(LT);
1710 operator = OperatorIds.LESS;
1713 jj_consume_token(GT);
1714 operator = OperatorIds.GREATER;
1717 jj_consume_token(LE);
1718 operator = OperatorIds.LESS_EQUAL;
1721 jj_consume_token(GE);
1722 operator = OperatorIds.GREATER_EQUAL;
1725 jj_la1[41] = jj_gen;
1726 jj_consume_token(-1);
1727 throw new ParseException();
1729 expr2 = ShiftExpression();
1730 expr = new BinaryExpression(expr,expr2,operator);
1732 {if (true) return expr;}
1733 throw new Error("Missing return statement in function");
1736 static final public Expression ShiftExpression() throws ParseException {
1737 Expression expr,expr2;
1739 expr = AdditiveExpression();
1742 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1745 case RUNSIGNEDSHIFT:
1749 jj_la1[42] = jj_gen;
1752 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1754 jj_consume_token(LSHIFT);
1755 operator = OperatorIds.LEFT_SHIFT;
1758 jj_consume_token(RSIGNEDSHIFT);
1759 operator = OperatorIds.RIGHT_SHIFT;
1761 case RUNSIGNEDSHIFT:
1762 jj_consume_token(RUNSIGNEDSHIFT);
1763 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1766 jj_la1[43] = jj_gen;
1767 jj_consume_token(-1);
1768 throw new ParseException();
1770 expr2 = AdditiveExpression();
1771 expr = new BinaryExpression(expr,expr2,operator);
1773 {if (true) return expr;}
1774 throw new Error("Missing return statement in function");
1777 static final public Expression AdditiveExpression() throws ParseException {
1778 Expression expr,expr2;
1780 expr = MultiplicativeExpression();
1783 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1789 jj_la1[44] = jj_gen;
1792 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1794 jj_consume_token(PLUS);
1795 operator = OperatorIds.PLUS;
1798 jj_consume_token(MINUS);
1799 operator = OperatorIds.MINUS;
1802 jj_la1[45] = jj_gen;
1803 jj_consume_token(-1);
1804 throw new ParseException();
1806 expr2 = MultiplicativeExpression();
1807 expr = new BinaryExpression(expr,expr2,operator);
1809 {if (true) return expr;}
1810 throw new Error("Missing return statement in function");
1813 static final public Expression MultiplicativeExpression() throws ParseException {
1814 Expression expr,expr2;
1817 expr = UnaryExpression();
1818 } catch (ParseException e) {
1819 if (errorMessage != null) {
1820 {if (true) throw e;}
1822 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1824 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1825 errorEnd = jj_input_stream.getPosition() + 1;
1826 {if (true) throw e;}
1830 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1837 jj_la1[46] = jj_gen;
1840 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1842 jj_consume_token(STAR);
1843 operator = OperatorIds.MULTIPLY;
1846 jj_consume_token(SLASH);
1847 operator = OperatorIds.DIVIDE;
1850 jj_consume_token(REMAINDER);
1851 operator = OperatorIds.REMAINDER;
1854 jj_la1[47] = jj_gen;
1855 jj_consume_token(-1);
1856 throw new ParseException();
1858 expr2 = UnaryExpression();
1859 expr = new BinaryExpression(expr,expr2,operator);
1861 {if (true) return expr;}
1862 throw new Error("Missing return statement in function");
1866 * An unary expression starting with @, & or nothing
1868 static final public Expression UnaryExpression() throws ParseException {
1870 final int pos = SimpleCharStream.getPosition();
1871 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1873 jj_consume_token(BIT_AND);
1874 expr = UnaryExpressionNoPrefix();
1875 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1889 case INTEGER_LITERAL:
1890 case FLOATING_POINT_LITERAL:
1891 case STRING_LITERAL:
1895 expr = AtUnaryExpression();
1896 {if (true) return expr;}
1899 jj_la1[48] = jj_gen;
1900 jj_consume_token(-1);
1901 throw new ParseException();
1903 throw new Error("Missing return statement in function");
1906 static final public Expression AtUnaryExpression() throws ParseException {
1908 final int pos = SimpleCharStream.getPosition();
1909 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1911 jj_consume_token(AT);
1912 expr = AtUnaryExpression();
1913 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1926 case INTEGER_LITERAL:
1927 case FLOATING_POINT_LITERAL:
1928 case STRING_LITERAL:
1932 expr = UnaryExpressionNoPrefix();
1933 {if (true) return expr;}
1936 jj_la1[49] = jj_gen;
1937 jj_consume_token(-1);
1938 throw new ParseException();
1940 throw new Error("Missing return statement in function");
1943 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1946 final int pos = SimpleCharStream.getPosition();
1947 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1950 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1952 jj_consume_token(PLUS);
1953 operator = OperatorIds.PLUS;
1956 jj_consume_token(MINUS);
1957 operator = OperatorIds.MINUS;
1960 jj_la1[50] = jj_gen;
1961 jj_consume_token(-1);
1962 throw new ParseException();
1964 expr = UnaryExpression();
1965 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1969 expr = PreIncDecExpression();
1970 {if (true) return expr;}
1979 case INTEGER_LITERAL:
1980 case FLOATING_POINT_LITERAL:
1981 case STRING_LITERAL:
1985 expr = UnaryExpressionNotPlusMinus();
1986 {if (true) return expr;}
1989 jj_la1[51] = jj_gen;
1990 jj_consume_token(-1);
1991 throw new ParseException();
1993 throw new Error("Missing return statement in function");
1996 static final public Expression PreIncDecExpression() throws ParseException {
1997 final Expression expr;
1999 final int pos = SimpleCharStream.getPosition();
2000 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2002 jj_consume_token(INCR);
2003 operator = OperatorIds.PLUS_PLUS;
2006 jj_consume_token(DECR);
2007 operator = OperatorIds.MINUS_MINUS;
2010 jj_la1[52] = jj_gen;
2011 jj_consume_token(-1);
2012 throw new ParseException();
2014 expr = PrimaryExpression();
2015 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
2016 throw new Error("Missing return statement in function");
2019 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
2021 final int pos = SimpleCharStream.getPosition();
2022 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2024 jj_consume_token(BANG);
2025 expr = UnaryExpression();
2026 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
2029 jj_la1[53] = jj_gen;
2030 if (jj_2_4(2147483647)) {
2031 expr = CastExpression();
2032 {if (true) return expr;}
2034 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2040 expr = PostfixExpression();
2041 {if (true) return expr;}
2046 case INTEGER_LITERAL:
2047 case FLOATING_POINT_LITERAL:
2048 case STRING_LITERAL:
2050 {if (true) return expr;}
2053 jj_consume_token(LPAREN);
2054 expr = Expression();
2056 jj_consume_token(RPAREN);
2057 } catch (ParseException e) {
2058 errorMessage = "')' expected";
2060 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2061 errorEnd = jj_input_stream.getPosition() + 1;
2062 {if (true) throw e;}
2064 {if (true) return expr;}
2067 jj_la1[54] = jj_gen;
2068 jj_consume_token(-1);
2069 throw new ParseException();
2073 throw new Error("Missing return statement in function");
2076 static final public CastExpression CastExpression() throws ParseException {
2077 final ConstantIdentifier type;
2078 final Expression expr;
2079 final int pos = SimpleCharStream.getPosition();
2080 jj_consume_token(LPAREN);
2081 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2094 jj_consume_token(ARRAY);
2095 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
2098 jj_la1[55] = jj_gen;
2099 jj_consume_token(-1);
2100 throw new ParseException();
2102 jj_consume_token(RPAREN);
2103 expr = UnaryExpression();
2104 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2105 throw new Error("Missing return statement in function");
2108 static final public Expression PostfixExpression() throws ParseException {
2111 final int pos = SimpleCharStream.getPosition();
2112 expr = PrimaryExpression();
2113 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2116 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2118 jj_consume_token(INCR);
2119 operator = OperatorIds.PLUS_PLUS;
2122 jj_consume_token(DECR);
2123 operator = OperatorIds.MINUS_MINUS;
2126 jj_la1[56] = jj_gen;
2127 jj_consume_token(-1);
2128 throw new ParseException();
2132 jj_la1[57] = jj_gen;
2135 if (operator == -1) {
2136 {if (true) return expr;}
2138 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2139 throw new Error("Missing return statement in function");
2142 static final public Expression PrimaryExpression() throws ParseException {
2143 final Token identifier;
2145 final StringBuffer buff = new StringBuffer();
2146 final int pos = SimpleCharStream.getPosition();
2148 identifier = jj_consume_token(IDENTIFIER);
2149 jj_consume_token(STATICCLASSACCESS);
2150 expr = ClassIdentifier();
2151 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2153 SimpleCharStream.getPosition()),
2155 ClassAccess.STATIC);
2158 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2165 jj_la1[58] = jj_gen;
2168 expr = PrimarySuffix(expr);
2170 {if (true) return expr;}
2172 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2177 expr = PrimaryPrefix();
2180 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2187 jj_la1[59] = jj_gen;
2190 expr = PrimarySuffix(expr);
2192 {if (true) return expr;}
2195 expr = ArrayDeclarator();
2196 {if (true) return expr;}
2199 jj_la1[60] = jj_gen;
2200 jj_consume_token(-1);
2201 throw new ParseException();
2204 throw new Error("Missing return statement in function");
2207 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2208 final ArrayVariableDeclaration[] vars;
2209 final int pos = SimpleCharStream.getPosition();
2210 jj_consume_token(ARRAY);
2211 vars = ArrayInitializer();
2212 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2213 throw new Error("Missing return statement in function");
2216 static final public Expression PrimaryPrefix() throws ParseException {
2217 final Expression expr;
2220 final int pos = SimpleCharStream.getPosition();
2221 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2223 token = jj_consume_token(IDENTIFIER);
2224 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2226 SimpleCharStream.getPosition());}
2229 jj_consume_token(NEW);
2230 expr = ClassIdentifier();
2231 {if (true) return new PrefixedUnaryExpression(expr,
2237 var = VariableDeclaratorId();
2238 {if (true) return new ConstantIdentifier(var.toCharArray(),
2240 SimpleCharStream.getPosition());}
2243 jj_la1[61] = jj_gen;
2244 jj_consume_token(-1);
2245 throw new ParseException();
2247 throw new Error("Missing return statement in function");
2250 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2252 final StringBuffer buff;
2253 final int pos = SimpleCharStream.getPosition();
2254 jj_consume_token(NEW);
2255 expr = ClassIdentifier();
2256 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2262 buff = new StringBuffer(expr.toStringExpression());
2263 expr = PrimaryExpression();
2264 buff.append(expr.toStringExpression());
2265 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2267 SimpleCharStream.getPosition());
2270 jj_la1[62] = jj_gen;
2273 {if (true) return new PrefixedUnaryExpression(expr,
2276 throw new Error("Missing return statement in function");
2279 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2282 final int pos = SimpleCharStream.getPosition();
2283 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2285 token = jj_consume_token(IDENTIFIER);
2286 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2288 SimpleCharStream.getPosition());}
2292 expr = VariableDeclaratorId();
2293 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2295 SimpleCharStream.getPosition());}
2298 jj_la1[63] = jj_gen;
2299 jj_consume_token(-1);
2300 throw new ParseException();
2302 throw new Error("Missing return statement in function");
2305 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2306 final AbstractSuffixExpression expr;
2307 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2309 expr = Arguments(prefix);
2310 {if (true) return expr;}
2314 expr = VariableSuffix(prefix);
2315 {if (true) return expr;}
2318 jj_la1[64] = jj_gen;
2319 jj_consume_token(-1);
2320 throw new ParseException();
2322 throw new Error("Missing return statement in function");
2325 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2327 final int pos = SimpleCharStream.getPosition();
2328 Expression expression = null;
2329 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2331 jj_consume_token(CLASSACCESS);
2333 expr = VariableName();
2334 } catch (ParseException e) {
2335 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2337 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2338 errorEnd = jj_input_stream.getPosition() + 1;
2339 {if (true) throw e;}
2341 {if (true) return new ClassAccess(prefix,
2342 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2343 ClassAccess.NORMAL);}
2346 jj_consume_token(LBRACKET);
2347 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2372 case INTEGER_LITERAL:
2373 case FLOATING_POINT_LITERAL:
2374 case STRING_LITERAL:
2378 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2394 case INTEGER_LITERAL:
2395 case FLOATING_POINT_LITERAL:
2396 case STRING_LITERAL:
2400 expression = Expression();
2411 expression = Type();
2414 jj_la1[65] = jj_gen;
2415 jj_consume_token(-1);
2416 throw new ParseException();
2420 jj_la1[66] = jj_gen;
2424 jj_consume_token(RBRACKET);
2425 } catch (ParseException e) {
2426 errorMessage = "']' expected";
2428 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2429 errorEnd = jj_input_stream.getPosition() + 1;
2430 {if (true) throw e;}
2432 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2435 jj_la1[67] = jj_gen;
2436 jj_consume_token(-1);
2437 throw new ParseException();
2439 throw new Error("Missing return statement in function");
2442 static final public Literal Literal() throws ParseException {
2445 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2446 case INTEGER_LITERAL:
2447 token = jj_consume_token(INTEGER_LITERAL);
2448 pos = SimpleCharStream.getPosition();
2449 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2451 case FLOATING_POINT_LITERAL:
2452 token = jj_consume_token(FLOATING_POINT_LITERAL);
2453 pos = SimpleCharStream.getPosition();
2454 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2456 case STRING_LITERAL:
2457 token = jj_consume_token(STRING_LITERAL);
2458 pos = SimpleCharStream.getPosition();
2459 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2462 jj_consume_token(TRUE);
2463 pos = SimpleCharStream.getPosition();
2464 {if (true) return new TrueLiteral(pos-4,pos);}
2467 jj_consume_token(FALSE);
2468 pos = SimpleCharStream.getPosition();
2469 {if (true) return new FalseLiteral(pos-4,pos);}
2472 jj_consume_token(NULL);
2473 pos = SimpleCharStream.getPosition();
2474 {if (true) return new NullLiteral(pos-4,pos);}
2477 jj_la1[68] = jj_gen;
2478 jj_consume_token(-1);
2479 throw new ParseException();
2481 throw new Error("Missing return statement in function");
2484 static final public FunctionCall Arguments(Expression func) throws ParseException {
2485 ArgumentDeclaration[] args = null;
2486 jj_consume_token(LPAREN);
2487 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2491 args = ArgumentList();
2494 jj_la1[69] = jj_gen;
2498 jj_consume_token(RPAREN);
2499 } catch (ParseException e) {
2500 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2502 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2503 errorEnd = jj_input_stream.getPosition() + 1;
2504 {if (true) throw e;}
2506 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2507 throw new Error("Missing return statement in function");
2510 static final public ArgumentDeclaration[] ArgumentList() throws ParseException {
2511 ArgumentDeclaration arg;
2512 final ArrayList list = new ArrayList();
2513 ArgumentDeclaration argument;
2514 arg = argumentDeclaration();
2518 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2523 jj_la1[70] = jj_gen;
2526 jj_consume_token(COMMA);
2528 arg = argumentDeclaration();
2530 } catch (ParseException e) {
2531 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2533 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2534 errorEnd = jj_input_stream.getPosition() + 1;
2535 {if (true) throw e;}
2538 ArgumentDeclaration[] args = new ArgumentDeclaration[list.size()];
2540 {if (true) return args;}
2541 throw new Error("Missing return statement in function");
2544 static final public ArgumentDeclaration argumentDeclaration() throws ParseException {
2545 boolean reference = false;
2547 Expression initializer = null;
2548 final int pos = SimpleCharStream.getPosition();
2549 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2551 jj_consume_token(BIT_AND);
2555 jj_la1[71] = jj_gen;
2558 varName = VariableDeclaratorId();
2559 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2561 jj_consume_token(ASSIGN);
2563 initializer = VariableInitializer();
2564 } catch (ParseException e) {
2565 errorMessage = "Literal expression expected in variable initializer";
2567 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2568 errorEnd = jj_input_stream.getPosition() + 1;
2569 {if (true) throw e;}
2573 jj_la1[72] = jj_gen;
2576 if (initializer == null) {
2577 {if (true) return new ArgumentDeclaration(varName.toCharArray(),
2581 {if (true) return new ArgumentDeclaration(varName.toCharArray(),
2585 throw new Error("Missing return statement in function");
2589 * A Statement without break.
2591 static final public Statement StatementNoBreak() throws ParseException {
2592 final Statement statement;
2595 statement = Expression();
2597 jj_consume_token(SEMICOLON);
2598 } catch (ParseException e) {
2599 if (e.currentToken.next.kind != 4) {
2600 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2602 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2603 errorEnd = jj_input_stream.getPosition() + 1;
2604 {if (true) throw e;}
2607 {if (true) return statement;}
2608 } else if (jj_2_7(2)) {
2609 statement = LabeledStatement();
2610 {if (true) return statement;}
2612 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2614 statement = Block();
2615 {if (true) return statement;}
2618 statement = EmptyStatement();
2619 {if (true) return statement;}
2628 statement = StatementExpression();
2630 jj_consume_token(SEMICOLON);
2631 } catch (ParseException e) {
2632 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2634 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2635 errorEnd = jj_input_stream.getPosition() + 1;
2636 {if (true) throw e;}
2638 {if (true) return statement;}
2641 statement = SwitchStatement();
2642 {if (true) return statement;}
2645 statement = IfStatement();
2646 {if (true) return statement;}
2649 statement = WhileStatement();
2650 {if (true) return statement;}
2653 statement = DoStatement();
2654 {if (true) return statement;}
2657 statement = ForStatement();
2658 {if (true) return statement;}
2661 statement = ForeachStatement();
2662 {if (true) return statement;}
2665 statement = ContinueStatement();
2666 {if (true) return statement;}
2669 statement = ReturnStatement();
2670 {if (true) return statement;}
2673 statement = EchoStatement();
2674 {if (true) return statement;}
2681 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2683 token = jj_consume_token(AT);
2686 jj_la1[73] = jj_gen;
2689 statement = IncludeStatement();
2690 if (token != null) {
2691 ((InclusionStatement)statement).silent = true;
2693 {if (true) return statement;}
2696 statement = StaticStatement();
2697 {if (true) return statement;}
2700 statement = GlobalStatement();
2701 {if (true) return statement;}
2704 jj_la1[74] = jj_gen;
2705 jj_consume_token(-1);
2706 throw new ParseException();
2709 throw new Error("Missing return statement in function");
2713 * A Normal statement.
2715 static final public Statement Statement() throws ParseException {
2716 final Statement statement;
2717 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2748 case INTEGER_LITERAL:
2749 case FLOATING_POINT_LITERAL:
2750 case STRING_LITERAL:
2756 statement = StatementNoBreak();
2757 {if (true) return statement;}
2760 statement = BreakStatement();
2761 {if (true) return statement;}
2764 jj_la1[75] = jj_gen;
2765 jj_consume_token(-1);
2766 throw new ParseException();
2768 throw new Error("Missing return statement in function");
2772 * An html block inside a php syntax.
2774 static final public HTMLBlock htmlBlock() throws ParseException {
2775 final int startIndex = nodePtr;
2776 AstNode[] blockNodes;
2778 jj_consume_token(PHPEND);
2781 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2786 jj_la1[76] = jj_gen;
2792 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2794 jj_consume_token(PHPSTARTLONG);
2797 jj_consume_token(PHPSTARTSHORT);
2800 jj_la1[77] = jj_gen;
2801 jj_consume_token(-1);
2802 throw new ParseException();
2804 } catch (ParseException e) {
2805 errorMessage = "End of file unexpected, '<?php' expected";
2807 errorStart = jj_input_stream.getPosition();
2808 errorEnd = jj_input_stream.getPosition();
2809 {if (true) throw e;}
2811 nbNodes = nodePtr-startIndex;
2812 blockNodes = new AstNode[nbNodes];
2813 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2814 {if (true) return new HTMLBlock(nodes);}
2815 throw new Error("Missing return statement in function");
2819 * An include statement. It's "include" an expression;
2821 static final public InclusionStatement IncludeStatement() throws ParseException {
2822 final Expression expr;
2825 final int pos = jj_input_stream.getPosition();
2826 final InclusionStatement inclusionStatement;
2827 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2829 jj_consume_token(REQUIRE);
2830 keyword = InclusionStatement.REQUIRE;
2833 jj_consume_token(REQUIRE_ONCE);
2834 keyword = InclusionStatement.REQUIRE_ONCE;
2837 jj_consume_token(INCLUDE);
2838 keyword = InclusionStatement.INCLUDE;
2841 jj_consume_token(INCLUDE_ONCE);
2842 keyword = InclusionStatement.INCLUDE_ONCE;
2845 jj_la1[78] = jj_gen;
2846 jj_consume_token(-1);
2847 throw new ParseException();
2850 expr = Expression();
2851 } catch (ParseException e) {
2852 if (errorMessage != null) {
2853 {if (true) throw e;}
2855 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2857 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2858 errorEnd = jj_input_stream.getPosition() + 1;
2859 {if (true) throw e;}
2861 inclusionStatement = new InclusionStatement(currentSegment,
2865 currentSegment.add(inclusionStatement);
2867 jj_consume_token(SEMICOLON);
2868 } catch (ParseException e) {
2869 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2871 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2872 errorEnd = jj_input_stream.getPosition() + 1;
2873 {if (true) throw e;}
2875 {if (true) return inclusionStatement;}
2876 throw new Error("Missing return statement in function");
2879 static final public PrintExpression PrintExpression() throws ParseException {
2880 final Expression expr;
2881 final int pos = SimpleCharStream.getPosition();
2882 jj_consume_token(PRINT);
2883 expr = Expression();
2884 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2885 throw new Error("Missing return statement in function");
2888 static final public ListExpression ListExpression() throws ParseException {
2890 Expression expression = null;
2891 ArrayList list = new ArrayList();
2892 final int pos = SimpleCharStream.getPosition();
2893 jj_consume_token(LIST);
2895 jj_consume_token(LPAREN);
2896 } catch (ParseException e) {
2897 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2899 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2900 errorEnd = jj_input_stream.getPosition() + 1;
2901 {if (true) throw e;}
2903 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2906 expr = VariableDeclaratorId();
2910 jj_la1[79] = jj_gen;
2913 if (expr == null) list.add(null);
2916 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2921 jj_la1[80] = jj_gen;
2925 jj_consume_token(COMMA);
2926 } catch (ParseException e) {
2927 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2929 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2930 errorEnd = jj_input_stream.getPosition() + 1;
2931 {if (true) throw e;}
2933 expr = VariableDeclaratorId();
2937 jj_consume_token(RPAREN);
2938 } catch (ParseException e) {
2939 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2941 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2942 errorEnd = jj_input_stream.getPosition() + 1;
2943 {if (true) throw e;}
2945 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2947 jj_consume_token(ASSIGN);
2948 expression = Expression();
2949 String[] strings = new String[list.size()];
2950 list.toArray(strings);
2951 {if (true) return new ListExpression(strings,
2954 SimpleCharStream.getPosition());}
2957 jj_la1[81] = jj_gen;
2960 String[] strings = new String[list.size()];
2961 list.toArray(strings);
2962 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2963 throw new Error("Missing return statement in function");
2967 * An echo statement.
2968 * echo anyexpression (, otherexpression)*
2970 static final public EchoStatement EchoStatement() throws ParseException {
2971 final ArrayList expressions = new ArrayList();
2973 final int pos = SimpleCharStream.getPosition();
2974 jj_consume_token(ECHO);
2975 expr = Expression();
2976 expressions.add(expr);
2979 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2984 jj_la1[82] = jj_gen;
2987 jj_consume_token(COMMA);
2988 expr = Expression();
2989 expressions.add(expr);
2992 jj_consume_token(SEMICOLON);
2993 Expression[] exprs = new Expression[expressions.size()];
2994 expressions.toArray(exprs);
2995 {if (true) return new EchoStatement(exprs,pos);}
2996 } catch (ParseException e) {
2997 if (e.currentToken.next.kind != 4) {
2998 errorMessage = "';' expected after 'echo' statement";
3000 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3001 errorEnd = jj_input_stream.getPosition() + 1;
3002 {if (true) throw e;}
3005 throw new Error("Missing return statement in function");
3008 static final public GlobalStatement GlobalStatement() throws ParseException {
3009 final int pos = jj_input_stream.getPosition();
3011 ArrayList vars = new ArrayList();
3012 GlobalStatement global;
3013 jj_consume_token(GLOBAL);
3014 expr = VariableDeclaratorId();
3018 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3023 jj_la1[83] = jj_gen;
3026 jj_consume_token(COMMA);
3027 expr = VariableDeclaratorId();
3031 jj_consume_token(SEMICOLON);
3032 String[] strings = new String[vars.size()];
3033 vars.toArray(strings);
3034 global = new GlobalStatement(currentSegment,
3037 SimpleCharStream.getPosition());
3038 currentSegment.add(global);
3039 {if (true) return global;}
3040 } catch (ParseException e) {
3041 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3043 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3044 errorEnd = jj_input_stream.getPosition() + 1;
3045 {if (true) throw e;}
3047 throw new Error("Missing return statement in function");
3050 static final public StaticStatement StaticStatement() throws ParseException {
3051 final int pos = SimpleCharStream.getPosition();
3052 final ArrayList vars = new ArrayList();
3053 VariableDeclaration expr;
3054 jj_consume_token(STATIC);
3055 expr = VariableDeclarator();
3056 vars.add(new String(expr.name));
3059 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3064 jj_la1[84] = jj_gen;
3067 jj_consume_token(COMMA);
3068 expr = VariableDeclarator();
3069 vars.add(new String(expr.name));
3072 jj_consume_token(SEMICOLON);
3073 String[] strings = new String[vars.size()];
3074 vars.toArray(strings);
3075 {if (true) return new StaticStatement(strings,
3077 SimpleCharStream.getPosition());}
3078 } catch (ParseException e) {
3079 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3081 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3082 errorEnd = jj_input_stream.getPosition() + 1;
3083 {if (true) throw e;}
3085 throw new Error("Missing return statement in function");
3088 static final public LabeledStatement LabeledStatement() throws ParseException {
3089 final int pos = SimpleCharStream.getPosition();
3091 final Statement statement;
3092 label = jj_consume_token(IDENTIFIER);
3093 jj_consume_token(COLON);
3094 statement = Statement();
3095 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
3096 throw new Error("Missing return statement in function");
3106 static final public Block Block() throws ParseException {
3107 final int pos = SimpleCharStream.getPosition();
3108 Statement[] statements;
3109 Statement statement;
3110 final int startingPtr = statementPtr;
3113 jj_consume_token(LBRACE);
3114 } catch (ParseException e) {
3115 errorMessage = "'{' expected";
3117 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3118 errorEnd = jj_input_stream.getPosition() + 1;
3119 {if (true) throw e;}
3123 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3158 case INTEGER_LITERAL:
3159 case FLOATING_POINT_LITERAL:
3160 case STRING_LITERAL:
3169 jj_la1[85] = jj_gen;
3172 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3206 case INTEGER_LITERAL:
3207 case FLOATING_POINT_LITERAL:
3208 case STRING_LITERAL:
3214 statement = BlockStatement();
3215 pushOnStatementStack(statement);
3218 statement = htmlBlock();
3219 pushOnStatementStack(statement);
3222 jj_la1[86] = jj_gen;
3223 jj_consume_token(-1);
3224 throw new ParseException();
3228 jj_consume_token(RBRACE);
3229 } catch (ParseException e) {
3230 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3232 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3233 errorEnd = jj_input_stream.getPosition() + 1;
3234 {if (true) throw e;}
3236 length = statementPtr-startingPtr+1;
3237 statements = new Statement[length];
3238 System.arraycopy(variableDeclarationStack,startingPtr+1,statements,0,length);
3239 statementPtr = startingPtr;
3240 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3241 throw new Error("Missing return statement in function");
3244 static final public Statement BlockStatement() throws ParseException {
3245 final Statement statement;
3246 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3278 case INTEGER_LITERAL:
3279 case FLOATING_POINT_LITERAL:
3280 case STRING_LITERAL:
3286 statement = Statement();
3287 {if (true) return statement;}
3290 statement = ClassDeclaration();
3291 {if (true) return statement;}
3294 statement = MethodDeclaration();
3295 {if (true) return statement;}
3298 jj_la1[87] = jj_gen;
3299 jj_consume_token(-1);
3300 throw new ParseException();
3302 throw new Error("Missing return statement in function");
3306 * A Block statement that will not contain any 'break'
3308 static final public Statement BlockStatementNoBreak() throws ParseException {
3309 final Statement statement;
3310 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3341 case INTEGER_LITERAL:
3342 case FLOATING_POINT_LITERAL:
3343 case STRING_LITERAL:
3349 statement = StatementNoBreak();
3350 {if (true) return statement;}
3353 statement = ClassDeclaration();
3354 {if (true) return statement;}
3357 statement = MethodDeclaration();
3358 {if (true) return statement;}
3361 jj_la1[88] = jj_gen;
3362 jj_consume_token(-1);
3363 throw new ParseException();
3365 throw new Error("Missing return statement in function");
3368 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3369 final ArrayList list = new ArrayList();
3370 VariableDeclaration var;
3371 var = LocalVariableDeclarator();
3375 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3380 jj_la1[89] = jj_gen;
3383 jj_consume_token(COMMA);
3384 var = LocalVariableDeclarator();
3387 VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3389 {if (true) return vars;}
3390 throw new Error("Missing return statement in function");
3393 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3394 final String varName;
3395 Expression initializer = null;
3396 final int pos = SimpleCharStream.getPosition();
3397 varName = VariableDeclaratorId();
3398 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3400 jj_consume_token(ASSIGN);
3401 initializer = Expression();
3404 jj_la1[90] = jj_gen;
3407 if (initializer == null) {
3408 {if (true) return new VariableDeclaration(currentSegment,
3409 varName.toCharArray(),
3411 jj_input_stream.getPosition());}
3413 {if (true) return new VariableDeclaration(currentSegment,
3414 varName.toCharArray(),
3417 throw new Error("Missing return statement in function");
3420 static final public EmptyStatement EmptyStatement() throws ParseException {
3422 jj_consume_token(SEMICOLON);
3423 pos = SimpleCharStream.getPosition();
3424 {if (true) return new EmptyStatement(pos-1,pos);}
3425 throw new Error("Missing return statement in function");
3428 static final public Statement StatementExpression() throws ParseException {
3430 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3433 expr = PreIncDecExpression();
3434 {if (true) return expr;}
3441 expr = PrimaryExpression();
3442 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3457 case RSIGNEDSHIFTASSIGN:
3458 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3460 jj_consume_token(INCR);
3461 expr = new PostfixedUnaryExpression(expr,
3462 OperatorIds.PLUS_PLUS,
3463 SimpleCharStream.getPosition());
3466 jj_consume_token(DECR);
3467 expr = new PostfixedUnaryExpression(expr,
3468 OperatorIds.MINUS_MINUS,
3469 SimpleCharStream.getPosition());
3483 case RSIGNEDSHIFTASSIGN:
3484 AssignmentOperator();
3488 jj_la1[91] = jj_gen;
3489 jj_consume_token(-1);
3490 throw new ParseException();
3494 jj_la1[92] = jj_gen;
3499 jj_la1[93] = jj_gen;
3500 jj_consume_token(-1);
3501 throw new ParseException();
3503 throw new Error("Missing return statement in function");
3506 static final public SwitchStatement SwitchStatement() throws ParseException {
3507 final Expression variable;
3508 final AbstractCase[] cases;
3509 final int pos = SimpleCharStream.getPosition();
3510 jj_consume_token(SWITCH);
3512 jj_consume_token(LPAREN);
3513 } catch (ParseException e) {
3514 errorMessage = "'(' expected after 'switch'";
3516 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3517 errorEnd = jj_input_stream.getPosition() + 1;
3518 {if (true) throw e;}
3521 variable = Expression();
3522 } catch (ParseException e) {
3523 if (errorMessage != null) {
3524 {if (true) throw e;}
3526 errorMessage = "expression expected";
3528 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3529 errorEnd = jj_input_stream.getPosition() + 1;
3530 {if (true) throw e;}
3533 jj_consume_token(RPAREN);
3534 } catch (ParseException e) {
3535 errorMessage = "')' expected";
3537 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3538 errorEnd = jj_input_stream.getPosition() + 1;
3539 {if (true) throw e;}
3541 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3543 cases = switchStatementBrace();
3546 cases = switchStatementColon(pos, pos + 6);
3549 jj_la1[94] = jj_gen;
3550 jj_consume_token(-1);
3551 throw new ParseException();
3553 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3554 throw new Error("Missing return statement in function");
3557 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3559 final ArrayList cases = new ArrayList();
3560 jj_consume_token(LBRACE);
3563 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3569 jj_la1[95] = jj_gen;
3572 cas = switchLabel0();
3576 jj_consume_token(RBRACE);
3577 AbstractCase[] abcase = new AbstractCase[cases.size()];
3578 cases.toArray(abcase);
3579 {if (true) return abcase;}
3580 } catch (ParseException e) {
3581 errorMessage = "'}' expected";
3583 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3584 errorEnd = jj_input_stream.getPosition() + 1;
3585 {if (true) throw e;}
3587 throw new Error("Missing return statement in function");
3591 * A Switch statement with : ... endswitch;
3592 * @param start the begin offset of the switch
3593 * @param end the end offset of the switch
3595 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3597 final ArrayList cases = new ArrayList();
3598 jj_consume_token(COLON);
3600 setMarker(fileToParse,
3601 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3605 "Line " + token.beginLine);
3606 } catch (CoreException e) {
3607 PHPeclipsePlugin.log(e);
3611 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3617 jj_la1[96] = jj_gen;
3620 cas = switchLabel0();
3624 jj_consume_token(ENDSWITCH);
3625 } catch (ParseException e) {
3626 errorMessage = "'endswitch' expected";
3628 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3629 errorEnd = jj_input_stream.getPosition() + 1;
3630 {if (true) throw e;}
3633 jj_consume_token(SEMICOLON);
3634 AbstractCase[] abcase = new AbstractCase[cases.size()];
3635 cases.toArray(abcase);
3636 {if (true) return abcase;}
3637 } catch (ParseException e) {
3638 errorMessage = "';' expected after 'endswitch' keyword";
3640 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3641 errorEnd = jj_input_stream.getPosition() + 1;
3642 {if (true) throw e;}
3644 throw new Error("Missing return statement in function");
3647 static final public AbstractCase switchLabel0() throws ParseException {
3648 final Expression expr;
3649 Statement statement;
3650 final ArrayList stmts = new ArrayList();
3651 final int pos = SimpleCharStream.getPosition();
3652 expr = SwitchLabel();
3655 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3689 case INTEGER_LITERAL:
3690 case FLOATING_POINT_LITERAL:
3691 case STRING_LITERAL:
3700 jj_la1[97] = jj_gen;
3703 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3736 case INTEGER_LITERAL:
3737 case FLOATING_POINT_LITERAL:
3738 case STRING_LITERAL:
3744 statement = BlockStatementNoBreak();
3745 stmts.add(statement);
3748 statement = htmlBlock();
3749 stmts.add(statement);
3752 jj_la1[98] = jj_gen;
3753 jj_consume_token(-1);
3754 throw new ParseException();
3757 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3759 statement = BreakStatement();
3760 stmts.add(statement);
3763 jj_la1[99] = jj_gen;
3766 Statement[] stmtsArray = new Statement[stmts.size()];
3767 stmts.toArray(stmtsArray);
3768 if (expr == null) {//it's a default
3769 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3771 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3772 throw new Error("Missing return statement in function");
3777 * case Expression() :
3779 * @return the if it was a case and null if not
3781 static final public Expression SwitchLabel() throws ParseException {
3783 final Expression expr;
3784 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3786 token = jj_consume_token(CASE);
3788 expr = Expression();
3789 } catch (ParseException e) {
3790 if (errorMessage != null) {if (true) throw e;}
3791 errorMessage = "expression expected after 'case' keyword";
3793 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3794 errorEnd = jj_input_stream.getPosition() + 1;
3795 {if (true) throw e;}
3798 jj_consume_token(COLON);
3799 {if (true) return expr;}
3800 } catch (ParseException e) {
3801 errorMessage = "':' expected after case expression";
3803 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3804 errorEnd = jj_input_stream.getPosition() + 1;
3805 {if (true) throw e;}
3809 token = jj_consume_token(_DEFAULT);
3811 jj_consume_token(COLON);
3812 {if (true) return null;}
3813 } catch (ParseException e) {
3814 errorMessage = "':' expected after 'default' keyword";
3816 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3817 errorEnd = jj_input_stream.getPosition() + 1;
3818 {if (true) throw e;}
3822 jj_la1[100] = jj_gen;
3823 jj_consume_token(-1);
3824 throw new ParseException();
3826 throw new Error("Missing return statement in function");
3829 static final public Break BreakStatement() throws ParseException {
3830 Expression expression = null;
3831 final int start = SimpleCharStream.getPosition();
3832 jj_consume_token(BREAK);
3833 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3849 case INTEGER_LITERAL:
3850 case FLOATING_POINT_LITERAL:
3851 case STRING_LITERAL:
3855 expression = Expression();
3858 jj_la1[101] = jj_gen;
3862 jj_consume_token(SEMICOLON);
3863 } catch (ParseException e) {
3864 errorMessage = "';' expected after 'break' keyword";
3866 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3867 errorEnd = jj_input_stream.getPosition() + 1;
3868 {if (true) throw e;}
3870 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3871 throw new Error("Missing return statement in function");
3874 static final public IfStatement IfStatement() throws ParseException {
3875 final int pos = jj_input_stream.getPosition();
3876 Expression condition;
3877 IfStatement ifStatement;
3878 jj_consume_token(IF);
3879 condition = Condition("if");
3880 ifStatement = IfStatement0(condition, pos,pos+2);
3881 {if (true) return ifStatement;}
3882 throw new Error("Missing return statement in function");
3885 static final public Expression Condition(final String keyword) throws ParseException {
3886 final Expression condition;
3888 jj_consume_token(LPAREN);
3889 } catch (ParseException e) {
3890 errorMessage = "'(' expected after " + keyword + " keyword";
3892 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length();
3893 errorEnd = errorStart +1;
3894 processParseException(e);
3896 condition = Expression();
3898 jj_consume_token(RPAREN);
3899 {if (true) return condition;}
3900 } catch (ParseException e) {
3901 errorMessage = "')' expected after " + keyword + " keyword";
3903 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3904 errorEnd = jj_input_stream.getPosition() + 1;
3905 {if (true) throw e;}
3907 throw new Error("Missing return statement in function");
3910 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3911 Statement statement;
3913 final Statement[] statementsArray;
3914 ElseIf elseifStatement;
3915 Else elseStatement = null;
3917 final ArrayList elseIfList = new ArrayList();
3919 int pos = SimpleCharStream.getPosition();
3921 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3923 jj_consume_token(COLON);
3924 stmts = new ArrayList();
3927 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3960 case INTEGER_LITERAL:
3961 case FLOATING_POINT_LITERAL:
3962 case STRING_LITERAL:
3971 jj_la1[102] = jj_gen;
3974 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4006 case INTEGER_LITERAL:
4007 case FLOATING_POINT_LITERAL:
4008 case STRING_LITERAL:
4014 statement = Statement();
4015 stmts.add(statement);
4018 statement = htmlBlock();
4019 stmts.add(statement);
4022 jj_la1[103] = jj_gen;
4023 jj_consume_token(-1);
4024 throw new ParseException();
4027 endStatements = SimpleCharStream.getPosition();
4030 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4035 jj_la1[104] = jj_gen;
4038 elseifStatement = ElseIfStatementColon();
4039 elseIfList.add(elseifStatement);
4041 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4043 elseStatement = ElseStatementColon();
4046 jj_la1[105] = jj_gen;
4050 setMarker(fileToParse,
4051 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
4055 "Line " + token.beginLine);
4056 } catch (CoreException e) {
4057 PHPeclipsePlugin.log(e);
4060 jj_consume_token(ENDIF);
4061 } catch (ParseException e) {
4062 errorMessage = "'endif' expected";
4064 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4065 errorEnd = jj_input_stream.getPosition() + 1;
4066 {if (true) throw e;}
4069 jj_consume_token(SEMICOLON);
4070 } catch (ParseException e) {
4071 errorMessage = "';' expected after 'endif' keyword";
4073 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4074 errorEnd = jj_input_stream.getPosition() + 1;
4075 {if (true) throw e;}
4077 elseIfs = new ElseIf[elseIfList.size()];
4078 elseIfList.toArray(elseIfs);
4079 if (stmts.size() == 1) {
4080 {if (true) return new IfStatement(condition,
4081 (Statement) stmts.get(0),
4085 SimpleCharStream.getPosition());}
4087 statementsArray = new Statement[stmts.size()];
4088 stmts.toArray(statementsArray);
4089 {if (true) return new IfStatement(condition,
4090 new Block(statementsArray,pos,endStatements),
4094 SimpleCharStream.getPosition());}
4129 case INTEGER_LITERAL:
4130 case FLOATING_POINT_LITERAL:
4131 case STRING_LITERAL:
4137 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4169 case INTEGER_LITERAL:
4170 case FLOATING_POINT_LITERAL:
4171 case STRING_LITERAL:
4183 jj_la1[106] = jj_gen;
4184 jj_consume_token(-1);
4185 throw new ParseException();
4189 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4194 jj_la1[107] = jj_gen;
4197 elseifStatement = ElseIfStatement();
4198 elseIfList.add(elseifStatement);
4200 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4202 jj_consume_token(ELSE);
4204 pos = SimpleCharStream.getPosition();
4205 statement = Statement();
4206 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4207 } catch (ParseException e) {
4208 if (errorMessage != null) {
4209 {if (true) throw e;}
4211 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4213 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4214 errorEnd = jj_input_stream.getPosition() + 1;
4215 {if (true) throw e;}
4219 jj_la1[108] = jj_gen;
4222 elseIfs = new ElseIf[elseIfList.size()];
4223 elseIfList.toArray(elseIfs);
4224 {if (true) return new IfStatement(condition,
4229 SimpleCharStream.getPosition());}
4232 jj_la1[109] = jj_gen;
4233 jj_consume_token(-1);
4234 throw new ParseException();
4236 throw new Error("Missing return statement in function");
4239 static final public ElseIf ElseIfStatementColon() throws ParseException {
4240 Expression condition;
4241 Statement statement;
4242 final ArrayList list = new ArrayList();
4243 final int pos = SimpleCharStream.getPosition();
4244 jj_consume_token(ELSEIF);
4245 condition = Condition("elseif");
4246 jj_consume_token(COLON);
4249 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4282 case INTEGER_LITERAL:
4283 case FLOATING_POINT_LITERAL:
4284 case STRING_LITERAL:
4293 jj_la1[110] = jj_gen;
4296 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4328 case INTEGER_LITERAL:
4329 case FLOATING_POINT_LITERAL:
4330 case STRING_LITERAL:
4336 statement = Statement();
4337 list.add(statement);
4340 statement = htmlBlock();
4341 list.add(statement);
4344 jj_la1[111] = jj_gen;
4345 jj_consume_token(-1);
4346 throw new ParseException();
4349 Statement[] stmtsArray = new Statement[list.size()];
4350 list.toArray(stmtsArray);
4351 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4352 throw new Error("Missing return statement in function");
4355 static final public Else ElseStatementColon() throws ParseException {
4356 Statement statement;
4357 final ArrayList list = new ArrayList();
4358 final int pos = SimpleCharStream.getPosition();
4359 jj_consume_token(ELSE);
4360 jj_consume_token(COLON);
4363 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4396 case INTEGER_LITERAL:
4397 case FLOATING_POINT_LITERAL:
4398 case STRING_LITERAL:
4407 jj_la1[112] = jj_gen;
4410 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4442 case INTEGER_LITERAL:
4443 case FLOATING_POINT_LITERAL:
4444 case STRING_LITERAL:
4450 statement = Statement();
4451 list.add(statement);
4454 statement = htmlBlock();
4455 list.add(statement);
4458 jj_la1[113] = jj_gen;
4459 jj_consume_token(-1);
4460 throw new ParseException();
4463 Statement[] stmtsArray = new Statement[list.size()];
4464 list.toArray(stmtsArray);
4465 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4466 throw new Error("Missing return statement in function");
4469 static final public ElseIf ElseIfStatement() throws ParseException {
4470 Expression condition;
4471 Statement statement;
4472 final ArrayList list = new ArrayList();
4473 final int pos = SimpleCharStream.getPosition();
4474 jj_consume_token(ELSEIF);
4475 condition = Condition("elseif");
4476 statement = Statement();
4477 list.add(statement);/*todo:do better*/
4478 Statement[] stmtsArray = new Statement[list.size()];
4479 list.toArray(stmtsArray);
4480 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4481 throw new Error("Missing return statement in function");
4484 static final public WhileStatement WhileStatement() throws ParseException {
4485 final Expression condition;
4486 final Statement action;
4487 final int pos = SimpleCharStream.getPosition();
4488 jj_consume_token(WHILE);
4489 condition = Condition("while");
4490 action = WhileStatement0(pos,pos + 5);
4491 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4492 throw new Error("Missing return statement in function");
4495 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4496 Statement statement;
4497 final ArrayList stmts = new ArrayList();
4498 final int pos = SimpleCharStream.getPosition();
4499 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4501 jj_consume_token(COLON);
4504 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4536 case INTEGER_LITERAL:
4537 case FLOATING_POINT_LITERAL:
4538 case STRING_LITERAL:
4547 jj_la1[114] = jj_gen;
4550 statement = Statement();
4551 stmts.add(statement);
4554 setMarker(fileToParse,
4555 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4559 "Line " + token.beginLine);
4560 } catch (CoreException e) {
4561 PHPeclipsePlugin.log(e);
4564 jj_consume_token(ENDWHILE);
4565 } catch (ParseException e) {
4566 errorMessage = "'endwhile' expected";
4568 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4569 errorEnd = jj_input_stream.getPosition() + 1;
4570 {if (true) throw e;}
4573 jj_consume_token(SEMICOLON);
4574 Statement[] stmtsArray = new Statement[stmts.size()];
4575 stmts.toArray(stmtsArray);
4576 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4577 } catch (ParseException e) {
4578 errorMessage = "';' expected after 'endwhile' keyword";
4580 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4581 errorEnd = jj_input_stream.getPosition() + 1;
4582 {if (true) throw e;}
4616 case INTEGER_LITERAL:
4617 case FLOATING_POINT_LITERAL:
4618 case STRING_LITERAL:
4624 statement = Statement();
4625 {if (true) return statement;}
4628 jj_la1[115] = jj_gen;
4629 jj_consume_token(-1);
4630 throw new ParseException();
4632 throw new Error("Missing return statement in function");
4635 static final public DoStatement DoStatement() throws ParseException {
4636 final Statement action;
4637 final Expression condition;
4638 final int pos = SimpleCharStream.getPosition();
4639 jj_consume_token(DO);
4640 action = Statement();
4641 jj_consume_token(WHILE);
4642 condition = Condition("while");
4644 jj_consume_token(SEMICOLON);
4645 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4646 } catch (ParseException e) {
4647 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4649 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4650 errorEnd = jj_input_stream.getPosition() + 1;
4651 {if (true) throw e;}
4653 throw new Error("Missing return statement in function");
4656 static final public ForeachStatement ForeachStatement() throws ParseException {
4657 Statement statement;
4658 Expression expression;
4659 final StringBuffer buff = new StringBuffer();
4660 final int pos = SimpleCharStream.getPosition();
4661 ArrayVariableDeclaration variable;
4662 jj_consume_token(FOREACH);
4664 jj_consume_token(LPAREN);
4665 } catch (ParseException e) {
4666 errorMessage = "'(' expected after 'foreach' keyword";
4668 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4669 errorEnd = jj_input_stream.getPosition() + 1;
4670 {if (true) throw e;}
4673 expression = Expression();
4674 } catch (ParseException e) {
4675 errorMessage = "variable expected";
4677 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4678 errorEnd = jj_input_stream.getPosition() + 1;
4679 {if (true) throw e;}
4682 jj_consume_token(AS);
4683 } catch (ParseException e) {
4684 errorMessage = "'as' expected";
4686 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4687 errorEnd = jj_input_stream.getPosition() + 1;
4688 {if (true) throw e;}
4691 variable = ArrayVariable();
4692 } catch (ParseException e) {
4693 errorMessage = "variable expected";
4695 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4696 errorEnd = jj_input_stream.getPosition() + 1;
4697 {if (true) throw e;}
4700 jj_consume_token(RPAREN);
4701 } catch (ParseException e) {
4702 errorMessage = "')' expected after 'foreach' keyword";
4704 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4705 errorEnd = jj_input_stream.getPosition() + 1;
4706 {if (true) throw e;}
4709 statement = Statement();
4710 } catch (ParseException e) {
4711 if (errorMessage != null) {if (true) throw e;}
4712 errorMessage = "statement expected";
4714 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4715 errorEnd = jj_input_stream.getPosition() + 1;
4716 {if (true) throw e;}
4718 {if (true) return new ForeachStatement(expression,
4722 SimpleCharStream.getPosition());}
4723 throw new Error("Missing return statement in function");
4726 static final public ForStatement ForStatement() throws ParseException {
4728 final int pos = SimpleCharStream.getPosition();
4729 Statement[] initializations = null;
4730 Expression condition = null;
4731 Statement[] increments = null;
4733 final ArrayList list = new ArrayList();
4734 final int startBlock, endBlock;
4735 token = jj_consume_token(FOR);
4737 jj_consume_token(LPAREN);
4738 } catch (ParseException e) {
4739 errorMessage = "'(' expected after 'for' keyword";
4741 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4742 errorEnd = jj_input_stream.getPosition() + 1;
4743 {if (true) throw e;}
4745 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4753 initializations = ForInit();
4756 jj_la1[116] = jj_gen;
4759 jj_consume_token(SEMICOLON);
4760 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4776 case INTEGER_LITERAL:
4777 case FLOATING_POINT_LITERAL:
4778 case STRING_LITERAL:
4782 condition = Expression();
4785 jj_la1[117] = jj_gen;
4788 jj_consume_token(SEMICOLON);
4789 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4797 increments = StatementExpressionList();
4800 jj_la1[118] = jj_gen;
4803 jj_consume_token(RPAREN);
4804 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4836 case INTEGER_LITERAL:
4837 case FLOATING_POINT_LITERAL:
4838 case STRING_LITERAL:
4844 action = Statement();
4845 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4848 jj_consume_token(COLON);
4849 startBlock = SimpleCharStream.getPosition();
4852 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4884 case INTEGER_LITERAL:
4885 case FLOATING_POINT_LITERAL:
4886 case STRING_LITERAL:
4895 jj_la1[119] = jj_gen;
4898 action = Statement();
4902 setMarker(fileToParse,
4903 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4905 pos+token.image.length(),
4907 "Line " + token.beginLine);
4908 } catch (CoreException e) {
4909 PHPeclipsePlugin.log(e);
4911 endBlock = SimpleCharStream.getPosition();
4913 jj_consume_token(ENDFOR);
4914 } catch (ParseException e) {
4915 errorMessage = "'endfor' expected";
4917 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4918 errorEnd = jj_input_stream.getPosition() + 1;
4919 {if (true) throw e;}
4922 jj_consume_token(SEMICOLON);
4923 Statement[] stmtsArray = new Statement[list.size()];
4924 list.toArray(stmtsArray);
4925 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4926 } catch (ParseException e) {
4927 errorMessage = "';' expected after 'endfor' keyword";
4929 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4930 errorEnd = jj_input_stream.getPosition() + 1;
4931 {if (true) throw e;}
4935 jj_la1[120] = jj_gen;
4936 jj_consume_token(-1);
4937 throw new ParseException();
4939 throw new Error("Missing return statement in function");
4942 static final public Statement[] ForInit() throws ParseException {
4943 Statement[] statements;
4944 if (jj_2_8(2147483647)) {
4945 statements = LocalVariableDeclaration();
4946 {if (true) return statements;}
4948 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4956 statements = StatementExpressionList();
4957 {if (true) return statements;}
4960 jj_la1[121] = jj_gen;
4961 jj_consume_token(-1);
4962 throw new ParseException();
4965 throw new Error("Missing return statement in function");
4968 static final public Statement[] StatementExpressionList() throws ParseException {
4969 final ArrayList list = new ArrayList();
4971 expr = StatementExpression();
4975 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4980 jj_la1[122] = jj_gen;
4983 jj_consume_token(COMMA);
4984 StatementExpression();
4987 Statement[] stmtsArray = new Statement[list.size()];
4988 list.toArray(stmtsArray);
4989 {if (true) return stmtsArray;}
4990 throw new Error("Missing return statement in function");
4993 static final public Continue ContinueStatement() throws ParseException {
4994 Expression expr = null;
4995 final int pos = SimpleCharStream.getPosition();
4996 jj_consume_token(CONTINUE);
4997 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5013 case INTEGER_LITERAL:
5014 case FLOATING_POINT_LITERAL:
5015 case STRING_LITERAL:
5019 expr = Expression();
5022 jj_la1[123] = jj_gen;
5026 jj_consume_token(SEMICOLON);
5027 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
5028 } catch (ParseException e) {
5029 errorMessage = "';' expected after 'continue' statement";
5031 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
5032 errorEnd = jj_input_stream.getPosition() + 1;
5033 {if (true) throw e;}
5035 throw new Error("Missing return statement in function");
5038 static final public ReturnStatement ReturnStatement() throws ParseException {
5039 Expression expr = null;
5040 final int pos = SimpleCharStream.getPosition();
5041 jj_consume_token(RETURN);
5042 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5058 case INTEGER_LITERAL:
5059 case FLOATING_POINT_LITERAL:
5060 case STRING_LITERAL:
5064 expr = Expression();
5067 jj_la1[124] = jj_gen;
5071 jj_consume_token(SEMICOLON);
5072 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
5073 } catch (ParseException e) {
5074 errorMessage = "';' expected after 'return' statement";
5076 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
5077 errorEnd = jj_input_stream.getPosition() + 1;
5078 {if (true) throw e;}
5080 throw new Error("Missing return statement in function");
5083 static final private boolean jj_2_1(int xla) {
5084 jj_la = xla; jj_lastpos = jj_scanpos = token;
5085 boolean retval = !jj_3_1();
5090 static final private boolean jj_2_2(int xla) {
5091 jj_la = xla; jj_lastpos = jj_scanpos = token;
5092 boolean retval = !jj_3_2();
5097 static final private boolean jj_2_3(int xla) {
5098 jj_la = xla; jj_lastpos = jj_scanpos = token;
5099 boolean retval = !jj_3_3();
5104 static final private boolean jj_2_4(int xla) {
5105 jj_la = xla; jj_lastpos = jj_scanpos = token;
5106 boolean retval = !jj_3_4();
5111 static final private boolean jj_2_5(int xla) {
5112 jj_la = xla; jj_lastpos = jj_scanpos = token;
5113 boolean retval = !jj_3_5();
5118 static final private boolean jj_2_6(int xla) {
5119 jj_la = xla; jj_lastpos = jj_scanpos = token;
5120 boolean retval = !jj_3_6();
5125 static final private boolean jj_2_7(int xla) {
5126 jj_la = xla; jj_lastpos = jj_scanpos = token;
5127 boolean retval = !jj_3_7();
5132 static final private boolean jj_2_8(int xla) {
5133 jj_la = xla; jj_lastpos = jj_scanpos = token;
5134 boolean retval = !jj_3_8();
5139 static final private boolean jj_3R_147() {
5140 if (jj_scan_token(REMAINDER)) return true;
5141 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5145 static final private boolean jj_3R_146() {
5146 if (jj_scan_token(SLASH)) return true;
5147 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5151 static final private boolean jj_3R_145() {
5152 if (jj_scan_token(STAR)) return true;
5153 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5157 static final private boolean jj_3_7() {
5158 if (jj_3R_46()) return true;
5159 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5163 static final private boolean jj_3R_140() {
5170 if (jj_3R_147()) return true;
5171 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5172 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5173 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5174 if (jj_3R_139()) return true;
5175 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5179 static final private boolean jj_3R_57() {
5180 if (jj_3R_50()) return true;
5181 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5184 if (jj_3R_87()) jj_scanpos = xsp;
5185 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5189 static final private boolean jj_3R_58() {
5190 if (jj_scan_token(COMMA)) return true;
5191 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5192 if (jj_3R_57()) return true;
5193 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5197 static final private boolean jj_3_6() {
5198 if (jj_3R_45()) return true;
5199 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5200 if (jj_scan_token(SEMICOLON)) return true;
5201 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5205 static final private boolean jj_3R_134() {
5206 if (jj_3R_139()) return true;
5207 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5211 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5212 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5217 static final private boolean jj_3R_47() {
5218 if (jj_3R_57()) return true;
5219 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5223 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5224 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5229 static final private boolean jj_3R_142() {
5230 if (jj_scan_token(MINUS)) return true;
5231 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5235 static final private boolean jj_3R_141() {
5236 if (jj_scan_token(PLUS)) return true;
5237 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5241 static final private boolean jj_3R_135() {
5246 if (jj_3R_142()) return true;
5247 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5248 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5249 if (jj_3R_134()) return true;
5250 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5254 static final private boolean jj_3R_128() {
5255 if (jj_3R_134()) return true;
5256 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5260 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5261 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5266 static final private boolean jj_3R_198() {
5267 if (jj_scan_token(COMMA)) return true;
5268 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5272 static final private boolean jj_3R_138() {
5273 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5274 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5278 static final private boolean jj_3_2() {
5279 if (jj_scan_token(COMMA)) return true;
5280 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5281 if (jj_3R_41()) return true;
5282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5286 static final private boolean jj_3R_137() {
5287 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5288 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5292 static final private boolean jj_3R_206() {
5293 if (jj_scan_token(ASSIGN)) return true;
5294 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5295 if (jj_3R_207()) return true;
5296 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5300 static final private boolean jj_3R_136() {
5301 if (jj_scan_token(LSHIFT)) return true;
5302 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5306 static final private boolean jj_3R_201() {
5307 if (jj_scan_token(ARRAYASSIGN)) return true;
5308 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5309 if (jj_3R_45()) return true;
5310 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5314 static final private boolean jj_3R_197() {
5315 if (jj_3R_41()) return true;
5316 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5320 if (jj_3_2()) { jj_scanpos = xsp; break; }
5321 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5326 static final private boolean jj_3R_129() {
5333 if (jj_3R_138()) return true;
5334 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5335 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5336 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5337 if (jj_3R_128()) return true;
5338 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5342 static final private boolean jj_3R_205() {
5343 if (jj_scan_token(BIT_AND)) return true;
5344 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5348 static final private boolean jj_3R_121() {
5349 if (jj_3R_128()) return true;
5350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5354 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5355 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5360 static final private boolean jj_3R_203() {
5363 if (jj_3R_205()) jj_scanpos = xsp;
5364 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5365 if (jj_3R_50()) return true;
5366 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5368 if (jj_3R_206()) jj_scanpos = xsp;
5369 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5373 static final private boolean jj_3R_216() {
5374 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5375 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5379 static final private boolean jj_3R_214() {
5380 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5381 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5385 static final private boolean jj_3R_192() {
5386 if (jj_scan_token(LPAREN)) return true;
5387 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5390 if (jj_3R_197()) jj_scanpos = xsp;
5391 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5393 if (jj_3R_198()) jj_scanpos = xsp;
5394 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5395 if (jj_scan_token(RPAREN)) return true;
5396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5400 static final private boolean jj_3R_133() {
5401 if (jj_scan_token(GE)) return true;
5402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5406 static final private boolean jj_3R_132() {
5407 if (jj_scan_token(LE)) return true;
5408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5412 static final private boolean jj_3R_131() {
5413 if (jj_scan_token(GT)) return true;
5414 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5418 static final private boolean jj_3R_130() {
5419 if (jj_scan_token(LT)) return true;
5420 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5424 static final private boolean jj_3R_122() {
5433 if (jj_3R_133()) return true;
5434 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5435 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5436 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5437 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5438 if (jj_3R_121()) return true;
5439 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5443 static final private boolean jj_3R_119() {
5444 if (jj_3R_121()) return true;
5445 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5449 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5450 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5455 static final private boolean jj_3R_41() {
5456 if (jj_3R_45()) return true;
5457 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5460 if (jj_3R_201()) jj_scanpos = xsp;
5461 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5465 static final private boolean jj_3R_204() {
5466 if (jj_scan_token(COMMA)) return true;
5467 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5468 if (jj_3R_203()) return true;
5469 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5473 static final private boolean jj_3R_212() {
5474 if (jj_scan_token(IDENTIFIER)) return true;
5475 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5479 static final private boolean jj_3R_202() {
5480 if (jj_3R_203()) return true;
5481 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5485 if (jj_3R_204()) { jj_scanpos = xsp; break; }
5486 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5491 static final private boolean jj_3R_215() {
5492 if (jj_scan_token(INTEGER_LITERAL)) return true;
5493 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5497 static final private boolean jj_3R_211() {
5498 if (jj_3R_182()) return true;
5499 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5503 static final private boolean jj_3R_213() {
5504 if (jj_scan_token(INTEGER_LITERAL)) return true;
5505 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5509 static final private boolean jj_3R_200() {
5510 if (jj_3R_202()) return true;
5511 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5515 static final private boolean jj_3R_210() {
5516 if (jj_scan_token(PLUS)) return true;
5517 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5522 if (jj_3R_216()) return true;
5523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5524 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5528 static final private boolean jj_3R_127() {
5529 if (jj_scan_token(TRIPLEEQUAL)) return true;
5530 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5534 static final private boolean jj_3R_126() {
5535 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5540 static final private boolean jj_3R_125() {
5541 if (jj_scan_token(NOT_EQUAL)) return true;
5542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5546 static final private boolean jj_3R_124() {
5547 if (jj_scan_token(DIF)) return true;
5548 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5552 static final private boolean jj_3R_123() {
5553 if (jj_scan_token(EQUAL_EQUAL)) return true;
5554 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5558 static final private boolean jj_3R_209() {
5559 if (jj_scan_token(MINUS)) return true;
5560 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5565 if (jj_3R_214()) return true;
5566 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5567 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5571 static final private boolean jj_3R_93() {
5572 if (jj_3R_52()) return true;
5573 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5577 static final private boolean jj_3R_46() {
5578 if (jj_scan_token(IDENTIFIER)) return true;
5579 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5580 if (jj_scan_token(COLON)) return true;
5581 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5585 static final private boolean jj_3R_208() {
5586 if (jj_3R_169()) return true;
5587 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5591 static final private boolean jj_3R_207() {
5602 if (jj_3R_212()) return true;
5603 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5604 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5605 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5606 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5607 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5611 static final private boolean jj_3R_199() {
5612 if (jj_scan_token(LPAREN)) return true;
5613 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5616 if (jj_3R_200()) jj_scanpos = xsp;
5617 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5618 if (jj_scan_token(RPAREN)) return true;
5619 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5623 static final private boolean jj_3R_120() {
5634 if (jj_3R_127()) return true;
5635 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5636 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5637 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5638 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5639 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5640 if (jj_3R_119()) return true;
5641 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5645 static final private boolean jj_3R_117() {
5646 if (jj_3R_119()) return true;
5647 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5651 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5652 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5657 static final private boolean jj_3_8() {
5658 if (jj_3R_47()) return true;
5659 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5663 static final private boolean jj_3R_108() {
5664 if (jj_scan_token(LBRACE)) return true;
5665 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5666 if (jj_3R_45()) return true;
5667 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5668 if (jj_scan_token(RBRACE)) return true;
5669 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5673 static final private boolean jj_3R_177() {
5674 if (jj_scan_token(NULL)) return true;
5675 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5679 static final private boolean jj_3R_91() {
5680 if (jj_scan_token(DOLLAR_ID)) return true;
5681 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5685 static final private boolean jj_3R_176() {
5686 if (jj_scan_token(FALSE)) return true;
5687 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5691 static final private boolean jj_3R_118() {
5692 if (jj_scan_token(BIT_AND)) return true;
5693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5694 if (jj_3R_117()) return true;
5695 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5699 static final private boolean jj_3R_175() {
5700 if (jj_scan_token(TRUE)) return true;
5701 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5705 static final private boolean jj_3R_174() {
5706 if (jj_scan_token(STRING_LITERAL)) return true;
5707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5711 static final private boolean jj_3R_115() {
5712 if (jj_3R_117()) return true;
5713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5717 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5718 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5723 static final private boolean jj_3R_90() {
5724 if (jj_scan_token(DOLLAR)) return true;
5725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5726 if (jj_3R_59()) return true;
5727 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 static final private boolean jj_3R_173() {
5732 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5733 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5737 static final private boolean jj_3R_169() {
5750 if (jj_3R_177()) return true;
5751 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5752 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5753 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5754 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5755 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5756 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5760 static final private boolean jj_3R_172() {
5761 if (jj_scan_token(INTEGER_LITERAL)) return true;
5762 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5766 static final private boolean jj_3R_116() {
5767 if (jj_scan_token(XOR)) return true;
5768 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5769 if (jj_3R_115()) return true;
5770 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5774 static final private boolean jj_3R_92() {
5775 if (jj_3R_45()) return true;
5776 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5780 static final private boolean jj_3R_60() {
5785 if (jj_3R_93()) return true;
5786 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5787 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5791 static final private boolean jj_3R_89() {
5792 if (jj_scan_token(IDENTIFIER)) return true;
5793 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5796 if (jj_3R_108()) jj_scanpos = xsp;
5797 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5801 static final private boolean jj_3R_113() {
5802 if (jj_3R_115()) return true;
5803 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5807 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5808 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5813 static final private boolean jj_3R_88() {
5814 if (jj_scan_token(LBRACE)) return true;
5815 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5816 if (jj_3R_45()) return true;
5817 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5818 if (jj_scan_token(RBRACE)) return true;
5819 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5823 static final private boolean jj_3R_59() {
5832 if (jj_3R_91()) return true;
5833 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5834 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5835 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5836 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5840 static final private boolean jj_3R_98() {
5841 if (jj_scan_token(LBRACE)) return true;
5842 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5843 if (jj_3R_45()) return true;
5844 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5845 if (jj_scan_token(RBRACE)) return true;
5846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850 static final private boolean jj_3R_49() {
5851 if (jj_scan_token(LBRACKET)) return true;
5852 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5855 if (jj_3R_60()) jj_scanpos = xsp;
5856 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5857 if (jj_scan_token(RBRACKET)) return true;
5858 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5862 static final private boolean jj_3R_114() {
5863 if (jj_scan_token(BIT_OR)) return true;
5864 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5865 if (jj_3R_113()) return true;
5866 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5870 static final private boolean jj_3R_109() {
5871 if (jj_3R_113()) return true;
5872 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5876 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5877 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5882 static final private boolean jj_3R_95() {
5883 if (jj_scan_token(DOLLAR)) return true;
5884 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5885 if (jj_3R_59()) return true;
5886 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5890 static final private boolean jj_3R_110() {
5891 if (jj_scan_token(DOT)) return true;
5892 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5893 if (jj_3R_109()) return true;
5894 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5898 static final private boolean jj_3R_48() {
5899 if (jj_scan_token(CLASSACCESS)) return true;
5900 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5901 if (jj_3R_59()) return true;
5902 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5906 static final private boolean jj_3R_40() {
5911 if (jj_3R_49()) return true;
5912 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5913 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5917 static final private boolean jj_3R_104() {
5918 if (jj_3R_109()) return true;
5919 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5923 if (jj_3R_110()) { jj_scanpos = xsp; break; }
5924 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5929 static final private boolean jj_3R_94() {
5930 if (jj_scan_token(DOLLAR_ID)) return true;
5931 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5934 if (jj_3R_98()) jj_scanpos = xsp;
5935 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5939 static final private boolean jj_3R_61() {
5944 if (jj_3R_95()) return true;
5945 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5946 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5950 static final private boolean jj_3R_196() {
5951 if (jj_3R_40()) return true;
5952 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5956 static final private boolean jj_3R_112() {
5957 if (jj_scan_token(_ANDL)) return true;
5958 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5962 static final private boolean jj_3R_195() {
5963 if (jj_3R_199()) return true;
5964 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5968 static final private boolean jj_3R_188() {
5973 if (jj_3R_196()) return true;
5974 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5975 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5979 static final private boolean jj_3R_111() {
5980 if (jj_scan_token(AND_AND)) return true;
5981 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5985 static final private boolean jj_3R_105() {
5990 if (jj_3R_112()) return true;
5991 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5992 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5993 if (jj_3R_104()) return true;
5994 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5998 static final private boolean jj_3R_97() {
5999 if (jj_scan_token(HOOK)) return true;
6000 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6001 if (jj_3R_45()) return true;
6002 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6003 if (jj_scan_token(COLON)) return true;
6004 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6005 if (jj_3R_86()) return true;
6006 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6010 static final private boolean jj_3R_102() {
6011 if (jj_3R_104()) return true;
6012 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6016 if (jj_3R_105()) { jj_scanpos = xsp; break; }
6017 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6022 static final private boolean jj_3R_187() {
6023 if (jj_3R_50()) return true;
6024 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6028 static final private boolean jj_3R_186() {
6029 if (jj_scan_token(IDENTIFIER)) return true;
6030 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6034 static final private boolean jj_3R_178() {
6039 if (jj_3R_187()) return true;
6040 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6041 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6045 static final private boolean jj_3R_107() {
6046 if (jj_scan_token(_ORL)) return true;
6047 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6051 static final private boolean jj_3R_106() {
6052 if (jj_scan_token(OR_OR)) return true;
6053 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6057 static final private boolean jj_3_1() {
6058 if (jj_3R_40()) return true;
6059 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6063 static final private boolean jj_3R_103() {
6068 if (jj_3R_107()) return true;
6069 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6070 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6071 if (jj_3R_102()) return true;
6072 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6076 static final private boolean jj_3R_50() {
6077 if (jj_3R_61()) return true;
6078 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6082 if (jj_3_1()) { jj_scanpos = xsp; break; }
6083 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6088 static final private boolean jj_3R_96() {
6089 if (jj_3R_102()) return true;
6090 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6094 if (jj_3R_103()) { jj_scanpos = xsp; break; }
6095 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6100 static final private boolean jj_3R_86() {
6101 if (jj_3R_96()) return true;
6102 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6105 if (jj_3R_97()) jj_scanpos = xsp;
6106 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6110 static final private boolean jj_3R_191() {
6111 if (jj_3R_50()) return true;
6112 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6116 static final private boolean jj_3R_190() {
6117 if (jj_scan_token(NEW)) return true;
6118 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6119 if (jj_3R_178()) return true;
6120 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6124 static final private boolean jj_3R_74() {
6125 if (jj_scan_token(TILDEEQUAL)) return true;
6126 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6130 static final private boolean jj_3R_101() {
6131 if (jj_scan_token(ASSIGN)) return true;
6132 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6133 if (jj_3R_45()) return true;
6134 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6138 static final private boolean jj_3R_73() {
6139 if (jj_scan_token(DOTASSIGN)) return true;
6140 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6144 static final private boolean jj_3R_72() {
6145 if (jj_scan_token(ORASSIGN)) return true;
6146 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6150 static final private boolean jj_3R_189() {
6151 if (jj_scan_token(IDENTIFIER)) return true;
6152 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6156 static final private boolean jj_3R_180() {
6163 if (jj_3R_191()) return true;
6164 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6165 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6166 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6170 static final private boolean jj_3R_71() {
6171 if (jj_scan_token(XORASSIGN)) return true;
6172 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6176 static final private boolean jj_3R_70() {
6177 if (jj_scan_token(ANDASSIGN)) return true;
6178 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6182 static final private boolean jj_3R_69() {
6183 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6184 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6188 static final private boolean jj_3R_68() {
6189 if (jj_scan_token(LSHIFTASSIGN)) return true;
6190 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6194 static final private boolean jj_3R_67() {
6195 if (jj_scan_token(MINUSASSIGN)) return true;
6196 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6200 static final private boolean jj_3R_66() {
6201 if (jj_scan_token(PLUSASSIGN)) return true;
6202 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6206 static final private boolean jj_3R_65() {
6207 if (jj_scan_token(REMASSIGN)) return true;
6208 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6212 static final private boolean jj_3R_64() {
6213 if (jj_scan_token(SLASHASSIGN)) return true;
6214 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6218 static final private boolean jj_3R_63() {
6219 if (jj_scan_token(STARASSIGN)) return true;
6220 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6224 static final private boolean jj_3R_51() {
6251 if (jj_3R_74()) return true;
6252 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6253 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6254 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6255 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6256 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6257 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6258 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6259 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6260 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6261 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6262 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6263 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6264 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6268 static final private boolean jj_3R_62() {
6269 if (jj_scan_token(ASSIGN)) return true;
6270 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6274 static final private boolean jj_3R_182() {
6275 if (jj_scan_token(ARRAY)) return true;
6276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6277 if (jj_3R_192()) return true;
6278 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6282 static final private boolean jj_3R_100() {
6283 if (jj_scan_token(COMMA)) return true;
6284 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6285 if (jj_3R_50()) return true;
6286 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6290 static final private boolean jj_3R_171() {
6291 if (jj_3R_182()) return true;
6292 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6296 static final private boolean jj_3R_99() {
6297 if (jj_3R_50()) return true;
6298 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6302 static final private boolean jj_3R_181() {
6303 if (jj_3R_188()) return true;
6304 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6308 static final private boolean jj_3R_170() {
6309 if (jj_3R_180()) return true;
6310 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6314 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6315 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6320 static final private boolean jj_3R_179() {
6321 if (jj_3R_188()) return true;
6322 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6326 static final private boolean jj_3R_42() {
6327 if (jj_3R_50()) return true;
6328 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6329 if (jj_3R_51()) return true;
6330 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6331 if (jj_3R_45()) return true;
6332 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6336 static final private boolean jj_3_5() {
6337 if (jj_scan_token(IDENTIFIER)) return true;
6338 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6339 if (jj_scan_token(STATICCLASSACCESS)) return true;
6340 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6341 if (jj_3R_178()) return true;
6342 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6346 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6347 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6352 static final private boolean jj_3R_166() {
6359 if (jj_3R_171()) return true;
6360 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6361 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6362 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6366 static final private boolean jj_3R_85() {
6367 if (jj_scan_token(LIST)) return true;
6368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6369 if (jj_scan_token(LPAREN)) return true;
6370 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6373 if (jj_3R_99()) jj_scanpos = xsp;
6374 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6377 if (jj_3R_100()) { jj_scanpos = xsp; break; }
6378 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6380 if (jj_scan_token(RPAREN)) return true;
6381 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6383 if (jj_3R_101()) jj_scanpos = xsp;
6384 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6388 static final private boolean jj_3_3() {
6389 if (jj_3R_42()) return true;
6390 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6394 static final private boolean jj_3R_84() {
6395 if (jj_scan_token(PRINT)) return true;
6396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6397 if (jj_3R_45()) return true;
6398 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6402 static final private boolean jj_3R_56() {
6403 if (jj_3R_86()) return true;
6404 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6408 static final private boolean jj_3R_55() {
6409 if (jj_3R_42()) return true;
6410 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6414 static final private boolean jj_3R_194() {
6415 if (jj_scan_token(DECR)) return true;
6416 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6420 static final private boolean jj_3R_54() {
6421 if (jj_3R_85()) return true;
6422 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6426 static final private boolean jj_3R_193() {
6427 if (jj_scan_token(INCR)) return true;
6428 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6432 static final private boolean jj_3R_185() {
6437 if (jj_3R_194()) return true;
6438 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6439 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6443 static final private boolean jj_3R_45() {
6452 if (jj_3R_56()) return true;
6453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6454 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6455 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6456 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6460 static final private boolean jj_3R_53() {
6461 if (jj_3R_84()) return true;
6462 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6466 static final private boolean jj_3R_168() {
6467 if (jj_3R_166()) return true;
6468 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6471 if (jj_3R_185()) jj_scanpos = xsp;
6472 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6476 static final private boolean jj_3R_83() {
6477 if (jj_scan_token(OBJECT)) return true;
6478 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6482 static final private boolean jj_3R_44() {
6483 if (jj_scan_token(ARRAY)) return true;
6484 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6488 static final private boolean jj_3R_184() {
6489 if (jj_scan_token(ARRAY)) return true;
6490 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6494 static final private boolean jj_3R_82() {
6495 if (jj_scan_token(INTEGER)) return true;
6496 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6500 static final private boolean jj_3R_183() {
6501 if (jj_3R_52()) return true;
6502 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6506 static final private boolean jj_3R_81() {
6507 if (jj_scan_token(INT)) return true;
6508 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6512 static final private boolean jj_3R_167() {
6513 if (jj_scan_token(LPAREN)) return true;
6514 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6519 if (jj_3R_184()) return true;
6520 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6521 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6522 if (jj_scan_token(RPAREN)) return true;
6523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6524 if (jj_3R_139()) return true;
6525 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6529 static final private boolean jj_3R_80() {
6530 if (jj_scan_token(FLOAT)) return true;
6531 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6535 static final private boolean jj_3R_43() {
6536 if (jj_3R_52()) return true;
6537 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6541 static final private boolean jj_3R_79() {
6542 if (jj_scan_token(DOUBLE)) return true;
6543 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6547 static final private boolean jj_3R_78() {
6548 if (jj_scan_token(REAL)) return true;
6549 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6553 static final private boolean jj_3R_77() {
6554 if (jj_scan_token(BOOLEAN)) return true;
6555 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6559 static final private boolean jj_3_4() {
6560 if (jj_scan_token(LPAREN)) return true;
6561 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6566 if (jj_3R_44()) return true;
6567 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6568 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6569 if (jj_scan_token(RPAREN)) return true;
6570 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6574 static final private boolean jj_3R_76() {
6575 if (jj_scan_token(BOOL)) return true;
6576 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6580 static final private boolean jj_3R_75() {
6581 if (jj_scan_token(STRING)) return true;
6582 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6586 static final private boolean jj_3R_52() {
6605 if (jj_3R_83()) return true;
6606 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6607 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6608 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6609 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6610 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6611 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6612 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6613 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6614 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6618 static final private boolean jj_3R_165() {
6619 if (jj_scan_token(LPAREN)) return true;
6620 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6621 if (jj_3R_45()) return true;
6622 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6623 if (jj_scan_token(RPAREN)) return true;
6624 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6628 static final private boolean jj_3R_164() {
6629 if (jj_3R_169()) return true;
6630 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6634 static final private boolean jj_3R_163() {
6635 if (jj_3R_168()) return true;
6636 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6640 static final private boolean jj_3R_162() {
6641 if (jj_3R_167()) return true;
6642 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6646 static final private boolean jj_3R_158() {
6657 if (jj_3R_165()) return true;
6658 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6659 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6660 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6661 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6662 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6666 static final private boolean jj_3R_161() {
6667 if (jj_scan_token(BANG)) return true;
6668 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6669 if (jj_3R_139()) return true;
6670 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6674 static final private boolean jj_3R_160() {
6675 if (jj_scan_token(DECR)) return true;
6676 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6680 static final private boolean jj_3R_159() {
6681 if (jj_scan_token(INCR)) return true;
6682 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6686 static final private boolean jj_3R_157() {
6691 if (jj_3R_160()) return true;
6692 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6693 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6694 if (jj_3R_166()) return true;
6695 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6699 static final private boolean jj_3R_152() {
6700 if (jj_3R_158()) return true;
6701 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6705 static final private boolean jj_3R_151() {
6706 if (jj_3R_157()) return true;
6707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6711 static final private boolean jj_3R_156() {
6712 if (jj_scan_token(MINUS)) return true;
6713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6717 static final private boolean jj_3R_155() {
6718 if (jj_scan_token(PLUS)) return true;
6719 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6723 static final private boolean jj_3R_148() {
6730 if (jj_3R_152()) return true;
6731 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6732 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6733 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6737 static final private boolean jj_3R_150() {
6742 if (jj_3R_156()) return true;
6743 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6744 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6745 if (jj_3R_139()) return true;
6746 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6750 static final private boolean jj_3R_87() {
6751 if (jj_scan_token(ASSIGN)) return true;
6752 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6753 if (jj_3R_45()) return true;
6754 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6758 static final private boolean jj_3R_154() {
6759 if (jj_3R_148()) return true;
6760 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6764 static final private boolean jj_3R_149() {
6769 if (jj_3R_154()) return true;
6770 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6771 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6775 static final private boolean jj_3R_153() {
6776 if (jj_scan_token(AT)) return true;
6777 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6778 if (jj_3R_149()) return true;
6779 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6783 static final private boolean jj_3R_144() {
6784 if (jj_3R_149()) return true;
6785 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6789 static final private boolean jj_3R_139() {
6794 if (jj_3R_144()) return true;
6795 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6796 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6800 static final private boolean jj_3R_143() {
6801 if (jj_scan_token(BIT_AND)) return true;
6802 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6803 if (jj_3R_148()) return true;
6804 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6808 static private boolean jj_initialized_once = false;
6809 static public PHPParserTokenManager token_source;
6810 static SimpleCharStream jj_input_stream;
6811 static public Token token, jj_nt;
6812 static private int jj_ntk;
6813 static private Token jj_scanpos, jj_lastpos;
6814 static private int jj_la;
6815 static public boolean lookingAhead = false;
6816 static private boolean jj_semLA;
6817 static private int jj_gen;
6818 static final private int[] jj_la1 = new int[125];
6819 static private int[] jj_la1_0;
6820 static private int[] jj_la1_1;
6821 static private int[] jj_la1_2;
6822 static private int[] jj_la1_3;
6823 static private int[] jj_la1_4;
6831 private static void jj_la1_0() {
6832 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,0x0,0x0,0x0,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,};
6834 private static void jj_la1_1() {
6835 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,0x0,0x0,0x0,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,};
6837 private static void jj_la1_2() {
6838 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,0x400200,0x0,0x400000,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,};
6840 private static void jj_la1_3() {
6841 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,0x0,0x100000,0x0,0x80000000,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,};
6843 private static void jj_la1_4() {
6844 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,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,};
6846 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6847 static private boolean jj_rescan = false;
6848 static private int jj_gc = 0;
6850 public PHPParser(java.io.InputStream stream) {
6851 if (jj_initialized_once) {
6852 System.out.println("ERROR: Second call to constructor of static parser. You must");
6853 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6854 System.out.println(" during parser generation.");
6857 jj_initialized_once = true;
6858 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6859 token_source = new PHPParserTokenManager(jj_input_stream);
6860 token = new Token();
6863 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6864 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6867 static public void ReInit(java.io.InputStream stream) {
6868 jj_input_stream.ReInit(stream, 1, 1);
6869 token_source.ReInit(jj_input_stream);
6870 token = new Token();
6873 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6874 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6877 public PHPParser(java.io.Reader stream) {
6878 if (jj_initialized_once) {
6879 System.out.println("ERROR: Second call to constructor of static parser. You must");
6880 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6881 System.out.println(" during parser generation.");
6884 jj_initialized_once = true;
6885 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6886 token_source = new PHPParserTokenManager(jj_input_stream);
6887 token = new Token();
6890 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6891 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6894 static public void ReInit(java.io.Reader stream) {
6895 jj_input_stream.ReInit(stream, 1, 1);
6896 token_source.ReInit(jj_input_stream);
6897 token = new Token();
6900 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6901 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6904 public PHPParser(PHPParserTokenManager tm) {
6905 if (jj_initialized_once) {
6906 System.out.println("ERROR: Second call to constructor of static parser. You must");
6907 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6908 System.out.println(" during parser generation.");
6911 jj_initialized_once = true;
6913 token = new Token();
6916 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6917 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6920 public void ReInit(PHPParserTokenManager tm) {
6922 token = new Token();
6925 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6926 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6929 static final private Token jj_consume_token(int kind) throws ParseException {
6931 if ((oldToken = token).next != null) token = token.next;
6932 else token = token.next = token_source.getNextToken();
6934 if (token.kind == kind) {
6936 if (++jj_gc > 100) {
6938 for (int i = 0; i < jj_2_rtns.length; i++) {
6939 JJCalls c = jj_2_rtns[i];
6941 if (c.gen < jj_gen) c.first = null;
6950 throw generateParseException();
6953 static final private boolean jj_scan_token(int kind) {
6954 if (jj_scanpos == jj_lastpos) {
6956 if (jj_scanpos.next == null) {
6957 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6959 jj_lastpos = jj_scanpos = jj_scanpos.next;
6962 jj_scanpos = jj_scanpos.next;
6965 int i = 0; Token tok = token;
6966 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6967 if (tok != null) jj_add_error_token(kind, i);
6969 return (jj_scanpos.kind != kind);
6972 static final public Token getNextToken() {
6973 if (token.next != null) token = token.next;
6974 else token = token.next = token_source.getNextToken();
6980 static final public Token getToken(int index) {
6981 Token t = lookingAhead ? jj_scanpos : token;
6982 for (int i = 0; i < index; i++) {
6983 if (t.next != null) t = t.next;
6984 else t = t.next = token_source.getNextToken();
6989 static final private int jj_ntk() {
6990 if ((jj_nt=token.next) == null)
6991 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6993 return (jj_ntk = jj_nt.kind);
6996 static private java.util.Vector jj_expentries = new java.util.Vector();
6997 static private int[] jj_expentry;
6998 static private int jj_kind = -1;
6999 static private int[] jj_lasttokens = new int[100];
7000 static private int jj_endpos;
7002 static private void jj_add_error_token(int kind, int pos) {
7003 if (pos >= 100) return;
7004 if (pos == jj_endpos + 1) {
7005 jj_lasttokens[jj_endpos++] = kind;
7006 } else if (jj_endpos != 0) {
7007 jj_expentry = new int[jj_endpos];
7008 for (int i = 0; i < jj_endpos; i++) {
7009 jj_expentry[i] = jj_lasttokens[i];
7011 boolean exists = false;
7012 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
7013 int[] oldentry = (int[])(enum.nextElement());
7014 if (oldentry.length == jj_expentry.length) {
7016 for (int i = 0; i < jj_expentry.length; i++) {
7017 if (oldentry[i] != jj_expentry[i]) {
7025 if (!exists) jj_expentries.addElement(jj_expentry);
7026 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
7030 static public ParseException generateParseException() {
7031 jj_expentries.removeAllElements();
7032 boolean[] la1tokens = new boolean[141];
7033 for (int i = 0; i < 141; i++) {
7034 la1tokens[i] = false;
7037 la1tokens[jj_kind] = true;
7040 for (int i = 0; i < 125; i++) {
7041 if (jj_la1[i] == jj_gen) {
7042 for (int j = 0; j < 32; j++) {
7043 if ((jj_la1_0[i] & (1<<j)) != 0) {
7044 la1tokens[j] = true;
7046 if ((jj_la1_1[i] & (1<<j)) != 0) {
7047 la1tokens[32+j] = true;
7049 if ((jj_la1_2[i] & (1<<j)) != 0) {
7050 la1tokens[64+j] = true;
7052 if ((jj_la1_3[i] & (1<<j)) != 0) {
7053 la1tokens[96+j] = true;
7055 if ((jj_la1_4[i] & (1<<j)) != 0) {
7056 la1tokens[128+j] = true;
7061 for (int i = 0; i < 141; i++) {
7063 jj_expentry = new int[1];
7065 jj_expentries.addElement(jj_expentry);
7070 jj_add_error_token(0, 0);
7071 int[][] exptokseq = new int[jj_expentries.size()][];
7072 for (int i = 0; i < jj_expentries.size(); i++) {
7073 exptokseq[i] = (int[])jj_expentries.elementAt(i);
7075 return new ParseException(token, exptokseq, tokenImage);
7078 static final public void enable_tracing() {
7081 static final public void disable_tracing() {
7084 static final private void jj_rescan_token() {
7086 for (int i = 0; i < 8; i++) {
7087 JJCalls p = jj_2_rtns[i];
7089 if (p.gen > jj_gen) {
7090 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
7092 case 0: jj_3_1(); break;
7093 case 1: jj_3_2(); break;
7094 case 2: jj_3_3(); break;
7095 case 3: jj_3_4(); break;
7096 case 4: jj_3_5(); break;
7097 case 5: jj_3_6(); break;
7098 case 6: jj_3_7(); break;
7099 case 7: jj_3_8(); break;
7103 } while (p != null);
7108 static final private void jj_save(int index, int xla) {
7109 JJCalls p = jj_2_rtns[index];
7110 while (p.gen > jj_gen) {
7111 if (p.next == null) { p = p.next = new JJCalls(); break; }
7114 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
7117 static final class JJCalls {