X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/test/PHPParser.jj b/net.sourceforge.phpeclipse/src/test/PHPParser.jj index e4026ea..bb3d533 100644 --- a/net.sourceforge.phpeclipse/src/test/PHPParser.jj +++ b/net.sourceforge.phpeclipse/src/test/PHPParser.jj @@ -30,6 +30,7 @@ import org.eclipse.jface.preference.IPreferenceStore; import java.util.Hashtable; import java.io.StringReader; +import java.io.*; import java.text.MessageFormat; import net.sourceforge.phpeclipse.actions.PHPStartApacheAction; @@ -90,6 +91,21 @@ public final class PHPParser extends PHPParserSuperclass { phpTest(); } + public static final void htmlParserTester(final File fileName) throws CoreException, ParseException { + try { + final Reader stream = new FileReader(fileName); + if (jj_input_stream == null) { + jj_input_stream = new SimpleCharStream(stream, 1, 1); + } + ReInit(stream); + phpFile(); + } catch (FileNotFoundException e) { + e.printStackTrace(); //To change body of catch statement use Options | File Templates. + } catch (ParseException e) { + e.printStackTrace(); //To change body of catch statement use Options | File Templates. + } + } + public static final void htmlParserTester(final String strEval) throws CoreException, ParseException { final StringReader stream = new StringReader(strEval); if (jj_input_stream == null) { @@ -124,6 +140,8 @@ public final class PHPParser extends PHPParserSuperclass { if (errorMessage == null) { PHPeclipsePlugin.log(e); errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it"; + errorStart = jj_input_stream.getPosition(); + errorEnd = errorStart + 1; } setMarker(e); errorMessage = null; @@ -267,9 +285,9 @@ PARSER_END(PHPParser) TOKEN : { - : PHPPARSING + : PHPPARSING | : PHPPARSING -| try { - {pos = jj_input_stream.bufpos;} + {pos = jj_input_stream.getPosition();} className = } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ @@ -649,6 +671,8 @@ void ClassDeclaration() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', identifier expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ] @@ -673,16 +697,20 @@ void ClassBody() : try { } catch (ParseException e) { - errorMessage = "'{' expected"; + errorMessage = "unexpected token : '"+ e.currentToken.next.image + "', '{' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ( ClassBodyDeclaration() )* try { } catch (ParseException e) { - errorMessage = "'var', 'function' or '}' expected"; + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', 'var', 'function' or '}' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -719,6 +747,8 @@ void FieldDeclaration() : } catch (ParseException e) { errorMessage = "';' expected after variable declaration"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -726,8 +756,8 @@ void FieldDeclaration() : PHPVarDeclaration VariableDeclarator() : { final String varName; - String varValue; - final int pos = jj_input_stream.bufpos; + final String varValue; + final int pos = jj_input_stream.getPosition(); } { varName = VariableDeclaratorId() @@ -739,6 +769,8 @@ PHPVarDeclaration VariableDeclarator() : } catch (ParseException e) { errorMessage = "Literal expression expected in variable initializer"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ] @@ -761,6 +793,8 @@ String VariableDeclaratorId() : } catch (ParseException e) { errorMessage = "'$' expected for variable identifier"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -803,13 +837,16 @@ final Token token; expr = VariableName() {return "$" + expr;} | + token = + {return token.image + expr;} +/*| pas besoin ? token = [expr = VariableName()] { if (expr == null) { return token.image; } return token.image + expr; - } + }*/ } String VariableInitializer() : @@ -879,6 +916,8 @@ void MethodDeclaration() : } errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function identifier expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } { @@ -895,12 +934,16 @@ void MethodDeclaration() : } } +/** + * A MethodDeclarator contains [&] IDENTIFIER(parameters ...). + * @return a function description for the outline + */ PHPFunctionDeclaration MethodDeclarator() : { final Token identifier; final StringBuffer methodDeclaration = new StringBuffer(); final String formalParameters; - final int pos = jj_input_stream.bufpos; + final int pos = jj_input_stream.getPosition(); } { [ {methodDeclaration.append("&");} ] @@ -924,7 +967,9 @@ String FormalParameters() : } catch (ParseException e) { errorMessage = "Formal parameter expected after function identifier"; errorLevel = ERROR; - jj_consume_token(token.kind); + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; + throw e; } [ expr = FormalParameter() {buff.append(expr);} @@ -938,6 +983,8 @@ String FormalParameters() : } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } { @@ -1012,6 +1059,8 @@ String Expression() : } catch (ParseException e) { errorMessage = "expression expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ] @@ -1193,7 +1242,15 @@ String EqualityExpression() : | operator = | operator = ) - expr = RelationalExpression() + try { + expr = RelationalExpression() + } catch (ParseException e) { + errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected after '"+operator.image+"'"; + errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; + throw e; + } { buff.append(operator.image); buff.append(expr); @@ -1262,7 +1319,15 @@ String MultiplicativeExpression() : Token operator; final StringBuffer buff = new StringBuffer();} { - expr = UnaryExpression() + try { + expr = UnaryExpression() + } catch (ParseException e) { + errorMessage = "unexpected token '"+e.currentToken.next.image+"'"; + errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; + throw e; + } {buff.append(expr);} ( ( operator = | operator = | operator = ) expr = UnaryExpression() @@ -1360,6 +1425,8 @@ String UnaryExpressionNotPlusMinus() : } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } {return "("+expr+")";} @@ -1435,11 +1502,26 @@ String PrimaryPrefix() : { return "new " + expr; } -| +| expr = VariableDeclaratorId() {return expr;} } +String classInstantiation() : +{ + String expr; + final StringBuffer buff = new StringBuffer("new "); +} +{ + expr = ClassIdentifier() + {buff.append(expr);} + [ + expr = PrimaryExpression() + {buff.append(expr);} + ] + {return buff.toString();} +} + String ClassIdentifier(): { final String expr; @@ -1476,6 +1558,8 @@ String VariableSuffix() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', function call or field access expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } {return "->" + expr;} @@ -1486,6 +1570,8 @@ String VariableSuffix() : } catch (ParseException e) { errorMessage = "']' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } { @@ -1546,6 +1632,8 @@ String expr = null; } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected to close the argument list"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } { @@ -1570,6 +1658,8 @@ final StringBuffer buff = new StringBuffer(); } catch (ParseException e) { errorMessage = "expression expected after a comma in argument list"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } { @@ -1588,10 +1678,12 @@ void StatementNoBreak() : LOOKAHEAD(2) Expression() try { - ( | ) + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -1608,6 +1700,8 @@ void StatementNoBreak() : } catch (ParseException e) { errorMessage = "';' expected after expression"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -1650,7 +1744,7 @@ void Statement() : void IncludeStatement() : { final String expr; - final int pos = jj_input_stream.bufpos; + final int pos = jj_input_stream.getPosition(); } { @@ -1661,10 +1755,12 @@ void IncludeStatement() : } } try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -1676,10 +1772,12 @@ void IncludeStatement() : } } try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -1691,10 +1789,12 @@ void IncludeStatement() : } } try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -1706,10 +1806,12 @@ void IncludeStatement() : } } try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -1739,6 +1841,8 @@ String ListExpression() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ @@ -1751,6 +1855,8 @@ String ListExpression() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } expr = VariableDeclaratorId() @@ -1762,6 +1868,8 @@ String ListExpression() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ expr = Expression() {buff.append("(").append(expr);}] @@ -1773,10 +1881,12 @@ void EchoStatement() : { Expression() ( Expression())* try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected after 'echo' statement"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -1786,10 +1896,12 @@ void GlobalStatement() : { VariableDeclaratorId() ( VariableDeclaratorId())* try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -1799,10 +1911,12 @@ void StaticStatement() : { VariableDeclarator() ( VariableDeclarator())* try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -1821,6 +1935,8 @@ void Block() : } catch (ParseException e) { errorMessage = "'{' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ( BlockStatement() )* @@ -1829,6 +1945,8 @@ void Block() : } catch (ParseException e) { errorMessage = "unexpected token : '"+ e.currentToken.image +"', '}' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -1903,6 +2021,8 @@ void SwitchStatement() : } catch (ParseException e) { errorMessage = "'(' expected after 'switch'"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } Expression() @@ -1911,6 +2031,8 @@ void SwitchStatement() : } catch (ParseException e) { errorMessage = "')' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -1918,20 +2040,14 @@ void SwitchStatement() : } catch (ParseException e) { errorMessage = "'{' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ( line = SwitchLabel() ( BlockStatementNoBreak() )* - [ breakToken = - try { - - } catch (ParseException e) { - errorMessage = "';' expected after 'break' keyword"; - errorLevel = ERROR; - throw e; - } - ] + [ breakToken = BreakStatement() ] { try { if (breakToken == null) { @@ -1951,8 +2067,28 @@ void SwitchStatement() : } catch (ParseException e) { errorMessage = "'}' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; + throw e; + } +} + +Token BreakStatement() : +{ + final Token token; +} +{ + token = [ Expression() ] + try { + + } catch (ParseException e) { + errorMessage = "';' expected after 'break' keyword"; + errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } + {return token;} } int SwitchLabel() : @@ -1967,6 +2103,8 @@ int SwitchLabel() : if (errorMessage != null) throw e; errorMessage = "expression expected after 'case' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -1974,6 +2112,8 @@ int SwitchLabel() : } catch (ParseException e) { errorMessage = "':' expected after case expression"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } {return token.beginLine;} @@ -1984,6 +2124,8 @@ int SwitchLabel() : } catch (ParseException e) { errorMessage = "':' expected after 'default' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } {return token.beginLine;} @@ -1992,7 +2134,7 @@ int SwitchLabel() : void IfStatement() : { final Token token; - final int pos = jj_input_stream.bufpos; + final int pos = jj_input_stream.getPosition(); } { token = Condition("if") IfStatement0(pos,pos+token.image.length()) @@ -2006,7 +2148,9 @@ void Condition(final String keyword) : } catch (ParseException e) { errorMessage = "'(' expected after " + keyword + " keyword"; errorLevel = ERROR; - throw e; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length(); + errorEnd = errorStart +1; + processParseException(e); } Expression() try { @@ -2014,6 +2158,8 @@ void Condition(final String keyword) : } catch (ParseException e) { errorMessage = "')' expected after " + keyword + " keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -2038,6 +2184,8 @@ void IfStatement0(final int start,final int end) : } catch (ParseException e) { errorMessage = "'endif' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -2045,6 +2193,8 @@ void IfStatement0(final int start,final int end) : } catch (ParseException e) { errorMessage = "';' expected after 'endif' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -2072,7 +2222,7 @@ void ElseIfStatement() : void WhileStatement() : { final Token token; - final int pos = jj_input_stream.bufpos; + final int pos = jj_input_stream.getPosition(); } { token = Condition("while") WhileStatement0(pos,pos + token.image.length()) @@ -2097,13 +2247,17 @@ void WhileStatement0(final int start, final int end) : } catch (ParseException e) { errorMessage = "'endwhile' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected after 'endwhile' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } | @@ -2115,10 +2269,12 @@ void DoStatement() : { Statement() Condition("while") try { - ( | "?>") + ( | {PHPParserTokenManager.SwitchTo(PHPParserTokenManager.DEFAULT);}) } catch (ParseException e) { errorMessage = "';' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -2132,6 +2288,8 @@ void ForeachStatement() : } catch (ParseException e) { errorMessage = "'(' expected after 'foreach' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -2139,6 +2297,8 @@ void ForeachStatement() : } catch (ParseException e) { errorMessage = "variable expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ VariableSuffix() ] @@ -2147,6 +2307,8 @@ void ForeachStatement() : } catch (ParseException e) { errorMessage = "'as' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -2154,6 +2316,8 @@ void ForeachStatement() : } catch (ParseException e) { errorMessage = "variable expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ Expression() ] @@ -2162,6 +2326,8 @@ void ForeachStatement() : } catch (ParseException e) { errorMessage = "')' expected after 'foreach' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -2170,6 +2336,8 @@ void ForeachStatement() : if (errorMessage != null) throw e; errorMessage = "statement expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -2177,7 +2345,7 @@ void ForeachStatement() : void ForStatement() : { final Token token; -final int pos = jj_input_stream.bufpos; +final int pos = jj_input_stream.getPosition(); } { token = @@ -2186,6 +2354,8 @@ final int pos = jj_input_stream.bufpos; } catch (ParseException e) { errorMessage = "'(' expected after 'for' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } [ ForInit() ] [ Expression() ] [ StatementExpressionList() ] @@ -2210,6 +2380,8 @@ final int pos = jj_input_stream.bufpos; } catch (ParseException e) { errorMessage = "'endfor' expected"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } try { @@ -2217,6 +2389,8 @@ final int pos = jj_input_stream.bufpos; } catch (ParseException e) { errorMessage = "';' expected after 'endfor' keyword"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } ) @@ -2237,19 +2411,6 @@ void StatementExpressionList() : StatementExpression() ( StatementExpression() )* } -void BreakStatement() : -{} -{ - [ ] - try { - - } catch (ParseException e) { - errorMessage = "';' expected after 'break' statement"; - errorLevel = ERROR; - throw e; - } -} - void ContinueStatement() : {} { @@ -2259,6 +2420,8 @@ void ContinueStatement() : } catch (ParseException e) { errorMessage = "';' expected after 'continue' statement"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } @@ -2272,6 +2435,8 @@ void ReturnStatement() : } catch (ParseException e) { errorMessage = "';' expected after 'return' statement"; errorLevel = ERROR; + errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1; + errorEnd = jj_input_stream.getPosition() + 1; throw e; } } \ No newline at end of file