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;
25 * This php parser is inspired by the Java 1.2 grammar example
26 * given with JavaCC. You can get JavaCC at http://www.webgain.com
27 * You can test the parser with the PHPParserTestCase2.java
28 * @author Matthieu Casanova
29 * @version $Reference: 1.0$
31 public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
33 /** The file that is parsed. */
34 private static IFile fileToParse;
36 /** The current segment. */
37 private static OutlineableWithChildren currentSegment;
39 private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
40 private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
41 static PHPOutlineInfo outlineInfo;
43 /** The error level of the current ParseException. */
44 private static int errorLevel = ERROR;
45 /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */
46 private static String errorMessage;
48 private static int errorStart = -1;
49 private static int errorEnd = -1;
50 private static PHPDocument phpDocument;
52 private static final char[] SYNTAX_ERROR_CHAR = {'s','y','n','t','a','x',' ','e','r','r','o','r'};
54 * The point where html starts.
55 * It will be used by the token manager to create HTMLCode objects
57 public static int htmlStart;
60 private final static int AstStackIncrement = 100;
61 /** The stack of node. */
62 private static AstNode[] nodes;
63 /** The cursor in expression stack. */
64 private static int nodePtr;
66 public final void setFileToParse(final IFile fileToParse) {
67 this.fileToParse = fileToParse;
73 public PHPParser(final IFile fileToParse) {
74 this(new StringReader(""));
75 this.fileToParse = fileToParse;
79 * Reinitialize the parser.
81 private static final void init() {
82 nodes = new AstNode[AstStackIncrement];
88 * Add an php node on the stack.
89 * @param node the node that will be added to the stack
91 private static final void pushOnAstNodes(final AstNode node) {
93 nodes[++nodePtr] = node;
94 } catch (IndexOutOfBoundsException e) {
95 final int oldStackLength = nodes.length;
96 final AstNode[] oldStack = nodes;
97 nodes = new AstNode[oldStackLength + AstStackIncrement];
98 System.arraycopy(oldStack, 0, nodes, 0, oldStackLength);
99 nodePtr = oldStackLength;
100 nodes[nodePtr] = node;
104 public final PHPOutlineInfo parseInfo(final Object parent, final String s) {
105 phpDocument = new PHPDocument(parent,"_root".toCharArray());
106 currentSegment = phpDocument;
107 outlineInfo = new PHPOutlineInfo(parent, currentSegment);
108 final StringReader stream = new StringReader(s);
109 if (jj_input_stream == null) {
110 jj_input_stream = new SimpleCharStream(stream, 1, 1);
116 phpDocument.nodes = new AstNode[nodes.length];
117 System.arraycopy(nodes,0,phpDocument.nodes,0,nodes.length);
118 if (PHPeclipsePlugin.DEBUG) {
119 PHPeclipsePlugin.log(1,phpDocument.toString());
121 } catch (ParseException e) {
122 processParseException(e);
128 * This method will process the parse exception.
129 * If the error message is null, the parse exception wasn't catched and a trace is written in the log
130 * @param e the ParseException
132 private static void processParseException(final ParseException e) {
133 if (errorMessage == null) {
134 PHPeclipsePlugin.log(e);
135 errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
136 errorStart = SimpleCharStream.getPosition();
137 errorEnd = errorStart + 1;
141 // if (PHPeclipsePlugin.DEBUG) PHPeclipsePlugin.log(e);
145 * Create marker for the parse error.
146 * @param e the ParseException
148 private static void setMarker(final ParseException e) {
150 if (errorStart == -1) {
151 setMarker(fileToParse,
153 SimpleCharStream.tokenBegin,
154 SimpleCharStream.tokenBegin + e.currentToken.image.length(),
156 "Line " + e.currentToken.beginLine);
158 setMarker(fileToParse,
163 "Line " + e.currentToken.beginLine);
167 } catch (CoreException e2) {
168 PHPeclipsePlugin.log(e2);
172 private static void scanLine(final String output,
175 final int brIndx) throws CoreException {
177 final StringBuffer lineNumberBuffer = new StringBuffer(10);
179 current = output.substring(indx, brIndx);
181 if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
182 final int onLine = current.indexOf("on line <b>");
184 lineNumberBuffer.delete(0, lineNumberBuffer.length());
185 for (int i = onLine; i < current.length(); i++) {
186 ch = current.charAt(i);
187 if ('0' <= ch && '9' >= ch) {
188 lineNumberBuffer.append(ch);
192 final int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
194 final Hashtable attributes = new Hashtable();
196 current = current.replaceAll("\n", "");
197 current = current.replaceAll("<b>", "");
198 current = current.replaceAll("</b>", "");
199 MarkerUtilities.setMessage(attributes, current);
201 if (current.indexOf(PARSE_ERROR_STRING) != -1)
202 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
203 else if (current.indexOf(PARSE_WARNING_STRING) != -1)
204 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
206 attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
207 MarkerUtilities.setLineNumber(attributes, lineNumber);
208 MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
213 public final void parse(final String s) throws CoreException {
214 final StringReader stream = new StringReader(s);
215 if (jj_input_stream == null) {
216 jj_input_stream = new SimpleCharStream(stream, 1, 1);
222 } catch (ParseException e) {
223 processParseException(e);
228 * Call the php parse command ( php -l -f <filename> )
229 * and create markers according to the external parser output
231 public static void phpExternalParse(final IFile file) {
232 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
233 final String filename = file.getLocation().toString();
235 final String[] arguments = { filename };
236 final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
237 final String command = form.format(arguments);
239 final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
242 // parse the buffer to find the errors and warnings
243 createMarkers(parserResult, file);
244 } catch (CoreException e) {
245 PHPeclipsePlugin.log(e);
250 * Put a new html block in the stack.
252 public static final void createNewHTMLCode() {
253 final int currentPosition = SimpleCharStream.getPosition();
254 if (currentPosition == htmlStart || currentPosition > SimpleCharStream.currentBuffer.length()) {
257 final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray();
258 pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
261 /** Create a new task. */
262 public static final void createNewTask() {
263 final int currentPosition = SimpleCharStream.getPosition();
264 final String todo = SimpleCharStream.currentBuffer.substring(currentPosition-3,
265 SimpleCharStream.currentBuffer.indexOf("\n",
267 PHPeclipsePlugin.log(1,SimpleCharStream.currentBuffer.toString());
269 setMarker(fileToParse,
271 SimpleCharStream.getBeginLine(),
273 "Line "+SimpleCharStream.getBeginLine());
274 } catch (CoreException e) {
275 PHPeclipsePlugin.log(e);
279 private static final void parse() throws ParseException {
283 static final public void phpFile() throws ParseException {
287 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
326 case INTEGER_LITERAL:
327 case FLOATING_POINT_LITERAL:
342 PHPParser.createNewHTMLCode();
343 } catch (TokenMgrError e) {
344 PHPeclipsePlugin.log(e);
345 errorStart = SimpleCharStream.getPosition();
346 errorEnd = errorStart + 1;
347 errorMessage = e.getMessage();
349 {if (true) throw generateParseException();}
354 * A php block is a <?= expression [;]?>
355 * or <?php somephpcode ?>
356 * or <? somephpcode ?>
358 static final public void PhpBlock() throws ParseException {
359 final int start = SimpleCharStream.getPosition();
360 final PHPEchoBlock phpEchoBlock;
361 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
363 phpEchoBlock = phpEchoBlock();
364 pushOnAstNodes(phpEchoBlock);
403 case INTEGER_LITERAL:
404 case FLOATING_POINT_LITERAL:
411 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
414 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
416 jj_consume_token(PHPSTARTLONG);
419 jj_consume_token(PHPSTARTSHORT);
421 setMarker(fileToParse,
422 "You should use '<?php' instead of '<?' it will avoid some problems with XML",
424 SimpleCharStream.getPosition(),
426 "Line " + token.beginLine);
427 } catch (CoreException e) {
428 PHPeclipsePlugin.log(e);
433 jj_consume_token(-1);
434 throw new ParseException();
443 jj_consume_token(PHPEND);
444 } catch (ParseException e) {
445 errorMessage = "'?>' expected";
447 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
448 errorEnd = SimpleCharStream.getPosition() + 1;
449 processParseException(e);
454 jj_consume_token(-1);
455 throw new ParseException();
459 static final public PHPEchoBlock phpEchoBlock() throws ParseException {
460 final Expression expr;
461 final int pos = SimpleCharStream.getPosition();
462 final PHPEchoBlock echoBlock;
463 jj_consume_token(PHPECHOSTART);
465 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
467 jj_consume_token(SEMICOLON);
473 jj_consume_token(PHPEND);
474 echoBlock = new PHPEchoBlock(expr,pos,SimpleCharStream.getPosition());
475 pushOnAstNodes(echoBlock);
476 {if (true) return echoBlock;}
477 throw new Error("Missing return statement in function");
480 static final public void Php() throws ParseException {
483 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
518 case INTEGER_LITERAL:
519 case FLOATING_POINT_LITERAL:
536 static final public ClassDeclaration ClassDeclaration() throws ParseException {
537 final ClassDeclaration classDeclaration;
538 final Token className,superclassName;
540 char[] classNameImage = SYNTAX_ERROR_CHAR;
541 char[] superclassNameImage = null;
542 jj_consume_token(CLASS);
543 pos = SimpleCharStream.getPosition();
545 className = jj_consume_token(IDENTIFIER);
546 classNameImage = className.image.toCharArray();
547 } catch (ParseException e) {
548 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
550 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
551 errorEnd = SimpleCharStream.getPosition() + 1;
552 processParseException(e);
554 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
556 jj_consume_token(EXTENDS);
558 superclassName = jj_consume_token(IDENTIFIER);
559 superclassNameImage = superclassName.image.toCharArray();
560 } catch (ParseException e) {
561 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected";
563 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
564 errorEnd = SimpleCharStream.getPosition() + 1;
565 processParseException(e);
566 superclassNameImage = SYNTAX_ERROR_CHAR;
573 if (superclassNameImage == null) {
574 classDeclaration = new ClassDeclaration(currentSegment,
579 classDeclaration = new ClassDeclaration(currentSegment,
585 currentSegment.add(classDeclaration);
586 currentSegment = classDeclaration;
587 ClassBody(classDeclaration);
588 currentSegment = (OutlineableWithChildren) currentSegment.getParent();
589 classDeclaration.sourceEnd = SimpleCharStream.getPosition();
590 pushOnAstNodes(classDeclaration);
591 {if (true) return classDeclaration;}
592 throw new Error("Missing return statement in function");
595 static final public void ClassBody(final ClassDeclaration classDeclaration) throws ParseException {
597 jj_consume_token(LBRACE);
598 } catch (ParseException e) {
599 errorMessage = "unexpected token : '"+ e.currentToken.next.image + "'. '{' expected";
601 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
602 errorEnd = SimpleCharStream.getPosition() + 1;
603 processParseException(e);
607 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
616 ClassBodyDeclaration(classDeclaration);
619 jj_consume_token(RBRACE);
620 } catch (ParseException e) {
621 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected";
623 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
624 errorEnd = SimpleCharStream.getPosition() + 1;
625 processParseException(e);
630 * A class can contain only methods and fields.
632 static final public void ClassBodyDeclaration(final ClassDeclaration classDeclaration) throws ParseException {
633 final MethodDeclaration method;
634 final FieldDeclaration field;
635 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
637 method = MethodDeclaration();
638 classDeclaration.addMethod(method);
641 field = FieldDeclaration();
642 classDeclaration.addField(field);
646 jj_consume_token(-1);
647 throw new ParseException();
652 * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;.
654 static final public FieldDeclaration FieldDeclaration() throws ParseException {
655 VariableDeclaration variableDeclaration;
656 final VariableDeclaration[] list;
657 final ArrayList arrayList = new ArrayList();
658 final int pos = SimpleCharStream.getPosition();
659 jj_consume_token(VAR);
660 variableDeclaration = VariableDeclarator();
661 arrayList.add(variableDeclaration);
662 outlineInfo.addVariable(new String(variableDeclaration.name));
665 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
673 jj_consume_token(COMMA);
674 variableDeclaration = VariableDeclarator();
675 arrayList.add(variableDeclaration);
676 outlineInfo.addVariable(new String(variableDeclaration.name));
679 jj_consume_token(SEMICOLON);
680 } catch (ParseException e) {
681 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration";
683 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
684 errorEnd = SimpleCharStream.getPosition() + 1;
685 processParseException(e);
687 list = new VariableDeclaration[arrayList.size()];
688 arrayList.toArray(list);
689 {if (true) return new FieldDeclaration(list,
691 SimpleCharStream.getPosition(),
693 throw new Error("Missing return statement in function");
696 static final public VariableDeclaration VariableDeclarator() throws ParseException {
697 final String varName;
698 Expression initializer = null;
699 final int pos = SimpleCharStream.getPosition();
700 varName = VariableDeclaratorId();
701 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
703 jj_consume_token(ASSIGN);
705 initializer = VariableInitializer();
706 } catch (ParseException e) {
707 errorMessage = "Literal expression expected in variable initializer";
709 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
710 errorEnd = SimpleCharStream.getPosition() + 1;
711 processParseException(e);
718 if (initializer == null) {
719 {if (true) return new VariableDeclaration(currentSegment,
720 varName.toCharArray(),
722 SimpleCharStream.getPosition());}
724 {if (true) return new VariableDeclaration(currentSegment,
725 varName.toCharArray(),
728 throw new Error("Missing return statement in function");
733 * @return the variable name (with suffix)
735 static final public String VariableDeclaratorId() throws ParseException {
737 Expression expression = null;
738 final int pos = SimpleCharStream.getPosition();
739 ConstantIdentifier ex;
749 ex = new ConstantIdentifier(expr.toCharArray(),
751 SimpleCharStream.getPosition());
752 expression = VariableSuffix(ex);
754 if (expression == null) {
755 {if (true) return expr;}
757 {if (true) return expression.toStringExpression();}
758 } catch (ParseException e) {
759 errorMessage = "'$' expected for variable identifier";
761 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
762 errorEnd = SimpleCharStream.getPosition() + 1;
765 throw new Error("Missing return statement in function");
769 * Return a variablename without the $.
770 * @return a variable name
772 static final public String Variable() throws ParseException {
773 final StringBuffer buff;
774 Expression expression = null;
777 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
779 token = jj_consume_token(DOLLAR_ID);
780 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
782 jj_consume_token(LBRACE);
783 expression = Expression();
784 jj_consume_token(RBRACE);
790 if (expression == null) {
791 {if (true) return token.image.substring(1);}
793 buff = new StringBuffer(token.image);
795 buff.append(expression.toStringExpression());
797 {if (true) return buff.toString();}
800 jj_consume_token(DOLLAR);
801 expr = VariableName();
802 {if (true) return expr;}
806 jj_consume_token(-1);
807 throw new ParseException();
809 throw new Error("Missing return statement in function");
813 * A Variable name (without the $)
814 * @return a variable name String
816 static final public String VariableName() throws ParseException {
817 final StringBuffer buff;
819 Expression expression = null;
821 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
823 jj_consume_token(LBRACE);
824 expression = Expression();
825 jj_consume_token(RBRACE);
826 buff = new StringBuffer("{");
827 buff.append(expression.toStringExpression());
829 {if (true) return buff.toString();}
832 token = jj_consume_token(IDENTIFIER);
833 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
835 jj_consume_token(LBRACE);
836 expression = Expression();
837 jj_consume_token(RBRACE);
843 if (expression == null) {
844 {if (true) return token.image;}
846 buff = new StringBuffer(token.image);
848 buff.append(expression.toStringExpression());
850 {if (true) return buff.toString();}
853 jj_consume_token(DOLLAR);
854 expr = VariableName();
855 buff = new StringBuffer("$");
857 {if (true) return buff.toString();}
860 token = jj_consume_token(DOLLAR_ID);
861 {if (true) return token.image;}
865 jj_consume_token(-1);
866 throw new ParseException();
868 throw new Error("Missing return statement in function");
871 static final public Expression VariableInitializer() throws ParseException {
872 final Expression expr;
874 final int pos = SimpleCharStream.getPosition();
875 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
879 case INTEGER_LITERAL:
880 case FLOATING_POINT_LITERAL:
883 {if (true) return expr;}
886 jj_consume_token(MINUS);
887 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
888 case INTEGER_LITERAL:
889 token = jj_consume_token(INTEGER_LITERAL);
891 case FLOATING_POINT_LITERAL:
892 token = jj_consume_token(FLOATING_POINT_LITERAL);
896 jj_consume_token(-1);
897 throw new ParseException();
899 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
901 SimpleCharStream.getPosition()),
906 jj_consume_token(PLUS);
907 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
908 case INTEGER_LITERAL:
909 token = jj_consume_token(INTEGER_LITERAL);
911 case FLOATING_POINT_LITERAL:
912 token = jj_consume_token(FLOATING_POINT_LITERAL);
916 jj_consume_token(-1);
917 throw new ParseException();
919 {if (true) return new PrefixedUnaryExpression(new NumberLiteral(token.image.toCharArray(),
921 SimpleCharStream.getPosition()),
926 expr = ArrayDeclarator();
927 {if (true) return expr;}
930 token = jj_consume_token(IDENTIFIER);
931 {if (true) return new ConstantIdentifier(token.image.toCharArray(),pos,SimpleCharStream.getPosition());}
935 jj_consume_token(-1);
936 throw new ParseException();
938 throw new Error("Missing return statement in function");
941 static final public ArrayVariableDeclaration ArrayVariable() throws ParseException {
942 final Expression expr,expr2;
944 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
946 jj_consume_token(ARRAYASSIGN);
947 expr2 = Expression();
948 {if (true) return new ArrayVariableDeclaration(expr,expr2);}
954 {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());}
955 throw new Error("Missing return statement in function");
958 static final public ArrayVariableDeclaration[] ArrayInitializer() throws ParseException {
959 ArrayVariableDeclaration expr;
960 final ArrayList list = new ArrayList();
961 jj_consume_token(LPAREN);
962 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
978 case INTEGER_LITERAL:
979 case FLOATING_POINT_LITERAL:
984 expr = ArrayVariable();
993 jj_consume_token(COMMA);
994 expr = ArrayVariable();
1002 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1004 jj_consume_token(COMMA);
1008 jj_la1[20] = jj_gen;
1011 jj_consume_token(RPAREN);
1012 final ArrayVariableDeclaration[] vars = new ArrayVariableDeclaration[list.size()];
1014 {if (true) return vars;}
1015 throw new Error("Missing return statement in function");
1019 * A Method Declaration.
1020 * <b>function</b> MetodDeclarator() Block()
1022 static final public MethodDeclaration MethodDeclaration() throws ParseException {
1023 final MethodDeclaration functionDeclaration;
1025 final OutlineableWithChildren seg = currentSegment;
1026 jj_consume_token(FUNCTION);
1028 functionDeclaration = MethodDeclarator();
1029 outlineInfo.addVariable(new String(functionDeclaration.name));
1030 } catch (ParseException e) {
1031 if (errorMessage != null) {if (true) throw e;}
1032 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1034 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1035 errorEnd = SimpleCharStream.getPosition() + 1;
1036 {if (true) throw e;}
1038 currentSegment = functionDeclaration;
1040 functionDeclaration.statements = block.statements;
1041 currentSegment = seg;
1042 {if (true) return functionDeclaration;}
1043 throw new Error("Missing return statement in function");
1047 * A MethodDeclarator.
1048 * [&] IDENTIFIER(parameters ...).
1049 * @return a function description for the outline
1051 static final public MethodDeclaration MethodDeclarator() throws ParseException {
1052 final Token identifier;
1053 Token reference = null;
1054 final Hashtable formalParameters;
1055 final int pos = SimpleCharStream.getPosition();
1056 char[] identifierChar = SYNTAX_ERROR_CHAR;
1057 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1059 reference = jj_consume_token(BIT_AND);
1062 jj_la1[21] = jj_gen;
1066 identifier = jj_consume_token(IDENTIFIER);
1067 identifierChar = identifier.image.toCharArray();
1068 } catch (ParseException e) {
1069 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected";
1071 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1072 errorEnd = SimpleCharStream.getPosition() + 1;
1073 processParseException(e);
1075 formalParameters = FormalParameters();
1076 {if (true) return new MethodDeclaration(currentSegment,
1081 SimpleCharStream.getPosition());}
1082 throw new Error("Missing return statement in function");
1086 * FormalParameters follows method identifier.
1087 * (FormalParameter())
1089 static final public Hashtable FormalParameters() throws ParseException {
1090 VariableDeclaration var;
1091 final Hashtable parameters = new Hashtable();
1093 jj_consume_token(LPAREN);
1094 } catch (ParseException e) {
1095 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier";
1097 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1098 errorEnd = SimpleCharStream.getPosition() + 1;
1099 processParseException(e);
1101 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1105 var = FormalParameter();
1106 parameters.put(new String(var.name),var);
1109 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1114 jj_la1[22] = jj_gen;
1117 jj_consume_token(COMMA);
1118 var = FormalParameter();
1119 parameters.put(new String(var.name),var);
1123 jj_la1[23] = jj_gen;
1127 jj_consume_token(RPAREN);
1128 } catch (ParseException e) {
1129 errorMessage = "')' expected";
1131 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1132 errorEnd = SimpleCharStream.getPosition() + 1;
1133 processParseException(e);
1135 {if (true) return parameters;}
1136 throw new Error("Missing return statement in function");
1140 * A formal parameter.
1141 * $varname[=value] (,$varname[=value])
1143 static final public VariableDeclaration FormalParameter() throws ParseException {
1144 final VariableDeclaration variableDeclaration;
1146 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1148 token = jj_consume_token(BIT_AND);
1151 jj_la1[24] = jj_gen;
1154 variableDeclaration = VariableDeclarator();
1155 if (token != null) {
1156 variableDeclaration.setReference(true);
1158 {if (true) return variableDeclaration;}
1159 throw new Error("Missing return statement in function");
1162 static final public ConstantIdentifier Type() throws ParseException {
1164 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1166 jj_consume_token(STRING);
1167 pos = SimpleCharStream.getPosition();
1168 {if (true) return new ConstantIdentifier(Types.STRING,pos,pos-6);}
1171 jj_consume_token(BOOL);
1172 pos = SimpleCharStream.getPosition();
1173 {if (true) return new ConstantIdentifier(Types.BOOL,pos,pos-4);}
1176 jj_consume_token(BOOLEAN);
1177 pos = SimpleCharStream.getPosition();
1178 {if (true) return new ConstantIdentifier(Types.BOOLEAN,pos,pos-7);}
1181 jj_consume_token(REAL);
1182 pos = SimpleCharStream.getPosition();
1183 {if (true) return new ConstantIdentifier(Types.REAL,pos,pos-4);}
1186 jj_consume_token(DOUBLE);
1187 pos = SimpleCharStream.getPosition();
1188 {if (true) return new ConstantIdentifier(Types.DOUBLE,pos,pos-5);}
1191 jj_consume_token(FLOAT);
1192 pos = SimpleCharStream.getPosition();
1193 {if (true) return new ConstantIdentifier(Types.FLOAT,pos,pos-5);}
1196 jj_consume_token(INT);
1197 pos = SimpleCharStream.getPosition();
1198 {if (true) return new ConstantIdentifier(Types.INT,pos,pos-3);}
1201 jj_consume_token(INTEGER);
1202 pos = SimpleCharStream.getPosition();
1203 {if (true) return new ConstantIdentifier(Types.INTEGER,pos,pos-7);}
1206 jj_consume_token(OBJECT);
1207 pos = SimpleCharStream.getPosition();
1208 {if (true) return new ConstantIdentifier(Types.OBJECT,pos,pos-6);}
1211 jj_la1[25] = jj_gen;
1212 jj_consume_token(-1);
1213 throw new ParseException();
1215 throw new Error("Missing return statement in function");
1218 static final public Expression Expression() throws ParseException {
1219 final Expression expr;
1220 Expression initializer = null;
1221 int assignOperator = -1;
1222 final int pos = SimpleCharStream.getPosition();
1223 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1237 case INTEGER_LITERAL:
1238 case FLOATING_POINT_LITERAL:
1239 case STRING_LITERAL:
1243 expr = ConditionalExpression();
1244 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1257 case RSIGNEDSHIFTASSIGN:
1258 assignOperator = AssignmentOperator();
1260 initializer = Expression();
1261 } catch (ParseException e) {
1262 if (errorMessage != null) {
1263 {if (true) throw e;}
1265 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1267 errorEnd = SimpleCharStream.getPosition();
1268 {if (true) throw e;}
1272 jj_la1[26] = jj_gen;
1275 if (assignOperator == -1) {if (true) return expr;}
1276 {if (true) return new VarAssignation(expr,
1280 SimpleCharStream.getPosition());}
1281 {if (true) return expr;}
1285 expr = ExpressionWBang();
1286 {if (true) return expr;}
1289 jj_la1[27] = jj_gen;
1290 jj_consume_token(-1);
1291 throw new ParseException();
1293 throw new Error("Missing return statement in function");
1296 static final public Expression ExpressionWBang() throws ParseException {
1297 final Expression expr;
1298 final int pos = SimpleCharStream.getPosition();
1299 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1301 jj_consume_token(BANG);
1302 expr = ExpressionWBang();
1303 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1307 expr = ExpressionNoBang();
1308 {if (true) return expr;}
1311 jj_la1[28] = jj_gen;
1312 jj_consume_token(-1);
1313 throw new ParseException();
1315 throw new Error("Missing return statement in function");
1318 static final public Expression ExpressionNoBang() throws ParseException {
1319 final Expression expr;
1320 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1322 expr = PrintExpression();
1323 {if (true) return expr;}
1326 expr = ListExpression();
1327 {if (true) return expr;}
1330 jj_la1[29] = jj_gen;
1331 jj_consume_token(-1);
1332 throw new ParseException();
1334 throw new Error("Missing return statement in function");
1338 * Any assignement operator.
1339 * @return the assignement operator id
1341 static final public int AssignmentOperator() throws ParseException {
1342 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1344 jj_consume_token(ASSIGN);
1345 {if (true) return VarAssignation.EQUAL;}
1348 jj_consume_token(STARASSIGN);
1349 {if (true) return VarAssignation.STAR_EQUAL;}
1352 jj_consume_token(SLASHASSIGN);
1353 {if (true) return VarAssignation.SLASH_EQUAL;}
1356 jj_consume_token(REMASSIGN);
1357 {if (true) return VarAssignation.REM_EQUAL;}
1360 jj_consume_token(PLUSASSIGN);
1361 {if (true) return VarAssignation.PLUS_EQUAL;}
1364 jj_consume_token(MINUSASSIGN);
1365 {if (true) return VarAssignation.MINUS_EQUAL;}
1368 jj_consume_token(LSHIFTASSIGN);
1369 {if (true) return VarAssignation.LSHIFT_EQUAL;}
1371 case RSIGNEDSHIFTASSIGN:
1372 jj_consume_token(RSIGNEDSHIFTASSIGN);
1373 {if (true) return VarAssignation.RSIGNEDSHIFT_EQUAL;}
1376 jj_consume_token(ANDASSIGN);
1377 {if (true) return VarAssignation.AND_EQUAL;}
1380 jj_consume_token(XORASSIGN);
1381 {if (true) return VarAssignation.XOR_EQUAL;}
1384 jj_consume_token(ORASSIGN);
1385 {if (true) return VarAssignation.OR_EQUAL;}
1388 jj_consume_token(DOTASSIGN);
1389 {if (true) return VarAssignation.DOT_EQUAL;}
1392 jj_consume_token(TILDEEQUAL);
1393 {if (true) return VarAssignation.TILDE_EQUAL;}
1396 jj_la1[30] = jj_gen;
1397 jj_consume_token(-1);
1398 throw new ParseException();
1400 throw new Error("Missing return statement in function");
1403 static final public Expression ConditionalExpression() throws ParseException {
1404 final Expression expr;
1405 Expression expr2 = null;
1406 Expression expr3 = null;
1407 expr = ConditionalOrExpression();
1408 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1410 jj_consume_token(HOOK);
1411 expr2 = Expression();
1412 jj_consume_token(COLON);
1413 expr3 = ConditionalExpression();
1416 jj_la1[31] = jj_gen;
1419 if (expr3 == null) {
1420 {if (true) return expr;}
1422 {if (true) return new ConditionalExpression(expr,expr2,expr3);}
1423 throw new Error("Missing return statement in function");
1426 static final public Expression ConditionalOrExpression() throws ParseException {
1427 Expression expr,expr2;
1429 expr = ConditionalAndExpression();
1432 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1438 jj_la1[32] = jj_gen;
1441 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1443 jj_consume_token(OR_OR);
1444 operator = OperatorIds.OR_OR;
1447 jj_consume_token(_ORL);
1448 operator = OperatorIds.ORL;
1451 jj_la1[33] = jj_gen;
1452 jj_consume_token(-1);
1453 throw new ParseException();
1455 expr2 = ConditionalAndExpression();
1456 expr = new BinaryExpression(expr,expr2,operator);
1458 {if (true) return expr;}
1459 throw new Error("Missing return statement in function");
1462 static final public Expression ConditionalAndExpression() throws ParseException {
1463 Expression expr,expr2;
1465 expr = ConcatExpression();
1468 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1474 jj_la1[34] = jj_gen;
1477 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1479 jj_consume_token(AND_AND);
1480 operator = OperatorIds.AND_AND;
1483 jj_consume_token(_ANDL);
1484 operator = OperatorIds.ANDL;
1487 jj_la1[35] = jj_gen;
1488 jj_consume_token(-1);
1489 throw new ParseException();
1491 expr2 = ConcatExpression();
1492 expr = new BinaryExpression(expr,expr2,operator);
1494 {if (true) return expr;}
1495 throw new Error("Missing return statement in function");
1498 static final public Expression ConcatExpression() throws ParseException {
1499 Expression expr,expr2;
1500 expr = InclusiveOrExpression();
1503 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1508 jj_la1[36] = jj_gen;
1511 jj_consume_token(DOT);
1512 expr2 = InclusiveOrExpression();
1513 expr = new BinaryExpression(expr,expr2,OperatorIds.DOT);
1515 {if (true) return expr;}
1516 throw new Error("Missing return statement in function");
1519 static final public Expression InclusiveOrExpression() throws ParseException {
1520 Expression expr,expr2;
1521 expr = ExclusiveOrExpression();
1524 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1529 jj_la1[37] = jj_gen;
1532 jj_consume_token(BIT_OR);
1533 expr2 = ExclusiveOrExpression();
1534 expr = new BinaryExpression(expr,expr2,OperatorIds.OR);
1536 {if (true) return expr;}
1537 throw new Error("Missing return statement in function");
1540 static final public Expression ExclusiveOrExpression() throws ParseException {
1541 Expression expr,expr2;
1542 expr = AndExpression();
1545 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1550 jj_la1[38] = jj_gen;
1553 jj_consume_token(XOR);
1554 expr2 = AndExpression();
1555 expr = new BinaryExpression(expr,expr2,OperatorIds.XOR);
1557 {if (true) return expr;}
1558 throw new Error("Missing return statement in function");
1561 static final public Expression AndExpression() throws ParseException {
1562 Expression expr,expr2;
1563 expr = EqualityExpression();
1566 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1571 jj_la1[39] = jj_gen;
1574 jj_consume_token(BIT_AND);
1575 expr2 = EqualityExpression();
1576 expr = new BinaryExpression(expr,expr2,OperatorIds.AND);
1578 {if (true) return expr;}
1579 throw new Error("Missing return statement in function");
1582 static final public Expression EqualityExpression() throws ParseException {
1583 Expression expr,expr2;
1585 expr = RelationalExpression();
1588 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1592 case BANGDOUBLEEQUAL:
1597 jj_la1[40] = jj_gen;
1600 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1602 jj_consume_token(EQUAL_EQUAL);
1603 operator = OperatorIds.EQUAL_EQUAL;
1606 jj_consume_token(DIF);
1607 operator = OperatorIds.DIF;
1610 jj_consume_token(NOT_EQUAL);
1611 operator = OperatorIds.DIF;
1613 case BANGDOUBLEEQUAL:
1614 jj_consume_token(BANGDOUBLEEQUAL);
1615 operator = OperatorIds.BANG_EQUAL_EQUAL;
1618 jj_consume_token(TRIPLEEQUAL);
1619 operator = OperatorIds.EQUAL_EQUAL_EQUAL;
1622 jj_la1[41] = jj_gen;
1623 jj_consume_token(-1);
1624 throw new ParseException();
1627 expr2 = RelationalExpression();
1628 } catch (ParseException e) {
1629 if (errorMessage != null) {
1630 {if (true) throw e;}
1632 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
1634 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1635 errorEnd = SimpleCharStream.getPosition() + 1;
1636 {if (true) throw e;}
1638 expr = new BinaryExpression(expr,expr2,operator);
1640 {if (true) return expr;}
1641 throw new Error("Missing return statement in function");
1644 static final public Expression RelationalExpression() throws ParseException {
1645 Expression expr,expr2;
1647 expr = ShiftExpression();
1650 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1658 jj_la1[42] = jj_gen;
1661 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1663 jj_consume_token(LT);
1664 operator = OperatorIds.LESS;
1667 jj_consume_token(GT);
1668 operator = OperatorIds.GREATER;
1671 jj_consume_token(LE);
1672 operator = OperatorIds.LESS_EQUAL;
1675 jj_consume_token(GE);
1676 operator = OperatorIds.GREATER_EQUAL;
1679 jj_la1[43] = jj_gen;
1680 jj_consume_token(-1);
1681 throw new ParseException();
1683 expr2 = ShiftExpression();
1684 expr = new BinaryExpression(expr,expr2,operator);
1686 {if (true) return expr;}
1687 throw new Error("Missing return statement in function");
1690 static final public Expression ShiftExpression() throws ParseException {
1691 Expression expr,expr2;
1693 expr = AdditiveExpression();
1696 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1699 case RUNSIGNEDSHIFT:
1703 jj_la1[44] = jj_gen;
1706 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1708 jj_consume_token(LSHIFT);
1709 operator = OperatorIds.LEFT_SHIFT;
1712 jj_consume_token(RSIGNEDSHIFT);
1713 operator = OperatorIds.RIGHT_SHIFT;
1715 case RUNSIGNEDSHIFT:
1716 jj_consume_token(RUNSIGNEDSHIFT);
1717 operator = OperatorIds.UNSIGNED_RIGHT_SHIFT;
1720 jj_la1[45] = jj_gen;
1721 jj_consume_token(-1);
1722 throw new ParseException();
1724 expr2 = AdditiveExpression();
1725 expr = new BinaryExpression(expr,expr2,operator);
1727 {if (true) return expr;}
1728 throw new Error("Missing return statement in function");
1731 static final public Expression AdditiveExpression() throws ParseException {
1732 Expression expr,expr2;
1734 expr = MultiplicativeExpression();
1737 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1743 jj_la1[46] = jj_gen;
1746 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1748 jj_consume_token(PLUS);
1749 operator = OperatorIds.PLUS;
1752 jj_consume_token(MINUS);
1753 operator = OperatorIds.MINUS;
1756 jj_la1[47] = jj_gen;
1757 jj_consume_token(-1);
1758 throw new ParseException();
1760 expr2 = MultiplicativeExpression();
1761 expr = new BinaryExpression(expr,expr2,operator);
1763 {if (true) return expr;}
1764 throw new Error("Missing return statement in function");
1767 static final public Expression MultiplicativeExpression() throws ParseException {
1768 Expression expr,expr2;
1771 expr = UnaryExpression();
1772 } catch (ParseException e) {
1773 if (errorMessage != null) {if (true) throw e;}
1774 errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
1776 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
1777 errorEnd = SimpleCharStream.getPosition() + 1;
1778 {if (true) throw e;}
1782 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1789 jj_la1[48] = jj_gen;
1792 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1794 jj_consume_token(STAR);
1795 operator = OperatorIds.MULTIPLY;
1798 jj_consume_token(SLASH);
1799 operator = OperatorIds.DIVIDE;
1802 jj_consume_token(REMAINDER);
1803 operator = OperatorIds.REMAINDER;
1806 jj_la1[49] = jj_gen;
1807 jj_consume_token(-1);
1808 throw new ParseException();
1810 expr2 = UnaryExpression();
1811 expr = new BinaryExpression(expr,expr2,operator);
1813 {if (true) return expr;}
1814 throw new Error("Missing return statement in function");
1818 * An unary expression starting with @, & or nothing
1820 static final public Expression UnaryExpression() throws ParseException {
1821 final Expression expr;
1822 final int pos = SimpleCharStream.getPosition();
1823 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1825 jj_consume_token(BIT_AND);
1826 expr = UnaryExpressionNoPrefix();
1827 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);}
1841 case INTEGER_LITERAL:
1842 case FLOATING_POINT_LITERAL:
1843 case STRING_LITERAL:
1847 expr = AtUnaryExpression();
1848 {if (true) return expr;}
1851 jj_la1[50] = jj_gen;
1852 jj_consume_token(-1);
1853 throw new ParseException();
1855 throw new Error("Missing return statement in function");
1858 static final public Expression AtUnaryExpression() throws ParseException {
1859 final Expression expr;
1860 final int pos = SimpleCharStream.getPosition();
1861 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1863 jj_consume_token(AT);
1864 expr = AtUnaryExpression();
1865 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,pos);}
1878 case INTEGER_LITERAL:
1879 case FLOATING_POINT_LITERAL:
1880 case STRING_LITERAL:
1884 expr = UnaryExpressionNoPrefix();
1885 {if (true) return expr;}
1888 jj_la1[51] = jj_gen;
1889 jj_consume_token(-1);
1890 throw new ParseException();
1892 throw new Error("Missing return statement in function");
1895 static final public Expression UnaryExpressionNoPrefix() throws ParseException {
1896 final Expression expr;
1898 final int pos = SimpleCharStream.getPosition();
1899 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1902 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1904 jj_consume_token(PLUS);
1905 operator = OperatorIds.PLUS;
1908 jj_consume_token(MINUS);
1909 operator = OperatorIds.MINUS;
1912 jj_la1[52] = jj_gen;
1913 jj_consume_token(-1);
1914 throw new ParseException();
1916 expr = UnaryExpression();
1917 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1921 expr = PreIncDecExpression();
1922 {if (true) return expr;}
1931 case INTEGER_LITERAL:
1932 case FLOATING_POINT_LITERAL:
1933 case STRING_LITERAL:
1937 expr = UnaryExpressionNotPlusMinus();
1938 {if (true) return expr;}
1941 jj_la1[53] = jj_gen;
1942 jj_consume_token(-1);
1943 throw new ParseException();
1945 throw new Error("Missing return statement in function");
1948 static final public Expression PreIncDecExpression() throws ParseException {
1949 final Expression expr;
1951 final int pos = SimpleCharStream.getPosition();
1952 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1954 jj_consume_token(PLUS_PLUS);
1955 operator = OperatorIds.PLUS_PLUS;
1958 jj_consume_token(MINUS_MINUS);
1959 operator = OperatorIds.MINUS_MINUS;
1962 jj_la1[54] = jj_gen;
1963 jj_consume_token(-1);
1964 throw new ParseException();
1966 expr = PrimaryExpression();
1967 {if (true) return new PrefixedUnaryExpression(expr,operator,pos);}
1968 throw new Error("Missing return statement in function");
1971 static final public Expression UnaryExpressionNotPlusMinus() throws ParseException {
1972 final Expression expr;
1973 final int pos = SimpleCharStream.getPosition();
1974 if (jj_2_3(2147483647)) {
1975 expr = CastExpression();
1976 {if (true) return expr;}
1978 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1980 jj_consume_token(BANG);
1981 expr = UnaryExpression();
1982 {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,pos);}
1989 expr = PostfixExpression();
1990 {if (true) return expr;}
1995 case INTEGER_LITERAL:
1996 case FLOATING_POINT_LITERAL:
1997 case STRING_LITERAL:
1999 {if (true) return expr;}
2002 jj_consume_token(LPAREN);
2003 expr = Expression();
2005 jj_consume_token(RPAREN);
2006 } catch (ParseException e) {
2007 errorMessage = "')' expected";
2009 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2010 errorEnd = SimpleCharStream.getPosition() + 1;
2011 {if (true) throw e;}
2013 {if (true) return expr;}
2016 jj_la1[55] = jj_gen;
2017 jj_consume_token(-1);
2018 throw new ParseException();
2021 throw new Error("Missing return statement in function");
2024 static final public CastExpression CastExpression() throws ParseException {
2025 final ConstantIdentifier type;
2026 final Expression expr;
2027 final int pos = SimpleCharStream.getPosition();
2028 jj_consume_token(LPAREN);
2029 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2042 jj_consume_token(ARRAY);
2043 type = new ConstantIdentifier(Types.ARRAY,pos,SimpleCharStream.getPosition());
2046 jj_la1[56] = jj_gen;
2047 jj_consume_token(-1);
2048 throw new ParseException();
2050 jj_consume_token(RPAREN);
2051 expr = UnaryExpression();
2052 {if (true) return new CastExpression(type,expr,pos,SimpleCharStream.getPosition());}
2053 throw new Error("Missing return statement in function");
2056 static final public Expression PostfixExpression() throws ParseException {
2057 final Expression expr;
2059 final int pos = SimpleCharStream.getPosition();
2060 expr = PrimaryExpression();
2061 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2064 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2066 jj_consume_token(PLUS_PLUS);
2067 operator = OperatorIds.PLUS_PLUS;
2070 jj_consume_token(MINUS_MINUS);
2071 operator = OperatorIds.MINUS_MINUS;
2074 jj_la1[57] = jj_gen;
2075 jj_consume_token(-1);
2076 throw new ParseException();
2080 jj_la1[58] = jj_gen;
2083 if (operator == -1) {
2084 {if (true) return expr;}
2086 {if (true) return new PostfixedUnaryExpression(expr,operator,pos);}
2087 throw new Error("Missing return statement in function");
2090 static final public Expression PrimaryExpression() throws ParseException {
2092 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2097 expr = PrimaryPrefix();
2100 if (jj_2_4(2147483647)) {
2105 expr = PrimarySuffix(expr);
2107 {if (true) return expr;}
2110 expr = ArrayDeclarator();
2111 {if (true) return expr;}
2114 jj_la1[59] = jj_gen;
2115 jj_consume_token(-1);
2116 throw new ParseException();
2118 throw new Error("Missing return statement in function");
2121 static final public Expression PrimaryPrefix() throws ParseException {
2122 final Expression expr;
2125 final int pos = SimpleCharStream.getPosition();
2126 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2128 token = jj_consume_token(IDENTIFIER);
2129 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2131 SimpleCharStream.getPosition());}
2134 jj_consume_token(NEW);
2135 expr = ClassIdentifier();
2136 {if (true) return new PrefixedUnaryExpression(expr,
2142 var = VariableDeclaratorId();
2143 {if (true) return new VariableDeclaration(currentSegment,
2146 SimpleCharStream.getPosition());}
2149 jj_la1[60] = jj_gen;
2150 jj_consume_token(-1);
2151 throw new ParseException();
2153 throw new Error("Missing return statement in function");
2156 static final public AbstractSuffixExpression PrimarySuffix(final Expression prefix) throws ParseException {
2157 final AbstractSuffixExpression suffix;
2158 final Expression expr;
2159 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2161 suffix = Arguments(prefix);
2162 {if (true) return suffix;}
2166 suffix = VariableSuffix(prefix);
2167 {if (true) return suffix;}
2169 case STATICCLASSACCESS:
2170 jj_consume_token(STATICCLASSACCESS);
2171 expr = ClassIdentifier();
2172 suffix = new ClassAccess(prefix,
2174 ClassAccess.STATIC);
2175 {if (true) return suffix;}
2178 jj_la1[61] = jj_gen;
2179 jj_consume_token(-1);
2180 throw new ParseException();
2182 throw new Error("Missing return statement in function");
2186 * An array declarator.
2190 static final public ArrayInitializer ArrayDeclarator() throws ParseException {
2191 final ArrayVariableDeclaration[] vars;
2192 final int pos = SimpleCharStream.getPosition();
2193 jj_consume_token(ARRAY);
2194 vars = ArrayInitializer();
2195 {if (true) return new ArrayInitializer(vars,pos,SimpleCharStream.getPosition());}
2196 throw new Error("Missing return statement in function");
2199 static final public PrefixedUnaryExpression classInstantiation() throws ParseException {
2201 final StringBuffer buff;
2202 final int pos = SimpleCharStream.getPosition();
2203 jj_consume_token(NEW);
2204 expr = ClassIdentifier();
2205 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2211 buff = new StringBuffer(expr.toStringExpression());
2212 expr = PrimaryExpression();
2213 buff.append(expr.toStringExpression());
2214 expr = new ConstantIdentifier(buff.toString().toCharArray(),
2216 SimpleCharStream.getPosition());
2219 jj_la1[62] = jj_gen;
2222 {if (true) return new PrefixedUnaryExpression(expr,
2225 throw new Error("Missing return statement in function");
2228 static final public ConstantIdentifier ClassIdentifier() throws ParseException {
2231 final int pos = SimpleCharStream.getPosition();
2232 final ConstantIdentifier type;
2233 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2235 token = jj_consume_token(IDENTIFIER);
2236 {if (true) return new ConstantIdentifier(token.image.toCharArray(),
2238 SimpleCharStream.getPosition());}
2250 {if (true) return type;}
2254 expr = VariableDeclaratorId();
2255 {if (true) return new ConstantIdentifier(expr.toCharArray(),
2257 SimpleCharStream.getPosition());}
2260 jj_la1[63] = jj_gen;
2261 jj_consume_token(-1);
2262 throw new ParseException();
2264 throw new Error("Missing return statement in function");
2267 static final public AbstractSuffixExpression VariableSuffix(final Expression prefix) throws ParseException {
2269 final int pos = SimpleCharStream.getPosition();
2270 Expression expression = null;
2271 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2273 jj_consume_token(CLASSACCESS);
2275 expr = VariableName();
2276 } catch (ParseException e) {
2277 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected";
2279 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2280 errorEnd = SimpleCharStream.getPosition() + 1;
2281 {if (true) throw e;}
2283 {if (true) return new ClassAccess(prefix,
2284 new ConstantIdentifier(expr.toCharArray(),pos,SimpleCharStream.getPosition()),
2285 ClassAccess.NORMAL);}
2288 jj_consume_token(LBRACKET);
2289 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2314 case INTEGER_LITERAL:
2315 case FLOATING_POINT_LITERAL:
2316 case STRING_LITERAL:
2320 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2336 case INTEGER_LITERAL:
2337 case FLOATING_POINT_LITERAL:
2338 case STRING_LITERAL:
2342 expression = Expression();
2353 expression = Type();
2356 jj_la1[64] = jj_gen;
2357 jj_consume_token(-1);
2358 throw new ParseException();
2362 jj_la1[65] = jj_gen;
2366 jj_consume_token(RBRACKET);
2367 } catch (ParseException e) {
2368 errorMessage = "']' expected";
2370 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2371 errorEnd = SimpleCharStream.getPosition() + 1;
2372 {if (true) throw e;}
2374 {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
2377 jj_la1[66] = jj_gen;
2378 jj_consume_token(-1);
2379 throw new ParseException();
2381 throw new Error("Missing return statement in function");
2384 static final public Literal Literal() throws ParseException {
2387 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2388 case INTEGER_LITERAL:
2389 token = jj_consume_token(INTEGER_LITERAL);
2390 pos = SimpleCharStream.getPosition();
2391 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2393 case FLOATING_POINT_LITERAL:
2394 token = jj_consume_token(FLOATING_POINT_LITERAL);
2395 pos = SimpleCharStream.getPosition();
2396 {if (true) return new NumberLiteral(token.image.toCharArray(),pos-token.image.length(),pos);}
2398 case STRING_LITERAL:
2399 token = jj_consume_token(STRING_LITERAL);
2400 pos = SimpleCharStream.getPosition();
2401 {if (true) return new StringLiteral(token.image.toCharArray(),pos-token.image.length());}
2404 jj_consume_token(TRUE);
2405 pos = SimpleCharStream.getPosition();
2406 {if (true) return new TrueLiteral(pos-4,pos);}
2409 jj_consume_token(FALSE);
2410 pos = SimpleCharStream.getPosition();
2411 {if (true) return new FalseLiteral(pos-4,pos);}
2414 jj_consume_token(NULL);
2415 pos = SimpleCharStream.getPosition();
2416 {if (true) return new NullLiteral(pos-4,pos);}
2419 jj_la1[67] = jj_gen;
2420 jj_consume_token(-1);
2421 throw new ParseException();
2423 throw new Error("Missing return statement in function");
2426 static final public FunctionCall Arguments(final Expression func) throws ParseException {
2427 Expression[] args = null;
2428 jj_consume_token(LPAREN);
2429 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2445 case INTEGER_LITERAL:
2446 case FLOATING_POINT_LITERAL:
2447 case STRING_LITERAL:
2451 args = ArgumentList();
2454 jj_la1[68] = jj_gen;
2458 jj_consume_token(RPAREN);
2459 } catch (ParseException e) {
2460 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list";
2462 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2463 errorEnd = SimpleCharStream.getPosition() + 1;
2464 {if (true) throw e;}
2466 {if (true) return new FunctionCall(func,args,SimpleCharStream.getPosition());}
2467 throw new Error("Missing return statement in function");
2471 * An argument list is a list of arguments separated by comma :
2472 * argumentDeclaration() (, argumentDeclaration)*
2473 * @return an array of arguments
2475 static final public Expression[] ArgumentList() throws ParseException {
2477 final ArrayList list = new ArrayList();
2482 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2487 jj_la1[69] = jj_gen;
2490 jj_consume_token(COMMA);
2494 } catch (ParseException e) {
2495 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
2497 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2498 errorEnd = SimpleCharStream.getPosition() + 1;
2499 {if (true) throw e;}
2502 final Expression[] arguments = new Expression[list.size()];
2503 list.toArray(arguments);
2504 {if (true) return arguments;}
2505 throw new Error("Missing return statement in function");
2509 * A Statement without break.
2511 static final public Statement StatementNoBreak() throws ParseException {
2512 final Statement statement;
2515 statement = Expression();
2517 jj_consume_token(SEMICOLON);
2518 } catch (ParseException e) {
2519 if (e.currentToken.next.kind != PHPParserConstants.PHPEND) {
2520 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2522 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2523 errorEnd = SimpleCharStream.getPosition() + 1;
2524 {if (true) throw e;}
2527 {if (true) return statement;}
2528 } else if (jj_2_6(2)) {
2529 statement = LabeledStatement();
2530 {if (true) return statement;}
2532 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2534 statement = Block();
2535 {if (true) return statement;}
2538 statement = EmptyStatement();
2539 {if (true) return statement;}
2548 statement = StatementExpression();
2550 jj_consume_token(SEMICOLON);
2551 } catch (ParseException e) {
2552 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2554 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2555 errorEnd = SimpleCharStream.getPosition() + 1;
2556 {if (true) throw e;}
2558 {if (true) return statement;}
2561 statement = SwitchStatement();
2562 {if (true) return statement;}
2565 statement = IfStatement();
2566 {if (true) return statement;}
2569 statement = WhileStatement();
2570 {if (true) return statement;}
2573 statement = DoStatement();
2574 {if (true) return statement;}
2577 statement = ForStatement();
2578 {if (true) return statement;}
2581 statement = ForeachStatement();
2582 {if (true) return statement;}
2585 statement = ContinueStatement();
2586 {if (true) return statement;}
2589 statement = ReturnStatement();
2590 {if (true) return statement;}
2593 statement = EchoStatement();
2594 {if (true) return statement;}
2601 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2603 token = jj_consume_token(AT);
2606 jj_la1[70] = jj_gen;
2609 statement = IncludeStatement();
2610 if (token != null) {
2611 ((InclusionStatement)statement).silent = true;
2613 {if (true) return statement;}
2616 statement = StaticStatement();
2617 {if (true) return statement;}
2620 statement = GlobalStatement();
2621 {if (true) return statement;}
2624 statement = defineStatement();
2625 currentSegment.add((Outlineable)statement);{if (true) return statement;}
2628 jj_la1[71] = jj_gen;
2629 jj_consume_token(-1);
2630 throw new ParseException();
2633 throw new Error("Missing return statement in function");
2636 static final public Define defineStatement() throws ParseException {
2637 final int start = SimpleCharStream.getPosition();
2638 Expression defineName,defineValue;
2639 jj_consume_token(DEFINE);
2641 jj_consume_token(LPAREN);
2642 } catch (ParseException e) {
2643 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2645 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2646 errorEnd = SimpleCharStream.getPosition() + 1;
2647 processParseException(e);
2650 defineName = Expression();
2651 } catch (ParseException e) {
2652 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
2654 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2655 errorEnd = SimpleCharStream.getPosition() + 1;
2656 {if (true) throw e;}
2659 jj_consume_token(COMMA);
2660 } catch (ParseException e) {
2661 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2663 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2664 errorEnd = SimpleCharStream.getPosition() + 1;
2665 processParseException(e);
2668 defineValue = Expression();
2669 } catch (ParseException e) {
2670 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
2672 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2673 errorEnd = SimpleCharStream.getPosition() + 1;
2674 {if (true) throw e;}
2677 jj_consume_token(RPAREN);
2678 } catch (ParseException e) {
2679 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2681 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2682 errorEnd = SimpleCharStream.getPosition() + 1;
2683 processParseException(e);
2685 {if (true) return new Define(currentSegment,
2689 SimpleCharStream.getPosition());}
2690 throw new Error("Missing return statement in function");
2694 * A Normal statement.
2696 static final public Statement Statement() throws ParseException {
2697 final Statement statement;
2698 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2730 case INTEGER_LITERAL:
2731 case FLOATING_POINT_LITERAL:
2732 case STRING_LITERAL:
2738 statement = StatementNoBreak();
2739 {if (true) return statement;}
2742 statement = BreakStatement();
2743 {if (true) return statement;}
2746 jj_la1[72] = jj_gen;
2747 jj_consume_token(-1);
2748 throw new ParseException();
2750 throw new Error("Missing return statement in function");
2754 * An html block inside a php syntax.
2756 static final public HTMLBlock htmlBlock() throws ParseException {
2757 final int startIndex = nodePtr;
2758 final AstNode[] blockNodes;
2760 jj_consume_token(PHPEND);
2763 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2768 jj_la1[73] = jj_gen;
2774 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2776 jj_consume_token(PHPSTARTLONG);
2779 jj_consume_token(PHPSTARTSHORT);
2782 jj_la1[74] = jj_gen;
2783 jj_consume_token(-1);
2784 throw new ParseException();
2786 } catch (ParseException e) {
2787 errorMessage = "unexpected end of file , '<?php' expected";
2789 errorStart = SimpleCharStream.getPosition();
2790 errorEnd = SimpleCharStream.getPosition();
2791 {if (true) throw e;}
2793 nbNodes = nodePtr - startIndex;
2794 blockNodes = new AstNode[nbNodes];
2795 System.arraycopy(nodes,startIndex,blockNodes,0,nbNodes);
2796 nodePtr = startIndex;
2797 {if (true) return new HTMLBlock(blockNodes);}
2798 throw new Error("Missing return statement in function");
2802 * An include statement. It's "include" an expression;
2804 static final public InclusionStatement IncludeStatement() throws ParseException {
2805 final Expression expr;
2807 final int pos = SimpleCharStream.getPosition();
2808 final InclusionStatement inclusionStatement;
2809 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2811 jj_consume_token(REQUIRE);
2812 keyword = InclusionStatement.REQUIRE;
2815 jj_consume_token(REQUIRE_ONCE);
2816 keyword = InclusionStatement.REQUIRE_ONCE;
2819 jj_consume_token(INCLUDE);
2820 keyword = InclusionStatement.INCLUDE;
2823 jj_consume_token(INCLUDE_ONCE);
2824 keyword = InclusionStatement.INCLUDE_ONCE;
2827 jj_la1[75] = jj_gen;
2828 jj_consume_token(-1);
2829 throw new ParseException();
2832 expr = Expression();
2833 } catch (ParseException e) {
2834 if (errorMessage != null) {
2835 {if (true) throw e;}
2837 errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
2839 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2840 errorEnd = SimpleCharStream.getPosition() + 1;
2841 {if (true) throw e;}
2843 inclusionStatement = new InclusionStatement(currentSegment,
2847 currentSegment.add(inclusionStatement);
2849 jj_consume_token(SEMICOLON);
2850 } catch (ParseException e) {
2851 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
2853 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2854 errorEnd = SimpleCharStream.getPosition() + 1;
2855 {if (true) throw e;}
2857 {if (true) return inclusionStatement;}
2858 throw new Error("Missing return statement in function");
2861 static final public PrintExpression PrintExpression() throws ParseException {
2862 final Expression expr;
2863 final int pos = SimpleCharStream.getPosition();
2864 jj_consume_token(PRINT);
2865 expr = Expression();
2866 {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());}
2867 throw new Error("Missing return statement in function");
2870 static final public ListExpression ListExpression() throws ParseException {
2872 final Expression expression;
2873 final ArrayList list = new ArrayList();
2874 final int pos = SimpleCharStream.getPosition();
2875 jj_consume_token(LIST);
2877 jj_consume_token(LPAREN);
2878 } catch (ParseException e) {
2879 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
2881 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2882 errorEnd = SimpleCharStream.getPosition() + 1;
2883 {if (true) throw e;}
2885 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2888 expr = VariableDeclaratorId();
2892 jj_la1[76] = jj_gen;
2895 if (expr == null) list.add(null);
2898 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2903 jj_la1[77] = jj_gen;
2907 jj_consume_token(COMMA);
2908 } catch (ParseException e) {
2909 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
2911 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2912 errorEnd = SimpleCharStream.getPosition() + 1;
2913 {if (true) throw e;}
2915 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2918 expr = VariableDeclaratorId();
2922 jj_la1[78] = jj_gen;
2927 jj_consume_token(RPAREN);
2928 } catch (ParseException e) {
2929 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
2931 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2932 errorEnd = SimpleCharStream.getPosition() + 1;
2933 {if (true) throw e;}
2935 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2937 jj_consume_token(ASSIGN);
2938 expression = Expression();
2939 final String[] strings = new String[list.size()];
2940 list.toArray(strings);
2941 {if (true) return new ListExpression(strings,
2944 SimpleCharStream.getPosition());}
2947 jj_la1[79] = jj_gen;
2950 final String[] strings = new String[list.size()];
2951 list.toArray(strings);
2952 {if (true) return new ListExpression(strings,pos,SimpleCharStream.getPosition());}
2953 throw new Error("Missing return statement in function");
2957 * An echo statement.
2958 * echo anyexpression (, otherexpression)*
2960 static final public EchoStatement EchoStatement() throws ParseException {
2961 final ArrayList expressions = new ArrayList();
2963 final int pos = SimpleCharStream.getPosition();
2964 jj_consume_token(ECHO);
2965 expr = Expression();
2966 expressions.add(expr);
2969 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2974 jj_la1[80] = jj_gen;
2977 jj_consume_token(COMMA);
2978 expr = Expression();
2979 expressions.add(expr);
2982 jj_consume_token(SEMICOLON);
2983 } catch (ParseException e) {
2984 if (e.currentToken.next.kind != 4) {
2985 errorMessage = "';' expected after 'echo' statement";
2987 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
2988 errorEnd = SimpleCharStream.getPosition() + 1;
2989 {if (true) throw e;}
2992 final Expression[] exprs = new Expression[expressions.size()];
2993 expressions.toArray(exprs);
2994 {if (true) return new EchoStatement(exprs,pos);}
2995 throw new Error("Missing return statement in function");
2998 static final public GlobalStatement GlobalStatement() throws ParseException {
2999 final int pos = SimpleCharStream.getPosition();
3001 final ArrayList vars = new ArrayList();
3002 final GlobalStatement global;
3003 jj_consume_token(GLOBAL);
3004 expr = VariableDeclaratorId();
3008 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3013 jj_la1[81] = jj_gen;
3016 jj_consume_token(COMMA);
3017 expr = VariableDeclaratorId();
3021 jj_consume_token(SEMICOLON);
3022 final String[] strings = new String[vars.size()];
3023 vars.toArray(strings);
3024 global = new GlobalStatement(currentSegment,
3027 SimpleCharStream.getPosition());
3028 currentSegment.add(global);
3029 {if (true) return global;}
3030 } catch (ParseException e) {
3031 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3033 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3034 errorEnd = SimpleCharStream.getPosition() + 1;
3035 {if (true) throw e;}
3037 throw new Error("Missing return statement in function");
3040 static final public StaticStatement StaticStatement() throws ParseException {
3041 final int pos = SimpleCharStream.getPosition();
3042 final ArrayList vars = new ArrayList();
3043 VariableDeclaration expr;
3044 jj_consume_token(STATIC);
3045 expr = VariableDeclarator();
3046 vars.add(new String(expr.name));
3049 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3054 jj_la1[82] = jj_gen;
3057 jj_consume_token(COMMA);
3058 expr = VariableDeclarator();
3059 vars.add(new String(expr.name));
3062 jj_consume_token(SEMICOLON);
3063 final String[] strings = new String[vars.size()];
3064 vars.toArray(strings);
3065 {if (true) return new StaticStatement(strings,
3067 SimpleCharStream.getPosition());}
3068 } catch (ParseException e) {
3069 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
3071 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3072 errorEnd = SimpleCharStream.getPosition() + 1;
3073 {if (true) throw e;}
3075 throw new Error("Missing return statement in function");
3078 static final public LabeledStatement LabeledStatement() throws ParseException {
3079 final int pos = SimpleCharStream.getPosition();
3081 final Statement statement;
3082 label = jj_consume_token(IDENTIFIER);
3083 jj_consume_token(COLON);
3084 statement = Statement();
3085 {if (true) return new LabeledStatement(label.image.toCharArray(),statement,pos,SimpleCharStream.getPosition());}
3086 throw new Error("Missing return statement in function");
3096 static final public Block Block() throws ParseException {
3097 final int pos = SimpleCharStream.getPosition();
3098 final ArrayList list = new ArrayList();
3099 Statement statement;
3101 jj_consume_token(LBRACE);
3102 } catch (ParseException e) {
3103 errorMessage = "'{' expected";
3105 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3106 errorEnd = SimpleCharStream.getPosition() + 1;
3107 {if (true) throw e;}
3111 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3147 case INTEGER_LITERAL:
3148 case FLOATING_POINT_LITERAL:
3149 case STRING_LITERAL:
3158 jj_la1[83] = jj_gen;
3161 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3196 case INTEGER_LITERAL:
3197 case FLOATING_POINT_LITERAL:
3198 case STRING_LITERAL:
3204 statement = BlockStatement();
3205 list.add(statement);
3208 statement = htmlBlock();
3209 list.add(statement);
3212 jj_la1[84] = jj_gen;
3213 jj_consume_token(-1);
3214 throw new ParseException();
3218 jj_consume_token(RBRACE);
3219 } catch (ParseException e) {
3220 errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected";
3222 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3223 errorEnd = SimpleCharStream.getPosition() + 1;
3224 {if (true) throw e;}
3226 final Statement[] statements = new Statement[list.size()];
3227 list.toArray(statements);
3228 {if (true) return new Block(statements,pos,SimpleCharStream.getPosition());}
3229 throw new Error("Missing return statement in function");
3232 static final public Statement BlockStatement() throws ParseException {
3233 final Statement statement;
3234 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3267 case INTEGER_LITERAL:
3268 case FLOATING_POINT_LITERAL:
3269 case STRING_LITERAL:
3275 statement = Statement();
3276 if (phpDocument == currentSegment) pushOnAstNodes(statement);
3277 {if (true) return statement;}
3280 statement = ClassDeclaration();
3281 {if (true) return statement;}
3284 statement = MethodDeclaration();
3285 if (phpDocument == currentSegment) pushOnAstNodes(statement);
3286 currentSegment.add((MethodDeclaration) statement);
3287 {if (true) return statement;}
3290 jj_la1[85] = jj_gen;
3291 jj_consume_token(-1);
3292 throw new ParseException();
3294 throw new Error("Missing return statement in function");
3298 * A Block statement that will not contain any 'break'
3300 static final public Statement BlockStatementNoBreak() throws ParseException {
3301 final Statement statement;
3302 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3334 case INTEGER_LITERAL:
3335 case FLOATING_POINT_LITERAL:
3336 case STRING_LITERAL:
3342 statement = StatementNoBreak();
3343 {if (true) return statement;}
3346 statement = ClassDeclaration();
3347 {if (true) return statement;}
3350 statement = MethodDeclaration();
3351 currentSegment.add((MethodDeclaration) statement);
3352 {if (true) return statement;}
3355 jj_la1[86] = jj_gen;
3356 jj_consume_token(-1);
3357 throw new ParseException();
3359 throw new Error("Missing return statement in function");
3362 static final public VariableDeclaration[] LocalVariableDeclaration() throws ParseException {
3363 final ArrayList list = new ArrayList();
3364 VariableDeclaration var;
3365 var = LocalVariableDeclarator();
3369 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3374 jj_la1[87] = jj_gen;
3377 jj_consume_token(COMMA);
3378 var = LocalVariableDeclarator();
3381 final VariableDeclaration[] vars = new VariableDeclaration[list.size()];
3383 {if (true) return vars;}
3384 throw new Error("Missing return statement in function");
3387 static final public VariableDeclaration LocalVariableDeclarator() throws ParseException {
3388 final String varName;
3389 Expression initializer = null;
3390 final int pos = SimpleCharStream.getPosition();
3391 varName = VariableDeclaratorId();
3392 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3394 jj_consume_token(ASSIGN);
3395 initializer = Expression();
3398 jj_la1[88] = jj_gen;
3401 if (initializer == null) {
3402 {if (true) return new VariableDeclaration(currentSegment,
3403 varName.toCharArray(),
3405 SimpleCharStream.getPosition());}
3407 {if (true) return new VariableDeclaration(currentSegment,
3408 varName.toCharArray(),
3411 throw new Error("Missing return statement in function");
3414 static final public EmptyStatement EmptyStatement() throws ParseException {
3416 jj_consume_token(SEMICOLON);
3417 pos = SimpleCharStream.getPosition();
3418 {if (true) return new EmptyStatement(pos-1,pos);}
3419 throw new Error("Missing return statement in function");
3422 static final public Expression StatementExpression() throws ParseException {
3423 final Expression expr,expr2;
3425 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3428 expr = PreIncDecExpression();
3429 {if (true) return expr;}
3436 expr = PrimaryExpression();
3437 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3452 case RSIGNEDSHIFTASSIGN:
3453 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3455 jj_consume_token(PLUS_PLUS);
3456 {if (true) return new PostfixedUnaryExpression(expr,
3457 OperatorIds.PLUS_PLUS,
3458 SimpleCharStream.getPosition());}
3461 jj_consume_token(MINUS_MINUS);
3462 {if (true) return new PostfixedUnaryExpression(expr,
3463 OperatorIds.MINUS_MINUS,
3464 SimpleCharStream.getPosition());}
3478 case RSIGNEDSHIFTASSIGN:
3479 operator = AssignmentOperator();
3480 expr2 = Expression();
3481 {if (true) return new BinaryExpression(expr,expr2,operator);}
3484 jj_la1[89] = jj_gen;
3485 jj_consume_token(-1);
3486 throw new ParseException();
3490 jj_la1[90] = jj_gen;
3493 {if (true) return expr;}
3496 jj_la1[91] = jj_gen;
3497 jj_consume_token(-1);
3498 throw new ParseException();
3500 throw new Error("Missing return statement in function");
3503 static final public SwitchStatement SwitchStatement() throws ParseException {
3504 final Expression variable;
3505 final AbstractCase[] cases;
3506 final int pos = SimpleCharStream.getPosition();
3507 jj_consume_token(SWITCH);
3509 jj_consume_token(LPAREN);
3510 } catch (ParseException e) {
3511 errorMessage = "'(' expected after 'switch'";
3513 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3514 errorEnd = SimpleCharStream.getPosition() + 1;
3515 {if (true) throw e;}
3518 variable = Expression();
3519 } catch (ParseException e) {
3520 if (errorMessage != null) {
3521 {if (true) throw e;}
3523 errorMessage = "expression expected";
3525 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3526 errorEnd = SimpleCharStream.getPosition() + 1;
3527 {if (true) throw e;}
3530 jj_consume_token(RPAREN);
3531 } catch (ParseException e) {
3532 errorMessage = "')' expected";
3534 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3535 errorEnd = SimpleCharStream.getPosition() + 1;
3536 {if (true) throw e;}
3538 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3540 cases = switchStatementBrace();
3543 cases = switchStatementColon(pos, pos + 6);
3546 jj_la1[92] = jj_gen;
3547 jj_consume_token(-1);
3548 throw new ParseException();
3550 {if (true) return new SwitchStatement(variable,cases,pos,SimpleCharStream.getPosition());}
3551 throw new Error("Missing return statement in function");
3554 static final public AbstractCase[] switchStatementBrace() throws ParseException {
3556 final ArrayList cases = new ArrayList();
3557 jj_consume_token(LBRACE);
3560 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3566 jj_la1[93] = jj_gen;
3569 cas = switchLabel0();
3573 jj_consume_token(RBRACE);
3574 final AbstractCase[] abcase = new AbstractCase[cases.size()];
3575 cases.toArray(abcase);
3576 {if (true) return abcase;}
3577 } catch (ParseException e) {
3578 errorMessage = "'}' expected";
3580 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3581 errorEnd = SimpleCharStream.getPosition() + 1;
3582 {if (true) throw e;}
3584 throw new Error("Missing return statement in function");
3588 * A Switch statement with : ... endswitch;
3589 * @param start the begin offset of the switch
3590 * @param end the end offset of the switch
3592 static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException {
3594 final ArrayList cases = new ArrayList();
3595 jj_consume_token(COLON);
3597 setMarker(fileToParse,
3598 "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;",
3602 "Line " + token.beginLine);
3603 } catch (CoreException e) {
3604 PHPeclipsePlugin.log(e);
3608 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3614 jj_la1[94] = jj_gen;
3617 cas = switchLabel0();
3621 jj_consume_token(ENDSWITCH);
3622 } catch (ParseException e) {
3623 errorMessage = "'endswitch' expected";
3625 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3626 errorEnd = SimpleCharStream.getPosition() + 1;
3627 {if (true) throw e;}
3630 jj_consume_token(SEMICOLON);
3631 final AbstractCase[] abcase = new AbstractCase[cases.size()];
3632 cases.toArray(abcase);
3633 {if (true) return abcase;}
3634 } catch (ParseException e) {
3635 errorMessage = "';' expected after 'endswitch' keyword";
3637 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3638 errorEnd = SimpleCharStream.getPosition() + 1;
3639 {if (true) throw e;}
3641 throw new Error("Missing return statement in function");
3644 static final public AbstractCase switchLabel0() throws ParseException {
3645 final Expression expr;
3646 Statement statement;
3647 final ArrayList stmts = new ArrayList();
3648 final int pos = SimpleCharStream.getPosition();
3649 expr = SwitchLabel();
3652 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3687 case INTEGER_LITERAL:
3688 case FLOATING_POINT_LITERAL:
3689 case STRING_LITERAL:
3698 jj_la1[95] = jj_gen;
3701 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3735 case INTEGER_LITERAL:
3736 case FLOATING_POINT_LITERAL:
3737 case STRING_LITERAL:
3743 statement = BlockStatementNoBreak();
3744 stmts.add(statement);
3747 statement = htmlBlock();
3748 stmts.add(statement);
3751 jj_la1[96] = jj_gen;
3752 jj_consume_token(-1);
3753 throw new ParseException();
3756 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3758 statement = BreakStatement();
3759 stmts.add(statement);
3762 jj_la1[97] = jj_gen;
3765 final Statement[] stmtsArray = new Statement[stmts.size()];
3766 stmts.toArray(stmtsArray);
3767 if (expr == null) {//it's a default
3768 {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());}
3770 {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());}
3771 throw new Error("Missing return statement in function");
3776 * case Expression() :
3778 * @return the if it was a case and null if not
3780 static final public Expression SwitchLabel() throws ParseException {
3781 final Expression expr;
3782 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3784 token = jj_consume_token(CASE);
3786 expr = Expression();
3787 } catch (ParseException e) {
3788 if (errorMessage != null) {if (true) throw e;}
3789 errorMessage = "expression expected after 'case' keyword";
3791 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3792 errorEnd = SimpleCharStream.getPosition() + 1;
3793 {if (true) throw e;}
3796 jj_consume_token(COLON);
3797 {if (true) return expr;}
3798 } catch (ParseException e) {
3799 errorMessage = "':' expected after case expression";
3801 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3802 errorEnd = SimpleCharStream.getPosition() + 1;
3803 {if (true) throw e;}
3807 token = jj_consume_token(_DEFAULT);
3809 jj_consume_token(COLON);
3810 {if (true) return null;}
3811 } catch (ParseException e) {
3812 errorMessage = "':' expected after 'default' keyword";
3814 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3815 errorEnd = SimpleCharStream.getPosition() + 1;
3816 {if (true) throw e;}
3820 jj_la1[98] = jj_gen;
3821 jj_consume_token(-1);
3822 throw new ParseException();
3824 throw new Error("Missing return statement in function");
3827 static final public Break BreakStatement() throws ParseException {
3828 Expression expression = null;
3829 final int start = SimpleCharStream.getPosition();
3830 jj_consume_token(BREAK);
3831 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3847 case INTEGER_LITERAL:
3848 case FLOATING_POINT_LITERAL:
3849 case STRING_LITERAL:
3853 expression = Expression();
3856 jj_la1[99] = jj_gen;
3860 jj_consume_token(SEMICOLON);
3861 } catch (ParseException e) {
3862 errorMessage = "';' expected after 'break' keyword";
3864 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3865 errorEnd = SimpleCharStream.getPosition() + 1;
3866 {if (true) throw e;}
3868 {if (true) return new Break(expression, start, SimpleCharStream.getPosition());}
3869 throw new Error("Missing return statement in function");
3872 static final public IfStatement IfStatement() throws ParseException {
3873 final int pos = SimpleCharStream.getPosition();
3874 final Expression condition;
3875 final IfStatement ifStatement;
3876 jj_consume_token(IF);
3877 condition = Condition("if");
3878 ifStatement = IfStatement0(condition, pos,pos+2);
3879 {if (true) return ifStatement;}
3880 throw new Error("Missing return statement in function");
3883 static final public Expression Condition(final String keyword) throws ParseException {
3884 final Expression condition;
3886 jj_consume_token(LPAREN);
3887 } catch (ParseException e) {
3888 errorMessage = "'(' expected after " + keyword + " keyword";
3890 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length();
3891 errorEnd = errorStart +1;
3892 processParseException(e);
3894 condition = Expression();
3896 jj_consume_token(RPAREN);
3897 } catch (ParseException e) {
3898 errorMessage = "')' expected after " + keyword + " keyword";
3900 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
3901 errorEnd = SimpleCharStream.getPosition() + 1;
3902 processParseException(e);
3904 {if (true) return condition;}
3905 throw new Error("Missing return statement in function");
3908 static final public IfStatement IfStatement0(final Expression condition, final int start,final int end) throws ParseException {
3909 Statement statement;
3910 final Statement stmt;
3911 final Statement[] statementsArray;
3912 ElseIf elseifStatement;
3913 Else elseStatement = null;
3914 final ArrayList stmts;
3915 final ArrayList elseIfList = new ArrayList();
3916 final ElseIf[] elseIfs;
3917 int pos = SimpleCharStream.getPosition();
3918 final int endStatements;
3919 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3921 jj_consume_token(COLON);
3922 stmts = new ArrayList();
3925 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3959 case INTEGER_LITERAL:
3960 case FLOATING_POINT_LITERAL:
3961 case STRING_LITERAL:
3970 jj_la1[100] = jj_gen;
3973 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4006 case INTEGER_LITERAL:
4007 case FLOATING_POINT_LITERAL:
4008 case STRING_LITERAL:
4014 statement = Statement();
4015 stmts.add(statement);
4018 statement = htmlBlock();
4019 stmts.add(statement);
4022 jj_la1[101] = jj_gen;
4023 jj_consume_token(-1);
4024 throw new ParseException();
4027 endStatements = SimpleCharStream.getPosition();
4030 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4035 jj_la1[102] = jj_gen;
4038 elseifStatement = ElseIfStatementColon();
4039 elseIfList.add(elseifStatement);
4041 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4043 elseStatement = ElseStatementColon();
4046 jj_la1[103] = jj_gen;
4050 setMarker(fileToParse,
4051 "Ugly syntax detected, you should if () {...} instead of if (): ... endif;",
4055 "Line " + token.beginLine);
4056 } catch (CoreException e) {
4057 PHPeclipsePlugin.log(e);
4060 jj_consume_token(ENDIF);
4061 } catch (ParseException e) {
4062 errorMessage = "'endif' expected";
4064 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4065 errorEnd = SimpleCharStream.getPosition() + 1;
4066 {if (true) throw e;}
4069 jj_consume_token(SEMICOLON);
4070 } catch (ParseException e) {
4071 errorMessage = "';' expected after 'endif' keyword";
4073 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4074 errorEnd = SimpleCharStream.getPosition() + 1;
4075 {if (true) throw e;}
4077 elseIfs = new ElseIf[elseIfList.size()];
4078 elseIfList.toArray(elseIfs);
4079 if (stmts.size() == 1) {
4080 {if (true) return new IfStatement(condition,
4081 (Statement) stmts.get(0),
4085 SimpleCharStream.getPosition());}
4087 statementsArray = new Statement[stmts.size()];
4088 stmts.toArray(statementsArray);
4089 {if (true) return new IfStatement(condition,
4090 new Block(statementsArray,pos,endStatements),
4094 SimpleCharStream.getPosition());}
4130 case INTEGER_LITERAL:
4131 case FLOATING_POINT_LITERAL:
4132 case STRING_LITERAL:
4138 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4171 case INTEGER_LITERAL:
4172 case FLOATING_POINT_LITERAL:
4173 case STRING_LITERAL:
4185 jj_la1[104] = jj_gen;
4186 jj_consume_token(-1);
4187 throw new ParseException();
4191 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4196 jj_la1[105] = jj_gen;
4199 elseifStatement = ElseIfStatement();
4200 elseIfList.add(elseifStatement);
4202 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4204 jj_consume_token(ELSE);
4206 pos = SimpleCharStream.getPosition();
4207 statement = Statement();
4208 elseStatement = new Else(statement,pos,SimpleCharStream.getPosition());
4209 } catch (ParseException e) {
4210 if (errorMessage != null) {
4211 {if (true) throw e;}
4213 errorMessage = "unexpected token '"+e.currentToken.next.image+"', a statement was expected";
4215 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4216 errorEnd = SimpleCharStream.getPosition() + 1;
4217 {if (true) throw e;}
4221 jj_la1[106] = jj_gen;
4224 elseIfs = new ElseIf[elseIfList.size()];
4225 elseIfList.toArray(elseIfs);
4226 {if (true) return new IfStatement(condition,
4231 SimpleCharStream.getPosition());}
4234 jj_la1[107] = jj_gen;
4235 jj_consume_token(-1);
4236 throw new ParseException();
4238 throw new Error("Missing return statement in function");
4241 static final public ElseIf ElseIfStatementColon() throws ParseException {
4242 final Expression condition;
4243 Statement statement;
4244 final ArrayList list = new ArrayList();
4245 final int pos = SimpleCharStream.getPosition();
4246 jj_consume_token(ELSEIF);
4247 condition = Condition("elseif");
4248 jj_consume_token(COLON);
4251 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4285 case INTEGER_LITERAL:
4286 case FLOATING_POINT_LITERAL:
4287 case STRING_LITERAL:
4296 jj_la1[108] = jj_gen;
4299 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4332 case INTEGER_LITERAL:
4333 case FLOATING_POINT_LITERAL:
4334 case STRING_LITERAL:
4340 statement = Statement();
4341 list.add(statement);
4344 statement = htmlBlock();
4345 list.add(statement);
4348 jj_la1[109] = jj_gen;
4349 jj_consume_token(-1);
4350 throw new ParseException();
4353 final Statement[] stmtsArray = new Statement[list.size()];
4354 list.toArray(stmtsArray);
4355 {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());}
4356 throw new Error("Missing return statement in function");
4359 static final public Else ElseStatementColon() throws ParseException {
4360 Statement statement;
4361 final ArrayList list = new ArrayList();
4362 final int pos = SimpleCharStream.getPosition();
4363 jj_consume_token(ELSE);
4364 jj_consume_token(COLON);
4367 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4401 case INTEGER_LITERAL:
4402 case FLOATING_POINT_LITERAL:
4403 case STRING_LITERAL:
4412 jj_la1[110] = jj_gen;
4415 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4448 case INTEGER_LITERAL:
4449 case FLOATING_POINT_LITERAL:
4450 case STRING_LITERAL:
4456 statement = Statement();
4457 list.add(statement);
4460 statement = htmlBlock();
4461 list.add(statement);
4464 jj_la1[111] = jj_gen;
4465 jj_consume_token(-1);
4466 throw new ParseException();
4469 final Statement[] stmtsArray = new Statement[list.size()];
4470 list.toArray(stmtsArray);
4471 {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());}
4472 throw new Error("Missing return statement in function");
4475 static final public ElseIf ElseIfStatement() throws ParseException {
4476 final Expression condition;
4477 final Statement statement;
4478 final ArrayList list = new ArrayList();
4479 final int pos = SimpleCharStream.getPosition();
4480 jj_consume_token(ELSEIF);
4481 condition = Condition("elseif");
4482 statement = Statement();
4483 list.add(statement);/*todo:do better*/
4484 final Statement[] stmtsArray = new Statement[list.size()];
4485 list.toArray(stmtsArray);
4486 {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());}
4487 throw new Error("Missing return statement in function");
4490 static final public WhileStatement WhileStatement() throws ParseException {
4491 final Expression condition;
4492 final Statement action;
4493 final int pos = SimpleCharStream.getPosition();
4494 jj_consume_token(WHILE);
4495 condition = Condition("while");
4496 action = WhileStatement0(pos,pos + 5);
4497 {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());}
4498 throw new Error("Missing return statement in function");
4501 static final public Statement WhileStatement0(final int start, final int end) throws ParseException {
4502 Statement statement;
4503 final ArrayList stmts = new ArrayList();
4504 final int pos = SimpleCharStream.getPosition();
4505 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4507 jj_consume_token(COLON);
4510 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4543 case INTEGER_LITERAL:
4544 case FLOATING_POINT_LITERAL:
4545 case STRING_LITERAL:
4554 jj_la1[112] = jj_gen;
4557 statement = Statement();
4558 stmts.add(statement);
4561 setMarker(fileToParse,
4562 "Ugly syntax detected, you should while () {...} instead of while (): ... endwhile;",
4566 "Line " + token.beginLine);
4567 } catch (CoreException e) {
4568 PHPeclipsePlugin.log(e);
4571 jj_consume_token(ENDWHILE);
4572 } catch (ParseException e) {
4573 errorMessage = "'endwhile' expected";
4575 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4576 errorEnd = SimpleCharStream.getPosition() + 1;
4577 {if (true) throw e;}
4580 jj_consume_token(SEMICOLON);
4581 final Statement[] stmtsArray = new Statement[stmts.size()];
4582 stmts.toArray(stmtsArray);
4583 {if (true) return new Block(stmtsArray,pos,SimpleCharStream.getPosition());}
4584 } catch (ParseException e) {
4585 errorMessage = "';' expected after 'endwhile' keyword";
4587 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4588 errorEnd = SimpleCharStream.getPosition() + 1;
4589 {if (true) throw e;}
4624 case INTEGER_LITERAL:
4625 case FLOATING_POINT_LITERAL:
4626 case STRING_LITERAL:
4632 statement = Statement();
4633 {if (true) return statement;}
4636 jj_la1[113] = jj_gen;
4637 jj_consume_token(-1);
4638 throw new ParseException();
4640 throw new Error("Missing return statement in function");
4643 static final public DoStatement DoStatement() throws ParseException {
4644 final Statement action;
4645 final Expression condition;
4646 final int pos = SimpleCharStream.getPosition();
4647 jj_consume_token(DO);
4648 action = Statement();
4649 jj_consume_token(WHILE);
4650 condition = Condition("while");
4652 jj_consume_token(SEMICOLON);
4653 {if (true) return new DoStatement(condition,action,pos,SimpleCharStream.getPosition());}
4654 } catch (ParseException e) {
4655 errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
4657 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4658 errorEnd = SimpleCharStream.getPosition() + 1;
4659 {if (true) throw e;}
4661 throw new Error("Missing return statement in function");
4664 static final public ForeachStatement ForeachStatement() throws ParseException {
4665 Statement statement;
4666 Expression expression;
4667 final int pos = SimpleCharStream.getPosition();
4668 ArrayVariableDeclaration variable;
4669 jj_consume_token(FOREACH);
4671 jj_consume_token(LPAREN);
4672 } catch (ParseException e) {
4673 errorMessage = "'(' expected after 'foreach' keyword";
4675 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4676 errorEnd = SimpleCharStream.getPosition() + 1;
4677 {if (true) throw e;}
4680 expression = Expression();
4681 } catch (ParseException e) {
4682 errorMessage = "variable expected";
4684 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4685 errorEnd = SimpleCharStream.getPosition() + 1;
4686 {if (true) throw e;}
4689 jj_consume_token(AS);
4690 } catch (ParseException e) {
4691 errorMessage = "'as' expected";
4693 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4694 errorEnd = SimpleCharStream.getPosition() + 1;
4695 {if (true) throw e;}
4698 variable = ArrayVariable();
4699 } catch (ParseException e) {
4700 errorMessage = "variable expected";
4702 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4703 errorEnd = SimpleCharStream.getPosition() + 1;
4704 {if (true) throw e;}
4707 jj_consume_token(RPAREN);
4708 } catch (ParseException e) {
4709 errorMessage = "')' expected after 'foreach' keyword";
4711 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4712 errorEnd = SimpleCharStream.getPosition() + 1;
4713 {if (true) throw e;}
4716 statement = Statement();
4717 } catch (ParseException e) {
4718 if (errorMessage != null) {if (true) throw e;}
4719 errorMessage = "statement expected";
4721 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4722 errorEnd = SimpleCharStream.getPosition() + 1;
4723 {if (true) throw e;}
4725 {if (true) return new ForeachStatement(expression,
4729 SimpleCharStream.getPosition());}
4730 throw new Error("Missing return statement in function");
4733 static final public ForStatement ForStatement() throws ParseException {
4735 final int pos = SimpleCharStream.getPosition();
4736 Expression[] initializations = null;
4737 Expression condition = null;
4738 Expression[] increments = null;
4740 final ArrayList list = new ArrayList();
4741 final int startBlock, endBlock;
4742 token = jj_consume_token(FOR);
4744 jj_consume_token(LPAREN);
4745 } catch (ParseException e) {
4746 errorMessage = "'(' expected after 'for' keyword";
4748 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4749 errorEnd = SimpleCharStream.getPosition() + 1;
4750 {if (true) throw e;}
4752 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4760 initializations = ForInit();
4763 jj_la1[114] = jj_gen;
4766 jj_consume_token(SEMICOLON);
4767 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4783 case INTEGER_LITERAL:
4784 case FLOATING_POINT_LITERAL:
4785 case STRING_LITERAL:
4789 condition = Expression();
4792 jj_la1[115] = jj_gen;
4795 jj_consume_token(SEMICOLON);
4796 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4804 increments = StatementExpressionList();
4807 jj_la1[116] = jj_gen;
4810 jj_consume_token(RPAREN);
4811 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4844 case INTEGER_LITERAL:
4845 case FLOATING_POINT_LITERAL:
4846 case STRING_LITERAL:
4852 action = Statement();
4853 {if (true) return new ForStatement(initializations,condition,increments,action,pos,SimpleCharStream.getPosition());}
4856 jj_consume_token(COLON);
4857 startBlock = SimpleCharStream.getPosition();
4860 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4893 case INTEGER_LITERAL:
4894 case FLOATING_POINT_LITERAL:
4895 case STRING_LITERAL:
4904 jj_la1[117] = jj_gen;
4907 action = Statement();
4911 setMarker(fileToParse,
4912 "Ugly syntax detected, you should for () {...} instead of for (): ... endfor;",
4914 pos+token.image.length(),
4916 "Line " + token.beginLine);
4917 } catch (CoreException e) {
4918 PHPeclipsePlugin.log(e);
4920 endBlock = SimpleCharStream.getPosition();
4922 jj_consume_token(ENDFOR);
4923 } catch (ParseException e) {
4924 errorMessage = "'endfor' expected";
4926 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4927 errorEnd = SimpleCharStream.getPosition() + 1;
4928 {if (true) throw e;}
4931 jj_consume_token(SEMICOLON);
4932 final Statement[] stmtsArray = new Statement[list.size()];
4933 list.toArray(stmtsArray);
4934 {if (true) return new ForStatement(initializations,condition,increments,new Block(stmtsArray,startBlock,endBlock),pos,SimpleCharStream.getPosition());}
4935 } catch (ParseException e) {
4936 errorMessage = "';' expected after 'endfor' keyword";
4938 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
4939 errorEnd = SimpleCharStream.getPosition() + 1;
4940 {if (true) throw e;}
4944 jj_la1[118] = jj_gen;
4945 jj_consume_token(-1);
4946 throw new ParseException();
4948 throw new Error("Missing return statement in function");
4951 static final public Expression[] ForInit() throws ParseException {
4952 final Expression[] exprs;
4953 if (jj_2_7(2147483647)) {
4954 exprs = LocalVariableDeclaration();
4955 {if (true) return exprs;}
4957 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4965 exprs = StatementExpressionList();
4966 {if (true) return exprs;}
4969 jj_la1[119] = jj_gen;
4970 jj_consume_token(-1);
4971 throw new ParseException();
4974 throw new Error("Missing return statement in function");
4977 static final public Expression[] StatementExpressionList() throws ParseException {
4978 final ArrayList list = new ArrayList();
4979 final Expression expr;
4980 expr = StatementExpression();
4984 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4989 jj_la1[120] = jj_gen;
4992 jj_consume_token(COMMA);
4993 StatementExpression();
4996 final Expression[] exprsArray = new Expression[list.size()];
4997 list.toArray(exprsArray);
4998 {if (true) return exprsArray;}
4999 throw new Error("Missing return statement in function");
5002 static final public Continue ContinueStatement() throws ParseException {
5003 Expression expr = null;
5004 final int pos = SimpleCharStream.getPosition();
5005 jj_consume_token(CONTINUE);
5006 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5022 case INTEGER_LITERAL:
5023 case FLOATING_POINT_LITERAL:
5024 case STRING_LITERAL:
5028 expr = Expression();
5031 jj_la1[121] = jj_gen;
5035 jj_consume_token(SEMICOLON);
5036 {if (true) return new Continue(expr,pos,SimpleCharStream.getPosition());}
5037 } catch (ParseException e) {
5038 errorMessage = "';' expected after 'continue' statement";
5040 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5041 errorEnd = SimpleCharStream.getPosition() + 1;
5042 {if (true) throw e;}
5044 throw new Error("Missing return statement in function");
5047 static final public ReturnStatement ReturnStatement() throws ParseException {
5048 Expression expr = null;
5049 final int pos = SimpleCharStream.getPosition();
5050 jj_consume_token(RETURN);
5051 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5067 case INTEGER_LITERAL:
5068 case FLOATING_POINT_LITERAL:
5069 case STRING_LITERAL:
5073 expr = Expression();
5076 jj_la1[122] = jj_gen;
5080 jj_consume_token(SEMICOLON);
5081 {if (true) return new ReturnStatement(expr,pos,SimpleCharStream.getPosition());}
5082 } catch (ParseException e) {
5083 errorMessage = "';' expected after 'return' statement";
5085 errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
5086 errorEnd = SimpleCharStream.getPosition() + 1;
5087 {if (true) throw e;}
5089 throw new Error("Missing return statement in function");
5092 static final private boolean jj_2_1(int xla) {
5093 jj_la = xla; jj_lastpos = jj_scanpos = token;
5094 boolean retval = !jj_3_1();
5099 static final private boolean jj_2_2(int xla) {
5100 jj_la = xla; jj_lastpos = jj_scanpos = token;
5101 boolean retval = !jj_3_2();
5106 static final private boolean jj_2_3(int xla) {
5107 jj_la = xla; jj_lastpos = jj_scanpos = token;
5108 boolean retval = !jj_3_3();
5113 static final private boolean jj_2_4(int xla) {
5114 jj_la = xla; jj_lastpos = jj_scanpos = token;
5115 boolean retval = !jj_3_4();
5120 static final private boolean jj_2_5(int xla) {
5121 jj_la = xla; jj_lastpos = jj_scanpos = token;
5122 boolean retval = !jj_3_5();
5127 static final private boolean jj_2_6(int xla) {
5128 jj_la = xla; jj_lastpos = jj_scanpos = token;
5129 boolean retval = !jj_3_6();
5134 static final private boolean jj_2_7(int xla) {
5135 jj_la = xla; jj_lastpos = jj_scanpos = token;
5136 boolean retval = !jj_3_7();
5141 static final private boolean jj_3R_203() {
5142 if (jj_scan_token(MINUS_MINUS)) return true;
5143 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5147 static final private boolean jj_3R_202() {
5148 if (jj_scan_token(PLUS_PLUS)) return true;
5149 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5153 static final private boolean jj_3R_198() {
5158 if (jj_3R_203()) return true;
5159 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5160 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5164 static final private boolean jj_3R_71() {
5165 if (jj_3R_87()) return true;
5166 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5167 if (jj_3R_44()) return true;
5168 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5172 static final private boolean jj_3R_183() {
5173 if (jj_3R_185()) return true;
5174 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5177 if (jj_3R_198()) jj_scanpos = xsp;
5178 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5182 static final private boolean jj_3R_44() {
5187 if (jj_3R_54()) return true;
5188 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5189 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5193 static final private boolean jj_3R_53() {
5194 if (jj_3R_70()) return true;
5195 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5198 if (jj_3R_71()) jj_scanpos = xsp;
5199 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5203 static final private boolean jj_3R_42() {
5204 if (jj_scan_token(ARRAY)) return true;
5205 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5209 static final private boolean jj_3R_197() {
5210 if (jj_scan_token(ARRAY)) return true;
5211 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5215 static final private boolean jj_3R_196() {
5216 if (jj_3R_49()) return true;
5217 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5221 static final private boolean jj_3R_182() {
5222 if (jj_scan_token(LPAREN)) return true;
5223 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5228 if (jj_3R_197()) return true;
5229 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5230 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5231 if (jj_scan_token(RPAREN)) return true;
5232 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5233 if (jj_3R_155()) return true;
5234 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5238 static final private boolean jj_3R_67() {
5239 if (jj_scan_token(OBJECT)) return true;
5240 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5244 static final private boolean jj_3R_66() {
5245 if (jj_scan_token(INTEGER)) return true;
5246 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5250 static final private boolean jj_3R_41() {
5251 if (jj_3R_49()) return true;
5252 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5256 static final private boolean jj_3R_65() {
5257 if (jj_scan_token(INT)) return true;
5258 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5262 static final private boolean jj_3R_64() {
5263 if (jj_scan_token(FLOAT)) return true;
5264 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5268 static final private boolean jj_3R_63() {
5269 if (jj_scan_token(DOUBLE)) return true;
5270 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5274 static final private boolean jj_3R_62() {
5275 if (jj_scan_token(REAL)) return true;
5276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5280 static final private boolean jj_3R_61() {
5281 if (jj_scan_token(BOOLEAN)) return true;
5282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5286 static final private boolean jj_3_3() {
5287 if (jj_scan_token(LPAREN)) return true;
5288 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5293 if (jj_3R_42()) return true;
5294 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5295 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5296 if (jj_scan_token(RPAREN)) return true;
5297 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5301 static final private boolean jj_3R_60() {
5302 if (jj_scan_token(BOOL)) return true;
5303 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5307 static final private boolean jj_3R_49() {
5326 if (jj_3R_67()) return true;
5327 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5328 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5329 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5330 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5331 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5332 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5333 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5334 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5335 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5339 static final private boolean jj_3R_59() {
5340 if (jj_scan_token(STRING)) return true;
5341 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5345 static final private boolean jj_3R_181() {
5346 if (jj_scan_token(LPAREN)) return true;
5347 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5348 if (jj_3R_44()) return true;
5349 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5350 if (jj_scan_token(RPAREN)) return true;
5351 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5355 static final private boolean jj_3R_180() {
5356 if (jj_3R_184()) return true;
5357 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5361 static final private boolean jj_3R_179() {
5362 if (jj_3R_183()) return true;
5363 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5367 static final private boolean jj_3R_178() {
5368 if (jj_scan_token(BANG)) return true;
5369 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5370 if (jj_3R_155()) return true;
5371 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5375 static final private boolean jj_3R_177() {
5376 if (jj_3R_182()) return true;
5377 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5381 static final private boolean jj_3R_174() {
5392 if (jj_3R_181()) return true;
5393 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5394 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5395 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5396 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5397 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5401 static final private boolean jj_3R_176() {
5402 if (jj_scan_token(MINUS_MINUS)) return true;
5403 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5407 static final private boolean jj_3R_175() {
5408 if (jj_scan_token(PLUS_PLUS)) return true;
5409 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5413 static final private boolean jj_3R_74() {
5414 if (jj_scan_token(ASSIGN)) return true;
5415 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5416 if (jj_3R_44()) return true;
5417 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5421 static final private boolean jj_3R_173() {
5426 if (jj_3R_176()) return true;
5427 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5428 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5429 if (jj_3R_185()) return true;
5430 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5434 static final private boolean jj_3R_168() {
5435 if (jj_3R_174()) return true;
5436 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5440 static final private boolean jj_3R_167() {
5441 if (jj_3R_173()) return true;
5442 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5446 static final private boolean jj_3R_172() {
5447 if (jj_scan_token(MINUS)) return true;
5448 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5452 static final private boolean jj_3R_171() {
5453 if (jj_scan_token(PLUS)) return true;
5454 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5458 static final private boolean jj_3R_164() {
5465 if (jj_3R_168()) return true;
5466 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5467 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5468 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5472 static final private boolean jj_3R_166() {
5477 if (jj_3R_172()) return true;
5478 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5479 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5480 if (jj_3R_155()) return true;
5481 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5485 static final private boolean jj_3R_170() {
5486 if (jj_3R_164()) return true;
5487 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5491 static final private boolean jj_3R_55() {
5492 if (jj_3R_73()) return true;
5493 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5496 if (jj_3R_74()) jj_scanpos = xsp;
5497 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5501 static final private boolean jj_3R_165() {
5506 if (jj_3R_170()) return true;
5507 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5508 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5512 static final private boolean jj_3R_169() {
5513 if (jj_scan_token(AT)) return true;
5514 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5515 if (jj_3R_165()) return true;
5516 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5520 static final private boolean jj_3R_160() {
5521 if (jj_3R_165()) return true;
5522 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5526 static final private boolean jj_3R_56() {
5527 if (jj_scan_token(COMMA)) return true;
5528 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5529 if (jj_3R_55()) return true;
5530 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5534 static final private boolean jj_3R_155() {
5539 if (jj_3R_160()) return true;
5540 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5541 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5545 static final private boolean jj_3R_159() {
5546 if (jj_scan_token(BIT_AND)) return true;
5547 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5548 if (jj_3R_164()) return true;
5549 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5553 static final private boolean jj_3R_46() {
5554 if (jj_3R_55()) return true;
5555 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5559 if (jj_3R_56()) { jj_scanpos = xsp; break; }
5560 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5565 static final private boolean jj_3R_163() {
5566 if (jj_scan_token(REMAINDER)) return true;
5567 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5571 static final private boolean jj_3R_162() {
5572 if (jj_scan_token(SLASH)) return true;
5573 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5577 static final private boolean jj_3R_161() {
5578 if (jj_scan_token(STAR)) return true;
5579 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5583 static final private boolean jj_3R_156() {
5590 if (jj_3R_163()) return true;
5591 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5592 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5593 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5594 if (jj_3R_155()) return true;
5595 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5599 static final private boolean jj_3R_150() {
5600 if (jj_3R_155()) return true;
5601 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5605 if (jj_3R_156()) { jj_scanpos = xsp; break; }
5606 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5611 static final private boolean jj_3R_158() {
5612 if (jj_scan_token(MINUS)) return true;
5613 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5617 static final private boolean jj_3R_157() {
5618 if (jj_scan_token(PLUS)) return true;
5619 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5623 static final private boolean jj_3R_151() {
5628 if (jj_3R_158()) return true;
5629 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5630 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5631 if (jj_3R_150()) return true;
5632 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5636 static final private boolean jj_3_6() {
5637 if (jj_3R_45()) return true;
5638 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5642 static final private boolean jj_3R_144() {
5643 if (jj_3R_150()) return true;
5644 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5648 if (jj_3R_151()) { jj_scanpos = xsp; break; }
5649 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5654 static final private boolean jj_3R_207() {
5655 if (jj_scan_token(COMMA)) return true;
5656 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5660 static final private boolean jj_3_2() {
5661 if (jj_scan_token(COMMA)) return true;
5662 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5663 if (jj_3R_40()) return true;
5664 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5668 static final private boolean jj_3R_154() {
5669 if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
5670 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5674 static final private boolean jj_3R_153() {
5675 if (jj_scan_token(RSIGNEDSHIFT)) return true;
5676 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5680 static final private boolean jj_3_5() {
5681 if (jj_3R_44()) return true;
5682 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5683 if (jj_scan_token(SEMICOLON)) return true;
5684 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5688 static final private boolean jj_3R_206() {
5689 if (jj_3R_40()) return true;
5690 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5694 if (jj_3_2()) { jj_scanpos = xsp; break; }
5695 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5700 static final private boolean jj_3R_152() {
5701 if (jj_scan_token(LSHIFT)) return true;
5702 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5706 static final private boolean jj_3R_145() {
5713 if (jj_3R_154()) return true;
5714 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5715 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5716 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5717 if (jj_3R_144()) return true;
5718 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5722 static final private boolean jj_3R_136() {
5723 if (jj_3R_144()) return true;
5724 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5728 if (jj_3R_145()) { jj_scanpos = xsp; break; }
5729 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5734 static final private boolean jj_3R_205() {
5735 if (jj_scan_token(LPAREN)) return true;
5736 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5739 if (jj_3R_206()) jj_scanpos = xsp;
5740 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5742 if (jj_3R_207()) jj_scanpos = xsp;
5743 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5744 if (jj_scan_token(RPAREN)) return true;
5745 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5749 static final private boolean jj_3R_149() {
5750 if (jj_scan_token(GE)) return true;
5751 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5755 static final private boolean jj_3R_148() {
5756 if (jj_scan_token(LE)) return true;
5757 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5761 static final private boolean jj_3R_147() {
5762 if (jj_scan_token(GT)) return true;
5763 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5767 static final private boolean jj_3R_146() {
5768 if (jj_scan_token(LT)) return true;
5769 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5773 static final private boolean jj_3R_137() {
5782 if (jj_3R_149()) return true;
5783 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5784 } else 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;
5787 if (jj_3R_136()) return true;
5788 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5792 static final private boolean jj_3R_45() {
5793 if (jj_scan_token(IDENTIFIER)) return true;
5794 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5795 if (jj_scan_token(COLON)) return true;
5796 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5800 static final private boolean jj_3R_208() {
5801 if (jj_scan_token(ARRAYASSIGN)) return true;
5802 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5803 if (jj_3R_44()) return true;
5804 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5808 static final private boolean jj_3R_131() {
5809 if (jj_3R_136()) return true;
5810 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5814 if (jj_3R_137()) { jj_scanpos = xsp; break; }
5815 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5820 static final private boolean jj_3R_40() {
5821 if (jj_3R_44()) return true;
5822 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5825 if (jj_3R_208()) jj_scanpos = xsp;
5826 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5830 static final private boolean jj_3R_110() {
5831 if (jj_scan_token(COMMA)) return true;
5832 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5833 if (jj_3R_44()) return true;
5834 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5838 static final private boolean jj_3_7() {
5839 if (jj_3R_46()) return true;
5840 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5844 static final private boolean jj_3R_91() {
5845 if (jj_3R_44()) return true;
5846 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5850 if (jj_3R_110()) { jj_scanpos = xsp; break; }
5851 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5856 static final private boolean jj_3R_81() {
5857 if (jj_3R_91()) return true;
5858 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5862 static final private boolean jj_3R_142() {
5863 if (jj_scan_token(TRIPLEEQUAL)) return true;
5864 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5868 static final private boolean jj_3R_141() {
5869 if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
5870 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5874 static final private boolean jj_3R_140() {
5875 if (jj_scan_token(NOT_EQUAL)) return true;
5876 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5880 static final private boolean jj_3R_139() {
5881 if (jj_scan_token(DIF)) return true;
5882 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5886 static final private boolean jj_3R_138() {
5887 if (jj_scan_token(EQUAL_EQUAL)) return true;
5888 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5892 static final private boolean jj_3R_80() {
5893 if (jj_3R_49()) return true;
5894 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5898 static final private boolean jj_3R_68() {
5899 if (jj_scan_token(LPAREN)) return true;
5900 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5903 if (jj_3R_81()) jj_scanpos = xsp;
5904 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5905 if (jj_scan_token(RPAREN)) return true;
5906 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5910 static final private boolean jj_3R_132() {
5921 if (jj_3R_142()) return true;
5922 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5923 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5924 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5925 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5926 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5927 if (jj_3R_131()) return true;
5928 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5932 static final private boolean jj_3R_129() {
5933 if (jj_3R_131()) return true;
5934 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5938 if (jj_3R_132()) { jj_scanpos = xsp; break; }
5939 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5944 static final private boolean jj_3R_118() {
5945 if (jj_scan_token(LBRACE)) return true;
5946 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5947 if (jj_3R_44()) return true;
5948 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5949 if (jj_scan_token(RBRACE)) return true;
5950 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5954 static final private boolean jj_3R_191() {
5955 if (jj_scan_token(NULL)) return true;
5956 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5960 static final private boolean jj_3R_190() {
5961 if (jj_scan_token(FALSE)) return true;
5962 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5966 static final private boolean jj_3R_78() {
5967 if (jj_scan_token(DOLLAR_ID)) return true;
5968 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5972 static final private boolean jj_3R_189() {
5973 if (jj_scan_token(TRUE)) return true;
5974 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5978 static final private boolean jj_3R_130() {
5979 if (jj_scan_token(BIT_AND)) return true;
5980 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5981 if (jj_3R_129()) return true;
5982 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5986 static final private boolean jj_3R_188() {
5987 if (jj_scan_token(STRING_LITERAL)) return true;
5988 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5992 static final private boolean jj_3R_187() {
5993 if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
5994 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
5998 static final private boolean jj_3R_127() {
5999 if (jj_3R_129()) return true;
6000 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6004 if (jj_3R_130()) { jj_scanpos = xsp; break; }
6005 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6010 static final private boolean jj_3R_77() {
6011 if (jj_scan_token(DOLLAR)) return true;
6012 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6013 if (jj_3R_57()) return true;
6014 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6018 static final private boolean jj_3R_186() {
6019 if (jj_scan_token(INTEGER_LITERAL)) return true;
6020 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6024 static final private boolean jj_3R_184() {
6037 if (jj_3R_191()) return true;
6038 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6039 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6040 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6041 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6042 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6043 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6047 static final private boolean jj_3R_79() {
6048 if (jj_3R_44()) return true;
6049 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6053 static final private boolean jj_3R_58() {
6058 if (jj_3R_80()) return true;
6059 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6060 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6064 static final private boolean jj_3R_128() {
6065 if (jj_scan_token(XOR)) return true;
6066 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6067 if (jj_3R_127()) return true;
6068 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6072 static final private boolean jj_3R_76() {
6073 if (jj_scan_token(IDENTIFIER)) return true;
6074 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6077 if (jj_3R_118()) jj_scanpos = xsp;
6078 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6082 static final private boolean jj_3R_125() {
6083 if (jj_3R_127()) return true;
6084 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6088 if (jj_3R_128()) { jj_scanpos = xsp; break; }
6089 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6094 static final private boolean jj_3R_75() {
6095 if (jj_scan_token(LBRACE)) return true;
6096 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6097 if (jj_3R_44()) return true;
6098 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6099 if (jj_scan_token(RBRACE)) return true;
6100 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6104 static final private boolean jj_3R_57() {
6113 if (jj_3R_78()) return true;
6114 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6115 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6116 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6117 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6121 static final private boolean jj_3R_48() {
6122 if (jj_scan_token(LBRACKET)) return true;
6123 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6126 if (jj_3R_58()) jj_scanpos = xsp;
6127 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6128 if (jj_scan_token(RBRACKET)) return true;
6129 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6133 static final private boolean jj_3R_126() {
6134 if (jj_scan_token(BIT_OR)) return true;
6135 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6136 if (jj_3R_125()) return true;
6137 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6141 static final private boolean jj_3R_119() {
6142 if (jj_3R_125()) return true;
6143 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6147 if (jj_3R_126()) { jj_scanpos = xsp; break; }
6148 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6153 static final private boolean jj_3R_117() {
6154 if (jj_scan_token(LBRACE)) return true;
6155 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6156 if (jj_3R_44()) return true;
6157 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6158 if (jj_scan_token(RBRACE)) return true;
6159 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6163 static final private boolean jj_3R_120() {
6164 if (jj_scan_token(DOT)) return true;
6165 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6166 if (jj_3R_119()) return true;
6167 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6171 static final private boolean jj_3R_109() {
6172 if (jj_scan_token(DOLLAR)) return true;
6173 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6174 if (jj_3R_57()) return true;
6175 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6179 static final private boolean jj_3R_47() {
6180 if (jj_scan_token(CLASSACCESS)) return true;
6181 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6182 if (jj_3R_57()) return true;
6183 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6187 static final private boolean jj_3R_39() {
6192 if (jj_3R_48()) return true;
6193 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6194 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6198 static final private boolean jj_3R_111() {
6199 if (jj_3R_119()) return true;
6200 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6204 if (jj_3R_120()) { jj_scanpos = xsp; break; }
6205 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6210 static final private boolean jj_3R_122() {
6211 if (jj_scan_token(_ANDL)) return true;
6212 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6216 static final private boolean jj_3R_90() {
6221 if (jj_3R_109()) return true;
6222 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6223 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6227 static final private boolean jj_3R_108() {
6228 if (jj_scan_token(DOLLAR_ID)) return true;
6229 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6232 if (jj_3R_117()) jj_scanpos = xsp;
6233 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6237 static final private boolean jj_3R_121() {
6238 if (jj_scan_token(AND_AND)) return true;
6239 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6243 static final private boolean jj_3R_84() {
6244 if (jj_3R_73()) return true;
6245 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6249 static final private boolean jj_3R_83() {
6250 if (jj_3R_49()) return true;
6251 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6255 static final private boolean jj_3R_112() {
6260 if (jj_3R_122()) return true;
6261 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6262 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6263 if (jj_3R_111()) return true;
6264 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6268 static final private boolean jj_3R_86() {
6269 if (jj_scan_token(HOOK)) return true;
6270 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6271 if (jj_3R_44()) return true;
6272 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6273 if (jj_scan_token(COLON)) return true;
6274 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6275 if (jj_3R_70()) return true;
6276 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6280 static final private boolean jj_3R_82() {
6281 if (jj_scan_token(IDENTIFIER)) return true;
6282 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6286 static final private boolean jj_3R_69() {
6293 if (jj_3R_84()) return true;
6294 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6295 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6296 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6300 static final private boolean jj_3R_92() {
6301 if (jj_3R_111()) return true;
6302 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6306 if (jj_3R_112()) { jj_scanpos = xsp; break; }
6307 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6312 static final private boolean jj_3R_114() {
6313 if (jj_scan_token(_ORL)) return true;
6314 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6318 static final private boolean jj_3R_113() {
6319 if (jj_scan_token(OR_OR)) return true;
6320 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6324 static final private boolean jj_3R_135() {
6325 if (jj_scan_token(ASSIGN)) return true;
6326 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6327 if (jj_3R_44()) return true;
6328 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6332 static final private boolean jj_3R_93() {
6337 if (jj_3R_114()) return true;
6338 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6339 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6340 if (jj_3R_92()) return true;
6341 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6345 static final private boolean jj_3R_85() {
6346 if (jj_3R_92()) return true;
6347 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6351 if (jj_3R_93()) { jj_scanpos = xsp; break; }
6352 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6357 static final private boolean jj_3_1() {
6358 if (jj_3R_39()) return true;
6359 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6363 static final private boolean jj_3R_143() {
6364 if (jj_3R_73()) return true;
6365 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6369 static final private boolean jj_3R_73() {
6370 if (jj_3R_90()) return true;
6371 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6375 if (jj_3_1()) { jj_scanpos = xsp; break; }
6376 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6381 static final private boolean jj_3R_195() {
6382 if (jj_scan_token(ARRAY)) return true;
6383 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6384 if (jj_3R_205()) return true;
6385 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6389 static final private boolean jj_3R_70() {
6390 if (jj_3R_85()) return true;
6391 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6394 if (jj_3R_86()) jj_scanpos = xsp;
6395 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6399 static final private boolean jj_3R_134() {
6400 if (jj_scan_token(COMMA)) return true;
6401 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6404 if (jj_3R_143()) jj_scanpos = xsp;
6405 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6409 static final private boolean jj_3R_133() {
6410 if (jj_3R_73()) return true;
6411 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6415 static final private boolean jj_3R_106() {
6416 if (jj_scan_token(TILDEEQUAL)) return true;
6417 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6421 static final private boolean jj_3R_105() {
6422 if (jj_scan_token(DOTASSIGN)) return true;
6423 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6427 static final private boolean jj_3R_104() {
6428 if (jj_scan_token(ORASSIGN)) return true;
6429 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6433 static final private boolean jj_3R_103() {
6434 if (jj_scan_token(XORASSIGN)) return true;
6435 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6439 static final private boolean jj_3R_102() {
6440 if (jj_scan_token(ANDASSIGN)) return true;
6441 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6445 static final private boolean jj_3R_101() {
6446 if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6447 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6451 static final private boolean jj_3R_100() {
6452 if (jj_scan_token(LSHIFTASSIGN)) return true;
6453 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6457 static final private boolean jj_3R_52() {
6458 if (jj_scan_token(STATICCLASSACCESS)) return true;
6459 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6460 if (jj_3R_69()) return true;
6461 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6465 static final private boolean jj_3R_99() {
6466 if (jj_scan_token(MINUSASSIGN)) return true;
6467 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6471 static final private boolean jj_3R_51() {
6472 if (jj_3R_39()) return true;
6473 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6477 static final private boolean jj_3R_98() {
6478 if (jj_scan_token(PLUSASSIGN)) return true;
6479 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6483 static final private boolean jj_3R_43() {
6490 if (jj_3R_52()) return true;
6491 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6492 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6493 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6497 static final private boolean jj_3R_50() {
6498 if (jj_3R_68()) return true;
6499 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6503 static final private boolean jj_3R_124() {
6504 if (jj_scan_token(LIST)) return true;
6505 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6506 if (jj_scan_token(LPAREN)) return true;
6507 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6510 if (jj_3R_133()) jj_scanpos = xsp;
6511 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6514 if (jj_3R_134()) { jj_scanpos = xsp; break; }
6515 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6517 if (jj_scan_token(RPAREN)) return true;
6518 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6520 if (jj_3R_135()) jj_scanpos = xsp;
6521 else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6525 static final private boolean jj_3R_97() {
6526 if (jj_scan_token(REMASSIGN)) return true;
6527 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6531 static final private boolean jj_3R_96() {
6532 if (jj_scan_token(SLASHASSIGN)) return true;
6533 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6537 static final private boolean jj_3R_95() {
6538 if (jj_scan_token(STARASSIGN)) return true;
6539 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6543 static final private boolean jj_3R_94() {
6544 if (jj_scan_token(ASSIGN)) return true;
6545 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6549 static final private boolean jj_3R_87() {
6576 if (jj_3R_106()) return true;
6577 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6578 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6579 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6580 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6581 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6582 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6583 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6584 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6585 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6586 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6587 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6588 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6589 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6593 static final private boolean jj_3R_123() {
6594 if (jj_scan_token(PRINT)) return true;
6595 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6596 if (jj_3R_44()) return true;
6597 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6601 static final private boolean jj_3R_201() {
6602 if (jj_3R_73()) return true;
6603 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6607 static final private boolean jj_3R_116() {
6608 if (jj_3R_124()) return true;
6609 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6613 static final private boolean jj_3R_200() {
6614 if (jj_scan_token(NEW)) return true;
6615 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6616 if (jj_3R_69()) return true;
6617 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6621 static final private boolean jj_3R_107() {
6626 if (jj_3R_116()) return true;
6627 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6628 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6632 static final private boolean jj_3R_115() {
6633 if (jj_3R_123()) return true;
6634 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6638 static final private boolean jj_3R_199() {
6639 if (jj_scan_token(IDENTIFIER)) return true;
6640 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6644 static final private boolean jj_3R_194() {
6651 if (jj_3R_201()) return true;
6652 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6653 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6654 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6658 static final private boolean jj_3R_89() {
6659 if (jj_3R_107()) return true;
6660 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6664 static final private boolean jj_3R_88() {
6665 if (jj_scan_token(BANG)) return true;
6666 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6667 if (jj_3R_72()) return true;
6668 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6672 static final private boolean jj_3R_72() {
6677 if (jj_3R_89()) return true;
6678 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6679 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6683 static final private boolean jj_3_4() {
6684 if (jj_3R_43()) return true;
6685 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6689 static final private boolean jj_3R_193() {
6690 if (jj_3R_195()) return true;
6691 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6695 static final private boolean jj_3R_54() {
6696 if (jj_3R_72()) return true;
6697 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6701 static final private boolean jj_3R_204() {
6702 if (jj_3R_43()) return true;
6703 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6707 static final private boolean jj_3R_192() {
6708 if (jj_3R_194()) return true;
6709 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6713 if (jj_3R_204()) { jj_scanpos = xsp; break; }
6714 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6719 static final private boolean jj_3R_185() {
6724 if (jj_3R_193()) return true;
6725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6726 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
6730 static private boolean jj_initialized_once = false;
6731 static public PHPParserTokenManager token_source;
6732 static SimpleCharStream jj_input_stream;
6733 static public Token token, jj_nt;
6734 static private int jj_ntk;
6735 static private Token jj_scanpos, jj_lastpos;
6736 static private int jj_la;
6737 static public boolean lookingAhead = false;
6738 static private boolean jj_semLA;
6739 static private int jj_gen;
6740 static final private int[] jj_la1 = new int[123];
6741 static private int[] jj_la1_0;
6742 static private int[] jj_la1_1;
6743 static private int[] jj_la1_2;
6744 static private int[] jj_la1_3;
6745 static private int[] jj_la1_4;
6753 private static void jj_la1_0() {
6754 jj_la1_0 = new int[] {0xf960001e,0x6,0x6,0xf960001e,0x0,0xf9600000,0x0,0xc00000,0xc00000,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,0x0,0x8000000,0x8000000,0x0,0x0,0x8000000,0x0,0x0,0x8000000,0x0,0x68000000,0x68000000,0x0,0x0,0x68000000,0x0,0x0,0x89000000,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,};
6756 private static void jj_la1_1() {
6757 jj_la1_1 = new int[] {0x875d507f,0x0,0x0,0x875d507f,0x0,0x875d507f,0x8000,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,0x30c0000,0x0,0x0,0x0,0x40000,0x40000,0x180,0x40000,0x0,0x30c0000,0x30c0000,0x80,0x3080000,0x30c0000,0x0,0x0,0x8455507f,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,};
6759 private static void jj_la1_2() {
6760 jj_la1_2 = new int[] {0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x13c1c00,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x800,0x0,0x0,0x300000,0x0,0x13c1c00,0x0,0x1000000,0x0,0x1000800,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,0x3c1c00,0x300000,0x3c1800,0xc0000,0x1800,0x3fe,0xc0000,0xc0000,0x800,0x800,0x0,0x800,0xbfe,0x13c1ffe,0x13c1ffe,0x0,0x0,0x13c1c00,0x0,0x400,0xc0c00,0x13c1c00,0x0,0x0,0x0,0x800,0x0,0x800,0x0,0x0,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0xc0000,0xc0000,0xc0800,0x8000,0x0,0x0,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x0,0x13c9c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c9c00,0xc0800,0x13c1c00,0xc0800,0x13c1c00,0x13c9c00,0xc0800,0x0,0x13c1c00,0x13c1c00,};
6762 private static void jj_la1_3() {
6763 jj_la1_3 = new int[] {0x2288a2,0x0,0x0,0x2288a2,0x200000,0x2288a2,0x0,0x0,0x0,0x400000,0x0,0x20000,0x0,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,0x88a2,0x0,0x0,0x0,0x800,0x800,0x88000,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,};
6765 private static void jj_la1_4() {
6766 jj_la1_4 = new int[] {0x4000,0x0,0x0,0x4000,0x0,0x4000,0x0,0x0,0x0,0x0,0x2,0x0,0x4000,0x0,0x4000,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,0x4000,0x0,0x0,0x0,0x4000,0x4000,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x0,0x4000,0x0,0x0,0x4000,0x4000,0x0,0x0,0x0,0x4000,0x0,0x4000,0x2,0x0,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x2,0x3ffe,0x3ffe,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,};
6768 static final private JJCalls[] jj_2_rtns = new JJCalls[7];
6769 static private boolean jj_rescan = false;
6770 static private int jj_gc = 0;
6772 public PHPParser(java.io.InputStream stream) {
6773 if (jj_initialized_once) {
6774 System.out.println("ERROR: Second call to constructor of static parser. You must");
6775 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6776 System.out.println(" during parser generation.");
6779 jj_initialized_once = true;
6780 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6781 token_source = new PHPParserTokenManager(jj_input_stream);
6782 token = new Token();
6785 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6786 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6789 static public void ReInit(java.io.InputStream stream) {
6790 jj_input_stream.ReInit(stream, 1, 1);
6791 token_source.ReInit(jj_input_stream);
6792 token = new Token();
6795 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6796 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6799 public PHPParser(java.io.Reader stream) {
6800 if (jj_initialized_once) {
6801 System.out.println("ERROR: Second call to constructor of static parser. You must");
6802 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6803 System.out.println(" during parser generation.");
6806 jj_initialized_once = true;
6807 jj_input_stream = new SimpleCharStream(stream, 1, 1);
6808 token_source = new PHPParserTokenManager(jj_input_stream);
6809 token = new Token();
6812 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6813 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6816 static public void ReInit(java.io.Reader stream) {
6817 jj_input_stream.ReInit(stream, 1, 1);
6818 token_source.ReInit(jj_input_stream);
6819 token = new Token();
6822 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6823 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6826 public PHPParser(PHPParserTokenManager tm) {
6827 if (jj_initialized_once) {
6828 System.out.println("ERROR: Second call to constructor of static parser. You must");
6829 System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
6830 System.out.println(" during parser generation.");
6833 jj_initialized_once = true;
6835 token = new Token();
6838 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6839 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6842 public void ReInit(PHPParserTokenManager tm) {
6844 token = new Token();
6847 for (int i = 0; i < 123; i++) jj_la1[i] = -1;
6848 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
6851 static final private Token jj_consume_token(int kind) throws ParseException {
6853 if ((oldToken = token).next != null) token = token.next;
6854 else token = token.next = token_source.getNextToken();
6856 if (token.kind == kind) {
6858 if (++jj_gc > 100) {
6860 for (int i = 0; i < jj_2_rtns.length; i++) {
6861 JJCalls c = jj_2_rtns[i];
6863 if (c.gen < jj_gen) c.first = null;
6872 throw generateParseException();
6875 static final private boolean jj_scan_token(int kind) {
6876 if (jj_scanpos == jj_lastpos) {
6878 if (jj_scanpos.next == null) {
6879 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
6881 jj_lastpos = jj_scanpos = jj_scanpos.next;
6884 jj_scanpos = jj_scanpos.next;
6887 int i = 0; Token tok = token;
6888 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
6889 if (tok != null) jj_add_error_token(kind, i);
6891 return (jj_scanpos.kind != kind);
6894 static final public Token getNextToken() {
6895 if (token.next != null) token = token.next;
6896 else token = token.next = token_source.getNextToken();
6902 static final public Token getToken(int index) {
6903 Token t = lookingAhead ? jj_scanpos : token;
6904 for (int i = 0; i < index; i++) {
6905 if (t.next != null) t = t.next;
6906 else t = t.next = token_source.getNextToken();
6911 static final private int jj_ntk() {
6912 if ((jj_nt=token.next) == null)
6913 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
6915 return (jj_ntk = jj_nt.kind);
6918 static private java.util.Vector jj_expentries = new java.util.Vector();
6919 static private int[] jj_expentry;
6920 static private int jj_kind = -1;
6921 static private int[] jj_lasttokens = new int[100];
6922 static private int jj_endpos;
6924 static private void jj_add_error_token(int kind, int pos) {
6925 if (pos >= 100) return;
6926 if (pos == jj_endpos + 1) {
6927 jj_lasttokens[jj_endpos++] = kind;
6928 } else if (jj_endpos != 0) {
6929 jj_expentry = new int[jj_endpos];
6930 for (int i = 0; i < jj_endpos; i++) {
6931 jj_expentry[i] = jj_lasttokens[i];
6933 boolean exists = false;
6934 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
6935 int[] oldentry = (int[])(enum.nextElement());
6936 if (oldentry.length == jj_expentry.length) {
6938 for (int i = 0; i < jj_expentry.length; i++) {
6939 if (oldentry[i] != jj_expentry[i]) {
6947 if (!exists) jj_expentries.addElement(jj_expentry);
6948 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
6952 static public ParseException generateParseException() {
6953 jj_expentries.removeAllElements();
6954 boolean[] la1tokens = new boolean[143];
6955 for (int i = 0; i < 143; i++) {
6956 la1tokens[i] = false;
6959 la1tokens[jj_kind] = true;
6962 for (int i = 0; i < 123; i++) {
6963 if (jj_la1[i] == jj_gen) {
6964 for (int j = 0; j < 32; j++) {
6965 if ((jj_la1_0[i] & (1<<j)) != 0) {
6966 la1tokens[j] = true;
6968 if ((jj_la1_1[i] & (1<<j)) != 0) {
6969 la1tokens[32+j] = true;
6971 if ((jj_la1_2[i] & (1<<j)) != 0) {
6972 la1tokens[64+j] = true;
6974 if ((jj_la1_3[i] & (1<<j)) != 0) {
6975 la1tokens[96+j] = true;
6977 if ((jj_la1_4[i] & (1<<j)) != 0) {
6978 la1tokens[128+j] = true;
6983 for (int i = 0; i < 143; i++) {
6985 jj_expentry = new int[1];
6987 jj_expentries.addElement(jj_expentry);
6992 jj_add_error_token(0, 0);
6993 int[][] exptokseq = new int[jj_expentries.size()][];
6994 for (int i = 0; i < jj_expentries.size(); i++) {
6995 exptokseq[i] = (int[])jj_expentries.elementAt(i);
6997 return new ParseException(token, exptokseq, tokenImage);
7000 static final public void enable_tracing() {
7003 static final public void disable_tracing() {
7006 static final private void jj_rescan_token() {
7008 for (int i = 0; i < 7; i++) {
7009 JJCalls p = jj_2_rtns[i];
7011 if (p.gen > jj_gen) {
7012 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
7014 case 0: jj_3_1(); break;
7015 case 1: jj_3_2(); break;
7016 case 2: jj_3_3(); break;
7017 case 3: jj_3_4(); break;
7018 case 4: jj_3_5(); break;
7019 case 5: jj_3_6(); break;
7020 case 6: jj_3_7(); break;
7024 } while (p != null);
7029 static final private void jj_save(int index, int xla) {
7030 JJCalls p = jj_2_rtns[index];
7031 while (p.gen > jj_gen) {
7032 if (p.next == null) { p = p.next = new JJCalls(); break; }
7035 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
7038 static final class JJCalls {