public class Parser extends PHPParserSuperclass implements ITerminalSymbols {
- public static final int ERROR = 2;
- public static final int WARNING = 1;
- public static final int INFO = 0;
-
- //scanner token
+ //scanner token
public Scanner scanner;
private IFile fileToParse;
this.initializeScanner();
}
/**
- * Class Constructor.
+ * ClassDeclaration Constructor.
*
*@param s
*@param sess Description of Parameter
setMarker(fileToParse, message, charStart, charEnd, errorLevel);
}
- public static void setMarker(
- IFile file,
- String message,
- int charStart,
- int charEnd,
- int errorLevel)
- throws CoreException {
- if (file != null) {
- Hashtable attributes = new Hashtable();
- MarkerUtilities.setMessage(attributes, message);
- switch (errorLevel) {
- case ERROR :
- attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
- break;
- case WARNING :
- attributes.put(
- IMarker.SEVERITY,
- new Integer(IMarker.SEVERITY_WARNING));
- break;
- case INFO :
- attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
- break;
- }
- MarkerUtilities.setCharStart(attributes, charStart);
- MarkerUtilities.setCharEnd(attributes, charEnd);
- // setLineNumber(attributes, lineNumber);
- MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
- }
- }
-
/**
* This method will throw the SyntaxError.
* It will add the good lines and columns to the Error
private void parseDeclarations(
PHPOutlineInfo outlineInfo,
- PHPSegmentWithChildren current,
+ OutlineableWithChildren current,
boolean goBack) {
char[] ident;
// PHPClassDeclaration current = (PHPClassDeclaration) stack.peek();
if (token == TokenNameVariable
&& store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_VAR)) {
ident = scanner.getCurrentIdentifierSource();
- String variableName = new String(ident);
+ //substring(1) added because PHPVarDeclaration doesn't need the $ anymore
+ String variableName = new String(ident).substring(1);
outlineInfo.addVariable(variableName);
getNextToken();
if (token != TokenNameSEMICOLON) {
if (token == TokenNameIdentifier) {
getNextToken();
} else {
- throwSyntaxError("Class name expected after keyword 'extends'.");
+ throwSyntaxError("ClassDeclaration name expected after keyword 'extends'.");
}
}
} else {
- throwSyntaxError("Class name expected after keyword 'class'.");
+ if (token > TokenNameKEYWORD) {
+ throwSyntaxError(
+ "Don't use keyword for class declaration [" + token + "].");
+ }
+ throwSyntaxError("ClassDeclaration name expected after keyword 'class'.");
}
}
} else {
getNextToken();
}
+ } else {
+ if (token > TokenNameKEYWORD) {
+ throwSyntaxError(
+ "Don't use keyword for function declaration [" + token + "].");
+ }
+ throwSyntaxError("Function name expected after keyword 'function'.");
}
}
//