*/
private void throwSyntaxError(String error) {
int problemStartPosition = scanner.getCurrentTokenStartPosition();
- int problemEndPosition = scanner.getCurrentTokenEndPosition();
- throwSyntaxError(error, problemStartPosition, problemEndPosition + 1);
+ int problemEndPosition = scanner.getCurrentTokenEndPosition() + 1;
+ if (scanner.source.length <= problemEndPosition && problemEndPosition > 0) {
+ problemEndPosition = scanner.source.length - 1;
+ if (problemStartPosition > 0 && problemStartPosition >= problemEndPosition && problemEndPosition > 0) {
+ problemStartPosition = problemEndPosition - 1;
+ }
+ }
+ throwSyntaxError(error, problemStartPosition, problemEndPosition);
}
/**
throwSyntaxError("End-of-file not reached.");
}
break;
- } catch (SyntaxError sytaxErr1) {
+ } catch (SyntaxError syntaxError) {
+ // syntaxError.printStackTrace();
break;
- // // if an error occured,
- // // try to find keywords 'abstract' 'final' 'class' or 'function'
- // // to parse the rest of the string
- // boolean tokenize = scanner.tokenizeStrings;
- // if (!tokenize) {
- // scanner.tokenizeStrings = true;
- // }
- // try {
- // while (token != TokenNameEOF) {
- // if (token == TokenNameabstract || token == TokenNamefinal || token == TokenNameclass || token == TokenNamefunction) {
- // break;
- // }
- // getNextToken();
- // }
- // if (token == TokenNameEOF) {
- // break;
- // }
- // } catch (SyntaxError sytaxErr2) {
- // break;
- // } finally {
- // scanner.tokenizeStrings = tokenize;
- // }
}
} while (true);
}
return statement;
} else if (token == TokenNameINLINE_HTML) {
- getNextToken();
+ if (scanner.phpExpressionTag) {
+ // start of <?= ... ?> block
+ getNextToken();
+ expr();
+ if (token == TokenNameSEMICOLON) {
+ getNextToken();
+ }
+ if (token != TokenNameINLINE_HTML) {
+ throwSyntaxError("Missing '?>' for open PHP expression block ('<?=').");
+ }
+ } else {
+ getNextToken();
+ }
return statement;
// } else if (token == TokenNameprint) {
// getNextToken();
// | '`' encaps_list '`'
// | common_scalar
// | '`' encaps_list '`'
- case TokenNameEncapsedString0:
- scanner.encapsedStringStack.push(new Character('`'));
- getNextToken();
- try {
- if (token == TokenNameEncapsedString0) {
- } else {
- encaps_list();
- if (token != TokenNameEncapsedString0) {
- throwSyntaxError("\'`\' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
- }
- }
- } finally {
- scanner.encapsedStringStack.pop();
- getNextToken();
- }
- break;
- // | '\'' encaps_list '\''
- case TokenNameEncapsedString1:
- scanner.encapsedStringStack.push(new Character('\''));
- getNextToken();
- try {
- exprSourceStart = scanner.getCurrentTokenStartPosition();
- if (token == TokenNameEncapsedString1) {
- expression = new StringLiteralSQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
- .getCurrentTokenEndPosition());
- } else {
- encaps_list();
- if (token != TokenNameEncapsedString1) {
- throwSyntaxError("\'\'\' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
- } else {
- expression = new StringLiteralSQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
- .getCurrentTokenEndPosition());
- }
- }
- } finally {
- scanner.encapsedStringStack.pop();
- getNextToken();
- }
- break;
- //| '"' encaps_list '"'
- case TokenNameEncapsedString2:
- scanner.encapsedStringStack.push(new Character('"'));
- getNextToken();
- try {
- exprSourceStart = scanner.getCurrentTokenStartPosition();
- if (token == TokenNameEncapsedString2) {
- expression = new StringLiteralDQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
- .getCurrentTokenEndPosition());
- } else {
- encaps_list();
- if (token != TokenNameEncapsedString2) {
- throwSyntaxError("'\"' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
- } else {
- expression = new StringLiteralDQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
- .getCurrentTokenEndPosition());
- }
- }
- } finally {
- scanner.encapsedStringStack.pop();
- getNextToken();
- }
- break;
+ // case TokenNameEncapsedString0:
+ // scanner.encapsedStringStack.push(new Character('`'));
+ // getNextToken();
+ // try {
+ // if (token == TokenNameEncapsedString0) {
+ // } else {
+ // encaps_list();
+ // if (token != TokenNameEncapsedString0) {
+ // throwSyntaxError("\'`\' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
+ // }
+ // }
+ // } finally {
+ // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // }
+ // break;
+ // // | '\'' encaps_list '\''
+ // case TokenNameEncapsedString1:
+ // scanner.encapsedStringStack.push(new Character('\''));
+ // getNextToken();
+ // try {
+ // exprSourceStart = scanner.getCurrentTokenStartPosition();
+ // if (token == TokenNameEncapsedString1) {
+ // expression = new StringLiteralSQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
+ // .getCurrentTokenEndPosition());
+ // } else {
+ // encaps_list();
+ // if (token != TokenNameEncapsedString1) {
+ // throwSyntaxError("\'\'\' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
+ // } else {
+ // expression = new StringLiteralSQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
+ // .getCurrentTokenEndPosition());
+ // }
+ // }
+ // } finally {
+ // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // }
+ // break;
+ // //| '"' encaps_list '"'
+ // case TokenNameEncapsedString2:
+ // scanner.encapsedStringStack.push(new Character('"'));
+ // getNextToken();
+ // try {
+ // exprSourceStart = scanner.getCurrentTokenStartPosition();
+ // if (token == TokenNameEncapsedString2) {
+ // expression = new StringLiteralDQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
+ // .getCurrentTokenEndPosition());
+ // } else {
+ // encaps_list();
+ // if (token != TokenNameEncapsedString2) {
+ // throwSyntaxError("'\"' expected at end of string" + "(Found token: " + scanner.toStringAction(token) + " )");
+ // } else {
+ // expression = new StringLiteralDQ(scanner.getCurrentStringLiteralSource(exprSourceStart), exprSourceStart, scanner
+ // .getCurrentTokenEndPosition());
+ // }
+ // }
+ // } finally {
+ // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // }
+ // break;
case TokenNameStringDoubleQuote:
expression = new StringLiteralDQ(scanner.getCurrentStringLiteralSource(), scanner.getCurrentTokenStartPosition(), scanner
.getCurrentTokenEndPosition());
case TokenNameIdentifier:
case TokenNameVariable:
case TokenNameDOLLAR:
- boolean rememberedVar = false;
+ boolean rememberedVar = false;
Expression lhs = variable(true, true);
if (lhs != null && lhs instanceof FieldReference && token != TokenNameEQUAL && token != TokenNamePLUS_EQUAL
&& token != TokenNameMINUS_EQUAL && token != TokenNameMULTIPLY_EQUAL && token != TokenNameDIVIDE_EQUAL
getNextToken();
break;
} else {
+ // System.out.println(scanner.getCurrentTokenStartPosition());
+ // System.out.println(scanner.getCurrentTokenEndPosition());
+
throwSyntaxError("Error in expression (found token '" + scanner.toStringAction(token) + "').");
}
}
getNextToken();
}
- private void encaps_list() {
- // encaps_list encaps_var
- // | encaps_list T_STRING
- // | encaps_list T_NUM_STRING
- // | encaps_list T_ENCAPSED_AND_WHITESPACE
- // | encaps_list T_CHARACTER
- // | encaps_list T_BAD_CHARACTER
- // | encaps_list '['
- // | encaps_list ']'
- // | encaps_list '{'
- // | encaps_list '}'
- // | encaps_list T_OBJECT_OPERATOR
- // | /* empty */
- while (true) {
- switch (token) {
- case TokenNameSTRING:
- getNextToken();
- break;
- case TokenNameLBRACE:
- // scanner.encapsedStringStack.pop();
- getNextToken();
- break;
- case TokenNameRBRACE:
- // scanner.encapsedStringStack.pop();
- getNextToken();
- break;
- case TokenNameLBRACKET:
- // scanner.encapsedStringStack.pop();
- getNextToken();
- break;
- case TokenNameRBRACKET:
- // scanner.encapsedStringStack.pop();
- getNextToken();
- break;
- case TokenNameMINUS_GREATER:
- // scanner.encapsedStringStack.pop();
- getNextToken();
- break;
- case TokenNameVariable:
- case TokenNameDOLLAR_LBRACE:
- case TokenNameLBRACE_DOLLAR:
- encaps_var();
- break;
- default:
- char encapsedChar = ((Character) scanner.encapsedStringStack.peek()).charValue();
- if (encapsedChar == '$') {
- scanner.encapsedStringStack.pop();
- encapsedChar = ((Character) scanner.encapsedStringStack.peek()).charValue();
- switch (encapsedChar) {
- case '`':
- if (token == TokenNameEncapsedString0) {
- return;
- }
- token = TokenNameSTRING;
- continue;
- case '\'':
- if (token == TokenNameEncapsedString1) {
- return;
- }
- token = TokenNameSTRING;
- continue;
- case '"':
- if (token == TokenNameEncapsedString2) {
- return;
- }
- token = TokenNameSTRING;
- continue;
- }
- }
- return;
- }
- }
- }
+ // private void encaps_list() {
+ // // encaps_list encaps_var
+ // // | encaps_list T_STRING
+ // // | encaps_list T_NUM_STRING
+ // // | encaps_list T_ENCAPSED_AND_WHITESPACE
+ // // | encaps_list T_CHARACTER
+ // // | encaps_list T_BAD_CHARACTER
+ // // | encaps_list '['
+ // // | encaps_list ']'
+ // // | encaps_list '{'
+ // // | encaps_list '}'
+ // // | encaps_list T_OBJECT_OPERATOR
+ // // | /* empty */
+ // while (true) {
+ // switch (token) {
+ // case TokenNameSTRING:
+ // getNextToken();
+ // break;
+ // case TokenNameLBRACE:
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // break;
+ // case TokenNameRBRACE:
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // break;
+ // case TokenNameLBRACKET:
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // break;
+ // case TokenNameRBRACKET:
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // break;
+ // case TokenNameMINUS_GREATER:
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // break;
+ // case TokenNameVariable:
+ // case TokenNameDOLLAR_LBRACE:
+ // case TokenNameLBRACE_DOLLAR:
+ // encaps_var();
+ // break;
+ // default:
+ // char encapsedChar = ((Character) scanner.encapsedStringStack.peek()).charValue();
+ // if (encapsedChar == '$') {
+ // scanner.encapsedStringStack.pop();
+ // encapsedChar = ((Character) scanner.encapsedStringStack.peek()).charValue();
+ // switch (encapsedChar) {
+ // case '`':
+ // if (token == TokenNameEncapsedString0) {
+ // return;
+ // }
+ // token = TokenNameSTRING;
+ // continue;
+ // case '\'':
+ // if (token == TokenNameEncapsedString1) {
+ // return;
+ // }
+ // token = TokenNameSTRING;
+ // continue;
+ // case '"':
+ // if (token == TokenNameEncapsedString2) {
+ // return;
+ // }
+ // token = TokenNameSTRING;
+ // continue;
+ // }
+ // }
+ // return;
+ // }
+ // }
+ // }
- private void encaps_var() {
- // T_VARIABLE
- // | T_VARIABLE '[' encaps_var_offset ']'
- // | T_VARIABLE T_OBJECT_OPERATOR T_STRING
- // | T_DOLLAR_OPEN_CURLY_BRACES expr '}'
- // | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
- // | T_CURLY_OPEN variable '}'
- switch (token) {
- case TokenNameVariable:
- getNextToken();
- if (token == TokenNameLBRACKET) {
- getNextToken();
- expr(); //encaps_var_offset();
- if (token != TokenNameRBRACKET) {
- throwSyntaxError("']' expected after variable.");
- }
- // scanner.encapsedStringStack.pop();
- getNextToken();
- // }
- } else if (token == TokenNameMINUS_GREATER) {
- getNextToken();
- if (token != TokenNameIdentifier) {
- throwSyntaxError("Identifier expected after '->'.");
- }
- // scanner.encapsedStringStack.pop();
- getNextToken();
- }
- // else {
- // // scanner.encapsedStringStack.pop();
- // int tempToken = TokenNameSTRING;
- // if (!scanner.encapsedStringStack.isEmpty()
- // && (token == TokenNameEncapsedString0
- // || token == TokenNameEncapsedString1
- // || token == TokenNameEncapsedString2 || token ==
- // TokenNameERROR)) {
- // char encapsedChar = ((Character)
- // scanner.encapsedStringStack.peek())
- // .charValue();
- // switch (token) {
- // case TokenNameEncapsedString0 :
- // if (encapsedChar == '`') {
- // tempToken = TokenNameEncapsedString0;
- // }
- // break;
- // case TokenNameEncapsedString1 :
- // if (encapsedChar == '\'') {
- // tempToken = TokenNameEncapsedString1;
- // }
- // break;
- // case TokenNameEncapsedString2 :
- // if (encapsedChar == '"') {
- // tempToken = TokenNameEncapsedString2;
- // }
- // break;
- // case TokenNameERROR :
- // if (scanner.source[scanner.currentPosition - 1] == '\\') {
- // scanner.currentPosition--;
- // getNextToken();
- // }
- // break;
- // }
- // }
- // token = tempToken;
- // }
- break;
- case TokenNameDOLLAR_LBRACE:
- getNextToken();
- if (token == TokenNameDOLLAR_LBRACE) {
- encaps_var();
- } else if (token == TokenNameIdentifier) {
- getNextToken();
- if (token == TokenNameLBRACKET) {
- getNextToken();
- // if (token == TokenNameRBRACKET) {
- // getNextToken();
- // } else {
- expr();
- if (token != TokenNameRBRACKET) {
- throwSyntaxError("']' expected after '${'.");
- }
- getNextToken();
- // }
- }
- } else {
- expr();
- }
- if (token != TokenNameRBRACE) {
- throwSyntaxError("'}' expected.");
- }
- getNextToken();
- break;
- case TokenNameLBRACE_DOLLAR:
- getNextToken();
- if (token == TokenNameLBRACE_DOLLAR) {
- encaps_var();
- } else if (token == TokenNameIdentifier || token > TokenNameKEYWORD) {
- getNextToken();
- if (token == TokenNameLBRACKET) {
- getNextToken();
- // if (token == TokenNameRBRACKET) {
- // getNextToken();
- // } else {
- expr();
- if (token != TokenNameRBRACKET) {
- throwSyntaxError("']' expected.");
- }
- getNextToken();
- // }
- } else if (token == TokenNameMINUS_GREATER) {
- getNextToken();
- if (token != TokenNameIdentifier && token != TokenNameVariable) {
- throwSyntaxError("String or Variable token expected.");
- }
- getNextToken();
- if (token == TokenNameLBRACKET) {
- getNextToken();
- // if (token == TokenNameRBRACKET) {
- // getNextToken();
- // } else {
- expr();
- if (token != TokenNameRBRACKET) {
- throwSyntaxError("']' expected after '${'.");
- }
- getNextToken();
- // }
- }
- }
- // if (token != TokenNameRBRACE) {
- // throwSyntaxError("'}' expected after '{$'.");
- // }
- // // scanner.encapsedStringStack.pop();
- // getNextToken();
- } else {
- expr();
- if (token != TokenNameRBRACE) {
- throwSyntaxError("'}' expected.");
- }
- // scanner.encapsedStringStack.pop();
- getNextToken();
- }
- break;
- }
- }
+ // private void encaps_var() {
+ // // T_VARIABLE
+ // // | T_VARIABLE '[' encaps_var_offset ']'
+ // // | T_VARIABLE T_OBJECT_OPERATOR T_STRING
+ // // | T_DOLLAR_OPEN_CURLY_BRACES expr '}'
+ // // | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}'
+ // // | T_CURLY_OPEN variable '}'
+ // switch (token) {
+ // case TokenNameVariable:
+ // getNextToken();
+ // if (token == TokenNameLBRACKET) {
+ // getNextToken();
+ // expr(); //encaps_var_offset();
+ // if (token != TokenNameRBRACKET) {
+ // throwSyntaxError("']' expected after variable.");
+ // }
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // // }
+ // } else if (token == TokenNameMINUS_GREATER) {
+ // getNextToken();
+ // if (token != TokenNameIdentifier) {
+ // throwSyntaxError("Identifier expected after '->'.");
+ // }
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // }
+ // // else {
+ // // // scanner.encapsedStringStack.pop();
+ // // int tempToken = TokenNameSTRING;
+ // // if (!scanner.encapsedStringStack.isEmpty()
+ // // && (token == TokenNameEncapsedString0
+ // // || token == TokenNameEncapsedString1
+ // // || token == TokenNameEncapsedString2 || token ==
+ // // TokenNameERROR)) {
+ // // char encapsedChar = ((Character)
+ // // scanner.encapsedStringStack.peek())
+ // // .charValue();
+ // // switch (token) {
+ // // case TokenNameEncapsedString0 :
+ // // if (encapsedChar == '`') {
+ // // tempToken = TokenNameEncapsedString0;
+ // // }
+ // // break;
+ // // case TokenNameEncapsedString1 :
+ // // if (encapsedChar == '\'') {
+ // // tempToken = TokenNameEncapsedString1;
+ // // }
+ // // break;
+ // // case TokenNameEncapsedString2 :
+ // // if (encapsedChar == '"') {
+ // // tempToken = TokenNameEncapsedString2;
+ // // }
+ // // break;
+ // // case TokenNameERROR :
+ // // if (scanner.source[scanner.currentPosition - 1] == '\\') {
+ // // scanner.currentPosition--;
+ // // getNextToken();
+ // // }
+ // // break;
+ // // }
+ // // }
+ // // token = tempToken;
+ // // }
+ // break;
+ // case TokenNameDOLLAR_LBRACE:
+ // getNextToken();
+ // if (token == TokenNameDOLLAR_LBRACE) {
+ // encaps_var();
+ // } else if (token == TokenNameIdentifier) {
+ // getNextToken();
+ // if (token == TokenNameLBRACKET) {
+ // getNextToken();
+ // // if (token == TokenNameRBRACKET) {
+ // // getNextToken();
+ // // } else {
+ // expr();
+ // if (token != TokenNameRBRACKET) {
+ // throwSyntaxError("']' expected after '${'.");
+ // }
+ // getNextToken();
+ // // }
+ // }
+ // } else {
+ // expr();
+ // }
+ // if (token != TokenNameRBRACE) {
+ // throwSyntaxError("'}' expected.");
+ // }
+ // getNextToken();
+ // break;
+ // case TokenNameLBRACE_DOLLAR:
+ // getNextToken();
+ // if (token == TokenNameLBRACE_DOLLAR) {
+ // encaps_var();
+ // } else if (token == TokenNameIdentifier || token > TokenNameKEYWORD) {
+ // getNextToken();
+ // if (token == TokenNameLBRACKET) {
+ // getNextToken();
+ // // if (token == TokenNameRBRACKET) {
+ // // getNextToken();
+ // // } else {
+ // expr();
+ // if (token != TokenNameRBRACKET) {
+ // throwSyntaxError("']' expected.");
+ // }
+ // getNextToken();
+ // // }
+ // } else if (token == TokenNameMINUS_GREATER) {
+ // getNextToken();
+ // if (token != TokenNameIdentifier && token != TokenNameVariable) {
+ // throwSyntaxError("String or Variable token expected.");
+ // }
+ // getNextToken();
+ // if (token == TokenNameLBRACKET) {
+ // getNextToken();
+ // // if (token == TokenNameRBRACKET) {
+ // // getNextToken();
+ // // } else {
+ // expr();
+ // if (token != TokenNameRBRACKET) {
+ // throwSyntaxError("']' expected after '${'.");
+ // }
+ // getNextToken();
+ // // }
+ // }
+ // }
+ // // if (token != TokenNameRBRACE) {
+ // // throwSyntaxError("'}' expected after '{$'.");
+ // // }
+ // // // scanner.encapsedStringStack.pop();
+ // // getNextToken();
+ // } else {
+ // expr();
+ // if (token != TokenNameRBRACE) {
+ // throwSyntaxError("'}' expected.");
+ // }
+ // // scanner.encapsedStringStack.pop();
+ // getNextToken();
+ // }
+ // break;
+ // }
+ // }
private void encaps_var_offset() {
// T_STRING
}
}
+ /**
+ * Parse and check the include file name
+ *
+ * @param includeToken
+ */
private void checkFileName(int includeToken) {
//<include-token> expr
int start = scanner.getCurrentTokenStartPosition();
IPath path = PHPFileUtil.determineFilePath(includeNameString, file, project);
if (path == null) {
- // reportSyntaxError("File: " + expression.toStringExpression() + " doesn't exist in project: "
- // + project.getLocation().toString(), literal.sourceStart, literal.sourceEnd);
+ // SyntaxError: "File: << >> doesn't exist in project."
String[] args = { expression.toStringExpression(), project.getLocation().toString() };
problemReporter.phpIncludeNotExistWarning(args, literal.sourceStart, literal.sourceEnd, referenceContext,
compilationUnit.compilationResult);
} else {
try {
- // String projectPath = ProjectPrefUtil.getDocumentRoot(file.getProject()).toString();
- // String filePath = file.getRawLocation().toString();
String filePath = path.toString();
String ext = file.getRawLocation().getFileExtension();
int fileExtensionLength = ext == null ? 0 : ext.length() + 1;
throwSyntaxError("'`' expected at end of static string.");
}
break;
- case TokenNameEncapsedString1:
- try {
- scanner.currentCharacter = scanner.source[scanner.currentPosition++];
- while (scanner.currentCharacter != '\'') {
- if (scanner.currentCharacter == '\\') {
- scanner.currentPosition++;
- }
- scanner.currentCharacter = scanner.source[scanner.currentPosition++];
- }
- getNextToken();
- } catch (IndexOutOfBoundsException e) {
- throwSyntaxError("'\'' expected at end of static string.");
- }
+ // case TokenNameEncapsedString1:
+ // try {
+ // scanner.currentCharacter = scanner.source[scanner.currentPosition++];
+ // while (scanner.currentCharacter != '\'') {
+ // if (scanner.currentCharacter == '\\') {
+ // scanner.currentPosition++;
+ // }
+ // scanner.currentCharacter = scanner.source[scanner.currentPosition++];
+ // }
+ // getNextToken();
+ // } catch (IndexOutOfBoundsException e) {
+ // throwSyntaxError("'\'' expected at end of static string.");
+ // }
+ // break;
+ // case TokenNameEncapsedString2:
+ // try {
+ // scanner.currentCharacter = scanner.source[scanner.currentPosition++];
+ // while (scanner.currentCharacter != '"') {
+ // if (scanner.currentCharacter == '\\') {
+ // scanner.currentPosition++;
+ // }
+ // scanner.currentCharacter = scanner.source[scanner.currentPosition++];
+ // }
+ // getNextToken();
+ // } catch (IndexOutOfBoundsException e) {
+ // throwSyntaxError("'\"' expected at end of static string.");
+ // }
+ // break;
+ case TokenNameStringSingleQuote:
+ getNextToken();
break;
- case TokenNameEncapsedString2:
- try {
- scanner.currentCharacter = scanner.source[scanner.currentPosition++];
- while (scanner.currentCharacter != '"') {
- if (scanner.currentCharacter == '\\') {
- scanner.currentPosition++;
- }
- scanner.currentCharacter = scanner.source[scanner.currentPosition++];
- }
- getNextToken();
- } catch (IndexOutOfBoundsException e) {
- throwSyntaxError("'\"' expected at end of static string.");
- }
+ case TokenNameStringDoubleQuote:
+ getNextToken();
break;
case TokenNamePLUS:
getNextToken();