firstToken = TokenNameMINUS_MINUS;
scanner.recordLineSeparator = false;
}
- public void initialize() {
- super.initialize();
+ public void initialize(boolean phpMode) {
+ super.initialize(phpMode);
//positionning the parser for a new compilation unit
//avoiding stack reallocation and all that....
// astPtr = -1;
// A P I
- public CompilationUnitDeclaration parse(ICompilationUnit sourceUnit, CompilationResult compilationResult) {
+ public CompilationUnitDeclaration parse(ICompilationUnit sourceUnit, CompilationResult compilationResult, boolean phpMode) {
// parses a compilation unit and manages error handling (even bugs....)
CompilationUnitDeclaration unit;
try {
/* automaton initialization */
- initialize();
+ initialize(phpMode);
goForCompilationUnit();
/* scanner initialization */
//convert bugs into parse error
- initialize();
+ initialize(false);
goForConstructorBody();
nestedMethod[nestedType]++;
}
if (lastAct == ERROR_ACTION) {
- initialize();
+ initialize(false);
return;
}
//convert bugs into parse error
- initialize();
+ initialize(false);
goForExpression();
nestedMethod[nestedType]++;
//convert bugs into parse error
- initialize();
+ initialize(false);
goForInitializer();
nestedMethod[nestedType]++;
// if ((md.modifiers & AccSemicolonBody) != 0)
// return;
- initialize();
+ initialize(false);
goForMethodBody();
nestedMethod[nestedType]++;
CompilationUnitDeclaration unit;
try {
/* automaton initialization */
- initialize();
+ initialize(false);
goForCompilationUnit();
/* scanner initialization */
}
public CompilationUnitDeclaration dietParse(ICompilationUnit sourceUnit, CompilationResult compilationResult) {
+ return dietParse(sourceUnit, compilationResult, true);
+ }
+ public CompilationUnitDeclaration dietParse(ICompilationUnit sourceUnit, CompilationResult compilationResult, boolean phpMode) {
CompilationUnitDeclaration parsedUnit;
boolean old = diet;
try {
diet = true;
- parsedUnit = parse(sourceUnit, compilationResult);
+ parsedUnit = parse(sourceUnit, compilationResult, phpMode);
} finally {
diet = old;
}