From 887fd0e9dbefe5a7bc74adb90b86adaf6df98257 Mon Sep 17 00:00:00 2001 From: kpouer Date: Mon, 18 Aug 2003 17:43:19 +0000 Subject: [PATCH 01/16] a lot of bugfixes --- .../internal/compiler/ast/MethodDeclaration.java | 8 +- .../compiler/ast/PostfixedUnaryExpression.java | 4 +- .../phpdt/internal/compiler/ast/StringLiteral.java | 2 +- .../internal/compiler/ast/SwitchStatement.java | 2 - net.sourceforge.phpeclipse/src/test/PHPParser.java | 1497 +++++++++++--------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 714 ++++++---- 6 files changed, 1242 insertions(+), 985 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java index 48fdda2..b61470f 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java @@ -222,11 +222,11 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild return list; } - private boolean isVariableDeclaredBefore(List list, VariableUsage var) { + private boolean isVariableDeclaredBefore(final List list, final VariableUsage var) { final String name = var.getName(); final int pos = var.getStartOffset(); for (int i = 0; i < list.size(); i++) { - VariableUsage variableUsage = (VariableUsage) list.get(i); + final VariableUsage variableUsage = (VariableUsage) list.get(i); if (variableUsage.getName().equals(name) && variableUsage.getStartOffset() < pos) { return true; } @@ -269,7 +269,7 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild */ private void findUnusedParameters(final List vars, final List parameters) { for (int i = 0; i < parameters.size(); i++) { - VariableUsage param = ((VariableUsage)parameters.get(i)); + final VariableUsage param = ((VariableUsage)parameters.get(i)); if (!isVariableInList(param.getName(),vars)) { try { PHPParserSuperclass.setMarker("warning, the parameter "+param.getName() +" seems to be never used in your method", @@ -300,7 +300,7 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild */ private void findUnknownUsedVars(final List usedVars, final List declaredVars) { for (int i = 0; i < usedVars.size(); i++) { - VariableUsage variableUsage = (VariableUsage) usedVars.get(i); + final VariableUsage variableUsage = (VariableUsage) usedVars.get(i); if (variableUsage.getName().equals("this")) continue; // this is a special variable if (!isVariableDeclaredBefore(declaredVars, variableUsage)) { try { diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PostfixedUnaryExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PostfixedUnaryExpression.java index a358e25..22e31be 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PostfixedUnaryExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PostfixedUnaryExpression.java @@ -5,7 +5,9 @@ package net.sourceforge.phpdt.internal.compiler.ast; */ public class PostfixedUnaryExpression extends UnaryExpression { - public PostfixedUnaryExpression(final Expression expression, final int operator, final int sourceEnd) { + public PostfixedUnaryExpression(final Expression expression, + final int operator, + final int sourceEnd) { super(expression, operator, expression.sourceStart, sourceEnd); } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java index 5a515aa..b8f3672 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java @@ -15,7 +15,7 @@ import test.Token; public class StringLiteral extends Literal { String source; - public StringLiteral(Token token) { + public StringLiteral(final Token token) { super(token.sourceStart,token.sourceEnd); source = token.image; } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java index e582ed8..ad8f484 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java @@ -1,7 +1,5 @@ package net.sourceforge.phpdt.internal.compiler.ast; -import net.sourceforge.phpdt.internal.compiler.ast.declarations.VariableUsage; - import java.util.List; import java.util.ArrayList; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index 207a344..13544ce 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -64,7 +64,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon /** The cursor in expression stack. */ private static int nodePtr; - private static final boolean PARSER_DEBUG = true; + public static final boolean PARSER_DEBUG = false; public final void setFileToParse(final IFile fileToParse) { PHPParser.fileToParse = fileToParse; @@ -167,6 +167,13 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon return outlineInfo; } + /** + * This function will throw the exception if we are in debug mode + * and process it if we are in production mode. + * this should be fast since the PARSER_DEBUG is static final so the difference will be at compile time + * @param e the exception + * @throws ParseException the thrown exception + */ private static void processParseExceptionDebug(final ParseException e) throws ParseException { if (PARSER_DEBUG) { throw e; @@ -202,14 +209,14 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon e.currentToken.sourceStart, e.currentToken.sourceEnd, errorLevel, - "Line " + e.currentToken.beginLine); + "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+":"+e.currentToken.sourceEnd); } else { setMarker(fileToParse, errorMessage, errorStart, errorEnd, errorLevel, - "Line " + e.currentToken.beginLine); + "Line " + e.currentToken.beginLine+", "+errorStart+":"+errorEnd); errorStart = -1; errorEnd = -1; } @@ -398,8 +405,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon PHPParser.createNewHTMLCode(); } catch (TokenMgrError e) { PHPeclipsePlugin.log(e); - errorStart = SimpleCharStream.getPosition(); - errorEnd = errorStart + 1; + errorStart = SimpleCharStream.beginOffset; + errorEnd = SimpleCharStream.endOffset; errorMessage = e.getMessage(); errorLevel = ERROR; {if (true) throw generateParseException();} @@ -592,7 +599,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon static final public ClassDeclaration ClassDeclaration() throws ParseException { final ClassDeclaration classDeclaration; Token className = null; - final Token superclassName, token; + final Token superclassName, token, extendsToken; String classNameImage = SYNTAX_ERROR_CHAR; String superclassNameImage = null; token = jj_consume_token(CLASS); @@ -602,21 +609,21 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case EXTENDS: - jj_consume_token(EXTENDS); + extendsToken = jj_consume_token(EXTENDS); try { superclassName = jj_consume_token(IDENTIFIER); superclassNameImage = superclassName.image; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = extendsToken.sourceEnd+1; + errorEnd = extendsToken.sourceEnd+1; processParseExceptionDebug(e); superclassNameImage = SYNTAX_ERROR_CHAR; } @@ -723,10 +730,12 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon final ArrayList arrayList = new ArrayList(); final Token token; Token token2 = null; + int pos; token = jj_consume_token(VAR); variableDeclaration = VariableDeclaratorNoSuffix(); - arrayList.add(variableDeclaration); - outlineInfo.addVariable(variableDeclaration.name()); + arrayList.add(variableDeclaration); + outlineInfo.addVariable(variableDeclaration.name()); + pos = variableDeclaration.sourceEnd; label_4: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -739,16 +748,17 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon } jj_consume_token(COMMA); variableDeclaration = VariableDeclaratorNoSuffix(); - arrayList.add(variableDeclaration); - outlineInfo.addVariable(variableDeclaration.name()); + arrayList.add(variableDeclaration); + outlineInfo.addVariable(variableDeclaration.name()); + pos = variableDeclaration.sourceEnd; } try { token2 = jj_consume_token(SEMICOLON); } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos+1; + errorEnd = pos+1; processParseExceptionDebug(e); } list = new VariableDeclaration[arrayList.size()]; @@ -816,17 +826,18 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon static final public VariableDeclaration VariableDeclarator() throws ParseException { final AbstractVariable variable; Expression initializer = null; + final Token token; variable = VariableDeclaratorId(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ASSIGN: - jj_consume_token(ASSIGN); + token = jj_consume_token(ASSIGN); try { initializer = VariableInitializer(); } catch (ParseException e) { errorMessage = "Literal expression expected in variable initializer"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } break; @@ -1217,7 +1228,7 @@ final Expression expr,expr2; token = jj_consume_token(FUNCTION); try { functionDeclaration = MethodDeclarator(token.sourceStart); - outlineInfo.addVariable(new String(functionDeclaration.name)); + outlineInfo.addVariable(functionDeclaration.name); } catch (ParseException e) { if (errorMessage != null) {if (true) throw e;} errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; @@ -1244,10 +1255,11 @@ final Expression expr,expr2; Token reference = null; final Hashtable formalParameters = new Hashtable(); String identifierChar = SYNTAX_ERROR_CHAR; - final int end; + int end = start; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_AND: reference = jj_consume_token(BIT_AND); + end = reference.sourceEnd; break; default: jj_la1[25] = jj_gen; @@ -1255,12 +1267,13 @@ final Expression expr,expr2; } try { identifier = jj_consume_token(IDENTIFIER); - identifierChar = identifier.image; + identifierChar = identifier.image; + end = identifier.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.sourceEnd; + errorEnd = e.currentToken.next.sourceStart; processParseExceptionDebug(e); } end = FormalParameters(formalParameters); @@ -1295,21 +1308,23 @@ final Expression expr,expr2; static final public int FormalParameters(final Hashtable parameters) throws ParseException { VariableDeclaration var; final Token token; - int end; + Token tok = PHPParser.token; + int end = tok.sourceEnd; try { - jj_consume_token(LPAREN); + tok = jj_consume_token(LPAREN); + end = tok.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; processParseExceptionDebug(e); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_AND: case DOLLAR_ID: var = FormalParameter(); - parameters.put(new String(var.name()),var); + parameters.put(var.name(),var);end = var.sourceEnd; label_7: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1322,7 +1337,7 @@ final Expression expr,expr2; } jj_consume_token(COMMA); var = FormalParameter(); - parameters.put(new String(var.name()),var); + parameters.put(var.name(),var);end = var.sourceEnd; } break; default: @@ -1335,10 +1350,9 @@ final Expression expr,expr2; } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; processParseExceptionDebug(e); - end = e.currentToken.sourceStart; } {if (true) return end;} throw new Error("Missing return statement in function"); @@ -1790,6 +1804,7 @@ final Expression expr,expr2; static final public Expression EqualityExpression() throws ParseException { Expression expr,expr2; int operator; + Token token; expr = RelationalExpression(); label_14: while (true) { @@ -1807,24 +1822,24 @@ final Expression expr,expr2; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case EQUAL_EQUAL: - jj_consume_token(EQUAL_EQUAL); - operator = OperatorIds.EQUAL_EQUAL; + token = jj_consume_token(EQUAL_EQUAL); + operator = OperatorIds.EQUAL_EQUAL; break; case DIF: - jj_consume_token(DIF); - operator = OperatorIds.DIF; + token = jj_consume_token(DIF); + operator = OperatorIds.DIF; break; case NOT_EQUAL: - jj_consume_token(NOT_EQUAL); - operator = OperatorIds.DIF; + token = jj_consume_token(NOT_EQUAL); + operator = OperatorIds.DIF; break; case BANGDOUBLEEQUAL: - jj_consume_token(BANGDOUBLEEQUAL); - operator = OperatorIds.BANG_EQUAL_EQUAL; + token = jj_consume_token(BANGDOUBLEEQUAL); + operator = OperatorIds.BANG_EQUAL_EQUAL; break; case TRIPLEEQUAL: - jj_consume_token(TRIPLEEQUAL); - operator = OperatorIds.EQUAL_EQUAL_EQUAL; + token = jj_consume_token(TRIPLEEQUAL); + operator = OperatorIds.EQUAL_EQUAL_EQUAL; break; default: jj_la1[45] = jj_gen; @@ -1839,9 +1854,10 @@ final Expression expr,expr2; } errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = token.sourceEnd +1; + errorEnd = token.sourceEnd +1; + expr2 = new ConstantIdentifier(SYNTAX_ERROR_CHAR,token.sourceEnd +1,token.sourceEnd +1); + processParseExceptionDebug(e); } expr = new BinaryExpression(expr,expr2,operator); } @@ -1981,8 +1997,8 @@ final Expression expr,expr2; if (errorMessage != null) {if (true) throw e;} errorMessage = "unexpected token '"+e.currentToken.next.image+"'"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = PHPParser.token.sourceStart; + errorEnd = PHPParser.token.sourceEnd; {if (true) throw e;} } label_18: @@ -2184,9 +2200,9 @@ final Token token; } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = expr.sourceEnd +1; + errorEnd = expr.sourceEnd +1; + processParseExceptionDebug(e); } {if (true) return expr;} break; @@ -2395,7 +2411,9 @@ final Token token,token1; final Token token; token = jj_consume_token(ARRAY); vars = ArrayInitializer(); - {if (true) return new ArrayInitializer(vars,token.sourceStart,SimpleCharStream.getPosition());} + {if (true) return new ArrayInitializer(vars, + token.sourceStart, + PHPParser.token.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -2438,6 +2456,8 @@ final Token token,token1; static final public AbstractVariable VariableSuffix(final AbstractVariable prefix) throws ParseException { Expression expression = null; final Token classAccessToken; + Token token; + int pos; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case CLASSACCESS: classAccessToken = jj_consume_token(CLASSACCESS); @@ -2468,7 +2488,8 @@ final Token token,token1; ClassAccess.NORMAL);} break; case LBRACKET: - jj_consume_token(LBRACKET); + token = jj_consume_token(LBRACKET); + pos = token.sourceEnd+1; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: case LIST: @@ -2523,6 +2544,7 @@ final Token token,token1; case LPAREN: case DOLLAR_ID: expression = Expression(); + pos = expression.sourceEnd+1; break; case STRING: case OBJECT: @@ -2534,6 +2556,7 @@ final Token token,token1; case INT: case INTEGER: expression = Type(); + pos = expression.sourceEnd+1; break; default: jj_la1[70] = jj_gen; @@ -2546,15 +2569,16 @@ final Token token,token1; ; } try { - jj_consume_token(RBRACKET); + token = jj_consume_token(RBRACKET); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "']' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());} + {if (true) return new ArrayDeclarator(prefix,expression,pos);} break; default: jj_la1[72] = jj_gen; @@ -2633,14 +2657,15 @@ final Token token; } try { token = jj_consume_token(RPAREN); + {if (true) return new FunctionCall(func,args,token.sourceEnd);} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = args[args.length-1].sourceEnd+1; + errorEnd = args[args.length-1].sourceEnd+1; + processParseExceptionDebug(e); } - {if (true) return new FunctionCall(func,args,token.sourceEnd);} + {if (true) return new FunctionCall(func,args,args[args.length-1].sourceEnd);} throw new Error("Missing return statement in function"); } @@ -2652,8 +2677,10 @@ final Token token; static final public Expression[] ArgumentList() throws ParseException { Expression arg; final ArrayList list = new ArrayList(); +int pos; +Token token; arg = Expression(); - list.add(arg); + list.add(arg);pos = arg.sourceEnd; label_20: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2664,16 +2691,18 @@ final ArrayList list = new ArrayList(); jj_la1[75] = jj_gen; break label_20; } - jj_consume_token(COMMA); + token = jj_consume_token(COMMA); + pos = token.sourceEnd; try { arg = Expression(); list.add(arg); + pos = arg.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseException(e); } } final Expression[] arguments = new Expression[list.size()]; @@ -2799,9 +2828,9 @@ final ArrayList list = new ArrayList(); if (e.currentToken.next.kind != PHPParserConstants.PHPEND) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = statement.sourceEnd+1; + errorEnd = statement.sourceEnd+1; + processParseExceptionDebug(e); } } {if (true) return statement;} @@ -2809,59 +2838,69 @@ final ArrayList list = new ArrayList(); } static final public Define defineStatement() throws ParseException { - final int start = SimpleCharStream.getPosition(); Expression defineName,defineValue; - jj_consume_token(DEFINE); + final Token defineToken; + Token token; + int pos; + defineToken = jj_consume_token(DEFINE); + pos = defineToken.sourceEnd+1; try { - jj_consume_token(LPAREN); + token = jj_consume_token(LPAREN); + pos = token.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } try { defineName = Expression(); + pos = defineName.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineName = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); } try { - jj_consume_token(COMMA); + token = jj_consume_token(COMMA); + pos = defineName.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } try { defineValue = Expression(); + pos = defineValue.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineValue = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); } try { - jj_consume_token(RPAREN); + token = jj_consume_token(RPAREN); + pos = token.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } {if (true) return new Define(currentSegment, defineName, defineValue, - start, - SimpleCharStream.getPosition());} + defineToken.sourceStart, + pos);} throw new Error("Missing return statement in function"); } @@ -2977,26 +3016,27 @@ final ArrayList list = new ArrayList(); * An include statement. It's "include" an expression; */ static final public InclusionStatement IncludeStatement() throws ParseException { - final Expression expr; + Expression expr; final int keyword; final InclusionStatement inclusionStatement; final Token token, token2; + int pos; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case REQUIRE: token = jj_consume_token(REQUIRE); - keyword = InclusionStatement.REQUIRE; + keyword = InclusionStatement.REQUIRE;pos=token.sourceEnd; break; case REQUIRE_ONCE: token = jj_consume_token(REQUIRE_ONCE); - keyword = InclusionStatement.REQUIRE_ONCE; + keyword = InclusionStatement.REQUIRE_ONCE;pos=token.sourceEnd; break; case INCLUDE: token = jj_consume_token(INCLUDE); - keyword = InclusionStatement.INCLUDE; + keyword = InclusionStatement.INCLUDE;pos=token.sourceEnd; break; case INCLUDE_ONCE: token = jj_consume_token(INCLUDE_ONCE); - keyword = InclusionStatement.INCLUDE_ONCE; + keyword = InclusionStatement.INCLUDE_ONCE;pos=token.sourceEnd; break; default: jj_la1[81] = jj_gen; @@ -3005,15 +3045,17 @@ final ArrayList list = new ArrayList(); } try { expr = Expression(); + pos=expr.sourceEnd; } catch (ParseException e) { if (errorMessage != null) { {if (true) throw e;} } errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + expr = new ConstantIdentifier(SYNTAX_ERROR_CHAR,pos,pos); + processParseExceptionDebug(e); } inclusionStatement = new InclusionStatement(currentSegment, keyword, @@ -3036,10 +3078,10 @@ final ArrayList list = new ArrayList(); static final public PrintExpression PrintExpression() throws ParseException { final Expression expr; - final int pos = SimpleCharStream.getPosition(); - jj_consume_token(PRINT); + final Token printToken; + token = jj_consume_token(PRINT); expr = Expression(); - {if (true) return new PrintExpression(expr,pos,SimpleCharStream.getPosition());} + {if (true) return new PrintExpression(expr,token.sourceStart,expr.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -3047,11 +3089,14 @@ final ArrayList list = new ArrayList(); Expression expr = null; final Expression expression; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); - final Token listToken; + int pos; + final Token listToken, rParen; + Token token; listToken = jj_consume_token(LIST); + pos = listToken.sourceEnd; try { - jj_consume_token(LPAREN); + token = jj_consume_token(LPAREN); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; errorLevel = ERROR; @@ -3063,7 +3108,7 @@ final ArrayList list = new ArrayList(); case DOLLAR: case DOLLAR_ID: expr = VariableDeclaratorId(); - list.add(expr); + list.add(expr);pos = expr.sourceEnd; break; default: jj_la1[82] = jj_gen; @@ -3081,19 +3126,20 @@ final ArrayList list = new ArrayList(); break label_22; } try { - jj_consume_token(COMMA); + token = jj_consume_token(COMMA); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DOLLAR: case DOLLAR_ID: expr = VariableDeclaratorId(); - list.add(expr); + list.add(expr);pos = expr.sourceEnd; break; default: jj_la1[84] = jj_gen; @@ -3101,13 +3147,14 @@ final ArrayList list = new ArrayList(); } } try { - jj_consume_token(RPAREN); + rParen = jj_consume_token(RPAREN); + pos = rParen.sourceEnd; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ASSIGN: @@ -3117,16 +3164,16 @@ final ArrayList list = new ArrayList(); list.toArray(vars); {if (true) return new ListExpression(vars, expression, - pos, - SimpleCharStream.getPosition());} + listToken.sourceStart, + expression.sourceEnd);} break; default: jj_la1[85] = jj_gen; ; } - final Variable[] vars = new Variable[list.size()]; + final AbstractVariable[] vars = new AbstractVariable[list.size()]; list.toArray(vars); - {if (true) return new ListExpression(vars,pos,SimpleCharStream.getPosition());} + {if (true) return new ListExpression(vars,listToken.sourceStart,pos);} throw new Error("Missing return statement in function"); } @@ -3181,9 +3228,10 @@ final ArrayList list = new ArrayList(); final ArrayList vars = new ArrayList(); final GlobalStatement global; final Token token, token2; + int pos; token = jj_consume_token(GLOBAL); expr = Variable(); - vars.add(expr); + vars.add(expr);pos = expr.sourceEnd+1; label_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3196,25 +3244,26 @@ final ArrayList list = new ArrayList(); } jj_consume_token(COMMA); expr = Variable(); - vars.add(expr); + vars.add(expr);pos = expr.sourceEnd+1; } try { token2 = jj_consume_token(SEMICOLON); + pos = token2.sourceEnd+1; + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } final Variable[] variables = new Variable[vars.size()]; vars.toArray(variables); global = new GlobalStatement(currentSegment, variables, token.sourceStart, - token2.sourceEnd); + pos); currentSegment.add(global); {if (true) return global;} - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; - errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} - } throw new Error("Missing return statement in function"); } @@ -3222,9 +3271,10 @@ final ArrayList list = new ArrayList(); final ArrayList vars = new ArrayList(); VariableDeclaration expr; final Token token, token2; + int pos; token = jj_consume_token(STATIC); expr = VariableDeclarator(); - vars.add(expr); + vars.add(expr);pos = expr.sourceEnd+1; label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3237,22 +3287,23 @@ final ArrayList list = new ArrayList(); } jj_consume_token(COMMA); expr = VariableDeclarator(); - vars.add(expr); + vars.add(expr);pos = expr.sourceEnd+1; } try { token2 = jj_consume_token(SEMICOLON); - final VariableDeclaration[] variables = new VariableDeclaration[vars.size()]; - vars.toArray(variables); - {if (true) return new StaticStatement(variables, - token.sourceStart, - token2.sourceEnd);} + pos = token2.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseException(e); } + final VariableDeclaration[] variables = new VariableDeclaration[vars.size()]; + vars.toArray(variables); + {if (true) return new StaticStatement(variables, + token.sourceStart, + pos);} throw new Error("Missing return statement in function"); } @@ -3277,14 +3328,18 @@ final ArrayList list = new ArrayList(); final ArrayList list = new ArrayList(); Statement statement; final Token token, token2; + int pos,start; try { token = jj_consume_token(LBRACE); + pos = token.sourceEnd+1;start=token.sourceStart; } catch (ParseException e) { errorMessage = "'{' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + pos = PHPParser.token.sourceEnd+1; + start=pos; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } label_26: while (true) { @@ -3382,11 +3437,11 @@ final ArrayList list = new ArrayList(); case SEMICOLON: case DOLLAR_ID: statement = BlockStatement(); - list.add(statement); + list.add(statement);pos = statement.sourceEnd+1; break; case PHPEND: statement = htmlBlock(); - list.add(statement); + list.add(statement);pos = statement.sourceEnd+1; break; default: jj_la1[90] = jj_gen; @@ -3396,16 +3451,17 @@ final ArrayList list = new ArrayList(); } try { token2 = jj_consume_token(RBRACE); + pos = token2.sourceEnd+1; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } final Statement[] statements = new Statement[list.size()]; list.toArray(statements); - {if (true) return new Block(statements,token.sourceStart,token2.sourceEnd);} + {if (true) return new Block(statements,start,pos);} throw new Error("Missing return statement in function"); } @@ -3619,6 +3675,7 @@ final ArrayList list = new ArrayList(); */ static final public Expression StatementExpression() throws ParseException { final Expression expr; + final Token operator; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS_PLUS: case MINUS_MINUS: @@ -3637,16 +3694,16 @@ final ArrayList list = new ArrayList(); case MINUS_MINUS: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS_PLUS: - jj_consume_token(PLUS_PLUS); - {if (true) return new PostfixedUnaryExpression(expr, - OperatorIds.PLUS_PLUS, - SimpleCharStream.getPosition());} + operator = jj_consume_token(PLUS_PLUS); + {if (true) return new PostfixedUnaryExpression(expr, + OperatorIds.PLUS_PLUS, + operator.sourceEnd);} break; case MINUS_MINUS: - jj_consume_token(MINUS_MINUS); - {if (true) return new PostfixedUnaryExpression(expr, - OperatorIds.MINUS_MINUS, - SimpleCharStream.getPosition());} + operator = jj_consume_token(MINUS_MINUS); + {if (true) return new PostfixedUnaryExpression(expr, + OperatorIds.MINUS_MINUS, + operator.sourceEnd);} break; default: jj_la1[95] = jj_gen; @@ -3669,40 +3726,45 @@ final ArrayList list = new ArrayList(); } static final public SwitchStatement SwitchStatement() throws ParseException { - final Expression variable; + Expression variable; final AbstractCase[] cases; - final int pos = SimpleCharStream.getPosition(); - final Token switchToken; + final Token switchToken,lparenToken,rparenToken; + int pos; switchToken = jj_consume_token(SWITCH); + pos = switchToken.sourceEnd+1; try { - jj_consume_token(LPAREN); + lparenToken = jj_consume_token(LPAREN); + pos = lparenToken.sourceEnd+1; } catch (ParseException e) { errorMessage = "'(' expected after 'switch'"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { variable = Expression(); + pos = variable.sourceEnd+1; } catch (ParseException e) { if (errorMessage != null) { {if (true) throw e;} } errorMessage = "expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + variable = new ConstantIdentifier(SYNTAX_ERROR_CHAR,pos,pos); } try { - jj_consume_token(RPAREN); + rparenToken = jj_consume_token(RPAREN); + pos = rparenToken.sourceEnd+1; } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACE: @@ -3716,14 +3778,20 @@ final ArrayList list = new ArrayList(); jj_consume_token(-1); throw new ParseException(); } - {if (true) return new SwitchStatement(variable,cases,switchToken.sourceStart,SimpleCharStream.getPosition());} + {if (true) return new SwitchStatement(variable, + cases, + switchToken.sourceStart, + PHPParser.token.sourceEnd);} throw new Error("Missing return statement in function"); } static final public AbstractCase[] switchStatementBrace() throws ParseException { AbstractCase cas; final ArrayList cases = new ArrayList(); - jj_consume_token(LBRACE); + Token token; + int pos; + token = jj_consume_token(LBRACE); + pos = token.sourceEnd; label_28: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3736,20 +3804,21 @@ final ArrayList list = new ArrayList(); break label_28; } cas = switchLabel0(); - cases.add(cas); + cases.add(cas);pos = cas.sourceEnd; } try { - jj_consume_token(RBRACE); - final AbstractCase[] abcase = new AbstractCase[cases.size()]; - cases.toArray(abcase); - {if (true) return abcase;} + token = jj_consume_token(RBRACE); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "'}' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } + final AbstractCase[] abcase = new AbstractCase[cases.size()]; + cases.toArray(abcase); + {if (true) return abcase;} throw new Error("Missing return statement in function"); } @@ -3761,7 +3830,10 @@ final ArrayList list = new ArrayList(); static final public AbstractCase[] switchStatementColon(final int start, final int end) throws ParseException { AbstractCase cas; final ArrayList cases = new ArrayList(); - jj_consume_token(COLON); + Token token; + int pos; + token = jj_consume_token(COLON); + pos = token.sourceEnd; try { setMarker(fileToParse, "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;", @@ -3784,29 +3856,31 @@ final ArrayList list = new ArrayList(); break label_29; } cas = switchLabel0(); - cases.add(cas); + cases.add(cas);pos = cas.sourceEnd; } try { - jj_consume_token(ENDSWITCH); + token = jj_consume_token(ENDSWITCH); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "'endswitch' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } try { - jj_consume_token(SEMICOLON); - final AbstractCase[] abcase = new AbstractCase[cases.size()]; - cases.toArray(abcase); - {if (true) return abcase;} + token = jj_consume_token(SEMICOLON); + pos = token.sourceEnd; } catch (ParseException e) { errorMessage = "';' expected after 'endswitch' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } + final AbstractCase[] abcase = new AbstractCase[cases.size()]; + cases.toArray(abcase); + {if (true) return abcase;} throw new Error("Missing return statement in function"); } @@ -3814,7 +3888,7 @@ final ArrayList list = new ArrayList(); final Expression expr; Statement statement; final ArrayList stmts = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); + final Token token = PHPParser.token; expr = SwitchLabel(); label_30: while (true) { @@ -3931,12 +4005,17 @@ final ArrayList list = new ArrayList(); jj_la1[103] = jj_gen; ; } - final Statement[] stmtsArray = new Statement[stmts.size()]; - stmts.toArray(stmtsArray); - if (expr == null) {//it's a default - {if (true) return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition());} - } - {if (true) return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());} + final int listSize = stmts.size(); + final Statement[] stmtsArray = new Statement[listSize]; + stmts.toArray(stmtsArray); + if (expr == null) {//it's a default + {if (true) return new DefaultCase(stmtsArray,token.sourceStart,stmtsArray[listSize-1].sourceEnd);} + } + if (listSize != 0) { + {if (true) return new Case(expr,stmtsArray,expr.sourceStart,stmtsArray[listSize-1].sourceEnd);} + } else { + {if (true) return new Case(expr,stmtsArray,expr.sourceStart,expr.sourceEnd);} + } throw new Error("Missing return statement in function"); } @@ -3996,7 +4075,9 @@ final ArrayList list = new ArrayList(); static final public Break BreakStatement() throws ParseException { Expression expression = null; final Token token, token2; + int pos; token = jj_consume_token(BREAK); + pos = token.sourceEnd+1; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: case LIST: @@ -4020,6 +4101,7 @@ final ArrayList list = new ArrayList(); case LPAREN: case DOLLAR_ID: expression = Expression(); + pos = expression.sourceEnd+1; break; default: jj_la1[105] = jj_gen; @@ -4027,14 +4109,15 @@ final ArrayList list = new ArrayList(); } try { token2 = jj_consume_token(SEMICOLON); + pos = token2.sourceEnd; } catch (ParseException e) { errorMessage = "';' expected after 'break' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - {if (true) return new Break(expression, token.sourceStart, token2.sourceEnd);} + {if (true) return new Break(expression, token.sourceStart, pos);} throw new Error("Missing return statement in function"); } @@ -4056,8 +4139,8 @@ final ArrayList list = new ArrayList(); } catch (ParseException e) { errorMessage = "'(' expected after " + keyword + " keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length(); - errorEnd = errorStart +1; + errorStart = PHPParser.token.sourceEnd + 1; + errorEnd = PHPParser.token.sourceEnd + 1; processParseExceptionDebug(e); } condition = Expression(); @@ -4066,8 +4149,8 @@ final ArrayList list = new ArrayList(); } catch (ParseException e) { errorMessage = "')' expected after " + keyword + " keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = condition.sourceEnd+1; + errorEnd = condition.sourceEnd+1; processParseExceptionDebug(e); } {if (true) return condition;} @@ -4411,8 +4494,8 @@ final ArrayList list = new ArrayList(); final Expression condition; Statement statement; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); - jj_consume_token(ELSEIF); + final Token elseifToken; + elseifToken = jj_consume_token(ELSEIF); condition = Condition("elseif"); jj_consume_token(COLON); label_34: @@ -4519,17 +4602,20 @@ final ArrayList list = new ArrayList(); throw new ParseException(); } } - final Statement[] stmtsArray = new Statement[list.size()]; + final int sizeList = list.size(); + final Statement[] stmtsArray = new Statement[sizeList]; list.toArray(stmtsArray); - {if (true) return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());} + {if (true) return new ElseIf(condition,stmtsArray , + elseifToken.sourceStart, + stmtsArray[sizeList-1].sourceEnd);} throw new Error("Missing return statement in function"); } static final public Else ElseStatementColon() throws ParseException { Statement statement; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); - jj_consume_token(ELSE); + final Token elseToken; + elseToken = jj_consume_token(ELSE); jj_consume_token(COLON); label_35: while (true) { @@ -4623,7 +4709,7 @@ final ArrayList list = new ArrayList(); case SEMICOLON: case DOLLAR_ID: statement = Statement(); - list.add(statement); + list.add(statement); break; case PHPEND: statement = htmlBlock(); @@ -4635,35 +4721,33 @@ final ArrayList list = new ArrayList(); throw new ParseException(); } } - final Statement[] stmtsArray = new Statement[list.size()]; + final int sizeList = list.size(); + final Statement[] stmtsArray = new Statement[sizeList]; list.toArray(stmtsArray); - {if (true) return new Else(stmtsArray,pos,SimpleCharStream.getPosition());} + {if (true) return new Else(stmtsArray,elseToken.sourceStart,stmtsArray[sizeList-1].sourceEnd);} throw new Error("Missing return statement in function"); } static final public ElseIf ElseIfStatement() throws ParseException { final Expression condition; - final Statement statement; - final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); - jj_consume_token(ELSEIF); + //final Statement statement; + final Token elseifToken; + final Statement[] statement = new Statement[1]; + elseifToken = jj_consume_token(ELSEIF); condition = Condition("elseif"); - statement = Statement(); - list.add(statement);/*todo:do better*/ - final Statement[] stmtsArray = new Statement[list.size()]; - list.toArray(stmtsArray); - {if (true) return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());} + statement[0] = Statement(); + {if (true) return new ElseIf(condition,statement,elseifToken.sourceStart,statement[0].sourceEnd);} throw new Error("Missing return statement in function"); } static final public WhileStatement WhileStatement() throws ParseException { final Expression condition; final Statement action; - final int pos = SimpleCharStream.getPosition(); - jj_consume_token(WHILE); + final Token whileToken; + whileToken = jj_consume_token(WHILE); condition = Condition("while"); - action = WhileStatement0(pos,pos + 5); - {if (true) return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());} + action = WhileStatement0(whileToken.sourceStart,whileToken.sourceEnd); + {if (true) return new WhileStatement(condition,action,whileToken.sourceStart,action.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -4812,89 +4896,105 @@ final ArrayList list = new ArrayList(); static final public DoStatement DoStatement() throws ParseException { final Statement action; final Expression condition; - final Token token, token2; + final Token token; + Token token2 = null; token = jj_consume_token(DO); action = Statement(); jj_consume_token(WHILE); condition = Condition("while"); try { token2 = jj_consume_token(SEMICOLON); - {if (true) return new DoStatement(condition,action,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = condition.sourceEnd+1; + errorEnd = condition.sourceEnd+1; + processParseExceptionDebug(e); } + if (token2 == null) { + {if (true) return new DoStatement(condition,action,token.sourceStart,condition.sourceEnd);} + } + {if (true) return new DoStatement(condition,action,token.sourceStart,token2.sourceEnd);} throw new Error("Missing return statement in function"); } static final public ForeachStatement ForeachStatement() throws ParseException { - Statement statement; - Expression expression; - ArrayVariableDeclaration variable; - Token token; - token = jj_consume_token(FOREACH); + Statement statement = null; + Expression expression = null; + ArrayVariableDeclaration variable = null; + Token foreachToken; + Token lparenToken = null; + Token asToken = null; + Token rparenToken = null; + int pos; + foreachToken = jj_consume_token(FOREACH); try { - jj_consume_token(LPAREN); + lparenToken = jj_consume_token(LPAREN); + pos = lparenToken.sourceEnd+1; } catch (ParseException e) { errorMessage = "'(' expected after 'foreach' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = foreachToken.sourceEnd+1; + errorEnd = foreachToken.sourceEnd+1; + processParseExceptionDebug(e); + {pos = foreachToken.sourceEnd+1;} } try { expression = Expression(); + pos = expression.sourceEnd+1; } catch (ParseException e) { errorMessage = "variable expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { - jj_consume_token(AS); + asToken = jj_consume_token(AS); + pos = asToken.sourceEnd+1; } catch (ParseException e) { errorMessage = "'as' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { variable = ArrayVariable(); + pos = variable.sourceEnd+1; } catch (ParseException e) { + if (errorMessage != null) {if (true) throw e;} errorMessage = "variable expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { - jj_consume_token(RPAREN); + rparenToken = jj_consume_token(RPAREN); + pos = rparenToken.sourceEnd+1; } catch (ParseException e) { errorMessage = "')' expected after 'foreach' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { statement = Statement(); + pos = rparenToken.sourceEnd+1; } catch (ParseException e) { if (errorMessage != null) {if (true) throw e;} errorMessage = "statement expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } {if (true) return new ForeachStatement(expression, variable, statement, - token.sourceStart, + foreachToken.sourceStart, statement.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -4904,8 +5004,8 @@ final ArrayList list = new ArrayList(); * @return a node representing the for statement */ static final public ForStatement ForStatement() throws ParseException { -final Token token,token2; -final int pos = SimpleCharStream.getPosition(); +final Token token,tokenEndFor,token2,tokenColon; +int pos; Expression[] initializations = null; Expression condition = null; Expression[] increments = null; @@ -5058,7 +5158,8 @@ final ArrayList list = new ArrayList(); action.sourceEnd);} break; case COLON: - jj_consume_token(COLON); + tokenColon = jj_consume_token(COLON); + pos = tokenColon.sourceEnd+1; label_37: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -5109,7 +5210,7 @@ final ArrayList list = new ArrayList(); break label_37; } action = Statement(); - list.add(action); + list.add(action);pos = action.sourceEnd+1; } try { setMarker(fileToParse, @@ -5122,33 +5223,35 @@ final ArrayList list = new ArrayList(); PHPeclipsePlugin.log(e); } try { - jj_consume_token(ENDFOR); + tokenEndFor = jj_consume_token(ENDFOR); + pos = tokenEndFor.sourceEnd+1; } catch (ParseException e) { errorMessage = "'endfor' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { token2 = jj_consume_token(SEMICOLON); - final Statement[] stmtsArray = new Statement[list.size()]; - list.toArray(stmtsArray); - {if (true) return new ForStatement(initializations, - condition, - increments, - new Block(stmtsArray, - stmtsArray[0].sourceStart, - stmtsArray[stmtsArray.length-1].sourceEnd), - token.sourceStart, - token2.sourceEnd);} + pos = token2.sourceEnd+1; } catch (ParseException e) { errorMessage = "';' expected after 'endfor' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } + final Statement[] stmtsArray = new Statement[list.size()]; + list.toArray(stmtsArray); + {if (true) return new ForStatement(initializations, + condition, + increments, + new Block(stmtsArray, + stmtsArray[0].sourceStart, + stmtsArray[stmtsArray.length-1].sourceEnd), + token.sourceStart, + pos);} break; default: jj_la1[124] = jj_gen; @@ -5225,7 +5328,8 @@ final ArrayList list = new ArrayList(); static final public Continue ContinueStatement() throws ParseException { Expression expr = null; - final Token token,token2; + final Token token; + Token token2 = null; token = jj_consume_token(CONTINUE); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: @@ -5257,20 +5361,32 @@ final ArrayList list = new ArrayList(); } try { token2 = jj_consume_token(SEMICOLON); - {if (true) return new Continue(expr,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "';' expected after 'continue' statement"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); } + if (token2 == null) { + if (expr == null) { + {if (true) return new Continue(expr,token.sourceStart,token.sourceEnd);} + } + {if (true) return new Continue(expr,token.sourceStart,expr.sourceEnd);} + } + {if (true) return new Continue(expr,token.sourceStart,token2.sourceEnd);} throw new Error("Missing return statement in function"); } static final public ReturnStatement ReturnStatement() throws ParseException { Expression expr = null; - final Token token,token2; + final Token token; + Token token2 = null; token = jj_consume_token(RETURN); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: @@ -5302,14 +5418,25 @@ final ArrayList list = new ArrayList(); } try { token2 = jj_consume_token(SEMICOLON); - {if (true) return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "';' expected after 'return' statement"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - {if (true) throw e;} + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); + } + if (token2 == null) { + if (expr == null) { + {if (true) return new ReturnStatement(expr,token.sourceStart,token.sourceEnd);} + } + {if (true) return new ReturnStatement(expr,token.sourceStart,expr.sourceEnd);} } + {if (true) return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -5355,97 +5482,55 @@ final ArrayList list = new ArrayList(); return retval; } - static final private boolean jj_3R_114() { - if (jj_scan_token(XOR)) return true; + static final private boolean jj_3R_112() { + if (jj_scan_token(ASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_113()) return true; + if (jj_3R_47()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_46() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_52()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; + static final private boolean jj_3R_204() { + if (jj_3R_115()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_108() { - if (jj_3R_113()) return true; + static final private boolean jj_3R_105() { + if (jj_scan_token(DOT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_114()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_50() { - if (jj_3R_64()) return true; + if (jj_3R_102()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_109() { - if (jj_scan_token(BIT_OR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_108()) return true; + static final private boolean jj_3R_203() { + if (jj_3R_48()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_102() { - if (jj_3R_108()) return true; + static final private boolean jj_3R_202() { + if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_109()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } return false; } - static final private boolean jj_3R_45() { - if (jj_scan_token(CLASSACCESS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + static final private boolean jj_3R_197() { Token xsp; xsp = jj_scanpos; - if (jj_3R_50()) { + if (jj_3R_202()) { jj_scanpos = xsp; - if (jj_3R_51()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_39() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_45()) { + if (jj_3R_203()) { jj_scanpos = xsp; - if (jj_3R_46()) return true; + if (jj_3R_204()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_105() { - if (jj_scan_token(DOT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_102()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_204() { + static final private boolean jj_3R_116() { if (jj_3R_115()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; @@ -5463,32 +5548,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_203() { - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_202() { - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_197() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_202()) { - jj_scanpos = xsp; - if (jj_3R_203()) { - jj_scanpos = xsp; - if (jj_3R_204()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_107() { if (jj_scan_token(_ANDL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5509,6 +5568,16 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_111() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_116()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_99() { Token xsp; xsp = jj_scanpos; @@ -5522,16 +5591,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_153() { - if (jj_scan_token(LBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_80() { if (jj_3R_96()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5556,6 +5615,22 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_110() { + if (jj_3R_115()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_153() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_72() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5566,10 +5641,8 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_112() { - if (jj_scan_token(ASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; + static final private boolean jj_3R_198() { + if (jj_3R_201()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -5580,20 +5653,43 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_198() { - if (jj_3R_201()) return true; + static final private boolean jj_3R_100() { + if (jj_scan_token(OR_OR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_100() { - if (jj_scan_token(OR_OR)) return true; + static final private boolean jj_3R_103() { + if (jj_scan_token(LIST)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_110()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + while (true) { + xsp = jj_scanpos; + if (jj_3R_111()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_112()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_116() { - if (jj_3R_115()) return true; + static final private boolean jj_3R_82() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_100()) { + jj_scanpos = xsp; + if (jj_3R_101()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_80()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -5619,19 +5715,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_82() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_100()) { - jj_scanpos = xsp; - if (jj_3R_101()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_80()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_75() { if (jj_3R_80()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5644,60 +5727,62 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_111() { - if (jj_scan_token(COMMA)) return true; + static final private boolean jj_3R_190() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_197()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_116()) jj_scanpos = xsp; + if (jj_3R_198()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_144() { - if (jj_3R_129()) return true; + static final private boolean jj_3R_196() { + if (jj_3R_201()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_190() { - if (jj_scan_token(NEW)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_197()) return true; + static final private boolean jj_3R_189() { + if (jj_3R_115()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_198()) jj_scanpos = xsp; + if (jj_3R_196()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3_2() { - if (jj_scan_token(DOLLAR)) return true; + static final private boolean jj_3R_104() { + if (jj_scan_token(PRINT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(DOLLAR)) return true; + if (jj_3R_47()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_196() { - if (jj_3R_201()) return true; + static final private boolean jj_3R_144() { + if (jj_3R_129()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_110() { - if (jj_3R_115()) return true; + static final private boolean jj_3_2() { + if (jj_scan_token(DOLLAR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DOLLAR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_189() { - if (jj_3R_115()) return true; + static final private boolean jj_3R_68() { + if (jj_3R_75()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_196()) jj_scanpos = xsp; + if (jj_3R_78()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -5708,16 +5793,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_68() { - if (jj_3R_75()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_78()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_137() { if (jj_scan_token(DOLLAR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5726,28 +5801,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_103() { - if (jj_scan_token(LIST)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_110()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - while (true) { - xsp = jj_scanpos; - if (jj_3R_111()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - xsp = jj_scanpos; - if (jj_3R_112()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_195() { if (jj_3R_201()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5760,32 +5813,16 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_129() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_136()) { - jj_scanpos = xsp; - if (jj_3R_137()) { - jj_scanpos = xsp; - if (jj_3R_138()) return true; + static final private boolean jj_3R_94() { + if (jj_scan_token(DOTASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_136() { - if (jj_scan_token(DOLLAR_ID)) return true; + static final private boolean jj_3R_194() { + if (jj_scan_token(STATICCLASSACCESS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_144()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_94() { - if (jj_scan_token(DOTASSIGN)) return true; + if (jj_3R_197()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -5802,23 +5839,33 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_194() { - if (jj_scan_token(STATICCLASSACCESS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_197()) return true; + static final private boolean jj_3R_91() { + if (jj_scan_token(ANDASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_91() { - if (jj_scan_token(ANDASSIGN)) return true; + static final private boolean jj_3R_129() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_136()) { + jj_scanpos = xsp; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3R_138()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_128() { - if (jj_3R_129()) return true; + static final private boolean jj_3R_136() { + if (jj_scan_token(DOLLAR_ID)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_144()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -5846,26 +5893,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_104() { - if (jj_scan_token(PRINT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_86() { - if (jj_scan_token(REMASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_85() { - if (jj_scan_token(SLASHASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_188() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5895,6 +5922,24 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_128() { + if (jj_3R_129()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_86() { + if (jj_scan_token(REMASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_85() { + if (jj_scan_token(SLASHASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_84() { if (jj_scan_token(STARASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5959,12 +6004,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_98() { - if (jj_3R_104()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_175() { if (jj_3R_184()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5977,20 +6016,9 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_97() { - if (jj_3R_103()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_81() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_97()) { - jj_scanpos = xsp; - if (jj_3R_98()) return true; + static final private boolean jj_3R_98() { + if (jj_3R_104()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6015,6 +6043,23 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_97() { + if (jj_3R_103()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_81() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_97()) { + jj_scanpos = xsp; + if (jj_3R_98()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_73() { if (jj_scan_token(DOLLAR_ID)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6185,12 +6230,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3_1() { - if (jj_3R_39()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_169() { if (jj_scan_token(LPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6236,15 +6275,9 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_115() { - if (jj_3R_65()) return true; + static final private boolean jj_3_1() { + if (jj_3R_39()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_1()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } return false; } @@ -6254,6 +6287,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_49() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_62() { if (jj_scan_token(INTEGER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6272,20 +6313,50 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_165() { + if (jj_scan_token(MINUS_MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_115() { + if (jj_3R_65()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_1()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + static final private boolean jj_3R_59() { if (jj_scan_token(DOUBLE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } + static final private boolean jj_3R_44() { + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_49()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + static final private boolean jj_3R_58() { if (jj_scan_token(REAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_165() { - if (jj_scan_token(MINUS_MINUS)) return true; + static final private boolean jj_3R_164() { + if (jj_scan_token(PLUS_PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6302,12 +6373,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_164() { - if (jj_scan_token(PLUS_PLUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_48() { Token xsp; xsp = jj_scanpos; @@ -6365,6 +6430,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3_6() { + if (jj_3R_44()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_160() { if (jj_3R_162()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6404,26 +6475,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_49() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_44() { - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_49()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - static final private boolean jj_3R_156() { if (jj_3R_157()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6466,6 +6517,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_43() { + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SEMICOLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_152() { if (jj_scan_token(REMAINDER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6500,14 +6559,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_43() { - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(SEMICOLON)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_139() { if (jj_3R_145()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6532,12 +6583,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3_6() { - if (jj_3R_44()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_140() { Token xsp; xsp = jj_scanpos; @@ -6551,6 +6596,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3_5() { + if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_130() { if (jj_3R_139()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6563,12 +6614,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3_5() { - if (jj_3R_43()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_143() { if (jj_scan_token(RUNSIGNEDSHIFT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6615,12 +6660,32 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_208() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_135() { if (jj_scan_token(GE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } + static final private boolean jj_3R_207() { + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_208()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + static final private boolean jj_3R_134() { if (jj_scan_token(LE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6658,14 +6723,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_208() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_119() { if (jj_3R_121()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6678,15 +6735,9 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_207() { - if (jj_3R_47()) return true; + static final private boolean jj_3R_205() { + if (jj_3R_207()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_208()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } return false; } @@ -6704,6 +6755,18 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_201() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_205()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_199() { if (jj_3R_40()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6716,14 +6779,20 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_205() { - if (jj_3R_207()) return true; + static final private boolean jj_3R_127() { + if (jj_scan_token(TRIPLEEQUAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_67() { - if (jj_3R_48()) return true; + static final private boolean jj_3R_126() { + if (jj_scan_token(BANGDOUBLEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_125() { + if (jj_scan_token(NOT_EQUAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6743,24 +6812,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_127() { - if (jj_scan_token(TRIPLEEQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_126() { - if (jj_scan_token(BANGDOUBLEEQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_125() { - if (jj_scan_token(NOT_EQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_124() { if (jj_scan_token(DIF)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6773,22 +6824,20 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_201() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_205()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; + static final private boolean jj_3R_181() { + if (jj_scan_token(NULL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_206() { - if (jj_scan_token(ARRAYASSIGN)) return true; + static final private boolean jj_3R_180() { + if (jj_scan_token(FALSE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_47()) return true; + return false; + } + + static final private boolean jj_3R_179() { + if (jj_scan_token(TRUE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6815,37 +6864,27 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_117() { - if (jj_3R_119()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_120()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_40() { - if (jj_3R_47()) return true; + static final private boolean jj_3R_178() { + if (jj_scan_token(STRING_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_206()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_181() { - if (jj_scan_token(NULL)) return true; + static final private boolean jj_3R_177() { + if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_180() { - if (jj_scan_token(FALSE)) return true; + static final private boolean jj_3R_117() { + if (jj_3R_119()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_120()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } return false; } @@ -6855,24 +6894,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_179() { - if (jj_scan_token(TRUE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_178() { - if (jj_scan_token(STRING_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_177() { - if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_176() { if (jj_scan_token(INTEGER_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6902,6 +6923,24 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_206() { + if (jj_scan_token(ARRAYASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_40() { + if (jj_3R_47()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_206()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_118() { if (jj_scan_token(BIT_AND)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6910,6 +6949,24 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_113() { + if (jj_3R_117()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_118()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_67() { + if (jj_3R_48()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_52() { Token xsp; xsp = jj_scanpos; @@ -6927,13 +6984,83 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_113() { - if (jj_3R_117()) return true; + static final private boolean jj_3R_46() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_52()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_114() { + if (jj_scan_token(XOR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_113()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_108() { + if (jj_3R_113()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_118()) { jj_scanpos = xsp; break; } + if (jj_3R_114()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_50() { + if (jj_3R_64()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_45() { + if (jj_scan_token(CLASSACCESS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_50()) { + jj_scanpos = xsp; + if (jj_3R_51()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_39() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_45()) { + jj_scanpos = xsp; + if (jj_3R_46()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_109() { + if (jj_scan_token(BIT_OR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_108()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_102() { + if (jj_3R_108()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_109()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index d45ca07..e8ab5f2 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -87,7 +87,7 @@ public final class PHPParser extends PHPParserSuperclass { /** The cursor in expression stack. */ private static int nodePtr; - private static final boolean PARSER_DEBUG = true; + public static final boolean PARSER_DEBUG = false; public final void setFileToParse(final IFile fileToParse) { PHPParser.fileToParse = fileToParse; @@ -190,6 +190,13 @@ public final class PHPParser extends PHPParserSuperclass { return outlineInfo; } + /** + * This function will throw the exception if we are in debug mode + * and process it if we are in production mode. + * this should be fast since the PARSER_DEBUG is static final so the difference will be at compile time + * @param e the exception + * @throws ParseException the thrown exception + */ private static void processParseExceptionDebug(final ParseException e) throws ParseException { if (PARSER_DEBUG) { throw e; @@ -225,14 +232,14 @@ public final class PHPParser extends PHPParserSuperclass { e.currentToken.sourceStart, e.currentToken.sourceEnd, errorLevel, - "Line " + e.currentToken.beginLine); + "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+":"+e.currentToken.sourceEnd); } else { setMarker(fileToParse, errorMessage, errorStart, errorEnd, errorLevel, - "Line " + e.currentToken.beginLine); + "Line " + e.currentToken.beginLine+", "+errorStart+":"+errorEnd); errorStart = -1; errorEnd = -1; } @@ -658,8 +665,8 @@ void phpFile() : {PHPParser.createNewHTMLCode();} } catch (TokenMgrError e) { PHPeclipsePlugin.log(e); - errorStart = SimpleCharStream.getPosition(); - errorEnd = errorStart + 1; + errorStart = SimpleCharStream.beginOffset; + errorEnd = SimpleCharStream.endOffset; errorMessage = e.getMessage(); errorLevel = ERROR; throw generateParseException(); @@ -729,7 +736,7 @@ ClassDeclaration ClassDeclaration() : { final ClassDeclaration classDeclaration; Token className = null; - final Token superclassName, token; + final Token superclassName, token, extendsToken; String classNameImage = SYNTAX_ERROR_CHAR; String superclassNameImage = null; } @@ -741,20 +748,20 @@ ClassDeclaration ClassDeclaration() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } [ - + extendsToken = try { superclassName = {superclassNameImage = superclassName.image;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = extendsToken.sourceEnd+1; + errorEnd = extendsToken.sourceEnd+1; processParseExceptionDebug(e); superclassNameImage = SYNTAX_ERROR_CHAR; } @@ -840,23 +847,30 @@ FieldDeclaration FieldDeclaration() : final ArrayList arrayList = new ArrayList(); final Token token; Token token2 = null; + int pos; } { token = variableDeclaration = VariableDeclaratorNoSuffix() - {arrayList.add(variableDeclaration); - outlineInfo.addVariable(variableDeclaration.name());} + { + arrayList.add(variableDeclaration); + outlineInfo.addVariable(variableDeclaration.name()); + pos = variableDeclaration.sourceEnd; + } ( variableDeclaration = VariableDeclaratorNoSuffix() - {arrayList.add(variableDeclaration); - outlineInfo.addVariable(variableDeclaration.name());} + { + arrayList.add(variableDeclaration); + outlineInfo.addVariable(variableDeclaration.name()); + pos = variableDeclaration.sourceEnd; + } )* try { token2 = } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected after variable declaration"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos+1; + errorEnd = pos+1; processParseExceptionDebug(e); } @@ -924,18 +938,19 @@ VariableDeclaration VariableDeclarator() : { final AbstractVariable variable; Expression initializer = null; + final Token token; } { variable = VariableDeclaratorId() [ - + token = try { initializer = VariableInitializer() } catch (ParseException e) { errorMessage = "Literal expression expected in variable initializer"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } ] @@ -1209,7 +1224,7 @@ MethodDeclaration MethodDeclaration() : token = try { functionDeclaration = MethodDeclarator(token.sourceStart) - {outlineInfo.addVariable(new String(functionDeclaration.name));} + {outlineInfo.addVariable(functionDeclaration.name);} } catch (ParseException e) { if (errorMessage != null) throw e; errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; @@ -1236,18 +1251,21 @@ MethodDeclaration MethodDeclarator(final int start) : Token reference = null; final Hashtable formalParameters = new Hashtable(); String identifierChar = SYNTAX_ERROR_CHAR; - final int end; + int end = start; } { - [reference = ] + [reference = {end = reference.sourceEnd;}] try { identifier = - {identifierChar = identifier.image;} + { + identifierChar = identifier.image; + end = identifier.sourceEnd; + } } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.sourceEnd; + errorEnd = e.currentToken.next.sourceStart; processParseExceptionDebug(e); } end = FormalParameters(formalParameters) @@ -1284,24 +1302,26 @@ int FormalParameters(final Hashtable parameters) : { VariableDeclaration var; final Token token; - int end; + Token tok = PHPParser.token; + int end = tok.sourceEnd; } { try { - + tok = + {end = tok.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected after function identifier"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; processParseExceptionDebug(e); } [ var = FormalParameter() - {parameters.put(new String(var.name()),var);} + {parameters.put(var.name(),var);end = var.sourceEnd;} ( var = FormalParameter() - {parameters.put(new String(var.name()),var);} + {parameters.put(var.name(),var);end = var.sourceEnd;} )* ] try { @@ -1310,10 +1330,9 @@ int FormalParameters(final Hashtable parameters) : } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; processParseExceptionDebug(e); - end = e.currentToken.sourceStart; } {return end;} } @@ -1545,15 +1564,16 @@ Expression EqualityExpression() : { Expression expr,expr2; int operator; + Token token; } { expr = RelationalExpression() ( - ( {operator = OperatorIds.EQUAL_EQUAL;} - | {operator = OperatorIds.DIF;} - | {operator = OperatorIds.DIF;} - | {operator = OperatorIds.BANG_EQUAL_EQUAL;} - | {operator = OperatorIds.EQUAL_EQUAL_EQUAL;} + ( token = {operator = OperatorIds.EQUAL_EQUAL;} + | token = {operator = OperatorIds.DIF;} + | token = {operator = OperatorIds.DIF;} + | token = {operator = OperatorIds.BANG_EQUAL_EQUAL;} + | token = {operator = OperatorIds.EQUAL_EQUAL_EQUAL;} ) try { expr2 = RelationalExpression() @@ -1563,9 +1583,10 @@ Expression EqualityExpression() : } errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = token.sourceEnd +1; + errorEnd = token.sourceEnd +1; + expr2 = new ConstantIdentifier(SYNTAX_ERROR_CHAR,token.sourceEnd +1,token.sourceEnd +1); + processParseExceptionDebug(e); } { expr = new BinaryExpression(expr,expr2,operator); @@ -1639,8 +1660,8 @@ Expression MultiplicativeExpression() : if (errorMessage != null) throw e; errorMessage = "unexpected token '"+e.currentToken.next.image+"'"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = PHPParser.token.sourceStart; + errorEnd = PHPParser.token.sourceEnd; throw e; } ( @@ -1742,9 +1763,9 @@ Expression UnaryExpressionNotPlusMinus() : } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = expr.sourceEnd +1; + errorEnd = expr.sourceEnd +1; + processParseExceptionDebug(e); } {return expr;} } @@ -1866,7 +1887,9 @@ ArrayInitializer ArrayDeclarator() : } { token = vars = ArrayInitializer() - {return new ArrayInitializer(vars,token.sourceStart,SimpleCharStream.getPosition());} + {return new ArrayInitializer(vars, + token.sourceStart, + PHPParser.token.sourceEnd);} } Expression ClassIdentifier(): @@ -1887,6 +1910,8 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) : { Expression expression = null; final Token classAccessToken; + Token token; + int pos; } { classAccessToken = @@ -1903,17 +1928,20 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) : expression, ClassAccess.NORMAL);} | - [ expression = Expression() | expression = Type() ] //Not good + token = {pos = token.sourceEnd+1;} + [ expression = Expression() {pos = expression.sourceEnd+1;} + | expression = Type() {pos = expression.sourceEnd+1;}] //Not good try { - + token = + {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "']' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - {return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());} + {return new ArrayDeclarator(prefix,expression,pos);} } Literal Literal() : @@ -1938,14 +1966,15 @@ final Token token; [ args = ArgumentList() ] try { token = + {return new FunctionCall(func,args,token.sourceEnd);} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = args[args.length-1].sourceEnd+1; + errorEnd = args[args.length-1].sourceEnd+1; + processParseExceptionDebug(e); } - {return new FunctionCall(func,args,token.sourceEnd);} + {return new FunctionCall(func,args,args[args.length-1].sourceEnd);} } /** @@ -1957,20 +1986,23 @@ Expression[] ArgumentList() : { Expression arg; final ArrayList list = new ArrayList(); +int pos; +Token token; } { arg = Expression() - {list.add(arg);} - ( + {list.add(arg);pos = arg.sourceEnd;} + ( token = {pos = token.sourceEnd;} try { arg = Expression() - {list.add(arg);} + {list.add(arg); + pos = arg.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseException(e); } )* { @@ -2034,9 +2066,9 @@ Statement expressionStatement() : if (e.currentToken.next.kind != PHPParserConstants.PHPEND) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = statement.sourceEnd+1; + errorEnd = statement.sourceEnd+1; + processParseExceptionDebug(e); } } {return statement;} @@ -2044,61 +2076,70 @@ Statement expressionStatement() : Define defineStatement() : { - final int start = SimpleCharStream.getPosition(); Expression defineName,defineValue; + final Token defineToken; + Token token; + int pos; } { - + defineToken = {pos = defineToken.sourceEnd+1;} try { - + token = + {pos = token.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } try { defineName = Expression() + {pos = defineName.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineName = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); } try { - + token = + {pos = defineName.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } try { defineValue = Expression() + {pos = defineValue.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + defineValue = new StringLiteral(SYNTAX_ERROR_CHAR,pos,pos); } try { - + token = + {pos = token.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = pos; + errorEnd = pos; processParseExceptionDebug(e); } {return new Define(currentSegment, defineName, defineValue, - start, - SimpleCharStream.getPosition());} + defineToken.sourceStart, + pos);} } /** @@ -2146,27 +2187,30 @@ HTMLBlock htmlBlock() : */ InclusionStatement IncludeStatement() : { - final Expression expr; + Expression expr; final int keyword; final InclusionStatement inclusionStatement; final Token token, token2; + int pos; } { - ( token = {keyword = InclusionStatement.REQUIRE;} - | token = {keyword = InclusionStatement.REQUIRE_ONCE;} - | token = {keyword = InclusionStatement.INCLUDE;} - | token = {keyword = InclusionStatement.INCLUDE_ONCE;}) + ( token = {keyword = InclusionStatement.REQUIRE;pos=token.sourceEnd;} + | token = {keyword = InclusionStatement.REQUIRE_ONCE;pos=token.sourceEnd;} + | token = {keyword = InclusionStatement.INCLUDE;pos=token.sourceEnd;} + | token = {keyword = InclusionStatement.INCLUDE_ONCE;pos=token.sourceEnd;}) try { expr = Expression() + {pos=expr.sourceEnd;} } catch (ParseException e) { if (errorMessage != null) { throw e; } errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + expr = new ConstantIdentifier(SYNTAX_ERROR_CHAR,pos,pos); + processParseExceptionDebug(e); } {inclusionStatement = new InclusionStatement(currentSegment, keyword, @@ -2190,10 +2234,11 @@ InclusionStatement IncludeStatement() : PrintExpression PrintExpression() : { final Expression expr; - final int pos = SimpleCharStream.getPosition(); + final Token printToken; } { - expr = Expression() {return new PrintExpression(expr,pos,SimpleCharStream.getPosition());} + token = expr = Expression() + {return new PrintExpression(expr,token.sourceStart,expr.sourceEnd);} } ListExpression ListExpression() : @@ -2201,13 +2246,14 @@ ListExpression ListExpression() : Expression expr = null; final Expression expression; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); - final Token listToken; + int pos; + final Token listToken, rParen; + Token token; } { - listToken = + listToken = {pos = listToken.sourceEnd;} try { - + token = {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; errorLevel = ERROR; @@ -2217,29 +2263,31 @@ ListExpression ListExpression() : } [ expr = VariableDeclaratorId() - {list.add(expr);} + {list.add(expr);pos = expr.sourceEnd;} ] {if (expr == null) list.add(null);} ( try { - + token = + {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } - [expr = VariableDeclaratorId() {list.add(expr);}] + [expr = VariableDeclaratorId() {list.add(expr);pos = expr.sourceEnd;}] )* try { - + rParen = + {pos = rParen.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } [ expression = Expression() { @@ -2247,13 +2295,13 @@ ListExpression ListExpression() : list.toArray(vars); return new ListExpression(vars, expression, - pos, - SimpleCharStream.getPosition());} + listToken.sourceStart, + expression.sourceEnd);} ] { - final Variable[] vars = new Variable[list.size()]; + final AbstractVariable[] vars = new AbstractVariable[list.size()]; list.toArray(vars); - return new ListExpression(vars,pos,SimpleCharStream.getPosition());} + return new ListExpression(vars,listToken.sourceStart,pos);} } /** @@ -2301,33 +2349,35 @@ GlobalStatement GlobalStatement() : final ArrayList vars = new ArrayList(); final GlobalStatement global; final Token token, token2; + int pos; } { token = expr = Variable() - {vars.add(expr);} + {vars.add(expr);pos = expr.sourceEnd+1;} ( expr = Variable() - {vars.add(expr);} + {vars.add(expr);pos = expr.sourceEnd+1;} )* try { token2 = + {pos = token2.sourceEnd+1;} + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } { final Variable[] variables = new Variable[vars.size()]; vars.toArray(variables); global = new GlobalStatement(currentSegment, variables, token.sourceStart, - token2.sourceEnd); + pos); currentSegment.add(global); return global;} - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; - errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; - } } StaticStatement StaticStatement() : @@ -2335,27 +2385,29 @@ StaticStatement StaticStatement() : final ArrayList vars = new ArrayList(); VariableDeclaration expr; final Token token, token2; + int pos; } { - token = expr = VariableDeclarator() {vars.add(expr);} + token = expr = VariableDeclarator() {vars.add(expr);pos = expr.sourceEnd+1;} ( - expr = VariableDeclarator() {vars.add(expr);} + expr = VariableDeclarator() {vars.add(expr);pos = expr.sourceEnd+1;} )* try { token2 = + {pos = token2.sourceEnd+1;} + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseException(e); + } { final VariableDeclaration[] variables = new VariableDeclaration[vars.size()]; vars.toArray(variables); return new StaticStatement(variables, token.sourceStart, - token2.sourceEnd);} - } catch (ParseException e) { - errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected"; - errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; - } + pos);} } LabeledStatement LabeledStatement() : @@ -2380,32 +2432,37 @@ Block Block() : final ArrayList list = new ArrayList(); Statement statement; final Token token, token2; + int pos,start; } { try { token = + {pos = token.sourceEnd+1;start=token.sourceStart;} } catch (ParseException e) { errorMessage = "'{' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + pos = PHPParser.token.sourceEnd+1; + start=pos; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - ( statement = BlockStatement() {list.add(statement);} - | statement = htmlBlock() {list.add(statement);})* + ( statement = BlockStatement() {list.add(statement);pos = statement.sourceEnd+1;} + | statement = htmlBlock() {list.add(statement);pos = statement.sourceEnd+1;})* try { token2 = + {pos = token2.sourceEnd+1;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } { final Statement[] statements = new Statement[list.size()]; list.toArray(statements); - return new Block(statements,token.sourceStart,token2.sourceEnd);} + return new Block(statements,start,pos);} } Statement BlockStatement() : @@ -2504,84 +2561,95 @@ EmptyStatement EmptyStatement() : Expression StatementExpression() : { final Expression expr; + final Token operator; } { expr = PreIncDecExpression() {return expr;} | expr = PrimaryExpression() - [ {return new PostfixedUnaryExpression(expr, - OperatorIds.PLUS_PLUS, - SimpleCharStream.getPosition());} - | {return new PostfixedUnaryExpression(expr, - OperatorIds.MINUS_MINUS, - SimpleCharStream.getPosition());} + [ operator = {return new PostfixedUnaryExpression(expr, + OperatorIds.PLUS_PLUS, + operator.sourceEnd);} + | operator = {return new PostfixedUnaryExpression(expr, + OperatorIds.MINUS_MINUS, + operator.sourceEnd);} ] {return expr;} } SwitchStatement SwitchStatement() : { - final Expression variable; + Expression variable; final AbstractCase[] cases; - final int pos = SimpleCharStream.getPosition(); - final Token switchToken; + final Token switchToken,lparenToken,rparenToken; + int pos; } { - switchToken = + switchToken = {pos = switchToken.sourceEnd+1;} try { - + lparenToken = + {pos = lparenToken.sourceEnd+1;} } catch (ParseException e) { errorMessage = "'(' expected after 'switch'"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { - variable = Expression() + variable = Expression() {pos = variable.sourceEnd+1;} } catch (ParseException e) { if (errorMessage != null) { throw e; } errorMessage = "expression expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + variable = new ConstantIdentifier(SYNTAX_ERROR_CHAR,pos,pos); } try { - + rparenToken = {pos = rparenToken.sourceEnd+1;} } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - (cases = switchStatementBrace() | cases = switchStatementColon(switchToken.sourceStart, switchToken.sourceEnd)) - {return new SwitchStatement(variable,cases,switchToken.sourceStart,SimpleCharStream.getPosition());} + ( cases = switchStatementBrace() + | cases = switchStatementColon(switchToken.sourceStart, switchToken.sourceEnd)) + {return new SwitchStatement(variable, + cases, + switchToken.sourceStart, + PHPParser.token.sourceEnd);} } AbstractCase[] switchStatementBrace() : { AbstractCase cas; final ArrayList cases = new ArrayList(); + Token token; + int pos; } { - - ( cas = switchLabel0() {cases.add(cas);})* + token = {pos = token.sourceEnd;} + ( cas = switchLabel0() {cases.add(cas);pos = cas.sourceEnd;})* try { - - { - final AbstractCase[] abcase = new AbstractCase[cases.size()]; - cases.toArray(abcase); - return abcase;} + token = + {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "'}' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); + } + { + final AbstractCase[] abcase = new AbstractCase[cases.size()]; + cases.toArray(abcase); + return abcase; } } /** @@ -2593,9 +2661,11 @@ AbstractCase[] switchStatementColon(final int start, final int end) : { AbstractCase cas; final ArrayList cases = new ArrayList(); + Token token; + int pos; } { - + token = {pos = token.sourceEnd;} {try { setMarker(fileToParse, "Ugly syntax detected, you should switch () {...} instead of switch (): ... enswitch;", @@ -2606,28 +2676,29 @@ AbstractCase[] switchStatementColon(final int start, final int end) : } catch (CoreException e) { PHPeclipsePlugin.log(e); }} - ( cas = switchLabel0() {cases.add(cas);})* + ( cas = switchLabel0() {cases.add(cas);pos = cas.sourceEnd;})* try { - + token = {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "'endswitch' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); } try { - - { - final AbstractCase[] abcase = new AbstractCase[cases.size()]; - cases.toArray(abcase); - return abcase;} + token = {pos = token.sourceEnd;} } catch (ParseException e) { errorMessage = "';' expected after 'endswitch' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos+1; + errorEnd = pos+1; + processParseExceptionDebug(e); + } + { + final AbstractCase[] abcase = new AbstractCase[cases.size()]; + cases.toArray(abcase); + return abcase; } } @@ -2636,7 +2707,7 @@ AbstractCase switchLabel0() : final Expression expr; Statement statement; final ArrayList stmts = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); + final Token token = PHPParser.token; } { expr = SwitchLabel() @@ -2644,12 +2715,18 @@ AbstractCase switchLabel0() : | statement = htmlBlock() {stmts.add(statement);})* [ statement = BreakStatement() {stmts.add(statement);}] { - final Statement[] stmtsArray = new Statement[stmts.size()]; - stmts.toArray(stmtsArray); - if (expr == null) {//it's a default - return new DefaultCase(stmtsArray,pos,SimpleCharStream.getPosition()); + final int listSize = stmts.size(); + final Statement[] stmtsArray = new Statement[listSize]; + stmts.toArray(stmtsArray); + if (expr == null) {//it's a default + return new DefaultCase(stmtsArray,token.sourceStart,stmtsArray[listSize-1].sourceEnd); + } + if (listSize != 0) { + return new Case(expr,stmtsArray,expr.sourceStart,stmtsArray[listSize-1].sourceEnd); + } else { + return new Case(expr,stmtsArray,expr.sourceStart,expr.sourceEnd); + } } - return new Case(expr,stmtsArray,pos,SimpleCharStream.getPosition());} } /** @@ -2702,19 +2779,22 @@ Break BreakStatement() : { Expression expression = null; final Token token, token2; + int pos; } { - token = [ expression = Expression() ] + token = {pos = token.sourceEnd+1;} + [ expression = Expression() {pos = expression.sourceEnd+1;}] try { token2 = + {pos = token2.sourceEnd;} } catch (ParseException e) { errorMessage = "';' expected after 'break' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } - {return new Break(expression, token.sourceStart, token2.sourceEnd);} + {return new Break(expression, token.sourceStart, pos);} } IfStatement IfStatement() : @@ -2740,8 +2820,8 @@ Expression Condition(final String keyword) : } catch (ParseException e) { errorMessage = "'(' expected after " + keyword + " keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length(); - errorEnd = errorStart +1; + errorStart = PHPParser.token.sourceEnd + 1; + errorEnd = PHPParser.token.sourceEnd + 1; processParseExceptionDebug(e); } condition = Expression() @@ -2750,8 +2830,8 @@ Expression Condition(final String keyword) : } catch (ParseException e) { errorMessage = "')' expected after " + keyword + " keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; + errorStart = condition.sourceEnd+1; + errorEnd = condition.sourceEnd+1; processParseExceptionDebug(e); } {return condition;} @@ -2865,59 +2945,61 @@ ElseIf ElseIfStatementColon() : final Expression condition; Statement statement; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); + final Token elseifToken; } { - condition = Condition("elseif") + elseifToken = condition = Condition("elseif") ( statement = Statement() {list.add(statement);} | statement = htmlBlock() {list.add(statement);})* { - final Statement[] stmtsArray = new Statement[list.size()]; + final int sizeList = list.size(); + final Statement[] stmtsArray = new Statement[sizeList]; list.toArray(stmtsArray); - return new ElseIf(condition,stmtsArray ,pos,SimpleCharStream.getPosition());} + return new ElseIf(condition,stmtsArray , + elseifToken.sourceStart, + stmtsArray[sizeList-1].sourceEnd);} } Else ElseStatementColon() : { Statement statement; final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); + final Token elseToken; } { - ( statement = Statement() {list.add(statement);} + elseToken = ( statement = Statement() {list.add(statement);} | statement = htmlBlock() {list.add(statement);})* { - final Statement[] stmtsArray = new Statement[list.size()]; + final int sizeList = list.size(); + final Statement[] stmtsArray = new Statement[sizeList]; list.toArray(stmtsArray); - return new Else(stmtsArray,pos,SimpleCharStream.getPosition());} + return new Else(stmtsArray,elseToken.sourceStart,stmtsArray[sizeList-1].sourceEnd);} } ElseIf ElseIfStatement() : { final Expression condition; - final Statement statement; - final ArrayList list = new ArrayList(); - final int pos = SimpleCharStream.getPosition(); + //final Statement statement; + final Token elseifToken; + final Statement[] statement = new Statement[1]; } { - condition = Condition("elseif") statement = Statement() {list.add(statement);/*todo:do better*/} + elseifToken = condition = Condition("elseif") statement[0] = Statement() { - final Statement[] stmtsArray = new Statement[list.size()]; - list.toArray(stmtsArray); - return new ElseIf(condition,stmtsArray,pos,SimpleCharStream.getPosition());} + return new ElseIf(condition,statement,elseifToken.sourceStart,statement[0].sourceEnd);} } WhileStatement WhileStatement() : { final Expression condition; final Statement action; - final int pos = SimpleCharStream.getPosition(); + final Token whileToken; } { - + whileToken = condition = Condition("while") - action = WhileStatement0(pos,pos + 5) - {return new WhileStatement(condition,action,pos,SimpleCharStream.getPosition());} + action = WhileStatement0(whileToken.sourceStart,whileToken.sourceEnd) + {return new WhileStatement(condition,action,whileToken.sourceStart,action.sourceEnd);} } Statement WhileStatement0(final int start, final int end) : @@ -2969,90 +3051,108 @@ DoStatement DoStatement() : { final Statement action; final Expression condition; - final Token token, token2; + final Token token; + Token token2 = null; } { token = action = Statement() condition = Condition("while") try { token2 = - {return new DoStatement(condition,action,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = condition.sourceEnd+1; + errorEnd = condition.sourceEnd+1; + processParseExceptionDebug(e); + } + { + if (token2 == null) { + return new DoStatement(condition,action,token.sourceStart,condition.sourceEnd); + } + return new DoStatement(condition,action,token.sourceStart,token2.sourceEnd); } } ForeachStatement ForeachStatement() : { - Statement statement; - Expression expression; - ArrayVariableDeclaration variable; - Token token; + Statement statement = null; + Expression expression = null; + ArrayVariableDeclaration variable = null; + Token foreachToken; + Token lparenToken = null; + Token asToken = null; + Token rparenToken = null; + int pos; } { - token = - try { - + foreachToken = + try { + lparenToken = + {pos = lparenToken.sourceEnd+1;} } catch (ParseException e) { errorMessage = "'(' expected after 'foreach' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = foreachToken.sourceEnd+1; + errorEnd = foreachToken.sourceEnd+1; + processParseExceptionDebug(e); + {pos = foreachToken.sourceEnd+1;} } try { expression = Expression() + {pos = expression.sourceEnd+1;} } catch (ParseException e) { errorMessage = "variable expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { - + asToken = + {pos = asToken.sourceEnd+1;} } catch (ParseException e) { errorMessage = "'as' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { variable = ArrayVariable() + {pos = variable.sourceEnd+1;} } catch (ParseException e) { + if (errorMessage != null) throw e; errorMessage = "variable expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { - + rparenToken = + {pos = rparenToken.sourceEnd+1;} } catch (ParseException e) { errorMessage = "')' expected after 'foreach' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { statement = Statement() + {pos = rparenToken.sourceEnd+1;} } catch (ParseException e) { if (errorMessage != null) throw e; errorMessage = "statement expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } {return new ForeachStatement(expression, variable, statement, - token.sourceStart, + foreachToken.sourceStart, statement.sourceEnd);} } @@ -3063,8 +3163,8 @@ ForeachStatement ForeachStatement() : */ ForStatement ForStatement() : { -final Token token,token2; -final int pos = SimpleCharStream.getPosition(); +final Token token,tokenEndFor,token2,tokenColon; +int pos; Expression[] initializations = null; Expression condition = null; Expression[] increments = null; @@ -3094,8 +3194,8 @@ final ArrayList list = new ArrayList(); token.sourceStart, action.sourceEnd);} | - - (action = Statement() {list.add(action);})* + tokenColon = {pos = tokenColon.sourceEnd+1;} + (action = Statement() {list.add(action);pos = action.sourceEnd+1;})* { try { setMarker(fileToParse, @@ -3109,34 +3209,36 @@ final ArrayList list = new ArrayList(); } } try { - + tokenEndFor = + {pos = tokenEndFor.sourceEnd+1;} } catch (ParseException e) { errorMessage = "'endfor' expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } try { token2 = - { - final Statement[] stmtsArray = new Statement[list.size()]; - list.toArray(stmtsArray); - return new ForStatement(initializations, - condition, - increments, - new Block(stmtsArray, - stmtsArray[0].sourceStart, - stmtsArray[stmtsArray.length-1].sourceEnd), - token.sourceStart, - token2.sourceEnd);} + {pos = token2.sourceEnd+1;} } catch (ParseException e) { errorMessage = "';' expected after 'endfor' keyword"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); } + { + final Statement[] stmtsArray = new Statement[list.size()]; + list.toArray(stmtsArray); + return new ForStatement(initializations, + condition, + increments, + new Block(stmtsArray, + stmtsArray[0].sourceStart, + stmtsArray[stmtsArray.length-1].sourceEnd), + token.sourceStart, + pos);} ) } @@ -3171,38 +3273,66 @@ Expression[] StatementExpressionList() : Continue ContinueStatement() : { Expression expr = null; - final Token token,token2; + final Token token; + Token token2 = null; } { token = [ expr = Expression() ] try { token2 = - {return new Continue(expr,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "';' expected after 'continue' statement"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); + } + { + if (token2 == null) { + if (expr == null) { + return new Continue(expr,token.sourceStart,token.sourceEnd); + } + return new Continue(expr,token.sourceStart,expr.sourceEnd); + } + return new Continue(expr,token.sourceStart,token2.sourceEnd); } } ReturnStatement ReturnStatement() : { Expression expr = null; - final Token token,token2; + final Token token; + Token token2 = null; } { token = [ expr = Expression() ] try { token2 = - {return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd);} } catch (ParseException e) { errorMessage = "';' expected after 'return' statement"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; - } + if (expr == null) { + errorStart = token.sourceEnd+1; + errorEnd = token.sourceEnd+1; + } else { + errorStart = expr.sourceEnd+1; + errorEnd = expr.sourceEnd+1; + } + processParseExceptionDebug(e); + } + { + if (token2 == null) { + if (expr == null) { + return new ReturnStatement(expr,token.sourceStart,token.sourceEnd); + } + return new ReturnStatement(expr,token.sourceStart,expr.sourceEnd); + } + return new ReturnStatement(expr,token.sourceStart,token2.sourceEnd); + } } -- 1.7.1 From 76e0e76981e042a8d625a7a6bafd2cf9cc63dc52 Mon Sep 17 00:00:00 2001 From: kpouer Date: Mon, 18 Aug 2003 17:43:51 +0000 Subject: [PATCH 02/16] some tests added --- .../src/test/PHPParserTestCase2.java | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/net.sourceforge.phpeclipse.tests/src/test/PHPParserTestCase2.java b/net.sourceforge.phpeclipse.tests/src/test/PHPParserTestCase2.java index 538248b..971e90e 100644 --- a/net.sourceforge.phpeclipse.tests/src/test/PHPParserTestCase2.java +++ b/net.sourceforge.phpeclipse.tests/src/test/PHPParserTestCase2.java @@ -15,6 +15,7 @@ import java.io.File; import java.io.FileNotFoundException; import net.sourceforge.phpdt.internal.corext.Assert; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; /** @@ -40,6 +41,7 @@ public class PHPParserTestCase2 extends TestCase { * Test the PHP Parser with different PHP snippets */ public void testPHPParser() { + checkHTML("$a;", true); checkPHP("for ($this->i = 0;$this->i<2;$this->i++) {}", true); @@ -90,7 +92,7 @@ public class PHPParserTestCase2 extends TestCase { checkPHP("$a = array();", true); checkPHP("'caca';", true); checkPHP("if $cac a) echo 'coucou';", false); - checkPHP("$oka dd = 'a'.$i;$val = $$add;", false); + // checkPHP("$oka dd = 'a'.$i;$val = $$add;", false); checkPHP("($a==\"b\") || (c($this->x)==\"d\");", true); checkPHP("(substr($this->file, 0, 2) == \"MM\");", true); checkPHP("(substr($this->file, 0, 2) == \"MM\") || substr($this->file, 0, 2) == \"II\";", true); @@ -243,9 +245,11 @@ public class PHPParserTestCase2 extends TestCase { } /** - * The JUnit setup method + * The JUnit setup method. */ protected void setUp() { + Assert.isTrue(PHPeclipsePlugin.PHPPARSER == PHPeclipsePlugin.PHPPARSER_NEW); + Assert.isTrue(PHPParser.PARSER_DEBUG); parser = (test.PHPParser) PHPParserManager.getParser(); } -- 1.7.1 From ee999a8506379cbdd66ef78d0ab37f5d2a98ce31 Mon Sep 17 00:00:00 2001 From: khartlage Date: Mon, 18 Aug 2003 19:20:09 +0000 Subject: [PATCH 03/16] added syncmail to CVS --- CVSROOT/loginfo | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo index 5a59f0a..ead100d 100644 --- a/CVSROOT/loginfo +++ b/CVSROOT/loginfo @@ -24,3 +24,4 @@ #DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog # or #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog +DEFAULT /cvsroot/sitedocs/CVSROOT/cvstools/syncmail %{sVv} phpeclipse-commits@lists.sourceforge.net -- 1.7.1 From fa073d7e65106022d9460f7fa3e0ddb10bae1a5f Mon Sep 17 00:00:00 2001 From: khartlage Date: Mon, 18 Aug 2003 19:22:00 +0000 Subject: [PATCH 04/16] misc --- .../phpdt/internal/core/JavaElement.java | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElement.java index 590b8db..bababc6 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElement.java @@ -12,16 +12,9 @@ package net.sourceforge.phpdt.internal.core; import net.sourceforge.phpdt.core.IJavaElement; import net.sourceforge.phpdt.core.IJavaModel; -import net.sourceforge.phpdt.core.IJavaModelStatusConstants; import net.sourceforge.phpdt.core.IOpenable; -import net.sourceforge.phpdt.core.IParent; import net.sourceforge.phpdt.core.JavaModelException; -import net.sourceforge.phpdt.internal.corext.Assert; -import org.eclipse.core.resources.IResourceStatus; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.PlatformObject; -- 1.7.1 From 3af42db071d47834149ab183b9468c7c5a3bc4aa Mon Sep 17 00:00:00 2001 From: khartlage Date: Mon, 18 Aug 2003 19:28:13 +0000 Subject: [PATCH 05/16] Organized Imports --- .../corext/codemanipulation/StubUtility.java | 27 +------------------ 1 files changed, 2 insertions(+), 25 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java index 37eee59..67714c9 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java @@ -4,34 +4,11 @@ */ package net.sourceforge.phpdt.internal.corext.codemanipulation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.swt.SWT; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; - -//import org.phpeclipse.phpdt.core.Flags; -//import org.phpeclipse.phpdt.core.IBuffer; import net.sourceforge.phpdt.core.ICodeFormatter; -//import org.phpeclipse.phpdt.core.ICompilationUnit; -//import org.phpeclipse.phpdt.core.IJavaElement; -//import org.phpeclipse.phpdt.core.IJavaProject; -//import org.phpeclipse.phpdt.core.IMethod; -//import org.phpeclipse.phpdt.core.IParent; -//import org.phpeclipse.phpdt.core.ISourceReference; -//import org.phpeclipse.phpdt.core.IType; -//import org.phpeclipse.phpdt.core.ITypeHierarchy; -import net.sourceforge.phpeclipse.PHPCore; -//import org.phpeclipse.phpdt.core.JavaModelException; -//import org.phpeclipse.phpdt.core.Signature; import net.sourceforge.phpdt.core.ToolFactory; -//import net.sourceforge.phpdt.internal.corext.util.CodeFormatterUtil; -//import net.sourceforge.phpdt.internal.corext.util.JavaModelUtil; -import net.sourceforge.phpdt.internal.corext.util.Strings; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; public class StubUtility { -- 1.7.1 From 82edfe45a29647302c0ce97118fd25220e9513c0 Mon Sep 17 00:00:00 2001 From: kpouer Date: Fri, 22 Aug 2003 20:40:00 +0000 Subject: [PATCH 06/16] a lot of fixes --- .../phpdt/internal/compiler/ast/HTMLBlock.java | 4 +- .../phpdt/internal/compiler/ast/IfStatement.java | 16 +- .../internal/compiler/ast/InclusionStatement.java | 5 +- .../phpdt/internal/compiler/ast/Variable.java | 30 +- net.sourceforge.phpeclipse/src/test/PHPParser.java | 2401 ++++++++++---------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 480 ++-- .../src/test/PHPParserConstants.java | 265 ++-- .../src/test/PHPParserTokenManager.java | 1556 ++++++++----- 8 files changed, 2554 insertions(+), 2203 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java index 27d93fa..496ca72 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java @@ -11,7 +11,7 @@ public class HTMLBlock extends Statement { public AstNode[] nodes; public HTMLBlock(final AstNode[] nodes) { - super(nodes[0].sourceStart, nodes[nodes.length-1].sourceEnd); + super(nodes[0].sourceStart, nodes[(nodes.length > 0) ? nodes.length - 1 : 0].sourceEnd); this.nodes = nodes; } @@ -24,7 +24,7 @@ public class HTMLBlock extends Statement { final StringBuffer buff = new StringBuffer(tabString(tab)); buff.append("?>"); for (int i = 0; i < nodes.length; i++) { - buff.append(nodes[i].toString(tab +1)); + buff.append(nodes[i].toString(tab + 1)); } buff.append(" SimpleCharStream.currentBuffer.length()) { return; } - final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray(); + final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart, + currentPosition).toCharArray(); pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition)); } /** Create a new task. */ - public static final void createNewTask() { - final int currentPosition = token.sourceStart; - final String todo = SimpleCharStream.currentBuffer.substring(currentPosition-3, + public static final void createNewTask(final int todoStart) { + final String todo = SimpleCharStream.currentBuffer.substring(todoStart, SimpleCharStream.currentBuffer.indexOf("\n", - currentPosition)-1); + todoStart)-1); if (!PARSER_DEBUG) { try { setMarker(fileToParse, @@ -338,6 +339,12 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon phpFile(); } + static final public void todo() throws ParseException { + Token todoToken; + todoToken = jj_consume_token(23); + createNewTask(todoToken.sourceStart); + } + static final public void phpTest() throws ParseException { Php(); jj_consume_token(0); @@ -379,8 +386,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case WHILE: case FOREACH: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -389,11 +396,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: case LBRACE: case SEMICOLON: - case DOLLAR_ID: ; break; default: @@ -420,7 +427,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon */ static final public void PhpBlock() throws ParseException { final PHPEchoBlock phpEchoBlock; - final Token token; + final Token token,phpEnd; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPECHOSTART: phpEchoBlock = phpEchoBlock(); @@ -456,8 +463,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case WHILE: case FOREACH: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -466,11 +473,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: case LBRACE: case SEMICOLON: - case DOLLAR_ID: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPSTARTSHORT: case PHPSTARTLONG: @@ -501,9 +508,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon jj_la1[2] = jj_gen; ; } + PHPParser.createNewHTMLCode(); Php(); try { - jj_consume_token(PHPEND); + phpEnd = jj_consume_token(PHPEND); + htmlStart = phpEnd.sourceEnd; } catch (ParseException e) { errorMessage = "'?>' expected"; errorLevel = ERROR; @@ -524,6 +533,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon final PHPEchoBlock echoBlock; final Token token, token2; token = jj_consume_token(PHPECHOSTART); + PHPParser.createNewHTMLCode(); expr = Expression(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: @@ -534,6 +544,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon ; } token2 = jj_consume_token(PHPEND); + htmlStart = token2.sourceEnd; + echoBlock = new PHPEchoBlock(expr,token.sourceStart,token2.sourceEnd); pushOnAstNodes(echoBlock); {if (true) return echoBlock;} @@ -571,8 +583,8 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case WHILE: case FOREACH: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -581,11 +593,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: case LBRACE: case SEMICOLON: - case DOLLAR_ID: ; break; default: @@ -602,6 +614,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon final Token superclassName, token, extendsToken; String classNameImage = SYNTAX_ERROR_CHAR; String superclassNameImage = null; + final int classEnd; token = jj_consume_token(CLASS); try { className = jj_consume_token(IDENTIFIER); @@ -655,15 +668,16 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon } currentSegment.add(classDeclaration); currentSegment = classDeclaration; - ClassBody(classDeclaration); + classEnd = ClassBody(classDeclaration); currentSegment = (OutlineableWithChildren) currentSegment.getParent(); - classDeclaration.sourceEnd = SimpleCharStream.getPosition(); + classDeclaration.sourceEnd = classEnd; pushOnAstNodes(classDeclaration); {if (true) return classDeclaration;} throw new Error("Missing return statement in function"); } - static final public void ClassBody(final ClassDeclaration classDeclaration) throws ParseException { + static final public int ClassBody(final ClassDeclaration classDeclaration) throws ParseException { +Token token; try { jj_consume_token(LBRACE); } catch (ParseException e) { @@ -687,14 +701,17 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon ClassBodyDeclaration(classDeclaration); } try { - jj_consume_token(RBRACE); + token = jj_consume_token(RBRACE); + {if (true) return token.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected"; errorLevel = ERROR; errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; errorEnd = SimpleCharStream.getPosition() + 1; processParseExceptionDebug(e); + {if (true) return PHPParser.token.sourceEnd;} } + throw new Error("Missing return statement in function"); } /** @@ -781,10 +798,27 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon * It will be used by fields and formal parameters */ static final public VariableDeclaration VariableDeclaratorNoSuffix() throws ParseException { - final Token varName; - Expression initializer = null; + final Token dollar, token, lbrace,rbrace; + Expression expr, initializer = null; Token assignToken; - varName = jj_consume_token(DOLLAR_ID); + Variable variable; + dollar = jj_consume_token(DOLLAR); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + variable = new Variable(token.image,dollar.sourceStart,token.sourceEnd); + break; + case LBRACE: + lbrace = jj_consume_token(LBRACE); + expr = Expression(); + rbrace = jj_consume_token(RBRACE); + variable = new Variable(expr,dollar.sourceStart,rbrace.sourceEnd); + break; + default: + jj_la1[10] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ASSIGN: assignToken = jj_consume_token(ASSIGN); @@ -799,24 +833,20 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon } break; default: - jj_la1[10] = jj_gen; + jj_la1[11] = jj_gen; ; } if (initializer == null) { {if (true) return new VariableDeclaration(currentSegment, - new Variable(varName.image.substring(1), - varName.sourceStart+1, - varName.sourceEnd+1), - varName.sourceStart+1, - varName.sourceEnd+1);} + variable, + variable.sourceStart, + variable.sourceEnd);} } {if (true) return new VariableDeclaration(currentSegment, - new Variable(varName.image.substring(1), - varName.sourceStart+1, - varName.sourceEnd+1), + variable, initializer, VariableDeclaration.EQUAL, - varName.sourceStart+1);} + variable.sourceStart);} throw new Error("Missing return statement in function"); } @@ -842,7 +872,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon } break; default: - jj_la1[11] = jj_gen; + jj_la1[12] = jj_gen; ; } if (initializer == null) { @@ -891,183 +921,40 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon throw new Error("Missing return statement in function"); } -/** - * Return a variablename without the $. - * @return a variable name - *//* -Variable Variable(): -{ - final StringBuffer buff; - Expression expression = null; - final Token token; - Variable expr; - final int pos; -} -{ - token = - [ expression = Expression() ] - { - if (expression == null) { - return new Variable(token.image.substring(1), - token.sourceStart+1, - token.sourceEnd+1); - } - String s = expression.toStringExpression(); - buff = new StringBuffer(token.image.length()+s.length()+2); - buff.append(token.image); - buff.append("{"); - buff.append(s); - buff.append("}"); - s = buff.toString(); - return new Variable(s,token.sourceStart+1,token.sourceEnd+1); - } -| - token = - expr = VariableName() - {return new Variable(expr,token.sourceStart,expr.sourceEnd);} -} */ static final public Variable Variable() throws ParseException { Variable variable = 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 DOLLAR: - case IDENTIFIER: - case LBRACE: - case DOLLAR_ID: - variable = Var(token); - break; - default: - jj_la1[12] = jj_gen; - ; - } - if (variable == null) { - {if (true) return new Variable(token.image.substring(1),token.sourceStart+1,token.sourceEnd+1);} - } - final StringBuffer buff = new StringBuffer(); - buff.append(token.image.substring(1)); - buff.append(variable.toStringExpression()); - {if (true) return new Variable(buff.toString(),token.sourceStart+1,variable.sourceEnd+1);} - break; - case DOLLAR: - token = jj_consume_token(DOLLAR); - variable = Var(token); + token = jj_consume_token(DOLLAR); + variable = Var(token); {if (true) return new Variable(variable,token.sourceStart,variable.sourceEnd);} - break; - default: - jj_la1[13] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } throw new Error("Missing return statement in function"); } static final public Variable Var(final Token dollar) throws ParseException { Variable variable = null; - final Token token; + final Token token,token2; ConstantIdentifier constant; + Expression expression; 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 DOLLAR: - case IDENTIFIER: - case LBRACE: - case DOLLAR_ID: - variable = Var(token); - break; - default: - jj_la1[14] = jj_gen; - ; - } - if (variable == null) { - {if (true) return new Variable(token.image.substring(1),token.sourceStart+1,token.sourceEnd+1);} - } - final StringBuffer buff = new StringBuffer(); - buff.append(token.image.substring(1)); - buff.append(variable.toStringExpression()); - {if (true) return new Variable(buff.toString(),dollar.sourceStart,variable.sourceEnd);} - break; - default: - jj_la1[15] = jj_gen; - if (jj_2_2(2147483647)) { - token = jj_consume_token(DOLLAR); - variable = Var(token); + case DOLLAR: + token = jj_consume_token(DOLLAR); + variable = Var(token); {if (true) return new Variable(variable,dollar.sourceStart,variable.sourceEnd);} - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: - case LBRACE: - constant = VariableName(); - {if (true) return new Variable(constant.name,dollar.sourceStart,constant.sourceEnd);} - break; - default: - jj_la1[16] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - } - throw new Error("Missing return statement in function"); - } - -/** - * A Variable name (without the $) - * @return a variable name String - */ - static final public ConstantIdentifier VariableName() throws ParseException { - final StringBuffer buff; - String expr; - Expression expression = null; - final Token token; - Token token2 = null; - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + break; case LBRACE: token = jj_consume_token(LBRACE); expression = Expression(); token2 = jj_consume_token(RBRACE); - expr = expression.toStringExpression(); - buff = new StringBuffer(expr.length()+2); - buff.append("{"); - buff.append(expr); - buff.append("}"); - expr = buff.toString(); - {if (true) return new ConstantIdentifier(expr, - token.sourceStart, - token2.sourceEnd);} + {if (true) return new Variable(expression, + dollar.sourceStart, + token2.sourceEnd);} break; case IDENTIFIER: token = jj_consume_token(IDENTIFIER); - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case LBRACE: - jj_consume_token(LBRACE); - expression = Expression(); - token2 = jj_consume_token(RBRACE); - break; - default: - jj_la1[17] = jj_gen; - ; - } - if (expression == null) { - {if (true) return new ConstantIdentifier(token.image, - token.sourceStart, - token.sourceEnd);} - } - expr = expression.toStringExpression(); - buff = new StringBuffer(token.image.length()+expr.length()+2); - buff.append(token.image); - buff.append("{"); - buff.append(expr); - buff.append("}"); - expr = buff.toString(); - {if (true) return new ConstantIdentifier(expr, - token.sourceStart, - token2.sourceEnd);} + {if (true) return new Variable(token.image,dollar.sourceStart,token.sourceEnd);} break; default: - jj_la1[18] = jj_gen; + jj_la1[13] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1097,7 +984,7 @@ Variable Variable(): token = jj_consume_token(FLOATING_POINT_LITERAL); break; default: - jj_la1[19] = jj_gen; + jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1115,7 +1002,7 @@ Variable Variable(): token = jj_consume_token(FLOATING_POINT_LITERAL); break; default: - jj_la1[20] = jj_gen; + jj_la1[15] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1132,7 +1019,7 @@ Variable Variable(): {if (true) return new ConstantIdentifier(token);} break; default: - jj_la1[21] = jj_gen; + jj_la1[16] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1149,7 +1036,7 @@ final Expression expr,expr2; {if (true) return new ArrayVariableDeclaration(expr,expr2);} break; default: - jj_la1[22] = jj_gen; + jj_la1[17] = jj_gen; ; } {if (true) return new ArrayVariableDeclaration(expr,SimpleCharStream.getPosition());} @@ -1169,8 +1056,8 @@ final Expression expr,expr2; case TRUE: case FALSE: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -1179,14 +1066,14 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: expr = ArrayVariable(); list.add(expr); label_6: while (true) { - if (jj_2_3(2)) { + if (jj_2_2(2)) { ; } else { break label_6; @@ -1197,7 +1084,7 @@ final Expression expr,expr2; } break; default: - jj_la1[23] = jj_gen; + jj_la1[18] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1206,7 +1093,7 @@ final Expression expr,expr2; list.add(null); break; default: - jj_la1[24] = jj_gen; + jj_la1[19] = jj_gen; ; } jj_consume_token(RPAREN); @@ -1262,7 +1149,7 @@ final Expression expr,expr2; end = reference.sourceEnd; break; default: - jj_la1[25] = jj_gen; + jj_la1[20] = jj_gen; ; } try { @@ -1322,7 +1209,7 @@ final Expression expr,expr2; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_AND: - case DOLLAR_ID: + case DOLLAR: var = FormalParameter(); parameters.put(var.name(),var);end = var.sourceEnd; label_7: @@ -1332,7 +1219,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[26] = jj_gen; + jj_la1[21] = jj_gen; break label_7; } jj_consume_token(COMMA); @@ -1341,7 +1228,7 @@ final Expression expr,expr2; } break; default: - jj_la1[27] = jj_gen; + jj_la1[22] = jj_gen; ; } try { @@ -1370,7 +1257,7 @@ final Expression expr,expr2; token = jj_consume_token(BIT_AND); break; default: - jj_la1[28] = jj_gen; + jj_la1[23] = jj_gen; ; } variableDeclaration = VariableDeclaratorNoSuffix(); @@ -1421,7 +1308,7 @@ final Expression expr,expr2; {if (true) return new ConstantIdentifier(token);} break; default: - jj_la1[29] = jj_gen; + jj_la1[24] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1439,8 +1326,8 @@ final Expression expr,expr2; case TRUE: case FALSE: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -1449,9 +1336,9 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: expr = ConditionalExpression(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ASSIGN: @@ -1481,7 +1368,7 @@ final Expression expr,expr2; } break; default: - jj_la1[30] = jj_gen; + jj_la1[25] = jj_gen; ; } if (assignOperator != -1) {// todo : change this, very very bad :( @@ -1508,7 +1395,7 @@ final Expression expr,expr2; {if (true) return expr;} break; default: - jj_la1[31] = jj_gen; + jj_la1[26] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1530,7 +1417,7 @@ final Expression expr,expr2; {if (true) return expr;} break; default: - jj_la1[32] = jj_gen; + jj_la1[27] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1549,7 +1436,7 @@ final Expression expr,expr2; {if (true) return expr;} break; default: - jj_la1[33] = jj_gen; + jj_la1[28] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1615,7 +1502,7 @@ final Expression expr,expr2; {if (true) return VariableDeclaration.TILDE_EQUAL;} break; default: - jj_la1[34] = jj_gen; + jj_la1[29] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1635,7 +1522,7 @@ final Expression expr,expr2; expr3 = ConditionalExpression(); break; default: - jj_la1[35] = jj_gen; + jj_la1[30] = jj_gen; ; } if (expr3 == null) { @@ -1657,7 +1544,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[36] = jj_gen; + jj_la1[31] = jj_gen; break label_8; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1670,7 +1557,7 @@ final Expression expr,expr2; operator = OperatorIds.ORL; break; default: - jj_la1[37] = jj_gen; + jj_la1[32] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1693,7 +1580,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[38] = jj_gen; + jj_la1[33] = jj_gen; break label_9; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1706,7 +1593,7 @@ final Expression expr,expr2; operator = OperatorIds.ANDL; break; default: - jj_la1[39] = jj_gen; + jj_la1[34] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1727,7 +1614,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[40] = jj_gen; + jj_la1[35] = jj_gen; break label_10; } jj_consume_token(DOT); @@ -1748,7 +1635,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[41] = jj_gen; + jj_la1[36] = jj_gen; break label_11; } jj_consume_token(BIT_OR); @@ -1769,7 +1656,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[42] = jj_gen; + jj_la1[37] = jj_gen; break label_12; } jj_consume_token(XOR); @@ -1790,7 +1677,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[43] = jj_gen; + jj_la1[38] = jj_gen; break label_13; } jj_consume_token(BIT_AND); @@ -1817,7 +1704,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[44] = jj_gen; + jj_la1[39] = jj_gen; break label_14; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1842,7 +1729,7 @@ final Expression expr,expr2; operator = OperatorIds.EQUAL_EQUAL_EQUAL; break; default: - jj_la1[45] = jj_gen; + jj_la1[40] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1879,7 +1766,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[46] = jj_gen; + jj_la1[41] = jj_gen; break label_15; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1900,7 +1787,7 @@ final Expression expr,expr2; operator = OperatorIds.GREATER_EQUAL; break; default: - jj_la1[47] = jj_gen; + jj_la1[42] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1924,7 +1811,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[48] = jj_gen; + jj_la1[43] = jj_gen; break label_16; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1941,7 +1828,7 @@ final Expression expr,expr2; operator = OperatorIds.UNSIGNED_RIGHT_SHIFT; break; default: - jj_la1[49] = jj_gen; + jj_la1[44] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1964,7 +1851,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[50] = jj_gen; + jj_la1[45] = jj_gen; break label_17; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1977,7 +1864,7 @@ final Expression expr,expr2; operator = OperatorIds.MINUS; break; default: - jj_la1[51] = jj_gen; + jj_la1[46] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2010,7 +1897,7 @@ final Expression expr,expr2; ; break; default: - jj_la1[52] = jj_gen; + jj_la1[47] = jj_gen; break label_18; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2027,7 +1914,7 @@ final Expression expr,expr2; operator = OperatorIds.REMAINDER; break; default: - jj_la1[53] = jj_gen; + jj_la1[48] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2046,8 +1933,54 @@ final Expression expr,expr2; /* expr = UnaryExpressionNoPrefix() //why did I had that ? {return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);} | */ + expr = AtNotTildeUnaryExpression(); + {if (true) return expr;} + throw new Error("Missing return statement in function"); + } + + static final public Expression AtNotTildeUnaryExpression() throws ParseException { + final Expression expr; + final Token token; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case AT: + token = jj_consume_token(AT); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} + break; + case TILDE: + token = jj_consume_token(TILDE); + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.TWIDDLE,token.sourceStart);} + break; + case BANG: + token = jj_consume_token(BANG); expr = AtNotUnaryExpression(); - {if (true) return expr;} + {if (true) return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} + break; + case ARRAY: + case NEW: + case NULL: + case TRUE: + case FALSE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expr = UnaryExpressionNoPrefix(); + {if (true) return expr;} + break; + default: + jj_la1[49] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } throw new Error("Missing return statement in function"); } @@ -2074,7 +2007,6 @@ final Expression expr,expr2; case NULL: case TRUE: case FALSE: - case DOLLAR: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -2083,14 +2015,14 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: expr = UnaryExpressionNoPrefix(); {if (true) return expr;} break; default: - jj_la1[54] = jj_gen; + jj_la1[50] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2103,15 +2035,15 @@ final Expression expr,expr2; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: token = jj_consume_token(PLUS); - expr = AtNotUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr, + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr, OperatorIds.PLUS, token.sourceStart);} break; case MINUS: token = jj_consume_token(MINUS); - expr = AtNotUnaryExpression(); - {if (true) return new PrefixedUnaryExpression(expr, + expr = AtNotTildeUnaryExpression(); + {if (true) return new PrefixedUnaryExpression(expr, OperatorIds.MINUS, token.sourceStart);} break; @@ -2125,19 +2057,18 @@ final Expression expr,expr2; case NULL: case TRUE: case FALSE: - case DOLLAR: case BIT_AND: case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: expr = UnaryExpressionNotPlusMinus(); {if (true) return expr;} break; default: - jj_la1[55] = jj_gen; + jj_la1[51] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2158,7 +2089,7 @@ final Token token; operator = OperatorIds.MINUS_MINUS; break; default: - jj_la1[56] = jj_gen; + jj_la1[52] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2169,17 +2100,16 @@ final Token token; static final public Expression UnaryExpressionNotPlusMinus() throws ParseException { final Expression expr; - if (jj_2_4(2147483647)) { + if (jj_2_3(2147483647)) { expr = CastExpression(); {if (true) return expr;} } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: case NEW: - case DOLLAR: case BIT_AND: + case DOLLAR: case IDENTIFIER: - case DOLLAR_ID: expr = PostfixExpression(); {if (true) return expr;} break; @@ -2207,7 +2137,7 @@ final Token token; {if (true) return expr;} break; default: - jj_la1[57] = jj_gen; + jj_la1[53] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2237,7 +2167,7 @@ final Token token,token1; type = new ConstantIdentifier(token); break; default: - jj_la1[58] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2265,13 +2195,13 @@ final Token token,token1; operator = OperatorIds.MINUS_MINUS; break; default: - jj_la1[59] = jj_gen; + jj_la1[55] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[60] = jj_gen; + jj_la1[56] = jj_gen; ; } if (operator == -1) { @@ -2286,16 +2216,15 @@ final Token token,token1; Token token = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case NEW: - case DOLLAR: case BIT_AND: + case DOLLAR: case IDENTIFIER: - case DOLLAR_ID: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_AND: token = jj_consume_token(BIT_AND); break; default: - jj_la1[61] = jj_gen; + jj_la1[57] = jj_gen; ; } expr = refPrimaryExpression(token); @@ -2306,7 +2235,7 @@ final Token token,token1; {if (true) return expr;} break; default: - jj_la1[62] = jj_gen; + jj_la1[58] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2328,7 +2257,7 @@ final Token token,token1; ; break; default: - jj_la1[63] = jj_gen; + jj_la1[59] = jj_gen; break label_19; } jj_consume_token(STATICCLASSACCESS); @@ -2342,7 +2271,7 @@ final Token token,token1; expr2 = Arguments(expr); break; default: - jj_la1[64] = jj_gen; + jj_la1[60] = jj_gen; ; } if (expr2 == null) { @@ -2359,14 +2288,13 @@ final Token token,token1; {if (true) return expr2;} break; case DOLLAR: - case DOLLAR_ID: expr = VariableDeclaratorId(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: expr = Arguments(expr); break; default: - jj_la1[65] = jj_gen; + jj_la1[61] = jj_gen; ; } {if (true) return expr;} @@ -2388,13 +2316,13 @@ final Token token,token1; expr = Arguments(expr); break; default: - jj_la1[66] = jj_gen; + jj_la1[62] = jj_gen; ; } {if (true) return expr;} break; default: - jj_la1[67] = jj_gen; + jj_la1[63] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2438,12 +2366,11 @@ final Token token,token1; {if (true) return expr;} break; case DOLLAR: - case DOLLAR_ID: expr = VariableDeclaratorId(); {if (true) return expr;} break; default: - jj_la1[68] = jj_gen; + jj_la1[64] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2455,7 +2382,7 @@ final Token token,token1; */ static final public AbstractVariable VariableSuffix(final AbstractVariable prefix) throws ParseException { Expression expression = null; - final Token classAccessToken; + final Token classAccessToken,lbrace,rbrace; Token token; int pos; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2463,16 +2390,23 @@ final Token token,token1; classAccessToken = jj_consume_token(CLASSACCESS); try { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case IDENTIFIER: case LBRACE: - expression = VariableName(); + lbrace = jj_consume_token(LBRACE); + expression = Expression(); + rbrace = jj_consume_token(RBRACE); + expression = new Variable(expression, + lbrace.sourceStart, + rbrace.sourceEnd); + break; + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + expression = new Variable(token.image,token.sourceStart,token.sourceEnd); break; case DOLLAR: - case DOLLAR_ID: expression = Variable(); break; default: - jj_la1[69] = jj_gen; + jj_la1[65] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2508,8 +2442,8 @@ final Token token,token1; case INT: case INTEGER: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -2518,9 +2452,9 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: case LIST: @@ -2530,8 +2464,8 @@ final Token token,token1; case TRUE: case FALSE: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -2540,9 +2474,9 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: expression = Expression(); pos = expression.sourceEnd+1; break; @@ -2559,13 +2493,13 @@ final Token token,token1; pos = expression.sourceEnd+1; break; default: - jj_la1[70] = jj_gen; + jj_la1[66] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[71] = jj_gen; + jj_la1[67] = jj_gen; ; } try { @@ -2580,8 +2514,101 @@ final Token token,token1; } {if (true) return new ArrayDeclarator(prefix,expression,pos);} break; + case LBRACE: + token = jj_consume_token(LBRACE); + pos = token.sourceEnd+1; + 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 AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ARRAY: + case LIST: + case PRINT: + case NEW: + case NULL: + case TRUE: + case FALSE: + case AT: + case BANG: + case TILDE: + case PLUS_PLUS: + case MINUS_MINUS: + case PLUS: + case MINUS: + case BIT_AND: + case INTEGER_LITERAL: + case FLOATING_POINT_LITERAL: + case STRING_LITERAL: + case DOLLAR: + case IDENTIFIER: + case LPAREN: + expression = Expression(); + pos = expression.sourceEnd+1; + break; + case STRING: + case OBJECT: + case BOOL: + case BOOLEAN: + case REAL: + case DOUBLE: + case FLOAT: + case INT: + case INTEGER: + expression = Type(); + pos = expression.sourceEnd+1; + break; + default: + jj_la1[68] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + break; + default: + jj_la1[69] = jj_gen; + ; + } + try { + token = jj_consume_token(RBRACE); + pos = token.sourceEnd; + } catch (ParseException e) { + errorMessage = "']' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + {if (true) return new ArrayDeclarator(prefix,expression,pos);} + break; default: - jj_la1[72] = jj_gen; + jj_la1[70] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2616,7 +2643,7 @@ final Token token,token1; {if (true) return new NullLiteral(token);} break; default: - jj_la1[73] = jj_gen; + jj_la1[71] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2636,8 +2663,8 @@ final Token token; case TRUE: case FALSE: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -2646,13 +2673,13 @@ final Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: - case DOLLAR_ID: args = ArgumentList(); break; default: - jj_la1[74] = jj_gen; + jj_la1[72] = jj_gen; ; } try { @@ -2688,7 +2715,7 @@ Token token; ; break; default: - jj_la1[75] = jj_gen; + jj_la1[73] = jj_gen; break label_20; } token = jj_consume_token(COMMA); @@ -2718,7 +2745,7 @@ Token token; static final public Statement StatementNoBreak() throws ParseException { final Statement statement; Token token = null; - if (jj_2_5(2)) { + if (jj_2_4(2)) { statement = expressionStatement(); {if (true) return statement;} } else { @@ -2781,7 +2808,7 @@ Token token; token = jj_consume_token(AT); break; default: - jj_la1[76] = jj_gen; + jj_la1[74] = jj_gen; ; } statement = IncludeStatement(); @@ -2804,7 +2831,7 @@ Token token; currentSegment.add((Outlineable)statement);{if (true) return statement;} break; default: - jj_la1[77] = jj_gen; + jj_la1[75] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2934,8 +2961,8 @@ Token token; case WHILE: case FOREACH: case AT: - case DOLLAR: case BANG: + case TILDE: case PLUS_PLUS: case MINUS_MINUS: case PLUS: @@ -2944,11 +2971,11 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOLLAR: case IDENTIFIER: case LPAREN: case LBRACE: case SEMICOLON: - case DOLLAR_ID: statement = StatementNoBreak(); {if (true) return statement;} break; @@ -2957,7 +2984,7 @@ Token token; {if (true) return statement;} break; default: - jj_la1[78] = jj_gen; + jj_la1[76] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2971,7 +2998,9 @@ Token token; final int startIndex = nodePtr; final AstNode[] blockNodes; final int nbNodes; - jj_consume_token(PHPEND); + final Token phpEnd; + phpEnd = jj_consume_token(PHPEND); + htmlStart = phpEnd.sourceEnd; label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2979,7 +3008,7 @@ Token token; ; break; default: - jj_la1[79] = jj_gen; + jj_la1[77] = jj_gen; break label_21; } phpEchoBlock(); @@ -2993,10 +3022,11 @@ Token token; jj_consume_token(PHPSTARTSHORT); break; default: - jj_la1[80] = jj_gen; + jj_la1[78] = jj_gen; jj_consume_token(-1); throw new ParseException(); } + PHPParser.createNewHTMLCode(); } catch (ParseException e) { errorMessage = "unexpected end of file , '= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 129; 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) { @@ -7355,7 +7395,6 @@ final ArrayList list = new ArrayList(); case 2: jj_3_3(); break; case 3: jj_3_4(); break; case 4: jj_3_5(); break; - case 5: jj_3_6(); break; } } p = p.next; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index e8ab5f2..9ad3eff 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -87,7 +87,7 @@ public final class PHPParser extends PHPParserSuperclass { /** The cursor in expression stack. */ private static int nodePtr; - public static final boolean PARSER_DEBUG = false; + public static final boolean PARSER_DEBUG = true; public final void setFileToParse(final IFile fileToParse) { PHPParser.fileToParse = fileToParse; @@ -331,19 +331,20 @@ public final class PHPParser extends PHPParserSuperclass { public static final void createNewHTMLCode() { final int currentPosition = token.sourceStart; if (currentPosition == htmlStart || + currentPosition < htmlStart || currentPosition > SimpleCharStream.currentBuffer.length()) { return; } - final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,currentPosition+1).toCharArray(); + final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart, + currentPosition).toCharArray(); pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition)); } /** Create a new task. */ - public static final void createNewTask() { - final int currentPosition = token.sourceStart; - final String todo = SimpleCharStream.currentBuffer.substring(currentPosition-3, + public static final void createNewTask(final int todoStart) { + final String todo = SimpleCharStream.currentBuffer.substring(todoStart, SimpleCharStream.currentBuffer.indexOf("\n", - currentPosition)-1); + todoStart)-1); if (!PARSER_DEBUG) { try { setMarker(fileToParse, @@ -378,14 +379,14 @@ TOKEN_MGR_DECLS: TOKEN : { - {PHPParser.createNewHTMLCode();} : PHPPARSING -| {PHPParser.createNewHTMLCode();} : PHPPARSING -| : PHPPARSING +| : PHPPARSING +| "> {PHPParser.htmlStart = PHPParser.token.sourceEnd;} : DEFAULT + "> : DEFAULT } /* Skip any character if we are not in php mode */ @@ -405,6 +406,14 @@ TOKEN_MGR_DECLS: | "\f" } + SPECIAL_TOKEN : +{ + " " : PHPPARSING +| "\t" : PHPPARSING +| "\n" : PHPPARSING +| "\r" : PHPPARSING +| "\f" : PHPPARSING +} /* COMMENTS */ SPECIAL_TOKEN : { @@ -422,9 +431,14 @@ TOKEN_MGR_DECLS: SPECIAL_TOKEN : { - "todo" {PHPParser.createNewTask();} + "todo" } +void todo() : +{Token todoToken;} +{ + todoToken = "TODO" {createNewTask(todoToken.sourceStart);} +} SPECIAL_TOKEN : { "*/" : PHPPARSING @@ -467,9 +481,13 @@ MORE : | | | -| "> -| -| "> +} + + TOKEN : +{ + "> : PHPPARSING +| : PHPPARSING +| "> : PHPPARSING } /* RESERVED WORDS AND LITERALS */ @@ -516,36 +534,35 @@ MORE : } //Misc token - TOKEN : + TOKEN : { - -| -| -| -| -| + : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING } /* OPERATORS */ - TOKEN : -{ - -| -| -| -| -| -| -| -| -| -| -| -| -| >"> -| >>"> -| <_ORL : "OR"> -| <_ANDL : "AND"> + TOKEN : +{ + : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| >"> : PHPPARSING +| >>"> : PHPPARSING +| <_ORL : "OR"> : PHPPARSING +| <_ANDL : "AND"> : PHPPARSING } /* LITERALS */ @@ -580,7 +597,11 @@ MORE : /* IDENTIFIERS */ - TOKEN : + + TOKEN : { : IN_VARIABLE} + + + TOKEN : { |) (||)* > | @@ -599,55 +620,50 @@ MORE : /* SEPARATORS */ - TOKEN : + TOKEN : { - -| -| -| -| -| -| -| -| + : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| : PHPPARSING } /* COMPARATOR */ - TOKEN : + TOKEN : { - "> -| -| -| ="> -| "> -| -| + "> : PHPPARSING +| : PHPPARSING +| : PHPPARSING +| ="> : PHPPARSING +| "> : PHPPARSING +| : PHPPARSING +| : PHPPARSING } /* ASSIGNATION */ - TOKEN : -{ - -| >="> -} - - TOKEN : -{ - > + TOKEN : +{ + : PHPPARSING +| >="> : PHPPARSING } void phpTest() : @@ -681,7 +697,7 @@ void phpFile() : void PhpBlock() : { final PHPEchoBlock phpEchoBlock; - final Token token; + final Token token,phpEnd; } { phpEchoBlock = phpEchoBlock() @@ -700,9 +716,11 @@ void PhpBlock() : PHPeclipsePlugin.log(e); }} ] + {PHPParser.createNewHTMLCode();} Php() try { - + phpEnd = + {htmlStart = phpEnd.sourceEnd;} } catch (ParseException e) { errorMessage = "'?>' expected"; errorLevel = ERROR; @@ -719,8 +737,11 @@ PHPEchoBlock phpEchoBlock() : final Token token, token2; } { - token = expr = Expression() [ ] token2 = + token = {PHPParser.createNewHTMLCode();} + expr = Expression() [ ] token2 = { + htmlStart = token2.sourceEnd; + echoBlock = new PHPEchoBlock(expr,token.sourceStart,token2.sourceEnd); pushOnAstNodes(echoBlock); return echoBlock;} @@ -739,6 +760,7 @@ ClassDeclaration ClassDeclaration() : final Token superclassName, token, extendsToken; String classNameImage = SYNTAX_ERROR_CHAR; String superclassNameImage = null; + final int classEnd; } { token = @@ -791,15 +813,17 @@ ClassDeclaration ClassDeclaration() : currentSegment.add(classDeclaration); currentSegment = classDeclaration; } - ClassBody(classDeclaration) + classEnd = ClassBody(classDeclaration) {currentSegment = (OutlineableWithChildren) currentSegment.getParent(); - classDeclaration.sourceEnd = SimpleCharStream.getPosition(); + classDeclaration.sourceEnd = classEnd; pushOnAstNodes(classDeclaration); return classDeclaration;} } -void ClassBody(final ClassDeclaration classDeclaration) : -{} +int ClassBody(final ClassDeclaration classDeclaration) : +{ +Token token; +} { try { @@ -812,13 +836,15 @@ void ClassBody(final ClassDeclaration classDeclaration) : } ( ClassBodyDeclaration(classDeclaration) )* try { - + token = + {return token.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. 'var', 'function' or '}' expected"; errorLevel = ERROR; errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; errorEnd = SimpleCharStream.getPosition() + 1; processParseExceptionDebug(e); + return PHPParser.token.sourceEnd; } } @@ -894,12 +920,20 @@ FieldDeclaration FieldDeclaration() : */ VariableDeclaration VariableDeclaratorNoSuffix() : { - final Token varName; - Expression initializer = null; + final Token dollar, token, lbrace,rbrace; + Expression expr, initializer = null; Token assignToken; + Variable variable; } { - varName = + dollar = + ( + token = + {variable = new Variable(token.image,dollar.sourceStart,token.sourceEnd);} + | + lbrace = expr = Expression() rbrace = + {variable = new Variable(expr,dollar.sourceStart,rbrace.sourceEnd);} + ) [ assignToken = try { @@ -915,19 +949,15 @@ VariableDeclaration VariableDeclaratorNoSuffix() : { if (initializer == null) { return new VariableDeclaration(currentSegment, - new Variable(varName.image.substring(1), - varName.sourceStart+1, - varName.sourceEnd+1), - varName.sourceStart+1, - varName.sourceEnd+1); + variable, + variable.sourceStart, + variable.sourceEnd); } return new VariableDeclaration(currentSegment, - new Variable(varName.image.substring(1), - varName.sourceStart+1, - varName.sourceEnd+1), + variable, initializer, VariableDeclaration.EQUAL, - varName.sourceStart+1); + variable.sourceStart); } } @@ -1000,59 +1030,12 @@ AbstractVariable VariableDeclaratorId() : } } -/** - * Return a variablename without the $. - * @return a variable name - *//* -Variable Variable(): -{ - final StringBuffer buff; - Expression expression = null; - final Token token; - Variable expr; - final int pos; -} -{ - token = - [ expression = Expression() ] - { - if (expression == null) { - return new Variable(token.image.substring(1), - token.sourceStart+1, - token.sourceEnd+1); - } - String s = expression.toStringExpression(); - buff = new StringBuffer(token.image.length()+s.length()+2); - buff.append(token.image); - buff.append("{"); - buff.append(s); - buff.append("}"); - s = buff.toString(); - return new Variable(s,token.sourceStart+1,token.sourceEnd+1); - } -| - token = - expr = VariableName() - {return new Variable(expr,token.sourceStart,expr.sourceEnd);} -} */ - Variable Variable() : { Variable variable = null; final Token token; } { - token = [variable = Var(token)] - { - if (variable == null) { - return new Variable(token.image.substring(1),token.sourceStart+1,token.sourceEnd+1); - } - final StringBuffer buff = new StringBuffer(); - buff.append(token.image.substring(1)); - buff.append(variable.toStringExpression()); - return new Variable(buff.toString(),token.sourceStart+1,variable.sourceEnd+1); - } -| token = variable = Var(token) { return new Variable(variable,token.sourceStart,variable.sourceEnd); @@ -1062,88 +1045,23 @@ Variable Variable() : Variable Var(final Token dollar) : { Variable variable = null; - final Token token; + final Token token,token2; ConstantIdentifier constant; + Expression expression; } { - token = [variable = Var(token)] - {if (variable == null) { - return new Variable(token.image.substring(1),token.sourceStart+1,token.sourceEnd+1); - } - final StringBuffer buff = new StringBuffer(); - buff.append(token.image.substring(1)); - buff.append(variable.toStringExpression()); - return new Variable(buff.toString(),dollar.sourceStart,variable.sourceEnd); - } -| - LOOKAHEAD( ) token = variable = Var(token) {return new Variable(variable,dollar.sourceStart,variable.sourceEnd);} | - constant = VariableName() - {return new Variable(constant.name,dollar.sourceStart,constant.sourceEnd);} -} - -/** - * A Variable name (without the $) - * @return a variable name String - */ -ConstantIdentifier VariableName(): -{ - final StringBuffer buff; - String expr; - Expression expression = null; - final Token token; - Token token2 = null; -} -{ token = expression = Expression() token2 = - {expr = expression.toStringExpression(); - buff = new StringBuffer(expr.length()+2); - buff.append("{"); - buff.append(expr); - buff.append("}"); - expr = buff.toString(); - return new ConstantIdentifier(expr, - token.sourceStart, - token2.sourceEnd); - - } -| - token = - [ expression = Expression() token2 = ] { - if (expression == null) { - return new ConstantIdentifier(token.image, - token.sourceStart, - token.sourceEnd); - } - expr = expression.toStringExpression(); - buff = new StringBuffer(token.image.length()+expr.length()+2); - buff.append(token.image); - buff.append("{"); - buff.append(expr); - buff.append("}"); - expr = buff.toString(); - return new ConstantIdentifier(expr, - token.sourceStart, - token2.sourceEnd); - } -/*| - - var = VariableName() - { - return new Variable(var, - var.sourceStart-1, - var.sourceEnd); + return new Variable(expression, + dollar.sourceStart, + token2.sourceEnd); } | - token = - { - return new Variable(token.image, - token.sourceStart+1, - token.sourceEnd+1); - } */ + token = + {return new Variable(token.image,dollar.sourceStart,token.sourceEnd);} } Expression VariableInitializer() : @@ -1685,7 +1603,29 @@ Expression UnaryExpression() : /* expr = UnaryExpressionNoPrefix() //why did I had that ? {return new PrefixedUnaryExpression(expr,OperatorIds.AND,pos);} | */ - expr = AtNotUnaryExpression() {return expr;} + expr = AtNotTildeUnaryExpression() {return expr;} +} + +Expression AtNotTildeUnaryExpression() : +{ + final Expression expr; + final Token token; +} +{ + token = + expr = AtNotTildeUnaryExpression() + {return new PrefixedUnaryExpression(expr,OperatorIds.AT,token.sourceStart);} +| + token = + expr = AtNotTildeUnaryExpression() + {return new PrefixedUnaryExpression(expr,OperatorIds.TWIDDLE,token.sourceStart);} +| + token = + expr = AtNotUnaryExpression() + {return new PrefixedUnaryExpression(expr,OperatorIds.NOT,token.sourceStart);} +| + expr = UnaryExpressionNoPrefix() + {return expr;} } /** @@ -1716,11 +1656,11 @@ Expression UnaryExpressionNoPrefix() : final Token token; } { - token = expr = AtNotUnaryExpression() {return new PrefixedUnaryExpression(expr, + token = expr = AtNotTildeUnaryExpression() {return new PrefixedUnaryExpression(expr, OperatorIds.PLUS, token.sourceStart);} | - token = expr = AtNotUnaryExpression() {return new PrefixedUnaryExpression(expr, + token = expr = AtNotTildeUnaryExpression() {return new PrefixedUnaryExpression(expr, OperatorIds.MINUS, token.sourceStart);} | @@ -1909,14 +1849,26 @@ Expression ClassIdentifier(): AbstractVariable VariableSuffix(final AbstractVariable prefix) : { Expression expression = null; - final Token classAccessToken; + final Token classAccessToken,lbrace,rbrace; Token token; int pos; } { classAccessToken = try { - ( expression = VariableName() | expression = Variable() ) + ( + lbrace = expression = Expression() rbrace = + { + expression = new Variable(expression, + lbrace.sourceStart, + rbrace.sourceEnd); + } + | + token = + {expression = new Variable(token.image,token.sourceStart,token.sourceEnd);} + | + expression = Variable() + ) } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected"; errorLevel = ERROR; @@ -1942,6 +1894,21 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) : processParseExceptionDebug(e); } {return new ArrayDeclarator(prefix,expression,pos);} +| + token = {pos = token.sourceEnd+1;} + [ expression = Expression() {pos = expression.sourceEnd+1;} + | expression = Type() {pos = expression.sourceEnd+1;}] //Not good + try { + token = + {pos = token.sourceEnd;} + } catch (ParseException e) { + errorMessage = "']' expected"; + errorLevel = ERROR; + errorStart = pos; + errorEnd = pos; + processParseExceptionDebug(e); + } + {return new ArrayDeclarator(prefix,expression,pos);}//todo : check braces here } Literal Literal() : @@ -2162,11 +2129,15 @@ HTMLBlock htmlBlock() : final int startIndex = nodePtr; final AstNode[] blockNodes; final int nbNodes; + final Token phpEnd; } { - (phpEchoBlock())* + phpEnd = + {htmlStart = phpEnd.sourceEnd;} + (phpEchoBlock())* try { ( | ) + {PHPParser.createNewHTMLCode();} } catch (ParseException e) { errorMessage = "unexpected end of file , ' {keyword = InclusionStatement.INCLUDE_ONCE;pos=token.sourceEnd;}) try { expr = Expression() - {pos=expr.sourceEnd;} + {pos = expr.sourceEnd;} } catch (ParseException e) { if (errorMessage != null) { throw e; } errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected"; errorLevel = ERROR; - errorStart = pos+1; - errorEnd = pos+1; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; expr = new ConstantIdentifier(SYNTAX_ERROR_CHAR,pos,pos); processParseExceptionDebug(e); } - {inclusionStatement = new InclusionStatement(currentSegment, - keyword, - expr, - token.sourceStart); - currentSegment.add(inclusionStatement); - } try { token2 = + {pos=token2.sourceEnd;} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected"; errorLevel = ERROR; - errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1; - errorEnd = SimpleCharStream.getPosition() + 1; - throw e; + errorStart = e.currentToken.next.sourceStart; + errorEnd = e.currentToken.next.sourceEnd; + processParseExceptionDebug(e); + } + { + inclusionStatement = new InclusionStatement(currentSegment, + keyword, + expr, + token.sourceStart, + pos); + currentSegment.add(inclusionStatement); + return inclusionStatement; } - {inclusionStatement.sourceEnd = token2.sourceEnd; - return inclusionStatement;} } PrintExpression PrintExpression() : @@ -2448,7 +2424,13 @@ Block Block() : processParseExceptionDebug(e); } ( statement = BlockStatement() {list.add(statement);pos = statement.sourceEnd+1;} - | statement = htmlBlock() {list.add(statement);pos = statement.sourceEnd+1;})* + | statement = htmlBlock() {if (statement != null) { + list.add(statement); + pos = statement.sourceEnd+1; + } + pos = PHPParser.token.sourceEnd+1; + } + )* try { token2 = {pos = token2.sourceEnd+1;} @@ -2652,6 +2634,7 @@ AbstractCase[] switchStatementBrace() : return abcase; } } + /** * A Switch statement with : ... endswitch; * @param start the begin offset of the switch @@ -2712,8 +2695,9 @@ AbstractCase switchLabel0() : { expr = SwitchLabel() ( statement = BlockStatementNoBreak() {stmts.add(statement);} - | statement = htmlBlock() {stmts.add(statement);})* - [ statement = BreakStatement() {stmts.add(statement);}] + | statement = htmlBlock() {if (statement != null) {stmts.add(statement);}} + | statement = BreakStatement() {stmts.add(statement);})* + //[ statement = BreakStatement() {stmts.add(statement);}] { final int listSize = stmts.size(); final Statement[] stmtsArray = new Statement[listSize]; @@ -2854,7 +2838,7 @@ IfStatement IfStatement0(final Expression condition, final int start,final int e {stmts = new ArrayList();} ( statement = Statement() {stmts.add(statement);} - | statement = htmlBlock() {stmts.add(statement);})* + | statement = htmlBlock() {if (statement != null) {stmts.add(statement);}})* {endStatements = SimpleCharStream.getPosition();} (elseifStatement = ElseIfStatementColon() {elseIfList.add(elseifStatement);})* [elseStatement = ElseStatementColon()] @@ -2950,7 +2934,7 @@ ElseIf ElseIfStatementColon() : { elseifToken = condition = Condition("elseif") ( statement = Statement() {list.add(statement);} - | statement = htmlBlock() {list.add(statement);})* + | statement = htmlBlock() {if (statement != null) {list.add(statement);}})* { final int sizeList = list.size(); final Statement[] stmtsArray = new Statement[sizeList]; @@ -2968,7 +2952,7 @@ Else ElseStatementColon() : } { elseToken = ( statement = Statement() {list.add(statement);} - | statement = htmlBlock() {list.add(statement);})* + | statement = htmlBlock() {if (statement != null) {list.add(statement);}})* { final int sizeList = list.size(); final Statement[] stmtsArray = new Statement[sizeList]; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java b/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java index 33e3a98..85ec698 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java @@ -8,135 +8,135 @@ public interface PHPParserConstants { int PHPSTARTLONG = 2; int PHPECHOSTART = 3; int PHPEND = 4; - int SINGLE_LINE_COMMENT = 15; - int CLASS = 21; - int FUNCTION = 22; - int VAR = 23; - int IF = 24; - int ELSEIF = 25; - int ELSE = 26; - int ARRAY = 27; - int BREAK = 28; - int LIST = 29; - int PRINT = 30; - int ECHO = 31; - int INCLUDE = 32; - int REQUIRE = 33; - int INCLUDE_ONCE = 34; - int REQUIRE_ONCE = 35; - int GLOBAL = 36; - int DEFINE = 37; - int STATIC = 38; - int CLASSACCESS = 39; - int STATICCLASSACCESS = 40; - int ARRAYASSIGN = 41; - int CASE = 42; - int CONST = 43; - int CONTINUE = 44; - int _DEFAULT = 45; - int DO = 46; - int EXTENDS = 47; - int FOR = 48; - int GOTO = 49; - int NEW = 50; - int NULL = 51; - int RETURN = 52; - int SUPER = 53; - int SWITCH = 54; - int THIS = 55; - int TRUE = 56; - int FALSE = 57; - int WHILE = 58; - int ENDWHILE = 59; - int ENDSWITCH = 60; - int ENDIF = 61; - int ENDFOR = 62; - int FOREACH = 63; - int AS = 64; - int STRING = 65; - int OBJECT = 66; - int BOOL = 67; - int BOOLEAN = 68; - int REAL = 69; - int DOUBLE = 70; - int FLOAT = 71; - int INT = 72; - int INTEGER = 73; - int AT = 74; - int DOLLAR = 75; - int BANG = 76; - int TILDE = 77; - int HOOK = 78; - int COLON = 79; - int OR_OR = 80; - int AND_AND = 81; - int PLUS_PLUS = 82; - int MINUS_MINUS = 83; - int PLUS = 84; - int MINUS = 85; - int STAR = 86; - int SLASH = 87; - int BIT_AND = 88; - int BIT_OR = 89; - int XOR = 90; - int REMAINDER = 91; - int LSHIFT = 92; - int RSIGNEDSHIFT = 93; - int RUNSIGNEDSHIFT = 94; - int _ORL = 95; - int _ANDL = 96; - int INTEGER_LITERAL = 97; - int DECIMAL_LITERAL = 98; - int HEX_LITERAL = 99; - int OCTAL_LITERAL = 100; - int FLOATING_POINT_LITERAL = 101; - int EXPONENT = 102; - int STRING_LITERAL = 103; - int STRING_1 = 104; - int STRING_2 = 105; - int STRING_3 = 106; - int IDENTIFIER = 107; - int LETTER = 108; - int DIGIT = 109; - int SPECIAL = 110; - int LPAREN = 111; - int RPAREN = 112; - int LBRACE = 113; - int RBRACE = 114; - int LBRACKET = 115; - int RBRACKET = 116; - int SEMICOLON = 117; - int COMMA = 118; - int DOT = 119; - int GT = 120; - int LT = 121; - int EQUAL_EQUAL = 122; - int LE = 123; - int GE = 124; - int NOT_EQUAL = 125; - int DIF = 126; - int BANGDOUBLEEQUAL = 127; - int TRIPLEEQUAL = 128; - int ASSIGN = 129; - int PLUSASSIGN = 130; - int MINUSASSIGN = 131; - int STARASSIGN = 132; - int SLASHASSIGN = 133; - int ANDASSIGN = 134; - int ORASSIGN = 135; - int XORASSIGN = 136; - int DOTASSIGN = 137; - int REMASSIGN = 138; - int TILDEEQUAL = 139; - int LSHIFTASSIGN = 140; - int RSIGNEDSHIFTASSIGN = 141; - int DOLLAR_ID = 142; + int SINGLE_LINE_COMMENT = 20; + int CLASS = 27; + int FUNCTION = 28; + int VAR = 29; + int IF = 30; + int ELSEIF = 31; + int ELSE = 32; + int ARRAY = 33; + int BREAK = 34; + int LIST = 35; + int PRINT = 36; + int ECHO = 37; + int INCLUDE = 38; + int REQUIRE = 39; + int INCLUDE_ONCE = 40; + int REQUIRE_ONCE = 41; + int GLOBAL = 42; + int DEFINE = 43; + int STATIC = 44; + int CLASSACCESS = 45; + int STATICCLASSACCESS = 46; + int ARRAYASSIGN = 47; + int CASE = 48; + int CONST = 49; + int CONTINUE = 50; + int _DEFAULT = 51; + int DO = 52; + int EXTENDS = 53; + int FOR = 54; + int GOTO = 55; + int NEW = 56; + int NULL = 57; + int RETURN = 58; + int SUPER = 59; + int SWITCH = 60; + int THIS = 61; + int TRUE = 62; + int FALSE = 63; + int WHILE = 64; + int ENDWHILE = 65; + int ENDSWITCH = 66; + int ENDIF = 67; + int ENDFOR = 68; + int FOREACH = 69; + int AS = 70; + int STRING = 71; + int OBJECT = 72; + int BOOL = 73; + int BOOLEAN = 74; + int REAL = 75; + int DOUBLE = 76; + int FLOAT = 77; + int INT = 78; + int INTEGER = 79; + int AT = 80; + int BANG = 81; + int TILDE = 82; + int HOOK = 83; + int COLON = 84; + int OR_OR = 85; + int AND_AND = 86; + int PLUS_PLUS = 87; + int MINUS_MINUS = 88; + int PLUS = 89; + int MINUS = 90; + int STAR = 91; + int SLASH = 92; + int BIT_AND = 93; + int BIT_OR = 94; + int XOR = 95; + int REMAINDER = 96; + int LSHIFT = 97; + int RSIGNEDSHIFT = 98; + int RUNSIGNEDSHIFT = 99; + int _ORL = 100; + int _ANDL = 101; + int INTEGER_LITERAL = 102; + int DECIMAL_LITERAL = 103; + int HEX_LITERAL = 104; + int OCTAL_LITERAL = 105; + int FLOATING_POINT_LITERAL = 106; + int EXPONENT = 107; + int STRING_LITERAL = 108; + int STRING_1 = 109; + int STRING_2 = 110; + int STRING_3 = 111; + int DOLLAR = 112; + int IDENTIFIER = 113; + int LETTER = 114; + int DIGIT = 115; + int SPECIAL = 116; + int LPAREN = 117; + int RPAREN = 118; + int LBRACE = 119; + int RBRACE = 120; + int LBRACKET = 121; + int RBRACKET = 122; + int SEMICOLON = 123; + int COMMA = 124; + int DOT = 125; + int GT = 126; + int LT = 127; + int EQUAL_EQUAL = 128; + int LE = 129; + int GE = 130; + int NOT_EQUAL = 131; + int DIF = 132; + int BANGDOUBLEEQUAL = 133; + int TRIPLEEQUAL = 134; + int ASSIGN = 135; + int PLUSASSIGN = 136; + int MINUSASSIGN = 137; + int STARASSIGN = 138; + int SLASHASSIGN = 139; + int ANDASSIGN = 140; + int ORASSIGN = 141; + int XORASSIGN = 142; + int DOTASSIGN = 143; + int REMASSIGN = 144; + int TILDEEQUAL = 145; + int LSHIFTASSIGN = 146; + int RSIGNEDSHIFTASSIGN = 147; int DEFAULT = 0; int PHPPARSING = 1; int IN_SINGLE_LINE_COMMENT = 2; - int IN_FORMAL_COMMENT = 3; - int IN_MULTI_LINE_COMMENT = 4; + int IN_VARIABLE = 3; + int IN_FORMAL_COMMENT = 4; + int IN_MULTI_LINE_COMMENT = 5; String[] tokenImage = { "", @@ -150,16 +150,22 @@ public interface PHPParserConstants { "\"\\n\"", "\"\\r\"", "\"\\f\"", + "\" \"", + "\"\\t\"", + "\"\\n\"", + "\"\\r\"", + "\"\\f\"", "\"//\"", "\"#\"", - "", + "", "\"/*\"", "", - "", + "", "\"todo\"", + "\"TODO\"", "\"*/\"", "\"*/\"", - "", + "", "\"class\"", "\"function\"", "\"var\"", @@ -214,7 +220,6 @@ public interface PHPParserConstants { "\"int\"", "\"integer\"", "\"@\"", - "\"$\"", "\"!\"", "\"~\"", "\"?\"", @@ -246,6 +251,7 @@ public interface PHPParserConstants { "", "", "", + "\"$\"", "", "", "", @@ -281,7 +287,6 @@ public interface PHPParserConstants { "\"~=\"", "\"<<=\"", "\">>=\"", - "", }; } diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java b/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java index 434a067..1b01b7c 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java @@ -42,6 +42,9 @@ static private final int jjMoveStringLiteralDfa0_0() { case 60: return jjMoveStringLiteralDfa1_0(0xeL); + case 84: + case 116: + return jjMoveStringLiteralDfa1_0(0x800000L); default : return 1; } @@ -61,6 +64,9 @@ static private final int jjMoveStringLiteralDfa1_0(long active0) jjmatchedPos = 1; } return jjMoveStringLiteralDfa2_0(active0, 0xcL); + case 79: + case 111: + return jjMoveStringLiteralDfa2_0(active0, 0x800000L); default : return 2; } @@ -79,6 +85,9 @@ static private final int jjMoveStringLiteralDfa2_0(long old0, long active0) if ((active0 & 0x8L) != 0L) return jjStopAtPos(2, 3); break; + case 68: + case 100: + return jjMoveStringLiteralDfa3_0(active0, 0x800000L); case 80: case 112: return jjMoveStringLiteralDfa3_0(active0, 0x4L); @@ -100,9 +109,15 @@ static private final int jjMoveStringLiteralDfa3_0(long old0, long active0) case 72: case 104: return jjMoveStringLiteralDfa4_0(active0, 0x4L); + case 79: + case 111: + if ((active0 & 0x800000L) != 0L) + return jjStopAtPos(3, 23); + break; default : return 4; } + return 4; } static private final int jjMoveStringLiteralDfa4_0(long old0, long active0) { @@ -124,20 +139,20 @@ static private final int jjMoveStringLiteralDfa4_0(long old0, long active0) } return 5; } -static private final int jjMoveStringLiteralDfa0_4() +static private final int jjMoveStringLiteralDfa0_5() { switch(curChar) { case 42: - return jjMoveStringLiteralDfa1_4(0x80000L); + return jjMoveStringLiteralDfa1_5(0x2000000L); case 84: case 116: - return jjMoveStringLiteralDfa1_4(0x20000L); + return jjMoveStringLiteralDfa1_5(0x400000L); default : return 1; } } -static private final int jjMoveStringLiteralDfa1_4(long active0) +static private final int jjMoveStringLiteralDfa1_5(long active0) { try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { @@ -146,18 +161,18 @@ static private final int jjMoveStringLiteralDfa1_4(long active0) switch(curChar) { case 47: - if ((active0 & 0x80000L) != 0L) - return jjStopAtPos(1, 19); + if ((active0 & 0x2000000L) != 0L) + return jjStopAtPos(1, 25); break; case 79: case 111: - return jjMoveStringLiteralDfa2_4(active0, 0x20000L); + return jjMoveStringLiteralDfa2_5(active0, 0x400000L); default : return 2; } return 2; } -static private final int jjMoveStringLiteralDfa2_4(long old0, long active0) +static private final int jjMoveStringLiteralDfa2_5(long old0, long active0) { if (((active0 &= old0)) == 0L) return 2; @@ -169,12 +184,12 @@ static private final int jjMoveStringLiteralDfa2_4(long old0, long active0) { case 68: case 100: - return jjMoveStringLiteralDfa3_4(active0, 0x20000L); + return jjMoveStringLiteralDfa3_5(active0, 0x400000L); default : return 3; } } -static private final int jjMoveStringLiteralDfa3_4(long old0, long active0) +static private final int jjMoveStringLiteralDfa3_5(long old0, long active0) { if (((active0 &= old0)) == 0L) return 3; @@ -186,8 +201,8 @@ static private final int jjMoveStringLiteralDfa3_4(long old0, long active0) { case 79: case 111: - if ((active0 & 0x20000L) != 0L) - return jjStopAtPos(3, 17); + if ((active0 & 0x400000L) != 0L) + return jjStopAtPos(3, 22); break; default : return 4; @@ -222,7 +237,7 @@ static private final int jjMoveStringLiteralDfa0_2() return jjMoveStringLiteralDfa1_2(0x10L); case 84: case 116: - return jjMoveStringLiteralDfa1_2(0x20000L); + return jjMoveStringLiteralDfa1_2(0x400000L); default : return jjMoveNfa_2(0, 0); } @@ -242,7 +257,7 @@ static private final int jjMoveStringLiteralDfa1_2(long active0) break; case 79: case 111: - return jjMoveStringLiteralDfa2_2(active0, 0x20000L); + return jjMoveStringLiteralDfa2_2(active0, 0x400000L); default : break; } @@ -261,7 +276,7 @@ static private final int jjMoveStringLiteralDfa2_2(long old0, long active0) { case 68: case 100: - return jjMoveStringLiteralDfa3_2(active0, 0x20000L); + return jjMoveStringLiteralDfa3_2(active0, 0x400000L); default : break; } @@ -280,8 +295,8 @@ static private final int jjMoveStringLiteralDfa3_2(long old0, long active0) { case 79: case 111: - if ((active0 & 0x20000L) != 0L) - return jjStopAtPos(3, 17); + if ((active0 & 0x400000L) != 0L) + return jjStopAtPos(3, 22); break; default : break; @@ -340,15 +355,15 @@ static private final int jjMoveNfa_2(int startState, int curPos) case 0: if ((0x2400L & l) != 0L) { - if (kind > 15) - kind = 15; + if (kind > 20) + kind = 20; } if (curChar == 13) jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if (curChar == 10 && kind > 15) - kind = 15; + if (curChar == 10 && kind > 20) + kind = 20; break; case 2: if (curChar == 13) @@ -399,124 +414,122 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac switch (pos) { case 0: - if ((active0 & 0x4800L) != 0L || (active1 & 0x800000L) != 0L || (active2 & 0x20L) != 0L) + if ((active0 & 0x90000L) != 0L || (active1 & 0x10000000L) != 0L || (active2 & 0x800L) != 0L) return 2; - if ((active1 & 0x800L) != 0L) - return 16; - if ((active1 & 0x80000000000000L) != 0L || (active2 & 0x200L) != 0L) + if ((active1 & 0x2000000000000000L) != 0L || (active2 & 0x8000L) != 0L) return 8; - if ((active0 & 0xfffffc7fffe00000L) != 0L || (active1 & 0x1800003ffL) != 0L) + if ((active0 & 0xffff1ffff8000000L) != 0L || (active1 & 0x300000ffffL) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; return 14; } return -1; case 1: - if ((active0 & 0x4000L) != 0L) + if ((active0 & 0x80000L) != 0L) return 0; - if ((active0 & 0x400001000000L) != 0L || (active1 & 0x80000041L) != 0L) + if ((active0 & 0x10000040000000L) != 0L || (active1 & 0x1000001040L) != 0L) return 14; - if ((active0 & 0xffffbc7ffee00000L) != 0L || (active1 & 0x1000003beL) != 0L) + if ((active0 & 0xffef1fffb8000000L) != 0L || (active1 & 0x200000efbfL) != 0L) { if (jjmatchedPos != 1) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 1; } return 14; } return -1; case 2: - if ((active0 & 0x8005000000800000L) != 0L || (active1 & 0x100000300L) != 0L) - return 14; - if ((active0 & 0x7ffabc7ffe600000L) != 0L || (active1 & 0xfeL) != 0L) + if ((active0 & 0xfeaf1fff98000000L) != 0L || (active1 & 0x3f9fL) != 0L) { if (jjmatchedPos != 2) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 2; } return 14; } + if ((active0 & 0x140000020000000L) != 0L || (active1 & 0x200000c020L) != 0L) + return 14; return -1; case 3: - if ((active0 & 0x18a0400a6000000L) != 0L || (active1 & 0x38L) != 0L) + if ((active0 & 0x6281002980000000L) != 0L || (active1 & 0xe00L) != 0L) return 14; - if ((active0 & 0xfe70b87f58600000L) != 0L || (active1 & 0x2c6L) != 0L) + if ((active0 & 0x9c2e1fd618000000L) != 0L || (active1 & 0xb1bfL) != 0L) { if (jjmatchedPos != 3) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 3; } return 14; } return -1; case 4: - if ((active0 & 0x2620080058200000L) != 0L || (active1 & 0x80L) != 0L) + if ((active0 & 0x8802001608000000L) != 0L || (active1 & 0x2009L) != 0L) return 14; - if ((active0 & 0xd850b07f02400000L) != 0L || (active1 & 0x256L) != 0L) + if ((active0 & 0x142c1fc090000000L) != 0L || (active1 & 0x95b6L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 4; return 14; } return -1; case 5: - if ((active0 & 0x4050007002000000L) != 0L || (active1 & 0x46L) != 0L) - return 14; - if ((active0 & 0x9800b00f00400000L) != 0L || (active1 & 0x210L) != 0L) + if ((active0 & 0x2c03c010000000L) != 0L || (active1 & 0x8426L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 5; return 14; } + if ((active0 & 0x14001c0080000000L) != 0L || (active1 & 0x1190L) != 0L) + return 14; return -1; case 6: - if ((active0 & 0x8000a00f00000000L) != 0L || (active1 & 0x210L) != 0L) + if ((active0 & 0x2803c000000000L) != 0L || (active1 & 0x8420L) != 0L) return 14; - if ((active0 & 0x1800100000400000L) != 0L) + if ((active0 & 0x4000010000000L) != 0L || (active1 & 0x6L) != 0L) { if (jjmatchedPos != 6) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 6; } return 14; } return -1; case 7: - if ((active0 & 0x800100000400000L) != 0L) + if ((active0 & 0x4000010000000L) != 0L || (active1 & 0x2L) != 0L) return 14; - if ((active0 & 0x1000000c00000000L) != 0L) + if ((active0 & 0x30000000000L) != 0L || (active1 & 0x4L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 7; return 14; } return -1; case 8: - if ((active0 & 0xc00000000L) != 0L) + if ((active1 & 0x4L) != 0L) + return 14; + if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 8; return 14; } - if ((active0 & 0x1000000000000000L) != 0L) - return 14; return -1; case 9: - if ((active0 & 0xc00000000L) != 0L) + if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 9; return 14; } return -1; case 10: - if ((active0 & 0xc00000000L) != 0L) + if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 107; + jjmatchedKind = 113; jjmatchedPos = 10; return 14; } @@ -542,126 +555,126 @@ static private final int jjMoveStringLiteralDfa0_1() switch(curChar) { case 33: - jjmatchedKind = 76; - return jjMoveStringLiteralDfa1_1(0x0L, 0xa000000000000000L, 0x0L); + jjmatchedKind = 81; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x28L); case 35: - return jjStopAtPos(0, 12); + return jjStopAtPos(0, 17); case 36: - return jjStartNfaWithStates_1(0, 75, 16); + return jjStopAtPos(0, 112); case 37: - jjmatchedKind = 91; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L); + jjmatchedKind = 96; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x10000L); case 38: - jjmatchedKind = 88; - return jjMoveStringLiteralDfa1_1(0x0L, 0x20000L, 0x40L); + jjmatchedKind = 93; + return jjMoveStringLiteralDfa1_1(0x0L, 0x400000L, 0x1000L); case 40: - return jjStopAtPos(0, 111); + return jjStopAtPos(0, 117); case 41: - return jjStopAtPos(0, 112); + return jjStopAtPos(0, 118); case 42: - jjmatchedKind = 86; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x10L); + jjmatchedKind = 91; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L); case 43: - jjmatchedKind = 84; - return jjMoveStringLiteralDfa1_1(0x0L, 0x40000L, 0x4L); + jjmatchedKind = 89; + return jjMoveStringLiteralDfa1_1(0x0L, 0x800000L, 0x100L); case 44: - return jjStopAtPos(0, 118); + return jjStopAtPos(0, 124); case 45: - jjmatchedKind = 85; - return jjMoveStringLiteralDfa1_1(0x8000000000L, 0x80000L, 0x8L); + jjmatchedKind = 90; + return jjMoveStringLiteralDfa1_1(0x200000000000L, 0x1000000L, 0x200L); case 46: - jjmatchedKind = 119; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x200L); + jjmatchedKind = 125; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x8000L); case 47: - jjmatchedKind = 87; - return jjMoveStringLiteralDfa1_1(0x4800L, 0x0L, 0x20L); + jjmatchedKind = 92; + return jjMoveStringLiteralDfa1_1(0x90000L, 0x0L, 0x800L); case 58: - jjmatchedKind = 79; - return jjMoveStringLiteralDfa1_1(0x10000000000L, 0x0L, 0x0L); + jjmatchedKind = 84; + return jjMoveStringLiteralDfa1_1(0x400000000000L, 0x0L, 0x0L); case 59: - return jjStopAtPos(0, 117); + return jjStopAtPos(0, 123); case 60: - jjmatchedKind = 121; - return jjMoveStringLiteralDfa1_1(0x0L, 0x4800000010000000L, 0x1000L); + jjmatchedKind = 127; + return jjMoveStringLiteralDfa1_1(0x0L, 0x200000000L, 0x40012L); case 61: - jjmatchedKind = 129; - return jjMoveStringLiteralDfa1_1(0x20000000000L, 0x400000000000000L, 0x1L); + jjmatchedKind = 135; + return jjMoveStringLiteralDfa1_1(0x800000000000L, 0x0L, 0x41L); case 62: - jjmatchedKind = 120; - return jjMoveStringLiteralDfa1_1(0x0L, 0x1000000060000000L, 0x2000L); + jjmatchedKind = 126; + return jjMoveStringLiteralDfa1_1(0x0L, 0xc00000000L, 0x80004L); case 63: - jjmatchedKind = 78; + jjmatchedKind = 83; return jjMoveStringLiteralDfa1_1(0x10L, 0x0L, 0x0L); case 64: - return jjStopAtPos(0, 74); + return jjStopAtPos(0, 80); case 91: - return jjStopAtPos(0, 115); + return jjStopAtPos(0, 121); case 93: - return jjStopAtPos(0, 116); + return jjStopAtPos(0, 122); case 94: - jjmatchedKind = 90; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x100L); + jjmatchedKind = 95; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x4000L); case 65: case 97: - return jjMoveStringLiteralDfa1_1(0x8000000L, 0x100000001L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x200000000L, 0x2000000040L, 0x0L); case 66: case 98: - return jjMoveStringLiteralDfa1_1(0x10000000L, 0x18L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x400000000L, 0x600L, 0x0L); case 67: case 99: - return jjMoveStringLiteralDfa1_1(0x1c0000200000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x7000008000000L, 0x0L, 0x0L); case 68: case 100: - return jjMoveStringLiteralDfa1_1(0x602000000000L, 0x40L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x18080000000000L, 0x1000L, 0x0L); case 69: case 101: - return jjMoveStringLiteralDfa1_1(0x7800800086000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x20002180000000L, 0x1eL, 0x0L); case 70: case 102: - return jjMoveStringLiteralDfa1_1(0x8201000000400000L, 0x80L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x8040000010000000L, 0x2020L, 0x0L); case 71: case 103: - return jjMoveStringLiteralDfa1_1(0x2001000000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x80040000000000L, 0x0L, 0x0L); case 73: case 105: - return jjMoveStringLiteralDfa1_1(0x501000000L, 0x300L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x14040000000L, 0xc000L, 0x0L); case 76: case 108: - return jjMoveStringLiteralDfa1_1(0x20000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x800000000L, 0x0L, 0x0L); case 78: case 110: - return jjMoveStringLiteralDfa1_1(0xc000000000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x300000000000000L, 0x0L, 0x0L); case 79: case 111: - return jjMoveStringLiteralDfa1_1(0x0L, 0x80000004L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x1000000100L, 0x0L); case 80: case 112: - return jjMoveStringLiteralDfa1_1(0x40000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x1000000000L, 0x0L, 0x0L); case 82: case 114: - return jjMoveStringLiteralDfa1_1(0x10000a00000000L, 0x20L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x400028000000000L, 0x800L, 0x0L); case 83: case 115: - return jjMoveStringLiteralDfa1_1(0x60004000000000L, 0x2L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x1800100000000000L, 0x80L, 0x0L); case 84: case 116: - return jjMoveStringLiteralDfa1_1(0x180000000000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x6000000000000000L, 0x0L, 0x0L); case 86: case 118: - return jjMoveStringLiteralDfa1_1(0x800000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x20000000L, 0x0L, 0x0L); case 87: case 119: - return jjMoveStringLiteralDfa1_1(0x400000000000000L, 0x0L, 0x0L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x1L, 0x0L); case 123: - return jjStopAtPos(0, 113); + return jjStopAtPos(0, 119); case 124: - jjmatchedKind = 89; - return jjMoveStringLiteralDfa1_1(0x0L, 0x10000L, 0x80L); + jjmatchedKind = 94; + return jjMoveStringLiteralDfa1_1(0x0L, 0x200000L, 0x2000L); case 125: - return jjStopAtPos(0, 114); + return jjStopAtPos(0, 120); case 126: - jjmatchedKind = 77; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x800L); + jjmatchedKind = 82; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x20000L); default : return jjMoveNfa_1(3, 0); } @@ -676,63 +689,51 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l switch(curChar) { case 38: - if ((active1 & 0x20000L) != 0L) - return jjStopAtPos(1, 81); + if ((active1 & 0x400000L) != 0L) + return jjStopAtPos(1, 86); break; case 42: - if ((active0 & 0x4000L) != 0L) - return jjStartNfaWithStates_1(1, 14, 0); + if ((active0 & 0x80000L) != 0L) + return jjStartNfaWithStates_1(1, 19, 0); break; case 43: - if ((active1 & 0x40000L) != 0L) - return jjStopAtPos(1, 82); + if ((active1 & 0x800000L) != 0L) + return jjStopAtPos(1, 87); break; case 45: - if ((active1 & 0x80000L) != 0L) - return jjStopAtPos(1, 83); + if ((active1 & 0x1000000L) != 0L) + return jjStopAtPos(1, 88); break; case 47: - if ((active0 & 0x800L) != 0L) - return jjStopAtPos(1, 11); + if ((active0 & 0x10000L) != 0L) + return jjStopAtPos(1, 16); break; case 58: - if ((active0 & 0x10000000000L) != 0L) - return jjStopAtPos(1, 40); + if ((active0 & 0x400000000000L) != 0L) + return jjStopAtPos(1, 46); break; case 60: - if ((active1 & 0x10000000L) != 0L) + if ((active1 & 0x200000000L) != 0L) { - jjmatchedKind = 92; + jjmatchedKind = 97; jjmatchedPos = 1; } - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x1000L); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x40000L); case 61: - if ((active1 & 0x400000000000000L) != 0L) + if ((active2 & 0x1L) != 0L) { - jjmatchedKind = 122; - jjmatchedPos = 1; - } - else if ((active1 & 0x800000000000000L) != 0L) - return jjStopAtPos(1, 123); - else if ((active1 & 0x1000000000000000L) != 0L) - return jjStopAtPos(1, 124); - else if ((active1 & 0x2000000000000000L) != 0L) - { - jjmatchedKind = 125; + jjmatchedKind = 128; jjmatchedPos = 1; } + else if ((active2 & 0x2L) != 0L) + return jjStopAtPos(1, 129); else if ((active2 & 0x4L) != 0L) return jjStopAtPos(1, 130); else if ((active2 & 0x8L) != 0L) - return jjStopAtPos(1, 131); - else if ((active2 & 0x10L) != 0L) - return jjStopAtPos(1, 132); - else if ((active2 & 0x20L) != 0L) - return jjStopAtPos(1, 133); - else if ((active2 & 0x40L) != 0L) - return jjStopAtPos(1, 134); - else if ((active2 & 0x80L) != 0L) - return jjStopAtPos(1, 135); + { + jjmatchedKind = 131; + jjmatchedPos = 1; + } else if ((active2 & 0x100L) != 0L) return jjStopAtPos(1, 136); else if ((active2 & 0x200L) != 0L) @@ -741,84 +742,96 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l return jjStopAtPos(1, 138); else if ((active2 & 0x800L) != 0L) return jjStopAtPos(1, 139); - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x8000000000000000L, active2, 0x1L); + else if ((active2 & 0x1000L) != 0L) + return jjStopAtPos(1, 140); + else if ((active2 & 0x2000L) != 0L) + return jjStopAtPos(1, 141); + else if ((active2 & 0x4000L) != 0L) + return jjStopAtPos(1, 142); + else if ((active2 & 0x8000L) != 0L) + return jjStopAtPos(1, 143); + else if ((active2 & 0x10000L) != 0L) + return jjStopAtPos(1, 144); + else if ((active2 & 0x20000L) != 0L) + return jjStopAtPos(1, 145); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x60L); case 62: if ((active0 & 0x10L) != 0L) return jjStopAtPos(1, 4); - else if ((active0 & 0x8000000000L) != 0L) - return jjStopAtPos(1, 39); - else if ((active0 & 0x20000000000L) != 0L) - return jjStopAtPos(1, 41); - else if ((active1 & 0x20000000L) != 0L) + else if ((active0 & 0x200000000000L) != 0L) + return jjStopAtPos(1, 45); + else if ((active0 & 0x800000000000L) != 0L) + return jjStopAtPos(1, 47); + else if ((active1 & 0x400000000L) != 0L) { - jjmatchedKind = 93; + jjmatchedKind = 98; jjmatchedPos = 1; } - else if ((active1 & 0x4000000000000000L) != 0L) - return jjStopAtPos(1, 126); - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x40000000L, active2, 0x2000L); + else if ((active2 & 0x10L) != 0L) + return jjStopAtPos(1, 132); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x800000000L, active2, 0x80000L); case 65: case 97: - return jjMoveStringLiteralDfa2_1(active0, 0x200040000800000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x8001000020000000L, active1, 0L, active2, 0L); case 66: case 98: - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x4L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x100L, active2, 0L); case 67: case 99: - return jjMoveStringLiteralDfa2_1(active0, 0x80000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x2000000000L, active1, 0L, active2, 0L); case 69: case 101: - return jjMoveStringLiteralDfa2_1(active0, 0x14202a00000000L, active1, 0x20L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x5080a8000000000L, active1, 0x800L, active2, 0L); case 70: case 102: - if ((active0 & 0x1000000L) != 0L) - return jjStartNfaWithStates_1(1, 24, 14); + if ((active0 & 0x40000000L) != 0L) + return jjStartNfaWithStates_1(1, 30, 14); break; case 72: case 104: - return jjMoveStringLiteralDfa2_1(active0, 0x480000000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x2000000000000000L, active1, 0x1L, active2, 0L); case 73: case 105: - return jjMoveStringLiteralDfa2_1(active0, 0x20000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x800000000L, active1, 0L, active2, 0L); case 76: case 108: - return jjMoveStringLiteralDfa2_1(active0, 0x1006200000L, active1, 0x80L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x40188000000L, active1, 0x2000L, active2, 0L); case 78: case 110: - return jjMoveStringLiteralDfa2_1(active0, 0x7800000500000000L, active1, 0x100000300L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x14000000000L, active1, 0x200000c01eL, active2, 0L); case 79: case 111: - if ((active0 & 0x400000000000L) != 0L) + if ((active0 & 0x10000000000000L) != 0L) { - jjmatchedKind = 46; + jjmatchedKind = 52; jjmatchedPos = 1; } - return jjMoveStringLiteralDfa2_1(active0, 0x8003180000000000L, active1, 0x58L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0xc6000000000000L, active1, 0x1620L, active2, 0L); case 82: case 114: - if ((active1 & 0x80000000L) != 0L) - return jjStartNfaWithStates_1(1, 95, 14); - return jjMoveStringLiteralDfa2_1(active0, 0x100000058000000L, active1, 0L, active2, 0L); + if ((active1 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_1(1, 100, 14); + return jjMoveStringLiteralDfa2_1(active0, 0x4000001600000000L, active1, 0L, active2, 0L); case 83: case 115: - if ((active1 & 0x1L) != 0L) - return jjStartNfaWithStates_1(1, 64, 14); + if ((active1 & 0x40L) != 0L) + return jjStartNfaWithStates_1(1, 70, 14); break; case 84: case 116: - return jjMoveStringLiteralDfa2_1(active0, 0x4000000000L, active1, 0x2L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x100000000000L, active1, 0x80L, active2, 0L); case 85: case 117: - return jjMoveStringLiteralDfa2_1(active0, 0x28000000400000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0xa00000010000000L, active1, 0L, active2, 0L); case 87: case 119: - return jjMoveStringLiteralDfa2_1(active0, 0x40000000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x1000000000000000L, active1, 0L, active2, 0L); case 88: case 120: - return jjMoveStringLiteralDfa2_1(active0, 0x800000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa2_1(active0, 0x20000000000000L, active1, 0L, active2, 0L); case 124: - if ((active1 & 0x10000L) != 0L) - return jjStopAtPos(1, 80); + if ((active1 & 0x200000L) != 0L) + return jjStopAtPos(1, 85); break; default : break; @@ -837,88 +850,88 @@ static private final int jjMoveStringLiteralDfa2_1(long old0, long active0, long switch(curChar) { case 61: - if ((active1 & 0x8000000000000000L) != 0L) - return jjStopAtPos(2, 127); - else if ((active2 & 0x1L) != 0L) - return jjStopAtPos(2, 128); - else if ((active2 & 0x1000L) != 0L) - return jjStopAtPos(2, 140); - else if ((active2 & 0x2000L) != 0L) - return jjStopAtPos(2, 141); + if ((active2 & 0x20L) != 0L) + return jjStopAtPos(2, 133); + else if ((active2 & 0x40L) != 0L) + return jjStopAtPos(2, 134); + else if ((active2 & 0x40000L) != 0L) + return jjStopAtPos(2, 146); + else if ((active2 & 0x80000L) != 0L) + return jjStopAtPos(2, 147); break; case 62: - if ((active1 & 0x40000000L) != 0L) - return jjStopAtPos(2, 94); + if ((active1 & 0x800000000L) != 0L) + return jjStopAtPos(2, 99); break; case 65: case 97: - return jjMoveStringLiteralDfa3_1(active0, 0x4000200000L, active1, 0x20L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x100008000000L, active1, 0x800L, active2, 0L); case 67: case 99: - return jjMoveStringLiteralDfa3_1(active0, 0x500000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x14000000000L, active1, 0L, active2, 0L); case 68: case 100: - if ((active1 & 0x100000000L) != 0L) - return jjStartNfaWithStates_1(2, 96, 14); - return jjMoveStringLiteralDfa3_1(active0, 0x7800000000000000L, active1, 0L, active2, 0L); + if ((active1 & 0x2000000000L) != 0L) + return jjStartNfaWithStates_1(2, 101, 14); + return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x1eL, active2, 0L); case 69: case 101: - return jjMoveStringLiteralDfa3_1(active0, 0x10000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x400000000L, active1, 0L, active2, 0L); case 70: case 102: - return jjMoveStringLiteralDfa3_1(active0, 0x202000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x8080000000000L, active1, 0L, active2, 0L); case 72: case 104: - return jjMoveStringLiteralDfa3_1(active0, 0x80000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x2000000000L, active1, 0L, active2, 0L); case 73: case 105: - return jjMoveStringLiteralDfa3_1(active0, 0x4c0000040000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x3000001000000000L, active1, 0x1L, active2, 0L); case 74: case 106: - return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x4L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x100L, active2, 0L); case 76: case 108: - return jjMoveStringLiteralDfa3_1(active0, 0x208000000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x8200000000000000L, active1, 0L, active2, 0L); case 78: case 110: - return jjMoveStringLiteralDfa3_1(active0, 0x180000400000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x6000010000000L, active1, 0L, active2, 0L); case 79: case 111: - return jjMoveStringLiteralDfa3_1(active0, 0x1000000000L, active1, 0x98L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x40000000000L, active1, 0x2600L, active2, 0L); case 80: case 112: - return jjMoveStringLiteralDfa3_1(active0, 0x20000000000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x800000000000000L, active1, 0L, active2, 0L); case 81: case 113: - return jjMoveStringLiteralDfa3_1(active0, 0xa00000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x28000000000L, active1, 0L, active2, 0L); case 82: case 114: - if ((active0 & 0x800000L) != 0L) - return jjStartNfaWithStates_1(2, 23, 14); - else if ((active0 & 0x1000000000000L) != 0L) + if ((active0 & 0x20000000L) != 0L) + return jjStartNfaWithStates_1(2, 29, 14); + else if ((active0 & 0x40000000000000L) != 0L) { - jjmatchedKind = 48; + jjmatchedKind = 54; jjmatchedPos = 2; } - return jjMoveStringLiteralDfa3_1(active0, 0x8000000008000000L, active1, 0x2L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x200000000L, active1, 0xa0L, active2, 0L); case 83: case 115: - return jjMoveStringLiteralDfa3_1(active0, 0x40026000000L, active1, 0L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x1000980000000L, active1, 0L, active2, 0L); case 84: case 116: - if ((active1 & 0x100L) != 0L) + if ((active1 & 0x4000L) != 0L) { - jjmatchedKind = 72; + jjmatchedKind = 78; jjmatchedPos = 2; } - return jjMoveStringLiteralDfa3_1(active0, 0x12800000000000L, active1, 0x200L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x4a0000000000000L, active1, 0x8000L, active2, 0L); case 85: case 117: - return jjMoveStringLiteralDfa3_1(active0, 0x100000000000000L, active1, 0x40L, active2, 0L); + return jjMoveStringLiteralDfa3_1(active0, 0x4000000000000000L, active1, 0x1000L, active2, 0L); case 87: case 119: - if ((active0 & 0x4000000000000L) != 0L) - return jjStartNfaWithStates_1(2, 50, 14); + if ((active0 & 0x100000000000000L) != 0L) + return jjStartNfaWithStates_1(2, 56, 14); break; default : break; @@ -938,69 +951,69 @@ static private final int jjMoveStringLiteralDfa3_1(long old0, long active0, long { case 65: case 97: - return jjMoveStringLiteralDfa4_1(active0, 0x200018000000L, active1, 0x80L); + return jjMoveStringLiteralDfa4_1(active0, 0x8000600000000L, active1, 0x2000L); case 66: case 98: - return jjMoveStringLiteralDfa4_1(active0, 0x1000000000L, active1, 0x40L); + return jjMoveStringLiteralDfa4_1(active0, 0x40000000000L, active1, 0x1000L); case 67: case 99: - return jjMoveStringLiteralDfa4_1(active0, 0x400000L, active1, 0L); + return jjMoveStringLiteralDfa4_1(active0, 0x10000000L, active1, 0L); case 69: case 101: - if ((active0 & 0x4000000L) != 0L) + if ((active0 & 0x100000000L) != 0L) { - jjmatchedKind = 26; + jjmatchedKind = 32; jjmatchedPos = 3; } - else if ((active0 & 0x40000000000L) != 0L) - return jjStartNfaWithStates_1(3, 42, 14); - else if ((active0 & 0x100000000000000L) != 0L) - return jjStartNfaWithStates_1(3, 56, 14); - return jjMoveStringLiteralDfa4_1(active0, 0x8020800002000000L, active1, 0x204L); + else if ((active0 & 0x1000000000000L) != 0L) + return jjStartNfaWithStates_1(3, 48, 14); + else if ((active0 & 0x4000000000000000L) != 0L) + return jjStartNfaWithStates_1(3, 62, 14); + return jjMoveStringLiteralDfa4_1(active0, 0x820000080000000L, active1, 0x8120L); case 70: case 102: - return jjMoveStringLiteralDfa4_1(active0, 0x4000000000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_1(active0, 0L, active1, 0x10L); case 73: case 105: - return jjMoveStringLiteralDfa4_1(active0, 0x2000002000000000L, active1, 0x2L); + return jjMoveStringLiteralDfa4_1(active0, 0x80000000000L, active1, 0x88L); case 76: case 108: - if ((active0 & 0x8000000000000L) != 0L) - return jjStartNfaWithStates_1(3, 51, 14); - else if ((active1 & 0x8L) != 0L) + if ((active0 & 0x200000000000000L) != 0L) + return jjStartNfaWithStates_1(3, 57, 14); + else if ((active1 & 0x200L) != 0L) { - jjmatchedKind = 67; + jjmatchedKind = 73; jjmatchedPos = 3; } - else if ((active1 & 0x20L) != 0L) - return jjStartNfaWithStates_1(3, 69, 14); - return jjMoveStringLiteralDfa4_1(active0, 0x400000500000000L, active1, 0x10L); + else if ((active1 & 0x800L) != 0L) + return jjStartNfaWithStates_1(3, 75, 14); + return jjMoveStringLiteralDfa4_1(active0, 0x14000000000L, active1, 0x401L); case 78: case 110: - return jjMoveStringLiteralDfa4_1(active0, 0x40000000L, active1, 0L); + return jjMoveStringLiteralDfa4_1(active0, 0x1000000000L, active1, 0L); case 79: case 111: - if ((active0 & 0x80000000L) != 0L) - return jjStartNfaWithStates_1(3, 31, 14); - else if ((active0 & 0x2000000000000L) != 0L) - return jjStartNfaWithStates_1(3, 49, 14); + if ((active0 & 0x2000000000L) != 0L) + return jjStartNfaWithStates_1(3, 37, 14); + else if ((active0 & 0x80000000000000L) != 0L) + return jjStartNfaWithStates_1(3, 55, 14); break; case 83: case 115: - if ((active0 & 0x80000000000000L) != 0L) - return jjStartNfaWithStates_1(3, 55, 14); - return jjMoveStringLiteralDfa4_1(active0, 0x1200080000200000L, active1, 0L); + if ((active0 & 0x2000000000000000L) != 0L) + return jjStartNfaWithStates_1(3, 61, 14); + return jjMoveStringLiteralDfa4_1(active0, 0x8002000008000000L, active1, 0x4L); case 84: case 116: - if ((active0 & 0x20000000L) != 0L) - return jjStartNfaWithStates_1(3, 29, 14); - return jjMoveStringLiteralDfa4_1(active0, 0x40104000000000L, active1, 0L); + if ((active0 & 0x800000000L) != 0L) + return jjStartNfaWithStates_1(3, 35, 14); + return jjMoveStringLiteralDfa4_1(active0, 0x1004100000000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa4_1(active0, 0x10000a00000000L, active1, 0L); + return jjMoveStringLiteralDfa4_1(active0, 0x400028000000000L, active1, 0L); case 87: case 119: - return jjMoveStringLiteralDfa4_1(active0, 0x800000000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_1(active0, 0L, active1, 0x2L); default : break; } @@ -1019,74 +1032,74 @@ static private final int jjMoveStringLiteralDfa4_1(long old0, long active0, long { case 65: case 97: - return jjMoveStringLiteralDfa5_1(active0, 0x8000001000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0x40000000000L, active1, 0x20L); case 67: case 99: - return jjMoveStringLiteralDfa5_1(active0, 0x40000000000000L, active1, 0x4L); + return jjMoveStringLiteralDfa5_1(active0, 0x1000000000000000L, active1, 0x100L); case 69: case 101: - if ((active0 & 0x200000000000000L) != 0L) - return jjStartNfaWithStates_1(4, 57, 14); - else if ((active0 & 0x400000000000000L) != 0L) - return jjStartNfaWithStates_1(4, 58, 14); - return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x10L); + if ((active0 & 0x8000000000000000L) != 0L) + return jjStartNfaWithStates_1(4, 63, 14); + else if ((active1 & 0x1L) != 0L) + return jjStartNfaWithStates_1(4, 64, 14); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x400L); case 70: case 102: - if ((active0 & 0x2000000000000000L) != 0L) - return jjStartNfaWithStates_1(4, 61, 14); + if ((active1 & 0x8L) != 0L) + return jjStartNfaWithStates_1(4, 67, 14); break; case 71: case 103: - return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x200L); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x8000L); case 72: case 104: - return jjMoveStringLiteralDfa5_1(active0, 0x800000000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x2L); case 73: case 105: - return jjMoveStringLiteralDfa5_1(active0, 0x104a02000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0x4128080000000L, active1, 0L); case 75: case 107: - if ((active0 & 0x10000000L) != 0L) - return jjStartNfaWithStates_1(4, 28, 14); + if ((active0 & 0x400000000L) != 0L) + return jjStartNfaWithStates_1(4, 34, 14); break; case 76: case 108: - return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x40L); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x1000L); case 78: case 110: - return jjMoveStringLiteralDfa5_1(active0, 0x802000000000L, active1, 0x2L); + return jjMoveStringLiteralDfa5_1(active0, 0x20080000000000L, active1, 0x80L); case 79: case 111: - return jjMoveStringLiteralDfa5_1(active0, 0x4000000000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x10L); case 82: case 114: - if ((active0 & 0x20000000000000L) != 0L) - return jjStartNfaWithStates_1(4, 53, 14); - return jjMoveStringLiteralDfa5_1(active0, 0x10000000000000L, active1, 0L); + if ((active0 & 0x800000000000000L) != 0L) + return jjStartNfaWithStates_1(4, 59, 14); + return jjMoveStringLiteralDfa5_1(active0, 0x400000000000000L, active1, 0L); case 83: case 115: - if ((active0 & 0x200000L) != 0L) - return jjStartNfaWithStates_1(4, 21, 14); + if ((active0 & 0x8000000L) != 0L) + return jjStartNfaWithStates_1(4, 27, 14); break; case 84: case 116: - if ((active0 & 0x40000000L) != 0L) - return jjStartNfaWithStates_1(4, 30, 14); - else if ((active0 & 0x80000000000L) != 0L) - return jjStartNfaWithStates_1(4, 43, 14); - else if ((active1 & 0x80L) != 0L) - return jjStartNfaWithStates_1(4, 71, 14); - return jjMoveStringLiteralDfa5_1(active0, 0x400000L, active1, 0L); + if ((active0 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_1(4, 36, 14); + else if ((active0 & 0x2000000000000L) != 0L) + return jjStartNfaWithStates_1(4, 49, 14); + else if ((active1 & 0x2000L) != 0L) + return jjStartNfaWithStates_1(4, 77, 14); + return jjMoveStringLiteralDfa5_1(active0, 0x10000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa5_1(active0, 0x200500000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0x8014000000000L, active1, 0L); case 87: case 119: - return jjMoveStringLiteralDfa5_1(active0, 0x1000000000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x4L); case 89: case 121: - if ((active0 & 0x8000000L) != 0L) - return jjStartNfaWithStates_1(4, 27, 14); + if ((active0 & 0x200000000L) != 0L) + return jjStartNfaWithStates_1(4, 33, 14); break; default : break; @@ -1106,59 +1119,59 @@ static private final int jjMoveStringLiteralDfa5_1(long old0, long active0, long { case 65: case 97: - return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x10L); + return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x400L); case 67: case 99: - if ((active0 & 0x4000000000L) != 0L) - return jjStartNfaWithStates_1(5, 38, 14); - return jjMoveStringLiteralDfa6_1(active0, 0x8000000000000000L, active1, 0L); + if ((active0 & 0x100000000000L) != 0L) + return jjStartNfaWithStates_1(5, 44, 14); + return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x20L); case 68: case 100: - return jjMoveStringLiteralDfa6_1(active0, 0x800500000000L, active1, 0L); + return jjMoveStringLiteralDfa6_1(active0, 0x20014000000000L, active1, 0L); case 69: case 101: - if ((active0 & 0x2000000000L) != 0L) - return jjStartNfaWithStates_1(5, 37, 14); - else if ((active1 & 0x40L) != 0L) - return jjStartNfaWithStates_1(5, 70, 14); - return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x200L); + if ((active0 & 0x80000000000L) != 0L) + return jjStartNfaWithStates_1(5, 43, 14); + else if ((active1 & 0x1000L) != 0L) + return jjStartNfaWithStates_1(5, 76, 14); + return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x8000L); case 70: case 102: - if ((active0 & 0x2000000L) != 0L) - return jjStartNfaWithStates_1(5, 25, 14); + if ((active0 & 0x80000000L) != 0L) + return jjStartNfaWithStates_1(5, 31, 14); break; case 71: case 103: - if ((active1 & 0x2L) != 0L) - return jjStartNfaWithStates_1(5, 65, 14); + if ((active1 & 0x80L) != 0L) + return jjStartNfaWithStates_1(5, 71, 14); break; case 72: case 104: - if ((active0 & 0x40000000000000L) != 0L) - return jjStartNfaWithStates_1(5, 54, 14); + if ((active0 & 0x1000000000000000L) != 0L) + return jjStartNfaWithStates_1(5, 60, 14); break; case 73: case 105: - return jjMoveStringLiteralDfa6_1(active0, 0x1800000000400000L, active1, 0L); + return jjMoveStringLiteralDfa6_1(active0, 0x10000000L, active1, 0x6L); case 76: case 108: - if ((active0 & 0x1000000000L) != 0L) - return jjStartNfaWithStates_1(5, 36, 14); - return jjMoveStringLiteralDfa6_1(active0, 0x200000000000L, active1, 0L); + if ((active0 & 0x40000000000L) != 0L) + return jjStartNfaWithStates_1(5, 42, 14); + return jjMoveStringLiteralDfa6_1(active0, 0x8000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x10000000000000L) != 0L) - return jjStartNfaWithStates_1(5, 52, 14); - return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L, active1, 0L); + if ((active0 & 0x400000000000000L) != 0L) + return jjStartNfaWithStates_1(5, 58, 14); + return jjMoveStringLiteralDfa6_1(active0, 0x4000000000000L, active1, 0L); case 82: case 114: - if ((active0 & 0x4000000000000000L) != 0L) - return jjStartNfaWithStates_1(5, 62, 14); - return jjMoveStringLiteralDfa6_1(active0, 0xa00000000L, active1, 0L); + if ((active1 & 0x10L) != 0L) + return jjStartNfaWithStates_1(5, 68, 14); + return jjMoveStringLiteralDfa6_1(active0, 0x28000000000L, active1, 0L); case 84: case 116: - if ((active1 & 0x4L) != 0L) - return jjStartNfaWithStates_1(5, 66, 14); + if ((active1 & 0x100L) != 0L) + return jjStartNfaWithStates_1(5, 72, 14); break; default : break; @@ -1178,51 +1191,51 @@ static private final int jjMoveStringLiteralDfa6_1(long old0, long active0, long { case 69: case 101: - if ((active0 & 0x100000000L) != 0L) + if ((active0 & 0x4000000000L) != 0L) { - jjmatchedKind = 32; + jjmatchedKind = 38; jjmatchedPos = 6; } - else if ((active0 & 0x200000000L) != 0L) + else if ((active0 & 0x8000000000L) != 0L) { - jjmatchedKind = 33; + jjmatchedKind = 39; jjmatchedPos = 6; } - return jjMoveStringLiteralDfa7_1(active0, 0xc00000000L, active1, 0L); + return jjMoveStringLiteralDfa7_1(active0, 0x30000000000L, active1, 0L); case 72: case 104: - if ((active0 & 0x8000000000000000L) != 0L) - return jjStartNfaWithStates_1(6, 63, 14); + if ((active1 & 0x20L) != 0L) + return jjStartNfaWithStates_1(6, 69, 14); break; case 76: case 108: - return jjMoveStringLiteralDfa7_1(active0, 0x800000000000000L, active1, 0L); + return jjMoveStringLiteralDfa7_1(active0, 0L, active1, 0x2L); case 78: case 110: - if ((active1 & 0x10L) != 0L) - return jjStartNfaWithStates_1(6, 68, 14); + if ((active1 & 0x400L) != 0L) + return jjStartNfaWithStates_1(6, 74, 14); break; case 79: case 111: - return jjMoveStringLiteralDfa7_1(active0, 0x400000L, active1, 0L); + return jjMoveStringLiteralDfa7_1(active0, 0x10000000L, active1, 0L); case 82: case 114: - if ((active1 & 0x200L) != 0L) - return jjStartNfaWithStates_1(6, 73, 14); + if ((active1 & 0x8000L) != 0L) + return jjStartNfaWithStates_1(6, 79, 14); break; case 83: case 115: - if ((active0 & 0x800000000000L) != 0L) - return jjStartNfaWithStates_1(6, 47, 14); + if ((active0 & 0x20000000000000L) != 0L) + return jjStartNfaWithStates_1(6, 53, 14); break; case 84: case 116: - if ((active0 & 0x200000000000L) != 0L) - return jjStartNfaWithStates_1(6, 45, 14); - return jjMoveStringLiteralDfa7_1(active0, 0x1000000000000000L, active1, 0L); + if ((active0 & 0x8000000000000L) != 0L) + return jjStartNfaWithStates_1(6, 51, 14); + return jjMoveStringLiteralDfa7_1(active0, 0L, active1, 0x4L); case 85: case 117: - return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L, active1, 0L); + return jjMoveStringLiteralDfa7_1(active0, 0x4000000000000L, active1, 0L); default : break; } @@ -1234,61 +1247,61 @@ static private final int jjMoveStringLiteralDfa7_1(long old0, long active0, long return jjStartNfa_1(5, old0, old1, 0L); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { - jjStopStringLiteralDfa_1(6, active0, 0L, 0L); + jjStopStringLiteralDfa_1(6, active0, active1, 0L); return 7; } switch(curChar) { case 95: - return jjMoveStringLiteralDfa8_1(active0, 0xc00000000L); + return jjMoveStringLiteralDfa8_1(active0, 0x30000000000L, active1, 0L); case 67: case 99: - return jjMoveStringLiteralDfa8_1(active0, 0x1000000000000000L); + return jjMoveStringLiteralDfa8_1(active0, 0L, active1, 0x4L); case 69: case 101: - if ((active0 & 0x100000000000L) != 0L) - return jjStartNfaWithStates_1(7, 44, 14); - else if ((active0 & 0x800000000000000L) != 0L) - return jjStartNfaWithStates_1(7, 59, 14); + if ((active0 & 0x4000000000000L) != 0L) + return jjStartNfaWithStates_1(7, 50, 14); + else if ((active1 & 0x2L) != 0L) + return jjStartNfaWithStates_1(7, 65, 14); break; case 78: case 110: - if ((active0 & 0x400000L) != 0L) - return jjStartNfaWithStates_1(7, 22, 14); + if ((active0 & 0x10000000L) != 0L) + return jjStartNfaWithStates_1(7, 28, 14); break; default : break; } - return jjStartNfa_1(6, active0, 0L, 0L); + return jjStartNfa_1(6, active0, active1, 0L); } -static private final int jjMoveStringLiteralDfa8_1(long old0, long active0) +static private final int jjMoveStringLiteralDfa8_1(long old0, long active0, long old1, long active1) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(6, old0, 0L, 0L); + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjStartNfa_1(6, old0, old1, 0L); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { - jjStopStringLiteralDfa_1(7, active0, 0L, 0L); + jjStopStringLiteralDfa_1(7, active0, active1, 0L); return 8; } switch(curChar) { case 72: case 104: - if ((active0 & 0x1000000000000000L) != 0L) - return jjStartNfaWithStates_1(8, 60, 14); + if ((active1 & 0x4L) != 0L) + return jjStartNfaWithStates_1(8, 66, 14); break; case 79: case 111: - return jjMoveStringLiteralDfa9_1(active0, 0xc00000000L); + return jjMoveStringLiteralDfa9_1(active0, 0x30000000000L, active1, 0L); default : break; } - return jjStartNfa_1(7, active0, 0L, 0L); + return jjStartNfa_1(7, active0, active1, 0L); } -static private final int jjMoveStringLiteralDfa9_1(long old0, long active0) +static private final int jjMoveStringLiteralDfa9_1(long old0, long active0, long old1, long active1) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(7, old0, 0L, 0L); + if (((active0 &= old0) | (active1 &= old1)) == 0L) + return jjStartNfa_1(7, old0, old1, 0L); try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_1(8, active0, 0L, 0L); @@ -1298,7 +1311,7 @@ static private final int jjMoveStringLiteralDfa9_1(long old0, long active0) { case 78: case 110: - return jjMoveStringLiteralDfa10_1(active0, 0xc00000000L); + return jjMoveStringLiteralDfa10_1(active0, 0x30000000000L); default : break; } @@ -1317,7 +1330,7 @@ static private final int jjMoveStringLiteralDfa10_1(long old0, long active0) { case 67: case 99: - return jjMoveStringLiteralDfa11_1(active0, 0xc00000000L); + return jjMoveStringLiteralDfa11_1(active0, 0x30000000000L); default : break; } @@ -1336,10 +1349,10 @@ static private final int jjMoveStringLiteralDfa11_1(long old0, long active0) { case 69: case 101: - if ((active0 & 0x400000000L) != 0L) - return jjStartNfaWithStates_1(11, 34, 14); - else if ((active0 & 0x800000000L) != 0L) - return jjStartNfaWithStates_1(11, 35, 14); + if ((active0 & 0x10000000000L) != 0L) + return jjStartNfaWithStates_1(11, 40, 14); + else if ((active0 & 0x20000000000L) != 0L) + return jjStartNfaWithStates_1(11, 41, 14); break; default : break; @@ -1353,7 +1366,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) { int[] nextStates; int startsAt = 0; - jjnewStateCnt = 64; + jjnewStateCnt = 61; int i = 1; jjstateSet[0] = startState; int j, kind = 0x7fffffff; @@ -1375,22 +1388,20 @@ static private final int jjMoveNfa_1(int startState, int curPos) jjCheckNAddStates(7, 12); else if (curChar == 34) jjCheckNAddStates(13, 18); - else if (curChar == 36) - jjstateSet[jjnewStateCnt++] = 16; else if (curChar == 46) jjCheckNAdd(8); else if (curChar == 47) jjstateSet[jjnewStateCnt++] = 2; if ((0x3fe000000000000L & l) != 0L) { - if (kind > 97) - kind = 97; + if (kind > 102) + kind = 102; jjCheckNAddTwoStates(5, 6); } else if (curChar == 48) { - if (kind > 97) - kind = 97; + if (kind > 102) + kind = 102; jjCheckNAddStates(19, 21); } break; @@ -1399,8 +1410,8 @@ static private final int jjMoveNfa_1(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xffff7fffffffffffL & l) != 0L && kind > 13) - kind = 13; + if ((0xffff7fffffffffffL & l) != 0L && kind > 18) + kind = 18; break; case 2: if (curChar == 42) @@ -1409,15 +1420,15 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 4: if ((0x3fe000000000000L & l) == 0L) break; - if (kind > 97) - kind = 97; + if (kind > 102) + kind = 102; jjCheckNAddTwoStates(5, 6); break; case 5: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 97) - kind = 97; + if (kind > 102) + kind = 102; jjCheckNAddTwoStates(5, 6); break; case 7: @@ -1427,8 +1438,8 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 8: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 101) - kind = 101; + if (kind > 106) + kind = 106; jjCheckNAddStates(22, 24); break; case 10: @@ -1438,167 +1449,156 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 11: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 101) - kind = 101; + if (kind > 106) + kind = 106; jjCheckNAddTwoStates(11, 12); break; case 14: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 107) - kind = 107; + if (kind > 113) + kind = 113; jjstateSet[jjnewStateCnt++] = 14; break; case 15: - if (curChar == 36) - jjstateSet[jjnewStateCnt++] = 16; - break; - case 17: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 142) - kind = 142; - jjstateSet[jjnewStateCnt++] = 17; - break; - case 18: if ((0x3ff000000000000L & l) != 0L) jjCheckNAddStates(0, 6); break; - case 19: + case 16: if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(19, 20); + jjCheckNAddTwoStates(16, 17); break; - case 20: + case 17: if (curChar != 46) break; - if (kind > 101) - kind = 101; + if (kind > 106) + kind = 106; jjCheckNAddStates(25, 27); break; - case 21: + case 18: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 101) - kind = 101; + if (kind > 106) + kind = 106; jjCheckNAddStates(25, 27); break; - case 23: + case 20: if ((0x280000000000L & l) != 0L) - jjCheckNAdd(24); + jjCheckNAdd(21); break; - case 24: + case 21: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 101) - kind = 101; - jjCheckNAddTwoStates(24, 12); + if (kind > 106) + kind = 106; + jjCheckNAddTwoStates(21, 12); break; - case 25: + case 22: if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(25, 26); + jjCheckNAddTwoStates(22, 23); break; - case 27: + case 24: if ((0x280000000000L & l) != 0L) - jjCheckNAdd(28); + jjCheckNAdd(25); break; - case 28: + case 25: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 101) - kind = 101; - jjCheckNAddTwoStates(28, 12); + if (kind > 106) + kind = 106; + jjCheckNAddTwoStates(25, 12); break; - case 29: + case 26: if ((0x3ff000000000000L & l) != 0L) jjCheckNAddStates(28, 30); break; - case 31: + case 28: if ((0x280000000000L & l) != 0L) - jjCheckNAdd(32); + jjCheckNAdd(29); break; - case 32: + case 29: if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(32, 12); + jjCheckNAddTwoStates(29, 12); break; - case 33: + case 30: if (curChar != 48) break; - if (kind > 97) - kind = 97; + if (kind > 102) + kind = 102; jjCheckNAddStates(19, 21); break; - case 35: + case 32: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 97) - kind = 97; - jjCheckNAddTwoStates(35, 6); + if (kind > 102) + kind = 102; + jjCheckNAddTwoStates(32, 6); break; - case 36: + case 33: if ((0xff000000000000L & l) == 0L) break; - if (kind > 97) - kind = 97; - jjCheckNAddTwoStates(36, 6); + if (kind > 102) + kind = 102; + jjCheckNAddTwoStates(33, 6); break; - case 37: + case 34: if (curChar == 34) jjCheckNAddStates(13, 18); break; - case 38: + case 35: if ((0xfffffffbffffffffL & l) != 0L) jjCheckNAddStates(31, 33); break; - case 40: + case 37: jjCheckNAddStates(31, 33); break; - case 41: - if (curChar == 34 && kind > 103) - kind = 103; + case 38: + if (curChar == 34 && kind > 108) + kind = 108; break; - case 42: + case 39: if ((0xfffffffbffffffffL & l) != 0L) jjCheckNAddStates(34, 36); break; - case 44: + case 41: jjCheckNAddStates(34, 36); break; - case 45: - if (curChar == 34 && kind > 104) - kind = 104; + case 42: + if (curChar == 34 && kind > 109) + kind = 109; break; - case 46: + case 43: if (curChar == 39) jjCheckNAddStates(7, 12); break; - case 47: + case 44: if ((0xffffff7fffffffffL & l) != 0L) jjCheckNAddStates(37, 39); break; - case 49: + case 46: jjCheckNAddStates(37, 39); break; - case 50: - if (curChar == 39 && kind > 103) - kind = 103; + case 47: + if (curChar == 39 && kind > 108) + kind = 108; break; - case 51: + case 48: if ((0xffffff7fffffffffL & l) != 0L) jjCheckNAddStates(40, 42); break; - case 53: + case 50: jjCheckNAddStates(40, 42); break; - case 54: - if (curChar == 39 && kind > 105) - kind = 105; + case 51: + if (curChar == 39 && kind > 110) + kind = 110; break; - case 56: - case 58: + case 53: + case 55: jjCheckNAddStates(43, 45); break; - case 60: - case 62: + case 57: + case 59: jjCheckNAddStates(46, 48); break; default : break; @@ -1615,145 +1615,137 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 3: if ((0x87fffffe87fffffeL & l) != 0L) { - if (kind > 107) - kind = 107; + if (kind > 113) + kind = 113; jjCheckNAdd(14); } else if (curChar == 96) jjCheckNAddStates(49, 54); break; case 1: - if (kind > 13) - kind = 13; + if (kind > 18) + kind = 18; break; case 6: - if ((0x100000001000L & l) != 0L && kind > 97) - kind = 97; + if ((0x100000001000L & l) != 0L && kind > 102) + kind = 102; break; case 9: if ((0x2000000020L & l) != 0L) jjAddStates(55, 56); break; case 12: - if ((0x5000000050L & l) != 0L && kind > 101) - kind = 101; + if ((0x5000000050L & l) != 0L && kind > 106) + kind = 106; break; case 13: case 14: if ((0x87fffffe87fffffeL & l) == 0L) break; - if (kind > 107) - kind = 107; + if (kind > 113) + kind = 113; jjCheckNAdd(14); break; - case 16: - case 17: - if ((0x87fffffe87fffffeL & l) == 0L) - break; - if (kind > 142) - kind = 142; - jjCheckNAdd(17); - break; - case 22: + case 19: if ((0x2000000020L & l) != 0L) jjAddStates(57, 58); break; - case 26: + case 23: if ((0x2000000020L & l) != 0L) jjAddStates(59, 60); break; - case 30: + case 27: if ((0x2000000020L & l) != 0L) jjAddStates(61, 62); break; - case 34: + case 31: if ((0x100000001000000L & l) != 0L) - jjCheckNAdd(35); + jjCheckNAdd(32); break; - case 35: + case 32: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 97) - kind = 97; - jjCheckNAddTwoStates(35, 6); + if (kind > 102) + kind = 102; + jjCheckNAddTwoStates(32, 6); break; - case 38: + case 35: if ((0xffffffffefffffffL & l) != 0L) jjCheckNAddStates(31, 33); break; - case 39: + case 36: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 40; + jjstateSet[jjnewStateCnt++] = 37; break; - case 40: + case 37: jjCheckNAddStates(31, 33); break; - case 42: + case 39: if ((0xffffffffefffffffL & l) != 0L) jjCheckNAddStates(34, 36); break; - case 43: + case 40: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 44; + jjstateSet[jjnewStateCnt++] = 41; break; - case 44: + case 41: jjCheckNAddStates(34, 36); break; - case 47: + case 44: if ((0xffffffffefffffffL & l) != 0L) jjCheckNAddStates(37, 39); break; - case 48: + case 45: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 49; + jjstateSet[jjnewStateCnt++] = 46; break; - case 49: + case 46: jjCheckNAddStates(37, 39); break; - case 51: + case 48: if ((0xffffffffefffffffL & l) != 0L) jjCheckNAddStates(40, 42); break; - case 52: + case 49: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 53; + jjstateSet[jjnewStateCnt++] = 50; break; - case 53: + case 50: jjCheckNAddStates(40, 42); break; - case 55: + case 52: if (curChar == 96) jjCheckNAddStates(49, 54); break; - case 56: + case 53: if ((0xfffffffeefffffffL & l) != 0L) jjCheckNAddStates(43, 45); break; - case 57: + case 54: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 58; + jjstateSet[jjnewStateCnt++] = 55; break; - case 58: + case 55: jjCheckNAddStates(43, 45); break; - case 59: - if (curChar == 96 && kind > 103) - kind = 103; + case 56: + if (curChar == 96 && kind > 108) + kind = 108; break; - case 60: + case 57: if ((0xfffffffeefffffffL & l) != 0L) jjCheckNAddStates(46, 48); break; - case 61: + case 58: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 62; + jjstateSet[jjnewStateCnt++] = 59; break; - case 62: + case 59: jjCheckNAddStates(46, 48); break; - case 63: - if (curChar == 96 && kind > 106) - kind = 106; + case 60: + if (curChar == 96 && kind > 111) + kind = 111; break; default : break; } @@ -1771,49 +1763,41 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 14: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 107) - kind = 107; + if (kind > 113) + kind = 113; jjCheckNAdd(14); break; case 1: - if ((jjbitVec0[i2] & l2) != 0L && kind > 13) - kind = 13; + if ((jjbitVec0[i2] & l2) != 0L && kind > 18) + kind = 18; break; - case 16: - case 17: - if ((jjbitVec0[i2] & l2) == 0L) - break; - if (kind > 142) - kind = 142; - jjCheckNAdd(17); - break; - case 38: - case 40: + case 35: + case 37: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(31, 33); break; - case 42: - case 44: + case 39: + case 41: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(34, 36); break; - case 47: - case 49: + case 44: + case 46: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(37, 39); break; - case 51: - case 53: + case 48: + case 50: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(40, 42); break; - case 56: - case 58: + case 53: + case 55: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(43, 45); break; - case 60: - case 62: + case 57: + case 59: if ((jjbitVec0[i2] & l2) != 0L) jjCheckNAddStates(46, 48); break; @@ -1828,26 +1812,26 @@ static private final int jjMoveNfa_1(int startState, int curPos) kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 64 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 61 - (jjnewStateCnt = startsAt))) return curPos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } } } -static private final int jjMoveStringLiteralDfa0_3() +static private final int jjMoveStringLiteralDfa0_4() { switch(curChar) { case 42: - return jjMoveStringLiteralDfa1_3(0x40000L); + return jjMoveStringLiteralDfa1_4(0x1000000L); case 84: case 116: - return jjMoveStringLiteralDfa1_3(0x20000L); + return jjMoveStringLiteralDfa1_4(0x400000L); default : return 1; } } -static private final int jjMoveStringLiteralDfa1_3(long active0) +static private final int jjMoveStringLiteralDfa1_4(long active0) { try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { @@ -1856,18 +1840,18 @@ static private final int jjMoveStringLiteralDfa1_3(long active0) switch(curChar) { case 47: - if ((active0 & 0x40000L) != 0L) - return jjStopAtPos(1, 18); + if ((active0 & 0x1000000L) != 0L) + return jjStopAtPos(1, 24); break; case 79: case 111: - return jjMoveStringLiteralDfa2_3(active0, 0x20000L); + return jjMoveStringLiteralDfa2_4(active0, 0x400000L); default : return 2; } return 2; } -static private final int jjMoveStringLiteralDfa2_3(long old0, long active0) +static private final int jjMoveStringLiteralDfa2_4(long old0, long active0) { if (((active0 &= old0)) == 0L) return 2; @@ -1879,12 +1863,12 @@ static private final int jjMoveStringLiteralDfa2_3(long old0, long active0) { case 68: case 100: - return jjMoveStringLiteralDfa3_3(active0, 0x20000L); + return jjMoveStringLiteralDfa3_4(active0, 0x400000L); default : return 3; } } -static private final int jjMoveStringLiteralDfa3_3(long old0, long active0) +static private final int jjMoveStringLiteralDfa3_4(long old0, long active0) { if (((active0 &= old0)) == 0L) return 3; @@ -1896,64 +1880,413 @@ static private final int jjMoveStringLiteralDfa3_3(long old0, long active0) { case 79: case 111: - if ((active0 & 0x20000L) != 0L) - return jjStopAtPos(3, 17); + if ((active0 & 0x400000L) != 0L) + return jjStopAtPos(3, 22); break; default : return 4; } return 4; } +private static final int jjStopStringLiteralDfa_3(int pos, long active0, long active1, long active2) +{ + switch (pos) + { + case 0: + if ((active1 & 0x3000000000L) != 0L) + { + jjmatchedKind = 113; + return 1; + } + return -1; + case 1: + if ((active1 & 0x2000000000L) != 0L) + { + if (jjmatchedPos != 1) + { + jjmatchedKind = 113; + jjmatchedPos = 1; + } + return 1; + } + if ((active1 & 0x1000000000L) != 0L) + return 1; + return -1; + default : + return -1; + } +} +private static final int jjStartNfa_3(int pos, long active0, long active1, long active2) +{ + return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0, active1, active2), pos + 1); +} +static private final int jjStartNfaWithStates_3(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_3(state, pos + 1); +} +static private final int jjMoveStringLiteralDfa0_3() +{ + switch(curChar) + { + case 9: + return jjStopAtPos(0, 12); + case 10: + return jjStopAtPos(0, 13); + case 12: + return jjStopAtPos(0, 15); + case 13: + return jjStopAtPos(0, 14); + case 32: + return jjStopAtPos(0, 11); + case 33: + jjmatchedKind = 81; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x28L); + case 36: + return jjStopAtPos(0, 112); + case 37: + jjmatchedKind = 96; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x10000L); + case 38: + jjmatchedKind = 93; + return jjMoveStringLiteralDfa1_3(0x0L, 0x400000L, 0x1000L); + case 40: + return jjStopAtPos(0, 117); + case 41: + return jjStopAtPos(0, 118); + case 42: + jjmatchedKind = 91; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x400L); + case 43: + jjmatchedKind = 89; + return jjMoveStringLiteralDfa1_3(0x0L, 0x800000L, 0x100L); + case 44: + return jjStopAtPos(0, 124); + case 45: + jjmatchedKind = 90; + return jjMoveStringLiteralDfa1_3(0x200000000000L, 0x1000000L, 0x200L); + case 46: + jjmatchedKind = 125; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x8000L); + case 47: + jjmatchedKind = 92; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x800L); + case 58: + jjmatchedKind = 84; + return jjMoveStringLiteralDfa1_3(0x400000000000L, 0x0L, 0x0L); + case 59: + return jjStopAtPos(0, 123); + case 60: + jjmatchedKind = 127; + return jjMoveStringLiteralDfa1_3(0x0L, 0x200000000L, 0x40012L); + case 61: + jjmatchedKind = 135; + return jjMoveStringLiteralDfa1_3(0x800000000000L, 0x0L, 0x41L); + case 62: + jjmatchedKind = 126; + return jjMoveStringLiteralDfa1_3(0x0L, 0xc00000000L, 0x80004L); + case 63: + jjmatchedKind = 83; + return jjMoveStringLiteralDfa1_3(0x10L, 0x0L, 0x0L); + case 64: + return jjStopAtPos(0, 80); + case 91: + return jjStopAtPos(0, 121); + case 93: + return jjStopAtPos(0, 122); + case 94: + jjmatchedKind = 95; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x4000L); + case 65: + case 97: + return jjMoveStringLiteralDfa1_3(0x0L, 0x2000000000L, 0x0L); + case 79: + case 111: + return jjMoveStringLiteralDfa1_3(0x0L, 0x1000000000L, 0x0L); + case 123: + return jjStopAtPos(0, 119); + case 124: + jjmatchedKind = 94; + return jjMoveStringLiteralDfa1_3(0x0L, 0x200000L, 0x2000L); + case 125: + return jjStopAtPos(0, 120); + case 126: + jjmatchedKind = 82; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x20000L); + default : + return jjMoveNfa_3(0, 0); + } +} +static private final int jjMoveStringLiteralDfa1_3(long active0, long active1, long active2) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_3(0, active0, active1, active2); + return 1; + } + switch(curChar) + { + case 38: + if ((active1 & 0x400000L) != 0L) + return jjStopAtPos(1, 86); + break; + case 43: + if ((active1 & 0x800000L) != 0L) + return jjStopAtPos(1, 87); + break; + case 45: + if ((active1 & 0x1000000L) != 0L) + return jjStopAtPos(1, 88); + break; + case 58: + if ((active0 & 0x400000000000L) != 0L) + return jjStopAtPos(1, 46); + break; + case 60: + if ((active1 & 0x200000000L) != 0L) + { + jjmatchedKind = 97; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x40000L); + case 61: + if ((active2 & 0x1L) != 0L) + { + jjmatchedKind = 128; + jjmatchedPos = 1; + } + else if ((active2 & 0x2L) != 0L) + return jjStopAtPos(1, 129); + else if ((active2 & 0x4L) != 0L) + return jjStopAtPos(1, 130); + else if ((active2 & 0x8L) != 0L) + { + jjmatchedKind = 131; + jjmatchedPos = 1; + } + else if ((active2 & 0x100L) != 0L) + return jjStopAtPos(1, 136); + else if ((active2 & 0x200L) != 0L) + return jjStopAtPos(1, 137); + else if ((active2 & 0x400L) != 0L) + return jjStopAtPos(1, 138); + else if ((active2 & 0x800L) != 0L) + return jjStopAtPos(1, 139); + else if ((active2 & 0x1000L) != 0L) + return jjStopAtPos(1, 140); + else if ((active2 & 0x2000L) != 0L) + return jjStopAtPos(1, 141); + else if ((active2 & 0x4000L) != 0L) + return jjStopAtPos(1, 142); + else if ((active2 & 0x8000L) != 0L) + return jjStopAtPos(1, 143); + else if ((active2 & 0x10000L) != 0L) + return jjStopAtPos(1, 144); + else if ((active2 & 0x20000L) != 0L) + return jjStopAtPos(1, 145); + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x60L); + case 62: + if ((active0 & 0x10L) != 0L) + return jjStopAtPos(1, 4); + else if ((active0 & 0x200000000000L) != 0L) + return jjStopAtPos(1, 45); + else if ((active0 & 0x800000000000L) != 0L) + return jjStopAtPos(1, 47); + else if ((active1 & 0x400000000L) != 0L) + { + jjmatchedKind = 98; + jjmatchedPos = 1; + } + else if ((active2 & 0x10L) != 0L) + return jjStopAtPos(1, 132); + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x800000000L, active2, 0x80000L); + case 78: + case 110: + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x2000000000L, active2, 0L); + case 82: + case 114: + if ((active1 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_3(1, 100, 1); + break; + case 124: + if ((active1 & 0x200000L) != 0L) + return jjStopAtPos(1, 85); + break; + default : + break; + } + return jjStartNfa_3(0, active0, active1, active2); +} +static private final int jjMoveStringLiteralDfa2_3(long old0, long active0, long old1, long active1, long old2, long active2) +{ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_3(0, old0, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_3(1, 0L, active1, active2); + return 2; + } + switch(curChar) + { + case 61: + if ((active2 & 0x20L) != 0L) + return jjStopAtPos(2, 133); + else if ((active2 & 0x40L) != 0L) + return jjStopAtPos(2, 134); + else if ((active2 & 0x40000L) != 0L) + return jjStopAtPos(2, 146); + else if ((active2 & 0x80000L) != 0L) + return jjStopAtPos(2, 147); + break; + case 62: + if ((active1 & 0x800000000L) != 0L) + return jjStopAtPos(2, 99); + break; + case 68: + case 100: + if ((active1 & 0x2000000000L) != 0L) + return jjStartNfaWithStates_3(2, 101, 1); + break; + default : + break; + } + return jjStartNfa_3(1, 0L, active1, active2); +} +static private final int jjMoveNfa_3(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 2; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + kind = 113; + jjstateSet[jjnewStateCnt++] = 1; + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + case 1: + if ((0x87fffffe87fffffeL & l) == 0L) + break; + if (kind > 113) + kind = 113; + jjCheckNAdd(1); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + case 1: + if ((jjbitVec0[i2] & l2) == 0L) + break; + if (kind > 113) + kind = 113; + jjCheckNAdd(1); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} static final int[] jjnextStates = { - 19, 20, 25, 26, 29, 30, 12, 47, 48, 50, 51, 52, 54, 38, 39, 41, - 42, 43, 45, 34, 36, 6, 8, 9, 12, 21, 22, 12, 29, 30, 12, 38, - 39, 41, 42, 43, 45, 47, 48, 50, 51, 52, 54, 56, 57, 59, 60, 61, - 63, 56, 57, 59, 60, 61, 63, 10, 11, 23, 24, 27, 28, 31, 32, + 16, 17, 22, 23, 26, 27, 12, 44, 45, 47, 48, 49, 51, 35, 36, 38, + 39, 40, 42, 31, 33, 6, 8, 9, 12, 18, 19, 12, 26, 27, 12, 35, + 36, 38, 39, 40, 42, 44, 45, 47, 48, 49, 51, 53, 54, 56, 57, 58, + 60, 53, 54, 56, 57, 58, 60, 10, 11, 20, 21, 24, 25, 28, 29, }; public static final String[] jjstrLiteralImages = { "", "\74\77", null, "\74\77\75", "\77\76", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -"\55\76", "\72\72", "\75\76", null, null, null, null, null, null, null, null, null, null, +null, null, null, null, null, null, "\55\76", "\72\72", "\75\76", null, null, null, +null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -null, null, null, null, null, null, null, null, "\100", "\44", "\41", "\176", "\77", -"\72", "\174\174", "\46\46", "\53\53", "\55\55", "\53", "\55", "\52", "\57", "\46", -"\174", "\136", "\45", "\74\74", "\76\76", "\76\76\76", null, null, null, null, null, -null, null, null, null, null, null, null, null, null, null, null, "\50", "\51", -"\173", "\175", "\133", "\135", "\73", "\54", "\56", "\76", "\74", "\75\75", "\74\75", -"\76\75", "\41\75", "\74\76", "\41\75\75", "\75\75\75", "\75", "\53\75", "\55\75", -"\52\75", "\57\75", "\46\75", "\174\75", "\136\75", "\56\75", "\45\75", "\176\75", -"\74\74\75", "\76\76\75", null, }; +null, "\100", "\41", "\176", "\77", "\72", "\174\174", "\46\46", "\53\53", "\55\55", +"\53", "\55", "\52", "\57", "\46", "\174", "\136", "\45", "\74\74", "\76\76", +"\76\76\76", null, null, null, null, null, null, null, null, null, null, null, null, "\44", +null, null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73", "\54", +"\56", "\76", "\74", "\75\75", "\74\75", "\76\75", "\41\75", "\74\76", "\41\75\75", +"\75\75\75", "\75", "\53\75", "\55\75", "\52\75", "\57\75", "\46\75", "\174\75", "\136\75", +"\56\75", "\45\75", "\176\75", "\74\74\75", "\76\76\75", }; public static final String[] lexStateNames = { "DEFAULT", "PHPPARSING", "IN_SINGLE_LINE_COMMENT", + "IN_VARIABLE", "IN_FORMAL_COMMENT", "IN_MULTI_LINE_COMMENT", }; public static final int[] jjnewLexState = { - -1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 2, 2, 3, 4, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 2, 2, 4, 5, 1, -1, -1, -1, 1, + 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; static final long[] jjtoToken = { - 0xffffffffffe0001fL, 0xffff8fa3ffffffffL, 0x7fffL, + 0xfffffffff880001fL, 0xffe3f47fffffffffL, 0xfffffL, }; static final long[] jjtoSkip = { - 0xfffe0L, 0x0L, 0x0L, + 0x37fffe0L, 0x0L, 0x0L, }; static final long[] jjtoSpecial = { - 0xff800L, 0x0L, 0x0L, + 0x37ff800L, 0x0L, 0x0L, }; static final long[] jjtoMore = { - 0x100000L, 0x0L, 0x0L, + 0x4000000L, 0x0L, 0x0L, }; static protected SimpleCharStream input_stream; -static private final int[] jjrounds = new int[64]; -static private final int[] jjstateSet = new int[128]; +static private final int[] jjrounds = new int[61]; +static private final int[] jjstateSet = new int[122]; static StringBuffer image; static int jjimageLen; static int lengthOfMatch; @@ -1980,7 +2313,7 @@ static private final void ReInitRounds() { int i; jjround = 0x80000001; - for (i = 64; i-- > 0;) + for (i = 61; i-- > 0;) jjrounds[i] = 0x80000000; } static public void ReInit(SimpleCharStream stream, int lexState) @@ -1990,7 +2323,7 @@ static public void ReInit(SimpleCharStream stream, int lexState) } static public void SwitchTo(int lexState) { - if (lexState >= 5 || lexState < 0) + if (lexState >= 6 || lexState < 0) throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); else curLexState = lexState; @@ -2068,27 +2401,32 @@ public static Token getNextToken() jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_2(); - if (jjmatchedPos == 0 && jjmatchedKind > 16) + if (jjmatchedPos == 0 && jjmatchedKind > 21) { - jjmatchedKind = 16; + jjmatchedKind = 21; } break; case 3: jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_3(); - if (jjmatchedPos == 0 && jjmatchedKind > 20) - { - jjmatchedKind = 20; - } break; case 4: jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_4(); - if (jjmatchedPos == 0 && jjmatchedKind > 20) + if (jjmatchedPos == 0 && jjmatchedKind > 26) + { + jjmatchedKind = 26; + } + break; + case 5: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_5(); + if (jjmatchedPos == 0 && jjmatchedKind > 26) { - jjmatchedKind = 20; + jjmatchedKind = 26; } break; } @@ -2100,7 +2438,6 @@ public static Token getNextToken() { matchedToken = jjFillToken(); matchedToken.specialToken = specialToken; - TokenLexicalActions(matchedToken); if (jjnewLexState[jjmatchedKind] != -1) curLexState = jjnewLexState[jjmatchedKind]; CommonTokenAction(matchedToken); @@ -2165,58 +2502,15 @@ static void SkipLexicalActions(Token matchedToken) { switch(jjmatchedKind) { - case 13 : + case 18 : if (image == null) image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); else image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); input_stream.backup(1); break; - case 17 : - if (image == null) - image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); - else - image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); - PHPParser.createNewTask(); - break; default : break; } } -static void TokenLexicalActions(Token matchedToken) -{ - switch(jjmatchedKind) - { - case 1 : - if (image == null) - image = new StringBuffer(jjstrLiteralImages[1]); - else - image.append(jjstrLiteralImages[1]); - PHPParser.createNewHTMLCode(); - break; - case 2 : - if (image == null) - image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); - else - image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); - PHPParser.createNewHTMLCode(); - break; - case 3 : - if (image == null) - image = new StringBuffer(jjstrLiteralImages[3]); - else - image.append(jjstrLiteralImages[3]); - PHPParser.createNewHTMLCode(); - break; - case 4 : - if (image == null) - image = new StringBuffer(jjstrLiteralImages[4]); - else - image.append(jjstrLiteralImages[4]); - PHPParser.htmlStart = PHPParser.token.sourceEnd; - break; - default : - break; - } -} } -- 1.7.1 From ac59a77f21f15968d8e9424644c737b48604a31c Mon Sep 17 00:00:00 2001 From: kpouer Date: Tue, 26 Aug 2003 08:11:28 +0000 Subject: [PATCH 07/16] a bugfix on variables --- net.sourceforge.phpeclipse/src/test/PHPParser.java | 14 +++++++------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index 8d0645d..831f354 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -798,21 +798,21 @@ Token token; * It will be used by fields and formal parameters */ static final public VariableDeclaration VariableDeclaratorNoSuffix() throws ParseException { - final Token dollar, token, lbrace,rbrace; + final Token token, lbrace,rbrace; Expression expr, initializer = null; Token assignToken; Variable variable; - dollar = jj_consume_token(DOLLAR); + jj_consume_token(DOLLAR); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENTIFIER: token = jj_consume_token(IDENTIFIER); - variable = new Variable(token.image,dollar.sourceStart,token.sourceEnd); + variable = new Variable(token.image,token.sourceStart,token.sourceEnd); break; case LBRACE: lbrace = jj_consume_token(LBRACE); expr = Expression(); rbrace = jj_consume_token(RBRACE); - variable = new Variable(expr,dollar.sourceStart,rbrace.sourceEnd); + variable = new Variable(expr,lbrace.sourceStart,rbrace.sourceEnd); break; default: jj_la1[10] = jj_gen; @@ -926,7 +926,7 @@ Token token; final Token token; token = jj_consume_token(DOLLAR); variable = Var(token); - {if (true) return new Variable(variable,token.sourceStart,variable.sourceEnd);} + {if (true) return new Variable(variable,token.sourceEnd,variable.sourceEnd);} throw new Error("Missing return statement in function"); } @@ -939,7 +939,7 @@ Token token; case DOLLAR: token = jj_consume_token(DOLLAR); variable = Var(token); - {if (true) return new Variable(variable,dollar.sourceStart,variable.sourceEnd);} + {if (true) return new Variable(variable,dollar.sourceEnd,variable.sourceEnd);} break; case LBRACE: token = jj_consume_token(LBRACE); @@ -2400,7 +2400,7 @@ final Token token,token1; break; case IDENTIFIER: token = jj_consume_token(IDENTIFIER); - expression = new Variable(token.image,token.sourceStart,token.sourceEnd); + expression = new ConstantIdentifier(token.image,token.sourceStart,token.sourceEnd); break; case DOLLAR: expression = Variable(); diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index 9ad3eff..afc5890 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -920,19 +920,19 @@ FieldDeclaration FieldDeclaration() : */ VariableDeclaration VariableDeclaratorNoSuffix() : { - final Token dollar, token, lbrace,rbrace; + final Token token, lbrace,rbrace; Expression expr, initializer = null; Token assignToken; Variable variable; } { - dollar = + ( token = - {variable = new Variable(token.image,dollar.sourceStart,token.sourceEnd);} + {variable = new Variable(token.image,token.sourceStart,token.sourceEnd);} | lbrace = expr = Expression() rbrace = - {variable = new Variable(expr,dollar.sourceStart,rbrace.sourceEnd);} + {variable = new Variable(expr,lbrace.sourceStart,rbrace.sourceEnd);} ) [ assignToken = @@ -1038,7 +1038,7 @@ Variable Variable() : { token = variable = Var(token) { - return new Variable(variable,token.sourceStart,variable.sourceEnd); + return new Variable(variable,token.sourceEnd,variable.sourceEnd); } } @@ -1051,7 +1051,7 @@ Variable Var(final Token dollar) : } { token = variable = Var(token) - {return new Variable(variable,dollar.sourceStart,variable.sourceEnd);} + {return new Variable(variable,dollar.sourceEnd,variable.sourceEnd);} | token = expression = Expression() token2 = { @@ -1865,7 +1865,7 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) : } | token = - {expression = new Variable(token.image,token.sourceStart,token.sourceEnd);} + {expression = new ConstantIdentifier(token.image,token.sourceStart,token.sourceEnd);} | expression = Variable() ) -- 1.7.1 From 7f08e7e662e9bc5b104f5938c851cab7fff2ced1 Mon Sep 17 00:00:00 2001 From: kpouer Date: Tue, 26 Aug 2003 08:12:21 +0000 Subject: [PATCH 08/16] The methods to get variables do not instantiate ArrayList each time, only one is used now --- .../phpdt/internal/compiler/ast/AbstractCase.java | 21 ++---- .../internal/compiler/ast/AbstractPHPComment.java | 9 +-- .../internal/compiler/ast/ArrayDeclarator.java | 20 ++---- .../internal/compiler/ast/ArrayInitializer.java | 18 ++---- .../compiler/ast/ArrayVariableDeclaration.java | 21 ++---- .../phpdt/internal/compiler/ast/AstNode.java | 9 +-- .../internal/compiler/ast/BinaryExpression.java | 22 ++---- .../phpdt/internal/compiler/ast/Block.java | 21 ++---- .../internal/compiler/ast/BranchStatement.java | 24 +++---- .../phpdt/internal/compiler/ast/Case.java | 16 ++--- .../internal/compiler/ast/CastExpression.java | 16 ++--- .../phpdt/internal/compiler/ast/ClassAccess.java | 16 ++--- .../internal/compiler/ast/ClassDeclaration.java | 12 +--- .../compiler/ast/ConditionalExpression.java | 26 +++----- .../internal/compiler/ast/ConstantIdentifier.java | 14 +--- .../phpdt/internal/compiler/ast/Define.java | 13 +--- .../phpdt/internal/compiler/ast/DoStatement.java | 27 +++----- .../phpdt/internal/compiler/ast/EchoStatement.java | 21 ++---- .../phpdt/internal/compiler/ast/Else.java | 21 ++---- .../phpdt/internal/compiler/ast/ElseIf.java | 25 ++----- .../internal/compiler/ast/EmptyStatement.java | 12 +--- .../internal/compiler/ast/FieldDeclaration.java | 17 ++--- .../phpdt/internal/compiler/ast/ForStatement.java | 39 ++++------ .../internal/compiler/ast/ForeachStatement.java | 31 +++----- .../phpdt/internal/compiler/ast/FunctionCall.java | 26 +++----- .../internal/compiler/ast/GlobalStatement.java | 15 +--- .../phpdt/internal/compiler/ast/HTMLBlock.java | 12 +--- .../phpdt/internal/compiler/ast/HTMLCode.java | 10 +-- .../phpdt/internal/compiler/ast/IfStatement.java | 39 ++++------ .../internal/compiler/ast/InclusionStatement.java | 15 ++--- .../internal/compiler/ast/LabeledStatement.java | 15 ++--- .../internal/compiler/ast/ListExpression.java | 23 ++---- .../phpdt/internal/compiler/ast/Literal.java | 12 +--- .../internal/compiler/ast/MethodDeclaration.java | 76 +++++++++----------- .../phpdt/internal/compiler/ast/PHPEchoBlock.java | 13 +--- .../internal/compiler/ast/PrintExpression.java | 15 ++--- .../internal/compiler/ast/ReturnStatement.java | 20 ++---- .../internal/compiler/ast/StaticStatement.java | 15 +--- .../internal/compiler/ast/SwitchStatement.java | 25 ++----- .../internal/compiler/ast/UnaryExpression.java | 14 ++--- .../internal/compiler/ast/VarAssignation.java | 22 ++---- .../phpdt/internal/compiler/ast/Variable.java | 18 ++---- .../internal/compiler/ast/VariableDeclaration.java | 18 ++--- .../internal/compiler/ast/WhileStatement.java | 27 +++----- 44 files changed, 305 insertions(+), 596 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractCase.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractCase.java index 0af2440..0f26744 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractCase.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractCase.java @@ -28,37 +28,28 @@ public abstract class AbstractCase extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getOutsideVariable()); + statements[i].getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getUsedVariable()); + statements[i].getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractPHPComment.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractPHPComment.java index 9eee781..5bdc86e 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractPHPComment.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AbstractPHPComment.java @@ -24,23 +24,20 @@ public abstract class AbstractPHPComment extends AstNode { * Get the variables from outside (parameters, globals ...) * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(); + public void getModifiedVariable(final List list) { } /** * Get the variables used. * @return an empty list */ - public List getUsedVariable() { - return new ArrayList(); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayDeclarator.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayDeclarator.java index 8d2930a..e080c20 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayDeclarator.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayDeclarator.java @@ -43,33 +43,27 @@ public class ArrayDeclarator extends AbstractVariable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final List list = prefix.getModifiedVariable(); + public void getModifiedVariable(final List list) { + prefix.getModifiedVariable(list); if (var != null) { - list.addAll(var.getModifiedVariable()); + var.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final List list = prefix.getUsedVariable(); + public void getUsedVariable(final List list) { + prefix.getUsedVariable(list); if (var != null) { - list.addAll(var.getUsedVariable()); + var.getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayInitializer.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayInitializer.java index ecabbc6..247cd34 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayInitializer.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayInitializer.java @@ -41,37 +41,29 @@ public class ArrayInitializer extends Expression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < vars.length; i++) { if (vars[i] != null) { - list.addAll(vars[i].getModifiedVariable()); + vars[i].getModifiedVariable(list); } } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < vars.length; i++) { if (vars[i] != null) { - list.addAll(vars[i].getUsedVariable()); + vars[i].getUsedVariable(list); } } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java index 4322f61..4a306e6 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java @@ -54,34 +54,27 @@ public class ArrayVariableDeclaration extends Expression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(key.getModifiedVariable()); + public void getModifiedVariable(final List list) { + key.getModifiedVariable(list); if (value != null) { - list.addAll(value.getModifiedVariable()); + value.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { + key.getUsedVariable(list); if (value != null) { - list.addAll(value.getUsedVariable()); + value.getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java index 56dddfd..da77815 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/AstNode.java @@ -53,21 +53,18 @@ public abstract class AstNode { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public abstract List getOutsideVariable(); + public abstract void getOutsideVariable(List list); /** * get the modified variables. - * @return the variables modified */ - public abstract List getModifiedVariable(); + public abstract void getModifiedVariable(List list); /** * Get the variables used. - * @return the variables used */ - public abstract List getUsedVariable(); + public abstract void getUsedVariable(List list); /** * This method will analyze the code. diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BinaryExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BinaryExpression.java index 3455363..46643d1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BinaryExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BinaryExpression.java @@ -28,32 +28,24 @@ public class BinaryExpression extends OperatorExpression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(left.getModifiedVariable()); - list.addAll(right.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + left.getModifiedVariable(list); + right.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(left.getUsedVariable()); - list.addAll(right.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + left.getUsedVariable(list); + right.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Block.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Block.java index d2371be..acaf451 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Block.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Block.java @@ -56,37 +56,28 @@ public class Block extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getOutsideVariable()); + statements[i].getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getUsedVariable()); + statements[i].getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BranchStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BranchStatement.java index 2c164c4..a1354ef 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BranchStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/BranchStatement.java @@ -18,34 +18,28 @@ public abstract class BranchStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - if (expression == null) { - return new ArrayList(); + public void getOutsideVariable(final List list) { + if (expression != null) { + expression.getOutsideVariable(list); } - return expression.getOutsideVariable(); } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - if (expression == null) { - return new ArrayList(); + public void getModifiedVariable(final List list) { + if (expression != null) { + expression.getModifiedVariable(list); } - return expression.getModifiedVariable(); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - if (expression == null) { - return new ArrayList(); + public void getUsedVariable(final List list) { + if (expression != null) { + expression.getUsedVariable(list); } - return expression.getUsedVariable(); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Case.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Case.java index 1428b25..8a623d4 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Case.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Case.java @@ -39,21 +39,17 @@ public class Case extends AbstractCase { /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final List list = super.getModifiedVariable(); - list.addAll(value.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + super.getModifiedVariable(list); + value.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final List list = super.getUsedVariable(); - list.addAll(value.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + super.getUsedVariable(list); + value.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/CastExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/CastExpression.java index 8291f62..6b434d0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/CastExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/CastExpression.java @@ -43,27 +43,23 @@ public class CastExpression extends Expression { return buff.toString(); } - /** + /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return expression.getModifiedVariable(); + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return expression.getUsedVariable(); + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java index 384d192..27f3f73 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassAccess.java @@ -71,27 +71,21 @@ public class ClassAccess extends AbstractVariable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final List list = prefix.getUsedVariable(); - list.addAll(suffix.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + prefix.getUsedVariable(list); + suffix.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java index af9ed52..56a9d7f 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java @@ -189,25 +189,19 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java index 121a158..fd36a8a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java @@ -32,33 +32,25 @@ public class ConditionalExpression extends OperatorExpression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getModifiedVariable()); - list.addAll(valueIfTrue.getModifiedVariable()); - list.addAll(valueIfFalse.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); + valueIfTrue.getModifiedVariable(list); + valueIfFalse.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getUsedVariable()); - list.addAll(valueIfTrue.getUsedVariable()); - list.addAll(valueIfFalse.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); + valueIfTrue.getUsedVariable(list); + valueIfFalse.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConstantIdentifier.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConstantIdentifier.java index bd1f4a1..04994c1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConstantIdentifier.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConstantIdentifier.java @@ -32,27 +32,21 @@ public class ConstantIdentifier extends Expression { return name; } - /** + /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java index 68f96df..0457816 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java @@ -64,27 +64,20 @@ public class Define extends Statement implements Outlineable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(1); + public void getOutsideVariable(final List list) { list.add(new VariableUsage(defineName.toStringExpression(),sourceStart));//todo: someday : evaluate the defineName - return list; } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java index f3ee853..9c0689a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java @@ -44,34 +44,25 @@ public class DoStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getOutsideVariable()); // todo: check if unuseful - list.addAll(action.getOutsideVariable()); - return list; + public void getOutsideVariable(final List list) { + condition.getOutsideVariable(list); // todo: check if unuseful + action.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getModifiedVariable()); - list.addAll(action.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); + action.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getUsedVariable()); - list.addAll(action.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); + action.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EchoStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EchoStatement.java index 0122b26..84e1819 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EchoStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EchoStatement.java @@ -43,37 +43,28 @@ public class EchoStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < expressions.length; i++) { - list.addAll(expressions[i].getOutsideVariable()); + expressions[i].getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < expressions.length; i++) { - list.addAll(expressions[i].getModifiedVariable()); + expressions[i].getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < expressions.length; i++) { - list.addAll(expressions[i].getUsedVariable()); + expressions[i].getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Else.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Else.java index 302d650..367abc3 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Else.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Else.java @@ -58,37 +58,28 @@ public class Else extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getOutsideVariable()); + statements[i].getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from outside */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables from outside */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getUsedVariable()); + statements[i].getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ElseIf.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ElseIf.java index 3602231..dff3ecd 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ElseIf.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ElseIf.java @@ -42,39 +42,30 @@ public class ElseIf extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } - return list; } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } - list.addAll(condition.getModifiedVariable()); - return list; + condition.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getUsedVariable()); + statements[i].getUsedVariable(list); } - list.addAll(condition.getUsedVariable()); - return list; + condition.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EmptyStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EmptyStatement.java index 1585fc4..2964394 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EmptyStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/EmptyStatement.java @@ -19,25 +19,19 @@ public class EmptyStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return an empty list */ - public List getUsedVariable() { - return new ArrayList(); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FieldDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FieldDeclaration.java index 61d4c8b..b41df20 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FieldDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FieldDeclaration.java @@ -23,6 +23,7 @@ public class FieldDeclaration extends Statement implements Outlineable { private Object parent; private Position position; + /** * Create a new field. * @param vars the array of variables. @@ -61,7 +62,7 @@ public class FieldDeclaration extends Statement implements Outlineable { * @return the image that represents a php variable */ public ImageDescriptor getImage() { - return PHPUiImages.DESC_VAR; + return PHPUiImages.DESC_VAR; } public Object getParent() { @@ -72,27 +73,21 @@ public class FieldDeclaration extends Statement implements Outlineable { return position; } - /** + /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForStatement.java index 689a737..54d0292 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForStatement.java @@ -79,76 +79,67 @@ public class ForStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { if (condition != null) { - list.addAll(condition.getOutsideVariable()); + condition.getOutsideVariable(list); } if (action != null) { - list.addAll(action.getOutsideVariable()); + action.getOutsideVariable(list); } if (initializations != null) { for (int i = 0; i < initializations.length; i++) { - list.addAll(initializations[i].getOutsideVariable()); + initializations[i].getOutsideVariable(list); } } if (increments != null) { for (int i = 0; i < increments.length; i++) { - list.addAll(increments[i].getOutsideVariable()); + increments[i].getOutsideVariable(list); } } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { if (condition != null) { - list.addAll(condition.getModifiedVariable()); + condition.getModifiedVariable(list); } if (action != null) { - list.addAll(action.getModifiedVariable()); + action.getModifiedVariable(list); } if (initializations != null) { for (int i = 0; i < initializations.length; i++) { - list.addAll(initializations[i].getModifiedVariable()); + initializations[i].getModifiedVariable(list); } } if (increments != null) { for (int i = 0; i < increments.length; i++) { - list.addAll(increments[i].getModifiedVariable()); + increments[i].getModifiedVariable(list); } } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { if (condition != null) { - list.addAll(condition.getUsedVariable()); + condition.getUsedVariable(list); } if (action != null) { - list.addAll(action.getUsedVariable()); + action.getUsedVariable(list); } if (initializations != null) { for (int i = 0; i < initializations.length; i++) { - list.addAll(initializations[i].getUsedVariable()); + initializations[i].getUsedVariable(list); } } if (increments != null) { for (int i = 0; i < increments.length; i++) { - list.addAll(increments[i].getUsedVariable()); + increments[i].getUsedVariable(list); } } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java index 827c2aa..4f05ab4 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java @@ -42,36 +42,27 @@ public class ForeachStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getOutsideVariable()); - list.addAll(variable.getOutsideVariable()); - list.addAll(statement.getOutsideVariable()); - return list; + public void getOutsideVariable(final List list) { + expression.getOutsideVariable(list); + variable.getOutsideVariable(list); + statement.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getModifiedVariable()); - list.addAll(variable.getModifiedVariable()); - list.addAll(statement.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); + variable.getUsedVariable(list); + statement.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getUsedVariable()); - list.addAll(statement.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); + statement.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FunctionCall.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FunctionCall.java index 6e270c7..1d1e4c8 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FunctionCall.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/FunctionCall.java @@ -45,38 +45,30 @@ public class FunctionCall extends AbstractSuffixExpression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - if (args == null) { - return new ArrayList(1); - } - final ArrayList list = new ArrayList(); - for (int i = 0; i < args.length; i++) { - list.addAll(args[i].getModifiedVariable()); + public void getModifiedVariable(final List list) { + if (args != null) { + for (int i = 0; i < args.length; i++) { + args[i].getModifiedVariable(list); + } } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final List list = functionName.getUsedVariable(); + public void getUsedVariable(final List list) { + functionName.getUsedVariable(list); if (args != null) { for (int i = 0; i < args.length; i++) { - list.addAll(args[i].getUsedVariable()); + args[i].getUsedVariable(list); } } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/GlobalStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/GlobalStatement.java index bb09275..57c483e 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/GlobalStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/GlobalStatement.java @@ -69,30 +69,23 @@ public class GlobalStatement extends Statement implements Outlineable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(variables.length); + public void getOutsideVariable(final List list) { for (int i = 0; i < variables.length; i++) { - list.addAll(variables[i].getUsedVariable()); + variables[i].getUsedVariable(list); } - return list; } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } /** diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java index 496ca72..2d40de1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLBlock.java @@ -32,25 +32,19 @@ public class HTMLBlock extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return an empty list */ - public List getUsedVariable() { - return new ArrayList(); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLCode.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLCode.java index 7c324b8..7e9d327 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLCode.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/HTMLCode.java @@ -1,7 +1,6 @@ package net.sourceforge.phpdt.internal.compiler.ast; import java.util.List; -import java.util.ArrayList; /** @@ -48,23 +47,20 @@ public class HTMLCode extends AstNode { * Get the variables from outside (parameters, globals ...) * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(); + public void getModifiedVariable(final List list) { } /** * Get the variables used. * @return an empty list */ - public List getUsedVariable() { - return new ArrayList(); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/IfStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/IfStatement.java index cb6c88b..899f2a2 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/IfStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/IfStatement.java @@ -65,58 +65,49 @@ public class IfStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getOutsideVariable()); // todo: check if unuseful + public void getOutsideVariable(final List list) { + condition.getOutsideVariable(list); // todo: check if unuseful if (statement != null) { - list.addAll(statement.getOutsideVariable()); + statement.getOutsideVariable(list); } for (int i = 0; i < elseifs.length; i++) { - list.addAll(elseifs[i].getOutsideVariable()); + elseifs[i].getOutsideVariable(list); } if (els != null) { - list.addAll(els.getOutsideVariable()); + els.getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getModifiedVariable()); + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); if (statement != null) { - list.addAll(statement.getModifiedVariable()); + statement.getModifiedVariable(list); } for (int i = 0; i < elseifs.length; i++) { - list.addAll(elseifs[i].getModifiedVariable()); + elseifs[i].getModifiedVariable(list); } if (els != null) { - list.addAll(els.getModifiedVariable()); + els.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getUsedVariable()); + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); if (statement != null) { - list.addAll(statement.getUsedVariable()); + statement.getUsedVariable(list); } for (int i = 0; i < elseifs.length; i++) { - list.addAll(elseifs[i].getUsedVariable()); + elseifs[i].getUsedVariable(list); } if (els != null) { - list.addAll(els.getUsedVariable()); + els.getUsedVariable(list); } - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/InclusionStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/InclusionStatement.java index 7cba496..268f234 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/InclusionStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/InclusionStatement.java @@ -92,25 +92,22 @@ public class InclusionStatement extends Statement implements Outlineable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return expression.getOutsideVariable(); + public void getOutsideVariable(final List list) { + expression.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return expression.getModifiedVariable(); + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return expression.getUsedVariable(); + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/LabeledStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/LabeledStatement.java index c9730ea..d0f38f0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/LabeledStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/LabeledStatement.java @@ -40,25 +40,22 @@ public class LabeledStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return statement.getOutsideVariable(); + public void getOutsideVariable(final List list) { + statement.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - return statement.getModifiedVariable(); + public void getModifiedVariable(final List list) { + statement.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return statement.getUsedVariable(); + public void getUsedVariable(final List list) { + statement.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ListExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ListExpression.java index a167d1a..ad5c35c 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ListExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ListExpression.java @@ -50,39 +50,32 @@ public class ListExpression extends Expression { return buff.toString(); } - /** + /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < vars.length; i++) { if (vars[i] != null) { - list.addAll(vars[i].getUsedVariable()); + vars[i].getUsedVariable(list); } } if (expression != null) { - list.addAll(expression.getModifiedVariable()); + expression.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - if (expression == null) { - return new ArrayList(1); + public void getUsedVariable(final List list) { + if (expression != null) { + expression.getUsedVariable(list); } - return expression.getUsedVariable(); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Literal.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Literal.java index ae58b8a..3f6e8aa 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Literal.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Literal.java @@ -20,25 +20,19 @@ public abstract class Literal extends Expression { /** * Get the variables from outside (parameters, globals ...) - * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return an empty list */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java index b61470f..6934c07 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java @@ -156,34 +156,27 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild } /** no outside variables. */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } /** * Get global variables (not parameters). - * @return the variables from outside */ - public List getGlobalVariable() { - final ArrayList list = new ArrayList(); - + public void getGlobalVariable(final List list) { if (statements != null) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getOutsideVariable()); + statements[i].getOutsideVariable(list); } } - return list; } - private List getParameters(final List list) { + private void getParameters(final List list) { if (arguments != null) { final Enumeration vars = arguments.elements(); while (vars.hasMoreElements()) { @@ -191,35 +184,28 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild list.add(new VariableUsage(variable.name(), variable.sourceStart)); } } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - private List getAssignedVariableInCode() { - final ArrayList list = new ArrayList(); + private void getAssignedVariableInCode(final List list) { if (statements != null) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getModifiedVariable()); + statements[i].getModifiedVariable(list); } } - return list; } /** * Get the variables used. - * @return the variables used */ - private List getUsedVariableInCode() { - final ArrayList list = new ArrayList(); + private void getUsedVariableInCode(final List list) { if (statements != null) { for (int i = 0; i < statements.length; i++) { - list.addAll(statements[i].getUsedVariable()); + statements[i].getUsedVariable(list); } } - return list; } private boolean isVariableDeclaredBefore(final List list, final VariableUsage var) { @@ -243,22 +229,26 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild } } - final List globalsVars = getGlobalVariable(); - final List modifiedVars = getAssignedVariableInCode(); - final List parameters = getParameters(new ArrayList()); + final List globalsVars = new ArrayList(); + getGlobalVariable(globalsVars); + final List modifiedVars = new ArrayList(); + getAssignedVariableInCode(modifiedVars); + final List parameters = new ArrayList(); + getParameters(parameters); final List declaredVars = new ArrayList(globalsVars.size() + modifiedVars.size()); declaredVars.addAll(globalsVars); declaredVars.addAll(modifiedVars); declaredVars.addAll(parameters); - final List usedVars = getUsedVariableInCode(); - final List readOrWriteVars = new ArrayList(modifiedVars.size()+usedVars.size()); + final List usedVars = new ArrayList(); + getUsedVariableInCode(usedVars); + final List readOrWriteVars = new ArrayList(modifiedVars.size() + usedVars.size()); readOrWriteVars.addAll(modifiedVars); readOrWriteVars.addAll(usedVars); //look for used variables that were not declared before - findUnusedParameters(readOrWriteVars,parameters); + findUnusedParameters(readOrWriteVars, parameters); findUnknownUsedVars(usedVars, declaredVars); } @@ -269,14 +259,15 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild */ private void findUnusedParameters(final List vars, final List parameters) { for (int i = 0; i < parameters.size(); i++) { - final VariableUsage param = ((VariableUsage)parameters.get(i)); - if (!isVariableInList(param.getName(),vars)) { + final VariableUsage param = ((VariableUsage) parameters.get(i)); + if (!isVariableInList(param.getName(), vars)) { try { - PHPParserSuperclass.setMarker("warning, the parameter "+param.getName() +" seems to be never used in your method", - param.getStartOffset(), - param.getStartOffset() + param.getName().length(), - PHPParserSuperclass.WARNING, - ""); + PHPParserSuperclass.setMarker( + "warning, the parameter " + param.getName() + " seems to be never used in your method", + param.getStartOffset(), + param.getStartOffset() + param.getName().length(), + PHPParserSuperclass.WARNING, + ""); } catch (CoreException e) { PHPeclipsePlugin.log(e); } @@ -304,11 +295,12 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild if (variableUsage.getName().equals("this")) continue; // this is a special variable if (!isVariableDeclaredBefore(declaredVars, variableUsage)) { try { - PHPParserSuperclass.setMarker("warning, usage of a variable that seems to be unassigned yet : " + variableUsage.getName(), - variableUsage.getStartOffset(), - variableUsage.getStartOffset() + variableUsage.getName().length(), - PHPParserSuperclass.WARNING, - ""); + PHPParserSuperclass.setMarker( + "warning, usage of a variable that seems to be unassigned yet : " + variableUsage.getName(), + variableUsage.getStartOffset(), + variableUsage.getStartOffset() + variableUsage.getName().length(), + PHPParserSuperclass.WARNING, + ""); } catch (CoreException e) { PHPeclipsePlugin.log(e); } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PHPEchoBlock.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PHPEchoBlock.java index 674f9d1..dab65cb 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PHPEchoBlock.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PHPEchoBlock.java @@ -48,25 +48,20 @@ public class PHPEchoBlock extends AstNode { /** * Get the variables from outside (parameters, globals ...) - * @return an empty list */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return an empty list */ - public List getModifiedVariable() { - return new ArrayList(); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the used variables are the used variables from the expression */ - public List getUsedVariable() { - return expr.getUsedVariable(); + public void getUsedVariable(final List list) { + expr.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PrintExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PrintExpression.java index 86d5d7e..772dee0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PrintExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PrintExpression.java @@ -25,25 +25,22 @@ public class PrintExpression extends Expression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return expression.getOutsideVariable(); + public void getOutsideVariable(final List list) { + expression.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return expression.getModifiedVariable(); + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return expression.getUsedVariable(); + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ReturnStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ReturnStatement.java index 13822d7..61585ca 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ReturnStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ReturnStatement.java @@ -26,31 +26,25 @@ public class ReturnStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - if (expression == null) { - return new ArrayList(); + public void getModifiedVariable(final List list) { + if (expression != null) { + expression.getModifiedVariable(list); } - return expression.getModifiedVariable(); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - if (expression == null) { - return new ArrayList(); + public void getUsedVariable(final List list) { + if (expression != null) { + expression.getUsedVariable(list); } - return expression.getUsedVariable(); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StaticStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StaticStatement.java index ac8bd2d..6643729 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StaticStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StaticStatement.java @@ -34,29 +34,22 @@ public class StaticStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < variables.length; i++) { - list.addAll(variables[i].getModifiedVariable()); + variables[i].getModifiedVariable(list); } - return list; } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return new ArrayList(1); + public void getUsedVariable(final List list) { } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java index ad8f484..b1a0cda 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/SwitchStatement.java @@ -39,39 +39,30 @@ public class SwitchStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); + public void getOutsideVariable(final List list) { for (int i = 0; i < cases.length; i++) { - list.addAll(cases[i].getOutsideVariable()); + cases[i].getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); + public void getModifiedVariable(final List list) { for (int i = 0; i < cases.length; i++) { - list.addAll(cases[i].getModifiedVariable()); + cases[i].getModifiedVariable(list); } - list.addAll(variable.getModifiedVariable()); - return list; + variable.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); + public void getUsedVariable(final List list) { for (int i = 0; i < cases.length; i++) { - list.addAll(cases[i].getUsedVariable()); + cases[i].getUsedVariable(list); } - list.addAll(variable.getUsedVariable()); - return list; + variable.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/UnaryExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/UnaryExpression.java index 5e50628..b2b434a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/UnaryExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/UnaryExpression.java @@ -17,25 +17,21 @@ public abstract class UnaryExpression extends OperatorExpression { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - return expression.getModifiedVariable(); + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - return expression.getUsedVariable(); + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java index 5fb5cd3..17879e5 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java @@ -103,32 +103,24 @@ public class VarAssignation extends Expression { } - /** + /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(variableName.getUsedVariable()); - list.addAll(initializer.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + variableName.getUsedVariable(list); + initializer.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(initializer.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + initializer.getUsedVariable(list); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Variable.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Variable.java index add462f..cba56c4 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Variable.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Variable.java @@ -103,25 +103,20 @@ public class Variable extends AbstractVariable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables modified */ - public List getModifiedVariable() { - return new ArrayList(1); + public void getModifiedVariable(final List list) { } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { + public void getUsedVariable(final List list) { final String varName; if (name != null) { varName = name; @@ -130,11 +125,8 @@ public class Variable extends AbstractVariable { } else { varName = expression.toStringExpression();//todo : do a better thing like evaluate this ?? } - if (arrayContains(SPECIAL_VARS, name)) { - return new ArrayList(1); + if (!arrayContains(SPECIAL_VARS, name)) { + list.add(new VariableUsage(varName, sourceStart)); } - final ArrayList list = new ArrayList(1); - list.add(new VariableUsage(varName, sourceStart)); - return list; } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java index 8d08f65..463128a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VariableDeclaration.java @@ -191,32 +191,26 @@ public class VariableDeclaration extends Expression implements Outlineable { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - return new ArrayList(1); + public void getOutsideVariable(final List list) { } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final List list = variable.getUsedVariable(); + public void getModifiedVariable(final List list) { + variable.getUsedVariable(list); if (initialization != null) { - list.addAll(initialization.getModifiedVariable()); + initialization.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { + public void getUsedVariable(final List list) { if (initialization != null) { - return initialization.getUsedVariable(); + initialization.getUsedVariable(list); } - return new ArrayList(1); } } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java index 24d668b..80ff26a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/WhileStatement.java @@ -49,40 +49,31 @@ public class WhileStatement extends Statement { /** * Get the variables from outside (parameters, globals ...) - * @return the variables from outside */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getOutsideVariable()); // todo: check if unuseful + public void getOutsideVariable(final List list) { + condition.getOutsideVariable(list); // todo: check if unuseful if (action != null) { - list.addAll(action.getOutsideVariable()); + action.getOutsideVariable(list); } - return list; } /** * get the modified variables. - * @return the variables from we change value */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getModifiedVariable()); + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); if (action != null) { - list.addAll(action.getModifiedVariable()); + action.getModifiedVariable(list); } - return list; } /** * Get the variables used. - * @return the variables used */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(condition.getUsedVariable()); + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); if (action != null) { - list.addAll(action.getUsedVariable()); + action.getUsedVariable(list); } - return list; } } -- 1.7.1 From e8137224293250058137a33c9de5837963826fda Mon Sep 17 00:00:00 2001 From: kpouer Date: Tue, 26 Aug 2003 15:05:09 +0000 Subject: [PATCH 09/16] a little bugfix in the variable parsing --- net.sourceforge.phpeclipse/src/test/PHPParser.java | 14 +++++++------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index 831f354..eac7b50 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -925,12 +925,12 @@ Token token; Variable variable = null; final Token token; token = jj_consume_token(DOLLAR); - variable = Var(token); - {if (true) return new Variable(variable,token.sourceEnd,variable.sourceEnd);} + variable = Var(); + {if (true) return variable;} throw new Error("Missing return statement in function"); } - static final public Variable Var(final Token dollar) throws ParseException { + static final public Variable Var() throws ParseException { Variable variable = null; final Token token,token2; ConstantIdentifier constant; @@ -938,20 +938,20 @@ Token token; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DOLLAR: token = jj_consume_token(DOLLAR); - variable = Var(token); - {if (true) return new Variable(variable,dollar.sourceEnd,variable.sourceEnd);} + variable = Var(); + {if (true) return new Variable(variable,variable.sourceStart,variable.sourceEnd);} break; case LBRACE: token = jj_consume_token(LBRACE); expression = Expression(); token2 = jj_consume_token(RBRACE); {if (true) return new Variable(expression, - dollar.sourceStart, + token.sourceStart, token2.sourceEnd);} break; case IDENTIFIER: token = jj_consume_token(IDENTIFIER); - {if (true) return new Variable(token.image,dollar.sourceStart,token.sourceEnd);} + {if (true) return new Variable(token.image,token.sourceStart,token.sourceEnd);} break; default: jj_la1[13] = jj_gen; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index afc5890..92e62c8 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -1036,13 +1036,13 @@ Variable Variable() : final Token token; } { - token = variable = Var(token) + token = variable = Var() { - return new Variable(variable,token.sourceEnd,variable.sourceEnd); + return variable; } } -Variable Var(final Token dollar) : +Variable Var() : { Variable variable = null; final Token token,token2; @@ -1050,18 +1050,18 @@ Variable Var(final Token dollar) : Expression expression; } { - token = variable = Var(token) - {return new Variable(variable,dollar.sourceEnd,variable.sourceEnd);} + token = variable = Var() + {return new Variable(variable,variable.sourceStart,variable.sourceEnd);} | token = expression = Expression() token2 = { return new Variable(expression, - dollar.sourceStart, + token.sourceStart, token2.sourceEnd); } | token = - {return new Variable(token.image,dollar.sourceStart,token.sourceEnd);} + {return new Variable(token.image,token.sourceStart,token.sourceEnd);} } Expression VariableInitializer() : -- 1.7.1 From 2dc4375556432cf66a184c4541cd42053d4871af Mon Sep 17 00:00:00 2001 From: kpouer Date: Thu, 28 Aug 2003 21:37:15 +0000 Subject: [PATCH 10/16] String can contains variables --- .../phpdt/internal/compiler/ast/StringLiteral.java | 28 ++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java index b8f3672..7ef16a1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/StringLiteral.java @@ -12,9 +12,13 @@ package net.sourceforge.phpdt.internal.compiler.ast; import test.Token; +import java.util.List; + public class StringLiteral extends Literal { String source; + AbstractVariable[] variablesInside; + public StringLiteral(final Token token) { super(token.sourceStart,token.sourceEnd); source = token.image; @@ -39,6 +43,22 @@ public class StringLiteral extends Literal { * @param e sourceend * @deprecated */ + public StringLiteral(final String token, + final int s, + final int e, + final AbstractVariable[] variablesInside) { + super(s, e); + source = token; + this.variablesInside = variablesInside; + } + + /** + * Create a new StringLiteral + * @param token the token + * @param s sourcestart + * @param e sourceend + * @deprecated + */ public StringLiteral(final char[] token, final int s, final int e) { this(new String(token),s, e); } @@ -67,4 +87,12 @@ public class StringLiteral extends Literal { public int sourceStart() { return sourceStart; } + + public void getUsedVariable(final List list) { + if (variablesInside != null) { + for (int i = 0; i < variablesInside.length; i++) { + variablesInside[i].getUsedVariable(list); + } + } + } } -- 1.7.1 From 996bc47de58ddde3b38c4e6f00bb6ad1d8afae09 Mon Sep 17 00:00:00 2001 From: kpouer Date: Thu, 28 Aug 2003 21:38:05 +0000 Subject: [PATCH 11/16] first step for parsing double quoted strings --- net.sourceforge.phpeclipse/src/test/PHPParser.java | 1765 +++++++++++--------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 110 ++- .../src/test/PHPParserConstants.java | 102 +- .../src/test/PHPParserTokenManager.java | 1558 +++++++++++------- 4 files changed, 2085 insertions(+), 1450 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index eac7b50..d559705 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -64,7 +64,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon /** The cursor in expression stack. */ private static int nodePtr; - public static final boolean PARSER_DEBUG = true; + public static final boolean PARSER_DEBUG = false; public final void setFileToParse(final IFile fileToParse) { PHPParser.fileToParse = fileToParse; @@ -396,6 +396,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -473,6 +474,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -593,6 +595,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -971,6 +974,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: expr = Literal(); {if (true) return expr;} break; @@ -1066,6 +1070,7 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -1336,6 +1341,7 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -1970,6 +1976,7 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2015,6 +2022,7 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2061,6 +2069,7 @@ final Expression expr,expr2; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2119,6 +2128,7 @@ final Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: expr = Literal(); {if (true) return expr;} break; @@ -2452,6 +2462,7 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2474,6 +2485,7 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2545,6 +2557,7 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2567,6 +2580,7 @@ final Token token,token1; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2617,6 +2631,7 @@ final Token token,token1; static final public Literal Literal() throws ParseException { final Token token; + StringLiteral literal; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INTEGER_LITERAL: token = jj_consume_token(INTEGER_LITERAL); @@ -2642,6 +2657,10 @@ final Token token,token1; token = jj_consume_token(NULL); {if (true) return new NullLiteral(token);} break; + case DOUBLEQUOTE: + literal = evaluableString(); + {if (true) return literal;} + break; default: jj_la1[71] = jj_gen; jj_consume_token(-1); @@ -2650,6 +2669,55 @@ final Token token,token1; throw new Error("Missing return statement in function"); } + static final public StringLiteral evaluableString() throws ParseException { + ArrayList list = new ArrayList(); + Token start,end; + Token token,lbrace,rbrace; + AbstractVariable var; + Expression expr; + start = jj_consume_token(DOUBLEQUOTE); + label_20: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DOLLARS: + ; + break; + default: + jj_la1[72] = jj_gen; + break label_20; + } + jj_consume_token(DOLLARS); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + token = jj_consume_token(IDENTIFIER); + list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd)); + break; + case LBRACE1: + lbrace = jj_consume_token(LBRACE1); + token = jj_consume_token(ID); + list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd)); + rbrace = jj_consume_token(RBRACE1); + break; + default: + jj_la1[73] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + end = jj_consume_token(DOUBLEQUOTE2); + AbstractVariable[] vars = new AbstractVariable[list.size()]; + list.toArray(vars); + {if (true) return new StringLiteral(SimpleCharStream.currentBuffer.substring(start.sourceEnd,end.sourceStart), + start.sourceStart, + end.sourceEnd, + vars);} + throw new Error("Missing return statement in function"); + } + static final public FunctionCall Arguments(final Expression func) throws ParseException { Expression[] args = null; final Token token; @@ -2673,13 +2741,14 @@ final Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: args = ArgumentList(); break; default: - jj_la1[72] = jj_gen; + jj_la1[74] = jj_gen; ; } try { @@ -2708,15 +2777,15 @@ int pos; Token token; arg = Expression(); list.add(arg);pos = arg.sourceEnd; - label_20: + label_21: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[73] = jj_gen; - break label_20; + jj_la1[75] = jj_gen; + break label_21; } token = jj_consume_token(COMMA); pos = token.sourceEnd; @@ -2808,7 +2877,7 @@ Token token; token = jj_consume_token(AT); break; default: - jj_la1[74] = jj_gen; + jj_la1[76] = jj_gen; ; } statement = IncludeStatement(); @@ -2831,7 +2900,7 @@ Token token; currentSegment.add((Outlineable)statement);{if (true) return statement;} break; default: - jj_la1[75] = jj_gen; + jj_la1[77] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2971,6 +3040,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -2984,7 +3054,7 @@ Token token; {if (true) return statement;} break; default: - jj_la1[76] = jj_gen; + jj_la1[78] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3001,15 +3071,15 @@ Token token; final Token phpEnd; phpEnd = jj_consume_token(PHPEND); htmlStart = phpEnd.sourceEnd; - label_21: + label_22: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPECHOSTART: ; break; default: - jj_la1[77] = jj_gen; - break label_21; + jj_la1[79] = jj_gen; + break label_22; } phpEchoBlock(); } @@ -3022,7 +3092,7 @@ Token token; jj_consume_token(PHPSTARTSHORT); break; default: - jj_la1[78] = jj_gen; + jj_la1[80] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3072,7 +3142,7 @@ Token token; keyword = InclusionStatement.INCLUDE_ONCE;pos=token.sourceEnd; break; default: - jj_la1[79] = jj_gen; + jj_la1[81] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3144,19 +3214,19 @@ Token token; list.add(expr);pos = expr.sourceEnd; break; default: - jj_la1[80] = jj_gen; + jj_la1[82] = jj_gen; ; } if (expr == null) list.add(null); - label_22: + label_23: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[81] = jj_gen; - break label_22; + jj_la1[83] = jj_gen; + break label_23; } try { token = jj_consume_token(COMMA); @@ -3174,7 +3244,7 @@ Token token; list.add(expr);pos = expr.sourceEnd; break; default: - jj_la1[82] = jj_gen; + jj_la1[84] = jj_gen; ; } } @@ -3200,7 +3270,7 @@ Token token; expression.sourceEnd);} break; default: - jj_la1[83] = jj_gen; + jj_la1[85] = jj_gen; ; } final AbstractVariable[] vars = new AbstractVariable[list.size()]; @@ -3221,15 +3291,15 @@ Token token; token = jj_consume_token(ECHO); expr = Expression(); expressions.add(expr); - label_23: + label_24: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[84] = jj_gen; - break label_23; + jj_la1[86] = jj_gen; + break label_24; } jj_consume_token(COMMA); expr = Expression(); @@ -3264,15 +3334,15 @@ Token token; token = jj_consume_token(GLOBAL); expr = Variable(); vars.add(expr);pos = expr.sourceEnd+1; - label_24: + label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[85] = jj_gen; - break label_24; + jj_la1[87] = jj_gen; + break label_25; } jj_consume_token(COMMA); expr = Variable(); @@ -3307,15 +3377,15 @@ Token token; token = jj_consume_token(STATIC); expr = VariableDeclarator(); vars.add(expr);pos = expr.sourceEnd+1; - label_25: + label_26: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[86] = jj_gen; - break label_25; + jj_la1[88] = jj_gen; + break label_26; } jj_consume_token(COMMA); expr = VariableDeclarator(); @@ -3373,7 +3443,7 @@ Token token; errorEnd = pos; processParseExceptionDebug(e); } - label_26: + label_27: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPEND: @@ -3414,6 +3484,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -3422,8 +3493,8 @@ Token token; ; break; default: - jj_la1[87] = jj_gen; - break label_26; + jj_la1[89] = jj_gen; + break label_27; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case CLASS: @@ -3463,6 +3534,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -3480,7 +3552,7 @@ Token token; pos = PHPParser.token.sourceEnd+1; break; default: - jj_la1[88] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3539,6 +3611,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -3568,7 +3641,7 @@ Token token; {if (true) return statement;} break; default: - jj_la1[89] = jj_gen; + jj_la1[91] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3615,6 +3688,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -3634,7 +3708,7 @@ Token token; {if (true) return statement;} break; default: - jj_la1[90] = jj_gen; + jj_la1[92] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3649,15 +3723,15 @@ Token token; Expression var; var = Expression(); list.add(var); - label_27: + label_28: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[91] = jj_gen; - break label_27; + jj_la1[93] = jj_gen; + break label_28; } jj_consume_token(COMMA); var = Expression(); @@ -3682,7 +3756,7 @@ Token token; initializer = Expression(); break; default: - jj_la1[92] = jj_gen; + jj_la1[94] = jj_gen; ; } if (initializer == null) { @@ -3741,19 +3815,19 @@ Token token; operator.sourceEnd);} break; default: - jj_la1[93] = jj_gen; + jj_la1[95] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[94] = jj_gen; + jj_la1[96] = jj_gen; ; } {if (true) return expr;} break; default: - jj_la1[95] = jj_gen; + jj_la1[97] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3809,7 +3883,7 @@ Token token; cases = switchStatementColon(switchToken.sourceStart, switchToken.sourceEnd); break; default: - jj_la1[96] = jj_gen; + jj_la1[98] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3827,7 +3901,7 @@ Token token; int pos; token = jj_consume_token(LBRACE); pos = token.sourceEnd; - label_28: + label_29: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case CASE: @@ -3835,8 +3909,8 @@ Token token; ; break; default: - jj_la1[97] = jj_gen; - break label_28; + jj_la1[99] = jj_gen; + break label_29; } cas = switchLabel0(); cases.add(cas);pos = cas.sourceEnd; @@ -3879,7 +3953,7 @@ Token token; } catch (CoreException e) { PHPeclipsePlugin.log(e); } - label_29: + label_30: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case CASE: @@ -3887,8 +3961,8 @@ Token token; ; break; default: - jj_la1[98] = jj_gen; - break label_29; + jj_la1[100] = jj_gen; + break label_30; } cas = switchLabel0(); cases.add(cas);pos = cas.sourceEnd; @@ -3925,7 +3999,7 @@ Token token; final ArrayList stmts = new ArrayList(); final Token token = PHPParser.token; expr = SwitchLabel(); - label_30: + label_31: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPEND: @@ -3966,6 +4040,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -3974,8 +4049,8 @@ Token token; ; break; default: - jj_la1[99] = jj_gen; - break label_30; + jj_la1[101] = jj_gen; + break label_31; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case CLASS: @@ -4014,6 +4089,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4031,7 +4107,7 @@ Token token; stmts.add(statement); break; default: - jj_la1[100] = jj_gen; + jj_la1[102] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4096,7 +4172,7 @@ Token token; } break; default: - jj_la1[101] = jj_gen; + jj_la1[103] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4128,6 +4204,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4135,7 +4212,7 @@ Token token; pos = expression.sourceEnd+1; break; default: - jj_la1[102] = jj_gen; + jj_la1[104] = jj_gen; ; } try { @@ -4203,7 +4280,7 @@ Token token; case COLON: jj_consume_token(COLON); stmts = new ArrayList(); - label_31: + label_32: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPEND: @@ -4242,6 +4319,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4250,8 +4328,8 @@ Token token; ; break; default: - jj_la1[103] = jj_gen; - break label_31; + jj_la1[105] = jj_gen; + break label_32; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: @@ -4289,6 +4367,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4302,21 +4381,21 @@ Token token; if (statement != null) {stmts.add(statement);} break; default: - jj_la1[104] = jj_gen; + jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } endStatements = SimpleCharStream.getPosition(); - label_32: + label_33: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ELSEIF: ; break; default: - jj_la1[105] = jj_gen; - break label_32; + jj_la1[107] = jj_gen; + break label_33; } elseifStatement = ElseIfStatementColon(); elseIfList.add(elseifStatement); @@ -4326,7 +4405,7 @@ Token token; elseStatement = ElseStatementColon(); break; default: - jj_la1[106] = jj_gen; + jj_la1[108] = jj_gen; ; } try { @@ -4413,6 +4492,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4454,6 +4534,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4465,19 +4546,19 @@ Token token; stmt = htmlBlock(); break; default: - jj_la1[107] = jj_gen; + jj_la1[109] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_33: + label_34: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ELSEIF: ; break; default: - jj_la1[108] = jj_gen; - break label_33; + jj_la1[110] = jj_gen; + break label_34; } elseifStatement = ElseIfStatement(); elseIfList.add(elseifStatement); @@ -4501,7 +4582,7 @@ Token token; } break; default: - jj_la1[109] = jj_gen; + jj_la1[111] = jj_gen; ; } elseIfs = new ElseIf[elseIfList.size()]; @@ -4514,7 +4595,7 @@ Token token; SimpleCharStream.getPosition());} break; default: - jj_la1[110] = jj_gen; + jj_la1[112] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4529,7 +4610,7 @@ Token token; elseifToken = jj_consume_token(ELSEIF); condition = Condition("elseif"); jj_consume_token(COLON); - label_34: + label_35: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPEND: @@ -4568,6 +4649,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4576,8 +4658,8 @@ Token token; ; break; default: - jj_la1[111] = jj_gen; - break label_34; + jj_la1[113] = jj_gen; + break label_35; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: @@ -4615,6 +4697,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4628,7 +4711,7 @@ Token token; if (statement != null) {list.add(statement);} break; default: - jj_la1[112] = jj_gen; + jj_la1[114] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4648,7 +4731,7 @@ Token token; final Token elseToken; elseToken = jj_consume_token(ELSE); jj_consume_token(COLON); - label_35: + label_36: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PHPEND: @@ -4687,6 +4770,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4695,8 +4779,8 @@ Token token; ; break; default: - jj_la1[113] = jj_gen; - break label_35; + jj_la1[115] = jj_gen; + break label_36; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: @@ -4734,6 +4818,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4747,7 +4832,7 @@ Token token; if (statement != null) {list.add(statement);} break; default: - jj_la1[114] = jj_gen; + jj_la1[116] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4789,7 +4874,7 @@ Token token; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COLON: jj_consume_token(COLON); - label_36: + label_37: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: @@ -4827,6 +4912,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4835,8 +4921,8 @@ Token token; ; break; default: - jj_la1[115] = jj_gen; - break label_36; + jj_la1[117] = jj_gen; + break label_37; } statement = Statement(); stmts.add(statement); @@ -4908,6 +4994,7 @@ Token token; case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -4917,7 +5004,7 @@ Token token; {if (true) return statement;} break; default: - jj_la1[116] = jj_gen; + jj_la1[118] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5071,13 +5158,14 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: initializations = ForInit(); break; default: - jj_la1[117] = jj_gen; + jj_la1[119] = jj_gen; ; } jj_consume_token(SEMICOLON); @@ -5100,13 +5188,14 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: condition = Expression(); break; default: - jj_la1[118] = jj_gen; + jj_la1[120] = jj_gen; ; } jj_consume_token(SEMICOLON); @@ -5129,13 +5218,14 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: increments = StatementExpressionList(); break; default: - jj_la1[119] = jj_gen; + jj_la1[121] = jj_gen; ; } jj_consume_token(RPAREN); @@ -5175,6 +5265,7 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -5191,7 +5282,7 @@ final ArrayList list = new ArrayList(); case COLON: tokenColon = jj_consume_token(COLON); pos = tokenColon.sourceEnd+1; - label_37: + label_38: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: @@ -5229,6 +5320,7 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -5237,8 +5329,8 @@ final ArrayList list = new ArrayList(); ; break; default: - jj_la1[120] = jj_gen; - break label_37; + jj_la1[122] = jj_gen; + break label_38; } action = Statement(); list.add(action);pos = action.sourceEnd+1; @@ -5285,7 +5377,7 @@ final ArrayList list = new ArrayList(); pos);} break; default: - jj_la1[121] = jj_gen; + jj_la1[123] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5317,6 +5409,7 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: @@ -5324,7 +5417,7 @@ final ArrayList list = new ArrayList(); {if (true) return exprs;} break; default: - jj_la1[122] = jj_gen; + jj_la1[124] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5337,15 +5430,15 @@ final ArrayList list = new ArrayList(); final Expression expr; expr = Expression(); list.add(expr); - label_38: + label_39: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[123] = jj_gen; - break label_38; + jj_la1[125] = jj_gen; + break label_39; } jj_consume_token(COMMA); Expression(); @@ -5381,13 +5474,14 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: expr = Expression(); break; default: - jj_la1[124] = jj_gen; + jj_la1[126] = jj_gen; ; } try { @@ -5438,13 +5532,14 @@ final ArrayList list = new ArrayList(); case INTEGER_LITERAL: case FLOATING_POINT_LITERAL: case STRING_LITERAL: + case DOUBLEQUOTE: case DOLLAR: case IDENTIFIER: case LPAREN: expr = Expression(); break; default: - jj_la1[125] = jj_gen; + jj_la1[127] = jj_gen; ; } try { @@ -5506,668 +5601,294 @@ final ArrayList list = new ArrayList(); return retval; } - static final private boolean jj_3R_136() { - if (jj_scan_token(LE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_135() { - if (jj_scan_token(GT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_134() { - if (jj_scan_token(LT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_123() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_134()) { - jj_scanpos = xsp; - if (jj_3R_135()) { - jj_scanpos = xsp; - if (jj_3R_136()) { - jj_scanpos = xsp; - if (jj_3R_137()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_122()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_119() { - if (jj_3R_122()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_123()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_71() { - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_70() { - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_55() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_70()) { - jj_scanpos = xsp; - if (jj_3R_71()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_47() { - if (jj_scan_token(LBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_55()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_202() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3_2() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_40()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_69() { - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_54() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_68()) { - jj_scanpos = xsp; - if (jj_3R_69()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_68() { - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_112() { - if (jj_scan_token(ASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_201() { - if (jj_3R_40()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_2()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_46() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_54()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_128() { - if (jj_scan_token(TRIPLEEQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_127() { - if (jj_scan_token(BANGDOUBLEEQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_126() { - if (jj_scan_token(NOT_EQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_195() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_201()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - xsp = jj_scanpos; - if (jj_3R_202()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_125() { - if (jj_scan_token(DIF)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_124() { - if (jj_scan_token(EQUAL_EQUAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_53() { - if (jj_3R_67()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_116() { - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_120() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_124()) { - jj_scanpos = xsp; - if (jj_3R_125()) { - jj_scanpos = xsp; - if (jj_3R_126()) { - jj_scanpos = xsp; - if (jj_3R_127()) { - jj_scanpos = xsp; - if (jj_3R_128()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_119()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_52() { - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_117() { - if (jj_3R_119()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_120()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_208() { - if (jj_scan_token(ARRAYASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_111() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_116()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_40() { - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_208()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_51() { - if (jj_scan_token(LBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_110() { - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_118() { - if (jj_scan_token(BIT_AND)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_117()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_45() { - if (jj_scan_token(CLASSACCESS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_51()) { - jj_scanpos = xsp; - if (jj_3R_52()) { - jj_scanpos = xsp; - if (jj_3R_53()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_39() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_45()) { - jj_scanpos = xsp; - if (jj_3R_46()) { - jj_scanpos = xsp; - if (jj_3R_47()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_113() { - if (jj_3R_117()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_118()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_103() { - if (jj_scan_token(LIST)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_110()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - while (true) { - xsp = jj_scanpos; - if (jj_3R_111()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - xsp = jj_scanpos; - if (jj_3R_112()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_114() { + static final private boolean jj_3R_115() { if (jj_scan_token(XOR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_113()) return true; + if (jj_3R_114()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_206() { - if (jj_3R_115()) return true; + static final private boolean jj_3R_210() { + if (jj_3R_116()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_205() { - if (jj_3R_49()) return true; + static final private boolean jj_3R_209() { + if (jj_3R_50()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_108() { - if (jj_3R_113()) return true; + static final private boolean jj_3R_109() { + if (jj_3R_114()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_114()) { jj_scanpos = xsp; break; } + if (jj_3R_115()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_204() { + static final private boolean jj_3R_208() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_199() { + static final private boolean jj_3R_203() { Token xsp; xsp = jj_scanpos; - if (jj_3R_204()) { + if (jj_3R_208()) { jj_scanpos = xsp; - if (jj_3R_205()) { + if (jj_3R_209()) { jj_scanpos = xsp; - if (jj_3R_206()) return true; + if (jj_3R_210()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_104() { - if (jj_scan_token(PRINT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_109() { + static final private boolean jj_3R_110() { if (jj_scan_token(BIT_OR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_108()) return true; + if (jj_3R_109()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_102() { - if (jj_3R_108()) return true; + static final private boolean jj_3R_103() { + if (jj_3R_109()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_109()) { jj_scanpos = xsp; break; } + if (jj_3R_110()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_186() { + static final private boolean jj_3R_188() { if (jj_scan_token(ARRAY)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_195()) return true; + if (jj_3R_198()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_131() { + static final private boolean jj_3R_132() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_130() { + static final private boolean jj_3R_131() { if (jj_scan_token(LBRACE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(RBRACE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_105() { + static final private boolean jj_3R_106() { if (jj_scan_token(DOT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_102()) return true; + if (jj_3R_103()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_121() { + static final private boolean jj_3R_122() { Token xsp; xsp = jj_scanpos; - if (jj_3R_129()) { - jj_scanpos = xsp; if (jj_3R_130()) { jj_scanpos = xsp; - if (jj_3R_131()) return true; + if (jj_3R_131()) { + jj_scanpos = xsp; + if (jj_3R_132()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_129() { + static final private boolean jj_3R_130() { if (jj_scan_token(DOLLAR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_121()) return true; + if (jj_3R_122()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_96() { - if (jj_3R_102()) return true; + static final private boolean jj_3R_97() { + if (jj_3R_103()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_105()) { jj_scanpos = xsp; break; } + if (jj_3R_106()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_200() { - if (jj_3R_203()) return true; + static final private boolean jj_3R_204() { + if (jj_3R_207()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_107() { + static final private boolean jj_3R_108() { if (jj_scan_token(_ANDL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_106() { + static final private boolean jj_3R_107() { if (jj_scan_token(AND_AND)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_67() { + static final private boolean jj_3R_68() { if (jj_scan_token(DOLLAR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_121()) return true; + if (jj_3R_122()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_99() { + static final private boolean jj_3R_100() { Token xsp; xsp = jj_scanpos; - if (jj_3R_106()) { + if (jj_3R_107()) { jj_scanpos = xsp; - if (jj_3R_107()) return true; + if (jj_3R_108()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_96()) return true; + if (jj_3R_97()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_80() { - if (jj_3R_96()) return true; + static final private boolean jj_3R_81() { + if (jj_3R_97()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_99()) { jj_scanpos = xsp; break; } + if (jj_3R_100()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_78() { + static final private boolean jj_3R_79() { if (jj_scan_token(HOOK)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(COLON)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_72()) return true; + if (jj_3R_73()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_192() { + static final private boolean jj_3R_195() { if (jj_scan_token(NEW)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_199()) return true; + if (jj_3R_203()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_200()) jj_scanpos = xsp; + if (jj_3R_204()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_198() { - if (jj_3R_203()) return true; + static final private boolean jj_3R_202() { + if (jj_3R_207()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_191() { - if (jj_3R_115()) return true; + static final private boolean jj_3R_194() { + if (jj_3R_116()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_198()) jj_scanpos = xsp; + if (jj_3R_202()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_101() { + static final private boolean jj_3R_102() { if (jj_scan_token(_ORL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_100() { + static final private boolean jj_3R_101() { if (jj_scan_token(OR_OR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_82() { + static final private boolean jj_3R_83() { Token xsp; xsp = jj_scanpos; - if (jj_3R_100()) { + if (jj_3R_101()) { jj_scanpos = xsp; - if (jj_3R_101()) return true; + if (jj_3R_102()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_80()) return true; + if (jj_3R_81()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } static final private boolean jj_3_1() { - if (jj_3R_39()) return true; + if (jj_3R_40()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_197() { - if (jj_3R_203()) return true; + static final private boolean jj_3R_201() { + if (jj_3R_207()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_75() { - if (jj_3R_80()) return true; + static final private boolean jj_3R_76() { + if (jj_3R_81()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_82()) { jj_scanpos = xsp; break; } + if (jj_3R_83()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_196() { + static final private boolean jj_3R_200() { if (jj_scan_token(STATICCLASSACCESS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_199()) return true; + if (jj_3R_203()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_115() { - if (jj_3R_67()) return true; + static final private boolean jj_3R_116() { + if (jj_3R_68()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { @@ -6178,161 +5899,185 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_190() { + static final private boolean jj_3R_51() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_193() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_196()) { jj_scanpos = xsp; break; } + if (jj_3R_200()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } xsp = jj_scanpos; - if (jj_3R_197()) jj_scanpos = xsp; + if (jj_3R_201()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_185() { + static final private boolean jj_3R_187() { Token xsp; xsp = jj_scanpos; - if (jj_3R_190()) { + if (jj_3R_193()) { jj_scanpos = xsp; - if (jj_3R_191()) { + if (jj_3R_194()) { jj_scanpos = xsp; - if (jj_3R_192()) return true; + if (jj_3R_195()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_72() { - if (jj_3R_75()) return true; + static final private boolean jj_3R_73() { + if (jj_3R_76()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_78()) jj_scanpos = xsp; + if (jj_3R_79()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_177() { - if (jj_3R_186()) return true; + static final private boolean jj_3R_45() { + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_51()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } return false; } - static final private boolean jj_3R_184() { + static final private boolean jj_3R_178() { + if (jj_3R_188()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_186() { if (jj_scan_token(BIT_AND)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_95() { + static final private boolean jj_3R_96() { if (jj_scan_token(TILDEEQUAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_94() { + static final private boolean jj_3R_95() { if (jj_scan_token(DOTASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_172() { + static final private boolean jj_3R_173() { Token xsp; xsp = jj_scanpos; - if (jj_3R_176()) { + if (jj_3R_177()) { jj_scanpos = xsp; - if (jj_3R_177()) return true; + if (jj_3R_178()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_176() { + static final private boolean jj_3R_177() { Token xsp; xsp = jj_scanpos; - if (jj_3R_184()) jj_scanpos = xsp; + if (jj_3R_186()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_185()) return true; + if (jj_3R_187()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_93() { + static final private boolean jj_3R_94() { if (jj_scan_token(ORASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_92() { + static final private boolean jj_3R_93() { if (jj_scan_token(XORASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_91() { + static final private boolean jj_3R_92() { if (jj_scan_token(ANDASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_90() { + static final private boolean jj_3R_91() { if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_89() { + static final private boolean jj_3R_90() { if (jj_scan_token(LSHIFTASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_88() { + static final private boolean jj_3R_89() { if (jj_scan_token(MINUSASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_87() { + static final private boolean jj_3R_88() { if (jj_scan_token(PLUSASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_86() { + static final private boolean jj_3_5() { + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_87() { if (jj_scan_token(REMASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_85() { + static final private boolean jj_3R_86() { if (jj_scan_token(SLASHASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_84() { + static final private boolean jj_3R_85() { if (jj_scan_token(STARASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_83() { + static final private boolean jj_3R_84() { if (jj_scan_token(ASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_79() { + static final private boolean jj_3R_80() { Token xsp; xsp = jj_scanpos; - if (jj_3R_83()) { - jj_scanpos = xsp; if (jj_3R_84()) { jj_scanpos = xsp; if (jj_3R_85()) { @@ -6355,7 +6100,9 @@ final ArrayList list = new ArrayList(); jj_scanpos = xsp; if (jj_3R_94()) { jj_scanpos = xsp; - if (jj_3R_95()) return true; + if (jj_3R_95()) { + jj_scanpos = xsp; + if (jj_3R_96()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6372,156 +6119,130 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_194() { + static final private boolean jj_3R_197() { if (jj_scan_token(MINUS_MINUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_193() { + static final private boolean jj_3R_196() { if (jj_scan_token(PLUS_PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_189() { + static final private boolean jj_3R_191() { Token xsp; xsp = jj_scanpos; - if (jj_3R_193()) { + if (jj_3R_196()) { jj_scanpos = xsp; - if (jj_3R_194()) return true; + if (jj_3R_197()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_174() { - if (jj_3R_172()) return true; + static final private boolean jj_3R_175() { + if (jj_3R_173()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_189()) jj_scanpos = xsp; + if (jj_3R_191()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_98() { - if (jj_3R_104()) return true; + static final private boolean jj_3R_99() { + if (jj_3R_105()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_97() { - if (jj_3R_103()) return true; + static final private boolean jj_3R_98() { + if (jj_3R_104()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_81() { + static final private boolean jj_3R_82() { Token xsp; xsp = jj_scanpos; - if (jj_3R_97()) { + if (jj_3R_98()) { jj_scanpos = xsp; - if (jj_3R_98()) return true; + if (jj_3R_99()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_50() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_44() { - if (jj_3R_48()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_50()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - - static final private boolean jj_3R_188() { + static final private boolean jj_3R_190() { if (jj_scan_token(ARRAY)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_187() { - if (jj_3R_49()) return true; + static final private boolean jj_3R_189() { + if (jj_3R_50()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_77() { - if (jj_3R_81()) return true; + static final private boolean jj_3R_78() { + if (jj_3R_82()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_42() { + static final private boolean jj_3R_43() { if (jj_scan_token(ARRAY)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_76() { + static final private boolean jj_3R_77() { if (jj_scan_token(BANG)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_73()) return true; + if (jj_3R_74()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_73() { + static final private boolean jj_3R_74() { Token xsp; xsp = jj_scanpos; - if (jj_3R_76()) { + if (jj_3R_77()) { jj_scanpos = xsp; - if (jj_3R_77()) return true; + if (jj_3R_78()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_173() { + static final private boolean jj_3R_174() { if (jj_scan_token(LPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_187()) { + if (jj_3R_189()) { jj_scanpos = xsp; - if (jj_3R_188()) return true; + if (jj_3R_190()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(RPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_143()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_41() { - if (jj_3R_49()) return true; + if (jj_3R_144()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_57() { - if (jj_3R_73()) return true; + static final private boolean jj_3R_42() { + if (jj_3R_50()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3_5() { - if (jj_3R_44()) return true; + static final private boolean jj_3R_58() { + if (jj_3R_74()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6531,9 +6252,9 @@ final ArrayList list = new ArrayList(); if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_41()) { + if (jj_3R_42()) { jj_scanpos = xsp; - if (jj_3R_42()) return true; + if (jj_3R_43()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(RPAREN)) return true; @@ -6541,38 +6262,38 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_171() { + static final private boolean jj_3R_172() { if (jj_scan_token(LPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(RPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_170() { - if (jj_3R_175()) return true; + static final private boolean jj_3R_171() { + if (jj_3R_176()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_169() { - if (jj_3R_174()) return true; + static final private boolean jj_3R_170() { + if (jj_3R_175()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_165() { + static final private boolean jj_3R_166() { Token xsp; xsp = jj_scanpos; - if (jj_3R_168()) { - jj_scanpos = xsp; if (jj_3R_169()) { jj_scanpos = xsp; if (jj_3R_170()) { jj_scanpos = xsp; - if (jj_3R_171()) return true; + if (jj_3R_171()) { + jj_scanpos = xsp; + if (jj_3R_172()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6580,139 +6301,145 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_168() { - if (jj_3R_173()) return true; + static final private boolean jj_3R_169() { + if (jj_3R_174()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_167() { + static final private boolean jj_3R_168() { if (jj_scan_token(MINUS_MINUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_166() { + static final private boolean jj_3R_167() { if (jj_scan_token(PLUS_PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_74() { - if (jj_3R_79()) return true; + static final private boolean jj_3R_75() { + if (jj_3R_80()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_164() { + static final private boolean jj_3R_44() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SEMICOLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_165() { Token xsp; xsp = jj_scanpos; - if (jj_3R_166()) { + if (jj_3R_167()) { jj_scanpos = xsp; - if (jj_3R_167()) return true; + if (jj_3R_168()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_172()) return true; + if (jj_3R_173()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_48() { + static final private boolean jj_3R_49() { Token xsp; xsp = jj_scanpos; - if (jj_3R_56()) { + if (jj_3R_57()) { jj_scanpos = xsp; - if (jj_3R_57()) return true; + if (jj_3R_58()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_56() { - if (jj_3R_72()) return true; + static final private boolean jj_3R_57() { + if (jj_3R_73()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_74()) jj_scanpos = xsp; + if (jj_3R_75()) jj_scanpos = xsp; else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_66() { + static final private boolean jj_3R_67() { if (jj_scan_token(OBJECT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_160() { - if (jj_3R_165()) return true; + static final private boolean jj_3R_161() { + if (jj_3R_166()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_65() { + static final private boolean jj_3R_66() { if (jj_scan_token(INTEGER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_64() { + static final private boolean jj_3R_65() { if (jj_scan_token(INT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_63() { + static final private boolean jj_3R_64() { if (jj_scan_token(FLOAT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_159() { - if (jj_3R_164()) return true; + static final private boolean jj_3R_160() { + if (jj_3R_165()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_62() { + static final private boolean jj_3R_63() { if (jj_scan_token(DOUBLE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_61() { + static final private boolean jj_3R_62() { if (jj_scan_token(REAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_60() { + static final private boolean jj_3R_61() { if (jj_scan_token(BOOLEAN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_59() { + static final private boolean jj_3R_60() { if (jj_scan_token(BOOL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_158() { + static final private boolean jj_3R_159() { if (jj_scan_token(MINUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_147()) return true; + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_49() { + static final private boolean jj_3R_50() { Token xsp; xsp = jj_scanpos; - if (jj_3R_58()) { - jj_scanpos = xsp; if (jj_3R_59()) { jj_scanpos = xsp; if (jj_3R_60()) { @@ -6727,7 +6454,9 @@ final ArrayList list = new ArrayList(); jj_scanpos = xsp; if (jj_3R_65()) { jj_scanpos = xsp; - if (jj_3R_66()) return true; + if (jj_3R_66()) { + jj_scanpos = xsp; + if (jj_3R_67()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6740,22 +6469,22 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_58() { + static final private boolean jj_3R_59() { if (jj_scan_token(STRING)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_155() { + static final private boolean jj_3R_156() { Token xsp; xsp = jj_scanpos; - if (jj_3R_157()) { - jj_scanpos = xsp; if (jj_3R_158()) { jj_scanpos = xsp; if (jj_3R_159()) { jj_scanpos = xsp; - if (jj_3R_160()) return true; + if (jj_3R_160()) { + jj_scanpos = xsp; + if (jj_3R_161()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6763,90 +6492,108 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_157() { + static final private boolean jj_3R_158() { if (jj_scan_token(PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_147()) return true; + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_163() { - if (jj_3R_155()) return true; + static final private boolean jj_3R_164() { + if (jj_3R_156()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_162() { - if (jj_scan_token(BANG)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_156()) return true; + static final private boolean jj_3_4() { + if (jj_3R_44()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_43() { - if (jj_3R_48()) return true; + static final private boolean jj_3R_163() { + if (jj_scan_token(BANG)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(SEMICOLON)) return true; + if (jj_3R_157()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_156() { + static final private boolean jj_3R_157() { Token xsp; xsp = jj_scanpos; - if (jj_3R_161()) { - jj_scanpos = xsp; if (jj_3R_162()) { jj_scanpos = xsp; - if (jj_3R_163()) return true; + if (jj_3R_163()) { + jj_scanpos = xsp; + if (jj_3R_164()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_161() { + static final private boolean jj_3R_162() { if (jj_scan_token(AT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_157()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_155() { if (jj_3R_156()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } static final private boolean jj_3R_154() { - if (jj_3R_155()) return true; + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_157()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_153() { - if (jj_scan_token(BANG)) return true; + static final private boolean jj_3R_216() { + if (jj_scan_token(COMMA)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_156()) return true; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_152() { + static final private boolean jj_3R_153() { if (jj_scan_token(TILDE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_147()) return true; + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_147() { + static final private boolean jj_3R_215() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_216()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_148() { Token xsp; xsp = jj_scanpos; - if (jj_3R_151()) { - jj_scanpos = xsp; if (jj_3R_152()) { jj_scanpos = xsp; if (jj_3R_153()) { jj_scanpos = xsp; - if (jj_3R_154()) return true; + if (jj_3R_154()) { + jj_scanpos = xsp; + if (jj_3R_155()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6854,234 +6601,263 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_151() { + static final private boolean jj_3R_152() { if (jj_scan_token(AT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_147()) return true; + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3_4() { - if (jj_3R_43()) return true; + static final private boolean jj_3R_144() { + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_143() { - if (jj_3R_147()) return true; + static final private boolean jj_3R_213() { + if (jj_3R_215()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_150() { + static final private boolean jj_3R_151() { if (jj_scan_token(REMAINDER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_149() { + static final private boolean jj_3R_150() { if (jj_scan_token(SLASH)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_148() { + static final private boolean jj_3R_149() { if (jj_scan_token(STAR)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_144() { + static final private boolean jj_3R_207() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_148()) { - jj_scanpos = xsp; - if (jj_3R_149()) { - jj_scanpos = xsp; - if (jj_3R_150()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_143()) return true; + if (jj_3R_213()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_210() { - if (jj_scan_token(COMMA)) return true; + static final private boolean jj_3R_145() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_149()) { + jj_scanpos = xsp; + if (jj_3R_150()) { + jj_scanpos = xsp; + if (jj_3R_151()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_48()) return true; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_144()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_209() { - if (jj_3R_48()) return true; + static final private boolean jj_3R_139() { + if (jj_3R_144()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_210()) { jj_scanpos = xsp; break; } + if (jj_3R_145()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_138() { - if (jj_3R_143()) return true; + static final private boolean jj_3R_212() { + if (jj_scan_token(LBRACE1)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(ID)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE1)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_144()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } return false; } - static final private boolean jj_3R_146() { + static final private boolean jj_3R_147() { if (jj_scan_token(MINUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_145() { - if (jj_scan_token(PLUS)) return true; + static final private boolean jj_3R_211() { + if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_207() { - if (jj_3R_209()) return true; + static final private boolean jj_3R_146() { + if (jj_scan_token(PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_139() { + static final private boolean jj_3R_140() { Token xsp; xsp = jj_scanpos; - if (jj_3R_145()) { + if (jj_3R_146()) { jj_scanpos = xsp; - if (jj_3R_146()) return true; + if (jj_3R_147()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_138()) return true; + if (jj_3R_139()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_132() { - if (jj_3R_138()) return true; + static final private boolean jj_3R_199() { + if (jj_scan_token(DOLLARS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_211()) { + jj_scanpos = xsp; + if (jj_3R_212()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_133() { + if (jj_3R_139()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_139()) { jj_scanpos = xsp; break; } + if (jj_3R_140()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - static final private boolean jj_3R_203() { - if (jj_scan_token(LPAREN)) return true; + static final private boolean jj_3R_192() { + if (jj_scan_token(DOUBLEQUOTE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; - xsp = jj_scanpos; - if (jj_3R_207()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_199()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(DOUBLEQUOTE2)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_142() { + static final private boolean jj_3R_143() { if (jj_scan_token(RUNSIGNEDSHIFT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_141() { + static final private boolean jj_3R_142() { if (jj_scan_token(RSIGNEDSHIFT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_140() { + static final private boolean jj_3R_141() { if (jj_scan_token(LSHIFT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_133() { + static final private boolean jj_3R_185() { + if (jj_3R_192()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_184() { + if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_134() { Token xsp; xsp = jj_scanpos; - if (jj_3R_140()) { - jj_scanpos = xsp; if (jj_3R_141()) { jj_scanpos = xsp; - if (jj_3R_142()) return true; + if (jj_3R_142()) { + jj_scanpos = xsp; + if (jj_3R_143()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_132()) return true; + if (jj_3R_133()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_113() { + if (jj_scan_token(ASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } static final private boolean jj_3R_183() { - if (jj_scan_token(NULL)) return true; + if (jj_scan_token(FALSE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } static final private boolean jj_3R_182() { - if (jj_scan_token(FALSE)) return true; + if (jj_scan_token(TRUE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_122() { - if (jj_3R_132()) return true; + static final private boolean jj_3R_123() { + if (jj_3R_133()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_133()) { jj_scanpos = xsp; break; } + if (jj_3R_134()) { jj_scanpos = xsp; break; } if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } static final private boolean jj_3R_181() { - if (jj_scan_token(TRUE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - - static final private boolean jj_3R_180() { if (jj_scan_token(STRING_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_179() { + static final private boolean jj_3R_180() { if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_178() { + static final private boolean jj_3R_179() { if (jj_scan_token(INTEGER_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_175() { + static final private boolean jj_3R_176() { Token xsp; xsp = jj_scanpos; - if (jj_3R_178()) { - jj_scanpos = xsp; if (jj_3R_179()) { jj_scanpos = xsp; if (jj_3R_180()) { @@ -7090,22 +6866,393 @@ final ArrayList list = new ArrayList(); jj_scanpos = xsp; if (jj_3R_182()) { jj_scanpos = xsp; - if (jj_3R_183()) return true; + if (jj_3R_183()) { + jj_scanpos = xsp; + if (jj_3R_184()) { + jj_scanpos = xsp; + if (jj_3R_185()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_137() { + static final private boolean jj_3R_117() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_138() { if (jj_scan_token(GE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } + static final private boolean jj_3R_137() { + if (jj_scan_token(LE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_136() { + if (jj_scan_token(GT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_135() { + if (jj_scan_token(LT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_124() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_135()) { + jj_scanpos = xsp; + if (jj_3R_136()) { + jj_scanpos = xsp; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3R_138()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_123()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_120() { + if (jj_3R_123()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_124()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_72() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_112() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_117()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_71() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_56() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_71()) { + jj_scanpos = xsp; + if (jj_3R_72()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_48() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_56()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_111() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_206() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3_2() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_70() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_55() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_69()) { + jj_scanpos = xsp; + if (jj_3R_70()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_69() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_104() { + if (jj_scan_token(LIST)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_111()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + while (true) { + xsp = jj_scanpos; + if (jj_3R_112()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_113()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_205() { + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_2()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_47() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_55()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_129() { + if (jj_scan_token(TRIPLEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_128() { + if (jj_scan_token(BANGDOUBLEEQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_127() { + if (jj_scan_token(NOT_EQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_198() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_205()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_206()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_126() { + if (jj_scan_token(DIF)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_125() { + if (jj_scan_token(EQUAL_EQUAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_54() { + if (jj_3R_68()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_121() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_125()) { + jj_scanpos = xsp; + if (jj_3R_126()) { + jj_scanpos = xsp; + if (jj_3R_127()) { + jj_scanpos = xsp; + if (jj_3R_128()) { + jj_scanpos = xsp; + if (jj_3R_129()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_120()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_53() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_118() { + if (jj_3R_120()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_121()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + static final private boolean jj_3R_105() { + if (jj_scan_token(PRINT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_214() { + if (jj_scan_token(ARRAYASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_41() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_214()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_52() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_119() { + if (jj_scan_token(BIT_AND)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_118()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_46() { + if (jj_scan_token(CLASSACCESS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_52()) { + jj_scanpos = xsp; + if (jj_3R_53()) { + jj_scanpos = xsp; + if (jj_3R_54()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_40() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_46()) { + jj_scanpos = xsp; + if (jj_3R_47()) { + jj_scanpos = xsp; + if (jj_3R_48()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + static final private boolean jj_3R_114() { + if (jj_3R_118()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_119()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + static private boolean jj_initialized_once = false; static public PHPParserTokenManager token_source; static SimpleCharStream jj_input_stream; @@ -7116,7 +7263,7 @@ final ArrayList list = new ArrayList(); static public boolean lookingAhead = false; static private boolean jj_semLA; static private int jj_gen; - static final private int[] jj_la1 = new int[126]; + static final private int[] jj_la1 = new int[128]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -7130,19 +7277,19 @@ final ArrayList list = new ArrayList(); jj_la1_4(); } private static void jj_la1_0() { - jj_la1_0 = new int[] {0x5800001e,0x6,0x6,0x5800001e,0x0,0x58000000,0x0,0x30000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x40000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x58000000,0x58000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x0,0x0,0x40000010,0x40000010,0x80000000,0x0,0x40000010,0x80000000,0x0,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000000,0x40000000,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x0,0x0,0x0,}; + jj_la1_0 = new int[] {0x5800001e,0x6,0x6,0x5800001e,0x0,0x58000000,0x0,0x30000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x40000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x58000000,0x58000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58000010,0x58000010,0x0,0x0,0x40000010,0x40000010,0x80000000,0x0,0x40000010,0x80000000,0x0,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000000,0x40000000,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x0,0x0,0x0,}; } private static void jj_la1_1() { - jj_la1_1 = new int[] {0xd7541ffe,0x0,0x0,0xd7541ffe,0x0,0xd7541ffe,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc2000002,0x8000,0xc300001a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc300001a,0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3000002,0xc3000002,0xc3000002,0x0,0xc3000002,0x2,0x0,0x0,0x0,0x1000002,0x4000,0x0,0x0,0x0,0x1000000,0x0,0x0,0xc300001a,0xc300001a,0xc300001a,0xc300001a,0x2000,0xc2000000,0xc300001a,0x0,0x0,0x14541fe0,0xd7541ffe,0x0,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffa,0x0,0x0,0x0,0x0,0x1000002,0x0,0x90000,0x90000,0xd7541ffe,0xd7541ffe,0x90000,0xc300001a,0xd7541ffe,0xd7541ffe,0x0,0x1,0xd7541ffe,0x0,0x1,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xc300001a,0xc300001a,0xc300001a,0xd7541ffe,0xd7541ffe,0xc300001a,0x0,0xc300001a,0xc300001a,}; + jj_la1_1 = new int[] {0xd7541ffe,0x0,0x0,0xd7541ffe,0x0,0xd7541ffe,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc2000002,0x8000,0xc300001a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc300001a,0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc3000002,0xc3000002,0xc3000002,0x0,0xc3000002,0x2,0x0,0x0,0x0,0x1000002,0x4000,0x0,0x0,0x0,0x1000000,0x0,0x0,0xc300001a,0xc300001a,0xc300001a,0xc300001a,0x2000,0xc2000000,0x0,0x0,0xc300001a,0x0,0x0,0x14541fe0,0xd7541ffe,0x0,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffa,0x0,0x0,0x0,0x0,0x1000002,0x0,0x90000,0x90000,0xd7541ffe,0xd7541ffe,0x90000,0xc300001a,0xd7541ffe,0xd7541ffe,0x0,0x1,0xd7541ffe,0x0,0x1,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xd7541ffe,0xc300001a,0xc300001a,0xc300001a,0xd7541ffe,0xd7541ffe,0xc300001a,0x0,0xc300001a,0xc300001a,}; } private static void jj_la1_2() { - jj_la1_2 = new int[] {0x27870021,0x0,0x0,0x27870021,0x0,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x27870000,0x0,0x20000000,0x0,0x20000000,0x20000000,0xff80,0x0,0x27870000,0x20000,0x0,0x0,0x80000,0x200000,0x200000,0x400000,0x400000,0x0,0x40000000,0x80000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x18000000,0x18000000,0x27870000,0x27830000,0x27800000,0x1800000,0x20000000,0xff80,0x1800000,0x1800000,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0xff80,0x0,0x2787ff80,0x2787ff80,0x2787ff80,0x2787ff80,0x0,0x0,0x27870000,0x0,0x10000,0x10021,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x27870021,0x27870021,0x27870021,0x27870021,0x0,0x0,0x1800000,0x1800000,0x21800000,0x100000,0x0,0x0,0x27870021,0x27870021,0x0,0x27870000,0x27870021,0x27870021,0x0,0x0,0x27870021,0x0,0x0,0x27970021,0x27870021,0x27870021,0x27870021,0x27870021,0x27870021,0x27970021,0x27870000,0x27870000,0x27870000,0x27870021,0x27970021,0x27870000,0x0,0x27870000,0x27870000,}; + jj_la1_2 = new int[] {0x27870021,0x0,0x0,0x27870021,0x0,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x27870000,0x0,0x20000000,0x0,0x20000000,0x20000000,0xff80,0x0,0x27870000,0x20000,0x0,0x0,0x80000,0x200000,0x200000,0x400000,0x400000,0x0,0x40000000,0x80000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x18000000,0x18000000,0x27870000,0x27830000,0x27800000,0x1800000,0x20000000,0xff80,0x1800000,0x1800000,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0xff80,0x0,0x2787ff80,0x2787ff80,0x2787ff80,0x2787ff80,0x0,0x0,0x0,0x0,0x27870000,0x0,0x10000,0x10021,0x27870021,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x27870021,0x27870021,0x27870021,0x27870021,0x0,0x0,0x1800000,0x1800000,0x21800000,0x100000,0x0,0x0,0x27870021,0x27870021,0x0,0x27870000,0x27870021,0x27870021,0x0,0x0,0x27870021,0x0,0x0,0x27970021,0x27870021,0x27870021,0x27870021,0x27870021,0x27870021,0x27970021,0x27870000,0x27870000,0x27870000,0x27870021,0x27970021,0x27870000,0x0,0x27870000,0x27870000,}; } private static void jj_la1_3() { - jj_la1_3 = new int[] {0x8a31440,0x0,0x0,0x8a31440,0x8000000,0x8a31440,0x0,0x0,0x0,0x10000000,0x820000,0x0,0x0,0x830000,0x440,0x440,0x21440,0x0,0x231440,0x10000000,0x0,0x10000000,0x10000,0x0,0x0,0x0,0x231440,0x0,0x0,0x0,0x0,0x10,0x10,0x20,0x20,0x20000000,0x0,0x0,0x0,0x0,0x0,0xc0000000,0xc0000000,0xe,0xe,0x0,0x0,0x1,0x1,0x231440,0x231440,0x231440,0x0,0x231440,0x0,0x0,0x0,0x0,0x30000,0x0,0x200000,0x200000,0x200000,0x30000,0x30000,0x830000,0x231440,0x231440,0x231440,0x231440,0x2800000,0x1440,0x231440,0x10000000,0x0,0x8820000,0x8a31440,0x0,0x0,0x0,0x10000,0x10000000,0x10000,0x0,0x10000000,0x10000000,0x10000000,0x8a31440,0x8a31440,0x8a31440,0x8a31440,0x10000000,0x0,0x0,0x0,0x30000,0x800000,0x0,0x0,0x8a31440,0x8a31440,0x0,0x231440,0x8a31440,0x8a31440,0x0,0x0,0x8a31440,0x0,0x0,0x8a31440,0x8a31440,0x8a31440,0x8a31440,0x8a31440,0x8a31440,0x8a31440,0x231440,0x231440,0x231440,0x8a31440,0x8a31440,0x231440,0x10000000,0x231440,0x231440,}; + jj_la1_3 = new int[] {0x18011440,0x0,0x0,0x18011440,0x0,0x18011440,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x18000000,0x440,0x440,0x10011440,0x0,0x18011440,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x18011440,0x0,0x0,0x0,0x0,0x10,0x10,0x20,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0xe,0x0,0x0,0x1,0x1,0x18011440,0x18011440,0x18011440,0x0,0x18011440,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0x18000000,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x11440,0x20000,0x10080000,0x18011440,0x0,0x0,0x10000000,0x18011440,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x0,0x0,0x0,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x18011440,0x18011440,0x0,0x18011440,0x18011440,0x18011440,0x0,0x0,0x18011440,0x0,0x0,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x18011440,0x0,0x18011440,0x18011440,}; } private static void jj_la1_4() { - jj_la1_4 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfff80,0x0,0x0,0x0,0xfff80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x79,0x79,0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_4 = new int[] {0x8a,0x0,0x0,0x8a,0x80,0x8a,0x0,0x0,0x0,0x100,0x8,0x80000,0x80000,0x8,0x0,0x0,0x0,0x0,0x2,0x100,0x0,0x100,0x0,0x0,0x0,0xfff80000,0x2,0x0,0x0,0xfff80000,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x79000,0x79000,0x6c00,0x6c00,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x2,0x0,0x0,0x8,0x2,0x2,0x2,0x2,0x28,0x0,0x0,0x0,0x2,0x100,0x0,0x88,0x8a,0x0,0x0,0x0,0x0,0x100,0x0,0x80000,0x100,0x100,0x100,0x8a,0x8a,0x8a,0x8a,0x100,0x80000,0x0,0x0,0x0,0x8,0x0,0x0,0x8a,0x8a,0x0,0x2,0x8a,0x8a,0x0,0x0,0x8a,0x0,0x0,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x2,0x2,0x2,0x8a,0x8a,0x2,0x100,0x2,0x2,}; } static final private JJCalls[] jj_2_rtns = new JJCalls[5]; static private boolean jj_rescan = false; @@ -7161,7 +7308,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7171,7 +7318,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7188,7 +7335,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7198,7 +7345,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7214,7 +7361,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7223,7 +7370,7 @@ final ArrayList list = new ArrayList(); token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 126; i++) jj_la1[i] = -1; + for (int i = 0; i < 128; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7330,15 +7477,15 @@ final ArrayList list = new ArrayList(); static public ParseException generateParseException() { jj_expentries.removeAllElements(); - boolean[] la1tokens = new boolean[148]; - for (int i = 0; i < 148; i++) { + boolean[] la1tokens = new boolean[160]; + for (int i = 0; i < 160; i++) { la1tokens[i] = false; } if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 126; i++) { + for (int i = 0; i < 128; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< | - | | )> -| + | )> +//| | | } + SKIP : +{ + : IN_STRING +} + + TOKEN : +{ + : IN_STRING +} + + + TOKEN : +{ + : DOLLAR_IN_STRING +} + + TOKEN : +{ + : PHPPARSING +} + + TOKEN : +{ + : DOLLAR_IN_STRING_EXPR +} + + SPECIAL_TOKEN : +{ + <"{"> : SKIPSTRING +} + + SPECIAL_TOKEN : +{ + <"}"> : IN_STRING +} + + SKIP : +{ + <~[]> +} + + TOKEN : +{ + : DOLLAR_IN_STRING +} + + TOKEN : +{ + +} + + SKIP : +{ + <~[]> +} + + SKIP : +{ + <~[]> +} /* IDENTIFIERS */ TOKEN : { : IN_VARIABLE} - TOKEN : + TOKEN : { |) (||)* > | @@ -618,6 +678,10 @@ MORE : > } + SPECIAL_TOKEN : +{ + < ~[] > : IN_STRING +} /* SEPARATORS */ TOKEN : @@ -1914,6 +1978,7 @@ AbstractVariable VariableSuffix(final AbstractVariable prefix) : Literal Literal() : { final Token token; + StringLiteral literal; } { token = {return new NumberLiteral(token);} @@ -1922,6 +1987,43 @@ Literal Literal() : | token = {return new TrueLiteral(token);} | token = {return new FalseLiteral(token);} | token = {return new NullLiteral(token);} +| literal = evaluableString() {return literal;} +} + +StringLiteral evaluableString() : +{ + ArrayList list = new ArrayList(); + Token start,end; + Token token,lbrace,rbrace; + AbstractVariable var; + Expression expr; +} +{ + start = + ( + + ( + token = {list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd));} + | + lbrace = + token = + {list.add(new Variable(token.image, + token.sourceStart, + token.sourceEnd));} + rbrace = + ) + )* + end = + { + AbstractVariable[] vars = new AbstractVariable[list.size()]; + list.toArray(vars); + return new StringLiteral(SimpleCharStream.currentBuffer.substring(start.sourceEnd,end.sourceStart), + start.sourceStart, + end.sourceEnd, + vars); + } } FunctionCall Arguments(final Expression func) : diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java b/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java index 85ec698..6fc6c54 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParserConstants.java @@ -91,45 +91,51 @@ public interface PHPParserConstants { int FLOATING_POINT_LITERAL = 106; int EXPONENT = 107; int STRING_LITERAL = 108; - int STRING_1 = 109; - int STRING_2 = 110; - int STRING_3 = 111; - int DOLLAR = 112; - int IDENTIFIER = 113; - int LETTER = 114; - int DIGIT = 115; - int SPECIAL = 116; - int LPAREN = 117; - int RPAREN = 118; - int LBRACE = 119; - int RBRACE = 120; - int LBRACKET = 121; - int RBRACKET = 122; - int SEMICOLON = 123; - int COMMA = 124; - int DOT = 125; - int GT = 126; - int LT = 127; - int EQUAL_EQUAL = 128; - int LE = 129; - int GE = 130; - int NOT_EQUAL = 131; - int DIF = 132; - int BANGDOUBLEEQUAL = 133; - int TRIPLEEQUAL = 134; - int ASSIGN = 135; - int PLUSASSIGN = 136; - int MINUSASSIGN = 137; - int STARASSIGN = 138; - int SLASHASSIGN = 139; - int ANDASSIGN = 140; - int ORASSIGN = 141; - int XORASSIGN = 142; - int DOTASSIGN = 143; - int REMASSIGN = 144; - int TILDEEQUAL = 145; - int LSHIFTASSIGN = 146; - int RSIGNEDSHIFTASSIGN = 147; + int STRING_2 = 109; + int STRING_3 = 110; + int ESCAPED = 111; + int DOUBLEQUOTE = 112; + int DOLLARS = 113; + int DOUBLEQUOTE2 = 114; + int LBRACE1 = 115; + int RBRACE1 = 119; + int ID = 120; + int DOLLAR = 123; + int IDENTIFIER = 124; + int LETTER = 125; + int DIGIT = 126; + int SPECIAL = 127; + int LPAREN = 129; + int RPAREN = 130; + int LBRACE = 131; + int RBRACE = 132; + int LBRACKET = 133; + int RBRACKET = 134; + int SEMICOLON = 135; + int COMMA = 136; + int DOT = 137; + int GT = 138; + int LT = 139; + int EQUAL_EQUAL = 140; + int LE = 141; + int GE = 142; + int NOT_EQUAL = 143; + int DIF = 144; + int BANGDOUBLEEQUAL = 145; + int TRIPLEEQUAL = 146; + int ASSIGN = 147; + int PLUSASSIGN = 148; + int MINUSASSIGN = 149; + int STARASSIGN = 150; + int SLASHASSIGN = 151; + int ANDASSIGN = 152; + int ORASSIGN = 153; + int XORASSIGN = 154; + int DOTASSIGN = 155; + int REMASSIGN = 156; + int TILDEEQUAL = 157; + int LSHIFTASSIGN = 158; + int RSIGNEDSHIFTASSIGN = 159; int DEFAULT = 0; int PHPPARSING = 1; @@ -137,6 +143,10 @@ public interface PHPParserConstants { int IN_VARIABLE = 3; int IN_FORMAL_COMMENT = 4; int IN_MULTI_LINE_COMMENT = 5; + int IN_STRING = 6; + int DOLLAR_IN_STRING = 7; + int SKIPSTRING = 8; + int DOLLAR_IN_STRING_EXPR = 9; String[] tokenImage = { "", @@ -248,14 +258,26 @@ public interface PHPParserConstants { "", "", "", - "", "", "", + "", + "\"\\\"\"", + "\"$\"", + "\"\\\"\"", + "\"{\"", + "\"{\"", + "\"}\"", + "", + "\"}\"", + "", + "", + "", "\"$\"", "", "", "", "", + "", "\"(\"", "\")\"", "\"{\"", diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java b/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java index 1b01b7c..9a4efb3 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java @@ -36,6 +36,225 @@ static private final int jjStopAtPos(int pos, int kind) jjmatchedPos = pos; return pos + 1; } +static private final int jjMoveStringLiteralDfa0_5() +{ + switch(curChar) + { + case 42: + return jjMoveStringLiteralDfa1_5(0x2000000L); + case 84: + case 116: + return jjMoveStringLiteralDfa1_5(0x400000L); + default : + return 1; + } +} +static private final int jjMoveStringLiteralDfa1_5(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 1; + } + switch(curChar) + { + case 47: + if ((active0 & 0x2000000L) != 0L) + return jjStopAtPos(1, 25); + break; + case 79: + case 111: + return jjMoveStringLiteralDfa2_5(active0, 0x400000L); + default : + return 2; + } + return 2; +} +static private final int jjMoveStringLiteralDfa2_5(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return 2; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 2; + } + switch(curChar) + { + case 68: + case 100: + return jjMoveStringLiteralDfa3_5(active0, 0x400000L); + default : + return 3; + } +} +static private final int jjMoveStringLiteralDfa3_5(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return 3; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + return 3; + } + switch(curChar) + { + case 79: + case 111: + if ((active0 & 0x400000L) != 0L) + return jjStopAtPos(3, 22); + break; + default : + return 4; + } + return 4; +} +static private final int jjMoveStringLiteralDfa0_8() +{ + switch(curChar) + { + case 125: + return jjStopAtPos(0, 117); + default : + return 1; + } +} +private static final int jjStopStringLiteralDfa_9(int pos, long active0, long active1) +{ + switch (pos) + { + default : + return -1; + } +} +private static final int jjStartNfa_9(int pos, long active0, long active1) +{ + return jjMoveNfa_9(jjStopStringLiteralDfa_9(pos, active0, active1), pos + 1); +} +static private final int jjStartNfaWithStates_9(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_9(state, pos + 1); +} +static private final int jjMoveStringLiteralDfa0_9() +{ + switch(curChar) + { + case 125: + return jjStopAtPos(0, 119); + default : + return jjMoveNfa_9(0, 0); + } +} +static private final void jjCheckNAdd(int state) +{ + if (jjrounds[state] != jjround) + { + jjstateSet[jjnewStateCnt++] = state; + jjrounds[state] = jjround; + } +} +static private final void jjAddStates(int start, int end) +{ + do { + jjstateSet[jjnewStateCnt++] = jjnextStates[start]; + } while (start++ != end); +} +static private final void jjCheckNAddTwoStates(int state1, int state2) +{ + jjCheckNAdd(state1); + jjCheckNAdd(state2); +} +static private final void jjCheckNAddStates(int start, int end) +{ + do { + jjCheckNAdd(jjnextStates[start]); + } while (start++ != end); +} +static private final void jjCheckNAddStates(int start) +{ + jjCheckNAdd(jjnextStates[start]); + jjCheckNAdd(jjnextStates[start + 1]); +} +static final long[] jjbitVec0 = { + 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +static private final int jjMoveNfa_9(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 1; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + kind = 120; + jjstateSet[jjnewStateCnt++] = 0; + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + if ((0xdfffffffffffffffL & l) == 0L) + break; + kind = 120; + jjstateSet[jjnewStateCnt++] = 0; + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + if ((jjbitVec0[i2] & l2) == 0L) + break; + if (kind > 120) + kind = 120; + jjstateSet[jjnewStateCnt++] = 0; + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} static private final int jjMoveStringLiteralDfa0_0() { switch(curChar) @@ -139,20 +358,20 @@ static private final int jjMoveStringLiteralDfa4_0(long old0, long active0) } return 5; } -static private final int jjMoveStringLiteralDfa0_5() +static private final int jjMoveStringLiteralDfa0_4() { switch(curChar) { case 42: - return jjMoveStringLiteralDfa1_5(0x2000000L); + return jjMoveStringLiteralDfa1_4(0x1000000L); case 84: case 116: - return jjMoveStringLiteralDfa1_5(0x400000L); + return jjMoveStringLiteralDfa1_4(0x400000L); default : return 1; } } -static private final int jjMoveStringLiteralDfa1_5(long active0) +static private final int jjMoveStringLiteralDfa1_4(long active0) { try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { @@ -161,18 +380,18 @@ static private final int jjMoveStringLiteralDfa1_5(long active0) switch(curChar) { case 47: - if ((active0 & 0x2000000L) != 0L) - return jjStopAtPos(1, 25); + if ((active0 & 0x1000000L) != 0L) + return jjStopAtPos(1, 24); break; case 79: case 111: - return jjMoveStringLiteralDfa2_5(active0, 0x400000L); + return jjMoveStringLiteralDfa2_4(active0, 0x400000L); default : return 2; } return 2; } -static private final int jjMoveStringLiteralDfa2_5(long old0, long active0) +static private final int jjMoveStringLiteralDfa2_4(long old0, long active0) { if (((active0 &= old0)) == 0L) return 2; @@ -184,12 +403,12 @@ static private final int jjMoveStringLiteralDfa2_5(long old0, long active0) { case 68: case 100: - return jjMoveStringLiteralDfa3_5(active0, 0x400000L); + return jjMoveStringLiteralDfa3_4(active0, 0x400000L); default : return 3; } } -static private final int jjMoveStringLiteralDfa3_5(long old0, long active0) +static private final int jjMoveStringLiteralDfa3_4(long old0, long active0) { if (((active0 &= old0)) == 0L) return 3; @@ -209,6 +428,462 @@ static private final int jjMoveStringLiteralDfa3_5(long old0, long active0) } return 4; } +private static final int jjStopStringLiteralDfa_3(int pos, long active0, long active1, long active2) +{ + switch (pos) + { + case 0: + if ((active1 & 0x3000000000L) != 0L) + { + jjmatchedKind = 124; + return 1; + } + return -1; + case 1: + if ((active1 & 0x1000000000L) != 0L) + return 1; + if ((active1 & 0x2000000000L) != 0L) + { + if (jjmatchedPos != 1) + { + jjmatchedKind = 124; + jjmatchedPos = 1; + } + return 1; + } + return -1; + default : + return -1; + } +} +private static final int jjStartNfa_3(int pos, long active0, long active1, long active2) +{ + return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0, active1, active2), pos + 1); +} +static private final int jjStartNfaWithStates_3(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_3(state, pos + 1); +} +static private final int jjMoveStringLiteralDfa0_3() +{ + switch(curChar) + { + case 9: + return jjStopAtPos(0, 12); + case 10: + return jjStopAtPos(0, 13); + case 12: + return jjStopAtPos(0, 15); + case 13: + return jjStopAtPos(0, 14); + case 32: + return jjStopAtPos(0, 11); + case 33: + jjmatchedKind = 81; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x28000L); + case 36: + return jjStopAtPos(0, 123); + case 37: + jjmatchedKind = 96; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x10000000L); + case 38: + jjmatchedKind = 93; + return jjMoveStringLiteralDfa1_3(0x0L, 0x400000L, 0x1000000L); + case 40: + return jjStopAtPos(0, 129); + case 41: + return jjStopAtPos(0, 130); + case 42: + jjmatchedKind = 91; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x400000L); + case 43: + jjmatchedKind = 89; + return jjMoveStringLiteralDfa1_3(0x0L, 0x800000L, 0x100000L); + case 44: + return jjStopAtPos(0, 136); + case 45: + jjmatchedKind = 90; + return jjMoveStringLiteralDfa1_3(0x200000000000L, 0x1000000L, 0x200000L); + case 46: + jjmatchedKind = 137; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x8000000L); + case 47: + jjmatchedKind = 92; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x800000L); + case 58: + jjmatchedKind = 84; + return jjMoveStringLiteralDfa1_3(0x400000000000L, 0x0L, 0x0L); + case 59: + return jjStopAtPos(0, 135); + case 60: + jjmatchedKind = 139; + return jjMoveStringLiteralDfa1_3(0x0L, 0x200000000L, 0x40012000L); + case 61: + jjmatchedKind = 147; + return jjMoveStringLiteralDfa1_3(0x800000000000L, 0x0L, 0x41000L); + case 62: + jjmatchedKind = 138; + return jjMoveStringLiteralDfa1_3(0x0L, 0xc00000000L, 0x80004000L); + case 63: + jjmatchedKind = 83; + return jjMoveStringLiteralDfa1_3(0x10L, 0x0L, 0x0L); + case 64: + return jjStopAtPos(0, 80); + case 91: + return jjStopAtPos(0, 133); + case 93: + return jjStopAtPos(0, 134); + case 94: + jjmatchedKind = 95; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x4000000L); + case 65: + case 97: + return jjMoveStringLiteralDfa1_3(0x0L, 0x2000000000L, 0x0L); + case 79: + case 111: + return jjMoveStringLiteralDfa1_3(0x0L, 0x1000000000L, 0x0L); + case 123: + return jjStopAtPos(0, 131); + case 124: + jjmatchedKind = 94; + return jjMoveStringLiteralDfa1_3(0x0L, 0x200000L, 0x2000000L); + case 125: + return jjStopAtPos(0, 132); + case 126: + jjmatchedKind = 82; + return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x20000000L); + default : + return jjMoveNfa_3(0, 0); + } +} +static private final int jjMoveStringLiteralDfa1_3(long active0, long active1, long active2) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_3(0, active0, active1, active2); + return 1; + } + switch(curChar) + { + case 38: + if ((active1 & 0x400000L) != 0L) + return jjStopAtPos(1, 86); + break; + case 43: + if ((active1 & 0x800000L) != 0L) + return jjStopAtPos(1, 87); + break; + case 45: + if ((active1 & 0x1000000L) != 0L) + return jjStopAtPos(1, 88); + break; + case 58: + if ((active0 & 0x400000000000L) != 0L) + return jjStopAtPos(1, 46); + break; + case 60: + if ((active1 & 0x200000000L) != 0L) + { + jjmatchedKind = 97; + jjmatchedPos = 1; + } + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x40000000L); + case 61: + if ((active2 & 0x1000L) != 0L) + { + jjmatchedKind = 140; + jjmatchedPos = 1; + } + else if ((active2 & 0x2000L) != 0L) + return jjStopAtPos(1, 141); + else if ((active2 & 0x4000L) != 0L) + return jjStopAtPos(1, 142); + else if ((active2 & 0x8000L) != 0L) + { + jjmatchedKind = 143; + jjmatchedPos = 1; + } + else if ((active2 & 0x100000L) != 0L) + return jjStopAtPos(1, 148); + else if ((active2 & 0x200000L) != 0L) + return jjStopAtPos(1, 149); + else if ((active2 & 0x400000L) != 0L) + return jjStopAtPos(1, 150); + else if ((active2 & 0x800000L) != 0L) + return jjStopAtPos(1, 151); + else if ((active2 & 0x1000000L) != 0L) + return jjStopAtPos(1, 152); + else if ((active2 & 0x2000000L) != 0L) + return jjStopAtPos(1, 153); + else if ((active2 & 0x4000000L) != 0L) + return jjStopAtPos(1, 154); + else if ((active2 & 0x8000000L) != 0L) + return jjStopAtPos(1, 155); + else if ((active2 & 0x10000000L) != 0L) + return jjStopAtPos(1, 156); + else if ((active2 & 0x20000000L) != 0L) + return jjStopAtPos(1, 157); + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x60000L); + case 62: + if ((active0 & 0x10L) != 0L) + return jjStopAtPos(1, 4); + else if ((active0 & 0x200000000000L) != 0L) + return jjStopAtPos(1, 45); + else if ((active0 & 0x800000000000L) != 0L) + return jjStopAtPos(1, 47); + else if ((active1 & 0x400000000L) != 0L) + { + jjmatchedKind = 98; + jjmatchedPos = 1; + } + else if ((active2 & 0x10000L) != 0L) + return jjStopAtPos(1, 144); + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x800000000L, active2, 0x80000000L); + case 78: + case 110: + return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x2000000000L, active2, 0L); + case 82: + case 114: + if ((active1 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_3(1, 100, 1); + break; + case 124: + if ((active1 & 0x200000L) != 0L) + return jjStopAtPos(1, 85); + break; + default : + break; + } + return jjStartNfa_3(0, active0, active1, active2); +} +static private final int jjMoveStringLiteralDfa2_3(long old0, long active0, long old1, long active1, long old2, long active2) +{ + if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) + return jjStartNfa_3(0, old0, old1, old2); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_3(1, 0L, active1, active2); + return 2; + } + switch(curChar) + { + case 61: + if ((active2 & 0x20000L) != 0L) + return jjStopAtPos(2, 145); + else if ((active2 & 0x40000L) != 0L) + return jjStopAtPos(2, 146); + else if ((active2 & 0x40000000L) != 0L) + return jjStopAtPos(2, 158); + else if ((active2 & 0x80000000L) != 0L) + return jjStopAtPos(2, 159); + break; + case 62: + if ((active1 & 0x800000000L) != 0L) + return jjStopAtPos(2, 99); + break; + case 68: + case 100: + if ((active1 & 0x2000000000L) != 0L) + return jjStartNfaWithStates_3(2, 101, 1); + break; + default : + break; + } + return jjStartNfa_3(1, 0L, active1, active2); +} +static private final int jjMoveNfa_3(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 2; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + kind = 124; + jjstateSet[jjnewStateCnt++] = 1; + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + case 1: + if ((0x87fffffe87fffffeL & l) == 0L) + break; + if (kind > 124) + kind = 124; + jjCheckNAdd(1); + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + case 1: + if ((jjbitVec0[i2] & l2) == 0L) + break; + if (kind > 124) + kind = 124; + jjCheckNAdd(1); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +private static final int jjStopStringLiteralDfa_6(int pos, long active0, long active1) +{ + switch (pos) + { + default : + return -1; + } +} +private static final int jjStartNfa_6(int pos, long active0, long active1) +{ + return jjMoveNfa_6(jjStopStringLiteralDfa_6(pos, active0, active1), pos + 1); +} +static private final int jjStartNfaWithStates_6(int pos, int kind, int state) +{ + jjmatchedKind = kind; + jjmatchedPos = pos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return pos + 1; } + return jjMoveNfa_6(state, pos + 1); +} +static private final int jjMoveStringLiteralDfa0_6() +{ + switch(curChar) + { + case 34: + return jjStopAtPos(0, 114); + case 36: + return jjStopAtPos(0, 113); + case 123: + return jjStopAtPos(0, 116); + default : + return jjMoveNfa_6(0, 0); + } +} +static private final int jjMoveNfa_6(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 2; + int i = 1; + jjstateSet[0] = startState; + int j, kind = 0x7fffffff; + for (;;) + { + if (++jjround == 0x7fffffff) + ReInitRounds(); + if (curChar < 64) + { + long l = 1L << curChar; + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 1: + kind = 111; + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 0: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 1; + break; + case 1: + if (kind > 111) + kind = 111; + break; + default : break; + } + } while(i != startsAt); + } + else + { + int i2 = (curChar & 0xff) >> 6; + long l2 = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 1: + if ((jjbitVec0[i2] & l2) != 0L && kind > 111) + kind = 111; + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} private static final int jjStopStringLiteralDfa_2(int pos, long active0) { switch (pos) @@ -303,36 +978,6 @@ static private final int jjMoveStringLiteralDfa3_2(long old0, long active0) } return jjStartNfa_2(2, active0); } -static private final void jjCheckNAdd(int state) -{ - if (jjrounds[state] != jjround) - { - jjstateSet[jjnewStateCnt++] = state; - jjrounds[state] = jjround; - } -} -static private final void jjAddStates(int start, int end) -{ - do { - jjstateSet[jjnewStateCnt++] = jjnextStates[start]; - } while (start++ != end); -} -static private final void jjCheckNAddTwoStates(int state1, int state2) -{ - jjCheckNAdd(state1); - jjCheckNAdd(state2); -} -static private final void jjCheckNAddStates(int start, int end) -{ - do { - jjCheckNAdd(jjnextStates[start]); - } while (start++ != end); -} -static private final void jjCheckNAddStates(int start) -{ - jjCheckNAdd(jjnextStates[start]); - jjCheckNAdd(jjnextStates[start + 1]); -} static private final int jjMoveNfa_2(int startState, int curPos) { int[] nextStates; @@ -414,15 +1059,15 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac switch (pos) { case 0: - if ((active0 & 0x90000L) != 0L || (active1 & 0x10000000L) != 0L || (active2 & 0x800L) != 0L) - return 2; - if ((active1 & 0x2000000000000000L) != 0L || (active2 & 0x8000L) != 0L) - return 8; if ((active0 & 0xffff1ffff8000000L) != 0L || (active1 & 0x300000ffffL) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; return 14; } + if ((active0 & 0x90000L) != 0L || (active1 & 0x10000000L) != 0L || (active2 & 0x800000L) != 0L) + return 2; + if ((active2 & 0x8000200L) != 0L) + return 8; return -1; case 1: if ((active0 & 0x80000L) != 0L) @@ -433,57 +1078,57 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac { if (jjmatchedPos != 1) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 1; } return 14; } return -1; case 2: + if ((active0 & 0x140000020000000L) != 0L || (active1 & 0x200000c020L) != 0L) + return 14; if ((active0 & 0xfeaf1fff98000000L) != 0L || (active1 & 0x3f9fL) != 0L) { if (jjmatchedPos != 2) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 2; } return 14; } - if ((active0 & 0x140000020000000L) != 0L || (active1 & 0x200000c020L) != 0L) - return 14; return -1; case 3: - if ((active0 & 0x6281002980000000L) != 0L || (active1 & 0xe00L) != 0L) - return 14; if ((active0 & 0x9c2e1fd618000000L) != 0L || (active1 & 0xb1bfL) != 0L) { if (jjmatchedPos != 3) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 3; } return 14; } + if ((active0 & 0x6281002980000000L) != 0L || (active1 & 0xe00L) != 0L) + return 14; return -1; case 4: if ((active0 & 0x8802001608000000L) != 0L || (active1 & 0x2009L) != 0L) return 14; if ((active0 & 0x142c1fc090000000L) != 0L || (active1 & 0x95b6L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 4; return 14; } return -1; case 5: + if ((active0 & 0x14001c0080000000L) != 0L || (active1 & 0x1190L) != 0L) + return 14; if ((active0 & 0x2c03c010000000L) != 0L || (active1 & 0x8426L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 5; return 14; } - if ((active0 & 0x14001c0080000000L) != 0L || (active1 & 0x1190L) != 0L) - return 14; return -1; case 6: if ((active0 & 0x2803c000000000L) != 0L || (active1 & 0x8420L) != 0L) @@ -492,28 +1137,28 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac { if (jjmatchedPos != 6) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 6; } return 14; } return -1; case 7: - if ((active0 & 0x4000010000000L) != 0L || (active1 & 0x2L) != 0L) - return 14; if ((active0 & 0x30000000000L) != 0L || (active1 & 0x4L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 7; return 14; } + if ((active0 & 0x4000010000000L) != 0L || (active1 & 0x2L) != 0L) + return 14; return -1; case 8: if ((active1 & 0x4L) != 0L) return 14; if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 8; return 14; } @@ -521,7 +1166,7 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac case 9: if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 9; return 14; } @@ -529,7 +1174,7 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac case 10: if ((active0 & 0x30000000000L) != 0L) { - jjmatchedKind = 113; + jjmatchedKind = 124; jjmatchedPos = 10; return 14; } @@ -556,64 +1201,66 @@ static private final int jjMoveStringLiteralDfa0_1() { case 33: jjmatchedKind = 81; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x28L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x28000L); + case 34: + return jjStopAtPos(0, 112); case 35: return jjStopAtPos(0, 17); case 36: - return jjStopAtPos(0, 112); + return jjStopAtPos(0, 123); case 37: jjmatchedKind = 96; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x10000L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x10000000L); case 38: jjmatchedKind = 93; - return jjMoveStringLiteralDfa1_1(0x0L, 0x400000L, 0x1000L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x400000L, 0x1000000L); case 40: - return jjStopAtPos(0, 117); + return jjStopAtPos(0, 129); case 41: - return jjStopAtPos(0, 118); + return jjStopAtPos(0, 130); case 42: jjmatchedKind = 91; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400000L); case 43: jjmatchedKind = 89; - return jjMoveStringLiteralDfa1_1(0x0L, 0x800000L, 0x100L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x800000L, 0x100000L); case 44: - return jjStopAtPos(0, 124); + return jjStopAtPos(0, 136); case 45: jjmatchedKind = 90; - return jjMoveStringLiteralDfa1_1(0x200000000000L, 0x1000000L, 0x200L); + return jjMoveStringLiteralDfa1_1(0x200000000000L, 0x1000000L, 0x200000L); case 46: - jjmatchedKind = 125; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x8000L); + jjmatchedKind = 137; + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x8000000L); case 47: jjmatchedKind = 92; - return jjMoveStringLiteralDfa1_1(0x90000L, 0x0L, 0x800L); + return jjMoveStringLiteralDfa1_1(0x90000L, 0x0L, 0x800000L); case 58: jjmatchedKind = 84; return jjMoveStringLiteralDfa1_1(0x400000000000L, 0x0L, 0x0L); case 59: - return jjStopAtPos(0, 123); + return jjStopAtPos(0, 135); case 60: - jjmatchedKind = 127; - return jjMoveStringLiteralDfa1_1(0x0L, 0x200000000L, 0x40012L); + jjmatchedKind = 139; + return jjMoveStringLiteralDfa1_1(0x0L, 0x200000000L, 0x40012000L); case 61: - jjmatchedKind = 135; - return jjMoveStringLiteralDfa1_1(0x800000000000L, 0x0L, 0x41L); + jjmatchedKind = 147; + return jjMoveStringLiteralDfa1_1(0x800000000000L, 0x0L, 0x41000L); case 62: - jjmatchedKind = 126; - return jjMoveStringLiteralDfa1_1(0x0L, 0xc00000000L, 0x80004L); + jjmatchedKind = 138; + return jjMoveStringLiteralDfa1_1(0x0L, 0xc00000000L, 0x80004000L); case 63: jjmatchedKind = 83; return jjMoveStringLiteralDfa1_1(0x10L, 0x0L, 0x0L); case 64: return jjStopAtPos(0, 80); case 91: - return jjStopAtPos(0, 121); + return jjStopAtPos(0, 133); case 93: - return jjStopAtPos(0, 122); + return jjStopAtPos(0, 134); case 94: jjmatchedKind = 95; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x4000L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x4000000L); case 65: case 97: return jjMoveStringLiteralDfa1_1(0x200000000L, 0x2000000040L, 0x0L); @@ -666,15 +1313,15 @@ static private final int jjMoveStringLiteralDfa0_1() case 119: return jjMoveStringLiteralDfa1_1(0x0L, 0x1L, 0x0L); case 123: - return jjStopAtPos(0, 119); + return jjStopAtPos(0, 131); case 124: jjmatchedKind = 94; - return jjMoveStringLiteralDfa1_1(0x0L, 0x200000L, 0x2000L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x200000L, 0x2000000L); case 125: - return jjStopAtPos(0, 120); + return jjStopAtPos(0, 132); case 126: jjmatchedKind = 82; - return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x20000L); + return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x20000000L); default : return jjMoveNfa_1(3, 0); } @@ -718,43 +1365,43 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l jjmatchedKind = 97; jjmatchedPos = 1; } - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x40000L); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x40000000L); case 61: - if ((active2 & 0x1L) != 0L) - { - jjmatchedKind = 128; - jjmatchedPos = 1; - } - else if ((active2 & 0x2L) != 0L) - return jjStopAtPos(1, 129); - else if ((active2 & 0x4L) != 0L) - return jjStopAtPos(1, 130); - else if ((active2 & 0x8L) != 0L) + if ((active2 & 0x1000L) != 0L) { - jjmatchedKind = 131; + jjmatchedKind = 140; jjmatchedPos = 1; } - else if ((active2 & 0x100L) != 0L) - return jjStopAtPos(1, 136); - else if ((active2 & 0x200L) != 0L) - return jjStopAtPos(1, 137); - else if ((active2 & 0x400L) != 0L) - return jjStopAtPos(1, 138); - else if ((active2 & 0x800L) != 0L) - return jjStopAtPos(1, 139); - else if ((active2 & 0x1000L) != 0L) - return jjStopAtPos(1, 140); else if ((active2 & 0x2000L) != 0L) return jjStopAtPos(1, 141); else if ((active2 & 0x4000L) != 0L) return jjStopAtPos(1, 142); else if ((active2 & 0x8000L) != 0L) - return jjStopAtPos(1, 143); - else if ((active2 & 0x10000L) != 0L) - return jjStopAtPos(1, 144); - else if ((active2 & 0x20000L) != 0L) - return jjStopAtPos(1, 145); - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x60L); + { + jjmatchedKind = 143; + jjmatchedPos = 1; + } + else if ((active2 & 0x100000L) != 0L) + return jjStopAtPos(1, 148); + else if ((active2 & 0x200000L) != 0L) + return jjStopAtPos(1, 149); + else if ((active2 & 0x400000L) != 0L) + return jjStopAtPos(1, 150); + else if ((active2 & 0x800000L) != 0L) + return jjStopAtPos(1, 151); + else if ((active2 & 0x1000000L) != 0L) + return jjStopAtPos(1, 152); + else if ((active2 & 0x2000000L) != 0L) + return jjStopAtPos(1, 153); + else if ((active2 & 0x4000000L) != 0L) + return jjStopAtPos(1, 154); + else if ((active2 & 0x8000000L) != 0L) + return jjStopAtPos(1, 155); + else if ((active2 & 0x10000000L) != 0L) + return jjStopAtPos(1, 156); + else if ((active2 & 0x20000000L) != 0L) + return jjStopAtPos(1, 157); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x60000L); case 62: if ((active0 & 0x10L) != 0L) return jjStopAtPos(1, 4); @@ -767,9 +1414,9 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l jjmatchedKind = 98; jjmatchedPos = 1; } - else if ((active2 & 0x10L) != 0L) - return jjStopAtPos(1, 132); - return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x800000000L, active2, 0x80000L); + else if ((active2 & 0x10000L) != 0L) + return jjStopAtPos(1, 144); + return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x800000000L, active2, 0x80000000L); case 65: case 97: return jjMoveStringLiteralDfa2_1(active0, 0x8001000020000000L, active1, 0L, active2, 0L); @@ -850,14 +1497,14 @@ static private final int jjMoveStringLiteralDfa2_1(long old0, long active0, long switch(curChar) { case 61: - if ((active2 & 0x20L) != 0L) - return jjStopAtPos(2, 133); - else if ((active2 & 0x40L) != 0L) - return jjStopAtPos(2, 134); + if ((active2 & 0x20000L) != 0L) + return jjStopAtPos(2, 145); else if ((active2 & 0x40000L) != 0L) return jjStopAtPos(2, 146); - else if ((active2 & 0x80000L) != 0L) - return jjStopAtPos(2, 147); + else if ((active2 & 0x40000000L) != 0L) + return jjStopAtPos(2, 158); + else if ((active2 & 0x80000000L) != 0L) + return jjStopAtPos(2, 159); break; case 62: if ((active1 & 0x800000000L) != 0L) @@ -1359,14 +2006,11 @@ static private final int jjMoveStringLiteralDfa11_1(long old0, long active0) } return jjStartNfa_1(10, active0, 0L, 0L); } -static final long[] jjbitVec0 = { - 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL -}; static private final int jjMoveNfa_1(int startState, int curPos) { int[] nextStates; int startsAt = 0; - jjnewStateCnt = 61; + jjnewStateCnt = 52; int i = 1; jjstateSet[0] = startState; int j, kind = 0x7fffffff; @@ -1386,8 +2030,6 @@ static private final int jjMoveNfa_1(int startState, int curPos) jjCheckNAddStates(0, 6); else if (curChar == 39) jjCheckNAddStates(7, 12); - else if (curChar == 34) - jjCheckNAddStates(13, 18); else if (curChar == 46) jjCheckNAdd(8); else if (curChar == 47) @@ -1402,7 +2044,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) { if (kind > 102) kind = 102; - jjCheckNAddStates(19, 21); + jjCheckNAddStates(13, 15); } break; case 0: @@ -1440,7 +2082,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; if (kind > 106) kind = 106; - jjCheckNAddStates(22, 24); + jjCheckNAddStates(16, 18); break; case 10: if ((0x280000000000L & l) != 0L) @@ -1456,8 +2098,8 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 14: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 113) - kind = 113; + if (kind > 124) + kind = 124; jjstateSet[jjnewStateCnt++] = 14; break; case 15: @@ -1473,14 +2115,14 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; if (kind > 106) kind = 106; - jjCheckNAddStates(25, 27); + jjCheckNAddStates(19, 21); break; case 18: if ((0x3ff000000000000L & l) == 0L) break; if (kind > 106) kind = 106; - jjCheckNAddStates(25, 27); + jjCheckNAddStates(19, 21); break; case 20: if ((0x280000000000L & l) != 0L) @@ -1510,7 +2152,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; case 26: if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddStates(28, 30); + jjCheckNAddStates(22, 24); break; case 28: if ((0x280000000000L & l) != 0L) @@ -1525,7 +2167,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; if (kind > 102) kind = 102; - jjCheckNAddStates(19, 21); + jjCheckNAddStates(13, 15); break; case 32: if ((0x3ff000000000000L & l) == 0L) @@ -1542,64 +2184,38 @@ static private final int jjMoveNfa_1(int startState, int curPos) jjCheckNAddTwoStates(33, 6); break; case 34: - if (curChar == 34) - jjCheckNAddStates(13, 18); + if (curChar == 39) + jjCheckNAddStates(7, 12); break; case 35: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddStates(31, 33); + if ((0xffffff7fffffffffL & l) != 0L) + jjCheckNAddStates(25, 27); break; case 37: - jjCheckNAddStates(31, 33); + jjCheckNAddStates(25, 27); break; case 38: - if (curChar == 34 && kind > 108) + if (curChar == 39 && kind > 108) kind = 108; break; case 39: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddStates(34, 36); + if ((0xffffff7fffffffffL & l) != 0L) + jjCheckNAddStates(28, 30); break; case 41: - jjCheckNAddStates(34, 36); + jjCheckNAddStates(28, 30); break; case 42: - if (curChar == 34 && kind > 109) + if (curChar == 39 && kind > 109) kind = 109; break; - case 43: - if (curChar == 39) - jjCheckNAddStates(7, 12); - break; case 44: - if ((0xffffff7fffffffffL & l) != 0L) - jjCheckNAddStates(37, 39); - break; case 46: - jjCheckNAddStates(37, 39); - break; - case 47: - if (curChar == 39 && kind > 108) - kind = 108; + jjCheckNAddStates(31, 33); break; case 48: - if ((0xffffff7fffffffffL & l) != 0L) - jjCheckNAddStates(40, 42); - break; case 50: - jjCheckNAddStates(40, 42); - break; - case 51: - if (curChar == 39 && kind > 110) - kind = 110; - break; - case 53: - case 55: - jjCheckNAddStates(43, 45); - break; - case 57: - case 59: - jjCheckNAddStates(46, 48); + jjCheckNAddStates(34, 36); break; default : break; } @@ -1615,12 +2231,12 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 3: if ((0x87fffffe87fffffeL & l) != 0L) { - if (kind > 113) - kind = 113; + if (kind > 124) + kind = 124; jjCheckNAdd(14); } else if (curChar == 96) - jjCheckNAddStates(49, 54); + jjCheckNAddStates(37, 42); break; case 1: if (kind > 18) @@ -1632,7 +2248,7 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; case 9: if ((0x2000000020L & l) != 0L) - jjAddStates(55, 56); + jjAddStates(43, 44); break; case 12: if ((0x5000000050L & l) != 0L && kind > 106) @@ -1642,21 +2258,21 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 14: if ((0x87fffffe87fffffeL & l) == 0L) break; - if (kind > 113) - kind = 113; + if (kind > 124) + kind = 124; jjCheckNAdd(14); break; case 19: if ((0x2000000020L & l) != 0L) - jjAddStates(57, 58); + jjAddStates(45, 46); break; case 23: if ((0x2000000020L & l) != 0L) - jjAddStates(59, 60); + jjAddStates(47, 48); break; case 27: if ((0x2000000020L & l) != 0L) - jjAddStates(61, 62); + jjAddStates(49, 50); break; case 31: if ((0x100000001000000L & l) != 0L) @@ -1671,81 +2287,59 @@ static private final int jjMoveNfa_1(int startState, int curPos) break; case 35: if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(31, 33); + jjCheckNAddStates(25, 27); break; case 36: if (curChar == 92) jjstateSet[jjnewStateCnt++] = 37; break; case 37: - jjCheckNAddStates(31, 33); + jjCheckNAddStates(25, 27); break; case 39: if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(34, 36); + jjCheckNAddStates(28, 30); break; case 40: if (curChar == 92) jjstateSet[jjnewStateCnt++] = 41; break; case 41: - jjCheckNAddStates(34, 36); + jjCheckNAddStates(28, 30); + break; + case 43: + if (curChar == 96) + jjCheckNAddStates(37, 42); break; case 44: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(37, 39); + if ((0xfffffffeefffffffL & l) != 0L) + jjCheckNAddStates(31, 33); break; case 45: if (curChar == 92) jjstateSet[jjnewStateCnt++] = 46; break; case 46: - jjCheckNAddStates(37, 39); - break; - case 48: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(40, 42); - break; - case 49: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 50; - break; - case 50: - jjCheckNAddStates(40, 42); - break; - case 52: - if (curChar == 96) - jjCheckNAddStates(49, 54); - break; - case 53: - if ((0xfffffffeefffffffL & l) != 0L) - jjCheckNAddStates(43, 45); - break; - case 54: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 55; - break; - case 55: - jjCheckNAddStates(43, 45); + jjCheckNAddStates(31, 33); break; - case 56: + case 47: if (curChar == 96 && kind > 108) kind = 108; break; - case 57: + case 48: if ((0xfffffffeefffffffL & l) != 0L) - jjCheckNAddStates(46, 48); + jjCheckNAddStates(34, 36); break; - case 58: + case 49: if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 59; + jjstateSet[jjnewStateCnt++] = 50; break; - case 59: - jjCheckNAddStates(46, 48); + case 50: + jjCheckNAddStates(34, 36); break; - case 60: - if (curChar == 96 && kind > 111) - kind = 111; + case 51: + if (curChar == 96 && kind > 110) + kind = 110; break; default : break; } @@ -1763,8 +2357,8 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 14: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 113) - kind = 113; + if (kind > 124) + kind = 124; jjCheckNAdd(14); break; case 1: @@ -1774,32 +2368,22 @@ static private final int jjMoveNfa_1(int startState, int curPos) case 35: case 37: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(31, 33); + jjCheckNAddStates(25, 27); break; case 39: case 41: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(34, 36); + jjCheckNAddStates(28, 30); break; case 44: case 46: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(37, 39); + jjCheckNAddStates(31, 33); break; case 48: case 50: if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(40, 42); - break; - case 53: - case 55: - if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(43, 45); - break; - case 57: - case 59: - if ((jjbitVec0[i2] & l2) != 0L) - jjCheckNAddStates(46, 48); + jjCheckNAddStates(34, 36); break; default : break; } @@ -1812,354 +2396,49 @@ static private final int jjMoveNfa_1(int startState, int curPos) kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 61 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 52 - (jjnewStateCnt = startsAt))) return curPos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } } } -static private final int jjMoveStringLiteralDfa0_4() -{ - switch(curChar) - { - case 42: - return jjMoveStringLiteralDfa1_4(0x1000000L); - case 84: - case 116: - return jjMoveStringLiteralDfa1_4(0x400000L); - default : - return 1; - } -} -static private final int jjMoveStringLiteralDfa1_4(long active0) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 1; - } - switch(curChar) - { - case 47: - if ((active0 & 0x1000000L) != 0L) - return jjStopAtPos(1, 24); - break; - case 79: - case 111: - return jjMoveStringLiteralDfa2_4(active0, 0x400000L); - default : - return 2; - } - return 2; -} -static private final int jjMoveStringLiteralDfa2_4(long old0, long active0) -{ - if (((active0 &= old0)) == 0L) - return 2; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 2; - } - switch(curChar) - { - case 68: - case 100: - return jjMoveStringLiteralDfa3_4(active0, 0x400000L); - default : - return 3; - } -} -static private final int jjMoveStringLiteralDfa3_4(long old0, long active0) -{ - if (((active0 &= old0)) == 0L) - return 3; - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - return 3; - } - switch(curChar) - { - case 79: - case 111: - if ((active0 & 0x400000L) != 0L) - return jjStopAtPos(3, 22); - break; - default : - return 4; - } - return 4; -} -private static final int jjStopStringLiteralDfa_3(int pos, long active0, long active1, long active2) +private static final int jjStopStringLiteralDfa_7(int pos, long active0, long active1) { switch (pos) { - case 0: - if ((active1 & 0x3000000000L) != 0L) - { - jjmatchedKind = 113; - return 1; - } - return -1; - case 1: - if ((active1 & 0x2000000000L) != 0L) - { - if (jjmatchedPos != 1) - { - jjmatchedKind = 113; - jjmatchedPos = 1; - } - return 1; - } - if ((active1 & 0x1000000000L) != 0L) - return 1; - return -1; default : return -1; } } -private static final int jjStartNfa_3(int pos, long active0, long active1, long active2) +private static final int jjStartNfa_7(int pos, long active0, long active1) { - return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0, active1, active2), pos + 1); + return jjMoveNfa_7(jjStopStringLiteralDfa_7(pos, active0, active1), pos + 1); } -static private final int jjStartNfaWithStates_3(int pos, int kind, int state) +static private final int jjStartNfaWithStates_7(int pos, int kind, int state) { jjmatchedKind = kind; jjmatchedPos = pos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return pos + 1; } - return jjMoveNfa_3(state, pos + 1); + return jjMoveNfa_7(state, pos + 1); } -static private final int jjMoveStringLiteralDfa0_3() +static private final int jjMoveStringLiteralDfa0_7() { switch(curChar) { - case 9: - return jjStopAtPos(0, 12); - case 10: - return jjStopAtPos(0, 13); - case 12: - return jjStopAtPos(0, 15); - case 13: - return jjStopAtPos(0, 14); - case 32: - return jjStopAtPos(0, 11); - case 33: - jjmatchedKind = 81; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x28L); - case 36: - return jjStopAtPos(0, 112); - case 37: - jjmatchedKind = 96; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x10000L); - case 38: - jjmatchedKind = 93; - return jjMoveStringLiteralDfa1_3(0x0L, 0x400000L, 0x1000L); - case 40: - return jjStopAtPos(0, 117); - case 41: - return jjStopAtPos(0, 118); - case 42: - jjmatchedKind = 91; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x400L); - case 43: - jjmatchedKind = 89; - return jjMoveStringLiteralDfa1_3(0x0L, 0x800000L, 0x100L); - case 44: - return jjStopAtPos(0, 124); - case 45: - jjmatchedKind = 90; - return jjMoveStringLiteralDfa1_3(0x200000000000L, 0x1000000L, 0x200L); - case 46: - jjmatchedKind = 125; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x8000L); - case 47: - jjmatchedKind = 92; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x800L); - case 58: - jjmatchedKind = 84; - return jjMoveStringLiteralDfa1_3(0x400000000000L, 0x0L, 0x0L); - case 59: - return jjStopAtPos(0, 123); - case 60: - jjmatchedKind = 127; - return jjMoveStringLiteralDfa1_3(0x0L, 0x200000000L, 0x40012L); - case 61: - jjmatchedKind = 135; - return jjMoveStringLiteralDfa1_3(0x800000000000L, 0x0L, 0x41L); - case 62: - jjmatchedKind = 126; - return jjMoveStringLiteralDfa1_3(0x0L, 0xc00000000L, 0x80004L); - case 63: - jjmatchedKind = 83; - return jjMoveStringLiteralDfa1_3(0x10L, 0x0L, 0x0L); - case 64: - return jjStopAtPos(0, 80); - case 91: - return jjStopAtPos(0, 121); - case 93: - return jjStopAtPos(0, 122); - case 94: - jjmatchedKind = 95; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x4000L); - case 65: - case 97: - return jjMoveStringLiteralDfa1_3(0x0L, 0x2000000000L, 0x0L); - case 79: - case 111: - return jjMoveStringLiteralDfa1_3(0x0L, 0x1000000000L, 0x0L); + case 34: + return jjStopAtPos(0, 114); case 123: - return jjStopAtPos(0, 119); - case 124: - jjmatchedKind = 94; - return jjMoveStringLiteralDfa1_3(0x0L, 0x200000L, 0x2000L); - case 125: - return jjStopAtPos(0, 120); - case 126: - jjmatchedKind = 82; - return jjMoveStringLiteralDfa1_3(0x0L, 0x0L, 0x20000L); + return jjStopAtPos(0, 115); default : - return jjMoveNfa_3(0, 0); + return jjMoveNfa_7(0, 0); } } -static private final int jjMoveStringLiteralDfa1_3(long active0, long active1, long active2) -{ - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_3(0, active0, active1, active2); - return 1; - } - switch(curChar) - { - case 38: - if ((active1 & 0x400000L) != 0L) - return jjStopAtPos(1, 86); - break; - case 43: - if ((active1 & 0x800000L) != 0L) - return jjStopAtPos(1, 87); - break; - case 45: - if ((active1 & 0x1000000L) != 0L) - return jjStopAtPos(1, 88); - break; - case 58: - if ((active0 & 0x400000000000L) != 0L) - return jjStopAtPos(1, 46); - break; - case 60: - if ((active1 & 0x200000000L) != 0L) - { - jjmatchedKind = 97; - jjmatchedPos = 1; - } - return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x40000L); - case 61: - if ((active2 & 0x1L) != 0L) - { - jjmatchedKind = 128; - jjmatchedPos = 1; - } - else if ((active2 & 0x2L) != 0L) - return jjStopAtPos(1, 129); - else if ((active2 & 0x4L) != 0L) - return jjStopAtPos(1, 130); - else if ((active2 & 0x8L) != 0L) - { - jjmatchedKind = 131; - jjmatchedPos = 1; - } - else if ((active2 & 0x100L) != 0L) - return jjStopAtPos(1, 136); - else if ((active2 & 0x200L) != 0L) - return jjStopAtPos(1, 137); - else if ((active2 & 0x400L) != 0L) - return jjStopAtPos(1, 138); - else if ((active2 & 0x800L) != 0L) - return jjStopAtPos(1, 139); - else if ((active2 & 0x1000L) != 0L) - return jjStopAtPos(1, 140); - else if ((active2 & 0x2000L) != 0L) - return jjStopAtPos(1, 141); - else if ((active2 & 0x4000L) != 0L) - return jjStopAtPos(1, 142); - else if ((active2 & 0x8000L) != 0L) - return jjStopAtPos(1, 143); - else if ((active2 & 0x10000L) != 0L) - return jjStopAtPos(1, 144); - else if ((active2 & 0x20000L) != 0L) - return jjStopAtPos(1, 145); - return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0L, active2, 0x60L); - case 62: - if ((active0 & 0x10L) != 0L) - return jjStopAtPos(1, 4); - else if ((active0 & 0x200000000000L) != 0L) - return jjStopAtPos(1, 45); - else if ((active0 & 0x800000000000L) != 0L) - return jjStopAtPos(1, 47); - else if ((active1 & 0x400000000L) != 0L) - { - jjmatchedKind = 98; - jjmatchedPos = 1; - } - else if ((active2 & 0x10L) != 0L) - return jjStopAtPos(1, 132); - return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x800000000L, active2, 0x80000L); - case 78: - case 110: - return jjMoveStringLiteralDfa2_3(active0, 0L, active1, 0x2000000000L, active2, 0L); - case 82: - case 114: - if ((active1 & 0x1000000000L) != 0L) - return jjStartNfaWithStates_3(1, 100, 1); - break; - case 124: - if ((active1 & 0x200000L) != 0L) - return jjStopAtPos(1, 85); - break; - default : - break; - } - return jjStartNfa_3(0, active0, active1, active2); -} -static private final int jjMoveStringLiteralDfa2_3(long old0, long active0, long old1, long active1, long old2, long active2) -{ - if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) - return jjStartNfa_3(0, old0, old1, old2); - try { curChar = input_stream.readChar(); } - catch(java.io.IOException e) { - jjStopStringLiteralDfa_3(1, 0L, active1, active2); - return 2; - } - switch(curChar) - { - case 61: - if ((active2 & 0x20L) != 0L) - return jjStopAtPos(2, 133); - else if ((active2 & 0x40L) != 0L) - return jjStopAtPos(2, 134); - else if ((active2 & 0x40000L) != 0L) - return jjStopAtPos(2, 146); - else if ((active2 & 0x80000L) != 0L) - return jjStopAtPos(2, 147); - break; - case 62: - if ((active1 & 0x800000000L) != 0L) - return jjStopAtPos(2, 99); - break; - case 68: - case 100: - if ((active1 & 0x2000000000L) != 0L) - return jjStartNfaWithStates_3(2, 101, 1); - break; - default : - break; - } - return jjStartNfa_3(1, 0L, active1, active2); -} -static private final int jjMoveNfa_3(int startState, int curPos) +static private final int jjMoveNfa_7(int startState, int curPos) { int[] nextStates; int startsAt = 0; - jjnewStateCnt = 2; + jjnewStateCnt = 4; int i = 1; jjstateSet[0] = startState; int j, kind = 0x7fffffff; @@ -2175,10 +2454,15 @@ static private final int jjMoveNfa_3(int startState, int curPos) switch(jjstateSet[--i]) { case 1: + if (kind > 111) + kind = 111; + break; + case 3: if ((0x3ff000000000000L & l) == 0L) break; - kind = 113; - jjstateSet[jjnewStateCnt++] = 1; + if (kind > 124) + kind = 124; + jjstateSet[jjnewStateCnt++] = 3; break; default : break; } @@ -2192,12 +2476,26 @@ static private final int jjMoveNfa_3(int startState, int curPos) switch(jjstateSet[--i]) { case 0: + if ((0x87fffffe87fffffeL & l) != 0L) + { + if (kind > 124) + kind = 124; + jjCheckNAdd(3); + } + else if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 1; + break; case 1: + if (kind > 111) + kind = 111; + break; + case 2: + case 3: if ((0x87fffffe87fffffeL & l) == 0L) break; - if (kind > 113) - kind = 113; - jjCheckNAdd(1); + if (kind > 124) + kind = 124; + jjCheckNAdd(3); break; default : break; } @@ -2212,12 +2510,16 @@ static private final int jjMoveNfa_3(int startState, int curPos) switch(jjstateSet[--i]) { case 0: - case 1: + case 3: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 113) - kind = 113; - jjCheckNAdd(1); + if (kind > 124) + kind = 124; + jjCheckNAdd(3); + break; + case 1: + if ((jjbitVec0[i2] & l2) != 0L && kind > 111) + kind = 111; break; default : break; } @@ -2230,17 +2532,17 @@ static private final int jjMoveNfa_3(int startState, int curPos) kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt))) return curPos; try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } } } static final int[] jjnextStates = { - 16, 17, 22, 23, 26, 27, 12, 44, 45, 47, 48, 49, 51, 35, 36, 38, - 39, 40, 42, 31, 33, 6, 8, 9, 12, 18, 19, 12, 26, 27, 12, 35, - 36, 38, 39, 40, 42, 44, 45, 47, 48, 49, 51, 53, 54, 56, 57, 58, - 60, 53, 54, 56, 57, 58, 60, 10, 11, 20, 21, 24, 25, 28, 29, + 16, 17, 22, 23, 26, 27, 12, 35, 36, 38, 39, 40, 42, 31, 33, 6, + 8, 9, 12, 18, 19, 12, 26, 27, 12, 35, 36, 38, 39, 40, 42, 44, + 45, 47, 48, 49, 51, 44, 45, 47, 48, 49, 51, 10, 11, 20, 21, 24, + 25, 28, 29, }; public static final String[] jjstrLiteralImages = { "", "\74\77", null, "\74\77\75", "\77\76", null, null, null, null, null, null, @@ -2251,9 +2553,10 @@ null, null, null, null, null, null, null, null, null, null, null, null, null, nu null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "\100", "\41", "\176", "\77", "\72", "\174\174", "\46\46", "\53\53", "\55\55", "\53", "\55", "\52", "\57", "\46", "\174", "\136", "\45", "\74\74", "\76\76", -"\76\76\76", null, null, null, null, null, null, null, null, null, null, null, null, "\44", -null, null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73", "\54", -"\56", "\76", "\74", "\75\75", "\74\75", "\76\75", "\41\75", "\74\76", "\41\75\75", +"\76\76\76", null, null, null, null, null, null, null, null, null, null, null, null, "\42", +"\44", "\42", "\173", null, null, null, "\175", null, null, null, "\44", null, null, +null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73", "\54", "\56", +"\76", "\74", "\75\75", "\74\75", "\76\75", "\41\75", "\74\76", "\41\75\75", "\75\75\75", "\75", "\53\75", "\55\75", "\52\75", "\57\75", "\46\75", "\174\75", "\136\75", "\56\75", "\45\75", "\176\75", "\74\74\75", "\76\76\75", }; public static final String[] lexStateNames = { @@ -2263,30 +2566,35 @@ public static final String[] lexStateNames = { "IN_VARIABLE", "IN_FORMAL_COMMENT", "IN_MULTI_LINE_COMMENT", + "IN_STRING", + "DOLLAR_IN_STRING", + "SKIPSTRING", + "DOLLAR_IN_STRING_EXPR", }; public static final int[] jjnewLexState = { -1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 2, 2, 4, 5, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 6, 7, 1, 9, 8, 6, -1, 7, -1, -1, -1, 3, -1, + -1, -1, -1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; static final long[] jjtoToken = { - 0xfffffffff880001fL, 0xffe3f47fffffffffL, 0xfffffL, + 0xfffffffff880001fL, 0x198f747fffffffffL, 0xfffffffeL, }; static final long[] jjtoSkip = { - 0x37fffe0L, 0x0L, 0x0L, + 0x37fffe0L, 0x670800000000000L, 0x1L, }; static final long[] jjtoSpecial = { - 0x37ff800L, 0x0L, 0x0L, + 0x37ff800L, 0x30000000000000L, 0x1L, }; static final long[] jjtoMore = { 0x4000000L, 0x0L, 0x0L, }; static protected SimpleCharStream input_stream; -static private final int[] jjrounds = new int[61]; -static private final int[] jjstateSet = new int[122]; +static private final int[] jjrounds = new int[52]; +static private final int[] jjstateSet = new int[104]; static StringBuffer image; static int jjimageLen; static int lengthOfMatch; @@ -2313,7 +2621,7 @@ static private final void ReInitRounds() { int i; jjround = 0x80000001; - for (i = 61; i-- > 0;) + for (i = 52; i-- > 0;) jjrounds[i] = 0x80000000; } static public void ReInit(SimpleCharStream stream, int lexState) @@ -2323,7 +2631,7 @@ static public void ReInit(SimpleCharStream stream, int lexState) } static public void SwitchTo(int lexState) { - if (lexState >= 6 || lexState < 0) + if (lexState >= 10 || lexState < 0) throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); else curLexState = lexState; @@ -2333,12 +2641,21 @@ static protected Token jjFillToken() { Token t = Token.newToken(jjmatchedKind); t.kind = jjmatchedKind; - String im = jjstrLiteralImages[jjmatchedKind]; - t.image = (im == null) ? input_stream.GetImage() : im; - t.beginLine = input_stream.getBeginLine(); - t.beginColumn = input_stream.getBeginColumn(); - t.endLine = input_stream.getEndLine(); - t.endColumn = input_stream.getEndColumn(); + if (jjmatchedPos < 0) + { + t.image = ""; + t.beginLine = t.endLine = input_stream.getBeginLine(); + t.beginColumn = t.endColumn = input_stream.getBeginColumn(); + } + else + { + String im = jjstrLiteralImages[jjmatchedKind]; + t.image = (im == null) ? input_stream.GetImage() : im; + t.beginLine = input_stream.getBeginLine(); + t.beginColumn = input_stream.getBeginColumn(); + t.endLine = input_stream.getEndLine(); + t.endColumn = input_stream.getEndColumn(); + } return t; } @@ -2429,6 +2746,44 @@ public static Token getNextToken() jjmatchedKind = 26; } break; + case 6: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_6(); + if (jjmatchedPos == 0 && jjmatchedKind > 121) + { + jjmatchedKind = 121; + } + break; + case 7: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_7(); + if (jjmatchedPos == 0 && jjmatchedKind > 128) + { + jjmatchedKind = 128; + } + break; + case 8: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_8(); + if (jjmatchedPos == 0 && jjmatchedKind > 118) + { + jjmatchedKind = 118; + } + break; + case 9: + jjmatchedKind = 120; + jjmatchedPos = -1; + curPos = 0; + curPos = jjMoveStringLiteralDfa0_9(); + if (jjmatchedPos < 0 || (jjmatchedPos == 0 && jjmatchedKind > 122)) + { + jjmatchedKind = 122; + jjmatchedPos = 0; + } + break; } if (jjmatchedKind != 0x7fffffff) { @@ -2438,6 +2793,7 @@ public static Token getNextToken() { matchedToken = jjFillToken(); matchedToken.specialToken = specialToken; + TokenLexicalActions(matchedToken); if (jjnewLexState[jjmatchedKind] != -1) curLexState = jjnewLexState[jjmatchedKind]; CommonTokenAction(matchedToken); @@ -2513,4 +2869,12 @@ static void SkipLexicalActions(Token matchedToken) break; } } +static void TokenLexicalActions(Token matchedToken) +{ + switch(jjmatchedKind) + { + default : + break; + } +} } -- 1.7.1 From 8ff1cd9e0f975e27ee090802eb52df9bef06ca86 Mon Sep 17 00:00:00 2001 From: kpouer Date: Wed, 3 Sep 2003 11:53:58 +0000 Subject: [PATCH 12/16] little bugfixes --- net.sourceforge.phpeclipse/src/test/PHPParser.java | 201 ++++++++++---------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 15 +- 2 files changed, 113 insertions(+), 103 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index d559705..41ebfce 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -2720,8 +2720,8 @@ final Token token,token1; static final public FunctionCall Arguments(final Expression func) throws ParseException { Expression[] args = null; -final Token token; - jj_consume_token(LPAREN); +final Token token,lparen; + lparen = jj_consume_token(LPAREN); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ARRAY: case LIST: @@ -2757,8 +2757,13 @@ final Token token; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; errorLevel = ERROR; - errorStart = args[args.length-1].sourceEnd+1; - errorEnd = args[args.length-1].sourceEnd+1; + if (args == null) { + errorStart = lparen.sourceEnd+1; + errorEnd = lparen.sourceEnd+2; + } else { + errorStart = args[args.length-1].sourceEnd+1; + errorEnd = args[args.length-1].sourceEnd+2; + } processParseExceptionDebug(e); } {if (true) return new FunctionCall(func,args,args[args.length-1].sourceEnd);} @@ -4162,7 +4167,6 @@ Token token; token = jj_consume_token(_DEFAULT); try { jj_consume_token(COLON); - {if (true) return null;} } catch (ParseException e) { errorMessage = "':' expected after 'default' keyword"; errorLevel = ERROR; @@ -4170,6 +4174,7 @@ Token token; errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } + {if (true) return null;} break; default: jj_la1[103] = jj_gen; @@ -5907,6 +5912,18 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_45() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_51()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + static final private boolean jj_3R_193() { if (jj_scan_token(IDENTIFIER)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5946,18 +5963,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_45() { - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_51()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - return false; - } - static final private boolean jj_3R_178() { if (jj_3R_188()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6015,6 +6020,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3_5() { + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_92() { if (jj_scan_token(ANDASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6045,12 +6056,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3_5() { - if (jj_3R_45()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_87() { if (jj_scan_token(REMASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6313,6 +6318,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_44() { + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SEMICOLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_167() { if (jj_scan_token(PLUS_PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6327,14 +6340,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_44() { - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(SEMICOLON)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_165() { Token xsp; xsp = jj_scanpos; @@ -6500,14 +6505,14 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_164() { - if (jj_3R_156()) return true; + static final private boolean jj_3_4() { + if (jj_3R_44()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3_4() { - if (jj_3R_44()) return true; + static final private boolean jj_3R_164() { + if (jj_3R_156()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6548,14 +6553,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_154() { - if (jj_scan_token(BANG)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_157()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_216() { if (jj_scan_token(COMMA)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6564,10 +6561,10 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_153() { - if (jj_scan_token(TILDE)) return true; + static final private boolean jj_3R_154() { + if (jj_scan_token(BANG)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_148()) return true; + if (jj_3R_157()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6584,6 +6581,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_153() { + if (jj_scan_token(TILDE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_148() { Token xsp; xsp = jj_scanpos; @@ -6609,14 +6614,14 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_144() { - if (jj_3R_148()) return true; + static final private boolean jj_3R_213() { + if (jj_3R_215()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_213() { - if (jj_3R_215()) return true; + static final private boolean jj_3R_144() { + if (jj_3R_148()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6759,6 +6764,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_113() { + if (jj_scan_token(ASSIGN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_143() { if (jj_scan_token(RUNSIGNEDSHIFT)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6805,14 +6818,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_113() { - if (jj_scan_token(ASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_183() { if (jj_scan_token(FALSE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6911,6 +6916,16 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_112() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_117()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_124() { Token xsp; xsp = jj_scanpos; @@ -6948,13 +6963,9 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_112() { - if (jj_scan_token(COMMA)) return true; + static final private boolean jj_3R_111() { + if (jj_3R_116()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_117()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6987,15 +6998,31 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_111() { - if (jj_3R_116()) return true; + static final private boolean jj_3R_206() { + if (jj_scan_token(COMMA)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_206() { - if (jj_scan_token(COMMA)) return true; + static final private boolean jj_3R_104() { + if (jj_scan_token(LIST)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_111()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + while (true) { + xsp = jj_scanpos; + if (jj_3R_112()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + xsp = jj_scanpos; + if (jj_3R_113()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -7030,28 +7057,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_104() { - if (jj_scan_token(LIST)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_111()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - while (true) { - xsp = jj_scanpos; - if (jj_3R_112()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - xsp = jj_scanpos; - if (jj_3R_113()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_205() { if (jj_3R_41()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -7127,6 +7132,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_105() { + if (jj_scan_token(PRINT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_121() { Token xsp; xsp = jj_scanpos; @@ -7167,14 +7180,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_105() { - if (jj_scan_token(PRINT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_214() { if (jj_scan_token(ARRAYASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index 0637cf1..16847d8 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -2029,18 +2029,23 @@ StringLiteral evaluableString() : FunctionCall Arguments(final Expression func) : { Expression[] args = null; -final Token token; +final Token token,lparen; } { - [ args = ArgumentList() ] + lparen = [ args = ArgumentList() ] try { token = {return new FunctionCall(func,args,token.sourceEnd);} } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; errorLevel = ERROR; - errorStart = args[args.length-1].sourceEnd+1; - errorEnd = args[args.length-1].sourceEnd+1; + if (args == null) { + errorStart = lparen.sourceEnd+1; + errorEnd = lparen.sourceEnd+2; + } else { + errorStart = args[args.length-1].sourceEnd+1; + errorEnd = args[args.length-1].sourceEnd+2; + } processParseExceptionDebug(e); } {return new FunctionCall(func,args,args[args.length-1].sourceEnd);} @@ -2851,7 +2856,6 @@ Expression SwitchLabel() : token = <_DEFAULT> try { - {return null;} } catch (ParseException e) { errorMessage = "':' expected after 'default' keyword"; errorLevel = ERROR; @@ -2859,6 +2863,7 @@ Expression SwitchLabel() : errorEnd = token.sourceEnd+1; processParseExceptionDebug(e); } + {return null;} } Break BreakStatement() : -- 1.7.1 From 7e7e237b099c054f74474f8b0105023bd373de30 Mon Sep 17 00:00:00 2001 From: khartlage Date: Mon, 8 Sep 2003 22:34:29 +0000 Subject: [PATCH 13/16] Extended the builder with an index file generator for PHP class- and function-names. The index is stored in a "project.index" file for every project with php-nature. Right-mouse click in the PHP editor on an indexed class- or function-name should open the file, where the identifier is declared. --- .../phpdt/internal/ui/util/StreamUtil.java | 35 ++ .../phpdt/internal/ui/util/StringUtil.java | 1 + .../sourceforge/phpeclipse/PHPeclipsePlugin.java | 375 +++++++++++------ .../actions/PHPOpenDeclarationEditorActon.java | 138 ++++++ .../phpeclipse/builder/ExternalEditorInput.java | 104 +++++ .../builder/ExternalStorageDocumentProvider.java | 59 +++ .../phpeclipse/builder/FileStorage.java | 125 ++++++ .../phpeclipse/builder/IdentifierIndexManager.java | 446 ++++++++++++++++++++ .../phpeclipse/builder/PHPIdentifierLocation.java | 60 +++ .../phpeclipse/builder/ParserBuilder.java | 32 +- .../phpeclipse/builder/ParserVisitor.java | 57 ++- .../phpeclipse/mover/obfuscator/PHPAnalyzer.java | 1 + .../phpeclipse/mover/obfuscator/PHPIdentifier.java | 30 +- .../phpeclipse/phpeditor/PHPParserAction.java | 90 ++-- .../preferences/PHPObfuscatorPropertyPage.java | 1 - .../phpeclipse/resourcesview/PHPProject.java | 184 ++++----- 16 files changed, 1429 insertions(+), 309 deletions(-) create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StreamUtil.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPOpenDeclarationEditorActon.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalEditorInput.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalStorageDocumentProvider.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/FileStorage.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java create mode 100644 net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/PHPIdentifierLocation.java diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StreamUtil.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StreamUtil.java new file mode 100644 index 0000000..cdfe20d --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StreamUtil.java @@ -0,0 +1,35 @@ +/* + * Created on 06.09.2003 + * + */ +package net.sourceforge.phpdt.internal.ui.util; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * @author khartlage + * */ +public class StreamUtil { + public static void transferStreams(InputStream source, OutputStream destination) throws IOException { + try { + byte[] buffer = new byte[8192]; + while (true) { + int bytesRead = source.read(buffer); + if (bytesRead == -1) + break; + destination.write(buffer, 0, bytesRead); + } + } finally { + try { + source.close(); + } catch (IOException e) { + } + try { + destination.close(); + } catch (IOException e) { + } + } + } +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StringUtil.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StringUtil.java index 8ade751..0e36009 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StringUtil.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/StringUtil.java @@ -30,4 +30,5 @@ public class StringUtil { buf.append(str.substring(lastindex)); return buf.toString(); } + } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index cb16be2..a414fd1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -11,6 +11,11 @@ Contributors: **********************************************************************/ package net.sourceforge.phpeclipse; +import java.io.File; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; + import net.sourceforge.phpdt.externaltools.internal.model.ColorManager; import net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsPlugin; import net.sourceforge.phpdt.externaltools.internal.model.VariableContextManager; @@ -18,6 +23,10 @@ import net.sourceforge.phpdt.internal.ui.preferences.TemplatePreferencePage; import net.sourceforge.phpdt.internal.ui.viewsupport.ImageDescriptorRegistry; import net.sourceforge.phpdt.ui.PreferenceConstants; import net.sourceforge.phpdt.ui.text.JavaTextTools; +import net.sourceforge.phpeclipse.builder.ExternalEditorInput; +import net.sourceforge.phpeclipse.builder.ExternalStorageDocumentProvider; +import net.sourceforge.phpeclipse.builder.FileStorage; +import net.sourceforge.phpeclipse.builder.IdentifierIndexManager; import net.sourceforge.phpeclipse.phpeditor.PHPDocumentProvider; import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr; import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; @@ -27,6 +36,7 @@ import net.sourceforge.phpeclipse.resourcesview.ResourceAdapterFactory; import org.eclipse.core.boot.BootLoader; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; @@ -40,22 +50,30 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorDescriptor; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorRegistry; +import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.ui.texteditor.IDocumentProvider; +import org.eclipse.ui.texteditor.ITextEditor; /** * The main plugin class to be used in the desktop. */ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceConstants { - /** * The id of the PHP plugin (value "net.sourceforge.phpeclipse"). */ public static final String PLUGIN_ID = "net.sourceforge.phpeclipse"; //$NON-NLS-1$ - public final static String PHP_NATURE_ID = PLUGIN_ID + ".phpnature"; /** * id of builder - matches plugin.xml (concatenate pluginid.builderid) @@ -63,27 +81,10 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon public static final String BUILDER_INDEX_ID = PLUGIN_ID + ".indexbuilder"; public static final String BUILDER_PARSER_ID = PLUGIN_ID + ".parserbuilder"; - // public static final String PHP_RESOURCES_VIEW_ID = PLUGIN_ID + ".resourcesview.ViewPHPResources"; //$NON-NLS-1$ - public static final String PHP_CODING_ACTION_SET_ID = PLUGIN_ID + ".ui.CodingActionSet"; //$NON-NLS-1$ - - public static final String PHPPARSER_NEW = "test.PHPParser"; - public static final String PHPPARSER_ORIGINAL = "net.sourceforge.phpdt.internal.compiler.parser.Parser"; - - /** Change this if you want to switch PHP Parser. */ - public static final String PHPPARSER = PHPPARSER_ORIGINAL; - - //The shared instance. - private static PHPeclipsePlugin plugin; + /** General debug flag*/ + public static final boolean DEBUG = false; private static ExternalToolsPlugin externalTools; - //Resource bundle. - //private ResourceBundle resourceBundle; - - private ImageDescriptorRegistry fImageDescriptorRegistry; - private PHPDocumentProvider fCompilationUnitDocumentProvider; - private IFile fLastEditorFile = null; - - private JavaTextTools fJavaTextTools; /** * The Java virtual machine that we are running on. @@ -102,17 +103,37 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon /** MRJ 3.1 */ private static final int MRJ_3_1 = 4; - /** Windows NT */ - private static final int WINDOWS_NT = 5; + /** JVM constant for any other platform */ + private static final int OTHER = -1; + + // public static final String PHP_RESOURCES_VIEW_ID = PLUGIN_ID + ".resourcesview.ViewPHPResources"; //$NON-NLS-1$ + public static final String PHP_CODING_ACTION_SET_ID = PLUGIN_ID + ".ui.CodingActionSet"; //$NON-NLS-1$ + public final static String PHP_NATURE_ID = PLUGIN_ID + ".phpnature"; + + public static final String PHPPARSER_ORIGINAL = "net.sourceforge.phpdt.internal.compiler.parser.Parser"; + + /** Change this if you want to switch PHP Parser. */ + public static final String PHPPARSER = PHPPARSER_ORIGINAL; + + public static final String PHPPARSER_NEW = "test.PHPParser"; + + //The shared instance. + private static PHPeclipsePlugin plugin; /** Windows 9x */ private static final int WINDOWS_9x = 6; - /** JVM constant for any other platform */ - private static final int OTHER = -1; + /** Windows NT */ + private static final int WINDOWS_NT = 5; + private PHPDocumentProvider fCompilationUnitDocumentProvider; + //Resource bundle. + //private ResourceBundle resourceBundle; - /** General debug flag*/ - public static final boolean DEBUG = false; + private ImageDescriptorRegistry fImageDescriptorRegistry; + private HashMap fIndexManagerMap = new HashMap(); + + private JavaTextTools fJavaTextTools; + private IFile fLastEditorFile = null; /** * The constructor. */ @@ -128,63 +149,50 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // } } - public static ImageDescriptorRegistry getImageDescriptorRegistry() { - return getDefault().internalGetImageDescriptorRegistry(); + public static IWorkbenchPage getActivePage() { + return getDefault().internalGetActivePage(); } - private ImageDescriptorRegistry internalGetImageDescriptorRegistry() { - if (fImageDescriptorRegistry == null) - fImageDescriptorRegistry = new ImageDescriptorRegistry(); - return fImageDescriptorRegistry; - } - // @TODO: refactor this into a better method name ! - public synchronized PHPDocumentProvider getCompilationUnitDocumentProvider() { - if (fCompilationUnitDocumentProvider == null) - fCompilationUnitDocumentProvider = new PHPDocumentProvider(); - return fCompilationUnitDocumentProvider; + public static Shell getActiveWorkbenchShell() { + return getActiveWorkbenchWindow().getShell(); } - private static void setJVM() { - String osName = System.getProperty("os.name"); - - if (osName.startsWith("Mac OS")) { - String mrjVersion = System.getProperty("mrj.version"); - String majorMRJVersion = mrjVersion.substring(0, 3); - jvm = OTHER; - try { - - double version = Double.valueOf(majorMRJVersion).doubleValue(); - - if (version == 2) { - jvm = MRJ_2_0; - } else if (version >= 2.1 && version < 3) { - jvm = MRJ_2_1; - } else if (version == 3.0) { - jvm = MRJ_3_0; - } else if (version >= 3.1) { - jvm = MRJ_3_1; - } - - } catch (NumberFormatException nfe) { + public static IWorkbenchWindow getActiveWorkbenchWindow() { + return getDefault().getWorkbench().getActiveWorkbenchWindow(); + } + /** + * Returns the shared instance. + */ + public static PHPeclipsePlugin getDefault() { + return plugin; + } - } + public static ImageDescriptorRegistry getImageDescriptorRegistry() { + return getDefault().internalGetImageDescriptorRegistry(); + } - } else if (osName.startsWith("Windows")) { - if (osName.indexOf("9") != -1) { - jvm = WINDOWS_9x; - } else { - jvm = WINDOWS_NT; - } - } + static IPath getInstallLocation() { + return new Path(getDefault().getDescriptor().getInstallURL().getFile()); } public static int getJVM() { return jvm; } + + public static String getPluginId() { + return getDefault().getDescriptor().getUniqueIdentifier(); + } + /** - * Returns the shared instance. + * Returns the standard display to be used. The method first checks, if + * the thread calling this method has an associated display. If so, this + * display is returned. Otherwise the method returns the default display. */ - public static PHPeclipsePlugin getDefault() { - return plugin; + public static Display getStandardDisplay() { + Display display = Display.getCurrent(); + if (display == null) { + display = Display.getDefault(); + } + return display; } // public static ExternalToolsPlugin getExternalTools() { @@ -197,31 +205,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon return ResourcesPlugin.getWorkspace(); } - public static IWorkbenchPage getActivePage() { - return getDefault().internalGetActivePage(); - } - - private IWorkbenchPage internalGetActivePage() { - IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow(); - if (window != null) - return window.getActivePage(); - return null; - } - - public static IWorkbenchWindow getActiveWorkbenchWindow() { - return getDefault().getWorkbench().getActiveWorkbenchWindow(); - } - - public static Shell getActiveWorkbenchShell() { - return getActiveWorkbenchWindow().getShell(); - } - - public static String getPluginId() { - return getDefault().getDescriptor().getUniqueIdentifier(); - } - - public static void log(IStatus status) { - getDefault().getLog().log(status); + public static boolean isDebug() { + return getDefault().isDebugging(); } // public static void logErrorMessage(String message) { @@ -246,16 +231,69 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon Status status = new Status(severity, PLUGIN_ID, IStatus.OK, message, null); log(status); } + + public static void log(IStatus status) { + getDefault().getLog().log(status); + } public static void log(Throwable e) { log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$ } - public static boolean isDebug() { - return getDefault().isDebugging(); + private static void setJVM() { + String osName = System.getProperty("os.name"); + + if (osName.startsWith("Mac OS")) { + String mrjVersion = System.getProperty("mrj.version"); + String majorMRJVersion = mrjVersion.substring(0, 3); + jvm = OTHER; + try { + + double version = Double.valueOf(majorMRJVersion).doubleValue(); + + if (version == 2) { + jvm = MRJ_2_0; + } else if (version >= 2.1 && version < 3) { + jvm = MRJ_2_1; + } else if (version == 3.0) { + jvm = MRJ_3_0; + } else if (version >= 3.1) { + jvm = MRJ_3_1; + } + + } catch (NumberFormatException nfe) { + + } + + } else if (osName.startsWith("Windows")) { + if (osName.indexOf("9") != -1) { + jvm = WINDOWS_9x; + } else { + jvm = WINDOWS_NT; + } + } } - static IPath getInstallLocation() { - return new Path(getDefault().getDescriptor().getInstallURL().getFile()); + // TODO: refactor this into a better method name ! + public synchronized PHPDocumentProvider getCompilationUnitDocumentProvider() { + if (fCompilationUnitDocumentProvider == null) + fCompilationUnitDocumentProvider = new PHPDocumentProvider(); + return fCompilationUnitDocumentProvider; + } + + /** + * Get the identifier index manager for the given project + * + * @param iProject the current project + * @return + */ + public IdentifierIndexManager getIndexManager(IProject iProject) { + String indexFilename = iProject.getLocation() + File.separator + "project.index"; + IdentifierIndexManager indexManager = (IdentifierIndexManager) fIndexManagerMap.get(indexFilename); + if (indexManager == null) { + indexManager = new IdentifierIndexManager(indexFilename); + fIndexManagerMap.put(indexFilename, indexManager); + } + return indexManager; } public synchronized JavaTextTools getJavaTextTools() { @@ -264,6 +302,10 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon return fJavaTextTools; } + public IFile getLastEditorFile() { + return fLastEditorFile; + } + /** * Returns the string from the plugin's resource bundle, * or 'key' if not found. @@ -299,7 +341,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon } else if (windowsSystem.equals(BootLoader.WS_WIN32)) { store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}"); } else if (windowsSystem.equals(BootLoader.WS_CARBON)) { - // TODO How do we start Safari on Mac OS X ? + // TODO How do we start Safari on Mac OS X ? store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); } else { store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); @@ -412,17 +454,115 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon externalTools.initializeDefaultPreferences(store); } + private IWorkbenchPage internalGetActivePage() { + IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow(); + if (window != null) + return window.getActivePage(); + return null; + } + + private ImageDescriptorRegistry internalGetImageDescriptorRegistry() { + if (fImageDescriptorRegistry == null) + fImageDescriptorRegistry = new ImageDescriptorRegistry(); + return fImageDescriptorRegistry; + } + /** - * Returns the standard display to be used. The method first checks, if - * the thread calling this method has an associated display. If so, this - * display is returned. Otherwise the method returns the default display. + * Open a file in the Workbench that may or may not exist in the workspace. + * Must be run on the UI thread. + * @param filename + * @param line + * @throws CoreException + */ + public void openFileInTextEditor(String filename, int line, String findString) throws CoreException { + + // reject directories + if (new File(filename).isDirectory()) + return; + + IWorkbench workbench = PlatformUI.getWorkbench(); + IWorkbenchWindow window = workbench.getWorkbenchWindows()[0]; + IWorkbenchPage page = window.getActivePage(); + IPath path = new Path(filename); + + // If the file exists in the workspace, open it + IFile file = getWorkspace().getRoot().getFileForLocation(path); + IEditorPart editor; + ITextEditor textEditor; + if (file != null && file.exists()) { + editor = page.openEditor(file); + textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class); + } else { + // Otherwise open the stream directly + if (page == null) + return; + FileStorage storage = new FileStorage(path); + IEditorRegistry registry = getWorkbench().getEditorRegistry(); + IEditorDescriptor desc = registry.getDefaultEditor(filename); + if (desc == null) { + desc = registry.getDefaultEditor(); + } + IEditorInput input = new ExternalEditorInput(storage); + editor = page.openEditor(input, desc.getId()); + textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class); + + // If the storage provider is not ours, we can't guarantee read/write. + if (textEditor != null) { + IDocumentProvider documentProvider = textEditor.getDocumentProvider(); + if (!(documentProvider instanceof ExternalStorageDocumentProvider)) { + storage.setReadOnly(); + } + } + } + if (textEditor != null) { + // If a line number was given, go to it + if (line > 0) { + try { + line--; // document is 0 based + IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); + textEditor.selectAndReveal(document.getLineOffset(line), document.getLineLength(line)); + + } catch (BadLocationException e) { + // invalid text position -> do nothing + } + } + // If a string was given, go to it + if (findString != null) { + try { + IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); + int offset = document.search(0, findString, true, false, true); + textEditor.selectAndReveal(offset, findString.length()); + + } catch (BadLocationException e) { + // invalid text position -> do nothing + } + + } + } + } + + public void setLastEditorFile(IFile textEditor) { + this.fLastEditorFile = textEditor; + } + + /** + * @see org.eclipse.ui.plugin.AbstractUIPlugin#shutdown() */ - public static Display getStandardDisplay() { - Display display = Display.getCurrent(); - if (display == null) { - display = Display.getDefault(); + public void shutdown() throws CoreException { + super.shutdown(); + + // externalTools.shutDown(); + ColorManager.getDefault().dispose(); + + // save the information from the php index files if necessary + Collection collection = fIndexManagerMap.values(); + Iterator iterator = collection.iterator(); + IdentifierIndexManager indexManager = null; + while (iterator.hasNext()) { + indexManager = (IdentifierIndexManager) iterator.next(); + indexManager.writeFile(); } - return display; + } public void startup() throws CoreException { @@ -439,19 +579,4 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon }); } - /** - * @see org.eclipse.core.runtime.Plugin#shutdown() - */ - public void shutdown() throws CoreException { - // externalTools.shutDown(); - ColorManager.getDefault().dispose(); - } - - public void setLastEditorFile(IFile textEditor) { - this.fLastEditorFile = textEditor; - } - - public IFile getLastEditorFile() { - return fLastEditorFile; - } } \ No newline at end of file diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPOpenDeclarationEditorActon.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPOpenDeclarationEditorActon.java new file mode 100644 index 0000000..babeffc --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPOpenDeclarationEditorActon.java @@ -0,0 +1,138 @@ +/********************************************************************** +Copyright (c) 2000, 2002 IBM Corp. and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Common Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/cpl-v10.html + +Contributors: + Klaus Hartlage - www.eclipseproject.de +**********************************************************************/ +package net.sourceforge.phpeclipse.actions; + +import java.util.List; + +import net.sourceforge.phpeclipse.PHPeclipsePlugin; +import net.sourceforge.phpeclipse.builder.IdentifierIndexManager; +import net.sourceforge.phpeclipse.builder.PHPIdentifierLocation; +import net.sourceforge.phpeclipse.phpeditor.PHPEditor; +import net.sourceforge.phpeclipse.phpeditor.php.PHPWordExtractor; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.ITextSelection; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.graphics.Point; +import org.eclipse.ui.IEditorActionDelegate; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IFileEditorInput; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.actions.ActionDelegate; + +public class PHPOpenDeclarationEditorActon extends ActionDelegate implements IEditorActionDelegate { + + private IWorkbenchWindow fWindow; + private PHPEditor fEditor; + private IProject fProject; + + public void dispose() { + } + + public void init(IWorkbenchWindow window) { + this.fWindow = window; + } + + public void selectionChanged(IAction action, ISelection selection) { + if (!selection.isEmpty()) { + if (selection instanceof TextSelection) { + action.setEnabled(true); + } else if (fWindow.getActivePage() != null && fWindow.getActivePage().getActivePart() != null) { + // + } + } + } + + public void run(IAction action) { + if (fEditor == null) { + IEditorPart targetEditor = fWindow.getActivePage().getActiveEditor(); + if (targetEditor != null && (targetEditor instanceof PHPEditor)) { + fEditor = (PHPEditor) targetEditor; + } + } + if (fEditor != null) { + // determine the current Project from a (file-based) Editor + IFile f = ((IFileEditorInput) fEditor.getEditorInput()).getFile(); + fProject = f.getProject(); +// System.out.println(fProject.toString()); + + ITextSelection selection = (ITextSelection) fEditor.getSelectionProvider().getSelection(); + IDocument doc = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput()); + int pos = selection.getOffset(); + String word = getPHPIdentifier(doc, pos); + // System.out.println(word); + if (word!=null && ! word.equals("")) { + IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(fProject); + List list = indexManager.getLocations(word); + if (list!=null && list.size()>0) { + String workspaceLocation = PHPeclipsePlugin.getWorkspace().getRoot().getLocation().toString(); + // TODO show all entries of the list in a dialog box + // at the moment allways the first entry will be opened + PHPIdentifierLocation location = (PHPIdentifierLocation)list.get(0); + String filename = workspaceLocation + location.getFilename(); +// System.out.println(filename); + try { + PHPeclipsePlugin.getDefault().openFileInTextEditor(filename, 0, word); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + } + } + + public void setActiveEditor(IAction action, IEditorPart targetEditor) { + if (targetEditor != null && (targetEditor instanceof PHPEditor)) { + fEditor = (PHPEditor) targetEditor; + } + } + + // public static void openContextHelp(String word) { + // IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore(); + // if (store.getBoolean(PHPHelpPlugin.PHP_CHM_ENABLED)) { + // String[] arguments = { store.getString(PHPHelpPlugin.PHP_CHM_FILE), word }; + // MessageFormat form = new MessageFormat(store.getString(PHPHelpPlugin.PHP_CHM_COMMAND)); + // try { + // Runtime runtime = Runtime.getRuntime(); + // String command = form.format(arguments); + // + // runtime.exec(command); + // } catch (IOException e) { + // } + // } else { + // IHelp help = WorkbenchHelp.getHelpSupport(); + // if (help != null) { + // PHPFunctionHelpResource helpResource = new PHPFunctionHelpResource(word); + // WorkbenchHelp.getHelpSupport().displayHelpResource(helpResource); + // } else { + // // showMessage(shell, dialogTitle, ActionMessages.getString("Open help not available"), false); //$NON-NLS-1$ + // } + // } + // } + + private String getPHPIdentifier(IDocument doc, int pos) { + Point word = PHPWordExtractor.findWord(doc, pos); + if (word != null) { + try { + return doc.get(word.x, word.y); + } catch (BadLocationException e) { + } + } + return ""; + } +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalEditorInput.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalEditorInput.java new file mode 100644 index 0000000..0b08b11 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalEditorInput.java @@ -0,0 +1,104 @@ +/* + * Created on 06.09.2003 + * + * To change the template for this generated file go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ +package net.sourceforge.phpeclipse.builder; + +import org.eclipse.core.resources.IStorage; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.IEditorRegistry; +import org.eclipse.ui.IPersistableElement; +import org.eclipse.ui.IStorageEditorInput; +import org.eclipse.ui.PlatformUI; + +/** + * An EditorInput for an external file. + */ +public class ExternalEditorInput implements IStorageEditorInput { + + IStorage externalFile; + + /** + * Two ExternalEditorInputs are equal if their IStorage's are equal. + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!(obj instanceof ExternalEditorInput)) + return false; + ExternalEditorInput other = (ExternalEditorInput) obj; + return externalFile.equals(other.externalFile); + } + + /* + * @see IEditorInput#exists() + */ + public boolean exists() { + // External file can not be deleted + return true; + } + + /* + * @see IAdaptable#getAdapter(Class) + */ + public Object getAdapter(Class adapter) { + return null; + } + + /* + * @see IEditorInput#getContentType() + */ + public String getContentType() { + return externalFile.getFullPath().getFileExtension(); + } + + /* + * @see IEditorInput#getFullPath() + */ + public String getFullPath() { + return externalFile.getFullPath().toString(); + } + + /* + * @see IEditorInput#getImageDescriptor() + */ + public ImageDescriptor getImageDescriptor() { + IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); + return registry.getImageDescriptor(externalFile.getFullPath().getFileExtension()); + } + + /* + * @see IEditorInput#getName() + */ + public String getName() { + return externalFile.getName(); + } + + /* + * @see IEditorInput#getPersistable() + */ + public IPersistableElement getPersistable() { + return null; + } + + /* + * see IStorageEditorInput#getStorage() + */ + public IStorage getStorage() { + return externalFile; + } + + /* + * @see IEditorInput#getToolTipText() + */ + public String getToolTipText() { + return externalFile.getFullPath().toString(); + } + + public ExternalEditorInput(IStorage exFile) { + externalFile = exFile; + } +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalStorageDocumentProvider.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalStorageDocumentProvider.java new file mode 100644 index 0000000..ea8aae0 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ExternalStorageDocumentProvider.java @@ -0,0 +1,59 @@ +/* + * Created on 06.09.2003 + * + */ +package net.sourceforge.phpeclipse.builder; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +import net.sourceforge.phpeclipse.PHPeclipsePlugin; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.text.IDocument; +import org.eclipse.ui.editors.text.StorageDocumentProvider; + +/** + * @author ed + * @version 1.0, May 19, 2003 + */ +public class ExternalStorageDocumentProvider extends StorageDocumentProvider { + + /* (non-Javadoc) + * @see org.eclipse.ui.texteditor.AbstractDocumentProvider#doSaveDocument(org.eclipse.core.runtime.IProgressMonitor, java.lang.Object, org.eclipse.jface.text.IDocument, boolean) + */ + protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) + throws CoreException { + if (element instanceof ExternalEditorInput) { + ExternalEditorInput external = (ExternalEditorInput) element; + FileStorage storage = (FileStorage)external.getStorage(); + String encoding = getEncoding(element); + if (encoding == null) + encoding = getDefaultEncoding(); + try { + InputStream stream = new ByteArrayInputStream(document.get().getBytes(encoding)); + try { + // inform about the upcoming content change + fireElementStateChanging(element); + storage.setContents(stream, overwrite, true, monitor); + } catch (RuntimeException e) { + // inform about failure + fireElementStateChangeFailed(element); + throw e; + } + } catch (IOException e) { + IStatus s = new Status(IStatus.ERROR, PHPeclipsePlugin.PLUGIN_ID, IStatus.OK, e.getMessage(), e); + throw new CoreException(s); + } + + } else { + super.doSaveDocument(monitor, element, document, overwrite); + } + } + +} + diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/FileStorage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/FileStorage.java new file mode 100644 index 0000000..1080cd9 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/FileStorage.java @@ -0,0 +1,125 @@ +/* + * Created on 06.09.2003 + * + * To change the template for this generated file go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ +package net.sourceforge.phpeclipse.builder; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import net.sourceforge.phpdt.internal.ui.util.StreamUtil; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; + +import org.eclipse.core.resources.IStorage; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.PlatformObject; +import org.eclipse.core.runtime.Status; + +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + */ + +/** + * + * @see IStorage + */ +public class FileStorage extends PlatformObject implements IStorage { + private boolean forceReadOnly; + private final IPath path; + private final File file; + + /** + * Two FileStorages are equal if their IPaths are equal. + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!(obj instanceof FileStorage)) + return false; + FileStorage other = (FileStorage) obj; + return path.equals(other.path); + } + + /* (non-Javadoc) + * @see org.eclipse.core.resources.IStorage#getContents() + */ + public InputStream getContents() throws CoreException { + try { + return new FileInputStream(file); + } catch (FileNotFoundException e) { + throw new CoreException(new Status(IStatus.ERROR, PHPeclipsePlugin.PLUGIN_ID, IStatus.ERROR, e.toString(), e)); + } + } + + /* (non-Javadoc) + * @see org.eclipse.core.resources.IStorage#getFullPath() + */ + public IPath getFullPath() { + return this.path; + } + + /* (non-Javadoc) + * @see org.eclipse.core.resources.IStorage#getName() + */ + public String getName() { + return this.path.lastSegment(); + } + + /* (non-Javadoc) + * @see org.eclipse.core.resources.IStorage#isReadOnly() + */ + public boolean isReadOnly() { + return forceReadOnly || !file.canWrite(); + } + + /** + * Method FileStorage. + * @param path + */ + public FileStorage(IPath path) { + this.path = path; + this.file = path.toFile(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + public String toString() { + return path.toOSString(); + } + + /** + * @param stream + * @param overwrite + * @param b + * @param monitor + */ + public void setContents(InputStream stream, boolean overwrite, boolean b, IProgressMonitor monitor) throws CoreException { + try { + StreamUtil.transferStreams(stream, new FileOutputStream(file)); + } catch (FileNotFoundException e) { + throw new CoreException(new Status(IStatus.ERROR, PHPeclipsePlugin.PLUGIN_ID, IStatus.ERROR, e.toString(), e)); + } catch (IOException e) { + throw new CoreException(new Status(IStatus.ERROR, PHPeclipsePlugin.PLUGIN_ID, IStatus.ERROR, e.toString(), e)); + } + } + + /** + * Some document providers (notably CompilationUnitDocumentProvider) + * can't handle read/write storage. + */ + public void setReadOnly() { + forceReadOnly = true; + } +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java new file mode 100644 index 0000000..dd2672b --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java @@ -0,0 +1,446 @@ +package net.sourceforge.phpeclipse.builder; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; + +import net.sourceforge.phpdt.core.compiler.ITerminalSymbols; +import net.sourceforge.phpdt.core.compiler.InvalidInputException; +import net.sourceforge.phpdt.internal.compiler.parser.Scanner; +import net.sourceforge.phpdt.internal.compiler.parser.SyntaxError; +import net.sourceforge.phpeclipse.mover.obfuscator.PHPIdentifier; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; + +/** + * Manages the identifer index information for a specific project + * + */ +public class IdentifierIndexManager { + + public class LineCreator implements ITerminalSymbols { + + private Scanner fScanner; + private int fToken; + + public LineCreator() { + fScanner = new Scanner(false, false); + } + /** + * gets the next token from input + */ + private void getNextToken() { + + try { + fToken = fScanner.getNextToken(); + if (Scanner.DEBUG) { + int currentEndPosition = fScanner.getCurrentTokenEndPosition(); + int currentStartPosition = fScanner.getCurrentTokenStartPosition(); + + System.out.print(currentStartPosition + "," + currentEndPosition + ": "); + System.out.println(fScanner.toStringAction(fToken)); + } + return; + } catch (InvalidInputException e) { + // ignore errors + } + fToken = TokenNameERROR; + } + + private void parseDeclarations(StringBuffer buf, boolean goBack) { + char[] ident; + int counter = 0; + + try { + while (fToken != TokenNameEOF && fToken != TokenNameERROR) { + if (fToken == TokenNamevar) { + getNextToken(); + if (fToken == TokenNameVariable) { + ident = fScanner.getCurrentIdentifierSource(); + buf.append("\tv"); + buf.append(ident); + + getNextToken(); + } + } else if (fToken == TokenNamefunction) { + getNextToken(); + if (fToken == TokenNameAND) { + getNextToken(); + } + if (fToken == TokenNameIdentifier) { + ident = fScanner.getCurrentIdentifierSource(); + buf.append("\tm"); + buf.append(ident); + getNextToken(); + parseDeclarations(buf, true); + } + } else if (fToken == TokenNameclass) { + getNextToken(); + if (fToken == TokenNameIdentifier) { + ident = fScanner.getCurrentIdentifierSource(); + buf.append("\tc"); + buf.append(ident); + getNextToken(); + + //skip tokens for classname, extends and others until we have the opening '{' + while (fToken != TokenNameLBRACE && fToken != TokenNameEOF && fToken != TokenNameERROR) { + getNextToken(); + } + parseDeclarations(buf, true); + } + } else if ((fToken == TokenNameLBRACE) || (fToken == TokenNameDOLLAR_LBRACE)) { + getNextToken(); + counter++; + } else if (fToken == TokenNameRBRACE) { + getNextToken(); + --counter; + if (counter == 0 && goBack) { + return; + } + } else { + getNextToken(); + } + } + } catch (SyntaxError e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public void parseIdentifiers(char[] charArray, StringBuffer buf) { + char[] ident; + String identifier; + int counter = 0; + + fScanner.setSource(charArray); + fScanner.setPHPMode(false); + fToken = TokenNameEOF; + getNextToken(); + + try { + while (fToken != TokenNameEOF && fToken != TokenNameERROR) { + if (fToken == TokenNamefunction) { + getNextToken(); + if (fToken == TokenNameAND) { + getNextToken(); + } + if (fToken == TokenNameIdentifier) { + ident = fScanner.getCurrentIdentifierSource(); + buf.append("\tf"); + buf.append(ident); + getNextToken(); + parseDeclarations(buf, true); + } + } else if (fToken == TokenNameclass) { + getNextToken(); + if (fToken == TokenNameIdentifier) { + ident = fScanner.getCurrentIdentifierSource(); + buf.append("\tc"); + buf.append(ident); + getNextToken(); + + //skip fTokens for classname, extends and others until we have the opening '{' + while (fToken != TokenNameLBRACE && fToken != TokenNameEOF && fToken != TokenNameERROR) { + getNextToken(); + } + + parseDeclarations(buf, true); + + } + } else { + getNextToken(); + } + } + } catch (SyntaxError e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + private HashMap fFileMap; + private String fFilename; + private HashMap fIndentifierMap; + + public IdentifierIndexManager(String filename) { + fFilename = filename; + initialize(); + readFile(); + } + + /** + * Add the information for a given IFile resource + * + */ + public void addFile(IFile fileToParse) { + InputStream iStream; + LineCreator lineCreator = new LineCreator(); + try { + iStream = fileToParse.getContents(); + + StringBuffer buf = new StringBuffer(); + int c0; + try { + while ((c0 = iStream.read()) != (-1)) { + buf.append((char) c0); + } + } catch (IOException e) { + return; + } + + StringBuffer lineBuffer = new StringBuffer(); + // lineBuffer.append(fileToParse.getLocation().toString()); + lineBuffer.append(fileToParse.getFullPath().toString()); + int lineLength = lineBuffer.length(); + lineCreator.parseIdentifiers(buf.toString().toCharArray(), lineBuffer); + if (lineLength != lineBuffer.length()) { + addLine(lineBuffer.toString()); + } + } catch (CoreException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + /** + * Adds a line of the index file for function, class, class-method and class-variable names + * + * @param line + */ + private void addLine(String line) { + StringTokenizer tokenizer; + String phpFileName = null; + String token; + String identifier = null; + String classname = null; + PHPIdentifier phpIdentifier = null; + boolean tokenExists = false; + + tokenizer = new StringTokenizer(line, "\t"); + // first token contains the filename: + if (tokenizer.hasMoreTokens()) { + phpFileName = tokenizer.nextToken(); + //System.out.println(token); + } else { + return; + } + // all the other tokens are identifiers: + while (tokenizer.hasMoreTokens()) { + token = tokenizer.nextToken(); + //System.out.println(token); + switch (token.charAt(0)) { + case 'c' : // class name + identifier = token.substring(1); + classname = identifier; + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.CLASS, phpFileName); + break; + case 'f' : // function name + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.FUNCTION, phpFileName); + break; + case 'm' : //method inside a class + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.METHOD, phpFileName, classname); + break; + case 'v' : // variable inside a class + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.VARIABLE, phpFileName, classname); + break; + default : + identifier = null; + phpIdentifier = null; + classname = null; + } + if (identifier != null && phpIdentifier != null) { + tokenExists = true; + ArrayList list = (ArrayList) fIndentifierMap.get(identifier); + if (list == null) { + list = new ArrayList(); + list.add(phpIdentifier); + fIndentifierMap.put(identifier, list); + } else { + boolean flag = false; + for (int i = 0; i < list.size(); i++) { + if (list.get(i).equals(phpIdentifier)) { + flag = true; + break; + } + } + if (flag == false) { + list.add(phpIdentifier); + } + } + } + } + if (tokenExists) { + fFileMap.put(phpFileName, line); + } + } + + /** + * Change the information for a given IFile resource + * + */ + public void changeFile(IFile fileToParse) { + removeFile(fileToParse); + addFile(fileToParse); + } + + /** + * Get a list of all PHPIdentifierLocation object's associated with an identifier + * + * @param identifier + * @return + */ + public List getLocations(String identifier) { + return (List) fIndentifierMap.get(identifier); + } + + /** + * Initialize (i.e. clear) the current index information + * + */ + public void initialize() { + fIndentifierMap = new HashMap(); + fFileMap = new HashMap(); + } + + private void readFile() { + + FileReader fileReader; + try { + fileReader = new FileReader(fFilename); + + BufferedReader bufferedReader = new BufferedReader(fileReader); + + String line; + while (bufferedReader.ready()) { + // all entries for one file are in a line + // separated by tabs ! + line = bufferedReader.readLine(); + addLine(line); + } + + fileReader.close(); + } catch (FileNotFoundException e) { + // ignore this + // TODO DialogBox which asks the user if she/he likes to build new index? + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + /** + * Remove the information for a given IFile resource + * + */ + public void removeFile(IFile fileToParse) { + // String line = (String) fFileMap.get(fileToParse.getLocation().toString()); + String line = (String) fFileMap.get(fileToParse.getFullPath().toString()); + if (line != null) { + removeLine(line); + } + } + + /** + * Removes a line of the index file for function, class, class-method and class-variable names + * + * @param line + */ + private void removeLine(String line) { + StringTokenizer tokenizer; + String phpFileName = null; + String token; + String identifier = null; + String classname = null; + PHPIdentifier phpIdentifier = null; + boolean tokenExists = false; + + tokenizer = new StringTokenizer(line, "\t"); + // first token contains the filename: + if (tokenizer.hasMoreTokens()) { + phpFileName = tokenizer.nextToken(); + //System.out.println(token); + } else { + return; + } + // all the other tokens are identifiers: + while (tokenizer.hasMoreTokens()) { + token = tokenizer.nextToken(); + //System.out.println(token); + switch (token.charAt(0)) { + case 'c' : // class name + identifier = token.substring(1); + classname = identifier; + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.CLASS, phpFileName); + break; + case 'f' : // function name + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.FUNCTION, phpFileName); + break; + case 'm' : //method inside a class + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.METHOD, phpFileName, classname); + break; + case 'v' : // variable inside a class + identifier = token.substring(1); + phpIdentifier = new PHPIdentifierLocation(identifier, PHPIdentifier.VARIABLE, phpFileName, classname); + break; + default : + identifier = null; + phpIdentifier = null; + classname = null; + } + if (identifier != null && phpIdentifier != null) { + ArrayList list = (ArrayList) fIndentifierMap.get(identifier); + if (list == null) { + } else { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).equals(phpIdentifier)) { + list.remove(i); + break; + } + } + if (list.size() == 0) { + fIndentifierMap.remove(identifier); + } + } + } + } + fFileMap.remove(phpFileName); + } + + /** + * Save the current index information in the projects index file + * + */ + public void writeFile() { + FileWriter fileWriter; + try { + fileWriter = new FileWriter(fFilename); + String line; + Collection collection = fFileMap.values(); + Iterator iterator = collection.iterator(); + while (iterator.hasNext()) { + line = (String) iterator.next(); + fileWriter.write(line + '\n'); + } + fileWriter.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/PHPIdentifierLocation.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/PHPIdentifierLocation.java new file mode 100644 index 0000000..f3fb463 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/PHPIdentifierLocation.java @@ -0,0 +1,60 @@ +package net.sourceforge.phpeclipse.builder; + +import net.sourceforge.phpeclipse.mover.obfuscator.PHPIdentifier; + +/** + * @author khartlage + * + */ +public class PHPIdentifierLocation extends PHPIdentifier { + private String fClassname; + private String fFilename; + + public PHPIdentifierLocation(String identifier, int type, String filename) { + this(identifier, type, filename, null); + } + + public PHPIdentifierLocation(String identifier, int type, String filename, String classname) { + super(identifier, type); + fFilename = filename; + fClassname = classname; + } + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (!(obj instanceof PHPIdentifierLocation)) { + return false; + } + return super.equals(obj)&&fFilename.equals(((PHPIdentifierLocation)obj).fFilename); + } + + /** + * @return + */ + public String getClassname() { + return fClassname; + } + + /** + * @return + */ + public String getFilename() { + return fFilename; + } + + /** + * @param string + */ + public void setClassname(String string) { + fClassname = string; + } + + /** + * @param string + */ + public void setFilename(String string) { + fFilename = string; + } + +} diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java index 4b9babe..4fd5108 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserBuilder.java @@ -1,9 +1,12 @@ package net.sourceforge.phpeclipse.builder; +import java.io.File; import java.util.Map; import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.phpeditor.PHPParserAction; +import net.sourceforge.phpeclipse.resourcesview.PHPProject; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; @@ -35,8 +38,7 @@ public class ParserBuilder extends IncrementalProjectBuilder { /** * */ - protected IProject[] build(int kind, Map args, IProgressMonitor monitor) - throws CoreException { + protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException { monitor.beginTask("Parsing files", TOTAL_WORK); if (kind == IncrementalProjectBuilder.FULL_BUILD) { @@ -48,7 +50,7 @@ public class ParserBuilder extends IncrementalProjectBuilder { IResourceDelta delta = getDelta(getProject()); if (delta != null) { - delta.accept(new ParserVisitor(monitor)); + delta.accept(new ParserVisitor(getProject(), monitor)); } } @@ -62,8 +64,8 @@ public class ParserBuilder extends IncrementalProjectBuilder { * * @param iProject */ - public void processFull(IProject iProject, final IProgressMonitor monitor) { - + public void processFull(final IProject iProject, final IProgressMonitor monitor) { + final IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(iProject); // Create resource visitor logic IResourceVisitor myVisitor = new IResourceVisitor() { public boolean visit(IResource resource) throws CoreException { @@ -71,11 +73,14 @@ public class ParserBuilder extends IncrementalProjectBuilder { if (monitor.isCanceled()) { throw new OperationCanceledException(); } - if ((resource.getFileExtension() != null) - && PHPFileUtil.isPHPFile((IFile) resource)) { + if ((resource.getFileExtension() != null) && PHPFileUtil.isPHPFile((IFile) resource)) { monitor.worked(1); monitor.subTask("Parsing: " + resource.getFullPath()); + // check for parsing errors PHPParserAction.parseFile((IFile) resource); + // update indexfile for the project: + PHPProject nature = (PHPProject) iProject.getNature(PHPeclipsePlugin.PHP_NATURE_ID); + indexManager.addFile((IFile) resource); } } @@ -85,7 +90,14 @@ public class ParserBuilder extends IncrementalProjectBuilder { // Process the project using the visitor just created try { + +// if (iProject.hasNature(PHPeclipsePlugin.PHP_NATURE_ID)) { +// thePHPProject = new PHPProject(); +// thePHPProject.setProject(iProject); +// } + indexManager.initialize(); iProject.accept(myVisitor); + indexManager.writeFile(); } catch (CoreException e) { e.printStackTrace(); } @@ -120,11 +132,7 @@ public class ParserBuilder extends IncrementalProjectBuilder { * *

*/ - public void setInitializationData( - IConfigurationElement config, - String propertyName, - Object data) - throws CoreException { + public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { super.setInitializationData(config, propertyName, data); } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserVisitor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserVisitor.java index 5dbc801..01c5902 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserVisitor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/ParserVisitor.java @@ -1,9 +1,11 @@ package net.sourceforge.phpeclipse.builder; import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.phpeditor.PHPParserAction; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDeltaVisitor; @@ -18,15 +20,18 @@ import org.eclipse.core.runtime.OperationCanceledException; */ public class ParserVisitor implements IResourceDeltaVisitor { final IProgressMonitor fMonitor; - public ParserVisitor(IProgressMonitor monitor) { + final IProject fProject; + public ParserVisitor(IProject iProject, IProgressMonitor monitor) { fMonitor = monitor; + fProject = iProject; } - - protected void checkCancel() { - if (fMonitor.isCanceled()) { - throw new OperationCanceledException(); - } - } + + protected void checkCancel() { + if (fMonitor.isCanceled()) { + throw new OperationCanceledException(); + } + } + /** * Visits the given resource delta. * @@ -38,33 +43,51 @@ public class ParserVisitor implements IResourceDeltaVisitor { IResource resource = delta.getResource(); int resourceType = resource.getType(); - checkCancel(); - + checkCancel(); + + final IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(fProject); + switch (delta.getKind()) { case IResourceDelta.ADDED : if (resourceType == IResource.FILE) { - if ((resource.getFileExtension() != null) - && PHPFileUtil.isPHPFile((IFile) resource)) { - fMonitor.worked(1); - fMonitor.subTask("Parsing: " + resource.getFullPath()); + if ((resource.getFileExtension() != null) && PHPFileUtil.isPHPFile((IFile) resource)) { + fMonitor.worked(1); + fMonitor.subTask("Adding: " + resource.getFullPath()); + + // check for parsing errors PHPParserAction.parseFile((IFile) resource); + // update indexfile for the project: + indexManager.addFile((IFile) resource); } } break; case IResourceDelta.CHANGED : if (resourceType == IResource.FILE) { - if ((resource.getFileExtension() != null) - && PHPFileUtil.isPHPFile((IFile) resource)) { - fMonitor.worked(1); - fMonitor.subTask("Parsing: " + resource.getFullPath()); + if ((resource.getFileExtension() != null) && PHPFileUtil.isPHPFile((IFile) resource)) { + fMonitor.worked(1); + fMonitor.subTask("Changing: " + resource.getFullPath()); + + //check for parsing errors PHPParserAction.parseFile((IFile) resource); + // update indexfile for the project: + indexManager.changeFile((IFile) resource); } } break; case IResourceDelta.REMOVED : + if (resourceType == IResource.FILE) { + if ((resource.getFileExtension() != null) && PHPFileUtil.isPHPFile((IFile) resource)) { + fMonitor.worked(1); + fMonitor.subTask("Removing: " + resource.getFullPath()); + + // update indexfile for the project: + indexManager.removeFile((IFile) resource); + } } + break; + } return true; // carry on } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPAnalyzer.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPAnalyzer.java index bc7b049..a9c401d 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPAnalyzer.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPAnalyzer.java @@ -32,6 +32,7 @@ public class PHPAnalyzer extends DefaultMover implements ITerminalSymbols { * be synchronized */ protected byte[] bytes = new byte[1024]; + /** * Creates a PHPAnalyzer * @param console reports error to the PHPConsole diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPIdentifier.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPIdentifier.java index a097a2e..5c59457 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPIdentifier.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPIdentifier.java @@ -3,20 +3,17 @@ package net.sourceforge.phpeclipse.mover.obfuscator; /** * @author khartlage * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>ObfuscatorIgnores. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. */ public class PHPIdentifier { - + public final static int CLASS = 1; public final static int FUNCTION = 2; public final static int VARIABLE = 3; - + public final static int METHOD = 4; + private int fType; private String fIdentifier; - + public PHPIdentifier(String identifier, int type) { fType = type; fIdentifier = identifier; @@ -25,15 +22,15 @@ public class PHPIdentifier { public boolean isClass() { return fType == CLASS; } - + public boolean isFuncton() { return fType == FUNCTION; } - + public boolean isVariable() { return fType == VARIABLE; } - + public void setType(int fType) { this.fType = fType; } @@ -49,5 +46,16 @@ public class PHPIdentifier { public String getIdentifier() { return fIdentifier; } - + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (!(obj instanceof PHPIdentifier)) { + return false; + } + return ((PHPIdentifier) obj).fType == fType && + ((PHPIdentifier) obj).fIdentifier.equals(fIdentifier); + } + } diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPParserAction.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPParserAction.java index fbef0f3..f5cbca0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPParserAction.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPParserAction.java @@ -58,53 +58,53 @@ public class PHPParserAction extends TextEditorAction { */ public void run() { boolean phpFlag = false; - - // try { - fileToParse = getPHPFile(); - parseFile(fileToParse); + + // try { + fileToParse = getPHPFile(); + parseFile(fileToParse); } - public static void parseFile(IFile fileToParse) { - boolean phpFlag = false; - try { - - if (fileToParse == null) { - // should never happen - System.err.println("Error : no file in the editor"); - // should throw an exception - return; - } - String name = fileToParse.getName().toLowerCase(); - for (int i = 0; i"); - Iterator pathEntriesIterator = loadPathEntries.iterator(); + Iterator pathEntriesIterator = fLoadPathEntries.iterator(); while (pathEntriesIterator.hasNext()) { LoadPathEntry entry = (LoadPathEntry) pathEntriesIterator.next(); @@ -221,8 +144,73 @@ public class PHPProject implements IProjectNature, PHPElement { return buffer.toString(); } + public IProject getProject() { + return fProject; + } + + protected IProject getProject(String name) { + return PHPeclipsePlugin.getWorkspace().getRoot().getProject(name); + } + + public List getReferencedProjects() { + List referencedProjects = new ArrayList(); + + Iterator iterator = getLoadPathEntries().iterator(); + while (iterator.hasNext()) { + LoadPathEntry pathEntry = (LoadPathEntry) iterator.next(); + if (pathEntry.getType() == LoadPathEntry.TYPE_PROJECT) + referencedProjects.add(pathEntry.getProject()); + } + + return referencedProjects; + } + public IResource getUnderlyingResource() { return fProject; } + protected void loadLoadPathEntries() { + fLoadPathEntries = new ArrayList(); + + IFile loadPathsFile = getLoadPathEntriesFile(); + + XMLReader reader = null; + try { + reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); + reader.setContentHandler(getLoadPathEntriesContentHandler()); + reader.parse(new InputSource(loadPathsFile.getContents())); + } catch (Exception e) { + //the file is nonextant or unreadable + } + } + + public void removeLoadPathEntry(IProject anotherPHPProject) { + Iterator entries = getLoadPathEntries().iterator(); + while (entries.hasNext()) { + LoadPathEntry entry = (LoadPathEntry) entries.next(); + if (entry.getType() == LoadPathEntry.TYPE_PROJECT && entry.getProject().getName().equals(anotherPHPProject.getName())) { + getLoadPathEntries().remove(entry); + fScratched = true; + break; + } + } + } + + public void save() throws CoreException { + if (fScratched) { + InputStream xmlPath = new ByteArrayInputStream(getLoadPathXML().getBytes()); + IFile loadPathsFile = getLoadPathEntriesFile(); + if (!loadPathsFile.exists()) + loadPathsFile.create(xmlPath, true, null); + else + loadPathsFile.setContents(xmlPath, true, false, null); + + fScratched = false; + } + } + + public void setProject(IProject aProject) { + fProject = aProject; + } + } -- 1.7.1 From 81353394b3683cfe7610e4d36379182eec5e0423 Mon Sep 17 00:00:00 2001 From: khartlage Date: Mon, 8 Sep 2003 22:46:32 +0000 Subject: [PATCH 14/16] Extended the builder with an index file generator for PHP class- and function-names. The index is stored in a "project.index" file for every project with php-nature. Right-mouse click in the PHP editor on an indexed class- or function-name should open the file, where the identifier is declared. --- net.sourceforge.phpeclipse/plugin.xml | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/net.sourceforge.phpeclipse/plugin.xml b/net.sourceforge.phpeclipse/plugin.xml index 71158ed..6405e84 100644 --- a/net.sourceforge.phpeclipse/plugin.xml +++ b/net.sourceforge.phpeclipse/plugin.xml @@ -571,7 +571,18 @@ Temporarily replaced until errors can be ironed out... id="net.sourceforge.phpeclipse.actions.showAction"> - + + + + + + -- 1.7.1 From b98c3279b33be1ca8cdac4c7558e0259c770a8bb Mon Sep 17 00:00:00 2001 From: kpouer Date: Tue, 9 Sep 2003 08:37:01 +0000 Subject: [PATCH 15/16] *** empty log message *** --- net.sourceforge.phpeclipse/src/test/PHPParser.java | 103 ++++++++++---------- net.sourceforge.phpeclipse/src/test/PHPParser.jj | 4 +- 2 files changed, 55 insertions(+), 52 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.java b/net.sourceforge.phpeclipse/src/test/PHPParser.java index 41ebfce..b2021a8 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.java @@ -2766,7 +2766,8 @@ final Token token,lparen; } processParseExceptionDebug(e); } - {if (true) return new FunctionCall(func,args,args[args.length-1].sourceEnd);} + int sourceEnd = (args == null && args.length != 0) ? lparen.sourceEnd+1 : args[args.length-1].sourceEnd; + {if (true) return new FunctionCall(func,args,sourceEnd);} throw new Error("Missing return statement in function"); } @@ -5884,6 +5885,14 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_51() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_200() { if (jj_scan_token(STATICCLASSACCESS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -5904,14 +5913,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_51() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_45() { if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6008,20 +6009,20 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_94() { - if (jj_scan_token(ORASSIGN)) return true; + static final private boolean jj_3_5() { + if (jj_3R_45()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_93() { - if (jj_scan_token(XORASSIGN)) return true; + static final private boolean jj_3R_94() { + if (jj_scan_token(ORASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3_5() { - if (jj_3R_45()) return true; + static final private boolean jj_3R_93() { + if (jj_scan_token(XORASSIGN)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6312,12 +6313,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_168() { - if (jj_scan_token(MINUS_MINUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_44() { if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6326,6 +6321,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_168() { + if (jj_scan_token(MINUS_MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_167() { if (jj_scan_token(PLUS_PLUS)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6854,6 +6855,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_117() { + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_179() { if (jj_scan_token(INTEGER_LITERAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6886,12 +6893,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_117() { - if (jj_3R_116()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_138() { if (jj_scan_token(GE)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6910,12 +6911,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_135() { - if (jj_scan_token(LT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_112() { if (jj_scan_token(COMMA)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -6926,6 +6921,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_135() { + if (jj_scan_token(LT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3R_124() { Token xsp; xsp = jj_scanpos; @@ -6957,14 +6958,14 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_72() { - if (jj_3R_50()) return true; + static final private boolean jj_3R_111() { + if (jj_3R_116()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_111() { - if (jj_3R_116()) return true; + static final private boolean jj_3R_72() { + if (jj_3R_50()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -6998,12 +6999,6 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_206() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - return false; - } - static final private boolean jj_3R_104() { if (jj_scan_token(LIST)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -7026,6 +7021,12 @@ final ArrayList list = new ArrayList(); return false; } + static final private boolean jj_3R_206() { + if (jj_scan_token(COMMA)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + static final private boolean jj_3_2() { if (jj_scan_token(COMMA)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; @@ -7120,22 +7121,22 @@ final ArrayList list = new ArrayList(); return false; } - static final private boolean jj_3R_125() { - if (jj_scan_token(EQUAL_EQUAL)) return true; + static final private boolean jj_3R_105() { + if (jj_scan_token(PRINT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_54() { - if (jj_3R_68()) return true; + static final private boolean jj_3R_125() { + if (jj_scan_token(EQUAL_EQUAL)) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - static final private boolean jj_3R_105() { - if (jj_scan_token(PRINT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_49()) return true; + static final private boolean jj_3R_54() { + if (jj_3R_68()) return true; if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index 16847d8..10ba3a9 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -2048,7 +2048,9 @@ final Token token,lparen; } processParseExceptionDebug(e); } - {return new FunctionCall(func,args,args[args.length-1].sourceEnd);} + { + int sourceEnd = (args == null && args.length != 0) ? lparen.sourceEnd+1 : args[args.length-1].sourceEnd; + return new FunctionCall(func,args,sourceEnd);} } /** -- 1.7.1 From e86c4051f0e4cb8e2890e9f76e9c312ace824360 Mon Sep 17 00:00:00 2001 From: kpouer Date: Tue, 9 Sep 2003 17:56:55 +0000 Subject: [PATCH 16/16] the PHP_NEW field must be before the field PHPPARSER --- .../sourceforge/phpeclipse/PHPeclipsePlugin.java | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index a414fd1..ba2252a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -112,11 +112,11 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon public static final String PHPPARSER_ORIGINAL = "net.sourceforge.phpdt.internal.compiler.parser.Parser"; + public static final String PHPPARSER_NEW = "test.PHPParser"; + /** Change this if you want to switch PHP Parser. */ public static final String PHPPARSER = PHPPARSER_ORIGINAL; - public static final String PHPPARSER_NEW = "test.PHPParser"; - //The shared instance. private static PHPeclipsePlugin plugin; -- 1.7.1