Package org.codehaus.janino
Class Parser
java.lang.Object
org.codehaus.janino.Parser
A parser for the Java™ programming language.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
static final class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final CompileException
compileException
(String message) Convenience method for throwing a CompileException.location()
AdditiveExpression := MultiplicativeExpression { ( '+' | '-' ) MultiplicativeExpression }AndExpression := EqualityExpression { '&' EqualityExpression }ArgumentList := Expression { ',' Expression }Arguments := '(' [ ArgumentList ] ')'ArrayInitializer := '{' [ VariableInitializer { ',' VariableInitializer } [ ',' ] '}'AssertStatement := 'assert' Expression [ ':' Expression ] ';'AssignmentExpression := ConditionalExpression [ AssignmentOperator AssignmentExpression ] AssignmentOperator := '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|=''{' BlockStatements '}'BlockStatement := { Identifier ':' } ( ( Modifiers Type | ModifiersOpt BasicType ) LocalVariableDeclarators ';' | 'class' ...BlockStatements := { BlockStatement }BreakStatement := 'break' [ Identifier ] ';'void
parseClassBody
(Java.ClassDeclaration classDeclaration) ClassBody := '{' { ClassBodyDeclaration } '}'void
parseClassBodyDeclaration
(Java.ClassDeclaration classDeclaration) ClassBodyDeclaration := ';' | ModifiersOpt ( Block | // Instance (JLS2 8.6) or static initializer (JLS2 8.7) 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | ConstructorDeclarator | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ';' ) )parseClassDeclarationRest
(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Parser.ClassDeclarationContext context) ClassDeclarationRest := Identifier [ 'extends' ReferenceType ] [ 'implements' ReferenceTypeList ] ClassBodyCompilationUnit := [ PackageDeclaration ] { ImportDeclaration } { TypeDeclaration }ConditionalAndExpression := InclusiveOrExpression { '&&' InclusiveOrExpression }ConditionalExpression := ConditionalOrExpression [ '?' Expression ':' ConditionalExpression ]ConditionalOrExpression := ConditionalAndExpression { '||' ConditionalAndExpression ]parseConstructorDeclarator
(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations) ConstructorDeclarator := Identifier FormalParameters [ 'throws' ReferenceTypeList ] '{' [ 'this' Arguments ';' | 'super' Arguments ';' | Primary '.' 'super' Arguments ';' ] BlockStatements '}'ContinueStatement := 'continue' [ Identifier ] ';'DimExpr := '[' Expression ']'DimExprs := DimExpr { DimExpr }DoStatement := 'do' Statement 'while' '(' Expression ')' ';'EmptyStatement := ';'EqualityExpression := RelationalExpression { ( '==' | '!=' ) RelationalExpression }ExclusiveOrExpression := AndExpression { '^' AndExpression }Expression := AssignmentExpressionExpressionList := Expression { ',' Expression }ExpressionStatement := Expression ';'FieldDeclarationRest := VariableDeclaratorRest { ',' VariableDeclarator }FormalParameter := [ 'final' ] Type Identifier BracketsOptFormalParameters := '(' [ FormalParameter { ',' FormalParameter } ] ')'ForStatement := 'for' '(' [ ForInit ] ';' [ Expression ] ';' [ ExpressionList ] ')' StatementIfStatement := 'if' '(' Expression ')' Statement [ 'else' Statement ]ImportDeclaration := 'import' ImportDeclarationBody ';'ImportDeclarationBody := [ 'static' ] Identifier { '.' Identifier } [ '.' '*' ]InclusiveOrExpression := ExclusiveOrExpression { '|' ExclusiveOrExpression }void
parseInterfaceBody
(Java.InterfaceDeclaration interfaceDeclaration) InterfaceBody := '{' { ';' | ModifiersOpt ( 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ) ) } '}'parseInterfaceDeclarationRest
(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Parser.InterfaceDeclarationContext context) InterfaceDeclarationRest := Identifier [ 'extends' ReferenceTypeList ] InterfaceBodyLabeledStatement := Identifier ':' StatementLocalVariableDeclarators := VariableDeclarator { ',' VariableDeclarator }MethodBody := BlockparseMethodDeclarationRest
(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Java.Type type, String name) MethodDeclarationRest := FormalParameters { '[' ']' } [ 'throws' ReferenceTypeList ] ( ';' | MethodBody )ModifiersAndAnnotations := { 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' | Annotation }MultiplicativeExpression := UnaryExpression { ( '*' | '/' | '%' ) UnaryExpression }PackageDeclaration := 'package' QualifiedIdentifier ';'PackageMemberTypeDeclaration := ModifiersOpt 'class' ClassDeclarationRest | ModifiersOpt 'interface' InterfaceDeclarationRestPrimary := CastExpression | // CastExpression 15.16 '(' Expression ')' | // ParenthesizedExpression 15.8.5 Literal | // Literal 15.8.1 Name | // AmbiguousName Name Arguments | // MethodInvocation Name '[]' { '[]' } | // ArrayType 10.1 Name '[]' { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'this' | // This 15.8.3 'this' Arguments | // Alternate constructor invocation 8.8.5.1 'super' Arguments | // Unqualified superclass constructor invocation 8.8.5.1 'super' '.' Identifier | // SuperclassFieldAccess 15.11.2 'super' '.' Identifier Arguments | // SuperclassMethodInvocation 15.12.4.9 NewClassInstance | NewAnonymousClassInstance | // ClassInstanceCreationExpression 15.9 NewArray | // ArrayCreationExpression 15.10 NewInitializedArray | // ArrayInitializer 10.6 BasicType { '[]' } | // Type BasicType { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'void' '.' 'class' // ClassLiteral 15.8.2 CastExpression := '(' PrimitiveType { '[]' } ')' UnaryExpression | '(' Expression ')' UnaryExpression NewClassInstance := 'new' ReferenceType Arguments NewAnonymousClassInstance := 'new' ReferenceType Arguments [ ClassBody ] NewArray := 'new' Type DimExprs { '[]' } NewInitializedArray := 'new' ArrayType ArrayInitializerString[]
QualifiedIdentifier := Identifier { '.' Identifier }ReferenceType := QualifiedIdentifierReferenceTypeList := ReferenceType { ',' ReferenceType }RelationalExpression := ShiftExpression { ( ( '<' | '>' | '<=' | '>=' ) ShiftExpression ) | ( 'instanceof' ReferenceType ) }ReturnStatement := 'return' [ Expression ] ';'parseSelector
(Java.Atom atom) Selector := '.' Identifier | // FieldAccess 15.11.1 '.' Identifier Arguments | // MethodInvocation '.' 'this' // QualifiedThis 15.8.4 '.' 'super' Arguments // Qualified superclass constructor invocation (JLS 8.8.5.1) '.' 'super' '.' Identifier | // SuperclassFieldReference (JLS 15.11.2) '.' 'super' '.' Identifier Arguments | // SuperclassMethodInvocation (JLS 15.12.4.9) '.' 'new' Identifier Arguments [ ClassBody ] | // QualifiedClassInstanceCreationExpression 15.9 '.' 'class' '[' Expression ']' // ArrayAccessExpression 15.13ShiftExpression := AdditiveExpression { ( '<<' | '>>' | '>>>' ) AdditiveExpression }Statement := LabeledStatement | Block | IfStatement | ForStatement | WhileStatement | DoStatement | TryStatement | 'switch' ...SwitchStatement := 'switch' '(' Expression ')' '{' { SwitchLabels BlockStatements } '}' SwitchLabels := SwitchLabels { SwitchLabels } SwitchLabel := 'case' Expression ':' | 'default' ':'SynchronizedStatement := 'synchronized' '(' expression ')' BlockThrowStatement := 'throw' Expression ';'TryStatement := 'try' Block Catches [ Finally ] | 'try' Block Finally Catches := CatchClause { CatchClause } CatchClause := 'catch' '(' FormalParameter ')' Block Finally := 'finally' BlockType := ( 'byte' | 'short' | 'char' | 'int' | 'long' | 'float' | 'double' | 'boolean' | ReferenceType ) { '[' ']' }UnaryExpression := { PrefixOperator } Primary { Selector } { PostfixOperator } PrefixOperator := '++' | '--' | '+' | '-' | '~' | '!' PostfixOperator := '++' | '--'VariableDeclarator := Identifier VariableDeclaratorRestVariableDeclaratorRest := { '[' ']' } [ '=' VariableInitializer ]VariableInitializer := ArrayInitializer | ExpressionWhileStatement := 'while' '(' Expression ')' Statementpeek()
int
peek
(int[] types) boolean
int
boolean
peekEof()
boolean
boolean
peekNextButOne
(String value) boolean
int
read()
void
int
void
setWarningHandler
(WarningHandler optionalWarningHandler) By default, warnings are discarded, but an application my install aWarningHandler
.
-
Constructor Details
-
Parser
-
-
Method Details
-
getScanner
-
parseCompilationUnit
CompilationUnit := [ PackageDeclaration ] { ImportDeclaration } { TypeDeclaration }
- Throws:
CompileException
IOException
-
parsePackageDeclaration
PackageDeclaration := 'package' QualifiedIdentifier ';'
- Throws:
CompileException
IOException
-
parseImportDeclaration
public Java.CompilationUnit.ImportDeclaration parseImportDeclaration() throws CompileException, IOExceptionImportDeclaration := 'import' ImportDeclarationBody ';'
- Throws:
CompileException
IOException
-
parseImportDeclarationBody
public Java.CompilationUnit.ImportDeclaration parseImportDeclarationBody() throws CompileException, IOExceptionImportDeclarationBody := [ 'static' ] Identifier { '.' Identifier } [ '.' '*' ]
- Throws:
CompileException
IOException
-
parseQualifiedIdentifier
QualifiedIdentifier := Identifier { '.' Identifier }- Throws:
CompileException
IOException
-
parsePackageMemberTypeDeclaration
public Java.PackageMemberTypeDeclaration parsePackageMemberTypeDeclaration() throws CompileException, IOExceptionPackageMemberTypeDeclaration := ModifiersOpt 'class' ClassDeclarationRest | ModifiersOpt 'interface' InterfaceDeclarationRest
- Throws:
CompileException
IOException
-
parseModifiersAndAnnotations
public Java.ModifiersAndAnnotations parseModifiersAndAnnotations() throws CompileException, IOExceptionModifiersAndAnnotations := { 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' | Annotation }
- Throws:
CompileException
IOException
-
parseClassDeclarationRest
public Java.NamedClassDeclaration parseClassDeclarationRest(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Parser.ClassDeclarationContext context) throws CompileException, IOException ClassDeclarationRest := Identifier [ 'extends' ReferenceType ] [ 'implements' ReferenceTypeList ] ClassBody
- Throws:
CompileException
IOException
-
parseClassBody
public void parseClassBody(Java.ClassDeclaration classDeclaration) throws CompileException, IOException ClassBody := '{' { ClassBodyDeclaration } '}'
- Throws:
CompileException
IOException
-
parseClassBodyDeclaration
public void parseClassBodyDeclaration(Java.ClassDeclaration classDeclaration) throws CompileException, IOException ClassBodyDeclaration := ';' | ModifiersOpt ( Block | // Instance (JLS2 8.6) or static initializer (JLS2 8.7) 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | ConstructorDeclarator | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ';' ) )
- Throws:
CompileException
IOException
-
parseInterfaceDeclarationRest
public Java.InterfaceDeclaration parseInterfaceDeclarationRest(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Parser.InterfaceDeclarationContext context) throws CompileException, IOException InterfaceDeclarationRest := Identifier [ 'extends' ReferenceTypeList ] InterfaceBody
- Throws:
CompileException
IOException
-
parseInterfaceBody
public void parseInterfaceBody(Java.InterfaceDeclaration interfaceDeclaration) throws CompileException, IOException InterfaceBody := '{' { ';' | ModifiersOpt ( 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ) ) } '}'
- Throws:
CompileException
IOException
-
parseConstructorDeclarator
public Java.ConstructorDeclarator parseConstructorDeclarator(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations) throws CompileException, IOException ConstructorDeclarator := Identifier FormalParameters [ 'throws' ReferenceTypeList ] '{' [ 'this' Arguments ';' | 'super' Arguments ';' | Primary '.' 'super' Arguments ';' ] BlockStatements '}'
- Throws:
CompileException
IOException
-
parseMethodDeclarationRest
public Java.MethodDeclarator parseMethodDeclarationRest(String optionalDocComment, Java.ModifiersAndAnnotations modifiersAndAnnotations, Java.Type type, String name) throws CompileException, IOException MethodDeclarationRest := FormalParameters { '[' ']' } [ 'throws' ReferenceTypeList ] ( ';' | MethodBody )
- Throws:
CompileException
IOException
-
parseVariableInitializer
public Java.ArrayInitializerOrRvalue parseVariableInitializer() throws CompileException, IOExceptionVariableInitializer := ArrayInitializer | Expression
- Throws:
CompileException
IOException
-
parseArrayInitializer
ArrayInitializer := '{' [ VariableInitializer { ',' VariableInitializer } [ ',' ] '}'
- Throws:
CompileException
IOException
-
parseFormalParameters
public Java.FunctionDeclarator.FormalParameter[] parseFormalParameters() throws CompileException, IOExceptionFormalParameters := '(' [ FormalParameter { ',' FormalParameter } ] ')'
- Throws:
CompileException
IOException
-
parseFormalParameter
public Java.FunctionDeclarator.FormalParameter parseFormalParameter() throws CompileException, IOExceptionFormalParameter := [ 'final' ] Type Identifier BracketsOpt
- Throws:
CompileException
IOException
-
parseMethodBody
MethodBody := Block
- Throws:
CompileException
IOException
-
parseBlock
'{' BlockStatements '}'
- Throws:
CompileException
IOException
-
parseBlockStatements
BlockStatements := { BlockStatement }
- Throws:
CompileException
IOException
-
parseBlockStatement
BlockStatement := { Identifier ':' } ( ( Modifiers Type | ModifiersOpt BasicType ) LocalVariableDeclarators ';' | 'class' ... | Statement | 'final' Type LocalVariableDeclarators ';' | Expression ';' | Expression LocalVariableDeclarators ';' (1) )
(1) "Expression" must pose a type, and has optional trailing brackets.- Throws:
CompileException
IOException
-
parseLocalVariableDeclarators
public Java.VariableDeclarator[] parseLocalVariableDeclarators() throws CompileException, IOExceptionLocalVariableDeclarators := VariableDeclarator { ',' VariableDeclarator }
- Throws:
CompileException
IOException
-
parseFieldDeclarationRest
public Java.VariableDeclarator[] parseFieldDeclarationRest(String name) throws CompileException, IOException FieldDeclarationRest := VariableDeclaratorRest { ',' VariableDeclarator }
- Throws:
CompileException
IOException
-
parseVariableDeclarator
VariableDeclarator := Identifier VariableDeclaratorRest
- Throws:
CompileException
IOException
-
parseVariableDeclaratorRest
public Java.VariableDeclarator parseVariableDeclaratorRest(String name) throws CompileException, IOException VariableDeclaratorRest := { '[' ']' } [ '=' VariableInitializer ]
Used by field declarations and local variable declarations.- Throws:
CompileException
IOException
-
parseStatement
Statement := LabeledStatement | Block | IfStatement | ForStatement | WhileStatement | DoStatement | TryStatement | 'switch' ... | 'synchronized' ... | ReturnStatement | ThrowStatement | BreakStatement | ContinueStatement | EmptyStatement | ExpressionStatement
- Throws:
CompileException
IOException
-
parseLabeledStatement
LabeledStatement := Identifier ':' Statement
- Throws:
CompileException
IOException
-
parseIfStatement
IfStatement := 'if' '(' Expression ')' Statement [ 'else' Statement ]
- Throws:
CompileException
IOException
-
parseForStatement
ForStatement := 'for' '(' [ ForInit ] ';' [ Expression ] ';' [ ExpressionList ] ')' Statement
- Throws:
CompileException
IOException
-
parseWhileStatement
WhileStatement := 'while' '(' Expression ')' Statement
- Throws:
CompileException
IOException
-
parseDoStatement
DoStatement := 'do' Statement 'while' '(' Expression ')' ';'
- Throws:
CompileException
IOException
-
parseTryStatement
TryStatement := 'try' Block Catches [ Finally ] | 'try' Block Finally Catches := CatchClause { CatchClause } CatchClause := 'catch' '(' FormalParameter ')' Block Finally := 'finally' Block
- Throws:
CompileException
IOException
-
parseSwitchStatement
SwitchStatement := 'switch' '(' Expression ')' '{' { SwitchLabels BlockStatements } '}' SwitchLabels := SwitchLabels { SwitchLabels } SwitchLabel := 'case' Expression ':' | 'default' ':'
- Throws:
CompileException
IOException
-
parseSynchronizedStatement
SynchronizedStatement := 'synchronized' '(' expression ')' Block
- Throws:
CompileException
IOException
-
parseReturnStatement
ReturnStatement := 'return' [ Expression ] ';'
- Throws:
CompileException
IOException
-
parseThrowStatement
ThrowStatement := 'throw' Expression ';'
- Throws:
CompileException
IOException
-
parseBreakStatement
BreakStatement := 'break' [ Identifier ] ';'
- Throws:
CompileException
IOException
-
parseContinueStatement
ContinueStatement := 'continue' [ Identifier ] ';'
- Throws:
CompileException
IOException
-
parseAssertStatement
AssertStatement := 'assert' Expression [ ':' Expression ] ';'
- Throws:
CompileException
IOException
-
parseEmptyStatement
EmptyStatement := ';'
- Throws:
CompileException
IOException
-
parseExpressionList
ExpressionList := Expression { ',' Expression }
- Throws:
CompileException
IOException
-
parseType
Type := ( 'byte' | 'short' | 'char' | 'int' | 'long' | 'float' | 'double' | 'boolean' | ReferenceType ) { '[' ']' }
- Throws:
CompileException
IOException
-
parseReferenceType
ReferenceType := QualifiedIdentifier
- Throws:
CompileException
IOException
-
parseReferenceTypeList
ReferenceTypeList := ReferenceType { ',' ReferenceType }
- Throws:
CompileException
IOException
-
parseExpression
Expression := AssignmentExpression
- Throws:
CompileException
IOException
-
parseAssignmentExpression
AssignmentExpression := ConditionalExpression [ AssignmentOperator AssignmentExpression ] AssignmentOperator := '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|='
- Throws:
CompileException
IOException
-
parseConditionalExpression
ConditionalExpression := ConditionalOrExpression [ '?' Expression ':' ConditionalExpression ]
- Throws:
CompileException
IOException
-
parseConditionalOrExpression
ConditionalOrExpression := ConditionalAndExpression { '||' ConditionalAndExpression ]
- Throws:
CompileException
IOException
-
parseConditionalAndExpression
ConditionalAndExpression := InclusiveOrExpression { '&&' InclusiveOrExpression }
- Throws:
CompileException
IOException
-
parseInclusiveOrExpression
InclusiveOrExpression := ExclusiveOrExpression { '|' ExclusiveOrExpression }
- Throws:
CompileException
IOException
-
parseExclusiveOrExpression
ExclusiveOrExpression := AndExpression { '^' AndExpression }
- Throws:
CompileException
IOException
-
parseAndExpression
AndExpression := EqualityExpression { '&' EqualityExpression }
- Throws:
CompileException
IOException
-
parseEqualityExpression
EqualityExpression := RelationalExpression { ( '==' | '!=' ) RelationalExpression }
- Throws:
CompileException
IOException
-
parseRelationalExpression
RelationalExpression := ShiftExpression { ( ( '<' | '>' | '<=' | '>=' ) ShiftExpression ) | ( 'instanceof' ReferenceType ) }
- Throws:
CompileException
IOException
-
parseShiftExpression
ShiftExpression := AdditiveExpression { ( '<<' | '>>' | '>>>' ) AdditiveExpression }
- Throws:
CompileException
IOException
-
parseAdditiveExpression
AdditiveExpression := MultiplicativeExpression { ( '+' | '-' ) MultiplicativeExpression }
- Throws:
CompileException
IOException
-
parseMultiplicativeExpression
MultiplicativeExpression := UnaryExpression { ( '*' | '/' | '%' ) UnaryExpression }
- Throws:
CompileException
IOException
-
parseUnaryExpression
UnaryExpression := { PrefixOperator } Primary { Selector } { PostfixOperator } PrefixOperator := '++' | '--' | '+' | '-' | '~' | '!' PostfixOperator := '++' | '--'
- Throws:
CompileException
IOException
-
parsePrimary
Primary := CastExpression | // CastExpression 15.16 '(' Expression ')' | // ParenthesizedExpression 15.8.5 Literal | // Literal 15.8.1 Name | // AmbiguousName Name Arguments | // MethodInvocation Name '[]' { '[]' } | // ArrayType 10.1 Name '[]' { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'this' | // This 15.8.3 'this' Arguments | // Alternate constructor invocation 8.8.5.1 'super' Arguments | // Unqualified superclass constructor invocation 8.8.5.1 'super' '.' Identifier | // SuperclassFieldAccess 15.11.2 'super' '.' Identifier Arguments | // SuperclassMethodInvocation 15.12.4.9 NewClassInstance | NewAnonymousClassInstance | // ClassInstanceCreationExpression 15.9 NewArray | // ArrayCreationExpression 15.10 NewInitializedArray | // ArrayInitializer 10.6 BasicType { '[]' } | // Type BasicType { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'void' '.' 'class' // ClassLiteral 15.8.2 CastExpression := '(' PrimitiveType { '[]' } ')' UnaryExpression | '(' Expression ')' UnaryExpression NewClassInstance := 'new' ReferenceType Arguments NewAnonymousClassInstance := 'new' ReferenceType Arguments [ ClassBody ] NewArray := 'new' Type DimExprs { '[]' } NewInitializedArray := 'new' ArrayType ArrayInitializer
- Throws:
CompileException
IOException
-
parseSelector
Selector := '.' Identifier | // FieldAccess 15.11.1 '.' Identifier Arguments | // MethodInvocation '.' 'this' // QualifiedThis 15.8.4 '.' 'super' Arguments // Qualified superclass constructor invocation (JLS 8.8.5.1) '.' 'super' '.' Identifier | // SuperclassFieldReference (JLS 15.11.2) '.' 'super' '.' Identifier Arguments | // SuperclassMethodInvocation (JLS 15.12.4.9) '.' 'new' Identifier Arguments [ ClassBody ] | // QualifiedClassInstanceCreationExpression 15.9 '.' 'class' '[' Expression ']' // ArrayAccessExpression 15.13
- Throws:
CompileException
IOException
-
parseDimExprs
DimExprs := DimExpr { DimExpr }
- Throws:
CompileException
IOException
-
parseDimExpr
DimExpr := '[' Expression ']'
- Throws:
CompileException
IOException
-
parseArguments
Arguments := '(' [ ArgumentList ] ')'
- Throws:
CompileException
IOException
-
parseArgumentList
ArgumentList := Expression { ',' Expression }
- Throws:
CompileException
IOException
-
parseLiteral
- Throws:
CompileException
IOException
-
parseExpressionStatement
ExpressionStatement := Expression ';'
- Throws:
CompileException
IOException
-
location
-
peek
- Throws:
CompileException
IOException
-
peekNextButOne
- Throws:
CompileException
IOException
-
read
- Throws:
CompileException
IOException
-
peek
- Throws:
CompileException
IOException
-
peek
- Throws:
CompileException
IOException
-
peek
- Throws:
CompileException
IOException
-
peekNextButOne
- Throws:
CompileException
IOException
-
read
- Throws:
CompileException
IOException
-
read
- Throws:
CompileException
IOException
-
peekRead
- Throws:
CompileException
IOException
-
peekRead
- Returns:
- -1 iff the next token is none of
values
- Throws:
CompileException
IOException
-
peekEof
- Throws:
CompileException
IOException
-
peekIdentifier
- Throws:
CompileException
IOException
-
peekLiteral
- Throws:
CompileException
IOException
-
readIdentifier
- Throws:
CompileException
IOException
-
readOperator
- Throws:
CompileException
IOException
-
setWarningHandler
By default, warnings are discarded, but an application my install aWarningHandler
.Notice that there is no
Parser.setErrorHandler()
method, but parse errors always throw aCompileException
. The reason being is that there is no reasonable way to recover from parse errors and continue parsing, so there is no need to install a custom parse error handler.- Parameters:
optionalWarningHandler
-null
to indicate that no warnings be issued
-
compileException
Convenience method for throwing a CompileException.
-