Fix #1501248 - Parser error in new self::$_class()
authortoshihiro <toshihiro>
Sun, 22 Apr 2007 08:16:02 +0000 (08:16 +0000)
committertoshihiro <toshihiro>
Sun, 22 Apr 2007 08:16:02 +0000 (08:16 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java

index b27c78c..47d1390 100644 (file)
@@ -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();