X-Git-Url: http://git.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 b27c78c..5fddf9e 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 @@ -2013,7 +2013,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, throwSyntaxError("'endif' expected."); } getNextToken(); - if (token != TokenNameSEMICOLON) { + if (token != TokenNameSEMICOLON && token != TokenNameINLINE_HTML) { reportSyntaxError("';' expected after if-statement."); iState.sourceEnd = scanner.getCurrentTokenStartPosition(); } else { @@ -2255,7 +2255,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, throwSyntaxError("'endswitch' expected."); } getNextToken(); - if (token != TokenNameSEMICOLON) { + if (token != TokenNameSEMICOLON && token != TokenNameINLINE_HTML) { throwSyntaxError("';' expected after switch-statement."); } getNextToken(); @@ -2283,7 +2283,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, throwSyntaxError("'endfor' expected."); } getNextToken(); - if (token != TokenNameSEMICOLON) { + if (token != TokenNameSEMICOLON && token != TokenNameINLINE_HTML) { throwSyntaxError("';' expected after for-statement."); } getNextToken(); @@ -2301,7 +2301,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, throwSyntaxError("'endwhile' expected."); } getNextToken(); - if (token != TokenNameSEMICOLON) { + if (token != TokenNameSEMICOLON && token != TokenNameINLINE_HTML) { throwSyntaxError("';' expected after while-statement."); } getNextToken(); @@ -2318,7 +2318,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, throwSyntaxError("'endforeach' expected."); } getNextToken(); - if (token != TokenNameSEMICOLON) { + if (token != TokenNameSEMICOLON && token != TokenNameINLINE_HTML) { throwSyntaxError("';' expected after foreach-statement."); } getNextToken(); @@ -3015,7 +3015,15 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, if (token == TokenNameIdentifier) { ref = new SingleTypeReference(scanner.getCurrentIdentifierSource(), scanner.getCurrentTokenStartPosition()); + int pos = scanner.currentPosition; getNextToken(); + if (token == TokenNamePAAMAYIM_NEKUDOTAYIM) { + // Not terminated by T_STRING, reduce to dynamic_class_name_reference + scanner.currentPosition = pos; + token = TokenNameIdentifier; + ref = null; + dynamic_class_name_reference(); + } } else { ref = null; dynamic_class_name_reference();