From 8ecc8d740cd70c3f3319e77cb39fbc4359631230 Mon Sep 17 00:00:00 2001 From: khartlage Date: Wed, 28 May 2003 15:49:17 +0000 Subject: [PATCH 1/1] fixed problem with TokenNameDOLLAR_LBRACE token in outlineinfo --- .../phpdt/internal/compiler/parser/Parser.java | 133 +++++--------------- 1 files changed, 30 insertions(+), 103 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java index e3d3672..8a5839f 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java @@ -185,12 +185,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { /** * Create marker for the parse error */ - private void setMarker( - String message, - int charStart, - int charEnd, - int errorLevel) - throws CoreException { + private void setMarker(String message, int charStart, int charEnd, int errorLevel) throws CoreException { setMarker(fileToParse, message, charStart, charEnd, errorLevel); } @@ -260,8 +255,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { int currentEndPosition = scanner.getCurrentTokenEndPosition(); int currentStartPosition = scanner.getCurrentTokenStartPosition(); - System.out.print( - currentStartPosition + "," + currentEndPosition + ": "); + System.out.print(currentStartPosition + "," + currentEndPosition + ": "); System.out.println(scanner.toStringAction(token)); } } catch (InvalidInputException e) { @@ -1252,10 +1246,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } if (token != TokenNameEOF) { if (token == TokenNameERROR) { - throwSyntaxError( - "Scanner error (Found unknown token: " - + scanner.toStringAction(token) - + ")"); + throwSyntaxError("Scanner error (Found unknown token: " + scanner.toStringAction(token) + ")"); } if (token == TokenNameRPAREN) { throwSyntaxError("Too many closing ')'; end-of-file not reached."); @@ -1285,11 +1276,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { throw err; } else { // setMarker(err.getMessage(), err.getLine(), ERROR); - setMarker( - err.getMessage(), - scanner.getCurrentTokenStartPosition(), - scanner.getCurrentTokenEndPosition(), - ERROR); + setMarker(err.getMessage(), scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), ERROR); } // if an error occured, // try to find keywords 'class' or 'function' @@ -1331,10 +1318,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } if (token != TokenNameEOF) { if (token == TokenNameERROR) { - throwSyntaxError( - "Scanner error (Found unknown token: " - + scanner.toStringAction(token) - + ")"); + throwSyntaxError("Scanner error (Found unknown token: " + scanner.toStringAction(token) + ")"); } if (token == TokenNameRPAREN) { throwSyntaxError("Too many closing ')'; end-of-file not reached."); @@ -1361,11 +1345,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { return; } catch (SyntaxError sytaxErr1) { // setMarker(sytaxErr1.getMessage(), sytaxErr1.getLine(), ERROR); - setMarker( - sytaxErr1.getMessage(), - scanner.getCurrentTokenStartPosition(), - scanner.getCurrentTokenEndPosition(), - ERROR); + setMarker(sytaxErr1.getMessage(), scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), ERROR); try { // if an error occured, // try to find keywords 'class' or 'function' @@ -1381,11 +1361,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } } catch (SyntaxError sytaxErr2) { // setMarker(sytaxErr2.getMessage(), sytaxErr2.getLine(), ERROR); - setMarker( - sytaxErr2.getMessage(), - scanner.getCurrentTokenStartPosition(), - scanner.getCurrentTokenEndPosition(), - ERROR); + setMarker(sytaxErr2.getMessage(), scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), ERROR); return; } } @@ -1416,10 +1392,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { return outlineInfo; } - private void parseDeclarations( - PHPOutlineInfo outlineInfo, - OutlineableWithChildren current, - boolean goBack) { + private void parseDeclarations(PHPOutlineInfo outlineInfo, OutlineableWithChildren current, boolean goBack) { char[] ident; // PHPClassDeclaration current = (PHPClassDeclaration) stack.peek(); PHPSegmentWithChildren temp; @@ -1434,8 +1407,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { getNextToken(); } else if (token == TokenNamevar) { getNextToken(); - if (token == TokenNameVariable - && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_VAR)) { + if (token == TokenNameVariable && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_VAR)) { ident = scanner.getCurrentIdentifierSource(); //substring(1) added because PHPVarDeclaration doesn't need the $ anymore String variableName = new String(ident).substring(1); @@ -1462,10 +1434,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { scanner.getCurrentTokenStartPosition(), new String(ident))); break; case TokenNameDoubleLiteral : - current - .add(new PHPVarDeclaration( - current, - variableName + doubleNumber, + current.add(new PHPVarDeclaration(current, variableName + doubleNumber, // chIndx - ident.length, scanner.getCurrentTokenStartPosition(), new String(ident))); break; @@ -1506,8 +1475,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { if (token == TokenNameAND) { getNextToken(); } - if (token == TokenNameIdentifier - && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_FUNC)) { + if (token == TokenNameIdentifier && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_FUNC)) { ident = scanner.getCurrentIdentifierSource(); outlineInfo.addVariable(new String(ident)); temp = new PHPFunctionDeclaration(current, new String(ident), @@ -1519,8 +1487,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } } else if (token == TokenNameclass) { getNextToken(); - if (token == TokenNameIdentifier - && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_CLASS)) { + if (token == TokenNameIdentifier && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_CLASS)) { ident = scanner.getCurrentIdentifierSource(); outlineInfo.addVariable(new String(ident)); temp = new PHPClassDeclaration(current, new String(ident), @@ -1531,15 +1498,13 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { getNextToken(); //skip tokens for classname, extends and others until we have the opening '{' - while (token != TokenNameLBRACE - && token != TokenNameEOF - && token != TokenNameERROR) { + while (token != TokenNameLBRACE && token != TokenNameEOF && token != TokenNameERROR) { getNextToken(); } parseDeclarations(outlineInfo, temp, true); // stack.pop(); } - } else if (token == TokenNameLBRACE) { + } else if ((token == TokenNameLBRACE) || (token == TokenNameDOLLAR_LBRACE)) { getNextToken(); counter++; } else if (token == TokenNameRBRACE) { @@ -1572,11 +1537,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } catch (SyntaxError sytaxErr) { try { // setMarker(sytaxErr.getMessage(), sytaxErr.getLine(), ERROR); - setMarker( - sytaxErr.getMessage(), - scanner.getCurrentTokenStartPosition(), - scanner.getCurrentTokenEndPosition(), - ERROR); + setMarker(sytaxErr.getMessage(), scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), ERROR); } catch (CoreException e) { } } @@ -1798,10 +1759,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { foreachStatement(); return; - } else if ( - token == TokenNamecontinue - || token == TokenNamebreak - || token == TokenNamereturn) { + } else if (token == TokenNamecontinue || token == TokenNamebreak || token == TokenNamereturn) { getNextToken(); if (token != TokenNameSEMICOLON) { expression(); @@ -1956,10 +1914,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { return; } else { if (token != TokenNameStopPHP && token != TokenNameEOF) { - throwSyntaxError( - "';' expected after expression (Found token: " - + scanner.toStringAction(token) - + ")"); + throwSyntaxError("';' expected after expression (Found token: " + scanner.toStringAction(token) + ")"); } getNextToken(); } @@ -1981,8 +1936,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } } else { if (token > TokenNameKEYWORD) { - throwSyntaxError( - "Don't use keyword for class declaration [" + token + "]."); + throwSyntaxError("Don't use keyword for class declaration [" + token + "]."); } throwSyntaxError("ClassDeclaration name expected after keyword 'class'."); } @@ -2077,8 +2031,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } } else { if (token > TokenNameKEYWORD) { - throwSyntaxError( - "Don't use keyword for function declaration [" + token + "]."); + throwSyntaxError("Don't use keyword for function declaration [" + token + "]."); } throwSyntaxError("Function name expected after keyword 'function'."); } @@ -2128,8 +2081,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { constant(); if (token == TokenNameCOLON) { getNextToken(); - if (token == TokenNamecase - || token == TokenNamedefault) { // empty case statement ? + if (token == TokenNamecase || token == TokenNamedefault) { // empty case statement ? continue; } statementList(); @@ -2141,9 +2093,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { // rowCount, // PHPParser.INFO); setMarker( - "':' expected after 'case' keyword (Found token: " - + scanner.toStringAction(token) - + ")", + "':' expected after 'case' keyword (Found token: " + scanner.toStringAction(token) + ")", scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), INFO); @@ -2153,10 +2103,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { } statementList(); } else { - throwSyntaxError( - "':' character after 'case' constant expected (Found token: " - + scanner.toStringAction(token) - + ")"); + throwSyntaxError("':' character after 'case' constant expected (Found token: " + scanner.toStringAction(token) + ")"); } } else { // TokenNamedefault getNextToken(); @@ -2531,10 +2478,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { getNextToken(); expression(); if (token != TokenNameRBRACE) { - throwSyntaxError( - "'}' expected after variable '" - + new String(ident) - + "' in variable-expression."); + throwSyntaxError("'}' expected after variable '" + new String(ident) + "' in variable-expression."); } getNextToken(); } else if (token == TokenNameLPAREN) { @@ -2542,10 +2486,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { if (token != TokenNameRPAREN) { expressionList(); if (token != TokenNameRPAREN) { - throwSyntaxError( - "')' expected after variable '" - + new String(ident) - + "' in postfix-expression."); + throwSyntaxError("')' expected after variable '" + new String(ident) + "' in postfix-expression."); } } getNextToken(); @@ -2675,9 +2616,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { // rowCount, // PHPParser.INFO); setMarker( - "Avoid using keyword '" - + new String(ident) - + "' as variable name.", + "Avoid using keyword '" + new String(ident) + "' as variable name.", scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(), INFO); @@ -2709,10 +2648,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { break; default : throwSyntaxError("Syntax error after '->' token."); - } while ( - token == TokenNameLBRACKET - || token == TokenNameLPAREN - || token == TokenNameLBRACE) { + } while (token == TokenNameLBRACKET || token == TokenNameLPAREN || token == TokenNameLBRACE) { if (token == TokenNameLBRACKET) { getNextToken(); expressionList(); @@ -2880,9 +2816,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { private void multiplicativeExpression() throws CoreException { do { assignExpression(); - if (token != TokenNameMULTIPLY - && token != TokenNameDIVIDE - && token != TokenNameREMAINDER) { + if (token != TokenNameMULTIPLY && token != TokenNameDIVIDE && token != TokenNameREMAINDER) { return; } getNextToken(); @@ -2922,10 +2856,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { private void relationalExpression() throws CoreException { do { shiftExpression(); - if (token != TokenNameLESS - && token != TokenNameGREATER - && token != TokenNameLESS_EQUAL - && token != TokenNameGREATER_EQUAL) { + if (token != TokenNameLESS && token != TokenNameGREATER && token != TokenNameLESS_EQUAL && token != TokenNameGREATER_EQUAL) { return; } getNextToken(); @@ -2935,8 +2866,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { private void identicalExpression() throws CoreException { do { relationalExpression(); - if (token != TokenNameEQUAL_EQUAL_EQUAL - && token != TokenNameNOT_EQUAL_EQUAL) { + if (token != TokenNameEQUAL_EQUAL_EQUAL && token != TokenNameNOT_EQUAL_EQUAL) { return; } getNextToken(); @@ -3150,10 +3080,7 @@ public class Parser extends PHPParserSuperclass implements ITerminalSymbols { if (token != TokenNameRPAREN) { expressionList(); if (token != TokenNameRPAREN) { - throwSyntaxError( - "')' expected after identifier '" - + new String(ident) - + "' in postfix-expression."); + throwSyntaxError("')' expected after identifier '" + new String(ident) + "' in postfix-expression."); } } getNextToken(); -- 1.7.1