## bsh
Class Parser

    java.lang.Object
      bsh.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: <p ``

                    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()