bsh
Class Parser

java.lang.Object
  extended bybsh.Parser
All Implemented Interfaces:
ParserConstants, ParserTreeConstants

public class Parser
extends java.lang.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)
                }
        


Field Summary
 Token jj_nt
           
protected  bsh.JJTParserState jjtree
           
 boolean lookingAhead
           
 Token token
           
 ParserTokenManager token_source
           
 
Fields inherited from interface bsh.ParserTreeConstants
JJTALLOCATIONEXPRESSION, JJTAMBIGUOUSNAME, JJTARGUMENTS, JJTARRAYDIMENSIONS, JJTARRAYINITIALIZER, JJTASSIGNMENT, JJTBINARYEXPRESSION, JJTBLOCK, JJTCASTEXPRESSION, JJTCLASSDECLARATION, JJTENHANCEDFORSTATEMENT, JJTFORMALCOMMENT, JJTFORMALPARAMETER, JJTFORMALPARAMETERS, JJTFORSTATEMENT, JJTIFSTATEMENT, JJTIMPORTDECLARATION, JJTLITERAL, JJTMETHODDECLARATION, JJTMETHODINVOCATION, jjtNodeName, JJTPACKAGEDECLARATION, JJTPRIMARYEXPRESSION, JJTPRIMARYSUFFIX, JJTPRIMITIVETYPE, JJTRETURNSTATEMENT, JJTRETURNTYPE, JJTSTATEMENTEXPRESSIONLIST, JJTSWITCHLABEL, JJTSWITCHSTATEMENT, JJTTERNARYEXPRESSION, JJTTHROWSTATEMENT, JJTTRYSTATEMENT, JJTTYPE, JJTTYPEDVARIABLEDECLARATION, JJTUNARYEXPRESSION, JJTVARIABLEDECLARATOR, JJTVOID, JJTWHILESTATEMENT
 
Fields inherited from interface bsh.ParserConstants
_DEFAULT, ABSTRACT, ANDASSIGN, ANDASSIGNX, ASSIGN, BANG, BIT_AND, BIT_ANDX, BIT_OR, BIT_ORX, BOOL_AND, BOOL_ANDX, BOOL_OR, BOOL_ORX, BOOLEAN, BREAK, BYTE, CASE, CATCH, CHAR, CHARACTER_LITERAL, CLASS, COLON, COMMA, CONST, CONTINUE, DECIMAL_LITERAL, DECR, DEFAULT, DIGIT, DO, DOT, DOUBLE, ELSE, ENUM, EOF, EQ, EXPONENT, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FLOATING_POINT_LITERAL, FOR, FORMAL_COMMENT, GE, GEX, GOTO, GT, GTX, HASH_BANG_COMMENT, HEX_LITERAL, HOOK, IDENTIFIER, IF, IMPLEMENTS, IMPORT, INCR, INSTANCEOF, INT, INTEGER_LITERAL, INTERFACE, LBRACE, LBRACKET, LE, LETTER, LEX, LONG, LPAREN, LSHIFT, LSHIFTASSIGN, LSHIFTASSIGNX, LSHIFTX, LT, LTX, MINUS, MINUSASSIGN, MOD, MODASSIGN, MULTI_LINE_COMMENT, NATIVE, NE, NEW, NONPRINTABLE, NULL, OCTAL_LITERAL, ORASSIGN, ORASSIGNX, PACKAGE, PLUS, PLUSASSIGN, PRIVATE, PROTECTED, PUBLIC, RBRACE, RBRACKET, RETURN, RPAREN, RSIGNEDSHIFT, RSIGNEDSHIFTASSIGN, RSIGNEDSHIFTASSIGNX, RSIGNEDSHIFTX, RUNSIGNEDSHIFT, RUNSIGNEDSHIFTASSIGN, RUNSIGNEDSHIFTASSIGNX, RUNSIGNEDSHIFTX, SEMICOLON, SHORT, SINGLE_LINE_COMMENT, SLASH, SLASHASSIGN, STAR, STARASSIGN, STATIC, STRICTFP, STRING_LITERAL, SWITCH, SYNCHRONIZED, THROW, THROWS, TILDE, tokenImage, TRANSIENT, TRUE, TRY, VOID, VOLATILE, WHILE, XOR, XORASSIGN
 
Constructor Summary
Parser(java.io.InputStream stream)
           
Parser(ParserTokenManager tm)
           
Parser(java.io.Reader stream)
           
 
Method Summary
 void AdditiveExpression()
           
 void AllocationExpression()
           
 void AmbiguousName()
           
 void AndExpression()
           
 void ArgumentList()
           
 void Arguments()
           
 void ArrayDimensions()
           
 void ArrayInitializer()
           
 void Assignment()
           
 int AssignmentOperator()
           
 void Block()
           
 void BlockStatement()
           
 boolean BooleanLiteral()
           
 void BreakStatement()
           
 void CastExpression()
           
 void CastLookahead()
           
 void ClassDeclaration()
           
 void ConditionalAndExpression()
           
 void ConditionalExpression()
           
 void ConditionalOrExpression()
           
 void ContinueStatement()
           
 void disable_tracing()
           
 void DoStatement()
           
 void EmptyStatement()
           
 void enable_tracing()
           
 void EnhancedForStatement()
           
 void EqualityExpression()
           
 void ExclusiveOrExpression()
           
 void Expression()
           
 void ForInit()
           
 void FormalComment()
           
 void FormalParameter()
           
 void FormalParameters()
           
 void ForStatement()
           
 void ForUpdate()
           
 ParseException generateParseException()
           
 Token getNextToken()
           
 Token getToken(int index)
           
 void IfStatement()
           
 void ImportDeclaration()
           
 void InclusiveOrExpression()
           
 void InstanceOfExpression()
           
 void LabeledStatement()
           
 boolean Line()
           
 void Literal()
           
static void main(java.lang.String[] args)
           
 void MethodDeclaration()
           
 void MethodInvocation()
           
 Modifiers Modifiers(int context, boolean lookahead)
          THE JAVA LANGUAGE GRAMMAR STARTS HERE *
 void MultiplicativeExpression()
           
 int NameList()
           
 void NullLiteral()
           
 void PackageDeclaration()
           
 bsh.SimpleNode popNode()
           
 void PostfixExpression()
           
 void PreDecrementExpression()
           
 void PreIncrementExpression()
           
 void PrimaryExpression()
           
 void PrimaryPrefix()
           
 void PrimarySuffix()
           
 void PrimitiveType()
           
 void ReInit(java.io.InputStream stream)
           
 void ReInit(ParserTokenManager tm)
           
 void ReInit(java.io.Reader stream)
           
 void RelationalExpression()
           
 void ReturnStatement()
           
 void ReturnType()
           
 void setRetainComments(boolean b)
           
 void ShiftExpression()
           
 void Statement()
           
 void StatementExpression()
           
 void StatementExpressionList()
           
 void SwitchLabel()
           
 void SwitchStatement()
           
 void SynchronizedStatement()
           
 void ThrowStatement()
           
 void TryStatement()
           
 void Type()
           
 void TypedVariableDeclaration()
          Declared a typed variable.
 void UnaryExpression()
           
 void UnaryExpressionNotPlusMinus()
           
 void VariableDeclarator()
           
 void VariableInitializer()
           
 void VoidLiteral()
           
 void WhileStatement()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jjtree

protected bsh.JJTParserState jjtree

token_source

public ParserTokenManager token_source

token

public Token token

jj_nt

public Token jj_nt

lookingAhead

public boolean lookingAhead
Constructor Detail

Parser

public Parser(java.io.InputStream stream)

Parser

public Parser(java.io.Reader stream)

Parser

public Parser(ParserTokenManager tm)
Method Detail

setRetainComments

public void setRetainComments(boolean b)

popNode

public bsh.SimpleNode popNode()

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException,
                        ParseException
Throws:
java.io.IOException
ParseException

Line

public final boolean Line()
                   throws ParseException
Throws:
ParseException

Modifiers

public final Modifiers Modifiers(int context,
                                 boolean lookahead)
                          throws ParseException
THE JAVA LANGUAGE GRAMMAR STARTS HERE *

Throws:
ParseException

ClassDeclaration

public final void ClassDeclaration()
                            throws ParseException
Throws:
ParseException

MethodDeclaration

public final void MethodDeclaration()
                             throws ParseException
Throws:
ParseException

PackageDeclaration

public final void PackageDeclaration()
                              throws ParseException
Throws:
ParseException

ImportDeclaration

public final void ImportDeclaration()
                             throws ParseException
Throws:
ParseException

VariableDeclarator

public final void VariableDeclarator()
                              throws ParseException
Throws:
ParseException

VariableInitializer

public final void VariableInitializer()
                               throws ParseException
Throws:
ParseException

ArrayInitializer

public final void ArrayInitializer()
                            throws ParseException
Throws:
ParseException

FormalParameters

public final void FormalParameters()
                            throws ParseException
Throws:
ParseException

FormalParameter

public final void FormalParameter()
                           throws ParseException
Throws:
ParseException

Type

public final void Type()
                throws ParseException
Throws:
ParseException

ReturnType

public final void ReturnType()
                      throws ParseException
Throws:
ParseException

PrimitiveType

public final void PrimitiveType()
                         throws ParseException
Throws:
ParseException

AmbiguousName

public final void AmbiguousName()
                         throws ParseException
Throws:
ParseException

NameList

public final int NameList()
                   throws ParseException
Throws:
ParseException

Expression

public final void Expression()
                      throws ParseException
Throws:
ParseException

Assignment

public final void Assignment()
                      throws ParseException
Throws:
ParseException

AssignmentOperator

public final int AssignmentOperator()
                             throws ParseException
Throws:
ParseException

ConditionalExpression

public final void ConditionalExpression()
                                 throws ParseException
Throws:
ParseException

ConditionalOrExpression

public final void ConditionalOrExpression()
                                   throws ParseException
Throws:
ParseException

ConditionalAndExpression

public final void ConditionalAndExpression()
                                    throws ParseException
Throws:
ParseException

InclusiveOrExpression

public final void InclusiveOrExpression()
                                 throws ParseException
Throws:
ParseException

ExclusiveOrExpression

public final void ExclusiveOrExpression()
                                 throws ParseException
Throws:
ParseException

AndExpression

public final void AndExpression()
                         throws ParseException
Throws:
ParseException

EqualityExpression

public final void EqualityExpression()
                              throws ParseException
Throws:
ParseException

InstanceOfExpression

public final void InstanceOfExpression()
                                throws ParseException
Throws:
ParseException

RelationalExpression

public final void RelationalExpression()
                                throws ParseException
Throws:
ParseException

ShiftExpression

public final void ShiftExpression()
                           throws ParseException
Throws:
ParseException

AdditiveExpression

public final void AdditiveExpression()
                              throws ParseException
Throws:
ParseException

MultiplicativeExpression

public final void MultiplicativeExpression()
                                    throws ParseException
Throws:
ParseException

UnaryExpression

public final void UnaryExpression()
                           throws ParseException
Throws:
ParseException

PreIncrementExpression

public final void PreIncrementExpression()
                                  throws ParseException
Throws:
ParseException

PreDecrementExpression

public final void PreDecrementExpression()
                                  throws ParseException
Throws:
ParseException

UnaryExpressionNotPlusMinus

public final void UnaryExpressionNotPlusMinus()
                                       throws ParseException
Throws:
ParseException

CastLookahead

public final void CastLookahead()
                         throws ParseException
Throws:
ParseException

PostfixExpression

public final void PostfixExpression()
                             throws ParseException
Throws:
ParseException

CastExpression

public final void CastExpression()
                          throws ParseException
Throws:
ParseException

PrimaryExpression

public final void PrimaryExpression()
                             throws ParseException
Throws:
ParseException

MethodInvocation

public final void MethodInvocation()
                            throws ParseException
Throws:
ParseException

PrimaryPrefix

public final void PrimaryPrefix()
                         throws ParseException
Throws:
ParseException

PrimarySuffix

public final void PrimarySuffix()
                         throws ParseException
Throws:
ParseException

Literal

public final void Literal()
                   throws ParseException
Throws:
ParseException

BooleanLiteral

public final boolean BooleanLiteral()
                             throws ParseException
Throws:
ParseException

NullLiteral

public final void NullLiteral()
                       throws ParseException
Throws:
ParseException

VoidLiteral

public final void VoidLiteral()
                       throws ParseException
Throws:
ParseException

Arguments

public final void Arguments()
                     throws ParseException
Throws:
ParseException

ArgumentList

public final void ArgumentList()
                        throws ParseException
Throws:
ParseException

AllocationExpression

public final void AllocationExpression()
                                throws ParseException
Throws:
ParseException

ArrayDimensions

public final void ArrayDimensions()
                           throws ParseException
Throws:
ParseException

Statement

public final void Statement()
                     throws ParseException
Throws:
ParseException

LabeledStatement

public final void LabeledStatement()
                            throws ParseException
Throws:
ParseException

Block

public final void Block()
                 throws ParseException
Throws:
ParseException

BlockStatement

public final void BlockStatement()
                          throws ParseException
Throws:
ParseException

FormalComment

public final void FormalComment()
                         throws ParseException
Throws:
ParseException

EmptyStatement

public final void EmptyStatement()
                          throws ParseException
Throws:
ParseException

StatementExpression

public final void StatementExpression()
                               throws ParseException
Throws:
ParseException

SwitchStatement

public final void SwitchStatement()
                           throws ParseException
Throws:
ParseException

SwitchLabel

public final void SwitchLabel()
                       throws ParseException
Throws:
ParseException

IfStatement

public final void IfStatement()
                       throws ParseException
Throws:
ParseException

WhileStatement

public final void WhileStatement()
                          throws ParseException
Throws:
ParseException

DoStatement

public final void DoStatement()
                       throws ParseException
Throws:
ParseException

ForStatement

public final void ForStatement()
                        throws ParseException
Throws:
ParseException

EnhancedForStatement

public final void EnhancedForStatement()
                                throws ParseException
Throws:
ParseException

ForInit

public final void ForInit()
                   throws ParseException
Throws:
ParseException

TypedVariableDeclaration

public final void TypedVariableDeclaration()
                                    throws ParseException
Declared a typed variable. Untyped variables are not declared per-se but are handled by the part of the grammar that deals with assignments.

Throws:
ParseException

StatementExpressionList

public final void StatementExpressionList()
                                   throws ParseException
Throws:
ParseException

ForUpdate

public final void ForUpdate()
                     throws ParseException
Throws:
ParseException

BreakStatement

public final void BreakStatement()
                          throws ParseException
Throws:
ParseException

ContinueStatement

public final void ContinueStatement()
                             throws ParseException
Throws:
ParseException

ReturnStatement

public final void ReturnStatement()
                           throws ParseException
Throws:
ParseException

SynchronizedStatement

public final void SynchronizedStatement()
                                 throws ParseException
Throws:
ParseException

ThrowStatement

public final void ThrowStatement()
                          throws ParseException
Throws:
ParseException

TryStatement

public final void TryStatement()
                        throws ParseException
Throws:
ParseException

ReInit

public void ReInit(java.io.InputStream stream)

ReInit

public void ReInit(java.io.Reader stream)

ReInit

public void ReInit(ParserTokenManager tm)

getNextToken

public final Token getNextToken()

getToken

public final Token getToken(int index)

generateParseException

public ParseException generateParseException()

enable_tracing

public final void enable_tracing()

disable_tracing

public final void disable_tracing()