X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java deleted file mode 100644 index bc7c112..0000000 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ /dev/null @@ -1,6478 +0,0 @@ -/* Generated By:JavaCC: Do not edit this line. PHPParser.java */ -package test; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.ui.texteditor.MarkerUtilities; -import org.eclipse.jface.preference.IPreferenceStore; - -import java.util.Hashtable; -import java.util.Enumeration; -import java.io.StringReader; -import java.io.*; -import java.text.MessageFormat; - -import net.sourceforge.phpeclipse.actions.PHPStartApacheAction; -import net.sourceforge.phpeclipse.PHPeclipsePlugin; -import net.sourceforge.phpdt.internal.compiler.parser.*; -import net.sourceforge.phpdt.internal.compiler.ast.*; - -/** - * A new php parser. - * This php parser is inspired by the Java 1.2 grammar example - * given with JavaCC. You can get JavaCC at http://www.webgain.com - * You can test the parser with the PHPParserTestCase2.java - * @author Matthieu Casanova - */ -public final class PHPParser extends PHPParserSuperclass implements PHPParserConstants { - - /** The file that is parsed. */ - private static IFile fileToParse; - - /** The current segment. */ - private static PHPSegmentWithChildren currentSegment; - - private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$ - private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$ - static PHPOutlineInfo outlineInfo; - - private static PHPFunctionDeclaration currentFunction; - private static boolean assigning; - - /** The error level of the current ParseException. */ - private static int errorLevel = ERROR; - /** The message of the current ParseException. If it's null it's because the parse exception wasn't handled */ - private static String errorMessage; - - private static int errorStart = -1; - private static int errorEnd = -1; - - //ast stack - private final static int AstStackIncrement = 100; - /** The stack of node. */ - private static AstNode[] astStack; - /** The cursor in expression stack. */ - private static int expressionPtr; - - public final void setFileToParse(final IFile fileToParse) { - this.fileToParse = fileToParse; - } - - public PHPParser() { - } - - public PHPParser(final IFile fileToParse) { - this(new StringReader("")); - this.fileToParse = fileToParse; - } - - public static final void phpParserTester(final String strEval) throws CoreException, ParseException { - PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING); - final StringReader stream = new StringReader(strEval); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(new StringReader(strEval)); - astStack = new AstNode[AstStackIncrement]; - phpTest(); - } - - public static final void htmlParserTester(final File fileName) throws CoreException, ParseException { - try { - final Reader stream = new FileReader(fileName); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - astStack = new AstNode[AstStackIncrement]; - phpFile(); - } catch (FileNotFoundException e) { - e.printStackTrace(); //To change body of catch statement use Options | File Templates. - } - } - - public static final void htmlParserTester(final String strEval) throws CoreException, ParseException { - final StringReader stream = new StringReader(strEval); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - astStack = new AstNode[AstStackIncrement]; - phpFile(); - } - - public final PHPOutlineInfo parseInfo(final Object parent, final String s) { - outlineInfo = new PHPOutlineInfo(parent); - currentSegment = outlineInfo.getDeclarations(); - final StringReader stream = new StringReader(s); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - astStack = new AstNode[AstStackIncrement]; - try { - parse(); - } catch (ParseException e) { - processParseException(e); - } - return outlineInfo; - } - - /** - * This method will process the parse exception. - * If the error message is null, the parse exception wasn't catched and a trace is written in the log - * @param e the ParseException - */ - private static void processParseException(final ParseException e) { - if (errorMessage == null) { - PHPeclipsePlugin.log(e); - errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it"; - errorStart = jj_input_stream.getPosition(); - errorEnd = errorStart + 1; - } - setMarker(e); - errorMessage = null; - } - - /** - * Create marker for the parse error - * @param e the ParseException - */ - private static void setMarker(final ParseException e) { - try { - if (errorStart == -1) { - setMarker(fileToParse, - errorMessage, - jj_input_stream.tokenBegin, - jj_input_stream.tokenBegin + e.currentToken.image.length(), - errorLevel, - "Line " + e.currentToken.beginLine); - } else { - setMarker(fileToParse, - errorMessage, - errorStart, - errorEnd, - errorLevel, - "Line " + e.currentToken.beginLine); - errorStart = -1; - errorEnd = -1; - } - } catch (CoreException e2) { - PHPeclipsePlugin.log(e2); - } - } - - /** - * Create markers according to the external parser output - */ - private static void createMarkers(final String output, final IFile file) throws CoreException { - // delete all markers - file.deleteMarkers(IMarker.PROBLEM, false, 0); - - int indx = 0; - int brIndx; - boolean flag = true; - while ((brIndx = output.indexOf("
", indx)) != -1) { - // newer php error output (tested with 4.2.3) - scanLine(output, file, indx, brIndx); - indx = brIndx + 6; - flag = false; - } - if (flag) { - while ((brIndx = output.indexOf("
", indx)) != -1) { - // older php error output (tested with 4.2.3) - scanLine(output, file, indx, brIndx); - indx = brIndx + 4; - } - } - } - - private static void scanLine(final String output, - final IFile file, - final int indx, - final int brIndx) throws CoreException { - String current; - StringBuffer lineNumberBuffer = new StringBuffer(10); - char ch; - current = output.substring(indx, brIndx); - - if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) { - int onLine = current.indexOf("on line "); - if (onLine != -1) { - lineNumberBuffer.delete(0, lineNumberBuffer.length()); - for (int i = onLine; i < current.length(); i++) { - ch = current.charAt(i); - if ('0' <= ch && '9' >= ch) { - lineNumberBuffer.append(ch); - } - } - - int lineNumber = Integer.parseInt(lineNumberBuffer.toString()); - - Hashtable attributes = new Hashtable(); - - current = current.replaceAll("\n", ""); - current = current.replaceAll("", ""); - current = current.replaceAll("", ""); - MarkerUtilities.setMessage(attributes, current); - - if (current.indexOf(PARSE_ERROR_STRING) != -1) - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR)); - else if (current.indexOf(PARSE_WARNING_STRING) != -1) - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING)); - else - attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO)); - MarkerUtilities.setLineNumber(attributes, lineNumber); - MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM); - } - } - } - - public final void parse(final String s) throws CoreException { - final StringReader stream = new StringReader(s); - if (jj_input_stream == null) { - jj_input_stream = new SimpleCharStream(stream, 1, 1); - } - ReInit(stream); - astStack = new AstNode[AstStackIncrement]; - try { - parse(); - } catch (ParseException e) { - processParseException(e); - } - } - - /** - * Call the php parse command ( php -l -f <filename> ) - * and create markers according to the external parser output - */ - public static void phpExternalParse(final IFile file) { - final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore(); - final String filename = file.getLocation().toString(); - - final String[] arguments = { filename }; - final MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF)); - final String command = form.format(arguments); - - final String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: "); - - try { - // parse the buffer to find the errors and warnings - createMarkers(parserResult, file); - } catch (CoreException e) { - PHPeclipsePlugin.log(e); - } - } - - private static final void parse() throws ParseException { - phpFile(); - } - - static final public void phpTest() throws ParseException { - Php(); - jj_consume_token(0); - } - - static final public void phpFile() throws ParseException { - try { - label_1: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTSHORT: - case PHPSTARTLONG: - case PHPECHOSTART: - case PHPEND: - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - ; - break; - default: - jj_la1[0] = jj_gen; - break label_1; - } - PhpBlock(); - } - jj_consume_token(0); - } catch (TokenMgrError e) { - PHPeclipsePlugin.log(e); - errorStart = SimpleCharStream.getPosition(); - errorEnd = errorStart + 1; - errorMessage = e.getMessage(); - errorLevel = ERROR; - {if (true) throw generateParseException();} - } - } - -/** - * A php block is a - * or - * or - */ - static final public void PhpBlock() throws ParseException { - final int start = jj_input_stream.getPosition(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPECHOSTART: - phpEchoBlock(); - break; - case PHPSTARTSHORT: - case PHPSTARTLONG: - case PHPEND: - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTSHORT: - case PHPSTARTLONG: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTLONG: - jj_consume_token(PHPSTARTLONG); - break; - case PHPSTARTSHORT: - jj_consume_token(PHPSTARTSHORT); - try { - setMarker(fileToParse, - "You should use '' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - break; - default: - jj_la1[3] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - - static final public void phpEchoBlock() throws ParseException { - jj_consume_token(PHPECHOSTART); - Expression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SEMICOLON: - jj_consume_token(SEMICOLON); - break; - default: - jj_la1[4] = jj_gen; - ; - } - jj_consume_token(PHPEND); - } - - static final public void Php() throws ParseException { - label_2: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASS: - case FUNCTION: - case IF: - case ARRAY: - case BREAK: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - ; - break; - default: - jj_la1[5] = jj_gen; - break label_2; - } - BlockStatement(); - } - } - - static final public void ClassDeclaration() throws ParseException { - final PHPClassDeclaration classDeclaration; - final Token className; - final int pos; - jj_consume_token(CLASS); - try { - pos = jj_input_stream.getPosition(); - className = jj_consume_token(IDENTIFIER); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EXTENDS: - jj_consume_token(EXTENDS); - try { - jj_consume_token(IDENTIFIER); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - break; - default: - jj_la1[6] = jj_gen; - ; - } - if (currentSegment != null) { - classDeclaration = new PHPClassDeclaration(currentSegment,className.image,pos); - currentSegment.add(classDeclaration); - currentSegment = classDeclaration; - } - ClassBody(); - if (currentSegment != null) { - currentSegment = (PHPSegmentWithChildren) currentSegment.getParent(); - } - } - - static final public void ClassBody() throws ParseException { - try { - jj_consume_token(LBRACE); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - label_3: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUNCTION: - case VAR: - ; - break; - default: - jj_la1[7] = jj_gen; - break label_3; - } - ClassBodyDeclaration(); - } - try { - jj_consume_token(RBRACE); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - } - -/** - * A class can contain only methods and fields. - */ - static final public void ClassBodyDeclaration() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case FUNCTION: - MethodDeclaration(); - break; - case VAR: - FieldDeclaration(); - break; - default: - jj_la1[8] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - -/** - * A class field declaration : it's var VariableDeclarator() (, VariableDeclarator())*;. - */ - static final public void FieldDeclaration() throws ParseException { - PHPVarDeclaration variableDeclaration; - jj_consume_token(VAR); - variableDeclaration = VariableDeclarator(); - outlineInfo.addVariable(variableDeclaration.getVariable().getName()); - if (currentSegment != null) { - currentSegment.add(variableDeclaration); - } - label_4: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[9] = jj_gen; - break label_4; - } - jj_consume_token(COMMA); - variableDeclaration = VariableDeclarator(); - if (currentSegment != null) { - currentSegment.add(variableDeclaration); - } - } - try { - jj_consume_token(SEMICOLON); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - } - - static final public PHPVarDeclaration VariableDeclarator() throws ParseException { - final String varName, varValue; - final int pos = jj_input_stream.getPosition(); - varName = VariableDeclaratorId(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - jj_consume_token(ASSIGN); - try { - varValue = VariableInitializer(); - {if (true) return new PHPVarDeclaration(currentSegment,varName,pos,varValue);} - } catch (ParseException e) { - errorMessage = "Literal expression expected in variable initializer"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - break; - default: - jj_la1[10] = jj_gen; - ; - } - {if (true) return new PHPVarDeclaration(currentSegment,varName,pos);} - throw new Error("Missing return statement in function"); - } - - static final public String VariableDeclaratorId() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer(); - try { - expr = Variable(); - buff.append(expr); - label_5: - while (true) { - if (jj_2_1(2)) { - ; - } else { - break label_5; - } - expr = VariableSuffix(); - buff.append(expr); - } - {if (true) return buff.toString();} - } catch (ParseException e) { - errorMessage = "'$' expected for variable identifier"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - throw new Error("Missing return statement in function"); - } - - static final public String Variable() throws ParseException { - String expr = null; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOLLAR_ID: - token = jj_consume_token(DOLLAR_ID); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - jj_consume_token(LBRACE); - expr = Expression(); - jj_consume_token(RBRACE); - break; - default: - jj_la1[11] = jj_gen; - ; - } - if (expr == null && !assigning) { - if (currentFunction != null) { - PHPVarDeclaration var = currentFunction.getParameter(token.image.substring(1)); - if (var != null) { - var.getVariable().setUsed(true); - } - } - {if (true) return token.image.substring(1);} - } - {if (true) return token + "{" + expr + "}";} - break; - case DOLLAR: - jj_consume_token(DOLLAR); - expr = VariableName(); - {if (true) return expr;} - break; - default: - jj_la1[12] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String VariableName() throws ParseException { -String expr = null; -final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - jj_consume_token(LBRACE); - expr = Expression(); - jj_consume_token(RBRACE); - {if (true) return "{"+expr+"}";} - break; - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - jj_consume_token(LBRACE); - expr = Expression(); - jj_consume_token(RBRACE); - break; - default: - jj_la1[13] = jj_gen; - ; - } - if (expr == null) { - if (currentFunction != null) { - PHPVarDeclaration var = currentFunction.getParameter(token.image); - if (var != null) { - var.getVariable().setUsed(true); - } - } - {if (true) return token.image;} - } - {if (true) return token + "{" + expr + "}";} - break; - case DOLLAR: - jj_consume_token(DOLLAR); - expr = VariableName(); - if (currentFunction != null) { - PHPVarDeclaration var = currentFunction.getParameter(expr); - if (var != null) { - var.getVariable().setUsed(true); - } - } - {if (true) return "$" + expr;} - break; - case DOLLAR_ID: - token = jj_consume_token(DOLLAR_ID); - if (currentFunction != null) { - PHPVarDeclaration var = currentFunction.getParameter(token.image.substring(1)); - if (var != null) { - var.getVariable().setUsed(true); - } - } - {if (true) return token.image + expr;} - break; - default: - jj_la1[14] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String VariableInitializer() throws ParseException { - final String expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - expr = Literal(); - {if (true) return expr;} - break; - case MINUS: - jj_consume_token(MINUS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - break; - default: - jj_la1[15] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return "-" + token.image;} - break; - case PLUS: - jj_consume_token(PLUS); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - break; - default: - jj_la1[16] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - {if (true) return "+" + token.image;} - break; - case ARRAY: - expr = ArrayDeclarator(); - {if (true) return expr;} - break; - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - {if (true) return token.image;} - break; - default: - jj_la1[17] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String ArrayVariable() throws ParseException { -String expr; -final StringBuffer buff = new StringBuffer(); - expr = Expression(); - buff.append(expr); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAYASSIGN: - jj_consume_token(ARRAYASSIGN); - expr = Expression(); - buff.append("=>").append(expr); - break; - default: - jj_la1[18] = jj_gen; - ; - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ArrayInitializer() throws ParseException { -String expr; -final StringBuffer buff = new StringBuffer("("); - jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - expr = ArrayVariable(); - buff.append(expr); - label_6: - while (true) { - if (jj_2_2(2)) { - ; - } else { - break label_6; - } - jj_consume_token(COMMA); - expr = ArrayVariable(); - buff.append(",").append(expr); - } - break; - default: - jj_la1[19] = jj_gen; - ; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - jj_consume_token(COMMA); - buff.append(","); - break; - default: - jj_la1[20] = jj_gen; - ; - } - jj_consume_token(RPAREN); - buff.append(")"); - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - -/** - * A Method Declaration. - * function MetodDeclarator() Block() - */ - static final public void MethodDeclaration() throws ParseException { - final PHPFunctionDeclaration functionDeclaration; - Token functionToken; - functionToken = jj_consume_token(FUNCTION); - try { - functionDeclaration = MethodDeclarator(); - outlineInfo.addVariable(functionDeclaration.getName()); - } catch (ParseException e) { - if (errorMessage != null) { - {if (true) throw e;} - } - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - if (currentSegment != null) { - currentSegment.add(functionDeclaration); - currentSegment = functionDeclaration; - } - currentFunction = functionDeclaration; - Block(); - Hashtable parameters = currentFunction.getParameters(); - Enumeration vars = parameters.elements(); - while (vars.hasMoreElements()) { - PHPVarDeclaration o = (PHPVarDeclaration) vars.nextElement(); - if (!o.getVariable().isUsed()) { - try { - setMarker(fileToParse, - "Parameter "+o.getVariable().getName()+" is never used in function", - functionToken.beginLine, - WARNING, - "Line " + token.beginLine); - } catch (CoreException e) { - PHPeclipsePlugin.log(e); - } - } - } - currentFunction = null; - if (currentSegment != null) { - currentSegment = (PHPSegmentWithChildren) currentSegment.getParent(); - } - } - -/** - * A MethodDeclarator. - * [&] IDENTIFIER(parameters ...). - * @return a function description for the outline - */ - static final public PHPFunctionDeclaration MethodDeclarator() throws ParseException { - final Token identifier; - final StringBuffer methodDeclaration = new StringBuffer(); - final Hashtable formalParameters; - final int pos = jj_input_stream.getPosition(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - jj_consume_token(BIT_AND); - methodDeclaration.append("&"); - break; - default: - jj_la1[21] = jj_gen; - ; - } - identifier = jj_consume_token(IDENTIFIER); - formalParameters = FormalParameters(); - methodDeclaration.append(identifier); - {if (true) return new PHPFunctionDeclaration(currentSegment,methodDeclaration.toString(),pos,formalParameters);} - throw new Error("Missing return statement in function"); - } - -/** - * FormalParameters follows method identifier. - * (FormalParameter()) - */ - static final public Hashtable FormalParameters() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer("("); - PHPVarDeclaration var; - final Hashtable parameters = new Hashtable(); - try { - jj_consume_token(LPAREN); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOLLAR: - case BIT_AND: - case DOLLAR_ID: - var = FormalParameter(); - parameters.put(var.getVariable().getName(),var); - label_7: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[22] = jj_gen; - break label_7; - } - jj_consume_token(COMMA); - var = FormalParameter(); - parameters.put(var.getVariable().getName(),var); - } - break; - default: - jj_la1[23] = jj_gen; - ; - } - try { - jj_consume_token(RPAREN); - } catch (ParseException e) { - errorMessage = "')' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - {if (true) return parameters;} - throw new Error("Missing return statement in function"); - } - -/** - * A formal parameter. - * $varname[=value] (,$varname[=value]) - */ - static final public PHPVarDeclaration FormalParameter() throws ParseException { - final PHPVarDeclaration variableDeclaration; - Token token = null; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - token = jj_consume_token(BIT_AND); - break; - default: - jj_la1[24] = jj_gen; - ; - } - variableDeclaration = VariableDeclarator(); - if (token != null) { - variableDeclaration.getVariable().setReference(true); - } - {if (true) return variableDeclaration;} - throw new Error("Missing return statement in function"); - } - - static final public String Type() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STRING: - jj_consume_token(STRING); - {if (true) return "string";} - break; - case BOOL: - jj_consume_token(BOOL); - {if (true) return "bool";} - break; - case BOOLEAN: - jj_consume_token(BOOLEAN); - {if (true) return "boolean";} - break; - case REAL: - jj_consume_token(REAL); - {if (true) return "real";} - break; - case DOUBLE: - jj_consume_token(DOUBLE); - {if (true) return "double";} - break; - case FLOAT: - jj_consume_token(FLOAT); - {if (true) return "float";} - break; - case INT: - jj_consume_token(INT); - {if (true) return "int";} - break; - case INTEGER: - jj_consume_token(INTEGER); - {if (true) return "integer";} - break; - case OBJECT: - jj_consume_token(OBJECT); - {if (true) return "object";} - break; - default: - jj_la1[25] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String Expression() throws ParseException { - final String expr; - final String assignOperator; - final String expr2; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PRINT: - expr = PrintExpression(); - {if (true) return expr;} - break; - case LIST: - expr = ListExpression(); - {if (true) return expr;} - break; - default: - jj_la1[26] = jj_gen; - if (jj_2_3(2147483647)) { - expr = varAssignation(); - {if (true) return expr;} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - expr = ConditionalExpression(); - {if (true) return expr;} - break; - default: - jj_la1[27] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - } - throw new Error("Missing return statement in function"); - } - -/** - * A Variable assignation. - * varName (an assign operator) any expression - */ - static final public String varAssignation() throws ParseException { - String varName,assignOperator,expr2; - PHPVarDeclaration variable; - final int pos = SimpleCharStream.getPosition(); - varName = VariableDeclaratorId(); - assignOperator = AssignmentOperator(); - try { - expr2 = Expression(); - } catch (ParseException e) { - if (errorMessage != null) { - {if (true) throw e;} - } - errorMessage = "expression expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - {if (true) return varName + assignOperator + expr2;} - throw new Error("Missing return statement in function"); - } - - static final public String AssignmentOperator() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ASSIGN: - jj_consume_token(ASSIGN); - {if (true) return "=";} - break; - case STARASSIGN: - jj_consume_token(STARASSIGN); - {if (true) return "*=";} - break; - case SLASHASSIGN: - jj_consume_token(SLASHASSIGN); - {if (true) return "/=";} - break; - case REMASSIGN: - jj_consume_token(REMASSIGN); - {if (true) return "%=";} - break; - case PLUSASSIGN: - jj_consume_token(PLUSASSIGN); - {if (true) return "+=";} - break; - case MINUSASSIGN: - jj_consume_token(MINUSASSIGN); - {if (true) return "-=";} - break; - case LSHIFTASSIGN: - jj_consume_token(LSHIFTASSIGN); - {if (true) return "<<=";} - break; - case RSIGNEDSHIFTASSIGN: - jj_consume_token(RSIGNEDSHIFTASSIGN); - {if (true) return ">>=";} - break; - case ANDASSIGN: - jj_consume_token(ANDASSIGN); - {if (true) return "&=";} - break; - case XORASSIGN: - jj_consume_token(XORASSIGN); - {if (true) return "|=";} - break; - case ORASSIGN: - jj_consume_token(ORASSIGN); - {if (true) return "|=";} - break; - case DOTASSIGN: - jj_consume_token(DOTASSIGN); - {if (true) return ".=";} - break; - case TILDEEQUAL: - jj_consume_token(TILDEEQUAL); - {if (true) return "~=";} - break; - default: - jj_la1[28] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String ConditionalExpression() throws ParseException { - final String expr; - String expr2 = null; - String expr3 = null; - expr = ConditionalOrExpression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case HOOK: - jj_consume_token(HOOK); - expr2 = Expression(); - jj_consume_token(COLON); - expr3 = ConditionalExpression(); - break; - default: - jj_la1[29] = jj_gen; - ; - } - if (expr3 == null) { - {if (true) return expr;} - } else { - {if (true) return expr + "?" + expr2 + ":" + expr3;} - } - throw new Error("Missing return statement in function"); - } - - static final public String ConditionalOrExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = ConditionalAndExpression(); - buff.append(expr); - label_8: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case _ORL: - case SC_OR: - ; - break; - default: - jj_la1[30] = jj_gen; - break label_8; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SC_OR: - operator = jj_consume_token(SC_OR); - break; - case _ORL: - operator = jj_consume_token(_ORL); - break; - default: - jj_la1[31] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = ConditionalAndExpression(); - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ConditionalAndExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = ConcatExpression(); - buff.append(expr); - label_9: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case _ANDL: - case SC_AND: - ; - break; - default: - jj_la1[32] = jj_gen; - break label_9; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SC_AND: - operator = jj_consume_token(SC_AND); - break; - case _ANDL: - operator = jj_consume_token(_ANDL); - break; - default: - jj_la1[33] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = ConcatExpression(); - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ConcatExpression() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer(); - expr = InclusiveOrExpression(); - buff.append(expr); - label_10: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case DOT: - ; - break; - default: - jj_la1[34] = jj_gen; - break label_10; - } - jj_consume_token(DOT); - expr = InclusiveOrExpression(); - buff.append(".").append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String InclusiveOrExpression() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer(); - expr = ExclusiveOrExpression(); - buff.append(expr); - label_11: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_OR: - ; - break; - default: - jj_la1[35] = jj_gen; - break label_11; - } - jj_consume_token(BIT_OR); - expr = ExclusiveOrExpression(); - buff.append("|").append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ExclusiveOrExpression() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer(); - expr = AndExpression(); - buff.append(expr); - label_12: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case XOR: - ; - break; - default: - jj_la1[36] = jj_gen; - break label_12; - } - jj_consume_token(XOR); - expr = AndExpression(); - buff.append("^"); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String AndExpression() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer(); - expr = EqualityExpression(); - buff.append(expr); - label_13: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - ; - break; - default: - jj_la1[37] = jj_gen; - break label_13; - } - jj_consume_token(BIT_AND); - expr = EqualityExpression(); - buff.append("&").append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String EqualityExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = RelationalExpression(); - buff.append(expr); - label_14: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EQ: - case NE: - case DIF: - case BANGDOUBLEEQUAL: - case TRIPLEEQUAL: - ; - break; - default: - jj_la1[38] = jj_gen; - break label_14; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case EQ: - operator = jj_consume_token(EQ); - break; - case DIF: - operator = jj_consume_token(DIF); - break; - case NE: - operator = jj_consume_token(NE); - break; - case BANGDOUBLEEQUAL: - operator = jj_consume_token(BANGDOUBLEEQUAL); - break; - case TRIPLEEQUAL: - operator = jj_consume_token(TRIPLEEQUAL); - break; - default: - jj_la1[39] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - try { - expr = RelationalExpression(); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected after '"+operator.image+"'"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String RelationalExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = ShiftExpression(); - buff.append(expr); - label_15: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case GT: - case LT: - case LE: - case GE: - ; - break; - default: - jj_la1[40] = jj_gen; - break label_15; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LT: - operator = jj_consume_token(LT); - break; - case GT: - operator = jj_consume_token(GT); - break; - case LE: - operator = jj_consume_token(LE); - break; - case GE: - operator = jj_consume_token(GE); - break; - default: - jj_la1[41] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = ShiftExpression(); - buff.append(operator.image).append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ShiftExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = AdditiveExpression(); - buff.append(expr); - label_16: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LSHIFT: - case RSIGNEDSHIFT: - case RUNSIGNEDSHIFT: - ; - break; - default: - jj_la1[42] = jj_gen; - break label_16; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LSHIFT: - operator = jj_consume_token(LSHIFT); - break; - case RSIGNEDSHIFT: - operator = jj_consume_token(RSIGNEDSHIFT); - break; - case RUNSIGNEDSHIFT: - operator = jj_consume_token(RUNSIGNEDSHIFT); - break; - default: - jj_la1[43] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = AdditiveExpression(); - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String AdditiveExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - expr = MultiplicativeExpression(); - buff.append(expr); - label_17: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - case MINUS: - ; - break; - default: - jj_la1[44] = jj_gen; - break label_17; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - operator = jj_consume_token(PLUS); - break; - case MINUS: - operator = jj_consume_token(MINUS); - break; - default: - jj_la1[45] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = MultiplicativeExpression(); - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String MultiplicativeExpression() throws ParseException { - String expr; - Token operator; - final StringBuffer buff = new StringBuffer(); - try { - expr = UnaryExpression(); - } catch (ParseException e) { - errorMessage = "unexpected token '"+e.currentToken.next.image+"'"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - buff.append(expr); - label_18: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STAR: - case SLASH: - case REM: - ; - break; - default: - jj_la1[46] = jj_gen; - break label_18; - } - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STAR: - operator = jj_consume_token(STAR); - break; - case SLASH: - operator = jj_consume_token(SLASH); - break; - case REM: - operator = jj_consume_token(REM); - break; - default: - jj_la1[47] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = UnaryExpression(); - buff.append(operator.image); - buff.append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - -/** - * An unary expression starting with @, & or nothing - */ - static final public String UnaryExpression() throws ParseException { - final String expr; - final Token token; - final StringBuffer buff = new StringBuffer(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BIT_AND: - token = jj_consume_token(BIT_AND); - expr = UnaryExpressionNoPrefix(); - if (token == null) { - {if (true) return expr;} - } - {if (true) return token.image + expr;} - break; - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case DOLLAR_ID: - label_19: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AT: - ; - break; - default: - jj_la1[48] = jj_gen; - break label_19; - } - jj_consume_token(AT); - buff.append("@"); - } - expr = UnaryExpressionNoPrefix(); - {if (true) return buff.append(expr).toString();} - break; - default: - jj_la1[49] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String UnaryExpressionNoPrefix() throws ParseException { - final String expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - case MINUS: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PLUS: - token = jj_consume_token(PLUS); - break; - case MINUS: - token = jj_consume_token(MINUS); - break; - default: - jj_la1[50] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = UnaryExpression(); - {if (true) return token.image + expr;} - break; - case INCR: - case DECR: - expr = PreIncDecExpression(); - {if (true) return expr;} - break; - case ARRAY: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case DOLLAR: - case BANG: - case DOLLAR_ID: - expr = UnaryExpressionNotPlusMinus(); - {if (true) return expr;} - break; - default: - jj_la1[51] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String PreIncDecExpression() throws ParseException { -final String expr; -final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INCR: - token = jj_consume_token(INCR); - break; - case DECR: - token = jj_consume_token(DECR); - break; - default: - jj_la1[52] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - expr = PrimaryExpression(); - {if (true) return token.image + expr;} - throw new Error("Missing return statement in function"); - } - - static final public String UnaryExpressionNotPlusMinus() throws ParseException { - final String expr; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case BANG: - jj_consume_token(BANG); - expr = UnaryExpression(); - {if (true) return "!" + expr;} - break; - default: - jj_la1[53] = jj_gen; - if (jj_2_4(2147483647)) { - expr = CastExpression(); - {if (true) return expr;} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case NEW: - case IDENTIFIER: - case DOLLAR: - case DOLLAR_ID: - expr = PostfixExpression(); - {if (true) return expr;} - break; - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - expr = Literal(); - {if (true) return expr;} - break; - case LPAREN: - jj_consume_token(LPAREN); - expr = Expression(); - try { - jj_consume_token(RPAREN); - } catch (ParseException e) { - errorMessage = "')' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - {if (true) return "("+expr+")";} - break; - default: - jj_la1[54] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - } - throw new Error("Missing return statement in function"); - } - - static final public String CastExpression() throws ParseException { -final String type, expr; - jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - type = Type(); - break; - case ARRAY: - jj_consume_token(ARRAY); - type = "array"; - break; - default: - jj_la1[55] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - jj_consume_token(RPAREN); - expr = UnaryExpression(); - {if (true) return "(" + type + ")" + expr;} - throw new Error("Missing return statement in function"); - } - - static final public String PostfixExpression() throws ParseException { - final String expr; - Token operator = null; - expr = PrimaryExpression(); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INCR: - case DECR: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INCR: - operator = jj_consume_token(INCR); - break; - case DECR: - operator = jj_consume_token(DECR); - break; - default: - jj_la1[56] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[57] = jj_gen; - ; - } - if (operator == null) { - {if (true) return expr;} - } - {if (true) return expr + operator.image;} - throw new Error("Missing return statement in function"); - } - - static final public String PrimaryExpression() throws ParseException { - final Token identifier; - String expr; - final StringBuffer buff = new StringBuffer(); - if (jj_2_5(2)) { - identifier = jj_consume_token(IDENTIFIER); - jj_consume_token(STATICCLASSACCESS); - expr = ClassIdentifier(); - buff.append(identifier.image).append("::").append(expr); - label_20: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASSACCESS: - case LPAREN: - case LBRACKET: - ; - break; - default: - jj_la1[58] = jj_gen; - break label_20; - } - expr = PrimarySuffix(); - buff.append(expr); - } - {if (true) return buff.toString();} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NEW: - case IDENTIFIER: - case DOLLAR: - case DOLLAR_ID: - expr = PrimaryPrefix(); - buff.append(expr); - label_21: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASSACCESS: - case LPAREN: - case LBRACKET: - ; - break; - default: - jj_la1[59] = jj_gen; - break label_21; - } - expr = PrimarySuffix(); - buff.append(expr); - } - {if (true) return buff.toString();} - break; - case ARRAY: - expr = ArrayDeclarator(); - {if (true) return "array" + expr;} - break; - default: - jj_la1[60] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - throw new Error("Missing return statement in function"); - } - - static final public String ArrayDeclarator() throws ParseException { - final String expr; - jj_consume_token(ARRAY); - expr = ArrayInitializer(); - {if (true) return "array" + expr;} - throw new Error("Missing return statement in function"); - } - - static final public String PrimaryPrefix() throws ParseException { - final String expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - {if (true) return token.image;} - break; - case NEW: - jj_consume_token(NEW); - expr = ClassIdentifier(); - {if (true) return "new " + expr;} - break; - case DOLLAR: - case DOLLAR_ID: - expr = VariableDeclaratorId(); - {if (true) return expr;} - break; - default: - jj_la1[61] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String classInstantiation() throws ParseException { - String expr; - final StringBuffer buff = new StringBuffer("new "); - jj_consume_token(NEW); - expr = ClassIdentifier(); - buff.append(expr); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case NEW: - case IDENTIFIER: - case DOLLAR: - case DOLLAR_ID: - expr = PrimaryExpression(); - buff.append(expr); - break; - default: - jj_la1[62] = jj_gen; - ; - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - - static final public String ClassIdentifier() throws ParseException { - final String expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - token = jj_consume_token(IDENTIFIER); - {if (true) return token.image;} - break; - case DOLLAR: - case DOLLAR_ID: - expr = VariableDeclaratorId(); - {if (true) return expr;} - break; - default: - jj_la1[63] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String PrimarySuffix() throws ParseException { - final String expr; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LPAREN: - expr = Arguments(); - {if (true) return expr;} - break; - case CLASSACCESS: - case LBRACKET: - expr = VariableSuffix(); - {if (true) return expr;} - break; - default: - jj_la1[64] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String VariableSuffix() throws ParseException { - String expr = null; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case CLASSACCESS: - jj_consume_token(CLASSACCESS); - try { - expr = VariableName(); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - {if (true) return "->" + expr;} - break; - case LBRACKET: - jj_consume_token(LBRACKET); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - expr = Expression(); - break; - case STRING: - case OBJECT: - case BOOL: - case BOOLEAN: - case REAL: - case DOUBLE: - case FLOAT: - case INT: - case INTEGER: - expr = Type(); - break; - default: - jj_la1[65] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - break; - default: - jj_la1[66] = jj_gen; - ; - } - try { - jj_consume_token(RBRACKET); - } catch (ParseException e) { - errorMessage = "']' expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - if(expr == null) { - {if (true) return "[]";} - } - {if (true) return "[" + expr + "]";} - break; - default: - jj_la1[67] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String Literal() throws ParseException { - final String expr; - final Token token; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case INTEGER_LITERAL: - token = jj_consume_token(INTEGER_LITERAL); - {if (true) return token.image;} - break; - case FLOATING_POINT_LITERAL: - token = jj_consume_token(FLOATING_POINT_LITERAL); - {if (true) return token.image;} - break; - case STRING_LITERAL: - token = jj_consume_token(STRING_LITERAL); - {if (true) return token.image;} - break; - case TRUE: - case FALSE: - expr = BooleanLiteral(); - {if (true) return expr;} - break; - case NULL: - jj_consume_token(NULL); - {if (true) return "null";} - break; - default: - jj_la1[68] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String BooleanLiteral() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case TRUE: - jj_consume_token(TRUE); - {if (true) return "true";} - break; - case FALSE: - jj_consume_token(FALSE); - {if (true) return "false";} - break; - default: - jj_la1[69] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - throw new Error("Missing return statement in function"); - } - - static final public String Arguments() throws ParseException { -String expr = null; - jj_consume_token(LPAREN); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case ARRAY: - case LIST: - case PRINT: - case NEW: - case NULL: - case TRUE: - case FALSE: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - expr = ArgumentList(); - break; - default: - jj_la1[70] = jj_gen; - ; - } - try { - jj_consume_token(RPAREN); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - if (expr == null) { - {if (true) return "()";} - } - {if (true) return "(" + expr + ")";} - throw new Error("Missing return statement in function"); - } - - static final public String ArgumentList() throws ParseException { -String expr; -final StringBuffer buff = new StringBuffer(); - expr = Expression(); - buff.append(expr); - label_22: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case COMMA: - ; - break; - default: - jj_la1[71] = jj_gen; - break label_22; - } - jj_consume_token(COMMA); - try { - expr = Expression(); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - buff.append(",").append(expr); - } - {if (true) return buff.toString();} - throw new Error("Missing return statement in function"); - } - -/** - * A Statement without break. - */ - static final public void StatementNoBreak() throws ParseException { - if (jj_2_6(2)) { - Expression(); - try { - jj_consume_token(SEMICOLON); - } catch (ParseException e) { - if (e.currentToken.next.kind != 4) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - } - } else if (jj_2_7(2)) { - LabeledStatement(); - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - Block(); - break; - case SEMICOLON: - EmptyStatement(); - break; - case ARRAY: - case NEW: - case IDENTIFIER: - case DOLLAR: - case INCR: - case DECR: - case DOLLAR_ID: - StatementExpression(); - try { - jj_consume_token(SEMICOLON); - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; - errorLevel = ERROR; - errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = jj_input_stream.getPosition() + 1; - {if (true) throw e;} - } - break; - case SWITCH: - SwitchStatement(); - break; - case IF: - IfStatement(); - break; - case WHILE: - WhileStatement(); - break; - case DO: - DoStatement(); - break; - case FOR: - ForStatement(); - break; - case FOREACH: - ForeachStatement(); - break; - case CONTINUE: - ContinueStatement(); - break; - case RETURN: - ReturnStatement(); - break; - case ECHO: - EchoStatement(); - break; - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case AT: - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case AT: - jj_consume_token(AT); - break; - default: - jj_la1[72] = jj_gen; - ; - } - IncludeStatement(); - break; - case STATIC: - StaticStatement(); - break; - case GLOBAL: - GlobalStatement(); - break; - default: - jj_la1[73] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - } - -/** - * A Normal statement. - */ - static final public void Statement() throws ParseException { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IF: - case ARRAY: - case LIST: - case PRINT: - case ECHO: - case INCLUDE: - case REQUIRE: - case INCLUDE_ONCE: - case REQUIRE_ONCE: - case GLOBAL: - case STATIC: - case CONTINUE: - case DO: - case FOR: - case NEW: - case NULL: - case RETURN: - case SWITCH: - case TRUE: - case FALSE: - case WHILE: - case FOREACH: - case INTEGER_LITERAL: - case FLOATING_POINT_LITERAL: - case STRING_LITERAL: - case IDENTIFIER: - case LPAREN: - case LBRACE: - case SEMICOLON: - case AT: - case DOLLAR: - case BANG: - case INCR: - case DECR: - case PLUS: - case MINUS: - case BIT_AND: - case DOLLAR_ID: - StatementNoBreak(); - break; - case BREAK: - BreakStatement(); - break; - default: - jj_la1[74] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - -/** - * An html block inside a php syntax. - */ - static final public void htmlBlock() throws ParseException { - jj_consume_token(PHPEND); - label_23: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPECHOSTART: - ; - break; - default: - jj_la1[75] = jj_gen; - break label_23; - } - phpEchoBlock(); - } - try { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case PHPSTARTLONG: - jj_consume_token(PHPSTARTLONG); - break; - case PHPSTARTSHORT: - jj_consume_token(PHPSTARTSHORT); - break; - default: - jj_la1[76] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } catch (ParseException e) { - errorMessage = "End of file unexpected, ' 100) { - jj_gc = 0; - for (int i = 0; i < jj_2_rtns.length; i++) { - JJCalls c = jj_2_rtns[i]; - while (c != null) { - if (c.gen < jj_gen) c.first = null; - c = c.next; - } - } - } - return token; - } - token = oldToken; - jj_kind = kind; - throw generateParseException(); - } - - static final private boolean jj_scan_token(int kind) { - if (jj_scanpos == jj_lastpos) { - jj_la--; - if (jj_scanpos.next == null) { - jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); - } else { - jj_lastpos = jj_scanpos = jj_scanpos.next; - } - } else { - jj_scanpos = jj_scanpos.next; - } - if (jj_rescan) { - int i = 0; Token tok = token; - while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } - if (tok != null) jj_add_error_token(kind, i); - } - return (jj_scanpos.kind != kind); - } - - static final public Token getNextToken() { - if (token.next != null) token = token.next; - else token = token.next = token_source.getNextToken(); - jj_ntk = -1; - jj_gen++; - return token; - } - - static final public Token getToken(int index) { - Token t = lookingAhead ? jj_scanpos : token; - for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); - } - return t; - } - - static final private int jj_ntk() { - if ((jj_nt=token.next) == null) - return (jj_ntk = (token.next=token_source.getNextToken()).kind); - else - return (jj_ntk = jj_nt.kind); - } - - static private java.util.Vector jj_expentries = new java.util.Vector(); - static private int[] jj_expentry; - static private int jj_kind = -1; - static private int[] jj_lasttokens = new int[100]; - static private int jj_endpos; - - static private void jj_add_error_token(int kind, int pos) { - if (pos >= 100) return; - if (pos == jj_endpos + 1) { - jj_lasttokens[jj_endpos++] = kind; - } else if (jj_endpos != 0) { - jj_expentry = new int[jj_endpos]; - for (int i = 0; i < jj_endpos; i++) { - jj_expentry[i] = jj_lasttokens[i]; - } - boolean exists = false; - for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) { - int[] oldentry = (int[])(enum.nextElement()); - if (oldentry.length == jj_expentry.length) { - exists = true; - for (int i = 0; i < jj_expentry.length; i++) { - if (oldentry[i] != jj_expentry[i]) { - exists = false; - break; - } - } - if (exists) break; - } - } - if (!exists) jj_expentries.addElement(jj_expentry); - if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; - } - } - - static public ParseException generateParseException() { - jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[141]; - for (int i = 0; i < 141; i++) { - la1tokens[i] = false; - } - if (jj_kind >= 0) { - la1tokens[jj_kind] = true; - jj_kind = -1; - } - for (int i = 0; i < 126; i++) { - if (jj_la1[i] == jj_gen) { - for (int j = 0; j < 32; j++) { - if ((jj_la1_0[i] & (1< jj_gen) { - jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; - switch (i) { - case 0: jj_3_1(); break; - case 1: jj_3_2(); break; - case 2: jj_3_3(); break; - case 3: jj_3_4(); break; - case 4: jj_3_5(); break; - case 5: jj_3_6(); break; - case 6: jj_3_7(); break; - case 7: jj_3_8(); break; - } - } - p = p.next; - } while (p != null); - } - jj_rescan = false; - } - - static final private void jj_save(int index, int xla) { - JJCalls p = jj_2_rtns[index]; - while (p.gen > jj_gen) { - if (p.next == null) { p = p.next = new JJCalls(); break; } - p = p.next; - } - p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; - } - - static final class JJCalls { - int gen; - Token first; - int arg; - JJCalls next; - } - -}