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 VariableDeclaration[] list;
741 final ArrayList arrayList = new ArrayList();
742 final int pos = SimpleCharStream.getPosition();
743 jj_consume_token(VAR);
744 variableDeclaration = VariableDeclarator();
745 arrayList.add(variableDeclaration);
746 outlineInfo.addVariable(new String(variableDeclaration.name));
747 currentSegment.add(variableDeclaration);
750 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
758 jj_consume_token(COMMA);
759 variableDeclaration = VariableDeclarator();
760 arrayList.add(variableDeclaration);
761 outlineInfo.addVariable(new String(variableDeclaration.name));
762 currentSegment.add(variableDeclaration);
765 jj_consume_token(SEMICOLON);
766 } catch (ParseException e) {
767 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
769 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
770 errorEnd = jj_input_stream.getPosition() + 1;
773 list = new VariableDeclaration[arrayList.size()];
774 arrayList.toArray(list);
775 {if (true) return new FieldDeclaration(list,
777 SimpleCharStream.getPosition());}
778 throw new Error("Missing return statement in function");
781 static final public VariableDeclaration VariableDeclarator() throws ParseException {
782 final String varName, varValue;
783 Expression initializer = null;
784 final int pos = jj_input_stream.getPosition();
785 varName = VariableDeclaratorId();
786 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
788 jj_consume_token(ASSIGN);
790 initializer = VariableInitializer();
791 } catch (ParseException e) {
792 errorMessage = "Literal expression expected in variable initializer";
794 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
795 errorEnd = jj_input_stream.getPosition() + 1;
803 if (initializer == null) {
804 {if (true) return new VariableDeclaration(currentSegment,
805 varName.toCharArray(),
807 jj_input_stream.getPosition());}
809 {if (true) return new VariableDeclaration(currentSegment,
810 varName.toCharArray(),
813 throw new Error("Missing return statement in function");
818 * @return the variable name (with suffix)
820 static final public String VariableDeclaratorId() throws ParseException {
822 Expression expression;
823 final StringBuffer buff = new StringBuffer();
824 final int pos = SimpleCharStream.getPosition();
825 ConstantIdentifier ex;
836 ex = new ConstantIdentifier(expr.toCharArray(),
838 SimpleCharStream.getPosition());
839 expression = VariableSuffix(ex);
840 buff.append(expression.toStringExpression());
842 {if (true) return buff.toString();}
843 } catch (ParseException e) {
844 errorMessage = "'$' expected for variable identifier";
846 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
847 errorEnd = jj_input_stream.getPosition() + 1;
850 throw new Error("Missing return statement in function");
853 static final public String Variable() throws ParseException {
854 final StringBuffer buff;
855 Expression expression = null;
858 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
860 token = jj_consume_token(DOLLAR_ID);
861 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
863 jj_consume_token(LBRACE);
864 expression = Expression();
865 jj_consume_token(RBRACE);
871 if (expression == null && !assigning) {
872 {if (true) return token.image.substring(1);}
874 buff = new StringBuffer(token.image);
876 buff.append(expression.toStringExpression());
878 {if (true) return buff.toString();}
881 jj_consume_token(DOLLAR);
882 expr = VariableName();
883 {if (true) return expr;}
887 jj_consume_token(-1);
888 throw new ParseException();
890 throw new Error("Missing return statement in function");
893 static final public String VariableName() throws ParseException {
894 final StringBuffer buff;
896 Expression expression = null;
898 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
900 jj_consume_token(LBRACE);
901 expression = Expression();
902 jj_consume_token(RBRACE);
903 buff = new StringBuffer('{');
904 buff.append(expression.toStringExpression());
906 {if (true) return buff.toString();}
909 token = jj_consume_token(IDENTIFIER);
910 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
912 jj_consume_token(LBRACE);
913 expression = Expression();
914 jj_consume_token(RBRACE);
920 if (expression == null) {
921 {if (true) return token.image;}
923 buff = new StringBuffer(token.image);
925 buff.append(expression.toStringExpression());
927 {if (true) return buff.toString();}
930 jj_consume_token(DOLLAR);
931 expr = VariableName();
932 buff = new StringBuffer('$');
934 {if (true) return buff.toString();}
937 token = jj_consume_token(DOLLAR_ID);
938 {if (true) return token.image;}
942 jj_consume_token(-1);
943 throw new ParseException();
945 throw new Error("Missing return statement in function");
948 static final public Expression VariableInitializer() throws ParseException {
949 final Expression expr;
951 final int pos = SimpleCharStream.getPosition();
952 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
956 case INTEGER_LITERAL:
957 case FLOATING_POINT_LITERAL:
960 {if (true) return expr;}
963 jj_consume_token(MINUS);
964 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
965 case INTEGER_LITERAL:
966 token = jj_consume_token(INTEGER_LITERAL);
968 case FLOATING_POINT_LITERAL:
969 token = jj_consume_token(FLOATING_POINT_LITERAL);
973 jj_consume_token(-1);
974 throw new ParseException();
976 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
978 SimpleCharStream.getPosition()),
983 jj_consume_token(PLUS);
984 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
985 case INTEGER_LITERAL:
986 token = jj_consume_token(INTEGER_LITERAL);
988 case FLOATING_POINT_LITERAL:
989 token = jj_consume_token(FLOATING_POINT_LITERAL);
993 jj_consume_token(-1);
994 throw new ParseException();
996 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
998 SimpleCharStream.getPosition()),
1003 expr = ArrayDeclarator();
1004 {if (true) return expr;}
1007 token = jj_consume_token(IDENTIFIER);
1008 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
1011 jj_la1[17] = jj_gen;
1012 jj_consume_token(-1);
1013 throw new ParseException();
1015 throw new Error("Missing return statement in function");
1018 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
1019 Expression expr,expr2;
1020 expr = Expression();
1021 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1023 jj_consume_token(ARRAYASSIGN);
1024 expr2 = Expression();
1025 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
1028 jj_la1[18] = jj_gen;
1031 {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());}
1032 throw new Error("Missing return statement in function");
1035 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
1036 ArrayVariableDeclaration expr;
1037 final ArrayList list = new ArrayList();
1038 jj_consume_token(LPAREN);
1039 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1055 case INTEGER_LITERAL:
1056 case FLOATING_POINT_LITERAL:
1057 case STRING_LITERAL:
1061 expr = ArrayVariable();
1070 jj_consume_token(COMMA);
1071 expr = ArrayVariable();
1076 jj_la1[19] = jj_gen;
1079 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1081 jj_consume_token(COMMA);
1085 jj_la1[20] = jj_gen;
1088 jj_consume_token(RPAREN);
1089 ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1091 {if (true) return vars;}
1092 throw new Error("Missing return statement in function");
1096 * A Method Declaration.
1097 * <b>function</b> MetodDeclarator() Block()
1099 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1100 final MethodDeclaration functionDeclaration;
1101 Token functionToken;
1103 functionToken = jj_consume_token(FUNCTION);
1105 functionDeclaration = MethodDeclarator();
1106 outlineInfo.addVariable(new String(functionDeclaration.name));
1107 } catch (ParseException e) {
1108 if (errorMessage != null) {
1109 {if (true) throw e;}
1111 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1113 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1114 errorEnd = jj_input_stream.getPosition() + 1;
1115 {if (true) throw e;}
1117 if (currentSegment != null) {
1118 currentSegment.add(functionDeclaration);
1119 currentSegment = functionDeclaration;
1121 currentFunction = functionDeclaration;
1123 functionDeclaration.statements = block.statements;
1124 currentFunction = null;
1125 if (currentSegment != null) {
1126 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
1128 {if (true) return functionDeclaration;}
1129 throw new Error("Missing return statement in function");
1133 * A MethodDeclarator.
1134 * [&] IDENTIFIER(parameters ...).
1135 * @return a function description for the outline
1137 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1138 final Token identifier;
1139 Token reference = null;
1140 final Hashtable formalParameters;
1141 final int pos = SimpleCharStream.getPosition();
1142 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1144 reference = jj_consume_token(BIT_AND);
1147 jj_la1[21] = jj_gen;
1150 identifier = jj_consume_token(IDENTIFIER);
1151 formalParameters = FormalParameters();
1152 {if (true) return new MethodDeclaration(currentSegment,
1153 identifier.image.toCharArray(),
1157 SimpleCharStream.getPosition());}
1158 throw new Error("Missing return statement in function");
1162 * FormalParameters follows method identifier.
1163 * (FormalParameter())
1165 static final public Hashtable FormalParameters() throws ParseException {
1167 final StringBuffer buff = new StringBuffer("(");
1168 VariableDeclaration var;
1169 final Hashtable parameters = new Hashtable();
1171 jj_consume_token(LPAREN);
1172 } catch (ParseException e) {
1173 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1175 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1176 errorEnd = jj_input_stream.getPosition() + 1;
1177 {if (true) throw e;}
1179 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1183 var = FormalParameter();
1184 parameters.put(new String(var.name),var);
1187 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1192 jj_la1[22] = jj_gen;
1195 jj_consume_token(COMMA);
1196 var = FormalParameter();
1197 parameters.put(new String(var.name),var);
1201 jj_la1[23] = jj_gen;
1205 jj_consume_token(RPAREN);
1206 } catch (ParseException e) {
1207 errorMessage = "')' expected";
1209 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1210 errorEnd = jj_input_stream.getPosition() + 1;
1211 {if (true) throw e;}
1213 {if (true) return parameters;}
1214 throw new Error("Missing return statement in function");
1218 * A formal parameter.
1219 * $varname[=value] (,$varname[=value])
1221 static final public VariableDeclaration FormalParameter() throws ParseException {
1222 final VariableDeclaration variableDeclaration;
1224 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1226 token = jj_consume_token(BIT_AND);
1229 jj_la1[24] = jj_gen;
1232 variableDeclaration = VariableDeclarator();
1233 if (token != null) {
1234 variableDeclaration.setReference(true);
1236 {if (true) return variableDeclaration;}
1237 throw new Error("Missing return statement in function");
1240 static final public ConstantIdentifier Type() throws ParseException {
1242 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1244 jj_consume_token(STRING);
1245 pos = SimpleCharStream.getPosition();
1246 {if (true) return new ConstantIdentifier(Types.STRING,
1250 jj_consume_token(BOOL);
1251 pos = SimpleCharStream.getPosition();
1252 {if (true) return new ConstantIdentifier(Types.BOOL,
1256 jj_consume_token(BOOLEAN);
1257 pos = SimpleCharStream.getPosition();
1258 {if (true) return new ConstantIdentifier(Types.BOOLEAN,
1262 jj_consume_token(REAL);
1263 pos = SimpleCharStream.getPosition();
1264 {if (true) return new ConstantIdentifier(Types.REAL,
1268 jj_consume_token(DOUBLE);
1269 pos = SimpleCharStream.getPosition();
1270 {if (true) return new ConstantIdentifier(Types.DOUBLE,
1274 jj_consume_token(FLOAT);
1275 pos = SimpleCharStream.getPosition();
1276 {if (true) return new ConstantIdentifier(Types.FLOAT,
1280 jj_consume_token(INT);
1281 pos = SimpleCharStream.getPosition();
1282 {if (true) return new ConstantIdentifier(Types.INT,
1286 jj_consume_token(INTEGER);
1287 pos = SimpleCharStream.getPosition();
1288 {if (true) return new ConstantIdentifier(Types.INTEGER,
1292 jj_consume_token(OBJECT);
1293 pos = SimpleCharStream.getPosition();
1294 {if (true) return new ConstantIdentifier(Types.OBJECT,
1298 jj_la1[25] = jj_gen;
1299 jj_consume_token(-1);
1300 throw new ParseException();
1302 throw new Error("Missing return statement in function");
1305 static final public Expression Expression() throws ParseException {
1306 final Expression expr;
1307 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1309 expr = PrintExpression();
1310 {if (true) return expr;}
1313 expr = ListExpression();
1314 {if (true) return expr;}
1317 jj_la1[26] = jj_gen;
1318 if (jj_2_3(2147483647)) {
1319 expr = varAssignation();
1320 {if (true) return expr;}
1322 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1336 case INTEGER_LITERAL:
1337 case FLOATING_POINT_LITERAL:
1338 case STRING_LITERAL:
1342 expr = ConditionalExpression();
1343 {if (true) return expr;}
1346 jj_la1[27] = jj_gen;
1347 jj_consume_token(-1);
1348 throw new ParseException();
1352 throw new Error("Missing return statement in function");
1356 * A Variable assignation.
1357 * varName (an assign operator) any expression
1359 static final public VarAssignation varAssignation() throws ParseException {
1361 final Expression expression;
1362 final int assignOperator;
1363 final int pos = SimpleCharStream.getPosition();
1364 varName = VariableDeclaratorId();
1365 assignOperator = AssignmentOperator();
1367 expression = Expression();
1368 } catch (ParseException e) {
1369 if (errorMessage != null) {
1370 {if (true) throw e;}
1372 errorMessage = "expression expected";
1374 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1375 errorEnd = jj_input_stream.getPosition() + 1;
1376 {if (true) throw e;}
1378 {if (true) return new VarAssignation(varName.toCharArray(),
1382 SimpleCharStream.getPosition());}
1383 throw new Error("Missing return statement in function");
1386 static final public int AssignmentOperator() throws ParseException {
1387 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1389 jj_consume_token(ASSIGN);
1390 {if (true) return VarAssignation.EQUAL;}
1393 jj_consume_token(STARASSIGN);
1394 {if (true) return VarAssignation.STAR_EQUAL;}
1397 jj_consume_token(SLASHASSIGN);
1398 {if (true) return VarAssignation.SLASH_EQUAL;}
1401 jj_consume_token(REMASSIGN);
1402 {if (true) return VarAssignation.REM_EQUAL;}
1405 jj_consume_token(PLUSASSIGN);
1406 {if (true) return VarAssignation.PLUS_EQUAL;}
1409 jj_consume_token(MINUSASSIGN);
1410 {if (true) return VarAssignation.MINUS_EQUAL;}
1413 jj_consume_token(LSHIFTASSIGN);
1414 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1416 case RSIGNEDSHIFTASSIGN:
1417 jj_consume_token(RSIGNEDSHIFTASSIGN);
1418 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1421 jj_consume_token(ANDASSIGN);
1422 {if (true) return VarAssignation.AND_EQUAL;}
1425 jj_consume_token(XORASSIGN);
1426 {if (true) return VarAssignation.XOR_EQUAL;}
1429 jj_consume_token(ORASSIGN);
1430 {if (true) return VarAssignation.OR_EQUAL;}
1433 jj_consume_token(DOTASSIGN);
1434 {if (true) return VarAssignation.DOT_EQUAL;}
1437 jj_consume_token(TILDEEQUAL);
1438 {if (true) return VarAssignation.TILDE_EQUAL;}
1441 jj_la1[28] = jj_gen;
1442 jj_consume_token(-1);
1443 throw new ParseException();
1445 throw new Error("Missing return statement in function");
1448 static final public Expression ConditionalExpression() throws ParseException {
1449 final Expression expr;
1450 Expression expr2 = null;
1451 Expression expr3 = null;
1452 expr = ConditionalOrExpression();
1453 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1455 jj_consume_token(HOOK);
1456 expr2 = Expression();
1457 jj_consume_token(COLON);
1458 expr3 = ConditionalExpression();
1461 jj_la1[29] = jj_gen;
1464 if (expr3 == null) {
1465 {if (true) return expr;}
1467 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1468 throw new Error("Missing return statement in function");
1471 static final public Expression ConditionalOrExpression() throws ParseException {
1472 Expression expr,expr2;
1474 expr = ConditionalAndExpression();
1477 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1483 jj_la1[30] = jj_gen;
1486 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1488 jj_consume_token(OR_OR);
1489 operator = OperatorIds.OR_OR;
1492 jj_consume_token(_ORL);
1493 operator = OperatorIds.ORL;
1496 jj_la1[31] = jj_gen;
1497 jj_consume_token(-1);
1498 throw new ParseException();
1500 expr2 = ConditionalAndExpression();
1501 expr = new BinaryExpression(expr,expr2,operator);
1503 {if (true) return expr;}
1504 throw new Error("Missing return statement in function");
1507 static final public Expression ConditionalAndExpression() throws ParseException {
1508 Expression expr,expr2;
1510 expr = ConcatExpression();
1513 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1519 jj_la1[32] = jj_gen;
1522 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1524 jj_consume_token(AND_AND);
1525 operator = OperatorIds.AND_AND;
1528 jj_consume_token(_ANDL);
1529 operator = OperatorIds.ANDL;
1532 jj_la1[33] = jj_gen;
1533 jj_consume_token(-1);
1534 throw new ParseException();
1536 expr2 = ConcatExpression();
1537 expr = new BinaryExpression(expr,expr2,operator);
1539 {if (true) return expr;}
1540 throw new Error("Missing return statement in function");
1543 static final public Expression ConcatExpression() throws ParseException {
1544 Expression expr,expr2;
1545 expr = InclusiveOrExpression();
1548 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1553 jj_la1[34] = jj_gen;
1556 jj_consume_token(DOT);
1557 expr2 = InclusiveOrExpression();
1558 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1560 {if (true) return expr;}
1561 throw new Error("Missing return statement in function");
1564 static final public Expression InclusiveOrExpression() throws ParseException {
1565 Expression expr,expr2;
1566 expr = ExclusiveOrExpression();
1569 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1574 jj_la1[35] = jj_gen;
1577 jj_consume_token(BIT_OR);
1578 expr2 = ExclusiveOrExpression();
1579 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1581 {if (true) return expr;}
1582 throw new Error("Missing return statement in function");
1585 static final public Expression ExclusiveOrExpression() throws ParseException {
1586 Expression expr,expr2;
1587 expr = AndExpression();
1590 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1595 jj_la1[36] = jj_gen;
1598 jj_consume_token(XOR);
1599 expr2 = AndExpression();
1600 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1602 {if (true) return expr;}
1603 throw new Error("Missing return statement in function");
1606 static final public Expression AndExpression() throws ParseException {
1607 Expression expr,expr2;
1608 expr = EqualityExpression();
1611 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1616 jj_la1[37] = jj_gen;
1619 jj_consume_token(BIT_AND);
1620 expr2 = EqualityExpression();
1621 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1623 {if (true) return expr;}
1624 throw new Error("Missing return statement in function");
1627 static final public Expression EqualityExpression() throws ParseException {
1628 Expression expr,expr2;
1630 expr = RelationalExpression();
1633 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1637 case BANGDOUBLEEQUAL:
1642 jj_la1[38] = jj_gen;
1645 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1647 jj_consume_token(EQUAL_EQUAL);
1648 operator = OperatorIds.EQUAL_EQUAL;
1651 jj_consume_token(DIF);
1652 operator = OperatorIds.DIF;
1655 jj_consume_token(NOT_EQUAL);
1656 operator = OperatorIds.DIF;
1658 case BANGDOUBLEEQUAL:
1659 jj_consume_token(BANGDOUBLEEQUAL);
1660 operator = OperatorIds.BANG_EQUAL_EQUAL;
1663 jj_consume_token(TRIPLEEQUAL);
1664 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1667 jj_la1[39] = jj_gen;
1668 jj_consume_token(-1);
1669 throw new ParseException();
1672 expr2 = RelationalExpression();
1673 } catch (ParseException e) {
1674 if (errorMessage != null) {
1675 {if (true) throw e;}
1677 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1679 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1680 errorEnd = jj_input_stream.getPosition() + 1;
1681 {if (true) throw e;}
1683 expr = new BinaryExpression(expr,expr2,operator);
1685 {if (true) return expr;}
1686 throw new Error("Missing return statement in function");
1689 static final public Expression RelationalExpression() throws ParseException {
1690 Expression expr,expr2;
1692 expr = ShiftExpression();
1695 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1703 jj_la1[40] = jj_gen;
1706 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1708 jj_consume_token(LT);
1709 operator = OperatorIds.LESS;
1712 jj_consume_token(GT);
1713 operator = OperatorIds.GREATER;
1716 jj_consume_token(LE);
1717 operator = OperatorIds.LESS_EQUAL;
1720 jj_consume_token(GE);
1721 operator = OperatorIds.GREATER_EQUAL;
1724 jj_la1[41] = jj_gen;
1725 jj_consume_token(-1);
1726 throw new ParseException();
1728 expr2 = ShiftExpression();
1729 expr = new BinaryExpression(expr,expr2,operator);
1731 {if (true) return expr;}
1732 throw new Error("Missing return statement in function");
1735 static final public Expression ShiftExpression() throws ParseException {
1736 Expression expr,expr2;
1738 expr = AdditiveExpression();
1741 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1744 case RUNSIGNEDSHIFT:
1748 jj_la1[42] = jj_gen;
1751 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1753 jj_consume_token(LSHIFT);
1754 operator = OperatorIds.LEFT_SHIFT;
1757 jj_consume_token(RSIGNEDSHIFT);
1758 operator = OperatorIds.RIGHT_SHIFT;
1760 case RUNSIGNEDSHIFT:
1761 jj_consume_token(RUNSIGNEDSHIFT);
1762 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1765 jj_la1[43] = jj_gen;
1766 jj_consume_token(-1);
1767 throw new ParseException();
1769 expr2 = AdditiveExpression();
1770 expr = new BinaryExpression(expr,expr2,operator);
1772 {if (true) return expr;}
1773 throw new Error("Missing return statement in function");
1776 static final public Expression AdditiveExpression() throws ParseException {
1777 Expression expr,expr2;
1779 expr = MultiplicativeExpression();
1782 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1788 jj_la1[44] = jj_gen;
1791 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1793 jj_consume_token(PLUS);
1794 operator = OperatorIds.PLUS;
1797 jj_consume_token(MINUS);
1798 operator = OperatorIds.MINUS;
1801 jj_la1[45] = jj_gen;
1802 jj_consume_token(-1);
1803 throw new ParseException();
1805 expr2 = MultiplicativeExpression();
1806 expr = new BinaryExpression(expr,expr2,operator);
1808 {if (true) return expr;}
1809 throw new Error("Missing return statement in function");
1812 static final public Expression MultiplicativeExpression() throws ParseException {
1813 Expression expr,expr2;
1816 expr = UnaryExpression();
1817 } catch (ParseException e) {
1818 if (errorMessage != null) {
1819 {if (true) throw e;}
1821 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1823 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
1824 errorEnd = jj_input_stream.getPosition() + 1;
1825 {if (true) throw e;}
1829 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1836 jj_la1[46] = jj_gen;
1839 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1841 jj_consume_token(STAR);
1842 operator = OperatorIds.MULTIPLY;
1845 jj_consume_token(SLASH);
1846 operator = OperatorIds.DIVIDE;
1849 jj_consume_token(REMAINDER);
1850 operator = OperatorIds.REMAINDER;
1853 jj_la1[47] = jj_gen;
1854 jj_consume_token(-1);
1855 throw new ParseException();
1857 expr2 = UnaryExpression();
1858 expr = new BinaryExpression(expr,expr2,operator);
1860 {if (true) return expr;}
1861 throw new Error("Missing return statement in function");
1865 * An unary expression starting with @, & or nothing
1867 static final public Expression UnaryExpression() throws ParseException {
1869 final int pos = SimpleCharStream.getPosition();
1870 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1872 jj_consume_token(BIT_AND);
1873 expr = UnaryExpressionNoPrefix();
1874 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1888 case INTEGER_LITERAL:
1889 case FLOATING_POINT_LITERAL:
1890 case STRING_LITERAL:
1894 expr = AtUnaryExpression();
1895 {if (true) return expr;}
1898 jj_la1[48] = jj_gen;
1899 jj_consume_token(-1);
1900 throw new ParseException();
1902 throw new Error("Missing return statement in function");
1905 static final public Expression AtUnaryExpression() throws ParseException {
1907 final int pos = SimpleCharStream.getPosition();
1908 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1910 jj_consume_token(AT);
1911 expr = AtUnaryExpression();
1912 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1925 case INTEGER_LITERAL:
1926 case FLOATING_POINT_LITERAL:
1927 case STRING_LITERAL:
1931 expr = UnaryExpressionNoPrefix();
1932 {if (true) return expr;}
1935 jj_la1[49] = jj_gen;
1936 jj_consume_token(-1);
1937 throw new ParseException();
1939 throw new Error("Missing return statement in function");
1942 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1945 final int pos = SimpleCharStream.getPosition();
1946 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1949 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1951 jj_consume_token(PLUS);
1952 operator = OperatorIds.PLUS;
1955 jj_consume_token(MINUS);
1956 operator = OperatorIds.MINUS;
1959 jj_la1[50] = jj_gen;
1960 jj_consume_token(-1);
1961 throw new ParseException();
1963 expr = UnaryExpression();
1964 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1968 expr = PreIncDecExpression();
1969 {if (true) return expr;}
1978 case INTEGER_LITERAL:
1979 case FLOATING_POINT_LITERAL:
1980 case STRING_LITERAL:
1984 expr = UnaryExpressionNotPlusMinus();
1985 {if (true) return expr;}
1988 jj_la1[51] = jj_gen;
1989 jj_consume_token(-1);
1990 throw new ParseException();
1992 throw new Error("Missing return statement in function");
1995 static final public Expression PreIncDecExpression() throws ParseException {
1996 final Expression expr;
1998 final int pos = SimpleCharStream.getPosition();
1999 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2001 jj_consume_token(INCR);
2002 operator = OperatorIds.PLUS_PLUS;
2005 jj_consume_token(DECR);
2006 operator = OperatorIds.MINUS_MINUS;
2009 jj_la1[52] = jj_gen;
2010 jj_consume_token(-1);
2011 throw new ParseException();
2013 expr = PrimaryExpression();
2014 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
2015 throw new Error("Missing return statement in function");
2018 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
2020 final int pos = SimpleCharStream.getPosition();
2021 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2023 jj_consume_token(BANG);
2024 expr = UnaryExpression();
2025 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
2028 jj_la1[53] = jj_gen;
2029 if (jj_2_4(2147483647)) {
2030 expr = CastExpression();
2031 {if (true) return expr;}
2033 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2039 expr = PostfixExpression();
2040 {if (true) return expr;}
2045 case INTEGER_LITERAL:
2046 case FLOATING_POINT_LITERAL:
2047 case STRING_LITERAL:
2049 {if (true) return expr;}
2052 jj_consume_token(LPAREN);
2053 expr = Expression();
2055 jj_consume_token(RPAREN);
2056 } catch (ParseException e) {
2057 errorMessage = "')' expected";
2059 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2060 errorEnd = jj_input_stream.getPosition() + 1;
2061 {if (true) throw e;}
2063 {if (true) return expr;}
2066 jj_la1[54] = jj_gen;
2067 jj_consume_token(-1);
2068 throw new ParseException();
2072 throw new Error("Missing return statement in function");
2075 static final public CastExpression CastExpression() throws ParseException {
2076 final ConstantIdentifier type;
2077 final Expression expr;
2078 final int pos = SimpleCharStream.getPosition();
2079 jj_consume_token(LPAREN);
2080 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2093 jj_consume_token(ARRAY);
2094 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
2097 jj_la1[55] = jj_gen;
2098 jj_consume_token(-1);
2099 throw new ParseException();
2101 jj_consume_token(RPAREN);
2102 expr = UnaryExpression();
2103 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2104 throw new Error("Missing return statement in function");
2107 static final public Expression PostfixExpression() throws ParseException {
2110 final int pos = SimpleCharStream.getPosition();
2111 expr = PrimaryExpression();
2112 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2115 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2117 jj_consume_token(INCR);
2118 operator = OperatorIds.PLUS_PLUS;
2121 jj_consume_token(DECR);
2122 operator = OperatorIds.MINUS_MINUS;
2125 jj_la1[56] = jj_gen;
2126 jj_consume_token(-1);
2127 throw new ParseException();
2131 jj_la1[57] = jj_gen;
2134 if (operator == -1) {
2135 {if (true) return expr;}
2137 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2138 throw new Error("Missing return statement in function");
2141 static final public Expression PrimaryExpression() throws ParseException {
2142 final Token identifier;
2144 final StringBuffer buff = new StringBuffer();
2145 final int pos = SimpleCharStream.getPosition();
2147 identifier = jj_consume_token(IDENTIFIER);
2148 jj_consume_token(STATICCLASSACCESS);
2149 expr = ClassIdentifier();
2150 expr = new ClassAccess(new ConstantIdentifier(identifier.image.toCharArray(),
2152 SimpleCharStream.getPosition()),
2154 ClassAccess.STATIC);
2157 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2164 jj_la1[58] = jj_gen;
2167 expr = PrimarySuffix(expr);
2169 {if (true) return expr;}
2171 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2176 expr = PrimaryPrefix();
2179 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2186 jj_la1[59] = jj_gen;
2189 expr = PrimarySuffix(expr);
2191 {if (true) return expr;}
2194 expr = ArrayDeclarator();
2195 {if (true) return expr;}
2198 jj_la1[60] = jj_gen;
2199 jj_consume_token(-1);
2200 throw new ParseException();
2203 throw new Error("Missing return statement in function");
2206 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2207 final ArrayVariableDeclaration[] vars;
2208 final int pos = SimpleCharStream.getPosition();
2209 jj_consume_token(ARRAY);
2210 vars = ArrayInitializer();
2211 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2212 throw new Error("Missing return statement in function");
2215 static final public Expression PrimaryPrefix() throws ParseException {
2216 final Expression expr;
2219 final int pos = SimpleCharStream.getPosition();
2220 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2222 token = jj_consume_token(IDENTIFIER);
2223 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2225 SimpleCharStream.getPosition());}
2228 jj_consume_token(NEW);
2229 expr = ClassIdentifier();
2230 {if (true) return new PrefixedUnaryExpression(expr,
2236 var = VariableDeclaratorId();
2237 {if (true) return new ConstantIdentifier(var.toCharArray(),
2239 SimpleCharStream.getPosition());}
2242 jj_la1[61] = jj_gen;
2243 jj_consume_token(-1);
2244 throw new ParseException();
2246 throw new Error("Missing return statement in function");
2249 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2251 final StringBuffer buff;
2252 final int pos = SimpleCharStream.getPosition();
2253 jj_consume_token(NEW);
2254 expr = ClassIdentifier();
2255 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2261 buff = new StringBuffer(expr.toStringExpression());
2262 expr = PrimaryExpression();
2263 buff.append(expr.toStringExpression());
2264 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2266 SimpleCharStream.getPosition());
2269 jj_la1[62] = jj_gen;
2272 {if (true) return new PrefixedUnaryExpression(expr,
2275 throw new Error("Missing return statement in function");
2278 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2281 final int pos = SimpleCharStream.getPosition();
2282 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2284 token = jj_consume_token(IDENTIFIER);
2285 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2287 SimpleCharStream.getPosition());}
2291 expr = VariableDeclaratorId();
2292 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2294 SimpleCharStream.getPosition());}
2297 jj_la1[63] = jj_gen;
2298 jj_consume_token(-1);
2299 throw new ParseException();
2301 throw new Error("Missing return statement in function");
2304 static final public AbstractSuffixExpression PrimarySuffix(Expression prefix) throws ParseException {
2305 final AbstractSuffixExpression expr;
2306 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2308 expr = Arguments(prefix);
2309 {if (true) return expr;}
2313 expr = VariableSuffix(prefix);
2314 {if (true) return expr;}
2317 jj_la1[64] = jj_gen;
2318 jj_consume_token(-1);
2319 throw new ParseException();
2321 throw new Error("Missing return statement in function");
2324 static final public AbstractSuffixExpression VariableSuffix(Expression prefix) throws ParseException {
2326 final int pos = SimpleCharStream.getPosition();
2327 Expression expression = null;
2328 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2330 jj_consume_token(CLASSACCESS);
2332 expr = VariableName();
2333 } catch (ParseException e) {
2334 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2336 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2337 errorEnd = jj_input_stream.getPosition() + 1;
2338 {if (true) throw e;}
2340 {if (true) return new ClassAccess(prefix,
2341 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2342 ClassAccess.NORMAL);}
2345 jj_consume_token(LBRACKET);
2346 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2371 case INTEGER_LITERAL:
2372 case FLOATING_POINT_LITERAL:
2373 case STRING_LITERAL:
2377 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2393 case INTEGER_LITERAL:
2394 case FLOATING_POINT_LITERAL:
2395 case STRING_LITERAL:
2399 expression = Expression();
2410 expression = Type();
2413 jj_la1[65] = jj_gen;
2414 jj_consume_token(-1);
2415 throw new ParseException();
2419 jj_la1[66] = jj_gen;
2423 jj_consume_token(RBRACKET);
2424 } catch (ParseException e) {
2425 errorMessage = "']' expected";
2427 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2428 errorEnd = jj_input_stream.getPosition() + 1;
2429 {if (true) throw e;}
2431 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2434 jj_la1[67] = jj_gen;
2435 jj_consume_token(-1);
2436 throw new ParseException();
2438 throw new Error("Missing return statement in function");
2441 static final public Literal Literal() throws ParseException {
2444 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2445 case INTEGER_LITERAL:
2446 token = jj_consume_token(INTEGER_LITERAL);
2447 pos = SimpleCharStream.getPosition();
2448 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2450 case FLOATING_POINT_LITERAL:
2451 token = jj_consume_token(FLOATING_POINT_LITERAL);
2452 pos = SimpleCharStream.getPosition();
2453 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2455 case STRING_LITERAL:
2456 token = jj_consume_token(STRING_LITERAL);
2457 pos = SimpleCharStream.getPosition();
2458 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2461 jj_consume_token(TRUE);
2462 pos = SimpleCharStream.getPosition();
2463 {if (true) return new TrueLiteral(pos-4,pos);}
2466 jj_consume_token(FALSE);
2467 pos = SimpleCharStream.getPosition();
2468 {if (true) return new FalseLiteral(pos-4,pos);}
2471 jj_consume_token(NULL);
2472 pos = SimpleCharStream.getPosition();
2473 {if (true) return new NullLiteral(pos-4,pos);}
2476 jj_la1[68] = jj_gen;
2477 jj_consume_token(-1);
2478 throw new ParseException();
2480 throw new Error("Missing return statement in function");
2483 static final public FunctionCall Arguments(Expression func) throws ParseException {
2484 ArgumentDeclaration[] args = null;
2485 jj_consume_token(LPAREN);
2486 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2490 args = ArgumentList();
2493 jj_la1[69] = jj_gen;
2497 jj_consume_token(RPAREN);
2498 } catch (ParseException e) {
2499 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2501 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2502 errorEnd = jj_input_stream.getPosition() + 1;
2503 {if (true) throw e;}
2505 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2506 throw new Error("Missing return statement in function");
2509 static final public ArgumentDeclaration[] ArgumentList() throws ParseException {
2510 ArgumentDeclaration arg;
2511 final ArrayList list = new ArrayList();
2512 ArgumentDeclaration argument;
2513 arg = argumentDeclaration();
2517 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2522 jj_la1[70] = jj_gen;
2525 jj_consume_token(COMMA);
2527 arg = argumentDeclaration();
2529 } catch (ParseException e) {
2530 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2532 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2533 errorEnd = jj_input_stream.getPosition() + 1;
2534 {if (true) throw e;}
2537 ArgumentDeclaration[] args = new ArgumentDeclaration[list.size()];
2539 {if (true) return args;}
2540 throw new Error("Missing return statement in function");
2543 static final public ArgumentDeclaration argumentDeclaration() throws ParseException {
2544 boolean reference = false;
2546 Expression initializer = null;
2547 final int pos = SimpleCharStream.getPosition();
2548 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2550 jj_consume_token(BIT_AND);
2554 jj_la1[71] = jj_gen;
2557 varName = VariableDeclaratorId();
2558 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2560 jj_consume_token(ASSIGN);
2562 initializer = VariableInitializer();
2563 } catch (ParseException e) {
2564 errorMessage = "Literal expression expected in variable initializer";
2566 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2567 errorEnd = jj_input_stream.getPosition() + 1;
2568 {if (true) throw e;}
2572 jj_la1[72] = jj_gen;
2575 if (initializer == null) {
2576 {if (true) return new ArgumentDeclaration(varName.toCharArray(),
2580 {if (true) return new ArgumentDeclaration(varName.toCharArray(),
2584 throw new Error("Missing return statement in function");
2588 * A Statement without break.
2590 static final public Statement StatementNoBreak() throws ParseException {
2591 final Statement statement;
2594 statement = Expression();
2596 jj_consume_token(SEMICOLON);
2597 } catch (ParseException e) {
2598 if (e.currentToken.next.kind != 4) {
2599 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2601 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2602 errorEnd = jj_input_stream.getPosition() + 1;
2603 {if (true) throw e;}
2606 {if (true) return statement;}
2607 } else if (jj_2_7(2)) {
2608 statement = LabeledStatement();
2609 {if (true) return statement;}
2611 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2613 statement = Block();
2614 {if (true) return statement;}
2617 statement = EmptyStatement();
2618 {if (true) return statement;}
2627 statement = StatementExpression();
2629 jj_consume_token(SEMICOLON);
2630 } catch (ParseException e) {
2631 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2633 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2634 errorEnd = jj_input_stream.getPosition() + 1;
2635 {if (true) throw e;}
2637 {if (true) return statement;}
2640 statement = SwitchStatement();
2641 {if (true) return statement;}
2644 statement = IfStatement();
2645 {if (true) return statement;}
2648 statement = WhileStatement();
2649 {if (true) return statement;}
2652 statement = DoStatement();
2653 {if (true) return statement;}
2656 statement = ForStatement();
2657 {if (true) return statement;}
2660 statement = ForeachStatement();
2661 {if (true) return statement;}
2664 statement = ContinueStatement();
2665 {if (true) return statement;}
2668 statement = ReturnStatement();
2669 {if (true) return statement;}
2672 statement = EchoStatement();
2673 {if (true) return statement;}
2680 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2682 token = jj_consume_token(AT);
2685 jj_la1[73] = jj_gen;
2688 statement = IncludeStatement();
2689 if (token != null) {
2690 ((InclusionStatement)statement).silent = true;
2692 {if (true) return statement;}
2695 statement = StaticStatement();
2696 {if (true) return statement;}
2699 statement = GlobalStatement();
2700 {if (true) return statement;}
2703 jj_la1[74] = jj_gen;
2704 jj_consume_token(-1);
2705 throw new ParseException();
2708 throw new Error("Missing return statement in function");
2712 * A Normal statement.
2714 static final public Statement Statement() throws ParseException {
2715 final Statement statement;
2716 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2747 case INTEGER_LITERAL:
2748 case FLOATING_POINT_LITERAL:
2749 case STRING_LITERAL:
2755 statement = StatementNoBreak();
2756 {if (true) return statement;}
2759 statement = BreakStatement();
2760 {if (true) return statement;}
2763 jj_la1[75] = jj_gen;
2764 jj_consume_token(-1);
2765 throw new ParseException();
2767 throw new Error("Missing return statement in function");
2771 * An html block inside a php syntax.
2773 static final public HTMLBlock htmlBlock() throws ParseException {
2774 final int startIndex = nodePtr;
2775 AstNode[] blockNodes;
2777 jj_consume_token(PHPEND);
2780 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2785 jj_la1[76] = jj_gen;
2791 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2793 jj_consume_token(PHPSTARTLONG);
2796 jj_consume_token(PHPSTARTSHORT);
2799 jj_la1[77] = jj_gen;
2800 jj_consume_token(-1);
2801 throw new ParseException();
2803 } catch (ParseException e) {
2804 errorMessage = "End of file unexpected, '<?php' expected";
2806 errorStart = jj_input_stream.getPosition();
2807 errorEnd = jj_input_stream.getPosition();
2808 {if (true) throw e;}
2810 nbNodes = nodePtr-startIndex;
2811 blockNodes = new AstNode[nbNodes];
2812 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2813 {if (true) return new HTMLBlock(nodes);}
2814 throw new Error("Missing return statement in function");
2818 * An include statement. It's "include" an expression;
2820 static final public InclusionStatement IncludeStatement() throws ParseException {
2821 final Expression expr;
2824 final int pos = jj_input_stream.getPosition();
2825 final InclusionStatement inclusionStatement;
2826 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2828 jj_consume_token(REQUIRE);
2829 keyword = InclusionStatement.REQUIRE;
2832 jj_consume_token(REQUIRE_ONCE);
2833 keyword = InclusionStatement.REQUIRE_ONCE;
2836 jj_consume_token(INCLUDE);
2837 keyword = InclusionStatement.INCLUDE;
2840 jj_consume_token(INCLUDE_ONCE);
2841 keyword = InclusionStatement.INCLUDE_ONCE;
2844 jj_la1[78] = jj_gen;
2845 jj_consume_token(-1);
2846 throw new ParseException();
2849 expr = Expression();
2850 } catch (ParseException e) {
2851 if (errorMessage != null) {
2852 {if (true) throw e;}
2854 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2856 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2857 errorEnd = jj_input_stream.getPosition() + 1;
2858 {if (true) throw e;}
2860 inclusionStatement = new InclusionStatement(currentSegment,
2864 currentSegment.add(inclusionStatement);
2866 jj_consume_token(SEMICOLON);
2867 } catch (ParseException e) {
2868 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2870 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2871 errorEnd = jj_input_stream.getPosition() + 1;
2872 {if (true) throw e;}
2874 {if (true) return inclusionStatement;}
2875 throw new Error("Missing return statement in function");
2878 static final public PrintExpression PrintExpression() throws ParseException {
2879 final Expression expr;
2880 final int pos = SimpleCharStream.getPosition();
2881 jj_consume_token(PRINT);
2882 expr = Expression();
2883 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2884 throw new Error("Missing return statement in function");
2887 static final public ListExpression ListExpression() throws ParseException {
2889 Expression expression = null;
2890 ArrayList list = new ArrayList();
2891 final int pos = SimpleCharStream.getPosition();
2892 jj_consume_token(LIST);
2894 jj_consume_token(LPAREN);
2895 } catch (ParseException e) {
2896 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2898 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2899 errorEnd = jj_input_stream.getPosition() + 1;
2900 {if (true) throw e;}
2902 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2905 expr = VariableDeclaratorId();
2909 jj_la1[79] = jj_gen;
2912 if (expr == null) list.add(null);
2915 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2920 jj_la1[80] = jj_gen;
2924 jj_consume_token(COMMA);
2925 } catch (ParseException e) {
2926 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2928 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2929 errorEnd = jj_input_stream.getPosition() + 1;
2930 {if (true) throw e;}
2932 expr = VariableDeclaratorId();
2936 jj_consume_token(RPAREN);
2937 } catch (ParseException e) {
2938 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2940 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
2941 errorEnd = jj_input_stream.getPosition() + 1;
2942 {if (true) throw e;}
2944 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2946 jj_consume_token(ASSIGN);
2947 expression = Expression();
2948 String[] strings = new String[list.size()];
2949 list.toArray(strings);
2950 {if (true) return new ListExpression(strings,
2953 SimpleCharStream.getPosition());}
2956 jj_la1[81] = jj_gen;
2959 String[] strings = new String[list.size()];
2960 list.toArray(strings);
2961 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2962 throw new Error("Missing return statement in function");
2966 * An echo statement.
2967 * echo anyexpression (, otherexpression)*
2969 static final public EchoStatement EchoStatement() throws ParseException {
2970 final ArrayList expressions = new ArrayList();
2972 final int pos = SimpleCharStream.getPosition();
2973 jj_consume_token(ECHO);
2974 expr = Expression();
2975 expressions.add(expr);
2978 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2983 jj_la1[82] = jj_gen;
2986 jj_consume_token(COMMA);
2987 expr = Expression();
2988 expressions.add(expr);
2991 jj_consume_token(SEMICOLON);
2992 Expression[] exprs = new Expression[expressions.size()];
2993 expressions.toArray(exprs);
2994 {if (true) return new EchoStatement(exprs,pos);}
2995 } catch (ParseException e) {
2996 if (e.currentToken.next.kind != 4) {
2997 errorMessage = "';' expected after 'echo' statement";
2999 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3000 errorEnd = jj_input_stream.getPosition() + 1;
3001 {if (true) throw e;}
3004 throw new Error("Missing return statement in function");
3007 static final public GlobalStatement GlobalStatement() throws ParseException {
3008 final int pos = jj_input_stream.getPosition();
3010 ArrayList vars = new ArrayList();
3011 GlobalStatement global;
3012 jj_consume_token(GLOBAL);
3013 expr = VariableDeclaratorId();
3017 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3022 jj_la1[83] = jj_gen;
3025 jj_consume_token(COMMA);
3026 expr = VariableDeclaratorId();
3030 jj_consume_token(SEMICOLON);
3031 String[] strings = new String[vars.size()];
3032 vars.toArray(strings);
3033 global = new GlobalStatement(currentSegment,
3036 SimpleCharStream.getPosition());
3037 currentSegment.add(global);
3038 {if (true) return global;}
3039 } catch (ParseException e) {
3040 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3042 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3043 errorEnd = jj_input_stream.getPosition() + 1;
3044 {if (true) throw e;}
3046 throw new Error("Missing return statement in function");
3049 static final public StaticStatement StaticStatement() throws ParseException {
3050 final int pos = SimpleCharStream.getPosition();
3051 final ArrayList vars = new ArrayList();
3052 VariableDeclaration expr;
3053 jj_consume_token(STATIC);
3054 expr = VariableDeclarator();
3055 vars.add(new String(expr.name));
3058 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3063 jj_la1[84] = jj_gen;
3066 jj_consume_token(COMMA);
3067 expr = VariableDeclarator();
3068 vars.add(new String(expr.name));
3071 jj_consume_token(SEMICOLON);
3072 String[] strings = new String[vars.size()];
3073 vars.toArray(strings);
3074 {if (true) return new StaticStatement(strings,
3076 SimpleCharStream.getPosition());}
3077 } catch (ParseException e) {
3078 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3080 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3081 errorEnd = jj_input_stream.getPosition() + 1;
3082 {if (true) throw e;}
3084 throw new Error("Missing return statement in function");
3087 static final public LabeledStatement LabeledStatement() throws ParseException {
3088 final int pos = SimpleCharStream.getPosition();
3090 final Statement statement;
3091 label = jj_consume_token(IDENTIFIER);
3092 jj_consume_token(COLON);
3093 statement = Statement();
3094 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
3095 throw new Error("Missing return statement in function");
3105 static final public Block Block() throws ParseException {
3106 final int pos = SimpleCharStream.getPosition();
3107 final ArrayList list = new ArrayList();
3108 Statement statement;
3110 jj_consume_token(LBRACE);
3111 } catch (ParseException e) {
3112 errorMessage = "'{' expected";
3114 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3115 errorEnd = jj_input_stream.getPosition() + 1;
3116 {if (true) throw e;}
3120 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3155 case INTEGER_LITERAL:
3156 case FLOATING_POINT_LITERAL:
3157 case STRING_LITERAL:
3166 jj_la1[85] = jj_gen;
3169 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3203 case INTEGER_LITERAL:
3204 case FLOATING_POINT_LITERAL:
3205 case STRING_LITERAL:
3211 statement = BlockStatement();
3212 list.add(statement);
3215 statement = htmlBlock();
3216 list.add(statement);
3219 jj_la1[86] = jj_gen;
3220 jj_consume_token(-1);
3221 throw new ParseException();
3225 jj_consume_token(RBRACE);
3226 } catch (ParseException e) {
3227 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3229 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3230 errorEnd = jj_input_stream.getPosition() + 1;
3231 {if (true) throw e;}
3233 Statement[] statements = new Statement[list.size()];
3234 list.toArray(statements);
3235 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3236 throw new Error("Missing return statement in function");
3239 static final public Statement BlockStatement() throws ParseException {
3240 final Statement statement;
3241 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3273 case INTEGER_LITERAL:
3274 case FLOATING_POINT_LITERAL:
3275 case STRING_LITERAL:
3281 statement = Statement();
3282 {if (true) return statement;}
3285 statement = ClassDeclaration();
3286 {if (true) return statement;}
3289 statement = MethodDeclaration();
3290 {if (true) return statement;}
3293 jj_la1[87] = jj_gen;
3294 jj_consume_token(-1);
3295 throw new ParseException();
3297 throw new Error("Missing return statement in function");
3301 * A Block statement that will not contain any 'break'
3303 static final public Statement BlockStatementNoBreak() throws ParseException {
3304 final Statement statement;
3305 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3336 case INTEGER_LITERAL:
3337 case FLOATING_POINT_LITERAL:
3338 case STRING_LITERAL:
3344 statement = StatementNoBreak();
3345 {if (true) return statement;}
3348 statement = ClassDeclaration();
3349 {if (true) return statement;}
3352 statement = MethodDeclaration();
3353 {if (true) return statement;}
3356 jj_la1[88] = jj_gen;
3357 jj_consume_token(-1);
3358 throw new ParseException();
3360 throw new Error("Missing return statement in function");
3363 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3364 final ArrayList list = new ArrayList();
3365 VariableDeclaration var;
3366 var = LocalVariableDeclarator();
3370 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3375 jj_la1[89] = jj_gen;
3378 jj_consume_token(COMMA);
3379 var = LocalVariableDeclarator();
3382 VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3384 {if (true) return vars;}
3385 throw new Error("Missing return statement in function");
3388 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3389 final String varName;
3390 Expression initializer = null;
3391 final int pos = SimpleCharStream.getPosition();
3392 varName = VariableDeclaratorId();
3393 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3395 jj_consume_token(ASSIGN);
3396 initializer = Expression();
3399 jj_la1[90] = jj_gen;
3402 if (initializer == null) {
3403 {if (true) return new VariableDeclaration(currentSegment,
3404 varName.toCharArray(),
3406 jj_input_stream.getPosition());}
3408 {if (true) return new VariableDeclaration(currentSegment,
3409 varName.toCharArray(),
3412 throw new Error("Missing return statement in function");
3415 static final public EmptyStatement EmptyStatement() throws ParseException {
3417 jj_consume_token(SEMICOLON);
3418 pos = SimpleCharStream.getPosition();
3419 {if (true) return new EmptyStatement(pos-1,pos);}
3420 throw new Error("Missing return statement in function");
3423 static final public Statement StatementExpression() throws ParseException {
3424 Expression expr,expr2;
3426 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3429 expr = PreIncDecExpression();
3430 {if (true) return expr;}
3437 expr = PrimaryExpression();
3438 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3453 case RSIGNEDSHIFTASSIGN:
3454 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3456 jj_consume_token(INCR);
3457 {if (true) return new PostfixedUnaryExpression(expr,
3458 OperatorIds.PLUS_PLUS,
3459 SimpleCharStream.getPosition());}
3462 jj_consume_token(DECR);
3463 {if (true) return new PostfixedUnaryExpression(expr,
3464 OperatorIds.MINUS_MINUS,
3465 SimpleCharStream.getPosition());}
3479 case RSIGNEDSHIFTASSIGN:
3480 operator = AssignmentOperator();
3481 expr2 = Expression();
3482 {if (true) return new BinaryExpression(expr,expr2,operator);}
3485 jj_la1[91] = jj_gen;
3486 jj_consume_token(-1);
3487 throw new ParseException();
3491 jj_la1[92] = jj_gen;
3494 {if (true) return expr;}
3497 jj_la1[93] = jj_gen;
3498 jj_consume_token(-1);
3499 throw new ParseException();
3501 throw new Error("Missing return statement in function");
3504 static final public SwitchStatement SwitchStatement() throws ParseException {
3505 final Expression variable;
3506 final AbstractCase[] cases;
3507 final int pos = SimpleCharStream.getPosition();
3508 jj_consume_token(SWITCH);
3510 jj_consume_token(LPAREN);
3511 } catch (ParseException e) {
3512 errorMessage = "'(' expected after 'switch'";
3514 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3515 errorEnd = jj_input_stream.getPosition() + 1;
3516 {if (true) throw e;}
3519 variable = Expression();
3520 } catch (ParseException e) {
3521 if (errorMessage != null) {
3522 {if (true) throw e;}
3524 errorMessage = "expression expected";
3526 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3527 errorEnd = jj_input_stream.getPosition() + 1;
3528 {if (true) throw e;}
3531 jj_consume_token(RPAREN);
3532 } catch (ParseException e) {
3533 errorMessage = "')' expected";
3535 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3536 errorEnd = jj_input_stream.getPosition() + 1;
3537 {if (true) throw e;}
3539 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3541 cases = switchStatementBrace();
3544 cases = switchStatementColon(pos, pos + 6);
3547 jj_la1[94] = jj_gen;
3548 jj_consume_token(-1);
3549 throw new ParseException();
3551 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3552 throw new Error("Missing return statement in function");
3555 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3557 final ArrayList cases = new ArrayList();
3558 jj_consume_token(LBRACE);
3561 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3567 jj_la1[95] = jj_gen;
3570 cas = switchLabel0();
3574 jj_consume_token(RBRACE);
3575 AbstractCase[] abcase = new AbstractCase[cases.size()];
3576 cases.toArray(abcase);
3577 {if (true) return abcase;}
3578 } catch (ParseException e) {
3579 errorMessage = "'}' expected";
3581 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3582 errorEnd = jj_input_stream.getPosition() + 1;
3583 {if (true) throw e;}
3585 throw new Error("Missing return statement in function");
3589 * A Switch statement with : ... endswitch;
3590 * @param start the begin offset of the switch
3591 * @param end the end offset of the switch
3593 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3595 final ArrayList cases = new ArrayList();
3596 jj_consume_token(COLON);
3598 setMarker(fileToParse,
3599 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3603 "Line " + token.beginLine);
3604 } catch (CoreException e) {
3605 PHPeclipsePlugin.log(e);
3609 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3615 jj_la1[96] = jj_gen;
3618 cas = switchLabel0();
3622 jj_consume_token(ENDSWITCH);
3623 } catch (ParseException e) {
3624 errorMessage = "'endswitch' expected";
3626 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3627 errorEnd = jj_input_stream.getPosition() + 1;
3628 {if (true) throw e;}
3631 jj_consume_token(SEMICOLON);
3632 AbstractCase[] abcase = new AbstractCase[cases.size()];
3633 cases.toArray(abcase);
3634 {if (true) return abcase;}
3635 } catch (ParseException e) {
3636 errorMessage = "';' expected after 'endswitch' keyword";
3638 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3639 errorEnd = jj_input_stream.getPosition() + 1;
3640 {if (true) throw e;}
3642 throw new Error("Missing return statement in function");
3645 static final public AbstractCase switchLabel0() throws ParseException {
3646 final Expression expr;
3647 Statement statement;
3648 final ArrayList stmts = new ArrayList();
3649 final int pos = SimpleCharStream.getPosition();
3650 expr = SwitchLabel();
3653 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3687 case INTEGER_LITERAL:
3688 case FLOATING_POINT_LITERAL:
3689 case STRING_LITERAL:
3698 jj_la1[97] = jj_gen;
3701 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3734 case INTEGER_LITERAL:
3735 case FLOATING_POINT_LITERAL:
3736 case STRING_LITERAL:
3742 statement = BlockStatementNoBreak();
3743 stmts.add(statement);
3746 statement = htmlBlock();
3747 stmts.add(statement);
3750 jj_la1[98] = jj_gen;
3751 jj_consume_token(-1);
3752 throw new ParseException();
3755 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3757 statement = BreakStatement();
3758 stmts.add(statement);
3761 jj_la1[99] = jj_gen;
3764 Statement[] stmtsArray = new Statement[stmts.size()];
3765 stmts.toArray(stmtsArray);
3766 if (expr == null) {//it's a default
3767 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3769 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3770 throw new Error("Missing return statement in function");
3775 * case Expression() :
3777 * @return the if it was a case and null if not
3779 static final public Expression SwitchLabel() throws ParseException {
3781 final Expression expr;
3782 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3784 token = jj_consume_token(CASE);
3786 expr = Expression();
3787 } catch (ParseException e) {
3788 if (errorMessage != null) {if (true) throw e;}
3789 errorMessage = "expression expected after 'case' keyword";
3791 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3792 errorEnd = jj_input_stream.getPosition() + 1;
3793 {if (true) throw e;}
3796 jj_consume_token(COLON);
3797 {if (true) return expr;}
3798 } catch (ParseException e) {
3799 errorMessage = "':' expected after case expression";
3801 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3802 errorEnd = jj_input_stream.getPosition() + 1;
3803 {if (true) throw e;}
3807 token = jj_consume_token(_DEFAULT);
3809 jj_consume_token(COLON);
3810 {if (true) return null;}
3811 } catch (ParseException e) {
3812 errorMessage = "':' expected after 'default' keyword";
3814 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3815 errorEnd = jj_input_stream.getPosition() + 1;
3816 {if (true) throw e;}
3820 jj_la1[100] = jj_gen;
3821 jj_consume_token(-1);
3822 throw new ParseException();
3824 throw new Error("Missing return statement in function");
3827 static final public Break BreakStatement() throws ParseException {
3828 Expression expression = null;
3829 final int start = SimpleCharStream.getPosition();
3830 jj_consume_token(BREAK);
3831 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3847 case INTEGER_LITERAL:
3848 case FLOATING_POINT_LITERAL:
3849 case STRING_LITERAL:
3853 expression = Expression();
3856 jj_la1[101] = jj_gen;
3860 jj_consume_token(SEMICOLON);
3861 } catch (ParseException e) {
3862 errorMessage = "';' expected after 'break' keyword";
3864 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3865 errorEnd = jj_input_stream.getPosition() + 1;
3866 {if (true) throw e;}
3868 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3869 throw new Error("Missing return statement in function");
3872 static final public IfStatement IfStatement() throws ParseException {
3873 final int pos = jj_input_stream.getPosition();
3874 Expression condition;
3875 IfStatement ifStatement;
3876 jj_consume_token(IF);
3877 condition = Condition("if");
3878 ifStatement = IfStatement0(condition, pos,pos+2);
3879 {if (true) return ifStatement;}
3880 throw new Error("Missing return statement in function");
3883 static final public Expression Condition(final String keyword) throws ParseException {
3884 final Expression condition;
3886 jj_consume_token(LPAREN);
3887 } catch (ParseException e) {
3888 errorMessage = "'(' expected after " + keyword + " keyword";
3890 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length();
3891 errorEnd = errorStart +1;
3892 processParseException(e);
3894 condition = Expression();
3896 jj_consume_token(RPAREN);
3897 {if (true) return condition;}
3898 } catch (ParseException e) {
3899 errorMessage = "')' expected after " + keyword + " keyword";
3901 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
3902 errorEnd = jj_input_stream.getPosition() + 1;
3903 {if (true) throw e;}
3905 throw new Error("Missing return statement in function");
3908 static final public IfStatement IfStatement0(Expression condition, final int start,final int end) throws ParseException {
3909 Statement statement;
3911 final Statement[] statementsArray;
3912 ElseIf elseifStatement;
3913 Else elseStatement = null;
3915 final ArrayList elseIfList = new ArrayList();
3917 int pos = SimpleCharStream.getPosition();
3919 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3921 jj_consume_token(COLON);
3922 stmts = new ArrayList();
3925 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3958 case INTEGER_LITERAL:
3959 case FLOATING_POINT_LITERAL:
3960 case STRING_LITERAL:
3969 jj_la1[102] = jj_gen;
3972 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4004 case INTEGER_LITERAL:
4005 case FLOATING_POINT_LITERAL:
4006 case STRING_LITERAL:
4012 statement = Statement();
4013 stmts.add(statement);
4016 statement = htmlBlock();
4017 stmts.add(statement);
4020 jj_la1[103] = jj_gen;
4021 jj_consume_token(-1);
4022 throw new ParseException();
4025 endStatements = SimpleCharStream.getPosition();
4028 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4033 jj_la1[104] = jj_gen;
4036 elseifStatement = ElseIfStatementColon();
4037 elseIfList.add(elseifStatement);
4039 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4041 elseStatement = ElseStatementColon();
4044 jj_la1[105] = jj_gen;
4048 setMarker(fileToParse,
4049 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
4053 "Line " + token.beginLine);
4054 } catch (CoreException e) {
4055 PHPeclipsePlugin.log(e);
4058 jj_consume_token(ENDIF);
4059 } catch (ParseException e) {
4060 errorMessage = "'endif' expected";
4062 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4063 errorEnd = jj_input_stream.getPosition() + 1;
4064 {if (true) throw e;}
4067 jj_consume_token(SEMICOLON);
4068 } catch (ParseException e) {
4069 errorMessage = "';' expected after 'endif' keyword";
4071 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4072 errorEnd = jj_input_stream.getPosition() + 1;
4073 {if (true) throw e;}
4075 elseIfs = new ElseIf[elseIfList.size()];
4076 elseIfList.toArray(elseIfs);
4077 if (stmts.size() == 1) {
4078 {if (true) return new IfStatement(condition,
4079 (Statement) stmts.get(0),
4083 SimpleCharStream.getPosition());}
4085 statementsArray = new Statement[stmts.size()];
4086 stmts.toArray(statementsArray);
4087 {if (true) return new IfStatement(condition,
4088 new Block(statementsArray,pos,endStatements),
4092 SimpleCharStream.getPosition());}
4127 case INTEGER_LITERAL:
4128 case FLOATING_POINT_LITERAL:
4129 case STRING_LITERAL:
4135 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4167 case INTEGER_LITERAL:
4168 case FLOATING_POINT_LITERAL:
4169 case STRING_LITERAL:
4181 jj_la1[106] = jj_gen;
4182 jj_consume_token(-1);
4183 throw new ParseException();
4187 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4192 jj_la1[107] = jj_gen;
4195 elseifStatement = ElseIfStatement();
4196 elseIfList.add(elseifStatement);
4198 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4200 jj_consume_token(ELSE);
4202 pos = SimpleCharStream.getPosition();
4203 statement = Statement();
4204 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4205 } catch (ParseException e) {
4206 if (errorMessage != null) {
4207 {if (true) throw e;}
4209 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4211 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4212 errorEnd = jj_input_stream.getPosition() + 1;
4213 {if (true) throw e;}
4217 jj_la1[108] = jj_gen;
4220 elseIfs = new ElseIf[elseIfList.size()];
4221 elseIfList.toArray(elseIfs);
4222 {if (true) return new IfStatement(condition,
4227 SimpleCharStream.getPosition());}
4230 jj_la1[109] = jj_gen;
4231 jj_consume_token(-1);
4232 throw new ParseException();
4234 throw new Error("Missing return statement in function");
4237 static final public ElseIf ElseIfStatementColon() throws ParseException {
4238 Expression condition;
4239 Statement statement;
4240 final ArrayList list = new ArrayList();
4241 final int pos = SimpleCharStream.getPosition();
4242 jj_consume_token(ELSEIF);
4243 condition = Condition("elseif");
4244 jj_consume_token(COLON);
4247 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4280 case INTEGER_LITERAL:
4281 case FLOATING_POINT_LITERAL:
4282 case STRING_LITERAL:
4291 jj_la1[110] = jj_gen;
4294 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4326 case INTEGER_LITERAL:
4327 case FLOATING_POINT_LITERAL:
4328 case STRING_LITERAL:
4334 statement = Statement();
4335 list.add(statement);
4338 statement = htmlBlock();
4339 list.add(statement);
4342 jj_la1[111] = jj_gen;
4343 jj_consume_token(-1);
4344 throw new ParseException();
4347 Statement[] stmtsArray = new Statement[list.size()];
4348 list.toArray(stmtsArray);
4349 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4350 throw new Error("Missing return statement in function");
4353 static final public Else ElseStatementColon() throws ParseException {
4354 Statement statement;
4355 final ArrayList list = new ArrayList();
4356 final int pos = SimpleCharStream.getPosition();
4357 jj_consume_token(ELSE);
4358 jj_consume_token(COLON);
4361 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4394 case INTEGER_LITERAL:
4395 case FLOATING_POINT_LITERAL:
4396 case STRING_LITERAL:
4405 jj_la1[112] = jj_gen;
4408 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4440 case INTEGER_LITERAL:
4441 case FLOATING_POINT_LITERAL:
4442 case STRING_LITERAL:
4448 statement = Statement();
4449 list.add(statement);
4452 statement = htmlBlock();
4453 list.add(statement);
4456 jj_la1[113] = jj_gen;
4457 jj_consume_token(-1);
4458 throw new ParseException();
4461 Statement[] stmtsArray = new Statement[list.size()];
4462 list.toArray(stmtsArray);
4463 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4464 throw new Error("Missing return statement in function");
4467 static final public ElseIf ElseIfStatement() throws ParseException {
4468 Expression condition;
4469 Statement statement;
4470 final ArrayList list = new ArrayList();
4471 final int pos = SimpleCharStream.getPosition();
4472 jj_consume_token(ELSEIF);
4473 condition = Condition("elseif");
4474 statement = Statement();
4475 list.add(statement);/*todo:do better*/
4476 Statement[] stmtsArray = new Statement[list.size()];
4477 list.toArray(stmtsArray);
4478 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4479 throw new Error("Missing return statement in function");
4482 static final public WhileStatement WhileStatement() throws ParseException {
4483 final Expression condition;
4484 final Statement action;
4485 final int pos = SimpleCharStream.getPosition();
4486 jj_consume_token(WHILE);
4487 condition = Condition("while");
4488 action = WhileStatement0(pos,pos + 5);
4489 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4490 throw new Error("Missing return statement in function");
4493 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4494 Statement statement;
4495 final ArrayList stmts = new ArrayList();
4496 final int pos = SimpleCharStream.getPosition();
4497 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4499 jj_consume_token(COLON);
4502 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4534 case INTEGER_LITERAL:
4535 case FLOATING_POINT_LITERAL:
4536 case STRING_LITERAL:
4545 jj_la1[114] = jj_gen;
4548 statement = Statement();
4549 stmts.add(statement);
4552 setMarker(fileToParse,
4553 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4557 "Line " + token.beginLine);
4558 } catch (CoreException e) {
4559 PHPeclipsePlugin.log(e);
4562 jj_consume_token(ENDWHILE);
4563 } catch (ParseException e) {
4564 errorMessage = "'endwhile' expected";
4566 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4567 errorEnd = jj_input_stream.getPosition() + 1;
4568 {if (true) throw e;}
4571 jj_consume_token(SEMICOLON);
4572 Statement[] stmtsArray = new Statement[stmts.size()];
4573 stmts.toArray(stmtsArray);
4574 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4575 } catch (ParseException e) {
4576 errorMessage = "';' expected after 'endwhile' keyword";
4578 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4579 errorEnd = jj_input_stream.getPosition() + 1;
4580 {if (true) throw e;}
4614 case INTEGER_LITERAL:
4615 case FLOATING_POINT_LITERAL:
4616 case STRING_LITERAL:
4622 statement = Statement();
4623 {if (true) return statement;}
4626 jj_la1[115] = jj_gen;
4627 jj_consume_token(-1);
4628 throw new ParseException();
4630 throw new Error("Missing return statement in function");
4633 static final public DoStatement DoStatement() throws ParseException {
4634 final Statement action;
4635 final Expression condition;
4636 final int pos = SimpleCharStream.getPosition();
4637 jj_consume_token(DO);
4638 action = Statement();
4639 jj_consume_token(WHILE);
4640 condition = Condition("while");
4642 jj_consume_token(SEMICOLON);
4643 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4644 } catch (ParseException e) {
4645 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4647 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4648 errorEnd = jj_input_stream.getPosition() + 1;
4649 {if (true) throw e;}
4651 throw new Error("Missing return statement in function");
4654 static final public ForeachStatement ForeachStatement() throws ParseException {
4655 Statement statement;
4656 Expression expression;
4657 final StringBuffer buff = new StringBuffer();
4658 final int pos = SimpleCharStream.getPosition();
4659 ArrayVariableDeclaration variable;
4660 jj_consume_token(FOREACH);
4662 jj_consume_token(LPAREN);
4663 } catch (ParseException e) {
4664 errorMessage = "'(' expected after 'foreach' keyword";
4666 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4667 errorEnd = jj_input_stream.getPosition() + 1;
4668 {if (true) throw e;}
4671 expression = Expression();
4672 } catch (ParseException e) {
4673 errorMessage = "variable expected";
4675 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4676 errorEnd = jj_input_stream.getPosition() + 1;
4677 {if (true) throw e;}
4680 jj_consume_token(AS);
4681 } catch (ParseException e) {
4682 errorMessage = "'as' expected";
4684 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4685 errorEnd = jj_input_stream.getPosition() + 1;
4686 {if (true) throw e;}
4689 variable = ArrayVariable();
4690 } catch (ParseException e) {
4691 errorMessage = "variable expected";
4693 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4694 errorEnd = jj_input_stream.getPosition() + 1;
4695 {if (true) throw e;}
4698 jj_consume_token(RPAREN);
4699 } catch (ParseException e) {
4700 errorMessage = "')' expected after 'foreach' keyword";
4702 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4703 errorEnd = jj_input_stream.getPosition() + 1;
4704 {if (true) throw e;}
4707 statement = Statement();
4708 } catch (ParseException e) {
4709 if (errorMessage != null) {if (true) throw e;}
4710 errorMessage = "statement expected";
4712 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4713 errorEnd = jj_input_stream.getPosition() + 1;
4714 {if (true) throw e;}
4716 {if (true) return new ForeachStatement(expression,
4720 SimpleCharStream.getPosition());}
4721 throw new Error("Missing return statement in function");
4724 static final public ForStatement ForStatement() throws ParseException {
4726 final int pos = SimpleCharStream.getPosition();
4727 Statement[] initializations = null;
4728 Expression condition = null;
4729 Statement[] increments = null;
4731 final ArrayList list = new ArrayList();
4732 final int startBlock, endBlock;
4733 token = jj_consume_token(FOR);
4735 jj_consume_token(LPAREN);
4736 } catch (ParseException e) {
4737 errorMessage = "'(' expected after 'for' keyword";
4739 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4740 errorEnd = jj_input_stream.getPosition() + 1;
4741 {if (true) throw e;}
4743 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4751 initializations = ForInit();
4754 jj_la1[116] = jj_gen;
4757 jj_consume_token(SEMICOLON);
4758 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4774 case INTEGER_LITERAL:
4775 case FLOATING_POINT_LITERAL:
4776 case STRING_LITERAL:
4780 condition = Expression();
4783 jj_la1[117] = jj_gen;
4786 jj_consume_token(SEMICOLON);
4787 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4795 increments = StatementExpressionList();
4798 jj_la1[118] = jj_gen;
4801 jj_consume_token(RPAREN);
4802 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4834 case INTEGER_LITERAL:
4835 case FLOATING_POINT_LITERAL:
4836 case STRING_LITERAL:
4842 action = Statement();
4843 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4846 jj_consume_token(COLON);
4847 startBlock = SimpleCharStream.getPosition();
4850 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4882 case INTEGER_LITERAL:
4883 case FLOATING_POINT_LITERAL:
4884 case STRING_LITERAL:
4893 jj_la1[119] = jj_gen;
4896 action = Statement();
4900 setMarker(fileToParse,
4901 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4903 pos+token.image.length(),
4905 "Line " + token.beginLine);
4906 } catch (CoreException e) {
4907 PHPeclipsePlugin.log(e);
4909 endBlock = SimpleCharStream.getPosition();
4911 jj_consume_token(ENDFOR);
4912 } catch (ParseException e) {
4913 errorMessage = "'endfor' expected";
4915 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4916 errorEnd = jj_input_stream.getPosition() + 1;
4917 {if (true) throw e;}
4920 jj_consume_token(SEMICOLON);
4921 Statement[] stmtsArray = new Statement[list.size()];
4922 list.toArray(stmtsArray);
4923 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4924 } catch (ParseException e) {
4925 errorMessage = "';' expected after 'endfor' keyword";
4927 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
4928 errorEnd = jj_input_stream.getPosition() + 1;
4929 {if (true) throw e;}
4933 jj_la1[120] = jj_gen;
4934 jj_consume_token(-1);
4935 throw new ParseException();
4937 throw new Error("Missing return statement in function");
4940 static final public Statement[] ForInit() throws ParseException {
4941 Statement[] statements;
4942 if (jj_2_8(2147483647)) {
4943 statements = LocalVariableDeclaration();
4944 {if (true) return statements;}
4946 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4954 statements = StatementExpressionList();
4955 {if (true) return statements;}
4958 jj_la1[121] = jj_gen;
4959 jj_consume_token(-1);
4960 throw new ParseException();
4963 throw new Error("Missing return statement in function");
4966 static final public Statement[] StatementExpressionList() throws ParseException {
4967 final ArrayList list = new ArrayList();
4969 expr = StatementExpression();
4973 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4978 jj_la1[122] = jj_gen;
4981 jj_consume_token(COMMA);
4982 StatementExpression();
4985 Statement[] stmtsArray = new Statement[list.size()];
4986 list.toArray(stmtsArray);
4987 {if (true) return stmtsArray;}
4988 throw new Error("Missing return statement in function");
4991 static final public Continue ContinueStatement() throws ParseException {
4992 Expression expr = null;
4993 final int pos = SimpleCharStream.getPosition();
4994 jj_consume_token(CONTINUE);
4995 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5011 case INTEGER_LITERAL:
5012 case FLOATING_POINT_LITERAL:
5013 case STRING_LITERAL:
5017 expr = Expression();
5020 jj_la1[123] = jj_gen;
5024 jj_consume_token(SEMICOLON);
5025 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
5026 } catch (ParseException e) {
5027 errorMessage = "';' expected after 'continue' statement";
5029 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
5030 errorEnd = jj_input_stream.getPosition() + 1;
5031 {if (true) throw e;}
5033 throw new Error("Missing return statement in function");
5036 static final public ReturnStatement ReturnStatement() throws ParseException {
5037 Expression expr = null;
5038 final int pos = SimpleCharStream.getPosition();
5039 jj_consume_token(RETURN);
5040 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5056 case INTEGER_LITERAL:
5057 case FLOATING_POINT_LITERAL:
5058 case STRING_LITERAL:
5062 expr = Expression();
5065 jj_la1[124] = jj_gen;
5069 jj_consume_token(SEMICOLON);
5070 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
5071 } catch (ParseException e) {
5072 errorMessage = "';' expected after 'return' statement";
5074 errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
5075 errorEnd = jj_input_stream.getPosition() + 1;
5076 {if (true) throw e;}
5078 throw new Error("Missing return statement in function");
5081 static final private boolean jj_2_1(int xla) {
5082 jj_la = xla; jj_lastpos = jj_scanpos = token;
5083 boolean retval = !jj_3_1();
5088 static final private boolean jj_2_2(int xla) {
5089 jj_la = xla; jj_lastpos = jj_scanpos = token;
5090 boolean retval = !jj_3_2();
5095 static final private boolean jj_2_3(int xla) {
5096 jj_la = xla; jj_lastpos = jj_scanpos = token;
5097 boolean retval = !jj_3_3();
5102 static final private boolean jj_2_4(int xla) {
5103 jj_la = xla; jj_lastpos = jj_scanpos = token;
5104 boolean retval = !jj_3_4();
5109 static final private boolean jj_2_5(int xla) {
5110 jj_la = xla; jj_lastpos = jj_scanpos = token;
5111 boolean retval = !jj_3_5();
5116 static final private boolean jj_2_6(int xla) {
5117 jj_la = xla; jj_lastpos = jj_scanpos = token;
5118 boolean retval = !jj_3_6();
5123 static final private boolean jj_2_7(int xla) {
5124 jj_la = xla; jj_lastpos = jj_scanpos = token;
5125 boolean retval = !jj_3_7();
5130 static final private boolean jj_2_8(int xla) {
5131 jj_la = xla; jj_lastpos = jj_scanpos = token;
5132 boolean retval = !jj_3_8();
5137 static final private boolean jj_3R_147() {
5138 if (jj_scan_token(REMAINDER)) return true;
5139 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5143 static final private boolean jj_3R_146() {
5144 if (jj_scan_token(SLASH)) return true;
5145 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5149 static final private boolean jj_3R_145() {
5150 if (jj_scan_token(STAR)) return true;
5151 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5155 static final private boolean jj_3_7() {
5156 if (jj_3R_46()) return true;
5157 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5161 static final private boolean jj_3R_140() {
5168 if (jj_3R_147()) return true;
5169 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5170 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5171 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5172 if (jj_3R_139()) return true;
5173 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5177 static final private boolean jj_3R_57() {
5178 if (jj_3R_50()) return true;
5179 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5182 if (jj_3R_87()) jj_scanpos = xsp;
5183 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5187 static final private boolean jj_3_6() {
5188 if (jj_3R_45()) return true;
5189 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5190 if (jj_scan_token(SEMICOLON)) return true;
5191 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5195 static final private boolean jj_3R_134() {
5196 if (jj_3R_139()) return true;
5197 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5201 if (jj_3R_140()) { jj_scanpos = xsp; break; }
5202 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5207 static final private boolean jj_3R_58() {
5208 if (jj_scan_token(COMMA)) return true;
5209 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5210 if (jj_3R_57()) return true;
5211 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5215 static final private boolean jj_3R_47() {
5216 if (jj_3R_57()) return true;
5217 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5221 if (jj_3R_58()) { jj_scanpos = xsp; break; }
5222 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5227 static final private boolean jj_3R_142() {
5228 if (jj_scan_token(MINUS)) return true;
5229 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5233 static final private boolean jj_3R_141() {
5234 if (jj_scan_token(PLUS)) return true;
5235 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5239 static final private boolean jj_3R_135() {
5244 if (jj_3R_142()) return true;
5245 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5246 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5247 if (jj_3R_134()) return true;
5248 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5252 static final private boolean jj_3R_128() {
5253 if (jj_3R_134()) return true;
5254 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5258 if (jj_3R_135()) { jj_scanpos = xsp; break; }
5259 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5264 static final private boolean jj_3R_198() {
5265 if (jj_scan_token(COMMA)) return true;
5266 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5270 static final private boolean jj_3R_138() {
5271 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5272 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5276 static final private boolean jj_3_2() {
5277 if (jj_scan_token(COMMA)) return true;
5278 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5279 if (jj_3R_41()) return true;
5280 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5284 static final private boolean jj_3R_137() {
5285 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5286 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5290 static final private boolean jj_3R_206() {
5291 if (jj_scan_token(ASSIGN)) return true;
5292 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5293 if (jj_3R_207()) return true;
5294 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5298 static final private boolean jj_3R_136() {
5299 if (jj_scan_token(LSHIFT)) return true;
5300 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5304 static final private boolean jj_3R_197() {
5305 if (jj_3R_41()) return true;
5306 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5310 if (jj_3_2()) { jj_scanpos = xsp; break; }
5311 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5316 static final private boolean jj_3R_129() {
5323 if (jj_3R_138()) return true;
5324 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5325 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5326 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5327 if (jj_3R_128()) return true;
5328 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5332 static final private boolean jj_3R_205() {
5333 if (jj_scan_token(BIT_AND)) return true;
5334 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5338 static final private boolean jj_3R_121() {
5339 if (jj_3R_128()) return true;
5340 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5344 if (jj_3R_129()) { jj_scanpos = xsp; break; }
5345 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5350 static final private boolean jj_3R_203() {
5353 if (jj_3R_205()) jj_scanpos = xsp;
5354 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5355 if (jj_3R_50()) return true;
5356 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5358 if (jj_3R_206()) jj_scanpos = xsp;
5359 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5363 static final private boolean jj_3R_216() {
5364 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5365 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5369 static final private boolean jj_3R_192() {
5370 if (jj_scan_token(LPAREN)) return true;
5371 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5374 if (jj_3R_197()) jj_scanpos = xsp;
5375 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5377 if (jj_3R_198()) jj_scanpos = xsp;
5378 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5379 if (jj_scan_token(RPAREN)) return true;
5380 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5384 static final private boolean jj_3R_214() {
5385 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5386 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5390 static final private boolean jj_3R_133() {
5391 if (jj_scan_token(GE)) return true;
5392 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5396 static final private boolean jj_3R_132() {
5397 if (jj_scan_token(LE)) return true;
5398 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5402 static final private boolean jj_3R_131() {
5403 if (jj_scan_token(GT)) return true;
5404 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5408 static final private boolean jj_3R_130() {
5409 if (jj_scan_token(LT)) return true;
5410 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5414 static final private boolean jj_3R_122() {
5423 if (jj_3R_133()) return true;
5424 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5425 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5426 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5427 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5428 if (jj_3R_121()) return true;
5429 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5433 static final private boolean jj_3R_119() {
5434 if (jj_3R_121()) return true;
5435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5439 if (jj_3R_122()) { jj_scanpos = xsp; break; }
5440 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5445 static final private boolean jj_3R_201() {
5446 if (jj_scan_token(ARRAYASSIGN)) return true;
5447 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5448 if (jj_3R_45()) return true;
5449 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5453 static final private boolean jj_3R_41() {
5454 if (jj_3R_45()) return true;
5455 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5458 if (jj_3R_201()) jj_scanpos = xsp;
5459 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5463 static final private boolean jj_3R_204() {
5464 if (jj_scan_token(COMMA)) return true;
5465 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5466 if (jj_3R_203()) return true;
5467 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5471 static final private boolean jj_3R_202() {
5472 if (jj_3R_203()) return true;
5473 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5477 if (jj_3R_204()) { jj_scanpos = xsp; break; }
5478 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5483 static final private boolean jj_3R_212() {
5484 if (jj_scan_token(IDENTIFIER)) return true;
5485 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5489 static final private boolean jj_3R_215() {
5490 if (jj_scan_token(INTEGER_LITERAL)) return true;
5491 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5495 static final private boolean jj_3R_211() {
5496 if (jj_3R_182()) return true;
5497 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5501 static final private boolean jj_3R_200() {
5502 if (jj_3R_202()) return true;
5503 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5507 static final private boolean jj_3R_213() {
5508 if (jj_scan_token(INTEGER_LITERAL)) return true;
5509 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5513 static final private boolean jj_3R_210() {
5514 if (jj_scan_token(PLUS)) return true;
5515 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5520 if (jj_3R_216()) return true;
5521 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5522 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5526 static final private boolean jj_3R_127() {
5527 if (jj_scan_token(TRIPLEEQUAL)) return true;
5528 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5532 static final private boolean jj_3R_126() {
5533 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5534 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5538 static final private boolean jj_3R_125() {
5539 if (jj_scan_token(NOT_EQUAL)) return true;
5540 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5544 static final private boolean jj_3R_124() {
5545 if (jj_scan_token(DIF)) return true;
5546 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5550 static final private boolean jj_3R_123() {
5551 if (jj_scan_token(EQUAL_EQUAL)) return true;
5552 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5556 static final private boolean jj_3R_93() {
5557 if (jj_3R_52()) return true;
5558 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5562 static final private boolean jj_3R_46() {
5563 if (jj_scan_token(IDENTIFIER)) return true;
5564 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5565 if (jj_scan_token(COLON)) return true;
5566 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5570 static final private boolean jj_3R_209() {
5571 if (jj_scan_token(MINUS)) return true;
5572 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5577 if (jj_3R_214()) return true;
5578 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5579 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5583 static final private boolean jj_3R_199() {
5584 if (jj_scan_token(LPAREN)) return true;
5585 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5588 if (jj_3R_200()) jj_scanpos = xsp;
5589 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5590 if (jj_scan_token(RPAREN)) return true;
5591 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5595 static final private boolean jj_3R_120() {
5606 if (jj_3R_127()) return true;
5607 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5608 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5609 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5610 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5611 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5612 if (jj_3R_119()) return true;
5613 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5617 static final private boolean jj_3R_208() {
5618 if (jj_3R_169()) return true;
5619 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5623 static final private boolean jj_3R_207() {
5634 if (jj_3R_212()) 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;
5643 static final private boolean jj_3R_117() {
5644 if (jj_3R_119()) return true;
5645 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5649 if (jj_3R_120()) { jj_scanpos = xsp; break; }
5650 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5655 static final private boolean jj_3_8() {
5656 if (jj_3R_47()) return true;
5657 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5661 static final private boolean jj_3R_177() {
5662 if (jj_scan_token(NULL)) return true;
5663 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5667 static final private boolean jj_3R_108() {
5668 if (jj_scan_token(LBRACE)) return true;
5669 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5670 if (jj_3R_45()) return true;
5671 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5672 if (jj_scan_token(RBRACE)) return true;
5673 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5677 static final private boolean jj_3R_176() {
5678 if (jj_scan_token(FALSE)) return true;
5679 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5683 static final private boolean jj_3R_91() {
5684 if (jj_scan_token(DOLLAR_ID)) return true;
5685 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5689 static final private boolean jj_3R_118() {
5690 if (jj_scan_token(BIT_AND)) return true;
5691 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5692 if (jj_3R_117()) return true;
5693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5697 static final private boolean jj_3R_175() {
5698 if (jj_scan_token(TRUE)) return true;
5699 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5703 static final private boolean jj_3R_174() {
5704 if (jj_scan_token(STRING_LITERAL)) return true;
5705 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5709 static final private boolean jj_3R_115() {
5710 if (jj_3R_117()) return true;
5711 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5715 if (jj_3R_118()) { jj_scanpos = xsp; break; }
5716 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5721 static final private boolean jj_3R_173() {
5722 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5723 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5727 static final private boolean jj_3R_90() {
5728 if (jj_scan_token(DOLLAR)) return true;
5729 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5730 if (jj_3R_59()) return true;
5731 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5735 static final private boolean jj_3R_169() {
5748 if (jj_3R_177()) return true;
5749 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5750 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5751 } else 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;
5758 static final private boolean jj_3R_172() {
5759 if (jj_scan_token(INTEGER_LITERAL)) return true;
5760 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5764 static final private boolean jj_3R_116() {
5765 if (jj_scan_token(XOR)) return true;
5766 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5767 if (jj_3R_115()) return true;
5768 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5772 static final private boolean jj_3R_92() {
5773 if (jj_3R_45()) return true;
5774 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5778 static final private boolean jj_3R_60() {
5783 if (jj_3R_93()) return true;
5784 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5785 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5789 static final private boolean jj_3R_113() {
5790 if (jj_3R_115()) return true;
5791 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5795 if (jj_3R_116()) { jj_scanpos = xsp; break; }
5796 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5801 static final private boolean jj_3R_89() {
5802 if (jj_scan_token(IDENTIFIER)) return true;
5803 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5806 if (jj_3R_108()) jj_scanpos = xsp;
5807 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5811 static final private boolean jj_3R_88() {
5812 if (jj_scan_token(LBRACE)) return true;
5813 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5814 if (jj_3R_45()) return true;
5815 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5816 if (jj_scan_token(RBRACE)) return true;
5817 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5821 static final private boolean jj_3R_59() {
5830 if (jj_3R_91()) return true;
5831 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5832 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5833 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5834 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5838 static final private boolean jj_3R_49() {
5839 if (jj_scan_token(LBRACKET)) return true;
5840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5843 if (jj_3R_60()) jj_scanpos = xsp;
5844 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5845 if (jj_scan_token(RBRACKET)) return true;
5846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850 static final private boolean jj_3R_114() {
5851 if (jj_scan_token(BIT_OR)) return true;
5852 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5853 if (jj_3R_113()) return true;
5854 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5858 static final private boolean jj_3R_98() {
5859 if (jj_scan_token(LBRACE)) return true;
5860 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5861 if (jj_3R_45()) return true;
5862 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5863 if (jj_scan_token(RBRACE)) return true;
5864 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5868 static final private boolean jj_3R_109() {
5869 if (jj_3R_113()) return true;
5870 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5874 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5875 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5880 static final private boolean jj_3R_95() {
5881 if (jj_scan_token(DOLLAR)) return true;
5882 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5883 if (jj_3R_59()) return true;
5884 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5888 static final private boolean jj_3R_110() {
5889 if (jj_scan_token(DOT)) return true;
5890 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5891 if (jj_3R_109()) return true;
5892 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5896 static final private boolean jj_3R_48() {
5897 if (jj_scan_token(CLASSACCESS)) return true;
5898 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5899 if (jj_3R_59()) return true;
5900 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5904 static final private boolean jj_3R_40() {
5909 if (jj_3R_49()) return true;
5910 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5911 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5915 static final private boolean jj_3R_104() {
5916 if (jj_3R_109()) return true;
5917 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5921 if (jj_3R_110()) { jj_scanpos = xsp; break; }
5922 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5927 static final private boolean jj_3R_94() {
5928 if (jj_scan_token(DOLLAR_ID)) return true;
5929 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5932 if (jj_3R_98()) jj_scanpos = xsp;
5933 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5937 static final private boolean jj_3R_61() {
5942 if (jj_3R_95()) return true;
5943 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5944 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5948 static final private boolean jj_3R_196() {
5949 if (jj_3R_40()) return true;
5950 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5954 static final private boolean jj_3R_112() {
5955 if (jj_scan_token(_ANDL)) return true;
5956 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5960 static final private boolean jj_3R_195() {
5961 if (jj_3R_199()) return true;
5962 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5966 static final private boolean jj_3R_188() {
5971 if (jj_3R_196()) return true;
5972 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5973 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5977 static final private boolean jj_3R_111() {
5978 if (jj_scan_token(AND_AND)) return true;
5979 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5983 static final private boolean jj_3R_105() {
5988 if (jj_3R_112()) return true;
5989 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5990 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5991 if (jj_3R_104()) return true;
5992 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5996 static final private boolean jj_3R_97() {
5997 if (jj_scan_token(HOOK)) return true;
5998 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5999 if (jj_3R_45()) return true;
6000 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6001 if (jj_scan_token(COLON)) return true;
6002 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6003 if (jj_3R_86()) return true;
6004 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6008 static final private boolean jj_3R_102() {
6009 if (jj_3R_104()) return true;
6010 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6014 if (jj_3R_105()) { jj_scanpos = xsp; break; }
6015 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6020 static final private boolean jj_3R_187() {
6021 if (jj_3R_50()) return true;
6022 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6026 static final private boolean jj_3R_186() {
6027 if (jj_scan_token(IDENTIFIER)) return true;
6028 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6032 static final private boolean jj_3R_178() {
6037 if (jj_3R_187()) return true;
6038 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6039 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6043 static final private boolean jj_3R_107() {
6044 if (jj_scan_token(_ORL)) return true;
6045 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6049 static final private boolean jj_3R_106() {
6050 if (jj_scan_token(OR_OR)) return true;
6051 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6055 static final private boolean jj_3_1() {
6056 if (jj_3R_40()) return true;
6057 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6061 static final private boolean jj_3R_103() {
6066 if (jj_3R_107()) return true;
6067 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6068 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6069 if (jj_3R_102()) return true;
6070 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6074 static final private boolean jj_3R_96() {
6075 if (jj_3R_102()) return true;
6076 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6080 if (jj_3R_103()) { jj_scanpos = xsp; break; }
6081 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6086 static final private boolean jj_3R_50() {
6087 if (jj_3R_61()) return true;
6088 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6092 if (jj_3_1()) { jj_scanpos = xsp; break; }
6093 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6098 static final private boolean jj_3R_86() {
6099 if (jj_3R_96()) return true;
6100 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6103 if (jj_3R_97()) jj_scanpos = xsp;
6104 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6108 static final private boolean jj_3R_191() {
6109 if (jj_3R_50()) return true;
6110 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6114 static final private boolean jj_3R_190() {
6115 if (jj_scan_token(NEW)) return true;
6116 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6117 if (jj_3R_178()) return true;
6118 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6122 static final private boolean jj_3R_74() {
6123 if (jj_scan_token(TILDEEQUAL)) return true;
6124 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6128 static final private boolean jj_3R_101() {
6129 if (jj_scan_token(ASSIGN)) return true;
6130 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6131 if (jj_3R_45()) return true;
6132 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6136 static final private boolean jj_3R_73() {
6137 if (jj_scan_token(DOTASSIGN)) return true;
6138 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6142 static final private boolean jj_3R_72() {
6143 if (jj_scan_token(ORASSIGN)) return true;
6144 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6148 static final private boolean jj_3R_189() {
6149 if (jj_scan_token(IDENTIFIER)) return true;
6150 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6154 static final private boolean jj_3R_180() {
6161 if (jj_3R_191()) return true;
6162 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6163 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6164 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6168 static final private boolean jj_3R_71() {
6169 if (jj_scan_token(XORASSIGN)) return true;
6170 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6174 static final private boolean jj_3R_70() {
6175 if (jj_scan_token(ANDASSIGN)) return true;
6176 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6180 static final private boolean jj_3R_69() {
6181 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6182 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6186 static final private boolean jj_3R_68() {
6187 if (jj_scan_token(LSHIFTASSIGN)) return true;
6188 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6192 static final private boolean jj_3R_67() {
6193 if (jj_scan_token(MINUSASSIGN)) return true;
6194 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6198 static final private boolean jj_3R_66() {
6199 if (jj_scan_token(PLUSASSIGN)) return true;
6200 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6204 static final private boolean jj_3R_65() {
6205 if (jj_scan_token(REMASSIGN)) return true;
6206 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6210 static final private boolean jj_3R_64() {
6211 if (jj_scan_token(SLASHASSIGN)) return true;
6212 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6216 static final private boolean jj_3R_63() {
6217 if (jj_scan_token(STARASSIGN)) return true;
6218 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6222 static final private boolean jj_3R_51() {
6249 if (jj_3R_74()) return true;
6250 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6251 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6252 } else 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;
6266 static final private boolean jj_3R_62() {
6267 if (jj_scan_token(ASSIGN)) return true;
6268 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6272 static final private boolean jj_3R_182() {
6273 if (jj_scan_token(ARRAY)) return true;
6274 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6275 if (jj_3R_192()) return true;
6276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6280 static final private boolean jj_3R_100() {
6281 if (jj_scan_token(COMMA)) return true;
6282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6283 if (jj_3R_50()) return true;
6284 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6288 static final private boolean jj_3R_171() {
6289 if (jj_3R_182()) return true;
6290 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6294 static final private boolean jj_3R_99() {
6295 if (jj_3R_50()) return true;
6296 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6300 static final private boolean jj_3R_181() {
6301 if (jj_3R_188()) return true;
6302 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6306 static final private boolean jj_3R_170() {
6307 if (jj_3R_180()) return true;
6308 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6312 if (jj_3R_181()) { jj_scanpos = xsp; break; }
6313 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6318 static final private boolean jj_3R_179() {
6319 if (jj_3R_188()) return true;
6320 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6324 static final private boolean jj_3R_42() {
6325 if (jj_3R_50()) return true;
6326 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6327 if (jj_3R_51()) return true;
6328 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6329 if (jj_3R_45()) return true;
6330 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6334 static final private boolean jj_3_5() {
6335 if (jj_scan_token(IDENTIFIER)) return true;
6336 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6337 if (jj_scan_token(STATICCLASSACCESS)) return true;
6338 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6339 if (jj_3R_178()) return true;
6340 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6344 if (jj_3R_179()) { jj_scanpos = xsp; break; }
6345 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6350 static final private boolean jj_3R_166() {
6357 if (jj_3R_171()) return true;
6358 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6359 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6360 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6364 static final private boolean jj_3R_85() {
6365 if (jj_scan_token(LIST)) return true;
6366 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6367 if (jj_scan_token(LPAREN)) return true;
6368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6371 if (jj_3R_99()) jj_scanpos = xsp;
6372 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6375 if (jj_3R_100()) { jj_scanpos = xsp; break; }
6376 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6378 if (jj_scan_token(RPAREN)) return true;
6379 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6381 if (jj_3R_101()) jj_scanpos = xsp;
6382 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6386 static final private boolean jj_3_3() {
6387 if (jj_3R_42()) return true;
6388 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6392 static final private boolean jj_3R_84() {
6393 if (jj_scan_token(PRINT)) return true;
6394 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6395 if (jj_3R_45()) return true;
6396 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6400 static final private boolean jj_3R_56() {
6401 if (jj_3R_86()) return true;
6402 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6406 static final private boolean jj_3R_55() {
6407 if (jj_3R_42()) return true;
6408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6412 static final private boolean jj_3R_194() {
6413 if (jj_scan_token(DECR)) return true;
6414 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6418 static final private boolean jj_3R_54() {
6419 if (jj_3R_85()) return true;
6420 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6424 static final private boolean jj_3R_193() {
6425 if (jj_scan_token(INCR)) return true;
6426 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6430 static final private boolean jj_3R_185() {
6435 if (jj_3R_194()) return true;
6436 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6437 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6441 static final private boolean jj_3R_45() {
6450 if (jj_3R_56()) return true;
6451 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6452 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6453 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6454 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6458 static final private boolean jj_3R_53() {
6459 if (jj_3R_84()) return true;
6460 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6464 static final private boolean jj_3R_168() {
6465 if (jj_3R_166()) return true;
6466 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6469 if (jj_3R_185()) jj_scanpos = xsp;
6470 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6474 static final private boolean jj_3R_83() {
6475 if (jj_scan_token(OBJECT)) return true;
6476 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6480 static final private boolean jj_3R_44() {
6481 if (jj_scan_token(ARRAY)) return true;
6482 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6486 static final private boolean jj_3R_184() {
6487 if (jj_scan_token(ARRAY)) return true;
6488 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6492 static final private boolean jj_3R_82() {
6493 if (jj_scan_token(INTEGER)) return true;
6494 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6498 static final private boolean jj_3R_183() {
6499 if (jj_3R_52()) return true;
6500 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6504 static final private boolean jj_3R_81() {
6505 if (jj_scan_token(INT)) return true;
6506 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6510 static final private boolean jj_3R_167() {
6511 if (jj_scan_token(LPAREN)) return true;
6512 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6517 if (jj_3R_184()) return true;
6518 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6519 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6520 if (jj_scan_token(RPAREN)) return true;
6521 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6522 if (jj_3R_139()) return true;
6523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6527 static final private boolean jj_3R_80() {
6528 if (jj_scan_token(FLOAT)) return true;
6529 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6533 static final private boolean jj_3R_43() {
6534 if (jj_3R_52()) return true;
6535 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6539 static final private boolean jj_3R_79() {
6540 if (jj_scan_token(DOUBLE)) return true;
6541 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6545 static final private boolean jj_3R_78() {
6546 if (jj_scan_token(REAL)) return true;
6547 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6551 static final private boolean jj_3R_77() {
6552 if (jj_scan_token(BOOLEAN)) return true;
6553 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6557 static final private boolean jj_3_4() {
6558 if (jj_scan_token(LPAREN)) return true;
6559 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6564 if (jj_3R_44()) return true;
6565 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6566 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6567 if (jj_scan_token(RPAREN)) return true;
6568 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6572 static final private boolean jj_3R_76() {
6573 if (jj_scan_token(BOOL)) return true;
6574 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6578 static final private boolean jj_3R_75() {
6579 if (jj_scan_token(STRING)) return true;
6580 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6584 static final private boolean jj_3R_52() {
6603 if (jj_3R_83()) return true;
6604 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6605 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6606 } else 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;
6616 static final private boolean jj_3R_165() {
6617 if (jj_scan_token(LPAREN)) return true;
6618 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6619 if (jj_3R_45()) return true;
6620 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6621 if (jj_scan_token(RPAREN)) return true;
6622 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6626 static final private boolean jj_3R_164() {
6627 if (jj_3R_169()) return true;
6628 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6632 static final private boolean jj_3R_163() {
6633 if (jj_3R_168()) return true;
6634 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6638 static final private boolean jj_3R_162() {
6639 if (jj_3R_167()) return true;
6640 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6644 static final private boolean jj_3R_158() {
6655 if (jj_3R_165()) return true;
6656 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6657 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6658 } else 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;
6664 static final private boolean jj_3R_161() {
6665 if (jj_scan_token(BANG)) return true;
6666 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6667 if (jj_3R_139()) return true;
6668 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6672 static final private boolean jj_3R_160() {
6673 if (jj_scan_token(DECR)) return true;
6674 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6678 static final private boolean jj_3R_159() {
6679 if (jj_scan_token(INCR)) return true;
6680 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6684 static final private boolean jj_3R_157() {
6689 if (jj_3R_160()) return true;
6690 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6691 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6692 if (jj_3R_166()) return true;
6693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6697 static final private boolean jj_3R_152() {
6698 if (jj_3R_158()) return true;
6699 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6703 static final private boolean jj_3R_151() {
6704 if (jj_3R_157()) return true;
6705 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6709 static final private boolean jj_3R_156() {
6710 if (jj_scan_token(MINUS)) return true;
6711 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6715 static final private boolean jj_3R_155() {
6716 if (jj_scan_token(PLUS)) return true;
6717 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6721 static final private boolean jj_3R_148() {
6728 if (jj_3R_152()) return true;
6729 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6730 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6731 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6735 static final private boolean jj_3R_150() {
6740 if (jj_3R_156()) return true;
6741 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6742 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6743 if (jj_3R_139()) return true;
6744 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6748 static final private boolean jj_3R_154() {
6749 if (jj_3R_148()) return true;
6750 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6754 static final private boolean jj_3R_87() {
6755 if (jj_scan_token(ASSIGN)) return true;
6756 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6757 if (jj_3R_45()) return true;
6758 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6762 static final private boolean jj_3R_149() {
6767 if (jj_3R_154()) return true;
6768 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6769 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6773 static final private boolean jj_3R_153() {
6774 if (jj_scan_token(AT)) return true;
6775 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6776 if (jj_3R_149()) return true;
6777 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6781 static final private boolean jj_3R_144() {
6782 if (jj_3R_149()) return true;
6783 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6787 static final private boolean jj_3R_139() {
6792 if (jj_3R_144()) return true;
6793 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6794 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6798 static final private boolean jj_3R_143() {
6799 if (jj_scan_token(BIT_AND)) return true;
6800 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6801 if (jj_3R_148()) return true;
6802 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6806 static private boolean jj_initialized_once = false;
6807 static public PHPParserTokenManager token_source;
6808 static SimpleCharStream jj_input_stream;
6809 static public Token token, jj_nt;
6810 static private int jj_ntk;
6811 static private Token jj_scanpos, jj_lastpos;
6812 static private int jj_la;
6813 static public boolean lookingAhead = false;
6814 static private boolean jj_semLA;
6815 static private int jj_gen;
6816 static final private int[] jj_la1 = new int[125];
6817 static private int[] jj_la1_0;
6818 static private int[] jj_la1_1;
6819 static private int[] jj_la1_2;
6820 static private int[] jj_la1_3;
6821 static private int[] jj_la1_4;
6829 private static void jj_la1_0() {
6830 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,};
6832 private static void jj_la1_1() {
6833 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,};
6835 private static void jj_la1_2() {
6836 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,};
6838 private static void jj_la1_3() {
6839 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,};
6841 private static void jj_la1_4() {
6842 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,};
6844 static final private JJCalls[] jj_2_rtns = new JJCalls[8];
6845 static private boolean jj_rescan = false;
6846 static private int jj_gc = 0;
6848 public PHPParser(java.io.InputStream stream) {
6849 if (jj_initialized_once) {
6850 System.out.println("ERROR: Second call to constructor of static parser. You must");
6851 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6852 System.out.println(" during parser generation.");
6855 jj_initialized_once = true;
6856 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6857 token_source = new PHPParserTokenManager(jj_input_stream);
6858 token = new Token();
6861 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6862 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6865 static public void ReInit(java.io.InputStream stream) {
6866 jj_input_stream.ReInit(stream, 1, 1);
6867 token_source.ReInit(jj_input_stream);
6868 token = new Token();
6871 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6872 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6875 public PHPParser(java.io.Reader stream) {
6876 if (jj_initialized_once) {
6877 System.out.println("ERROR: Second call to constructor of static parser. You must");
6878 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6879 System.out.println(" during parser generation.");
6882 jj_initialized_once = true;
6883 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6884 token_source = new PHPParserTokenManager(jj_input_stream);
6885 token = new Token();
6888 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6889 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6892 static public void ReInit(java.io.Reader stream) {
6893 jj_input_stream.ReInit(stream, 1, 1);
6894 token_source.ReInit(jj_input_stream);
6895 token = new Token();
6898 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6899 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6902 public PHPParser(PHPParserTokenManager tm) {
6903 if (jj_initialized_once) {
6904 System.out.println("ERROR: Second call to constructor of static parser. You must");
6905 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6906 System.out.println(" during parser generation.");
6909 jj_initialized_once = true;
6911 token = new Token();
6914 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6915 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6918 public void ReInit(PHPParserTokenManager tm) {
6920 token = new Token();
6923 for (int i = 0; i < 125; i++) jj_la1[i] = -1;
6924 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6927 static final private Token jj_consume_token(int kind) throws ParseException {
6929 if ((oldToken = token).next != null) token = token.next;
6930 else token = token.next = token_source.getNextToken();
6932 if (token.kind == kind) {
6934 if (++jj_gc > 100) {
6936 for (int i = 0; i < jj_2_rtns.length; i++) {
6937 JJCalls c = jj_2_rtns[i];
6939 if (c.gen < jj_gen) c.first = null;
6948 throw generateParseException();
6951 static final private boolean jj_scan_token(int kind) {
6952 if (jj_scanpos == jj_lastpos) {
6954 if (jj_scanpos.next == null) {
6955 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6957 jj_lastpos = jj_scanpos = jj_scanpos.next;
6960 jj_scanpos = jj_scanpos.next;
6963 int i = 0; Token tok = token;
6964 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6965 if (tok != null) jj_add_error_token(kind, i);
6967 return (jj_scanpos.kind != kind);
6970 static final public Token getNextToken() {
6971 if (token.next != null) token = token.next;
6972 else token = token.next = token_source.getNextToken();
6978 static final public Token getToken(int index) {
6979 Token t = lookingAhead ? jj_scanpos : token;
6980 for (int i = 0; i < index; i++) {
6981 if (t.next != null) t = t.next;
6982 else t = t.next = token_source.getNextToken();
6987 static final private int jj_ntk() {
6988 if ((jj_nt=token.next) == null)
6989 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6991 return (jj_ntk = jj_nt.kind);
6994 static private java.util.Vector jj_expentries = new java.util.Vector();
6995 static private int[] jj_expentry;
6996 static private int jj_kind = -1;
6997 static private int[] jj_lasttokens = new int[100];
6998 static private int jj_endpos;
7000 static private void jj_add_error_token(int kind, int pos) {
7001 if (pos >= 100) return;
7002 if (pos == jj_endpos + 1) {
7003 jj_lasttokens[jj_endpos++] = kind;
7004 } else if (jj_endpos != 0) {
7005 jj_expentry = new int[jj_endpos];
7006 for (int i = 0; i < jj_endpos; i++) {
7007 jj_expentry[i] = jj_lasttokens[i];
7009 boolean exists = false;
7010 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
7011 int[] oldentry = (int[])(enum.nextElement());
7012 if (oldentry.length == jj_expentry.length) {
7014 for (int i = 0; i < jj_expentry.length; i++) {
7015 if (oldentry[i] != jj_expentry[i]) {
7023 if (!exists) jj_expentries.addElement(jj_expentry);
7024 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
7028 static public ParseException generateParseException() {
7029 jj_expentries.removeAllElements();
7030 boolean[] la1tokens = new boolean[141];
7031 for (int i = 0; i < 141; i++) {
7032 la1tokens[i] = false;
7035 la1tokens[jj_kind] = true;
7038 for (int i = 0; i < 125; i++) {
7039 if (jj_la1[i] == jj_gen) {
7040 for (int j = 0; j < 32; j++) {
7041 if ((jj_la1_0[i] & (1<<j)) != 0) {
7042 la1tokens[j] = true;
7044 if ((jj_la1_1[i] & (1<<j)) != 0) {
7045 la1tokens[32+j] = true;
7047 if ((jj_la1_2[i] & (1<<j)) != 0) {
7048 la1tokens[64+j] = true;
7050 if ((jj_la1_3[i] & (1<<j)) != 0) {
7051 la1tokens[96+j] = true;
7053 if ((jj_la1_4[i] & (1<<j)) != 0) {
7054 la1tokens[128+j] = true;
7059 for (int i = 0; i < 141; i++) {
7061 jj_expentry = new int[1];
7063 jj_expentries.addElement(jj_expentry);
7068 jj_add_error_token(0, 0);
7069 int[][] exptokseq = new int[jj_expentries.size()][];
7070 for (int i = 0; i < jj_expentries.size(); i++) {
7071 exptokseq[i] = (int[])jj_expentries.elementAt(i);
7073 return new ParseException(token, exptokseq, tokenImage);
7076 static final public void enable_tracing() {
7079 static final public void disable_tracing() {
7082 static final private void jj_rescan_token() {
7084 for (int i = 0; i < 8; i++) {
7085 JJCalls p = jj_2_rtns[i];
7087 if (p.gen > jj_gen) {
7088 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
7090 case 0: jj_3_1(); break;
7091 case 1: jj_3_2(); break;
7092 case 2: jj_3_3(); break;
7093 case 3: jj_3_4(); break;
7094 case 4: jj_3_5(); break;
7095 case 5: jj_3_6(); break;
7096 case 6: jj_3_7(); break;
7097 case 7: jj_3_8(); break;
7101 } while (p != null);
7106 static final private void jj_save(int index, int xla) {
7107 JJCalls p = jj_2_rtns[index];
7108 while (p.gen > jj_gen) {
7109 if (p.next == null) { p = p.next = new JJCalls(); break; }
7112 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
7115 static final class JJCalls {