X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Scanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Scanner.java index 4ed6bf2..1740a02 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Scanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Scanner.java @@ -213,9 +213,20 @@ public class Scanner implements IScanner, ITerminalSymbols { public ICompilationUnit compilationUnit = null; /** + * Determines if the specified character is permissible as the first character in a PHP identifier or + * variable + * + * The '$' character for PHP variables is regarded as a correct first character ! + * + */ + public static boolean isPHPIdentOrVarStart(char ch) { + return Character.isLetter(ch) || (ch == '$') ||(ch == '_') || (0x7F <= ch && ch <= 0xFF); + } + + /** * Determines if the specified character is permissible as the first character in a PHP identifier. * - * The '$' character for HP variables isn't regarded as the first character ! + * The '$' character for PHP variables isn't regarded as the first character ! */ public static boolean isPHPIdentifierStart(char ch) { return Character.isLetter(ch) || (ch == '_') || (0x7F <= ch && ch <= 0xFF); @@ -322,7 +333,13 @@ public class Scanner implements IScanner, ITerminalSymbols { } return result; } - + + public final char[] getRawTokenSourceEnd() { + int length = this.eofPosition - this.currentPosition - 1; + char[] sourceEnd = new char[length]; + System.arraycopy(this.source, this.currentPosition, sourceEnd, 0, length); + return sourceEnd; +} public int getCurrentTokenStartPosition() { return this.startPosition; } @@ -4237,8 +4254,8 @@ public class Scanner implements IScanner, ITerminalSymbols { continue nextTag; // ensure tag is not leaded with letter if tag starts with a letter - if (Character.isJavaIdentifierStart(tag[0])) { - if (Character.isJavaIdentifierPart(previous)) { + if (Scanner.isPHPIdentifierStart(tag[0])) { + if (Scanner.isPHPIdentifierPart(previous)) { continue nextTag; } } @@ -4255,8 +4272,8 @@ public class Scanner implements IScanner, ITerminalSymbols { } } // ensure tag is not followed with letter if tag finishes with a letter - if (i + tagLength < commentEnd && Character.isJavaIdentifierPart(src[i + tagLength - 1])) { - if (Character.isJavaIdentifierPart(src[i + tagLength])) + if (i + tagLength < commentEnd && Scanner.isPHPIdentifierPart(src[i + tagLength - 1])) { + if (Scanner.isPHPIdentifierPart(src[i + tagLength])) continue nextTag; } if (this.foundTaskTags == null) {