implements ITerminalSymbols, CompilerModifiers, ParserBasicInformation {
//internal data for the automat
protected final static int StackIncrement = 255;
-
+
protected int stateStackTop;
protected int[] stack = new int[StackIncrement];
// typeDecl.sourceStart, typeDecl.sourceEnd);
}
getNextToken();
- interface_extends_list();
+ interface_extends_list(typeDecl);
} else {
typeDecl.name = new char[] { ' ' };
throwSyntaxError("Interface name expected after keyword 'interface'.", typeDecl.sourceStart, typeDecl.sourceEnd);
// /* empty */
// | T_EXTENDS fully_qualified_class_name
if (token == TokenNameextends) {
- interface_extends_list();
+ interface_extends_list(typeDecl);
// getNextToken();
// if (token != TokenNameIdentifier) {
// throwSyntaxError("Class name expected after keyword
// .getCurrentTokenEndPosition());
// }
}
- implements_list();
+ implements_list(typeDecl);
} else {
typeDecl.name = new char[] { ' ' };
throwSyntaxError("Class name expected after keyword 'class'.", typeDecl.sourceStart, typeDecl.sourceEnd);
}
}
- private void interface_extends_list() {
+ private void class_extends(TypeDeclaration typeDecl) {
+ // /* empty */
+ // | T_EXTENDS interface_list
+ if (token == TokenNameextends) {
+ getNextToken();
+
+ if (token == TokenNameIdentifier) {
+ getNextToken();
+ } else {
+ throwSyntaxError("Class name expected after keyword 'extends'.");
+ }
+ }
+ }
+
+ private void interface_extends_list(TypeDeclaration typeDecl) {
// /* empty */
// | T_EXTENDS interface_list
if (token == TokenNameextends) {
}
}
- private void implements_list() {
+ private void implements_list(TypeDeclaration typeDecl) {
// /* empty */
// | T_IMPLEMENTS interface_list
if (token == TokenNameimplements) {
- getNextToken();
+ getNextToken();
interface_list();
}
}
typeDecl.methods = new AbstractMethodDeclaration[] { methodDecl };
} else {
AbstractMethodDeclaration[] newMethods;
- System.arraycopy(typeDecl.methods, 0, newMethods = new AbstractMethodDeclaration[typeDecl.methods.length + 1], 1,
+ System.arraycopy(typeDecl.methods, 0,
+ newMethods = new AbstractMethodDeclaration[typeDecl.methods.length + 1], 0,
typeDecl.methods.length);
- newMethods[0] = methodDecl;
+ newMethods[typeDecl.methods.length] = methodDecl;
typeDecl.methods = newMethods;
}
if ((typeDecl.modifiers & AccAbstract) == AccAbstract) {
problemReporter.phpIncludeNotExistWarning(args, literal.sourceStart, literal.sourceEnd, referenceContext,
compilationUnit.compilationResult);
} else {
- impt.setFile( PHPFileUtil.createFile(path, project) );
+ try {
+ impt.setFile( PHPFileUtil.createFile(path, project) );
+ } catch (Exception e) {
+ // the file is outside of the workspace
+ }
}
}
}