X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java index 2a75cd9..9ad50d5 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java @@ -179,7 +179,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { if (character == '`') { - while (true) { + while (character != ICharacterScanner.EOF) { character = scanner.read(); if (character == '\\') { character = scanner.read(); @@ -187,7 +187,8 @@ public class PHPCodeScanner extends AbstractJavaScanner { return fToken; } } - + scanner.unread(); + return Token.UNDEFINED; } else { scanner.unread(); return Token.UNDEFINED; @@ -210,6 +211,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { public IToken evaluate(ICharacterScanner scanner) { int c = scanner.read(); boolean isVariable = false; + boolean isUnderscore = false; if (c == '<') { c = scanner.read(); if (c != '?') { @@ -260,13 +262,21 @@ public class PHPCodeScanner extends AbstractJavaScanner { if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); - do { - fBuffer.append((char) c); + fBuffer.append((char) c); + c = scanner.read(); + if (c == '_') { + isUnderscore = true; + } + while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)) { + fBuffer.append((char) c); c = scanner.read(); - } while (c != ICharacterScanner.EOF && fDetector.isWordPart((char) c)); + } scanner.unread(); if (isVariable) { + if (isUnderscore) { + return getToken(IPreferenceConstants.PHP_VARIABLE_DOLLAR); + } return getToken(IPreferenceConstants.PHP_VARIABLE); } IToken token = (IToken) fWords.get(fBuffer.toString()); @@ -294,6 +304,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { IPreferenceConstants.PHP_KEYWORD, IPreferenceConstants.PHP_FUNCTIONNAME, IPreferenceConstants.PHP_VARIABLE, + IPreferenceConstants.PHP_VARIABLE_DOLLAR, IPreferenceConstants.PHP_STRING_DQ, IPreferenceConstants.PHP_STRING_SQ, IPreferenceConstants.PHP_TYPE,