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
index 931b4b3..bc7c112 100644
--- a/net.sourceforge.phpeclipse/src/test/PHPParser.java
+++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java
@@ -8,22 +8,19 @@ 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.PHPOutlineInfo;
-import net.sourceforge.phpdt.internal.compiler.parser.PHPSegmentWithChildren;
-import net.sourceforge.phpdt.internal.compiler.parser.PHPFunctionDeclaration;
-import net.sourceforge.phpdt.internal.compiler.parser.PHPClassDeclaration;
-import net.sourceforge.phpdt.internal.compiler.parser.PHPVarDeclaration;
-import net.sourceforge.phpdt.internal.compiler.parser.PHPReqIncDeclaration;
+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
+ * 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
@@ -33,12 +30,15 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
/** The file that is parsed. */
private static IFile fileToParse;
- /** The current segment */
+ /** 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$
- PHPOutlineInfo outlineInfo;
+ static PHPOutlineInfo outlineInfo;
+
+ private static PHPFunctionDeclaration currentFunction;
+ private static boolean assigning;
/** The error level of the current ParseException. */
private static int errorLevel = ERROR;
@@ -48,13 +48,20 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
private static int errorStart = -1;
private static int errorEnd = -1;
- public PHPParser() {
- }
+ //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;
@@ -67,6 +74,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(new StringReader(strEval));
+ astStack = new AstNode[AstStackIncrement];
phpTest();
}
@@ -77,11 +85,10 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
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.
- } catch (ParseException e) {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
}
@@ -91,6 +98,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
phpFile();
}
@@ -102,6 +110,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
try {
parse();
} catch (ParseException e) {
@@ -226,6 +235,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
try {
parse();
} catch (ParseException e) {
@@ -255,7 +265,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
}
- public static final void parse() throws ParseException {
+ private static final void parse() throws ParseException {
phpFile();
}
@@ -278,6 +288,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case IF:
case ARRAY:
case BREAK:
+ case LIST:
case PRINT:
case ECHO:
case INCLUDE:
@@ -286,7 +297,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case REQUIRE_ONCE:
case GLOBAL:
case STATIC:
- case LIST:
case CONTINUE:
case DO:
case FOR:
@@ -324,27 +334,25 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
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 = expression [;]?>
+ * or
+ * or somephpcode ?>
+ */
static final public void PhpBlock() throws ParseException {
final int start = jj_input_stream.getPosition();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PHPECHOSTART:
- jj_consume_token(PHPECHOSTART);
- Expression();
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SEMICOLON:
- jj_consume_token(SEMICOLON);
- break;
- default:
- jj_la1[1] = jj_gen;
- ;
- }
- jj_consume_token(PHPEND);
+ phpEchoBlock();
break;
case PHPSTARTSHORT:
case PHPSTARTLONG:
@@ -354,6 +362,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case IF:
case ARRAY:
case BREAK:
+ case LIST:
case PRINT:
case ECHO:
case INCLUDE:
@@ -362,7 +371,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case REQUIRE_ONCE:
case GLOBAL:
case STATIC:
- case LIST:
case CONTINUE:
case DO:
case FOR:
@@ -411,13 +419,13 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
break;
default:
- jj_la1[2] = jj_gen;
+ jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
- jj_la1[3] = jj_gen;
+ jj_la1[2] = jj_gen;
;
}
Php();
@@ -432,12 +440,26 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
break;
default:
- jj_la1[4] = jj_gen;
+ 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) {
@@ -447,6 +469,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case IF:
case ARRAY:
case BREAK:
+ case LIST:
case PRINT:
case ECHO:
case INCLUDE:
@@ -455,7 +478,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
case REQUIRE_ONCE:
case GLOBAL:
case STATIC:
- case LIST:
case CONTINUE:
case DO:
case FOR:
@@ -504,8 +526,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
} 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;
+ 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) {
@@ -570,6 +592,9 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
}
+/**
+ * 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:
@@ -585,10 +610,14 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
}
+/**
+ * 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);
}
@@ -611,7 +640,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
try {
jj_consume_token(SEMICOLON);
} catch (ParseException e) {
- errorMessage = "';' expected after variable declaration";
+ 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;
@@ -620,8 +649,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
}
static final public PHPVarDeclaration VariableDeclarator() throws ParseException {
- final String varName;
- final String varValue;
+ final String varName, varValue;
final int pos = jj_input_stream.getPosition();
varName = VariableDeclaratorId();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -651,7 +679,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
final StringBuffer buff = new StringBuffer();
try {
expr = Variable();
- buff.append(expr);
+ buff.append(expr);
label_5:
while (true) {
if (jj_2_1(2)) {
@@ -660,7 +688,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
break label_5;
}
expr = VariableSuffix();
- buff.append(expr);
+ buff.append(expr);
}
{if (true) return buff.toString();}
} catch (ParseException e) {
@@ -689,15 +717,21 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
jj_la1[11] = jj_gen;
;
}
- if (expr == null) {
- {if (true) return token.image;}
+ 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;}
+ {if (true) return expr;}
break;
default:
jj_la1[12] = jj_gen;
@@ -730,6 +764,12 @@ final Token token;
;
}
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 + "}";}
@@ -737,11 +777,23 @@ final Token token;
case DOLLAR:
jj_consume_token(DOLLAR);
expr = VariableName();
- {if (true) return "$" + expr;}
+ 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 (true) return token.image + expr;}
+ 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;
@@ -837,8 +889,8 @@ final StringBuffer buff = new StringBuffer("(");
jj_consume_token(LPAREN);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ARRAY:
- case PRINT:
case LIST:
+ case PRINT:
case NEW:
case NULL:
case TRUE:
@@ -875,17 +927,32 @@ final StringBuffer buff = new StringBuffer("(");
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;
- jj_consume_token(FUNCTION);
+ Token functionToken;
+ functionToken = jj_consume_token(FUNCTION);
try {
functionDeclaration = MethodDeclarator();
+ outlineInfo.addVariable(functionDeclaration.getName());
} catch (ParseException e) {
if (errorMessage != null) {
{if (true) throw e;}
@@ -900,20 +967,39 @@ final StringBuffer buff = new StringBuffer("(");
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 contains [&] IDENTIFIER(parameters ...).
+ * 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 String formalParameters;
+ final Hashtable formalParameters;
final int pos = jj_input_stream.getPosition();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case BIT_AND:
@@ -921,24 +1007,29 @@ final StringBuffer buff = new StringBuffer("(");
methodDeclaration.append("&");
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[21] = jj_gen;
;
}
identifier = jj_consume_token(IDENTIFIER);
- methodDeclaration.append(identifier);
formalParameters = FormalParameters();
- methodDeclaration.append(formalParameters);
- {if (true) return new PHPFunctionDeclaration(currentSegment,methodDeclaration.toString(),pos);}
+ methodDeclaration.append(identifier);
+ {if (true) return new PHPFunctionDeclaration(currentSegment,methodDeclaration.toString(),pos,formalParameters);}
throw new Error("Missing return statement in function");
}
- static final public String FormalParameters() throws ParseException {
+/**
+ * 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 = "Formal parameter expected after function identifier";
+ 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;
@@ -948,8 +1039,8 @@ final StringBuffer buff = new StringBuffer("(");
case DOLLAR:
case BIT_AND:
case DOLLAR_ID:
- expr = FormalParameter();
- buff.append(expr);
+ var = FormalParameter();
+ parameters.put(var.getVariable().getName(),var);
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -957,16 +1048,16 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[22] = jj_gen;
break label_7;
}
jj_consume_token(COMMA);
- expr = FormalParameter();
- buff.append(",").append(expr);
+ var = FormalParameter();
+ parameters.put(var.getVariable().getName(),var);
}
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[23] = jj_gen;
;
}
try {
@@ -978,26 +1069,30 @@ final StringBuffer buff = new StringBuffer("(");
errorEnd = jj_input_stream.getPosition() + 1;
{if (true) throw e;}
}
- buff.append(")");
- {if (true) return buff.toString();}
+ {if (true) return parameters;}
throw new Error("Missing return statement in function");
}
- static final public String FormalParameter() throws ParseException {
+/**
+ * A formal parameter.
+ * $varname[=value] (,$varname[=value])
+ */
+ static final public PHPVarDeclaration FormalParameter() throws ParseException {
final PHPVarDeclaration variableDeclaration;
- final StringBuffer buff = new StringBuffer();
+ Token token = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case BIT_AND:
- jj_consume_token(BIT_AND);
- buff.append("&");
+ token = jj_consume_token(BIT_AND);
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[24] = jj_gen;
;
}
variableDeclaration = VariableDeclarator();
- buff.append(variableDeclaration.toString());
- {if (true) return buff.toString();}
+ if (token != null) {
+ variableDeclaration.getVariable().setReference(true);
+ }
+ {if (true) return variableDeclaration;}
throw new Error("Missing return statement in function");
}
@@ -1005,42 +1100,42 @@ final StringBuffer buff = new StringBuffer("(");
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case STRING:
jj_consume_token(STRING);
- {if (true) return "string";}
+ {if (true) return "string";}
break;
case BOOL:
jj_consume_token(BOOL);
- {if (true) return "bool";}
+ {if (true) return "bool";}
break;
case BOOLEAN:
jj_consume_token(BOOLEAN);
- {if (true) return "boolean";}
+ {if (true) return "boolean";}
break;
case REAL:
jj_consume_token(REAL);
- {if (true) return "real";}
+ {if (true) return "real";}
break;
case DOUBLE:
jj_consume_token(DOUBLE);
- {if (true) return "double";}
+ {if (true) return "double";}
break;
case FLOAT:
jj_consume_token(FLOAT);
- {if (true) return "float";}
+ {if (true) return "float";}
break;
case INT:
jj_consume_token(INT);
- {if (true) return "int";}
+ {if (true) return "int";}
break;
case INTEGER:
jj_consume_token(INTEGER);
- {if (true) return "integer";}
+ {if (true) return "integer";}
break;
case OBJECT:
jj_consume_token(OBJECT);
- {if (true) return "object";}
+ {if (true) return "object";}
break;
default:
- jj_la1[24] = jj_gen;
+ jj_la1[25] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1054,69 +1149,74 @@ final StringBuffer buff = new StringBuffer("(");
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PRINT:
expr = PrintExpression();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
case LIST:
expr = ListExpression();
- {if (true) return expr;}
+ {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 AT:
- case DOLLAR:
- case BANG:
- case INCR:
- case DECR:
- case PLUS:
- case MINUS:
- case BIT_AND:
- case DOLLAR_ID:
- expr = ConditionalExpression();
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case ASSIGN:
- case PLUSASSIGN:
- case MINUSASSIGN:
- case STARASSIGN:
- case SLASHASSIGN:
- case ANDASSIGN:
- case ORASSIGN:
- case XORASSIGN:
- case DOTASSIGN:
- case REMASSIGN:
- case TILDEEQUAL:
- case LSHIFTASSIGN:
- case RSIGNEDSHIFTASSIGN:
- assignOperator = AssignmentOperator();
- try {
- expr2 = Expression();
- {if (true) return expr + assignOperator + expr2;}
- } catch (ParseException e) {
+ 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;}
- }
- break;
- default:
- jj_la1[25] = jj_gen;
- ;
- }
- {if (true) return expr;}
- break;
- default:
- jj_la1[26] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
}
+ {if (true) return varName + assignOperator + expr2;}
throw new Error("Missing return statement in function");
}
@@ -1124,58 +1224,58 @@ final StringBuffer buff = new StringBuffer("(");
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ASSIGN:
jj_consume_token(ASSIGN);
- {if (true) return "=";}
+ {if (true) return "=";}
break;
case STARASSIGN:
jj_consume_token(STARASSIGN);
- {if (true) return "*=";}
+ {if (true) return "*=";}
break;
case SLASHASSIGN:
jj_consume_token(SLASHASSIGN);
- {if (true) return "/=";}
+ {if (true) return "/=";}
break;
case REMASSIGN:
jj_consume_token(REMASSIGN);
- {if (true) return "%=";}
+ {if (true) return "%=";}
break;
case PLUSASSIGN:
jj_consume_token(PLUSASSIGN);
- {if (true) return "+=";}
+ {if (true) return "+=";}
break;
case MINUSASSIGN:
jj_consume_token(MINUSASSIGN);
- {if (true) return "-=";}
+ {if (true) return "-=";}
break;
case LSHIFTASSIGN:
jj_consume_token(LSHIFTASSIGN);
- {if (true) return "<<=";}
+ {if (true) return "<<=";}
break;
case RSIGNEDSHIFTASSIGN:
jj_consume_token(RSIGNEDSHIFTASSIGN);
- {if (true) return ">>=";}
+ {if (true) return ">>=";}
break;
case ANDASSIGN:
jj_consume_token(ANDASSIGN);
- {if (true) return "&=";}
+ {if (true) return "&=";}
break;
case XORASSIGN:
jj_consume_token(XORASSIGN);
- {if (true) return "|=";}
+ {if (true) return "|=";}
break;
case ORASSIGN:
jj_consume_token(ORASSIGN);
- {if (true) return "|=";}
+ {if (true) return "|=";}
break;
case DOTASSIGN:
jj_consume_token(DOTASSIGN);
- {if (true) return ".=";}
+ {if (true) return ".=";}
break;
case TILDEEQUAL:
jj_consume_token(TILDEEQUAL);
- {if (true) return "~=";}
+ {if (true) return "~=";}
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[28] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1195,7 +1295,7 @@ final StringBuffer buff = new StringBuffer("(");
expr3 = ConditionalExpression();
break;
default:
- jj_la1[28] = jj_gen;
+ jj_la1[29] = jj_gen;
;
}
if (expr3 == null) {
@@ -1220,7 +1320,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[30] = jj_gen;
break label_8;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1231,7 +1331,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(_ORL);
break;
default:
- jj_la1[30] = jj_gen;
+ jj_la1[31] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1257,7 +1357,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[32] = jj_gen;
break label_9;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1268,7 +1368,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(_ANDL);
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1292,7 +1392,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[34] = jj_gen;
break label_10;
}
jj_consume_token(DOT);
@@ -1315,7 +1415,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[35] = jj_gen;
break label_11;
}
jj_consume_token(BIT_OR);
@@ -1338,7 +1438,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[35] = jj_gen;
+ jj_la1[36] = jj_gen;
break label_12;
}
jj_consume_token(XOR);
@@ -1362,7 +1462,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[36] = jj_gen;
+ jj_la1[37] = jj_gen;
break label_13;
}
jj_consume_token(BIT_AND);
@@ -1390,7 +1490,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[37] = jj_gen;
+ jj_la1[38] = jj_gen;
break label_14;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1410,7 +1510,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(TRIPLEEQUAL);
break;
default:
- jj_la1[38] = jj_gen;
+ jj_la1[39] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1446,7 +1546,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[39] = jj_gen;
+ jj_la1[40] = jj_gen;
break label_15;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1463,7 +1563,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(GE);
break;
default:
- jj_la1[40] = jj_gen;
+ jj_la1[41] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1489,7 +1589,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[41] = jj_gen;
+ jj_la1[42] = jj_gen;
break label_16;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1503,7 +1603,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(RUNSIGNEDSHIFT);
break;
default:
- jj_la1[42] = jj_gen;
+ jj_la1[43] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1529,7 +1629,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[43] = jj_gen;
+ jj_la1[44] = jj_gen;
break label_17;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1540,7 +1640,7 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(MINUS);
break;
default:
- jj_la1[44] = jj_gen;
+ jj_la1[45] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1575,7 +1675,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[45] = jj_gen;
+ jj_la1[46] = jj_gen;
break label_18;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1589,13 +1689,13 @@ final StringBuffer buff = new StringBuffer("(");
operator = jj_consume_token(REM);
break;
default:
- jj_la1[46] = jj_gen;
+ jj_la1[47] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
expr = UnaryExpression();
- buff.append(operator.image);
- buff.append(expr);
+ buff.append(operator.image);
+ buff.append(expr);
}
{if (true) return buff.toString();}
throw new Error("Missing return statement in function");
@@ -1642,7 +1742,7 @@ final StringBuffer buff = new StringBuffer("(");
;
break;
default:
- jj_la1[47] = jj_gen;
+ jj_la1[48] = jj_gen;
break label_19;
}
jj_consume_token(AT);
@@ -1652,7 +1752,7 @@ final StringBuffer buff = new StringBuffer("(");
{if (true) return buff.append(expr).toString();}
break;
default:
- jj_la1[48] = jj_gen;
+ jj_la1[49] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1673,7 +1773,7 @@ final StringBuffer buff = new StringBuffer("(");
token = jj_consume_token(MINUS);
break;
default:
- jj_la1[49] = jj_gen;
+ jj_la1[50] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1681,11 +1781,8 @@ final StringBuffer buff = new StringBuffer("(");
{if (true) return token.image + expr;}
break;
case INCR:
- expr = PreIncrementExpression();
- {if (true) return expr;}
- break;
case DECR:
- expr = PreDecrementExpression();
+ expr = PreIncDecExpression();
{if (true) return expr;}
break;
case ARRAY:
@@ -1705,26 +1802,30 @@ final StringBuffer buff = new StringBuffer("(");
{if (true) return expr;}
break;
default:
- jj_la1[50] = jj_gen;
+ jj_la1[51] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
- static final public String PreIncrementExpression() throws ParseException {
+ static final public String PreIncDecExpression() throws ParseException {
final String expr;
- jj_consume_token(INCR);
- expr = PrimaryExpression();
- {if (true) return "++"+expr;}
- throw new Error("Missing return statement in function");
- }
-
- static final public String PreDecrementExpression() throws ParseException {
-final String expr;
- jj_consume_token(DECR);
+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 "--"+expr;}
+ {if (true) return token.image + expr;}
throw new Error("Missing return statement in function");
}
@@ -1734,13 +1835,13 @@ final String expr;
case BANG:
jj_consume_token(BANG);
expr = UnaryExpression();
- {if (true) return "!" + expr;}
+ {if (true) return "!" + expr;}
break;
default:
- jj_la1[51] = jj_gen;
- if (jj_2_3(2147483647)) {
+ jj_la1[53] = jj_gen;
+ if (jj_2_4(2147483647)) {
expr = CastExpression();
- {if (true) return expr;}
+ {if (true) return expr;}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ARRAY:
@@ -1749,7 +1850,7 @@ final String expr;
case DOLLAR:
case DOLLAR_ID:
expr = PostfixExpression();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
case NULL:
case TRUE:
@@ -1758,7 +1859,7 @@ final String expr;
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
expr = Literal();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
case LPAREN:
jj_consume_token(LPAREN);
@@ -1768,14 +1869,14 @@ final String expr;
} catch (ParseException e) {
errorMessage = "')' expected";
errorLevel = ERROR;
- errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
- errorEnd = jj_input_stream.getPosition() + 1;
+ 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[52] = jj_gen;
+ jj_la1[54] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1787,7 +1888,27 @@ final String expr;
static final public String CastExpression() throws ParseException {
final String type, expr;
jj_consume_token(LPAREN);
- type = Type();
+ 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;}
@@ -1809,13 +1930,13 @@ final String type, expr;
operator = jj_consume_token(DECR);
break;
default:
- jj_la1[53] = jj_gen;
+ jj_la1[56] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
- jj_la1[54] = jj_gen;
+ jj_la1[57] = jj_gen;
;
}
if (operator == null) {
@@ -1829,7 +1950,7 @@ final String type, expr;
final Token identifier;
String expr;
final StringBuffer buff = new StringBuffer();
- if (jj_2_4(2)) {
+ if (jj_2_5(2)) {
identifier = jj_consume_token(IDENTIFIER);
jj_consume_token(STATICCLASSACCESS);
expr = ClassIdentifier();
@@ -1843,7 +1964,7 @@ final String type, expr;
;
break;
default:
- jj_la1[55] = jj_gen;
+ jj_la1[58] = jj_gen;
break label_20;
}
expr = PrimarySuffix();
@@ -1867,7 +1988,7 @@ final String type, expr;
;
break;
default:
- jj_la1[56] = jj_gen;
+ jj_la1[59] = jj_gen;
break label_21;
}
expr = PrimarySuffix();
@@ -1880,7 +2001,7 @@ final String type, expr;
{if (true) return "array" + expr;}
break;
default:
- jj_la1[57] = jj_gen;
+ jj_la1[60] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1902,20 +2023,20 @@ final String type, expr;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
token = jj_consume_token(IDENTIFIER);
- {if (true) return token.image;}
+ {if (true) return token.image;}
break;
case NEW:
jj_consume_token(NEW);
expr = ClassIdentifier();
- {if (true) return "new " + expr;}
+ {if (true) return "new " + expr;}
break;
case DOLLAR:
case DOLLAR_ID:
expr = VariableDeclaratorId();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
default:
- jj_la1[58] = jj_gen;
+ jj_la1[61] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1938,7 +2059,7 @@ final String type, expr;
buff.append(expr);
break;
default:
- jj_la1[59] = jj_gen;
+ jj_la1[62] = jj_gen;
;
}
{if (true) return buff.toString();}
@@ -1951,15 +2072,15 @@ final String type, expr;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IDENTIFIER:
token = jj_consume_token(IDENTIFIER);
- {if (true) return token.image;}
+ {if (true) return token.image;}
break;
case DOLLAR:
case DOLLAR_ID:
expr = VariableDeclaratorId();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
default:
- jj_la1[60] = jj_gen;
+ jj_la1[63] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1971,15 +2092,15 @@ final String type, expr;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LPAREN:
expr = Arguments();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
case CLASSACCESS:
case LBRACKET:
expr = VariableSuffix();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
default:
- jj_la1[61] = jj_gen;
+ jj_la1[64] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2006,12 +2127,21 @@ final String type, expr;
jj_consume_token(LBRACKET);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ARRAY:
- case PRINT:
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:
@@ -2026,10 +2156,49 @@ final String type, expr;
case MINUS:
case BIT_AND:
case DOLLAR_ID:
- expr = Expression();
+ 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[62] = jj_gen;
+ jj_la1[66] = jj_gen;
;
}
try {
@@ -2047,7 +2216,7 @@ final String type, expr;
{if (true) return "[" + expr + "]";}
break;
default:
- jj_la1[63] = jj_gen;
+ jj_la1[67] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2060,27 +2229,27 @@ final String type, expr;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
token = jj_consume_token(INTEGER_LITERAL);
- {if (true) return token.image;}
+ {if (true) return token.image;}
break;
case FLOATING_POINT_LITERAL:
token = jj_consume_token(FLOATING_POINT_LITERAL);
- {if (true) return token.image;}
+ {if (true) return token.image;}
break;
case STRING_LITERAL:
token = jj_consume_token(STRING_LITERAL);
- {if (true) return token.image;}
+ {if (true) return token.image;}
break;
case TRUE:
case FALSE:
expr = BooleanLiteral();
- {if (true) return expr;}
+ {if (true) return expr;}
break;
case NULL:
- expr = NullLiteral();
- {if (true) return expr;}
+ jj_consume_token(NULL);
+ {if (true) return "null";}
break;
default:
- jj_la1[64] = jj_gen;
+ jj_la1[68] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2091,33 +2260,27 @@ final String type, expr;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TRUE:
jj_consume_token(TRUE);
- {if (true) return "true";}
+ {if (true) return "true";}
break;
case FALSE:
jj_consume_token(FALSE);
- {if (true) return "false";}
+ {if (true) return "false";}
break;
default:
- jj_la1[65] = jj_gen;
+ jj_la1[69] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
- static final public String NullLiteral() throws ParseException {
- jj_consume_token(NULL);
- {if (true) return "null";}
- 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 PRINT:
case LIST:
+ case PRINT:
case NEW:
case NULL:
case TRUE:
@@ -2139,7 +2302,7 @@ String expr = null;
expr = ArgumentList();
break;
default:
- jj_la1[66] = jj_gen;
+ jj_la1[70] = jj_gen;
;
}
try {
@@ -2170,53 +2333,43 @@ final StringBuffer buff = new StringBuffer();
;
break;
default:
- jj_la1[67] = jj_gen;
+ jj_la1[71] = jj_gen;
break label_22;
}
jj_consume_token(COMMA);
try {
expr = Expression();
} catch (ParseException e) {
- errorMessage = "expression expected after a comma in argument list";
+ 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;
+ 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);
+ buff.append(",").append(expr);
}
{if (true) return buff.toString();}
throw new Error("Missing return statement in function");
}
/**
- * A Statement without break
+ * A Statement without break.
*/
static final public void StatementNoBreak() throws ParseException {
- if (jj_2_5(2)) {
+ if (jj_2_6(2)) {
Expression();
try {
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SEMICOLON:
- jj_consume_token(SEMICOLON);
- break;
- case PHPEND:
- jj_consume_token(PHPEND);
- PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);
- break;
- default:
- jj_la1[68] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
+ jj_consume_token(SEMICOLON);
} 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 (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_6(2)) {
+ } else if (jj_2_7(2)) {
LabeledStatement();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2237,10 +2390,10 @@ final StringBuffer buff = new StringBuffer();
try {
jj_consume_token(SEMICOLON);
} catch (ParseException e) {
- errorMessage = "';' expected after expression";
+ 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;
+ errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+ errorEnd = jj_input_stream.getPosition() + 1;
{if (true) throw e;}
}
break;
@@ -2281,7 +2434,7 @@ final StringBuffer buff = new StringBuffer();
jj_consume_token(AT);
break;
default:
- jj_la1[69] = jj_gen;
+ jj_la1[72] = jj_gen;
;
}
IncludeStatement();
@@ -2293,7 +2446,7 @@ final StringBuffer buff = new StringBuffer();
GlobalStatement();
break;
default:
- jj_la1[70] = jj_gen;
+ jj_la1[73] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2301,12 +2454,13 @@ final StringBuffer buff = new StringBuffer();
}
/**
- * A Normal statement
+ * 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:
@@ -2315,7 +2469,6 @@ final StringBuffer buff = new StringBuffer();
case REQUIRE_ONCE:
case GLOBAL:
case STATIC:
- case LIST:
case CONTINUE:
case DO:
case FOR:
@@ -2349,142 +2502,107 @@ final StringBuffer buff = new StringBuffer();
BreakStatement();
break;
default:
- jj_la1[71] = jj_gen;
+ 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, '= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 122; i++) {
+ 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) {
@@ -5906,6 +6450,7 @@ final int pos = jj_input_stream.getPosition();
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;