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.ArrayList;
12 import java.io.StringReader;
14 import java.text.MessageFormat;
16 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
17 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
18 import net.sourceforge.phpdt.internal.compiler.ast.*;
19 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
20 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
21 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
22 import net.sourceforge.phpdt.internal.corext.Assert;
26 * This php parser is inspired by the Java 1.2 grammar example
27 * given with JavaCC. You can get JavaCC at http://www.webgain.com
28 * You can test the parser with the PHPParserTestCase2.java
29 * @author Matthieu Casanova
31 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
33 /** The current segment. */
34 private static OutlineableWithChildren currentSegment;
36 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
37 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
38 static PHPOutlineInfo outlineInfo;
40 /** The error level of the current ParseException. */
41 private static int errorLevel = ERROR;
42 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
43 private static String errorMessage;
45 private static int errorStart = -1;
46 private static int errorEnd = -1;
47 private static PHPDocument phpDocument;
49 private static final String SYNTAX_ERROR_CHAR = "syntax error";
51 * The point where html starts.
52 * It will be used by the token manager to create HTMLCode objects
54 public static int htmlStart;
57 private final static int AstStackIncrement = 100;
58 /** The stack of node. */
59 private static AstNode[] nodes;
60 /** The cursor in expression stack. */
61 private static int nodePtr;
63 private static final boolean PARSER_DEBUG = false;
65 public final void setFileToParse(final IFile fileToParse) {
66 PHPParser.fileToParse = fileToParse;
72 public PHPParser(final IFile fileToParse) {
73 this(new StringReader(""));
74 PHPParser.fileToParse = fileToParse;
77 public static final void phpParserTester(final String strEval) throws ParseException {
78 final StringReader stream = new StringReader(strEval);
79 if (jj_input_stream == null) {
80 jj_input_stream = new SimpleCharStream(stream, 1, 1);
82 ReInit(new StringReader(strEval));
84 phpDocument = new PHPDocument(null,"_root".toCharArray());
85 currentSegment = phpDocument;
86 outlineInfo = new PHPOutlineInfo(null, currentSegment);
87 PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
91 public static final void htmlParserTester(final File fileName) throws FileNotFoundException, ParseException {
92 final Reader stream = new FileReader(fileName);
93 if (jj_input_stream == null) {
94 jj_input_stream = new SimpleCharStream(stream, 1, 1);
98 phpDocument = new PHPDocument(null,"_root".toCharArray());
99 currentSegment = phpDocument;
100 outlineInfo = new PHPOutlineInfo(null, currentSegment);
104 public static final void htmlParserTester(final String strEval) throws ParseException {
105 final StringReader stream = new StringReader(strEval);
106 if (jj_input_stream == null) {
107 jj_input_stream = new SimpleCharStream(stream, 1, 1);
111 phpDocument = new PHPDocument(null,"_root".toCharArray());
112 currentSegment = phpDocument;
113 outlineInfo = new PHPOutlineInfo(null, currentSegment);
118 * Reinitialize the parser.
120 private static final void init() {
121 nodes = new AstNode[AstStackIncrement];
127 * Add an php node on the stack.
128 * @param node the node that will be added to the stack
130 private static final void pushOnAstNodes(final AstNode node) {
132 nodes[++nodePtr] = node;
133 } catch (IndexOutOfBoundsException e) {
134 final int oldStackLength = nodes.length;
135 final AstNode[] oldStack = nodes;
136 nodes = new AstNode[oldStackLength + AstStackIncrement];
137 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
138 nodePtr = oldStackLength;
139 nodes[nodePtr] = node;
143 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
144 phpDocument = new PHPDocument(parent,"_root".toCharArray());
145 currentSegment = phpDocument;
146 outlineInfo = new PHPOutlineInfo(parent, currentSegment);
147 final StringReader stream = new StringReader(s);
148 if (jj_input_stream == null) {
149 jj_input_stream = new SimpleCharStream(stream, 1, 1);
155 phpDocument.nodes = new AstNode[nodes.length];
156 System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
157 if (PHPeclipsePlugin.DEBUG) {
158 PHPeclipsePlugin.log(1,phpDocument.toString());
160 } catch (ParseException e) {
161 processParseException(e);
166 private static void processParseExceptionDebug(final ParseException e) throws ParseException {
170 processParseException(e);
173 * This method will process the parse exception.
174 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
175 * @param e the ParseException
177 private static void processParseException(final ParseException e) {
178 if (errorMessage == null) {
179 PHPeclipsePlugin.log(e);
180 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
181 errorStart = e.currentToken.sourceStart;
182 errorEnd = e.currentToken.sourceEnd;
186 // if (PHPeclipsePlugin.DEBUG) PHPeclipsePlugin.log(e);
190 * Create marker for the parse error.
191 * @param e the ParseException
193 private static void setMarker(final ParseException e) {
195 if (errorStart == -1) {
196 setMarker(fileToParse,
198 e.currentToken.sourceStart,
199 e.currentToken.sourceEnd,
201 "Line " + e.currentToken.beginLine);
203 setMarker(fileToParse,
208 "Line " + e.currentToken.beginLine);
212 } catch (CoreException e2) {
213 PHPeclipsePlugin.log(e2);
217 private static void scanLine(final String output,
220 final int brIndx) throws CoreException {
222 final StringBuffer lineNumberBuffer = new StringBuffer(10);
224 current = output.substring(indx, brIndx);
226 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
227 final int onLine = current.indexOf("on line <b>");
229 lineNumberBuffer.delete(0, lineNumberBuffer.length());
230 for (int i = onLine; i < current.length(); i++) {
231 ch = current.charAt(i);
232 if ('0' <= ch && '9' >= ch) {
233 lineNumberBuffer.append(ch);
237 final int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
239 final Hashtable attributes = new Hashtable();
241 current = current.replaceAll("\n", "");
242 current = current.replaceAll("<b>", "");
243 current = current.replaceAll("</b>", "");
244 MarkerUtilities.setMessage(attributes, current);
246 if (current.indexOf(PARSE_ERROR_STRING) != -1)
247 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
248 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
249 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
251 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
252 MarkerUtilities.setLineNumber(attributes, lineNumber);
253 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
258 public final void parse(final String s) {
259 final StringReader stream = new StringReader(s);
260 if (jj_input_stream == null) {
261 jj_input_stream = new SimpleCharStream(stream, 1, 1);
267 } catch (ParseException e) {
268 processParseException(e);
273 * Call the php parse command ( php -l -f <filename> )
274 * and create markers according to the external parser output
276 public static void phpExternalParse(final IFile file) {
277 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
278 final String filename = file.getLocation().toString();
280 final String[] arguments = { filename };
281 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
282 final String command = form.format(arguments);
284 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
287 // parse the buffer to find the errors and warnings
288 createMarkers(parserResult, file);
289 } catch (CoreException e) {
290 PHPeclipsePlugin.log(e);
295 * Put a new html block in the stack.
297 public static final void createNewHTMLCode() {
298 final int currentPosition = SimpleCharStream.getPosition();
299 if (currentPosition == htmlStart || currentPosition > SimpleCharStream.currentBuffer.length()) {
302 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
303 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
306 /** Create a new task. */
307 public static final void createNewTask() {
308 final int currentPosition = SimpleCharStream.getPosition();
309 final String todo = SimpleCharStream.currentBuffer.substring(currentPosition-3,
310 SimpleCharStream.currentBuffer.indexOf("\n",
312 PHPeclipsePlugin.log(1,SimpleCharStream.currentBuffer.toString());
314 setMarker(fileToParse,
316 SimpleCharStream.getBeginLine(),
318 "Line "+SimpleCharStream.getBeginLine());
319 } catch (CoreException e) {
320 PHPeclipsePlugin.log(e);
324 private static final void parse() throws ParseException {
328 static final public void phpTest() throws ParseException {
333 static final public void phpFile() throws ParseException {
337 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
376 case INTEGER_LITERAL:
377 case FLOATING_POINT_LITERAL:
392 PHPParser.createNewHTMLCode();
393 } catch (TokenMgrError e) {
394 PHPeclipsePlugin.log(e);
395 errorStart = SimpleCharStream.getPosition();
396 errorEnd = errorStart + 1;
397 errorMessage = e.getMessage();
399 {if (true) throw generateParseException();}
404 * A php block is a <?= expression [;]?>
405 * or <?php somephpcode ?>
406 * or <? somephpcode ?>
408 static final public void PhpBlock() throws ParseException {
409 final int start = SimpleCharStream.getPosition();
410 final PHPEchoBlock phpEchoBlock;
411 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
413 phpEchoBlock = phpEchoBlock();
414 pushOnAstNodes(phpEchoBlock);
453 case INTEGER_LITERAL:
454 case FLOATING_POINT_LITERAL:
461 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
464 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
466 jj_consume_token(PHPSTARTLONG);
469 jj_consume_token(PHPSTARTSHORT);
471 setMarker(fileToParse,
472 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
474 SimpleCharStream.getPosition(),
476 "Line " + token.beginLine);
477 } catch (CoreException e) {
478 PHPeclipsePlugin.log(e);
483 jj_consume_token(-1);
484 throw new ParseException();
493 jj_consume_token(PHPEND);
494 } catch (ParseException e) {
495 errorMessage = "'?>' expected";
497 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
498 errorEnd = SimpleCharStream.getPosition() + 1;
499 processParseExceptionDebug(e);
504 jj_consume_token(-1);
505 throw new ParseException();
509 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
510 final Expression expr;
511 final PHPEchoBlock echoBlock;
512 final Token token, token2;
513 token = jj_consume_token(PHPECHOSTART);
515 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
517 jj_consume_token(SEMICOLON);
523 token2 = jj_consume_token(PHPEND);
524 echoBlock = new PHPEchoBlock(expr,token.sourceStart,token.sourceEnd);
525 pushOnAstNodes(echoBlock);
526 {if (true) return echoBlock;}
527 throw new Error("Missing return statement in function");
530 static final public void Php() throws ParseException {
533 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
568 case INTEGER_LITERAL:
569 case FLOATING_POINT_LITERAL:
586 static final public ClassDeclaration ClassDeclaration() throws ParseException {
587 final ClassDeclaration classDeclaration;
588 Token className = null;
589 final Token superclassName, token;
590 String classNameImage = SYNTAX_ERROR_CHAR;
591 String superclassNameImage = null;
592 token = jj_consume_token(CLASS);
594 className = jj_consume_token(IDENTIFIER);
595 classNameImage = className.image;
596 } catch (ParseException e) {
597 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
599 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
600 errorEnd = SimpleCharStream.getPosition() + 1;
601 processParseExceptionDebug(e);
603 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
605 jj_consume_token(EXTENDS);
607 superclassName = jj_consume_token(IDENTIFIER);
608 superclassNameImage = superclassName.image;
609 } catch (ParseException e) {
610 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
612 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
613 errorEnd = SimpleCharStream.getPosition() + 1;
614 processParseExceptionDebug(e);
615 superclassNameImage = SYNTAX_ERROR_CHAR;
623 if (className == null) {
624 start = token.sourceStart;
625 end = token.sourceEnd;
627 start = className.sourceStart;
628 end = className.sourceEnd;
630 if (superclassNameImage == null) {
632 classDeclaration = new ClassDeclaration(currentSegment,
637 classDeclaration = new ClassDeclaration(currentSegment,
643 currentSegment.add(classDeclaration);
644 currentSegment = classDeclaration;
645 ClassBody(classDeclaration);
646 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
647 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
648 pushOnAstNodes(classDeclaration);
649 {if (true) return classDeclaration;}
650 throw new Error("Missing return statement in function");
653 static final public void ClassBody(final ClassDeclaration classDeclaration) throws ParseException {
655 jj_consume_token(LBRACE);
656 } catch (ParseException e) {
657 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "'. '{' expected";
659 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
660 errorEnd = SimpleCharStream.getPosition() + 1;
661 processParseExceptionDebug(e);
665 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
674 ClassBodyDeclaration(classDeclaration);
677 jj_consume_token(RBRACE);
678 } catch (ParseException e) {
679 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected";
681 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
682 errorEnd = SimpleCharStream.getPosition() + 1;
683 processParseExceptionDebug(e);
688 * A class can contain only methods and fields.
690 static final public void ClassBodyDeclaration(final ClassDeclaration classDeclaration) throws ParseException {
691 final MethodDeclaration method;
692 final FieldDeclaration field;
693 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
695 method = MethodDeclaration();
696 method.analyzeCode();
697 classDeclaration.addMethod(method);
700 field = FieldDeclaration();
701 classDeclaration.addField(field);
705 jj_consume_token(-1);
706 throw new ParseException();
711 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
712 * it is only used by ClassBodyDeclaration()
714 static final public FieldDeclaration FieldDeclaration() throws ParseException {
715 VariableDeclaration variableDeclaration;
716 final VariableDeclaration[] list;
717 final ArrayList arrayList = new ArrayList();
718 final int pos = SimpleCharStream.getPosition();
721 token = jj_consume_token(VAR);
722 variableDeclaration = VariableDeclaratorNoSuffix();
723 arrayList.add(variableDeclaration);
724 outlineInfo.addVariable(variableDeclaration.name());
727 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
735 jj_consume_token(COMMA);
736 variableDeclaration = VariableDeclaratorNoSuffix();
737 arrayList.add(variableDeclaration);
738 outlineInfo.addVariable(variableDeclaration.name());
741 token2 = jj_consume_token(SEMICOLON);
742 } catch (ParseException e) {
743 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
745 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
746 errorEnd = SimpleCharStream.getPosition() + 1;
747 processParseExceptionDebug(e);
749 list = new VariableDeclaration[arrayList.size()];
750 arrayList.toArray(list);
752 if (token2 == null) {
753 end = list[list.length-1].sourceEnd;
755 end = token2.sourceEnd;
757 {if (true) return new FieldDeclaration(list,
761 throw new Error("Missing return statement in function");
765 * a strict variable declarator : there cannot be a suffix here.
766 * It will be used by fields and formal parameters
768 static final public VariableDeclaration VariableDeclaratorNoSuffix() throws ParseException {
770 Expression initializer = null;
771 varName = jj_consume_token(DOLLAR_ID);
772 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
774 jj_consume_token(ASSIGN);
776 initializer = VariableInitializer();
777 } catch (ParseException e) {
778 errorMessage = "Literal expression expected in variable initializer";
780 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
781 errorEnd = SimpleCharStream.getPosition() + 1;
782 processParseExceptionDebug(e);
789 if (initializer == null) {
790 {if (true) return new VariableDeclaration(currentSegment,
791 new Variable(varName.image.substring(1),
797 {if (true) return new VariableDeclaration(currentSegment,
798 new Variable(varName.image.substring(1),
802 VariableDeclaration.EQUAL,
803 varName.sourceStart);}
804 throw new Error("Missing return statement in function");
808 * this will be used by static statement
810 static final public VariableDeclaration VariableDeclarator() throws ParseException {
811 final AbstractVariable variable;
812 Expression initializer = null;
813 variable = VariableDeclaratorId();
814 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
816 jj_consume_token(ASSIGN);
818 initializer = VariableInitializer();
819 } catch (ParseException e) {
820 errorMessage = "Literal expression expected in variable initializer";
822 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
823 errorEnd = SimpleCharStream.getPosition() + 1;
824 processParseExceptionDebug(e);
831 if (initializer == null) {
832 {if (true) return new VariableDeclaration(currentSegment,
834 variable.sourceStart,
835 variable.sourceEnd);}
837 {if (true) return new VariableDeclaration(currentSegment,
840 VariableDeclaration.EQUAL,
841 variable.sourceStart);}
842 throw new Error("Missing return statement in function");
847 * @return the variable name (with suffix)
849 static final public AbstractVariable VariableDeclaratorId() throws ParseException {
851 AbstractVariable expression = null;
852 final int pos = SimpleCharStream.getPosition();
862 expression = VariableSuffix(var);
864 if (expression == null) {
865 {if (true) return var;}
867 {if (true) return expression;}
868 } catch (ParseException e) {
869 errorMessage = "'$' expected for variable identifier";
871 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
872 errorEnd = SimpleCharStream.getPosition() + 1;
875 throw new Error("Missing return statement in function");
879 * Return a variablename without the $.
880 * @return a variable name
884 final StringBuffer buff;
885 Expression expression = null;
892 [<LBRACE> expression = Expression() <RBRACE>]
894 if (expression == null) {
895 return new Variable(token.image.substring(1),
899 String s = expression.toStringExpression();
900 buff = new StringBuffer(token.image.length()+s.length()+2);
901 buff.append(token.image);
906 return new Variable(s,token.sourceStart,token.sourceEnd);
910 expr = VariableName()
911 {return new Variable(expr,token.sourceStart,expr.sourceEnd);}
913 static final public Variable Variable() throws ParseException {
914 Variable variable = null;
916 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
918 token = jj_consume_token(DOLLAR_ID);
919 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
924 variable = Var(token);
930 if (variable == null) {
931 {if (true) return new Variable(token.image.substring(1),token.sourceStart,token.sourceEnd);}
933 final StringBuffer buff = new StringBuffer();
934 buff.append(token.image.substring(1));
935 buff.append(variable.toStringExpression());
936 {if (true) return new Variable(buff.toString(),token.sourceStart,variable.sourceEnd);}
939 token = jj_consume_token(DOLLAR);
940 variable = Var(token);
941 {if (true) return new Variable(variable,token.sourceStart,variable.sourceEnd);}
945 jj_consume_token(-1);
946 throw new ParseException();
948 throw new Error("Missing return statement in function");
951 static final public Variable Var(final Token dollar) throws ParseException {
954 ConstantIdentifier constant;
955 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
957 token = jj_consume_token(DOLLAR_ID);
958 variable = Var(token);
959 final StringBuffer buff = new StringBuffer();
960 buff.append(token.image.substring(1));
961 buff.append(variable.toStringExpression());
962 {if (true) return new Variable(buff.toString(),dollar.sourceStart,variable.sourceEnd);}
965 token = jj_consume_token(DOLLAR);
966 variable = Var(token);
967 {if (true) return new Variable(variable,dollar.sourceStart,variable.sourceEnd);}
971 constant = VariableName();
972 {if (true) return new Variable(constant.name,dollar.sourceStart,constant.sourceEnd);}
976 jj_consume_token(-1);
977 throw new ParseException();
979 throw new Error("Missing return statement in function");
983 * A Variable name (without the $)
984 * @return a variable name String
986 static final public ConstantIdentifier VariableName() throws ParseException {
987 final StringBuffer buff;
990 Expression expression = null;
994 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
996 token = jj_consume_token(LBRACE);
997 expression = Expression();
998 token2 = jj_consume_token(RBRACE);
999 expr = expression.toStringExpression();
1000 buff = new StringBuffer(expr.length()+2);
1004 pos = SimpleCharStream.getPosition();
1005 expr = buff.toString();
1006 {if (true) return new ConstantIdentifier(expr,
1011 token = jj_consume_token(IDENTIFIER);
1012 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1014 jj_consume_token(LBRACE);
1015 expression = Expression();
1016 token2 = jj_consume_token(RBRACE);
1019 jj_la1[15] = jj_gen;
1022 if (expression == null) {
1023 {if (true) return new ConstantIdentifier(token.image,
1027 expr = expression.toStringExpression();
1028 buff = new StringBuffer(token.image.length()+expr.length()+2);
1029 buff.append(token.image);
1033 expr = buff.toString();
1034 {if (true) return new ConstantIdentifier(expr,
1039 jj_la1[16] = jj_gen;
1040 jj_consume_token(-1);
1041 throw new ParseException();
1043 throw new Error("Missing return statement in function");
1046 static final public Expression VariableInitializer() throws ParseException {
1047 final Expression expr;
1048 final Token token, token2;
1049 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1053 case INTEGER_LITERAL:
1054 case FLOATING_POINT_LITERAL:
1055 case STRING_LITERAL:
1057 {if (true) return expr;}
1060 token2 = jj_consume_token(MINUS);
1061 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1062 case INTEGER_LITERAL:
1063 token = jj_consume_token(INTEGER_LITERAL);
1065 case FLOATING_POINT_LITERAL:
1066 token = jj_consume_token(FLOATING_POINT_LITERAL);
1069 jj_la1[17] = jj_gen;
1070 jj_consume_token(-1);
1071 throw new ParseException();
1073 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token),
1075 token2.sourceStart);}
1078 token2 = jj_consume_token(PLUS);
1079 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1080 case INTEGER_LITERAL:
1081 token = jj_consume_token(INTEGER_LITERAL);
1083 case FLOATING_POINT_LITERAL:
1084 token = jj_consume_token(FLOATING_POINT_LITERAL);
1087 jj_la1[18] = jj_gen;
1088 jj_consume_token(-1);
1089 throw new ParseException();
1091 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token),
1093 token2.sourceStart);}
1096 expr = ArrayDeclarator();
1097 {if (true) return expr;}
1100 token = jj_consume_token(IDENTIFIER);
1101 {if (true) return new ConstantIdentifier(token);}
1104 jj_la1[19] = jj_gen;
1105 jj_consume_token(-1);
1106 throw new ParseException();
1108 throw new Error("Missing return statement in function");
1111 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
1112 final Expression expr,expr2;
1113 expr = Expression();
1114 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1116 jj_consume_token(ARRAYASSIGN);
1117 expr2 = Expression();
1118 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
1121 jj_la1[20] = jj_gen;
1124 {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());}
1125 throw new Error("Missing return statement in function");
1128 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
1129 ArrayVariableDeclaration expr;
1130 final ArrayList list = new ArrayList();
1131 jj_consume_token(LPAREN);
1132 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1148 case INTEGER_LITERAL:
1149 case FLOATING_POINT_LITERAL:
1150 case STRING_LITERAL:
1154 expr = ArrayVariable();
1163 jj_consume_token(COMMA);
1164 expr = ArrayVariable();
1169 jj_la1[21] = jj_gen;
1172 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1174 jj_consume_token(COMMA);
1178 jj_la1[22] = jj_gen;
1181 jj_consume_token(RPAREN);
1182 final ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1184 {if (true) return vars;}
1185 throw new Error("Missing return statement in function");
1189 * A Method Declaration.
1190 * <b>function</b> MetodDeclarator() Block()
1192 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1193 final MethodDeclaration functionDeclaration;
1195 final OutlineableWithChildren seg = currentSegment;
1197 token = jj_consume_token(FUNCTION);
1199 functionDeclaration = MethodDeclarator(token.sourceStart);
1200 outlineInfo.addVariable(new String(functionDeclaration.name));
1201 } catch (ParseException e) {
1202 if (errorMessage != null) {if (true) throw e;}
1203 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1205 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1206 errorEnd = SimpleCharStream.getPosition() + 1;
1207 {if (true) throw e;}
1209 currentSegment = functionDeclaration;
1211 functionDeclaration.statements = block.statements;
1212 currentSegment = seg;
1213 {if (true) return functionDeclaration;}
1214 throw new Error("Missing return statement in function");
1218 * A MethodDeclarator.
1219 * [&] IDENTIFIER(parameters ...).
1220 * @return a function description for the outline
1222 static final public MethodDeclaration MethodDeclarator(final int start) throws ParseException {
1223 Token identifier = null;
1224 Token reference = null;
1225 final Hashtable formalParameters = new Hashtable();
1226 String identifierChar = SYNTAX_ERROR_CHAR;
1228 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1230 reference = jj_consume_token(BIT_AND);
1233 jj_la1[23] = jj_gen;
1237 identifier = jj_consume_token(IDENTIFIER);
1238 identifierChar = identifier.image;
1239 } catch (ParseException e) {
1240 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1242 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1243 errorEnd = SimpleCharStream.getPosition() + 1;
1244 processParseExceptionDebug(e);
1246 end = FormalParameters(formalParameters);
1247 int nameStart, nameEnd;
1248 if (identifier == null) {
1249 if (reference == null) {
1250 nameStart = start + 9;
1251 nameEnd = start + 10;
1253 nameStart = reference.sourceEnd + 1;
1254 nameEnd = reference.sourceEnd + 2;
1257 nameStart = identifier.sourceStart;
1258 nameEnd = identifier.sourceEnd;
1260 {if (true) return new MethodDeclaration(currentSegment,
1268 throw new Error("Missing return statement in function");
1272 * FormalParameters follows method identifier.
1273 * (FormalParameter())
1275 static final public int FormalParameters(final Hashtable parameters) throws ParseException {
1276 VariableDeclaration var;
1280 jj_consume_token(LPAREN);
1281 } catch (ParseException e) {
1282 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1284 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1285 errorEnd = SimpleCharStream.getPosition() + 1;
1286 processParseExceptionDebug(e);
1288 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1291 var = FormalParameter();
1292 parameters.put(new String(var.name()),var);
1295 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1300 jj_la1[24] = jj_gen;
1303 jj_consume_token(COMMA);
1304 var = FormalParameter();
1305 parameters.put(new String(var.name()),var);
1309 jj_la1[25] = jj_gen;
1313 token = jj_consume_token(RPAREN);
1314 end = token.sourceEnd;
1315 } catch (ParseException e) {
1316 errorMessage = "')' expected";
1318 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1319 errorEnd = SimpleCharStream.getPosition() + 1;
1320 processParseExceptionDebug(e);
1321 end = e.currentToken.sourceStart;
1323 {if (true) return end;}
1324 throw new Error("Missing return statement in function");
1328 * A formal parameter.
1329 * $varname[=value] (,$varname[=value])
1331 static final public VariableDeclaration FormalParameter() throws ParseException {
1332 final VariableDeclaration variableDeclaration;
1334 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1336 token = jj_consume_token(BIT_AND);
1339 jj_la1[26] = jj_gen;
1342 variableDeclaration = VariableDeclaratorNoSuffix();
1343 if (token != null) {
1344 variableDeclaration.setReference(true);
1346 {if (true) return variableDeclaration;}
1347 throw new Error("Missing return statement in function");
1350 static final public ConstantIdentifier Type() throws ParseException {
1352 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1354 token = jj_consume_token(STRING);
1355 {if (true) return new ConstantIdentifier(token);}
1358 token = jj_consume_token(BOOL);
1359 {if (true) return new ConstantIdentifier(token);}
1362 token = jj_consume_token(BOOLEAN);
1363 {if (true) return new ConstantIdentifier(token);}
1366 token = jj_consume_token(REAL);
1367 {if (true) return new ConstantIdentifier(token);}
1370 token = jj_consume_token(DOUBLE);
1371 {if (true) return new ConstantIdentifier(token);}
1374 token = jj_consume_token(FLOAT);
1375 {if (true) return new ConstantIdentifier(token);}
1378 token = jj_consume_token(INT);
1379 {if (true) return new ConstantIdentifier(token);}
1382 token = jj_consume_token(INTEGER);
1383 {if (true) return new ConstantIdentifier(token);}
1386 token = jj_consume_token(OBJECT);
1387 {if (true) return new ConstantIdentifier(token);}
1390 jj_la1[27] = jj_gen;
1391 jj_consume_token(-1);
1392 throw new ParseException();
1394 throw new Error("Missing return statement in function");
1397 static final public Expression Expression() throws ParseException {
1398 final Expression expr;
1399 Expression initializer = null;
1400 int assignOperator = -1;
1401 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1415 case INTEGER_LITERAL:
1416 case FLOATING_POINT_LITERAL:
1417 case STRING_LITERAL:
1421 expr = ConditionalExpression();
1422 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1435 case RSIGNEDSHIFTASSIGN:
1436 assignOperator = AssignmentOperator();
1438 initializer = Expression();
1439 } catch (ParseException e) {
1440 if (errorMessage != null) {
1441 {if (true) throw e;}
1443 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1445 errorEnd = SimpleCharStream.getPosition();
1446 {if (true) throw e;}
1450 jj_la1[28] = jj_gen;
1453 if (assignOperator != -1) {// todo : change this, very very bad :(
1454 if (expr instanceof AbstractVariable) {
1455 {if (true) return new VariableDeclaration(currentSegment,
1456 (AbstractVariable) expr,
1459 initializer.sourceEnd);}
1461 String varName = expr.toStringExpression().substring(1);
1462 {if (true) return new VariableDeclaration(currentSegment,
1463 new Variable(varName,
1467 initializer.sourceEnd);}
1469 {if (true) return expr;}
1473 expr = ExpressionWBang();
1474 {if (true) return expr;}
1477 jj_la1[29] = jj_gen;
1478 jj_consume_token(-1);
1479 throw new ParseException();
1481 throw new Error("Missing return statement in function");
1484 static final public Expression ExpressionWBang() throws ParseException {
1485 final Expression expr;
1487 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1489 token = jj_consume_token(BANG);
1490 expr = ExpressionWBang();
1491 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);}
1495 expr = ExpressionNoBang();
1496 {if (true) return expr;}
1499 jj_la1[30] = jj_gen;
1500 jj_consume_token(-1);
1501 throw new ParseException();
1503 throw new Error("Missing return statement in function");
1506 static final public Expression ExpressionNoBang() throws ParseException {
1508 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1510 expr = ListExpression();
1511 {if (true) return expr;}
1514 expr = PrintExpression();
1515 {if (true) return expr;}
1518 jj_la1[31] = jj_gen;
1519 jj_consume_token(-1);
1520 throw new ParseException();
1522 throw new Error("Missing return statement in function");
1526 * Any assignement operator.
1527 * @return the assignement operator id
1529 static final public int AssignmentOperator() throws ParseException {
1530 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1532 jj_consume_token(ASSIGN);
1533 {if (true) return VariableDeclaration.EQUAL;}
1536 jj_consume_token(STARASSIGN);
1537 {if (true) return VariableDeclaration.STAR_EQUAL;}
1540 jj_consume_token(SLASHASSIGN);
1541 {if (true) return VariableDeclaration.SLASH_EQUAL;}
1544 jj_consume_token(REMASSIGN);
1545 {if (true) return VariableDeclaration.REM_EQUAL;}
1548 jj_consume_token(PLUSASSIGN);
1549 {if (true) return VariableDeclaration.PLUS_EQUAL;}
1552 jj_consume_token(MINUSASSIGN);
1553 {if (true) return VariableDeclaration.MINUS_EQUAL;}
1556 jj_consume_token(LSHIFTASSIGN);
1557 {if (true) return VariableDeclaration.LSHIFT_EQUAL;}
1559 case RSIGNEDSHIFTASSIGN:
1560 jj_consume_token(RSIGNEDSHIFTASSIGN);
1561 {if (true) return VariableDeclaration.RSIGNEDSHIFT_EQUAL;}
1564 jj_consume_token(ANDASSIGN);
1565 {if (true) return VariableDeclaration.AND_EQUAL;}
1568 jj_consume_token(XORASSIGN);
1569 {if (true) return VariableDeclaration.XOR_EQUAL;}
1572 jj_consume_token(ORASSIGN);
1573 {if (true) return VariableDeclaration.OR_EQUAL;}
1576 jj_consume_token(DOTASSIGN);
1577 {if (true) return VariableDeclaration.DOT_EQUAL;}
1580 jj_consume_token(TILDEEQUAL);
1581 {if (true) return VariableDeclaration.TILDE_EQUAL;}
1584 jj_la1[32] = jj_gen;
1585 jj_consume_token(-1);
1586 throw new ParseException();
1588 throw new Error("Missing return statement in function");
1591 static final public Expression ConditionalExpression() throws ParseException {
1592 final Expression expr;
1593 Expression expr2 = null;
1594 Expression expr3 = null;
1595 expr = ConditionalOrExpression();
1596 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1598 jj_consume_token(HOOK);
1599 expr2 = Expression();
1600 jj_consume_token(COLON);
1601 expr3 = ConditionalExpression();
1604 jj_la1[33] = jj_gen;
1607 if (expr3 == null) {
1608 {if (true) return expr;}
1610 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1611 throw new Error("Missing return statement in function");
1614 static final public Expression ConditionalOrExpression() throws ParseException {
1615 Expression expr,expr2;
1617 expr = ConditionalAndExpression();
1620 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1626 jj_la1[34] = jj_gen;
1629 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1631 jj_consume_token(OR_OR);
1632 operator = OperatorIds.OR_OR;
1635 jj_consume_token(_ORL);
1636 operator = OperatorIds.ORL;
1639 jj_la1[35] = jj_gen;
1640 jj_consume_token(-1);
1641 throw new ParseException();
1643 expr2 = ConditionalAndExpression();
1644 expr = new BinaryExpression(expr,expr2,operator);
1646 {if (true) return expr;}
1647 throw new Error("Missing return statement in function");
1650 static final public Expression ConditionalAndExpression() throws ParseException {
1651 Expression expr,expr2;
1653 expr = ConcatExpression();
1656 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1662 jj_la1[36] = jj_gen;
1665 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1667 jj_consume_token(AND_AND);
1668 operator = OperatorIds.AND_AND;
1671 jj_consume_token(_ANDL);
1672 operator = OperatorIds.ANDL;
1675 jj_la1[37] = jj_gen;
1676 jj_consume_token(-1);
1677 throw new ParseException();
1679 expr2 = ConcatExpression();
1680 expr = new BinaryExpression(expr,expr2,operator);
1682 {if (true) return expr;}
1683 throw new Error("Missing return statement in function");
1686 static final public Expression ConcatExpression() throws ParseException {
1687 Expression expr,expr2;
1688 expr = InclusiveOrExpression();
1691 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1696 jj_la1[38] = jj_gen;
1699 jj_consume_token(DOT);
1700 expr2 = InclusiveOrExpression();
1701 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1703 {if (true) return expr;}
1704 throw new Error("Missing return statement in function");
1707 static final public Expression InclusiveOrExpression() throws ParseException {
1708 Expression expr,expr2;
1709 expr = ExclusiveOrExpression();
1712 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1717 jj_la1[39] = jj_gen;
1720 jj_consume_token(BIT_OR);
1721 expr2 = ExclusiveOrExpression();
1722 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1724 {if (true) return expr;}
1725 throw new Error("Missing return statement in function");
1728 static final public Expression ExclusiveOrExpression() throws ParseException {
1729 Expression expr,expr2;
1730 expr = AndExpression();
1733 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1738 jj_la1[40] = jj_gen;
1741 jj_consume_token(XOR);
1742 expr2 = AndExpression();
1743 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1745 {if (true) return expr;}
1746 throw new Error("Missing return statement in function");
1749 static final public Expression AndExpression() throws ParseException {
1750 Expression expr,expr2;
1751 expr = EqualityExpression();
1754 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1759 jj_la1[41] = jj_gen;
1762 jj_consume_token(BIT_AND);
1763 expr2 = EqualityExpression();
1764 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1766 {if (true) return expr;}
1767 throw new Error("Missing return statement in function");
1770 static final public Expression EqualityExpression() throws ParseException {
1771 Expression expr,expr2;
1773 expr = RelationalExpression();
1776 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1780 case BANGDOUBLEEQUAL:
1785 jj_la1[42] = jj_gen;
1788 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1790 jj_consume_token(EQUAL_EQUAL);
1791 operator = OperatorIds.EQUAL_EQUAL;
1794 jj_consume_token(DIF);
1795 operator = OperatorIds.DIF;
1798 jj_consume_token(NOT_EQUAL);
1799 operator = OperatorIds.DIF;
1801 case BANGDOUBLEEQUAL:
1802 jj_consume_token(BANGDOUBLEEQUAL);
1803 operator = OperatorIds.BANG_EQUAL_EQUAL;
1806 jj_consume_token(TRIPLEEQUAL);
1807 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1810 jj_la1[43] = jj_gen;
1811 jj_consume_token(-1);
1812 throw new ParseException();
1815 expr2 = RelationalExpression();
1816 } catch (ParseException e) {
1817 if (errorMessage != null) {
1818 {if (true) throw e;}
1820 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1822 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1823 errorEnd = SimpleCharStream.getPosition() + 1;
1824 {if (true) throw e;}
1826 expr = new BinaryExpression(expr,expr2,operator);
1828 {if (true) return expr;}
1829 throw new Error("Missing return statement in function");
1832 static final public Expression RelationalExpression() throws ParseException {
1833 Expression expr,expr2;
1835 expr = ShiftExpression();
1838 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1846 jj_la1[44] = jj_gen;
1849 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1851 jj_consume_token(LT);
1852 operator = OperatorIds.LESS;
1855 jj_consume_token(GT);
1856 operator = OperatorIds.GREATER;
1859 jj_consume_token(LE);
1860 operator = OperatorIds.LESS_EQUAL;
1863 jj_consume_token(GE);
1864 operator = OperatorIds.GREATER_EQUAL;
1867 jj_la1[45] = jj_gen;
1868 jj_consume_token(-1);
1869 throw new ParseException();
1871 expr2 = ShiftExpression();
1872 expr = new BinaryExpression(expr,expr2,operator);
1874 {if (true) return expr;}
1875 throw new Error("Missing return statement in function");
1878 static final public Expression ShiftExpression() throws ParseException {
1879 Expression expr,expr2;
1881 expr = AdditiveExpression();
1884 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1887 case RUNSIGNEDSHIFT:
1891 jj_la1[46] = jj_gen;
1894 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1896 jj_consume_token(LSHIFT);
1897 operator = OperatorIds.LEFT_SHIFT;
1900 jj_consume_token(RSIGNEDSHIFT);
1901 operator = OperatorIds.RIGHT_SHIFT;
1903 case RUNSIGNEDSHIFT:
1904 jj_consume_token(RUNSIGNEDSHIFT);
1905 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1908 jj_la1[47] = jj_gen;
1909 jj_consume_token(-1);
1910 throw new ParseException();
1912 expr2 = AdditiveExpression();
1913 expr = new BinaryExpression(expr,expr2,operator);
1915 {if (true) return expr;}
1916 throw new Error("Missing return statement in function");
1919 static final public Expression AdditiveExpression() throws ParseException {
1920 Expression expr,expr2;
1922 expr = MultiplicativeExpression();
1925 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1931 jj_la1[48] = jj_gen;
1934 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1936 jj_consume_token(PLUS);
1937 operator = OperatorIds.PLUS;
1940 jj_consume_token(MINUS);
1941 operator = OperatorIds.MINUS;
1944 jj_la1[49] = jj_gen;
1945 jj_consume_token(-1);
1946 throw new ParseException();
1948 expr2 = MultiplicativeExpression();
1949 expr = new BinaryExpression(expr,expr2,operator);
1951 {if (true) return expr;}
1952 throw new Error("Missing return statement in function");
1955 static final public Expression MultiplicativeExpression() throws ParseException {
1956 Expression expr,expr2;
1959 expr = UnaryExpression();
1960 } catch (ParseException e) {
1961 if (errorMessage != null) {if (true) throw e;}
1962 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1964 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1965 errorEnd = SimpleCharStream.getPosition() + 1;
1966 {if (true) throw e;}
1970 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1977 jj_la1[50] = jj_gen;
1980 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1982 jj_consume_token(STAR);
1983 operator = OperatorIds.MULTIPLY;
1986 jj_consume_token(SLASH);
1987 operator = OperatorIds.DIVIDE;
1990 jj_consume_token(REMAINDER);
1991 operator = OperatorIds.REMAINDER;
1994 jj_la1[51] = jj_gen;
1995 jj_consume_token(-1);
1996 throw new ParseException();
1998 expr2 = UnaryExpression();
1999 expr = new BinaryExpression(expr,expr2,operator);
2001 {if (true) return expr;}
2002 throw new Error("Missing return statement in function");
2006 * An unary expression starting with @, & or nothing
2008 static final public Expression UnaryExpression() throws ParseException {
2009 final Expression expr;
2010 /* <BIT_AND> expr = UnaryExpressionNoPrefix() //why did I had that ?
2011 {return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
2013 expr = AtNotUnaryExpression();
2014 {if (true) return expr;}
2015 throw new Error("Missing return statement in function");
2019 * An expression prefixed (or not) by one or more @ and !.
2020 * @return the expression
2022 static final public Expression AtNotUnaryExpression() throws ParseException {
2023 final Expression expr;
2025 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2027 token = jj_consume_token(AT);
2028 expr = AtNotUnaryExpression();
2029 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);}
2032 token = jj_consume_token(BANG);
2033 expr = AtNotUnaryExpression();
2034 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);}
2047 case INTEGER_LITERAL:
2048 case FLOATING_POINT_LITERAL:
2049 case STRING_LITERAL:
2053 expr = UnaryExpressionNoPrefix();
2054 {if (true) return expr;}
2057 jj_la1[52] = jj_gen;
2058 jj_consume_token(-1);
2059 throw new ParseException();
2061 throw new Error("Missing return statement in function");
2064 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
2065 final Expression expr;
2067 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2069 token = jj_consume_token(PLUS);
2070 expr = AtNotUnaryExpression();
2071 {if (true) return new PrefixedUnaryExpression(expr,
2073 token.sourceStart);}
2076 token = jj_consume_token(MINUS);
2077 expr = AtNotUnaryExpression();
2078 {if (true) return new PrefixedUnaryExpression(expr,
2080 token.sourceStart);}
2084 expr = PreIncDecExpression();
2085 {if (true) return expr;}
2094 case INTEGER_LITERAL:
2095 case FLOATING_POINT_LITERAL:
2096 case STRING_LITERAL:
2100 expr = UnaryExpressionNotPlusMinus();
2101 {if (true) return expr;}
2104 jj_la1[53] = jj_gen;
2105 jj_consume_token(-1);
2106 throw new ParseException();
2108 throw new Error("Missing return statement in function");
2111 static final public Expression PreIncDecExpression() throws ParseException {
2112 final Expression expr;
2115 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2117 token = jj_consume_token(PLUS_PLUS);
2118 operator = OperatorIds.PLUS_PLUS;
2121 token = jj_consume_token(MINUS_MINUS);
2122 operator = OperatorIds.MINUS_MINUS;
2125 jj_la1[54] = jj_gen;
2126 jj_consume_token(-1);
2127 throw new ParseException();
2129 expr = PrimaryExpression();
2130 {if (true) return new PrefixedUnaryExpression(expr,operator,token.sourceStart);}
2131 throw new Error("Missing return statement in function");
2134 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
2135 final Expression expr;
2136 if (jj_2_3(2147483647)) {
2137 expr = CastExpression();
2138 {if (true) return expr;}
2140 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2147 expr = PostfixExpression();
2148 {if (true) return expr;}
2153 case INTEGER_LITERAL:
2154 case FLOATING_POINT_LITERAL:
2155 case STRING_LITERAL:
2157 {if (true) return expr;}
2160 jj_consume_token(LPAREN);
2161 expr = Expression();
2163 jj_consume_token(RPAREN);
2164 } catch (ParseException e) {
2165 errorMessage = "')' expected";
2167 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2168 errorEnd = SimpleCharStream.getPosition() + 1;
2169 {if (true) throw e;}
2171 {if (true) return expr;}
2174 jj_la1[55] = jj_gen;
2175 jj_consume_token(-1);
2176 throw new ParseException();
2179 throw new Error("Missing return statement in function");
2182 static final public CastExpression CastExpression() throws ParseException {
2183 final ConstantIdentifier type;
2184 final Expression expr;
2185 final Token token,token1;
2186 token1 = jj_consume_token(LPAREN);
2187 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2200 token = jj_consume_token(ARRAY);
2201 type = new ConstantIdentifier(token);
2204 jj_la1[56] = jj_gen;
2205 jj_consume_token(-1);
2206 throw new ParseException();
2208 jj_consume_token(RPAREN);
2209 expr = UnaryExpression();
2210 {if (true) return new CastExpression(type,expr,token1.sourceStart,expr.sourceEnd);}
2211 throw new Error("Missing return statement in function");
2214 static final public Expression PostfixExpression() throws ParseException {
2215 final Expression expr;
2218 expr = PrimaryExpression();
2219 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2222 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2224 token = jj_consume_token(PLUS_PLUS);
2225 operator = OperatorIds.PLUS_PLUS;
2228 token = jj_consume_token(MINUS_MINUS);
2229 operator = OperatorIds.MINUS_MINUS;
2232 jj_la1[57] = jj_gen;
2233 jj_consume_token(-1);
2234 throw new ParseException();
2238 jj_la1[58] = jj_gen;
2241 if (operator == -1) {
2242 {if (true) return expr;}
2244 {if (true) return new PostfixedUnaryExpression(expr,operator,token.sourceEnd);}
2245 throw new Error("Missing return statement in function");
2248 static final public Expression PrimaryExpression() throws ParseException {
2249 Expression expr = null;
2251 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2257 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2259 token = jj_consume_token(BIT_AND);
2262 jj_la1[59] = jj_gen;
2265 expr = refPrimaryExpression(token);
2266 {if (true) return expr;}
2269 expr = ArrayDeclarator();
2270 {if (true) return expr;}
2273 jj_la1[60] = jj_gen;
2274 jj_consume_token(-1);
2275 throw new ParseException();
2277 throw new Error("Missing return statement in function");
2280 static final public Expression refPrimaryExpression(final Token reference) throws ParseException {
2281 Expression expr = null;
2282 Expression expr2 = null;
2283 int assignOperator = -1;
2284 final Token identifier;
2286 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2288 identifier = jj_consume_token(IDENTIFIER);
2289 expr = new ConstantIdentifier(identifier);
2292 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2293 case STATICCLASSACCESS:
2297 jj_la1[61] = jj_gen;
2300 jj_consume_token(STATICCLASSACCESS);
2301 expr2 = ClassIdentifier();
2302 expr = new ClassAccess(expr,
2304 ClassAccess.STATIC);
2306 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2308 expr2 = Arguments(expr);
2311 jj_la1[62] = jj_gen;
2314 if (expr2 == null) {
2315 if (reference != null) {
2316 ParseException e = generateParseException();
2317 errorMessage = "you cannot use a constant by reference";
2319 errorStart = reference.sourceStart;
2320 errorEnd = reference.sourceEnd;
2321 processParseExceptionDebug(e);
2323 {if (true) return expr;}
2325 {if (true) return expr2;}
2329 expr = VariableDeclaratorId();
2330 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2332 expr = Arguments(expr);
2335 jj_la1[63] = jj_gen;
2338 {if (true) return expr;}
2341 token = jj_consume_token(NEW);
2342 expr = ClassIdentifier();
2344 if (reference == null) {
2345 start = token.sourceStart;
2347 start = reference.sourceStart;
2349 expr = new ClassInstantiation(expr,
2352 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2354 expr = Arguments(expr);
2357 jj_la1[64] = jj_gen;
2360 {if (true) return expr;}
2363 jj_la1[65] = jj_gen;
2364 jj_consume_token(-1);
2365 throw new ParseException();
2367 throw new Error("Missing return statement in function");
2371 * An array declarator.
2375 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2376 final ArrayVariableDeclaration[] vars;
2378 token = jj_consume_token(ARRAY);
2379 vars = ArrayInitializer();
2380 {if (true) return new ArrayInitializer(vars,token.sourceStart,SimpleCharStream.getPosition());}
2381 throw new Error("Missing return statement in function");
2384 static final public Expression ClassIdentifier() throws ParseException {
2385 final Expression expr;
2387 final ConstantIdentifier type;
2388 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2390 token = jj_consume_token(IDENTIFIER);
2391 {if (true) return new ConstantIdentifier(token);}
2403 {if (true) return expr;}
2407 expr = VariableDeclaratorId();
2408 {if (true) return expr;}
2411 jj_la1[66] = jj_gen;
2412 jj_consume_token(-1);
2413 throw new ParseException();
2415 throw new Error("Missing return statement in function");
2419 * Used by Variabledeclaratorid and primarysuffix
2421 static final public AbstractVariable VariableSuffix(final AbstractVariable prefix) throws ParseException {
2422 Variable expr = null;
2423 final int pos = SimpleCharStream.getPosition();
2424 Expression expression = null;
2425 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2427 jj_consume_token(CLASSACCESS);
2429 expression = VariableName();
2430 } catch (ParseException e) {
2431 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2433 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2434 errorEnd = SimpleCharStream.getPosition() + 1;
2435 {if (true) throw e;}
2437 {if (true) return new ClassAccess(prefix,
2439 ClassAccess.NORMAL);}
2442 jj_consume_token(LBRACKET);
2443 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2468 case INTEGER_LITERAL:
2469 case FLOATING_POINT_LITERAL:
2470 case STRING_LITERAL:
2474 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2490 case INTEGER_LITERAL:
2491 case FLOATING_POINT_LITERAL:
2492 case STRING_LITERAL:
2496 expression = Expression();
2507 expression = Type();
2510 jj_la1[67] = jj_gen;
2511 jj_consume_token(-1);
2512 throw new ParseException();
2516 jj_la1[68] = jj_gen;
2520 jj_consume_token(RBRACKET);
2521 } catch (ParseException e) {
2522 errorMessage = "']' expected";
2524 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2525 errorEnd = SimpleCharStream.getPosition() + 1;
2526 {if (true) throw e;}
2528 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2531 jj_la1[69] = jj_gen;
2532 jj_consume_token(-1);
2533 throw new ParseException();
2535 throw new Error("Missing return statement in function");
2538 static final public Literal Literal() throws ParseException {
2540 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2541 case INTEGER_LITERAL:
2542 token = jj_consume_token(INTEGER_LITERAL);
2543 {if (true) return new NumberLiteral(token);}
2545 case FLOATING_POINT_LITERAL:
2546 token = jj_consume_token(FLOATING_POINT_LITERAL);
2547 {if (true) return new NumberLiteral(token);}
2549 case STRING_LITERAL:
2550 token = jj_consume_token(STRING_LITERAL);
2551 {if (true) return new StringLiteral(token);}
2554 token = jj_consume_token(TRUE);
2555 {if (true) return new TrueLiteral(token);}
2558 token = jj_consume_token(FALSE);
2559 {if (true) return new FalseLiteral(token);}
2562 token = jj_consume_token(NULL);
2563 {if (true) return new NullLiteral(token);}
2566 jj_la1[70] = jj_gen;
2567 jj_consume_token(-1);
2568 throw new ParseException();
2570 throw new Error("Missing return statement in function");
2573 static final public FunctionCall Arguments(final Expression func) throws ParseException {
2574 Expression[] args = null;
2576 jj_consume_token(LPAREN);
2577 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2593 case INTEGER_LITERAL:
2594 case FLOATING_POINT_LITERAL:
2595 case STRING_LITERAL:
2599 args = ArgumentList();
2602 jj_la1[71] = jj_gen;
2606 token = jj_consume_token(RPAREN);
2607 } catch (ParseException e) {
2608 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2610 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2611 errorEnd = SimpleCharStream.getPosition() + 1;
2612 {if (true) throw e;}
2614 {if (true) return new FunctionCall(func,args,token.sourceEnd);}
2615 throw new Error("Missing return statement in function");
2619 * An argument list is a list of arguments separated by comma :
2620 * argumentDeclaration() (, argumentDeclaration)*
2621 * @return an array of arguments
2623 static final public Expression[] ArgumentList() throws ParseException {
2625 final ArrayList list = new ArrayList();
2630 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2635 jj_la1[72] = jj_gen;
2638 jj_consume_token(COMMA);
2642 } catch (ParseException e) {
2643 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2645 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2646 errorEnd = SimpleCharStream.getPosition() + 1;
2647 {if (true) throw e;}
2650 final Expression[] arguments = new Expression[list.size()];
2651 list.toArray(arguments);
2652 {if (true) return arguments;}
2653 throw new Error("Missing return statement in function");
2657 * A Statement without break.
2658 * @return a statement
2660 static final public Statement StatementNoBreak() throws ParseException {
2661 final Statement statement;
2664 statement = expressionStatement();
2665 {if (true) return statement;}
2667 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2669 statement = LabeledStatement();
2670 {if (true) return statement;}
2673 statement = Block();
2674 {if (true) return statement;}
2677 statement = EmptyStatement();
2678 {if (true) return statement;}
2681 statement = SwitchStatement();
2682 {if (true) return statement;}
2685 statement = IfStatement();
2686 {if (true) return statement;}
2689 statement = WhileStatement();
2690 {if (true) return statement;}
2693 statement = DoStatement();
2694 {if (true) return statement;}
2697 statement = ForStatement();
2698 {if (true) return statement;}
2701 statement = ForeachStatement();
2702 {if (true) return statement;}
2705 statement = ContinueStatement();
2706 {if (true) return statement;}
2709 statement = ReturnStatement();
2710 {if (true) return statement;}
2713 statement = EchoStatement();
2714 {if (true) return statement;}
2721 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2723 token = jj_consume_token(AT);
2726 jj_la1[73] = jj_gen;
2729 statement = IncludeStatement();
2730 if (token != null) {
2731 ((InclusionStatement)statement).silent = true;
2732 statement.sourceStart = token.sourceStart;
2734 {if (true) return statement;}
2737 statement = StaticStatement();
2738 {if (true) return statement;}
2741 statement = GlobalStatement();
2742 {if (true) return statement;}
2745 statement = defineStatement();
2746 currentSegment.add((Outlineable)statement);{if (true) return statement;}
2749 jj_la1[74] = jj_gen;
2750 jj_consume_token(-1);
2751 throw new ParseException();
2754 throw new Error("Missing return statement in function");
2758 * A statement expression.
2760 * @return an expression
2762 static final public Statement expressionStatement() throws ParseException {
2763 final Statement statement;
2765 statement = Expression();
2767 token = jj_consume_token(SEMICOLON);
2768 statement.sourceEnd = token.sourceEnd;
2769 } catch (ParseException e) {
2770 if (e.currentToken.next.kind != PHPParserConstants.PHPEND) {
2771 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2773 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2774 errorEnd = SimpleCharStream.getPosition() + 1;
2775 {if (true) throw e;}
2778 {if (true) return statement;}
2779 throw new Error("Missing return statement in function");
2782 static final public Define defineStatement() throws ParseException {
2783 final int start = SimpleCharStream.getPosition();
2784 Expression defineName,defineValue;
2785 jj_consume_token(DEFINE);
2787 jj_consume_token(LPAREN);
2788 } catch (ParseException e) {
2789 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2791 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2792 errorEnd = SimpleCharStream.getPosition() + 1;
2793 processParseExceptionDebug(e);
2796 defineName = Expression();
2797 } catch (ParseException e) {
2798 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
2800 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2801 errorEnd = SimpleCharStream.getPosition() + 1;
2802 {if (true) throw e;}
2805 jj_consume_token(COMMA);
2806 } catch (ParseException e) {
2807 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2809 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2810 errorEnd = SimpleCharStream.getPosition() + 1;
2811 processParseExceptionDebug(e);
2814 defineValue = Expression();
2815 } catch (ParseException e) {
2816 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
2818 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2819 errorEnd = SimpleCharStream.getPosition() + 1;
2820 {if (true) throw e;}
2823 jj_consume_token(RPAREN);
2824 } catch (ParseException e) {
2825 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2827 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2828 errorEnd = SimpleCharStream.getPosition() + 1;
2829 processParseExceptionDebug(e);
2831 {if (true) return new Define(currentSegment,
2835 SimpleCharStream.getPosition());}
2836 throw new Error("Missing return statement in function");
2840 * A Normal statement.
2842 static final public Statement Statement() throws ParseException {
2843 final Statement statement;
2844 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2876 case INTEGER_LITERAL:
2877 case FLOATING_POINT_LITERAL:
2878 case STRING_LITERAL:
2884 statement = StatementNoBreak();
2885 {if (true) return statement;}
2888 statement = BreakStatement();
2889 {if (true) return statement;}
2892 jj_la1[75] = jj_gen;
2893 jj_consume_token(-1);
2894 throw new ParseException();
2896 throw new Error("Missing return statement in function");
2900 * An html block inside a php syntax.
2902 static final public HTMLBlock htmlBlock() throws ParseException {
2903 final int startIndex = nodePtr;
2904 final AstNode[] blockNodes;
2906 jj_consume_token(PHPEND);
2909 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2914 jj_la1[76] = jj_gen;
2920 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2922 jj_consume_token(PHPSTARTLONG);
2925 jj_consume_token(PHPSTARTSHORT);
2928 jj_la1[77] = jj_gen;
2929 jj_consume_token(-1);
2930 throw new ParseException();
2932 } catch (ParseException e) {
2933 errorMessage = "unexpected end of file , '<?php' expected";
2935 errorStart = SimpleCharStream.getPosition();
2936 errorEnd = SimpleCharStream.getPosition();
2937 {if (true) throw e;}
2939 nbNodes = nodePtr - startIndex;
2940 blockNodes = new AstNode[nbNodes];
2941 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2942 nodePtr = startIndex;
2943 {if (true) return new HTMLBlock(blockNodes);}
2944 throw new Error("Missing return statement in function");
2948 * An include statement. It's "include" an expression;
2950 static final public InclusionStatement IncludeStatement() throws ParseException {
2951 final Expression expr;
2953 final InclusionStatement inclusionStatement;
2954 final Token token, token2;
2955 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2957 token = jj_consume_token(REQUIRE);
2958 keyword = InclusionStatement.REQUIRE;
2961 token = jj_consume_token(REQUIRE_ONCE);
2962 keyword = InclusionStatement.REQUIRE_ONCE;
2965 token = jj_consume_token(INCLUDE);
2966 keyword = InclusionStatement.INCLUDE;
2969 token = jj_consume_token(INCLUDE_ONCE);
2970 keyword = InclusionStatement.INCLUDE_ONCE;
2973 jj_la1[78] = jj_gen;
2974 jj_consume_token(-1);
2975 throw new ParseException();
2978 expr = Expression();
2979 } catch (ParseException e) {
2980 if (errorMessage != null) {
2981 {if (true) throw e;}
2983 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2985 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2986 errorEnd = SimpleCharStream.getPosition() + 1;
2987 {if (true) throw e;}
2989 inclusionStatement = new InclusionStatement(currentSegment,
2993 currentSegment.add(inclusionStatement);
2995 token2 = jj_consume_token(SEMICOLON);
2996 } catch (ParseException e) {
2997 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2999 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3000 errorEnd = SimpleCharStream.getPosition() + 1;
3001 {if (true) throw e;}
3003 inclusionStatement.sourceEnd = token2.sourceEnd;
3004 {if (true) return inclusionStatement;}
3005 throw new Error("Missing return statement in function");
3008 static final public PrintExpression PrintExpression() throws ParseException {
3009 final Expression expr;
3010 final int pos = SimpleCharStream.getPosition();
3011 jj_consume_token(PRINT);
3012 expr = Expression();
3013 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
3014 throw new Error("Missing return statement in function");
3017 static final public ListExpression ListExpression() throws ParseException {
3018 Expression expr = null;
3019 final Expression expression;
3020 final ArrayList list = new ArrayList();
3021 final int pos = SimpleCharStream.getPosition();
3022 jj_consume_token(LIST);
3024 jj_consume_token(LPAREN);
3025 } catch (ParseException e) {
3026 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
3028 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3029 errorEnd = SimpleCharStream.getPosition() + 1;
3030 {if (true) throw e;}
3032 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3035 expr = VariableDeclaratorId();
3039 jj_la1[79] = jj_gen;
3042 if (expr == null) list.add(null);
3045 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3050 jj_la1[80] = jj_gen;
3054 jj_consume_token(COMMA);
3055 } catch (ParseException e) {
3056 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
3058 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3059 errorEnd = SimpleCharStream.getPosition() + 1;
3060 {if (true) throw e;}
3062 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3065 expr = VariableDeclaratorId();
3069 jj_la1[81] = jj_gen;
3074 jj_consume_token(RPAREN);
3075 } catch (ParseException e) {
3076 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
3078 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3079 errorEnd = SimpleCharStream.getPosition() + 1;
3080 {if (true) throw e;}
3082 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3084 jj_consume_token(ASSIGN);
3085 expression = Expression();
3086 final Variable[] vars = new Variable[list.size()];
3088 {if (true) return new ListExpression(vars,
3091 SimpleCharStream.getPosition());}
3094 jj_la1[82] = jj_gen;
3097 final Variable[] vars = new Variable[list.size()];
3099 {if (true) return new ListExpression(vars,pos,SimpleCharStream.getPosition());}
3100 throw new Error("Missing return statement in function");
3104 * An echo statement.
3105 * echo anyexpression (, otherexpression)*
3107 static final public EchoStatement EchoStatement() throws ParseException {
3108 final ArrayList expressions = new ArrayList();
3111 Token token2 = null;
3112 token = jj_consume_token(ECHO);
3113 expr = Expression();
3114 expressions.add(expr);
3117 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3122 jj_la1[83] = jj_gen;
3125 jj_consume_token(COMMA);
3126 expr = Expression();
3127 expressions.add(expr);
3130 token2 = jj_consume_token(SEMICOLON);
3131 } catch (ParseException e) {
3132 if (e.currentToken.next.kind != 4) {
3133 errorMessage = "';' expected after 'echo' statement";
3135 errorStart = e.currentToken.sourceEnd;
3136 errorEnd = e.currentToken.sourceEnd;
3137 processParseExceptionDebug(e);
3140 final Expression[] exprs = new Expression[expressions.size()];
3141 expressions.toArray(exprs);
3142 if (token2 == null) {
3143 {if (true) return new EchoStatement(exprs,token.sourceStart, exprs[exprs.length-1].sourceEnd);}
3145 {if (true) return new EchoStatement(exprs,token.sourceStart, token2.sourceEnd);}
3146 throw new Error("Missing return statement in function");
3149 static final public GlobalStatement GlobalStatement() throws ParseException {
3151 final ArrayList vars = new ArrayList();
3152 final GlobalStatement global;
3153 final Token token, token2;
3154 token = jj_consume_token(GLOBAL);
3159 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3164 jj_la1[84] = jj_gen;
3167 jj_consume_token(COMMA);
3172 token2 = jj_consume_token(SEMICOLON);
3173 final Variable[] variables = new Variable[vars.size()];
3174 vars.toArray(variables);
3175 global = new GlobalStatement(currentSegment,
3179 currentSegment.add(global);
3180 {if (true) return global;}
3181 } catch (ParseException e) {
3182 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3184 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3185 errorEnd = SimpleCharStream.getPosition() + 1;
3186 {if (true) throw e;}
3188 throw new Error("Missing return statement in function");
3191 static final public StaticStatement StaticStatement() throws ParseException {
3192 final ArrayList vars = new ArrayList();
3193 VariableDeclaration expr;
3194 final Token token, token2;
3195 token = jj_consume_token(STATIC);
3196 expr = VariableDeclarator();
3200 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3205 jj_la1[85] = jj_gen;
3208 jj_consume_token(COMMA);
3209 expr = VariableDeclarator();
3213 token2 = jj_consume_token(SEMICOLON);
3214 final VariableDeclaration[] variables = new VariableDeclaration[vars.size()];
3215 vars.toArray(variables);
3216 {if (true) return new StaticStatement(variables,
3219 } catch (ParseException e) {
3220 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3222 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3223 errorEnd = SimpleCharStream.getPosition() + 1;
3224 {if (true) throw e;}
3226 throw new Error("Missing return statement in function");
3229 static final public LabeledStatement LabeledStatement() throws ParseException {
3231 final Statement statement;
3232 label = jj_consume_token(IDENTIFIER);
3233 jj_consume_token(COLON);
3234 statement = Statement();
3235 {if (true) return new LabeledStatement(label.image,statement,label.sourceStart,statement.sourceEnd);}
3236 throw new Error("Missing return statement in function");
3246 static final public Block Block() throws ParseException {
3247 final ArrayList list = new ArrayList();
3248 Statement statement;
3249 final Token token, token2;
3251 token = jj_consume_token(LBRACE);
3252 } catch (ParseException e) {
3253 errorMessage = "'{' expected";
3255 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3256 errorEnd = SimpleCharStream.getPosition() + 1;
3257 {if (true) throw e;}
3261 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3297 case INTEGER_LITERAL:
3298 case FLOATING_POINT_LITERAL:
3299 case STRING_LITERAL:
3308 jj_la1[86] = jj_gen;
3311 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3346 case INTEGER_LITERAL:
3347 case FLOATING_POINT_LITERAL:
3348 case STRING_LITERAL:
3354 statement = BlockStatement();
3355 list.add(statement);
3358 statement = htmlBlock();
3359 list.add(statement);
3362 jj_la1[87] = jj_gen;
3363 jj_consume_token(-1);
3364 throw new ParseException();
3368 token2 = jj_consume_token(RBRACE);
3369 } catch (ParseException e) {
3370 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3372 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3373 errorEnd = SimpleCharStream.getPosition() + 1;
3374 {if (true) throw e;}
3376 final Statement[] statements = new Statement[list.size()];
3377 list.toArray(statements);
3378 {if (true) return new Block(statements,token.sourceStart,token2.sourceEnd);}
3379 throw new Error("Missing return statement in function");
3382 static final public Statement BlockStatement() throws ParseException {
3383 final Statement statement;
3384 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3417 case INTEGER_LITERAL:
3418 case FLOATING_POINT_LITERAL:
3419 case STRING_LITERAL:
3426 statement = Statement();
3427 if (phpDocument == currentSegment) pushOnAstNodes(statement);
3428 {if (true) return statement;}
3429 } catch (ParseException e) {
3430 errorMessage = "unexpected token : '"+ e.currentToken.image +"', a statement was expected";
3432 errorStart = e.currentToken.sourceStart;
3433 errorEnd = e.currentToken.sourceEnd;
3434 {if (true) throw e;}
3438 statement = ClassDeclaration();
3439 {if (true) return statement;}
3442 statement = MethodDeclaration();
3443 if (phpDocument == currentSegment) pushOnAstNodes(statement);
3444 currentSegment.add((MethodDeclaration) statement);
3445 ((MethodDeclaration) statement).analyzeCode();
3446 {if (true) return statement;}
3449 jj_la1[88] = jj_gen;
3450 jj_consume_token(-1);
3451 throw new ParseException();
3453 throw new Error("Missing return statement in function");
3457 * A Block statement that will not contain any 'break'
3459 static final public Statement BlockStatementNoBreak() throws ParseException {
3460 final Statement statement;
3461 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3493 case INTEGER_LITERAL:
3494 case FLOATING_POINT_LITERAL:
3495 case STRING_LITERAL:
3501 statement = StatementNoBreak();
3502 {if (true) return statement;}
3505 statement = ClassDeclaration();
3506 {if (true) return statement;}
3509 statement = MethodDeclaration();
3510 currentSegment.add((MethodDeclaration) statement);
3511 ((MethodDeclaration) statement).analyzeCode();
3512 {if (true) return statement;}
3515 jj_la1[89] = jj_gen;
3516 jj_consume_token(-1);
3517 throw new ParseException();
3519 throw new Error("Missing return statement in function");
3523 * used only by ForInit()
3525 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3526 final ArrayList list = new ArrayList();
3527 VariableDeclaration var;
3528 var = LocalVariableDeclarator();
3532 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3537 jj_la1[90] = jj_gen;
3540 jj_consume_token(COMMA);
3541 var = LocalVariableDeclarator();
3544 final VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3546 {if (true) return vars;}
3547 throw new Error("Missing return statement in function");
3551 * used only by LocalVariableDeclaration().
3553 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3554 final Variable varName;
3555 Expression initializer = null;
3556 varName = Variable();
3557 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3559 jj_consume_token(ASSIGN);
3560 initializer = Expression();
3563 jj_la1[91] = jj_gen;
3566 if (initializer == null) {
3567 {if (true) return new VariableDeclaration(currentSegment,
3569 varName.sourceStart,
3570 varName.sourceEnd);}
3572 {if (true) return new VariableDeclaration(currentSegment,
3575 VariableDeclaration.EQUAL,
3576 varName.sourceStart);}
3577 throw new Error("Missing return statement in function");
3580 static final public EmptyStatement EmptyStatement() throws ParseException {
3582 token = jj_consume_token(SEMICOLON);
3583 {if (true) return new EmptyStatement(token.sourceStart,token.sourceEnd);}
3584 throw new Error("Missing return statement in function");
3588 * used only by StatementExpressionList() which is used only by ForInit() and ForStatement()
3590 static final public Expression StatementExpression() throws ParseException {
3591 final Expression expr,expr2;
3593 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3596 expr = PreIncDecExpression();
3597 {if (true) return expr;}
3605 expr = PrimaryExpression();
3606 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3609 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3611 jj_consume_token(PLUS_PLUS);
3612 {if (true) return new PostfixedUnaryExpression(expr,
3613 OperatorIds.PLUS_PLUS,
3614 SimpleCharStream.getPosition());}
3617 jj_consume_token(MINUS_MINUS);
3618 {if (true) return new PostfixedUnaryExpression(expr,
3619 OperatorIds.MINUS_MINUS,
3620 SimpleCharStream.getPosition());}
3623 jj_la1[92] = jj_gen;
3624 jj_consume_token(-1);
3625 throw new ParseException();
3629 jj_la1[93] = jj_gen;
3632 {if (true) return expr;}
3635 jj_la1[94] = jj_gen;
3636 jj_consume_token(-1);
3637 throw new ParseException();
3639 throw new Error("Missing return statement in function");
3642 static final public SwitchStatement SwitchStatement() throws ParseException {
3643 final Expression variable;
3644 final AbstractCase[] cases;
3645 final int pos = SimpleCharStream.getPosition();
3646 jj_consume_token(SWITCH);
3648 jj_consume_token(LPAREN);
3649 } catch (ParseException e) {
3650 errorMessage = "'(' expected after 'switch'";
3652 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3653 errorEnd = SimpleCharStream.getPosition() + 1;
3654 {if (true) throw e;}
3657 variable = Expression();
3658 } catch (ParseException e) {
3659 if (errorMessage != null) {
3660 {if (true) throw e;}
3662 errorMessage = "expression expected";
3664 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3665 errorEnd = SimpleCharStream.getPosition() + 1;
3666 {if (true) throw e;}
3669 jj_consume_token(RPAREN);
3670 } catch (ParseException e) {
3671 errorMessage = "')' expected";
3673 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3674 errorEnd = SimpleCharStream.getPosition() + 1;
3675 {if (true) throw e;}
3677 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3679 cases = switchStatementBrace();
3682 cases = switchStatementColon(pos, pos + 6);
3685 jj_la1[95] = jj_gen;
3686 jj_consume_token(-1);
3687 throw new ParseException();
3689 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3690 throw new Error("Missing return statement in function");
3693 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3695 final ArrayList cases = new ArrayList();
3696 jj_consume_token(LBRACE);
3699 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3705 jj_la1[96] = jj_gen;
3708 cas = switchLabel0();
3712 jj_consume_token(RBRACE);
3713 final AbstractCase[] abcase = new AbstractCase[cases.size()];
3714 cases.toArray(abcase);
3715 {if (true) return abcase;}
3716 } catch (ParseException e) {
3717 errorMessage = "'}' expected";
3719 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3720 errorEnd = SimpleCharStream.getPosition() + 1;
3721 {if (true) throw e;}
3723 throw new Error("Missing return statement in function");
3727 * A Switch statement with : ... endswitch;
3728 * @param start the begin offset of the switch
3729 * @param end the end offset of the switch
3731 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3733 final ArrayList cases = new ArrayList();
3734 jj_consume_token(COLON);
3736 setMarker(fileToParse,
3737 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3741 "Line " + token.beginLine);
3742 } catch (CoreException e) {
3743 PHPeclipsePlugin.log(e);
3747 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3753 jj_la1[97] = jj_gen;
3756 cas = switchLabel0();
3760 jj_consume_token(ENDSWITCH);
3761 } catch (ParseException e) {
3762 errorMessage = "'endswitch' expected";
3764 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3765 errorEnd = SimpleCharStream.getPosition() + 1;
3766 {if (true) throw e;}
3769 jj_consume_token(SEMICOLON);
3770 final AbstractCase[] abcase = new AbstractCase[cases.size()];
3771 cases.toArray(abcase);
3772 {if (true) return abcase;}
3773 } catch (ParseException e) {
3774 errorMessage = "';' expected after 'endswitch' keyword";
3776 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3777 errorEnd = SimpleCharStream.getPosition() + 1;
3778 {if (true) throw e;}
3780 throw new Error("Missing return statement in function");
3783 static final public AbstractCase switchLabel0() throws ParseException {
3784 final Expression expr;
3785 Statement statement;
3786 final ArrayList stmts = new ArrayList();
3787 final int pos = SimpleCharStream.getPosition();
3788 expr = SwitchLabel();
3791 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3826 case INTEGER_LITERAL:
3827 case FLOATING_POINT_LITERAL:
3828 case STRING_LITERAL:
3837 jj_la1[98] = jj_gen;
3840 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3874 case INTEGER_LITERAL:
3875 case FLOATING_POINT_LITERAL:
3876 case STRING_LITERAL:
3882 statement = BlockStatementNoBreak();
3883 stmts.add(statement);
3886 statement = htmlBlock();
3887 stmts.add(statement);
3890 jj_la1[99] = jj_gen;
3891 jj_consume_token(-1);
3892 throw new ParseException();
3895 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3897 statement = BreakStatement();
3898 stmts.add(statement);
3901 jj_la1[100] = jj_gen;
3904 final Statement[] stmtsArray = new Statement[stmts.size()];
3905 stmts.toArray(stmtsArray);
3906 if (expr == null) {//it's a default
3907 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3909 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3910 throw new Error("Missing return statement in function");
3915 * case Expression() :
3917 * @return the if it was a case and null if not
3919 static final public Expression SwitchLabel() throws ParseException {
3920 final Expression expr;
3921 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3923 token = jj_consume_token(CASE);
3925 expr = Expression();
3926 } catch (ParseException e) {
3927 if (errorMessage != null) {if (true) throw e;}
3928 errorMessage = "expression expected after 'case' keyword";
3930 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3931 errorEnd = SimpleCharStream.getPosition() + 1;
3932 {if (true) throw e;}
3935 jj_consume_token(COLON);
3936 {if (true) return expr;}
3937 } catch (ParseException e) {
3938 errorMessage = "':' expected after case expression";
3940 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3941 errorEnd = SimpleCharStream.getPosition() + 1;
3942 {if (true) throw e;}
3946 token = jj_consume_token(_DEFAULT);
3948 jj_consume_token(COLON);
3949 {if (true) return null;}
3950 } catch (ParseException e) {
3951 errorMessage = "':' expected after 'default' keyword";
3953 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3954 errorEnd = SimpleCharStream.getPosition() + 1;
3955 {if (true) throw e;}
3959 jj_la1[101] = jj_gen;
3960 jj_consume_token(-1);
3961 throw new ParseException();
3963 throw new Error("Missing return statement in function");
3966 static final public Break BreakStatement() throws ParseException {
3967 Expression expression = null;
3968 final Token token, token2;
3969 token = jj_consume_token(BREAK);
3970 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3986 case INTEGER_LITERAL:
3987 case FLOATING_POINT_LITERAL:
3988 case STRING_LITERAL:
3992 expression = Expression();
3995 jj_la1[102] = jj_gen;
3999 token2 = jj_consume_token(SEMICOLON);
4000 } catch (ParseException e) {
4001 errorMessage = "';' expected after 'break' keyword";
4003 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4004 errorEnd = SimpleCharStream.getPosition() + 1;
4005 {if (true) throw e;}
4007 {if (true) return new Break(expression, token.sourceStart, token2.sourceEnd);}
4008 throw new Error("Missing return statement in function");
4011 static final public IfStatement IfStatement() throws ParseException {
4012 final int pos = SimpleCharStream.getPosition();
4013 final Expression condition;
4014 final IfStatement ifStatement;
4016 token = jj_consume_token(IF);
4017 condition = Condition("if");
4018 ifStatement = IfStatement0(condition,
4019 token.sourceStart,token.sourceStart+2);
4020 {if (true) return ifStatement;}
4021 throw new Error("Missing return statement in function");
4024 static final public Expression Condition(final String keyword) throws ParseException {
4025 final Expression condition;
4027 jj_consume_token(LPAREN);
4028 } catch (ParseException e) {
4029 errorMessage = "'(' expected after " + keyword + " keyword";
4031 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length();
4032 errorEnd = errorStart +1;
4033 processParseExceptionDebug(e);
4035 condition = Expression();
4037 jj_consume_token(RPAREN);
4038 } catch (ParseException e) {
4039 errorMessage = "')' expected after " + keyword + " keyword";
4041 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4042 errorEnd = SimpleCharStream.getPosition() + 1;
4043 processParseExceptionDebug(e);
4045 {if (true) return condition;}
4046 throw new Error("Missing return statement in function");
4049 static final public IfStatement IfStatement0(final Expression condition, final int start,final int end) throws ParseException {
4050 Statement statement;
4051 final Statement stmt;
4052 final Statement[] statementsArray;
4053 ElseIf elseifStatement;
4054 Else elseStatement = null;
4055 final ArrayList stmts;
4056 final ArrayList elseIfList = new ArrayList();
4057 final ElseIf[] elseIfs;
4058 int pos = SimpleCharStream.getPosition();
4059 final int endStatements;
4060 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4062 jj_consume_token(COLON);
4063 stmts = new ArrayList();
4066 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4100 case INTEGER_LITERAL:
4101 case FLOATING_POINT_LITERAL:
4102 case STRING_LITERAL:
4111 jj_la1[103] = jj_gen;
4114 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4147 case INTEGER_LITERAL:
4148 case FLOATING_POINT_LITERAL:
4149 case STRING_LITERAL:
4155 statement = Statement();
4156 stmts.add(statement);
4159 statement = htmlBlock();
4160 stmts.add(statement);
4163 jj_la1[104] = jj_gen;
4164 jj_consume_token(-1);
4165 throw new ParseException();
4168 endStatements = SimpleCharStream.getPosition();
4171 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4176 jj_la1[105] = jj_gen;
4179 elseifStatement = ElseIfStatementColon();
4180 elseIfList.add(elseifStatement);
4182 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4184 elseStatement = ElseStatementColon();
4187 jj_la1[106] = jj_gen;
4191 setMarker(fileToParse,
4192 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
4196 "Line " + token.beginLine);
4197 } catch (CoreException e) {
4198 PHPeclipsePlugin.log(e);
4201 jj_consume_token(ENDIF);
4202 } catch (ParseException e) {
4203 errorMessage = "'endif' expected";
4205 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4206 errorEnd = SimpleCharStream.getPosition() + 1;
4207 {if (true) throw e;}
4210 jj_consume_token(SEMICOLON);
4211 } catch (ParseException e) {
4212 errorMessage = "';' expected after 'endif' keyword";
4214 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4215 errorEnd = SimpleCharStream.getPosition() + 1;
4216 {if (true) throw e;}
4218 elseIfs = new ElseIf[elseIfList.size()];
4219 elseIfList.toArray(elseIfs);
4220 if (stmts.size() == 1) {
4221 {if (true) return new IfStatement(condition,
4222 (Statement) stmts.get(0),
4226 SimpleCharStream.getPosition());}
4228 statementsArray = new Statement[stmts.size()];
4229 stmts.toArray(statementsArray);
4230 {if (true) return new IfStatement(condition,
4231 new Block(statementsArray,pos,endStatements),
4235 SimpleCharStream.getPosition());}
4271 case INTEGER_LITERAL:
4272 case FLOATING_POINT_LITERAL:
4273 case STRING_LITERAL:
4279 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4312 case INTEGER_LITERAL:
4313 case FLOATING_POINT_LITERAL:
4314 case STRING_LITERAL:
4326 jj_la1[107] = jj_gen;
4327 jj_consume_token(-1);
4328 throw new ParseException();
4332 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4337 jj_la1[108] = jj_gen;
4340 elseifStatement = ElseIfStatement();
4341 elseIfList.add(elseifStatement);
4343 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4345 jj_consume_token(ELSE);
4347 pos = SimpleCharStream.getPosition();
4348 statement = Statement();
4349 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4350 } catch (ParseException e) {
4351 if (errorMessage != null) {
4352 {if (true) throw e;}
4354 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4356 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4357 errorEnd = SimpleCharStream.getPosition() + 1;
4358 {if (true) throw e;}
4362 jj_la1[109] = jj_gen;
4365 elseIfs = new ElseIf[elseIfList.size()];
4366 elseIfList.toArray(elseIfs);
4367 {if (true) return new IfStatement(condition,
4372 SimpleCharStream.getPosition());}
4375 jj_la1[110] = jj_gen;
4376 jj_consume_token(-1);
4377 throw new ParseException();
4379 throw new Error("Missing return statement in function");
4382 static final public ElseIf ElseIfStatementColon() throws ParseException {
4383 final Expression condition;
4384 Statement statement;
4385 final ArrayList list = new ArrayList();
4386 final int pos = SimpleCharStream.getPosition();
4387 jj_consume_token(ELSEIF);
4388 condition = Condition("elseif");
4389 jj_consume_token(COLON);
4392 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4426 case INTEGER_LITERAL:
4427 case FLOATING_POINT_LITERAL:
4428 case STRING_LITERAL:
4437 jj_la1[111] = jj_gen;
4440 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4473 case INTEGER_LITERAL:
4474 case FLOATING_POINT_LITERAL:
4475 case STRING_LITERAL:
4481 statement = Statement();
4482 list.add(statement);
4485 statement = htmlBlock();
4486 list.add(statement);
4489 jj_la1[112] = jj_gen;
4490 jj_consume_token(-1);
4491 throw new ParseException();
4494 final Statement[] stmtsArray = new Statement[list.size()];
4495 list.toArray(stmtsArray);
4496 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4497 throw new Error("Missing return statement in function");
4500 static final public Else ElseStatementColon() throws ParseException {
4501 Statement statement;
4502 final ArrayList list = new ArrayList();
4503 final int pos = SimpleCharStream.getPosition();
4504 jj_consume_token(ELSE);
4505 jj_consume_token(COLON);
4508 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4542 case INTEGER_LITERAL:
4543 case FLOATING_POINT_LITERAL:
4544 case STRING_LITERAL:
4553 jj_la1[113] = jj_gen;
4556 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4589 case INTEGER_LITERAL:
4590 case FLOATING_POINT_LITERAL:
4591 case STRING_LITERAL:
4597 statement = Statement();
4598 list.add(statement);
4601 statement = htmlBlock();
4602 list.add(statement);
4605 jj_la1[114] = jj_gen;
4606 jj_consume_token(-1);
4607 throw new ParseException();
4610 final Statement[] stmtsArray = new Statement[list.size()];
4611 list.toArray(stmtsArray);
4612 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4613 throw new Error("Missing return statement in function");
4616 static final public ElseIf ElseIfStatement() throws ParseException {
4617 final Expression condition;
4618 final Statement statement;
4619 final ArrayList list = new ArrayList();
4620 final int pos = SimpleCharStream.getPosition();
4621 jj_consume_token(ELSEIF);
4622 condition = Condition("elseif");
4623 statement = Statement();
4624 list.add(statement);/*todo:do better*/
4625 final Statement[] stmtsArray = new Statement[list.size()];
4626 list.toArray(stmtsArray);
4627 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4628 throw new Error("Missing return statement in function");
4631 static final public WhileStatement WhileStatement() throws ParseException {
4632 final Expression condition;
4633 final Statement action;
4634 final int pos = SimpleCharStream.getPosition();
4635 jj_consume_token(WHILE);
4636 condition = Condition("while");
4637 action = WhileStatement0(pos,pos + 5);
4638 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4639 throw new Error("Missing return statement in function");
4642 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4643 Statement statement;
4644 final ArrayList stmts = new ArrayList();
4645 final int pos = SimpleCharStream.getPosition();
4646 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4648 jj_consume_token(COLON);
4651 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4684 case INTEGER_LITERAL:
4685 case FLOATING_POINT_LITERAL:
4686 case STRING_LITERAL:
4695 jj_la1[115] = jj_gen;
4698 statement = Statement();
4699 stmts.add(statement);
4702 setMarker(fileToParse,
4703 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4707 "Line " + token.beginLine);
4708 } catch (CoreException e) {
4709 PHPeclipsePlugin.log(e);
4712 jj_consume_token(ENDWHILE);
4713 } catch (ParseException e) {
4714 errorMessage = "'endwhile' expected";
4716 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4717 errorEnd = SimpleCharStream.getPosition() + 1;
4718 {if (true) throw e;}
4721 jj_consume_token(SEMICOLON);
4722 final Statement[] stmtsArray = new Statement[stmts.size()];
4723 stmts.toArray(stmtsArray);
4724 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4725 } catch (ParseException e) {
4726 errorMessage = "';' expected after 'endwhile' keyword";
4728 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4729 errorEnd = SimpleCharStream.getPosition() + 1;
4730 {if (true) throw e;}
4765 case INTEGER_LITERAL:
4766 case FLOATING_POINT_LITERAL:
4767 case STRING_LITERAL:
4773 statement = Statement();
4774 {if (true) return statement;}
4777 jj_la1[116] = jj_gen;
4778 jj_consume_token(-1);
4779 throw new ParseException();
4781 throw new Error("Missing return statement in function");
4784 static final public DoStatement DoStatement() throws ParseException {
4785 final Statement action;
4786 final Expression condition;
4787 final Token token, token2;
4788 token = jj_consume_token(DO);
4789 action = Statement();
4790 jj_consume_token(WHILE);
4791 condition = Condition("while");
4793 token2 = jj_consume_token(SEMICOLON);
4794 {if (true) return new DoStatement(condition,action,token.sourceStart,token2.sourceEnd);}
4795 } catch (ParseException e) {
4796 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4798 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4799 errorEnd = SimpleCharStream.getPosition() + 1;
4800 {if (true) throw e;}
4802 throw new Error("Missing return statement in function");
4805 static final public ForeachStatement ForeachStatement() throws ParseException {
4806 Statement statement;
4807 Expression expression;
4808 ArrayVariableDeclaration variable;
4810 token = jj_consume_token(FOREACH);
4812 jj_consume_token(LPAREN);
4813 } catch (ParseException e) {
4814 errorMessage = "'(' expected after 'foreach' keyword";
4816 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4817 errorEnd = SimpleCharStream.getPosition() + 1;
4818 {if (true) throw e;}
4821 expression = Expression();
4822 } catch (ParseException e) {
4823 errorMessage = "variable expected";
4825 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4826 errorEnd = SimpleCharStream.getPosition() + 1;
4827 {if (true) throw e;}
4830 jj_consume_token(AS);
4831 } catch (ParseException e) {
4832 errorMessage = "'as' expected";
4834 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4835 errorEnd = SimpleCharStream.getPosition() + 1;
4836 {if (true) throw e;}
4839 variable = ArrayVariable();
4840 } catch (ParseException e) {
4841 errorMessage = "variable expected";
4843 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4844 errorEnd = SimpleCharStream.getPosition() + 1;
4845 {if (true) throw e;}
4848 jj_consume_token(RPAREN);
4849 } catch (ParseException e) {
4850 errorMessage = "')' expected after 'foreach' keyword";
4852 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4853 errorEnd = SimpleCharStream.getPosition() + 1;
4854 {if (true) throw e;}
4857 statement = Statement();
4858 } catch (ParseException e) {
4859 if (errorMessage != null) {if (true) throw e;}
4860 errorMessage = "statement expected";
4862 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4863 errorEnd = SimpleCharStream.getPosition() + 1;
4864 {if (true) throw e;}
4866 {if (true) return new ForeachStatement(expression,
4870 statement.sourceEnd);}
4871 throw new Error("Missing return statement in function");
4874 static final public ForStatement ForStatement() throws ParseException {
4875 final Token token,token2;
4876 final int pos = SimpleCharStream.getPosition();
4877 Expression[] initializations = null;
4878 Expression condition = null;
4879 Expression[] increments = null;
4881 final ArrayList list = new ArrayList();
4882 final int startBlock, endBlock;
4883 token = jj_consume_token(FOR);
4885 jj_consume_token(LPAREN);
4886 } catch (ParseException e) {
4887 errorMessage = "'(' expected after 'for' keyword";
4889 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4890 errorEnd = SimpleCharStream.getPosition() + 1;
4891 {if (true) throw e;}
4893 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4902 initializations = ForInit();
4905 jj_la1[117] = jj_gen;
4908 jj_consume_token(SEMICOLON);
4909 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4925 case INTEGER_LITERAL:
4926 case FLOATING_POINT_LITERAL:
4927 case STRING_LITERAL:
4931 condition = Expression();
4934 jj_la1[118] = jj_gen;
4937 jj_consume_token(SEMICOLON);
4938 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4947 increments = StatementExpressionList();
4950 jj_la1[119] = jj_gen;
4953 jj_consume_token(RPAREN);
4954 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4987 case INTEGER_LITERAL:
4988 case FLOATING_POINT_LITERAL:
4989 case STRING_LITERAL:
4995 action = Statement();
4996 {if (true) return new ForStatement(initializations,
5004 jj_consume_token(COLON);
5005 startBlock = SimpleCharStream.getPosition();
5008 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5041 case INTEGER_LITERAL:
5042 case FLOATING_POINT_LITERAL:
5043 case STRING_LITERAL:
5052 jj_la1[120] = jj_gen;
5055 action = Statement();
5059 setMarker(fileToParse,
5060 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
5062 pos+token.image.length(),
5064 "Line " + token.beginLine);
5065 } catch (CoreException e) {
5066 PHPeclipsePlugin.log(e);
5068 endBlock = SimpleCharStream.getPosition();
5070 jj_consume_token(ENDFOR);
5071 } catch (ParseException e) {
5072 errorMessage = "'endfor' expected";
5074 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5075 errorEnd = SimpleCharStream.getPosition() + 1;
5076 {if (true) throw e;}
5079 token2 = jj_consume_token(SEMICOLON);
5080 final Statement[] stmtsArray = new Statement[list.size()];
5081 list.toArray(stmtsArray);
5082 {if (true) return new ForStatement(initializations,
5085 new Block(stmtsArray,
5086 stmtsArray[0].sourceStart,
5087 stmtsArray[stmtsArray.length-1].sourceEnd),
5090 } catch (ParseException e) {
5091 errorMessage = "';' expected after 'endfor' keyword";
5093 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5094 errorEnd = SimpleCharStream.getPosition() + 1;
5095 {if (true) throw e;}
5099 jj_la1[121] = jj_gen;
5100 jj_consume_token(-1);
5101 throw new ParseException();
5103 throw new Error("Missing return statement in function");
5106 static final public Expression[] ForInit() throws ParseException {
5107 final Expression[] exprs;
5108 if (jj_2_5(2147483647)) {
5109 exprs = LocalVariableDeclaration();
5110 {if (true) return exprs;}
5112 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5121 exprs = StatementExpressionList();
5122 {if (true) return exprs;}
5125 jj_la1[122] = jj_gen;
5126 jj_consume_token(-1);
5127 throw new ParseException();
5130 throw new Error("Missing return statement in function");
5133 static final public Expression[] StatementExpressionList() throws ParseException {
5134 final ArrayList list = new ArrayList();
5135 final Expression expr;
5136 expr = StatementExpression();
5140 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5145 jj_la1[123] = jj_gen;
5148 jj_consume_token(COMMA);
5149 StatementExpression();
5152 final Expression[] exprsArray = new Expression[list.size()];
5153 list.toArray(exprsArray);
5154 {if (true) return exprsArray;}
5155 throw new Error("Missing return statement in function");
5158 static final public Continue ContinueStatement() throws ParseException {
5159 Expression expr = null;
5160 final Token token,token2;
5161 token = jj_consume_token(CONTINUE);
5162 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5178 case INTEGER_LITERAL:
5179 case FLOATING_POINT_LITERAL:
5180 case STRING_LITERAL:
5184 expr = Expression();
5187 jj_la1[124] = jj_gen;
5191 token2 = jj_consume_token(SEMICOLON);
5192 {if (true) return new Continue(expr,token.sourceStart,token2.sourceEnd);}
5193 } catch (ParseException e) {
5194 errorMessage = "';' expected after 'continue' statement";
5196 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5197 errorEnd = SimpleCharStream.getPosition() + 1;
5198 {if (true) throw e;}
5200 throw new Error("Missing return statement in function");
5203 static final public ReturnStatement ReturnStatement() throws ParseException {
5204 Expression expr = null;
5205 final Token token,token2;
5206 token = jj_consume_token(RETURN);
5207 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5223 case INTEGER_LITERAL:
5224 case FLOATING_POINT_LITERAL:
5225 case STRING_LITERAL:
5229 expr = Expression();
5232 jj_la1[125] = jj_gen;
5236 token2 = jj_consume_token(SEMICOLON);
5237 {if (true) return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd);}
5238 } catch (ParseException e) {
5239 errorMessage = "';' expected after 'return' statement";
5241 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5242 errorEnd = SimpleCharStream.getPosition() + 1;
5243 {if (true) throw e;}
5245 throw new Error("Missing return statement in function");
5248 static final private boolean jj_2_1(int xla) {
5249 jj_la = xla; jj_lastpos = jj_scanpos = token;
5250 boolean retval = !jj_3_1();
5255 static final private boolean jj_2_2(int xla) {
5256 jj_la = xla; jj_lastpos = jj_scanpos = token;
5257 boolean retval = !jj_3_2();
5262 static final private boolean jj_2_3(int xla) {
5263 jj_la = xla; jj_lastpos = jj_scanpos = token;
5264 boolean retval = !jj_3_3();
5269 static final private boolean jj_2_4(int xla) {
5270 jj_la = xla; jj_lastpos = jj_scanpos = token;
5271 boolean retval = !jj_3_4();
5276 static final private boolean jj_2_5(int xla) {
5277 jj_la = xla; jj_lastpos = jj_scanpos = token;
5278 boolean retval = !jj_3_5();
5283 static final private boolean jj_3R_116() {
5284 if (jj_3R_118()) return true;
5285 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5289 if (jj_3R_119()) { jj_scanpos = xsp; break; }
5290 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5295 static final private boolean jj_3R_46() {
5296 if (jj_scan_token(LBRACKET)) return true;
5297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5300 if (jj_3R_52()) jj_scanpos = xsp;
5301 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5302 if (jj_scan_token(RBRACKET)) return true;
5303 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5307 static final private boolean jj_3R_117() {
5308 if (jj_scan_token(XOR)) return true;
5309 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5310 if (jj_3R_116()) return true;
5311 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5315 static final private boolean jj_3R_113() {
5316 if (jj_3R_116()) return true;
5317 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5321 if (jj_3R_117()) { jj_scanpos = xsp; break; }
5322 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5327 static final private boolean jj_3R_45() {
5328 if (jj_scan_token(CLASSACCESS)) return true;
5329 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330 if (jj_3R_51()) return true;
5331 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5335 static final private boolean jj_3R_39() {
5340 if (jj_3R_46()) return true;
5341 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5342 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5346 static final private boolean jj_3R_114() {
5347 if (jj_scan_token(BIT_OR)) return true;
5348 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5349 if (jj_3R_113()) return true;
5350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5354 static final private boolean jj_3R_107() {
5355 if (jj_3R_113()) return true;
5356 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5360 if (jj_3R_114()) { jj_scanpos = xsp; break; }
5361 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5366 static final private boolean jj_3R_203() {
5367 if (jj_3R_125()) return true;
5368 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5372 static final private boolean jj_3R_110() {
5373 if (jj_scan_token(DOT)) return true;
5374 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5375 if (jj_3R_107()) return true;
5376 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5380 static final private boolean jj_3R_202() {
5381 if (jj_3R_48()) return true;
5382 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5386 static final private boolean jj_3R_201() {
5387 if (jj_scan_token(IDENTIFIER)) return true;
5388 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5392 static final private boolean jj_3R_196() {
5399 if (jj_3R_203()) return true;
5400 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5401 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5402 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5406 static final private boolean jj_3R_101() {
5407 if (jj_3R_107()) return true;
5408 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5412 if (jj_3R_110()) { jj_scanpos = xsp; break; }
5413 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5418 static final private boolean jj_3R_112() {
5419 if (jj_scan_token(_ANDL)) return true;
5420 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5424 static final private boolean jj_3R_183() {
5425 if (jj_scan_token(ARRAY)) return true;
5426 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5427 if (jj_3R_192()) return true;
5428 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5432 static final private boolean jj_3R_111() {
5433 if (jj_scan_token(AND_AND)) return true;
5434 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5438 static final private boolean jj_3R_104() {
5443 if (jj_3R_112()) return true;
5444 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5445 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5446 if (jj_3R_101()) return true;
5447 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5451 static final private boolean jj_3R_122() {
5452 if (jj_scan_token(ASSIGN)) return true;
5453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5454 if (jj_3R_47()) return true;
5455 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5459 static final private boolean jj_3R_115() {
5460 if (jj_scan_token(LBRACE)) return true;
5461 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5462 if (jj_3R_47()) return true;
5463 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5464 if (jj_scan_token(RBRACE)) return true;
5465 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5469 static final private boolean jj_3R_82() {
5470 if (jj_3R_101()) return true;
5471 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5475 if (jj_3R_104()) { jj_scanpos = xsp; break; }
5476 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5481 static final private boolean jj_3R_78() {
5482 if (jj_scan_token(HOOK)) return true;
5483 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5484 if (jj_3R_47()) return true;
5485 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5486 if (jj_scan_token(COLON)) return true;
5487 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5488 if (jj_3R_70()) return true;
5489 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5493 static final private boolean jj_3R_67() {
5494 if (jj_scan_token(IDENTIFIER)) return true;
5495 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5498 if (jj_3R_115()) jj_scanpos = xsp;
5499 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5503 static final private boolean jj_3R_197() {
5504 if (jj_3R_200()) return true;
5505 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5509 static final private boolean jj_3R_126() {
5510 if (jj_3R_125()) return true;
5511 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5515 static final private boolean jj_3R_106() {
5516 if (jj_scan_token(_ORL)) return true;
5517 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5521 static final private boolean jj_3R_105() {
5522 if (jj_scan_token(OR_OR)) return true;
5523 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5527 static final private boolean jj_3R_51() {
5532 if (jj_3R_67()) return true;
5533 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5534 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5538 static final private boolean jj_3R_66() {
5539 if (jj_scan_token(LBRACE)) return true;
5540 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5541 if (jj_3R_47()) return true;
5542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5543 if (jj_scan_token(RBRACE)) return true;
5544 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5548 static final private boolean jj_3R_84() {
5553 if (jj_3R_106()) return true;
5554 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5555 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5556 if (jj_3R_82()) return true;
5557 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5561 static final private boolean jj_3R_121() {
5562 if (jj_scan_token(COMMA)) return true;
5563 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5566 if (jj_3R_126()) jj_scanpos = xsp;
5567 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5571 static final private boolean jj_3R_75() {
5572 if (jj_3R_82()) return true;
5573 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5577 if (jj_3R_84()) { jj_scanpos = xsp; break; }
5578 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5583 static final private boolean jj_3R_189() {
5584 if (jj_scan_token(NEW)) return true;
5585 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5586 if (jj_3R_196()) return true;
5587 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5590 if (jj_3R_197()) jj_scanpos = xsp;
5591 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5595 static final private boolean jj_3R_195() {
5596 if (jj_3R_200()) return true;
5597 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5601 static final private boolean jj_3R_120() {
5602 if (jj_3R_125()) return true;
5603 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5607 static final private boolean jj_3R_188() {
5608 if (jj_3R_125()) return true;
5609 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5612 if (jj_3R_195()) jj_scanpos = xsp;
5613 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5617 static final private boolean jj_3R_100() {
5618 if (jj_3R_51()) return true;
5619 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5623 static final private boolean jj_3R_70() {
5624 if (jj_3R_75()) return true;
5625 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5628 if (jj_3R_78()) jj_scanpos = xsp;
5629 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5633 static final private boolean jj_3R_108() {
5634 if (jj_scan_token(LIST)) return true;
5635 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5636 if (jj_scan_token(LPAREN)) return true;
5637 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5640 if (jj_3R_120()) jj_scanpos = xsp;
5641 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5644 if (jj_3R_121()) { jj_scanpos = xsp; break; }
5645 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5647 if (jj_scan_token(RPAREN)) return true;
5648 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5650 if (jj_3R_122()) jj_scanpos = xsp;
5651 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5655 static final private boolean jj_3R_99() {
5656 if (jj_scan_token(DOLLAR)) return true;
5657 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5658 if (jj_3R_81()) return true;
5659 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5663 static final private boolean jj_3R_194() {
5664 if (jj_3R_200()) return true;
5665 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5669 static final private boolean jj_3R_98() {
5670 if (jj_scan_token(DOLLAR_ID)) return true;
5671 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5672 if (jj_3R_81()) return true;
5673 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5677 static final private boolean jj_3R_81() {
5684 if (jj_3R_100()) return true;
5685 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5686 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5687 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5691 static final private boolean jj_3R_97() {
5692 if (jj_scan_token(TILDEEQUAL)) return true;
5693 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5697 static final private boolean jj_3R_193() {
5698 if (jj_scan_token(STATICCLASSACCESS)) return true;
5699 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5700 if (jj_3R_196()) return true;
5701 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5705 static final private boolean jj_3R_96() {
5706 if (jj_scan_token(DOTASSIGN)) return true;
5707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5711 static final private boolean jj_3R_95() {
5712 if (jj_scan_token(ORASSIGN)) return true;
5713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5717 static final private boolean jj_3R_94() {
5718 if (jj_scan_token(XORASSIGN)) return true;
5719 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5723 static final private boolean jj_3R_109() {
5724 if (jj_scan_token(PRINT)) return true;
5725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5726 if (jj_3R_47()) return true;
5727 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5731 static final private boolean jj_3R_80() {
5732 if (jj_3R_81()) return true;
5733 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5737 static final private boolean jj_3R_93() {
5738 if (jj_scan_token(ANDASSIGN)) return true;
5739 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5743 static final private boolean jj_3R_92() {
5744 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
5745 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5749 static final private boolean jj_3R_91() {
5750 if (jj_scan_token(LSHIFTASSIGN)) return true;
5751 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5755 static final private boolean jj_3R_90() {
5756 if (jj_scan_token(MINUSASSIGN)) return true;
5757 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5761 static final private boolean jj_3R_187() {
5762 if (jj_scan_token(IDENTIFIER)) return true;
5763 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5767 if (jj_3R_193()) { jj_scanpos = xsp; break; }
5768 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5771 if (jj_3R_194()) jj_scanpos = xsp;
5772 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5776 static final private boolean jj_3R_182() {
5783 if (jj_3R_189()) 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;
5786 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5790 static final private boolean jj_3R_89() {
5791 if (jj_scan_token(PLUSASSIGN)) return true;
5792 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5796 static final private boolean jj_3R_88() {
5797 if (jj_scan_token(REMASSIGN)) return true;
5798 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5802 static final private boolean jj_3R_87() {
5803 if (jj_scan_token(SLASHASSIGN)) return true;
5804 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5808 static final private boolean jj_3R_86() {
5809 if (jj_scan_token(STARASSIGN)) return true;
5810 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5814 static final private boolean jj_3R_85() {
5815 if (jj_scan_token(ASSIGN)) return true;
5816 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5820 static final private boolean jj_3R_79() {
5847 if (jj_3R_97()) return true;
5848 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5849 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5851 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5852 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5853 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5854 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5855 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5856 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5857 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5858 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5859 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5860 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5864 static final private boolean jj_3R_74() {
5865 if (jj_scan_token(DOLLAR)) return true;
5866 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5867 if (jj_3R_81()) return true;
5868 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5872 static final private boolean jj_3R_174() {
5873 if (jj_3R_183()) return true;
5874 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5878 static final private boolean jj_3R_103() {
5879 if (jj_3R_109()) return true;
5880 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5884 static final private boolean jj_3R_181() {
5885 if (jj_scan_token(BIT_AND)) return true;
5886 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5890 static final private boolean jj_3R_102() {
5891 if (jj_3R_108()) return true;
5892 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5896 static final private boolean jj_3R_83() {
5901 if (jj_3R_103()) return true;
5902 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5903 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5907 static final private boolean jj_3R_169() {
5912 if (jj_3R_174()) return true;
5913 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5914 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5918 static final private boolean jj_3R_173() {
5921 if (jj_3R_181()) jj_scanpos = xsp;
5922 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5923 if (jj_3R_182()) return true;
5924 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5928 static final private boolean jj_3R_73() {
5929 if (jj_scan_token(DOLLAR_ID)) return true;
5930 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5933 if (jj_3R_80()) jj_scanpos = xsp;
5934 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5938 static final private boolean jj_3R_64() {
5943 if (jj_3R_74()) return true;
5944 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5945 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5949 static final private boolean jj_3R_77() {
5950 if (jj_3R_83()) return true;
5951 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5955 static final private boolean jj_3R_76() {
5956 if (jj_scan_token(BANG)) return true;
5957 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5958 if (jj_3R_71()) return true;
5959 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5963 static final private boolean jj_3R_71() {
5968 if (jj_3R_77()) return true;
5969 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5970 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5974 static final private boolean jj_3R_191() {
5975 if (jj_scan_token(MINUS_MINUS)) return true;
5976 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5980 static final private boolean jj_3R_190() {
5981 if (jj_scan_token(PLUS_PLUS)) return true;
5982 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5986 static final private boolean jj_3R_186() {
5991 if (jj_3R_191()) return true;
5992 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5993 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5997 static final private boolean jj_3R_54() {
5998 if (jj_3R_71()) return true;
5999 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6003 static final private boolean jj_3R_171() {
6004 if (jj_3R_169()) return true;
6005 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6008 if (jj_3R_186()) jj_scanpos = xsp;
6009 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6013 static final private boolean jj_3R_185() {
6014 if (jj_scan_token(ARRAY)) return true;
6015 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6019 static final private boolean jj_3R_184() {
6020 if (jj_3R_48()) return true;
6021 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6025 static final private boolean jj_3R_42() {
6026 if (jj_scan_token(ARRAY)) return true;
6027 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6031 static final private boolean jj_3R_170() {
6032 if (jj_scan_token(LPAREN)) return true;
6033 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6038 if (jj_3R_185()) return true;
6039 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6040 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6041 if (jj_scan_token(RPAREN)) return true;
6042 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6043 if (jj_3R_145()) return true;
6044 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6048 static final private boolean jj_3R_41() {
6049 if (jj_3R_48()) return true;
6050 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6054 static final private boolean jj_3R_72() {
6055 if (jj_3R_79()) return true;
6056 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6057 if (jj_3R_47()) return true;
6058 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6062 static final private boolean jj_3_3() {
6063 if (jj_scan_token(LPAREN)) return true;
6064 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6069 if (jj_3R_42()) return true;
6070 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6071 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6072 if (jj_scan_token(RPAREN)) return true;
6073 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6077 static final private boolean jj_3R_47() {
6082 if (jj_3R_54()) return true;
6083 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6084 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6088 static final private boolean jj_3R_53() {
6089 if (jj_3R_70()) return true;
6090 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6093 if (jj_3R_72()) jj_scanpos = xsp;
6094 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6098 static final private boolean jj_3_1() {
6099 if (jj_3R_39()) return true;
6100 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6104 static final private boolean jj_3R_168() {
6105 if (jj_scan_token(LPAREN)) return true;
6106 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6107 if (jj_3R_47()) return true;
6108 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6109 if (jj_scan_token(RPAREN)) return true;
6110 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6114 static final private boolean jj_3R_167() {
6115 if (jj_3R_172()) return true;
6116 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6120 static final private boolean jj_3R_166() {
6121 if (jj_3R_171()) return true;
6122 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6126 static final private boolean jj_3R_162() {
6135 if (jj_3R_168()) return true;
6136 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6137 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6138 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6139 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6143 static final private boolean jj_3R_165() {
6144 if (jj_3R_170()) return true;
6145 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6149 static final private boolean jj_3R_65() {
6150 if (jj_scan_token(ASSIGN)) return true;
6151 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6152 if (jj_3R_47()) return true;
6153 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6157 static final private boolean jj_3R_125() {
6158 if (jj_3R_64()) return true;
6159 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6163 if (jj_3_1()) { jj_scanpos = xsp; break; }
6164 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6169 static final private boolean jj_3R_63() {
6170 if (jj_scan_token(OBJECT)) return true;
6171 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6175 static final private boolean jj_3R_62() {
6176 if (jj_scan_token(INTEGER)) return true;
6177 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6181 static final private boolean jj_3R_61() {
6182 if (jj_scan_token(INT)) return true;
6183 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6187 static final private boolean jj_3R_60() {
6188 if (jj_scan_token(FLOAT)) return true;
6189 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6193 static final private boolean jj_3R_59() {
6194 if (jj_scan_token(DOUBLE)) return true;
6195 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6199 static final private boolean jj_3R_164() {
6200 if (jj_scan_token(MINUS_MINUS)) return true;
6201 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6205 static final private boolean jj_3R_58() {
6206 if (jj_scan_token(REAL)) return true;
6207 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6211 static final private boolean jj_3R_57() {
6212 if (jj_scan_token(BOOLEAN)) return true;
6213 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6217 static final private boolean jj_3R_163() {
6218 if (jj_scan_token(PLUS_PLUS)) return true;
6219 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6223 static final private boolean jj_3R_56() {
6224 if (jj_scan_token(BOOL)) return true;
6225 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6229 static final private boolean jj_3R_48() {
6248 if (jj_3R_63()) return true;
6249 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6250 } else 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;
6261 static final private boolean jj_3R_55() {
6262 if (jj_scan_token(STRING)) return true;
6263 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6267 static final private boolean jj_3R_161() {
6272 if (jj_3R_164()) return true;
6273 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6274 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6275 if (jj_3R_169()) return true;
6276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6280 static final private boolean jj_3R_49() {
6281 if (jj_3R_64()) return true;
6282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6285 if (jj_3R_65()) jj_scanpos = xsp;
6286 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6290 static final private boolean jj_3R_160() {
6291 if (jj_3R_162()) return true;
6292 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6296 static final private boolean jj_3R_159() {
6297 if (jj_3R_161()) return true;
6298 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6302 static final private boolean jj_3R_158() {
6303 if (jj_scan_token(MINUS)) return true;
6304 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6305 if (jj_3R_149()) return true;
6306 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6310 static final private boolean jj_3R_156() {
6319 if (jj_3R_160()) return true;
6320 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6321 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6322 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6323 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6327 static final private boolean jj_3R_157() {
6328 if (jj_scan_token(PLUS)) return true;
6329 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6330 if (jj_3R_149()) return true;
6331 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6335 static final private boolean jj_3R_50() {
6336 if (jj_scan_token(COMMA)) return true;
6337 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6338 if (jj_3R_49()) return true;
6339 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6343 static final private boolean jj_3R_44() {
6344 if (jj_3R_49()) return true;
6345 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6349 if (jj_3R_50()) { jj_scanpos = xsp; break; }
6350 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6355 static final private boolean jj_3R_155() {
6356 if (jj_3R_156()) return true;
6357 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6361 static final private boolean jj_3R_154() {
6362 if (jj_scan_token(BANG)) return true;
6363 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6364 if (jj_3R_149()) return true;
6365 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6369 static final private boolean jj_3R_149() {
6376 if (jj_3R_155()) return true;
6377 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6378 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6379 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6383 static final private boolean jj_3R_153() {
6384 if (jj_scan_token(AT)) return true;
6385 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6386 if (jj_3R_149()) return true;
6387 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6391 static final private boolean jj_3R_145() {
6392 if (jj_3R_149()) return true;
6393 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6397 static final private boolean jj_3R_152() {
6398 if (jj_scan_token(REMAINDER)) return true;
6399 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6403 static final private boolean jj_3R_151() {
6404 if (jj_scan_token(SLASH)) return true;
6405 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6409 static final private boolean jj_3R_150() {
6410 if (jj_scan_token(STAR)) return true;
6411 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6415 static final private boolean jj_3R_43() {
6416 if (jj_3R_47()) return true;
6417 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6418 if (jj_scan_token(SEMICOLON)) return true;
6419 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6423 static final private boolean jj_3R_146() {
6430 if (jj_3R_152()) return true;
6431 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6432 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6433 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6434 if (jj_3R_145()) return true;
6435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6439 static final private boolean jj_3R_140() {
6440 if (jj_3R_145()) return true;
6441 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6445 if (jj_3R_146()) { jj_scanpos = xsp; break; }
6446 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6451 static final private boolean jj_3_5() {
6452 if (jj_3R_44()) return true;
6453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6457 static final private boolean jj_3R_148() {
6458 if (jj_scan_token(MINUS)) return true;
6459 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6463 static final private boolean jj_3R_147() {
6464 if (jj_scan_token(PLUS)) return true;
6465 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6469 static final private boolean jj_3R_141() {
6474 if (jj_3R_148()) return true;
6475 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6476 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6477 if (jj_3R_140()) return true;
6478 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6482 static final private boolean jj_3R_134() {
6483 if (jj_3R_140()) return true;
6484 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6488 if (jj_3R_141()) { jj_scanpos = xsp; break; }
6489 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6494 static final private boolean jj_3_4() {
6495 if (jj_3R_43()) return true;
6496 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6500 static final private boolean jj_3R_144() {
6501 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
6502 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6506 static final private boolean jj_3R_143() {
6507 if (jj_scan_token(RSIGNEDSHIFT)) return true;
6508 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6512 static final private boolean jj_3R_142() {
6513 if (jj_scan_token(LSHIFT)) return true;
6514 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6518 static final private boolean jj_3R_135() {
6525 if (jj_3R_144()) return true;
6526 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6527 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6528 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6529 if (jj_3R_134()) return true;
6530 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6534 static final private boolean jj_3R_127() {
6535 if (jj_3R_134()) return true;
6536 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6540 if (jj_3R_135()) { jj_scanpos = xsp; break; }
6541 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6546 static final private boolean jj_3R_139() {
6547 if (jj_scan_token(GE)) return true;
6548 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6552 static final private boolean jj_3R_138() {
6553 if (jj_scan_token(LE)) return true;
6554 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6558 static final private boolean jj_3R_207() {
6559 if (jj_scan_token(COMMA)) return true;
6560 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6561 if (jj_3R_47()) return true;
6562 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6566 static final private boolean jj_3R_137() {
6567 if (jj_scan_token(GT)) return true;
6568 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6572 static final private boolean jj_3R_136() {
6573 if (jj_scan_token(LT)) return true;
6574 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6578 static final private boolean jj_3R_128() {
6587 if (jj_3R_139()) return true;
6588 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6589 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6590 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6591 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6592 if (jj_3R_127()) return true;
6593 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6597 static final private boolean jj_3R_206() {
6598 if (jj_3R_47()) return true;
6599 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6603 if (jj_3R_207()) { jj_scanpos = xsp; break; }
6604 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6609 static final private boolean jj_3R_123() {
6610 if (jj_3R_127()) return true;
6611 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6615 if (jj_3R_128()) { jj_scanpos = xsp; break; }
6616 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6621 static final private boolean jj_3R_199() {
6622 if (jj_scan_token(COMMA)) return true;
6623 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6627 static final private boolean jj_3_2() {
6628 if (jj_scan_token(COMMA)) return true;
6629 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6630 if (jj_3R_40()) return true;
6631 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6635 static final private boolean jj_3R_204() {
6636 if (jj_3R_206()) return true;
6637 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6641 static final private boolean jj_3R_69() {
6642 if (jj_3R_48()) return true;
6643 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6647 static final private boolean jj_3R_198() {
6648 if (jj_3R_40()) return true;
6649 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6653 if (jj_3_2()) { jj_scanpos = xsp; break; }
6654 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6659 static final private boolean jj_3R_192() {
6660 if (jj_scan_token(LPAREN)) return true;
6661 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6664 if (jj_3R_198()) jj_scanpos = xsp;
6665 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6667 if (jj_3R_199()) jj_scanpos = xsp;
6668 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6669 if (jj_scan_token(RPAREN)) return true;
6670 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6674 static final private boolean jj_3R_200() {
6675 if (jj_scan_token(LPAREN)) return true;
6676 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6679 if (jj_3R_204()) jj_scanpos = xsp;
6680 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6681 if (jj_scan_token(RPAREN)) return true;
6682 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6686 static final private boolean jj_3R_133() {
6687 if (jj_scan_token(TRIPLEEQUAL)) return true;
6688 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6692 static final private boolean jj_3R_132() {
6693 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
6694 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6698 static final private boolean jj_3R_131() {
6699 if (jj_scan_token(NOT_EQUAL)) return true;
6700 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6704 static final private boolean jj_3R_130() {
6705 if (jj_scan_token(DIF)) return true;
6706 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6710 static final private boolean jj_3R_129() {
6711 if (jj_scan_token(EQUAL_EQUAL)) return true;
6712 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6716 static final private boolean jj_3R_205() {
6717 if (jj_scan_token(ARRAYASSIGN)) return true;
6718 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6719 if (jj_3R_47()) return true;
6720 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6724 static final private boolean jj_3R_124() {
6735 if (jj_3R_133()) return true;
6736 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6737 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6738 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6739 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6740 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6741 if (jj_3R_123()) return true;
6742 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6746 static final private boolean jj_3R_180() {
6747 if (jj_scan_token(NULL)) return true;
6748 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6752 static final private boolean jj_3R_179() {
6753 if (jj_scan_token(FALSE)) return true;
6754 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6758 static final private boolean jj_3R_118() {
6759 if (jj_3R_123()) return true;
6760 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6764 if (jj_3R_124()) { jj_scanpos = xsp; break; }
6765 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6770 static final private boolean jj_3R_178() {
6771 if (jj_scan_token(TRUE)) return true;
6772 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6776 static final private boolean jj_3R_177() {
6777 if (jj_scan_token(STRING_LITERAL)) return true;
6778 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6782 static final private boolean jj_3R_40() {
6783 if (jj_3R_47()) return true;
6784 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6787 if (jj_3R_205()) jj_scanpos = xsp;
6788 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6792 static final private boolean jj_3R_176() {
6793 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
6794 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6798 static final private boolean jj_3R_172() {
6811 if (jj_3R_180()) return true;
6812 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6813 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6814 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6815 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6816 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6817 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6821 static final private boolean jj_3R_175() {
6822 if (jj_scan_token(INTEGER_LITERAL)) return true;
6823 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6827 static final private boolean jj_3R_52() {
6832 if (jj_3R_69()) return true;
6833 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6834 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6838 static final private boolean jj_3R_68() {
6839 if (jj_3R_47()) return true;
6840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6844 static final private boolean jj_3R_119() {
6845 if (jj_scan_token(BIT_AND)) return true;
6846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6847 if (jj_3R_118()) return true;
6848 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6852 static private boolean jj_initialized_once = false;
6853 static public PHPParserTokenManager token_source;
6854 static SimpleCharStream jj_input_stream;
6855 static public Token token, jj_nt;
6856 static private int jj_ntk;
6857 static private Token jj_scanpos, jj_lastpos;
6858 static private int jj_la;
6859 static public boolean lookingAhead = false;
6860 static private boolean jj_semLA;
6861 static private int jj_gen;
6862 static final private int[] jj_la1 = new int[126];
6863 static private int[] jj_la1_0;
6864 static private int[] jj_la1_1;
6865 static private int[] jj_la1_2;
6866 static private int[] jj_la1_3;
6867 static private int[] jj_la1_4;
6875 private static void jj_la1_0() {
6876 jj_la1_0 = new int[] {0xf960001e,0x6,0x6,0xf960001e,0x0,0xf9600000,0x0,0xc00000,0xc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x68000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x68000000,0x60000000,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x8000000,0x0,0x8000000,0x8000000,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x68000000,0x68000000,0x0,0x0,0x68000000,0x0,0x0,0x81000000,0xf9000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf9600010,0xf9600010,0xf9600000,0xe9600000,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0xe9600010,0xe9600010,0x10000000,0x0,0x68000000,0xf9000010,0xf9000010,0x2000000,0x4000000,0xf9000010,0x2000000,0x4000000,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000000,0xf9000000,0x8000000,0x68000000,0x8000000,0xf9000000,0xf9000000,0x8000000,0x0,0x68000000,0x68000000,};
6878 private static void jj_la1_1() {
6879 jj_la1_1 = new int[] {0x875d507f,0x0,0x0,0x875d507f,0x0,0x875d507f,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3080000,0x200,0x30c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30c0000,0x30c0000,0x0,0x30c0000,0x0,0x0,0x0,0x0,0x40000,0x100,0x0,0x0,0x0,0x40000,0x0,0x30c0000,0x30c0000,0x80,0x3080000,0x30c0000,0x0,0x0,0x8451507f,0x875d507f,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x0,0x0,0x0,0x0,0x40000,0x0,0x2400,0x2400,0x875d507f,0x875d507f,0x0,0x2400,0x30c0000,0x875d507f,0x875d507f,0x0,0x0,0x875d507f,0x0,0x0,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x40000,0x30c0000,0x40000,0x875d507f,0x875d507f,0x40000,0x0,0x30c0000,0x30c0000,};
6881 private static void jj_la1_2() {
6882 jj_la1_2 = new int[] {0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x13c1c00,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x800,0x800,0x0,0x0,0x0,0x0,0x300000,0x0,0x13c1c00,0x0,0x1000000,0x0,0x1000000,0x1000000,0x3fe,0x0,0x13c1c00,0x1000,0x0,0x0,0x4000,0x80010000,0x80010000,0x20000,0x20000,0x0,0x2000000,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x70000000,0x70000000,0x300000,0x300000,0x8c00000,0x8c00000,0x13c1c00,0x13c0800,0xc0000,0x1000800,0x3fe,0xc0000,0xc0000,0x1000000,0x1000800,0x0,0x0,0x0,0x0,0x800,0xbfe,0x13c1ffe,0x13c1ffe,0x0,0x0,0x13c1c00,0x0,0x400,0x400,0x13c1c00,0x0,0x0,0x0,0x800,0x0,0x800,0x0,0x0,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0xc0000,0xc0000,0x10c0800,0x8000,0x0,0x0,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x0,0x13c9c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c9c00,0x10c0800,0x13c1c00,0x10c0800,0x13c1c00,0x13c9c00,0x10c0800,0x0,0x13c1c00,0x13c1c00,};
6884 private static void jj_la1_3() {
6885 jj_la1_3 = new int[] {0x2288a2,0x0,0x0,0x2288a2,0x200000,0x2288a2,0x0,0x0,0x0,0x400000,0x0,0x0,0x20800,0x0,0x20800,0x20000,0x20800,0x22,0x22,0x8a2,0x0,0x88a2,0x400000,0x0,0x400000,0x0,0x0,0x0,0x0,0x88a2,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x800000,0x0,0x0,0x0,0xe4000000,0xe4000000,0x1b000000,0x1b000000,0x0,0x0,0x0,0x0,0x0,0x0,0x88a2,0x88a2,0x0,0x88a2,0x0,0x0,0x0,0x0,0x800,0x0,0x8000,0x8000,0x8000,0x800,0x800,0x88a2,0x88a2,0x80000,0xa2,0x88a2,0x400000,0x0,0x220800,0x2288a2,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x400000,0x400000,0x400000,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x400000,0x0,0x0,0x0,0x800,0x20000,0x0,0x0,0x2288a2,0x2288a2,0x0,0x0,0x88a2,0x2288a2,0x2288a2,0x0,0x0,0x2288a2,0x0,0x0,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x800,0x88a2,0x800,0x2288a2,0x2288a2,0x800,0x400000,0x88a2,0x88a2,};
6887 private static void jj_la1_4() {
6888 jj_la1_4 = new int[] {0x4000,0x0,0x0,0x4000,0x0,0x4000,0x0,0x0,0x0,0x0,0x2,0x2,0x4000,0x4000,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x0,0x3ffe,0x4000,0x0,0x0,0x3ffe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x4000,0x0,0x4000,0x0,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x4000,0x2,0x0,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x2,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x4000,0x0,0x0,0x4000,0x4000,0x4000,0x0,0x0,0x4000,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x0,0x4000,0x4000,};
6890 static final private JJCalls[] jj_2_rtns = new JJCalls[5];
6891 static private boolean jj_rescan = false;
6892 static private int jj_gc = 0;
6894 public PHPParser(java.io.InputStream stream) {
6895 if (jj_initialized_once) {
6896 System.out.println("ERROR: Second call to constructor of static parser. You must");
6897 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6898 System.out.println(" during parser generation.");
6901 jj_initialized_once = true;
6902 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6903 token_source = new PHPParserTokenManager(jj_input_stream);
6904 token = new Token();
6907 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6908 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6911 static public void ReInit(java.io.InputStream stream) {
6912 jj_input_stream.ReInit(stream, 1, 1);
6913 token_source.ReInit(jj_input_stream);
6914 token = new Token();
6917 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6918 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6921 public PHPParser(java.io.Reader stream) {
6922 if (jj_initialized_once) {
6923 System.out.println("ERROR: Second call to constructor of static parser. You must");
6924 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6925 System.out.println(" during parser generation.");
6928 jj_initialized_once = true;
6929 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6930 token_source = new PHPParserTokenManager(jj_input_stream);
6931 token = new Token();
6934 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6935 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6938 static public void ReInit(java.io.Reader stream) {
6939 jj_input_stream.ReInit(stream, 1, 1);
6940 token_source.ReInit(jj_input_stream);
6941 token = new Token();
6944 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6945 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6948 public PHPParser(PHPParserTokenManager tm) {
6949 if (jj_initialized_once) {
6950 System.out.println("ERROR: Second call to constructor of static parser. You must");
6951 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6952 System.out.println(" during parser generation.");
6955 jj_initialized_once = true;
6957 token = new Token();
6960 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6961 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6964 public void ReInit(PHPParserTokenManager tm) {
6966 token = new Token();
6969 for (int i = 0; i < 126; i++) jj_la1[i] = -1;
6970 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6973 static final private Token jj_consume_token(int kind) throws ParseException {
6975 if ((oldToken = token).next != null) token = token.next;
6976 else token = token.next = token_source.getNextToken();
6978 if (token.kind == kind) {
6980 if (++jj_gc > 100) {
6982 for (int i = 0; i < jj_2_rtns.length; i++) {
6983 JJCalls c = jj_2_rtns[i];
6985 if (c.gen < jj_gen) c.first = null;
6994 throw generateParseException();
6997 static final private boolean jj_scan_token(int kind) {
6998 if (jj_scanpos == jj_lastpos) {
7000 if (jj_scanpos.next == null) {
7001 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
7003 jj_lastpos = jj_scanpos = jj_scanpos.next;
7006 jj_scanpos = jj_scanpos.next;
7009 int i = 0; Token tok = token;
7010 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
7011 if (tok != null) jj_add_error_token(kind, i);
7013 return (jj_scanpos.kind != kind);
7016 static final public Token getNextToken() {
7017 if (token.next != null) token = token.next;
7018 else token = token.next = token_source.getNextToken();
7024 static final public Token getToken(int index) {
7025 Token t = lookingAhead ? jj_scanpos : token;
7026 for (int i = 0; i < index; i++) {
7027 if (t.next != null) t = t.next;
7028 else t = t.next = token_source.getNextToken();
7033 static final private int jj_ntk() {
7034 if ((jj_nt=token.next) == null)
7035 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
7037 return (jj_ntk = jj_nt.kind);
7040 static private java.util.Vector jj_expentries = new java.util.Vector();
7041 static private int[] jj_expentry;
7042 static private int jj_kind = -1;
7043 static private int[] jj_lasttokens = new int[100];
7044 static private int jj_endpos;
7046 static private void jj_add_error_token(int kind, int pos) {
7047 if (pos >= 100) return;
7048 if (pos == jj_endpos + 1) {
7049 jj_lasttokens[jj_endpos++] = kind;
7050 } else if (jj_endpos != 0) {
7051 jj_expentry = new int[jj_endpos];
7052 for (int i = 0; i < jj_endpos; i++) {
7053 jj_expentry[i] = jj_lasttokens[i];
7055 boolean exists = false;
7056 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
7057 int[] oldentry = (int[])(enum.nextElement());
7058 if (oldentry.length == jj_expentry.length) {
7060 for (int i = 0; i < jj_expentry.length; i++) {
7061 if (oldentry[i] != jj_expentry[i]) {
7069 if (!exists) jj_expentries.addElement(jj_expentry);
7070 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
7074 static public ParseException generateParseException() {
7075 jj_expentries.removeAllElements();
7076 boolean[] la1tokens = new boolean[143];
7077 for (int i = 0; i < 143; i++) {
7078 la1tokens[i] = false;
7081 la1tokens[jj_kind] = true;
7084 for (int i = 0; i < 126; i++) {
7085 if (jj_la1[i] == jj_gen) {
7086 for (int j = 0; j < 32; j++) {
7087 if ((jj_la1_0[i] & (1<<j)) != 0) {
7088 la1tokens[j] = true;
7090 if ((jj_la1_1[i] & (1<<j)) != 0) {
7091 la1tokens[32+j] = true;
7093 if ((jj_la1_2[i] & (1<<j)) != 0) {
7094 la1tokens[64+j] = true;
7096 if ((jj_la1_3[i] & (1<<j)) != 0) {
7097 la1tokens[96+j] = true;
7099 if ((jj_la1_4[i] & (1<<j)) != 0) {
7100 la1tokens[128+j] = true;
7105 for (int i = 0; i < 143; i++) {
7107 jj_expentry = new int[1];
7109 jj_expentries.addElement(jj_expentry);
7114 jj_add_error_token(0, 0);
7115 int[][] exptokseq = new int[jj_expentries.size()][];
7116 for (int i = 0; i < jj_expentries.size(); i++) {
7117 exptokseq[i] = (int[])jj_expentries.elementAt(i);
7119 return new ParseException(token, exptokseq, tokenImage);
7122 static final public void enable_tracing() {
7125 static final public void disable_tracing() {
7128 static final private void jj_rescan_token() {
7130 for (int i = 0; i < 5; i++) {
7131 JJCalls p = jj_2_rtns[i];
7133 if (p.gen > jj_gen) {
7134 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
7136 case 0: jj_3_1(); break;
7137 case 1: jj_3_2(); break;
7138 case 2: jj_3_3(); break;
7139 case 3: jj_3_4(); break;
7140 case 4: jj_3_5(); break;
7144 } while (p != null);
7149 static final private void jj_save(int index, int xla) {
7150 JJCalls p = jj_2_rtns[index];
7151 while (p.gen > jj_gen) {
7152 if (p.next == null) { p = p.next = new JJCalls(); break; }
7155 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
7158 static final class JJCalls {