import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpdt.internal.compiler.parser.*;
+import net.sourceforge.phpdt.internal.compiler.ast.*;
/**
* A new php parser.
private static int errorStart = -1;
private static int errorEnd = -1;
+ //ast stack
+ private final static int AstStackIncrement = 100;
+ /** The stack of node. */
+ private static AstNode[] astStack;
+ /** The cursor in expression stack. */
+ private static int expressionPtr;
+
public final void setFileToParse(final IFile fileToParse) {
this.fileToParse = fileToParse;
}
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(new StringReader(strEval));
+ astStack = new AstNode[AstStackIncrement];
phpTest();
}
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
phpFile();
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
phpFile();
}
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
try {
parse();
} catch (ParseException e) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
}
ReInit(stream);
+ astStack = new AstNode[AstStackIncrement];
try {
parse();
} catch (ParseException e) {
}
}
- public static final void parse() throws ParseException {
+ private static final void parse() throws ParseException {
phpFile();
}
}
errorEnd = jj_input_stream.getPosition() + 1;
throw e;
}
- Expression()
+ try {
+ Expression()
+ } catch (ParseException e) {
+ if (errorMessage != null) {
+ throw e;
+ }
+ errorMessage = "expression expected";
+ errorLevel = ERROR;
+ errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+ errorEnd = jj_input_stream.getPosition() + 1;
+ throw e;
+ }
try {
<RPAREN>
} catch (ParseException e) {