org.gjt.sp.jedit.bsh

## Class Parser

- java.lang.Object
- - org.gjt.sp.jedit.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

Fields
`Token` `jj_nt`
`protected org.gjt.sp.jedit.bsh.JJTParserState` `jjtree`
`boolean` `lookingAhead`
`Token` `token`
`ParserTokenManager` `token_source`

### Fields inherited from interface org.gjt.sp.jedit.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 org.gjt.sp.jedit.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

Constructors
Constructor and Description
`Parser(java.io.InputStream stream)`
`Parser(ParserTokenManager tm)`
`Parser(java.io.Reader stream)`

### Method Summary

Methods
`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()`
`org.gjt.sp.jedit.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 org.gjt.sp.jedit.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 org.gjt.sp.jedit.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()