} else if (token == TokenNamefinal || token == TokenNameabstract || token == TokenNameclass || token == TokenNameinterface) {
TypeDeclaration typeDecl = new TypeDeclaration(this.compilationUnit.compilationResult);
typeDecl.declarationSourceStart = scanner.getCurrentTokenStartPosition();
+ typeDecl.declarationSourceEnd = scanner.getCurrentTokenEndPosition();
+ typeDecl.name = new char[]{' '};
// default super class
typeDecl.superclass = new SingleTypeReference(TypeConstants.OBJECT, 0);
compilationUnit.types.add(typeDecl);
checkAndSetModifiers(AccInterface);
getNextToken();
typeDecl.modifiers = this.modifiers;
+ typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
+ typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
if (token == TokenNameIdentifier || token > TokenNameKEYWORD) {
- typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
- typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
typeDecl.name = scanner.getCurrentIdentifierSource();
if (token > TokenNameKEYWORD) {
- throwSyntaxError("Don't use a keyword for interface declaration [" + scanner.toStringAction(token) + "].",
- typeDecl.sourceStart, typeDecl.sourceEnd);
+ problemReporter.phpKeywordWarning(new String[]{scanner.toStringAction(token)}, scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(),
+ referenceContext, compilationUnit.compilationResult);
+// throwSyntaxError("Don't use a keyword for interface declaration [" + scanner.toStringAction(token) + "].",
+// typeDecl.sourceStart, typeDecl.sourceEnd);
}
getNextToken();
interface_extends_list();
} else {
- typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
- typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
typeDecl.name = new char[]{' '};
throwSyntaxError("Interface name expected after keyword 'interface'.", typeDecl.sourceStart, typeDecl.sourceEnd);
return;
// '{' class_statement_list'}'
class_entry_type();
typeDecl.modifiers = this.modifiers;
+ typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
+ typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
//identifier
//identifier 'extends' identifier
if (token == TokenNameIdentifier || token > TokenNameKEYWORD) {
- typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
- typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
typeDecl.name = scanner.getCurrentIdentifierSource();
if (token > TokenNameKEYWORD) {
- throwSyntaxError("Don't use a keyword for class declaration [" + scanner.toStringAction(token) + "].",
- typeDecl.sourceStart, typeDecl.sourceEnd);
+ problemReporter.phpKeywordWarning(new String[]{scanner.toStringAction(token)}, scanner.getCurrentTokenStartPosition(), scanner.getCurrentTokenEndPosition(),
+ referenceContext, compilationUnit.compilationResult);
+// throwSyntaxError("Don't use a keyword for class declaration [" + scanner.toStringAction(token) + "].",
+// typeDecl.sourceStart, typeDecl.sourceEnd);
}
getNextToken();
// extends_from:
}
implements_list();
} else {
- typeDecl.sourceStart = scanner.getCurrentTokenStartPosition();
- typeDecl.sourceEnd = scanner.getCurrentTokenEndPosition();
typeDecl.name = new char[]{' '};
throwSyntaxError("Class name expected after keyword 'class'.", typeDecl.sourceStart, typeDecl.sourceEnd);
return;
// statementList();
// }
else {
- throwSyntaxError("':' character after 'case' constant expected (Found token: " + scanner.toStringAction(token) + ")");
+ throwSyntaxError("':' character expected after 'case' constant (Found token: " + scanner.toStringAction(token) + ")");
}
} else { // TokenNamedefault
getNextToken();
// empty default case
break;
}
- statementList();
+ if (token != TokenNamecase) {
+ statementList();
+ }
} else {
- throwSyntaxError("':' character after 'default' expected.");
+ throwSyntaxError("':' character expected after 'default'.");
}
}
} while (token == TokenNamecase || token == TokenNamedefault);
//| static_member '(' function_call_parameter_list ')'
//| variable_without_objects '(' function_call_parameter_list ')'
char[] defineName = null;
+ char[] ident = null;
int startPos=0;
int endPos=0;
if (Scanner.TRACE) {
System.out.println("TRACE: function_call()");
}
if (token == TokenNameIdentifier) {
- defineName = scanner.getCurrentIdentifierSource();
+ ident = scanner.getCurrentIdentifierSource();
+ defineName = ident;
startPos = scanner.getCurrentTokenStartPosition();
endPos = scanner.getCurrentTokenEndPosition();
getNextToken();
}
non_empty_function_call_parameter_list();
if (token != TokenNameRPAREN) {
- throwSyntaxError("')' expected in function call.");
+ String functionName;
+ if (ident==null) {
+ functionName = new String(" ");
+ } else {
+ functionName = new String(ident);
+ }
+ throwSyntaxError("')' expected in function call ("+functionName+").");
}
getNextToken();
}