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);
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;
}
withoutUnicodePtr--;
}
}
+ } else if ((currentCharacter == '\r') || (currentCharacter == '\n')) {
+ if (recordLineSeparator) {
+ pushLineSeparator();
+ }
}
// consume next character
unicodeAsBackSlash = false;
withoutUnicodePtr--;
}
}
+ } else if ((currentCharacter == '\r') || (currentCharacter == '\n')) {
+ if (recordLineSeparator) {
+ pushLineSeparator();
+ }
}
// consume next character
unicodeAsBackSlash = false;
withoutUnicodePtr--;
}
}
+ } else if ((currentCharacter == '\r') || (currentCharacter == '\n')) {
+ if (recordLineSeparator) {
+ pushLineSeparator();
+ }
}
// consume next character
unicodeAsBackSlash = false;
}
}
break;
+ case '\r':
+ case '\n':
+ if (recordLineSeparator) {
+ pushLineSeparator();
+ }
+ break;
case '$':
if (isPHPIdentifierStart(source[currentPosition]) || source[currentPosition] == '{') {
currentPosition--;
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;
}
}
}
}
// 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) {