bsh
Class Parser
public
class
Parser
extends Object
implements ParserTreeConstants, ParserConstants
This is the BeanShell parser. It is used internally by the Interpreter
class (which is probably what you are looking for). The parser knows
only how to parse the structure of the language, it does not understand
names, commands, etc.
You can use the Parser from the command line to do basic structural
validation of BeanShell files without actually executing them. e.g.
java bsh.Parser [ -p ] file [ file ] [ ... ]
The -p option causes the abstract syntax to be printed.
From code you'd use the Parser like this:
Parser parser = new Parser(in);
while( !(eof=parser.Line()) ) {
SimpleNode node = parser.popNode();
// use the node, etc. (See bsh.BSH* classes)
}
protected JJTParserState jjtree
public boolean lookingAhead
public Parser(InputStream stream)
public Parser(Reader stream)
public final void AdditiveExpression()
public final void AllocationExpression()
public final void AmbiguousName()
public final void AndExpression()
public final void ArgumentList()
public final void Arguments()
public final void ArrayDimensions()
public final void ArrayInitializer()
public final void Assignment()
public final int AssignmentOperator()
public final void Block()
public final void BlockStatement()
public final boolean BooleanLiteral()
public final void BreakStatement()
public final void CastExpression()
public final void CastLookahead()
public final void ClassDeclaration()
public final void ConditionalAndExpression()
public final void ConditionalExpression()
public final void ConditionalOrExpression()
public final void ContinueStatement()
public final void disable_tracing()
public final void DoStatement()
public final void enable_tracing()
public final void EmptyStatement()
public final void EnhancedForStatement()
public final void EqualityExpression()
public final void ExclusiveOrExpression()
public final void Expression()
public final void ForInit()
public final void FormalComment()
public final void FormalParameter()
public final void FormalParameters()
public final void ForStatement()
public final void ForUpdate()
public final
Token getNextToken()
public final
Token getToken(int index)
public final void IfStatement()
public final void ImportDeclaration()
public final void InclusiveOrExpression()
public final void InstanceOfExpression()
public final void LabeledStatement()
public final boolean Line()
public final void Literal()
public static void main(String[] args)
public final void MethodDeclaration()
public final void MethodDeclarationLookahead()
It's tempting to collapse this to one like like so:
[ LOOKAHEAD( { methodHasReturnType() } ) ReturnType() ]
FormalParameters() "{"
However this doesn't work because nested lookaheads are not evaluated
during lookahead!
http://www.engr.mun.ca/~theo/JavaCC-FAQ/javacc-faq.htm#tth_sEc4.9
public final void MethodInvocation()
public final Modifiers Modifiers(int context, boolean lookahead)
THE JAVA LANGUAGE GRAMMAR STARTS HERE *
public final void MultiplicativeExpression()
public final int NameList()
public final void NullLiteral()
public SimpleNode popNode()
public final void PostfixExpression()
public final void PreDecrementExpression()
public final void PreIncrementExpression()
public final void PrimaryExpression()
public final void PrimaryPrefix()
public final void PrimarySuffix()
public final void PrimitiveType()
public void ReInit(InputStream stream)
public void ReInit(Reader stream)
public final void RelationalExpression()
public final void ReturnStatement()
public final void ReturnType()
public void setRetainComments(boolean b)
public final void ShiftExpression()
public final void Statement()
public final void StatementExpression()
public final void StatementExpressionList()
public final void SwitchLabel()
public final void SwitchStatement()
public final void SynchronizedStatement()
public final void ThrowStatement()
public final void TryStatement()
public final void Type()
public final void TypedVariableDeclaration()
Declared a typed variable.
Untyped variables are not declared per-se but are handled by the part
of the grammar that deals with assignments.
public final void UnaryExpression()
public final void UnaryExpressionNotPlusMinus()
public final void VariableDeclarator()
public final void VariableInitializer()
public final void VoidLiteral()
public final void WhileStatement()
B) 2000 pat@pat.net :-)