X-Git-Url: http://secure.phpeclipse.com 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 ab95c81..8cf9f7e 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 @@ -20,6 +20,7 @@ import net.sourceforge.phpdt.internal.compiler.problem.ProblemReporter; import net.sourceforge.phpeclipse.internal.compiler.ast.AbstractMethodDeclaration; import net.sourceforge.phpeclipse.internal.compiler.ast.AstNode; import net.sourceforge.phpeclipse.internal.compiler.ast.CompilationUnitDeclaration; +import net.sourceforge.phpeclipse.internal.compiler.ast.FieldDeclaration; import net.sourceforge.phpeclipse.internal.compiler.ast.MethodDeclaration; import net.sourceforge.phpeclipse.internal.compiler.ast.SingleTypeReference; import net.sourceforge.phpeclipse.internal.compiler.ast.TypeDeclaration; @@ -135,7 +136,7 @@ public class Parser //extends PHPParserSuperclass private void throwSyntaxError(String error) { int problemStartPosition = scanner.getCurrentTokenStartPosition(); int problemEndPosition = scanner.getCurrentTokenEndPosition(); - throwSyntaxError(error, problemStartPosition, problemEndPosition+1); + throwSyntaxError(error, problemStartPosition, problemEndPosition + 1); } /** * This method will throw the SyntaxError. It will add the good lines and @@ -660,16 +661,16 @@ public class Parser //extends PHPParserSuperclass getNextToken(); if (token == TokenNameLBRACE) { getNextToken(); + if (token != TokenNameRBRACE) { + statementList(); + } + if (token == TokenNameRBRACE) { + getNextToken(); + } else { + throwSyntaxError("'}' expected after 'do' keyword."); + } } else { - throwSyntaxError("'{' expected after 'do' keyword."); - } - if (token != TokenNameRBRACE) { - statementList(); - } - if (token == TokenNameRBRACE) { - getNextToken(); - } else { - throwSyntaxError("'}' expected after 'do' keyword."); + statement(TokenNameEOF); } if (token == TokenNamewhile) { getNextToken(); @@ -850,9 +851,11 @@ public class Parser //extends PHPParserSuperclass throwSyntaxError("'{' expected in 'catch' statement."); } getNextToken(); - statementList(); if (token != TokenNameRBRACE) { - throwSyntaxError("'}' expected in 'catch' statement."); + statementList(); + if (token != TokenNameRBRACE) { + throwSyntaxError("'}' expected in 'catch' statement."); + } } getNextToken(); additional_catches(); @@ -1354,6 +1357,10 @@ public class Parser //extends PHPParserSuperclass // | T_VARIABLE '=' static_scalar do { if (token == TokenNameVariable) { + FieldDeclaration fieldDeclaration = new FieldDeclaration(null, scanner + .getCurrentIdentifierSource(), scanner + .getCurrentTokenStartPosition(), scanner + .getCurrentTokenEndPosition()); getNextToken(); if (token == TokenNameEQUAL) { getNextToken(); @@ -1532,10 +1539,8 @@ public class Parser //extends PHPParserSuperclass expr(); //constant(); if (token == TokenNameCOLON || token == TokenNameSEMICOLON) { getNextToken(); - if (token == TokenNamecase || token == TokenNamedefault) { // empty - // case - // statement - // ? + if (token == TokenNamecase || token == TokenNamedefault) { + // empty case statement ? continue; } statementList(); @@ -1561,6 +1566,10 @@ public class Parser //extends PHPParserSuperclass getNextToken(); if (token == TokenNameCOLON) { getNextToken(); + if (token==TokenNameRBRACE) { + // empty default case + break; + } statementList(); } else { throwSyntaxError("':' character after 'default' expected.");