|
janino.net | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.janino.Parser
public class Parser
A parser for the JavaTM programming language.
Nested Class Summary | |
---|---|
static class |
Parser.ClassDeclarationContext
|
static class |
Parser.InterfaceDeclarationContext
|
static class |
Parser.ParseException
An exception that reflects an error during parsing. |
Constructor Summary | |
---|---|
Parser(Scanner scanner)
|
Method Summary | |
---|---|
void |
eatToken()
|
Scanner |
getScanner()
|
Location |
location()
|
Java.Atom |
parseAdditiveExpression()
AdditiveExpression := MultiplicativeExpression { ( '+' | '-' ) MultiplicativeExpression } |
Java.Atom |
parseAndExpression()
AndExpression := EqualityExpression { '&' EqualityExpression } |
Java.Rvalue[] |
parseArgumentList()
ArgumentList := Expression { ',' Expression } |
Java.Rvalue[] |
parseArguments()
Arguments := '(' [ ArgumentList ] ')' |
Java.ArrayInitializer |
parseArrayInitializer()
ArrayInitializer := '{' [ VariableInitializer { ',' VariableInitializer } [ ',' ] '}' |
Java.Atom |
parseAssignmentExpression()
AssignmentExpression := ConditionalExpression [ AssignmentOperator AssignmentExpression ] AssignmentOperator := '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|=' |
Java.Block |
parseBlock()
'{' BlockStatements '}' |
Java.BlockStatement |
parseBlockStatement()
BlockStatement := { Identifier ':' } ( ( Modifiers Type | ModifiersOpt BasicType ) LocalVariableDeclarators ';' | 'class' ... |
java.util.List |
parseBlockStatements()
BlockStatements := { BlockStatement } |
Java.Statement |
parseBreakStatement()
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 ';' ) ) |
Java.NamedClassDeclaration |
parseClassDeclarationRest(java.lang.String optionalDocComment,
short modifiers,
Parser.ClassDeclarationContext context)
ClassDeclarationRest := Identifier [ 'extends' ReferenceType ] [ 'implements' ReferenceTypeList ] ClassBody |
Java.CompilationUnit |
parseCompilationUnit()
CompilationUnit := [ PackageDeclaration ] { ImportDeclaration } { TypeDeclaration } |
Java.Atom |
parseConditionalAndExpression()
ConditionalAndExpression := InclusiveOrExpression { '&&' InclusiveOrExpression } |
Java.Atom |
parseConditionalExpression()
ConditionalExpression := ConditionalOrExpression [ '?' Expression ':' ConditionalExpression ] |
Java.Atom |
parseConditionalOrExpression()
ConditionalOrExpression := ConditionalAndExpression { '||' ConditionalAndExpression ] |
Java.ConstructorDeclarator |
parseConstructorDeclarator(java.lang.String optionalDocComment,
short modifiers)
ConstructorDeclarator := Identifier FormalParameters [ 'throws' ReferenceTypeList ] '{' [ 'this' Arguments ';' | 'super' Arguments ';' | Primary '.' 'super' Arguments ';' ] BlockStatements '}' |
Java.Statement |
parseContinueStatement()
ContinueStatement := 'continue' [ Identifier ] ';' |
Java.Rvalue |
parseDimExpr()
DimExpr := '[' Expression ']' |
Java.Rvalue[] |
parseDimExprs()
DimExprs := DimExpr { DimExpr } |
Java.Statement |
parseDoStatement()
DoStatement := 'do' Statement 'while' '(' Expression ')' ';' |
Java.Statement |
parseEmptyStatement()
EmptyStatement := ';' |
Java.Atom |
parseEqualityExpression()
EqualityExpression := RelationalExpression { ( '==' | '!=' ) RelationalExpression } |
Java.Atom |
parseExclusiveOrExpression()
ExclusiveOrExpression := AndExpression { '^' AndExpression } |
Java.Atom |
parseExpression()
Expression := AssignmentExpression |
Java.Rvalue[] |
parseExpressionList()
ExpressionList := Expression { ',' Expression } |
Java.Statement |
parseExpressionStatement()
ExpressionStatement := Expression ';' |
Java.VariableDeclarator[] |
parseFieldDeclarationRest(java.lang.String name)
FieldDeclarationRest := VariableDeclaratorRest { ',' VariableDeclarator } |
Java.FunctionDeclarator.FormalParameter |
parseFormalParameter()
FormalParameter := [ 'final' ] Type Identifier BracketsOpt |
Java.FunctionDeclarator.FormalParameter[] |
parseFormalParameters()
FormalParameters := '(' [ FormalParameter { ',' FormalParameter } ] ')' |
Java.Statement |
parseForStatement()
ForStatement := 'for' '(' [ ForInit ] ';' [ Expression ] ';' [ ExpressionList ] ')' Statement |
Java.Statement |
parseIfStatement()
IfStatement := 'if' '(' Expression ')' Statement [ 'else' Statement ] |
Java.CompilationUnit.ImportDeclaration |
parseImportDeclaration()
ImportDeclaration := 'import' ImportDeclarationBody ';' |
Java.CompilationUnit.ImportDeclaration |
parseImportDeclarationBody()
ImportDeclarationBody := [ 'static' ] Identifier { '.' Identifier } [ '.' '*' ] |
Java.Atom |
parseInclusiveOrExpression()
InclusiveOrExpression := ExclusiveOrExpression { '|' ExclusiveOrExpression } |
void |
parseInterfaceBody(Java.InterfaceDeclaration interfaceDeclaration)
InterfaceBody := '{' { ';' | ModifiersOpt ( 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ) ) } '}' |
Java.InterfaceDeclaration |
parseInterfaceDeclarationRest(java.lang.String optionalDocComment,
short modifiers,
Parser.InterfaceDeclarationContext context)
InterfaceDeclarationRest := Identifier [ 'extends' ReferenceTypeList ] InterfaceBody |
Java.Statement |
parseLabeledStatement()
LabeledStatement := Identifier ':' Statement |
Java.Atom |
parseLiteral()
|
Java.VariableDeclarator[] |
parseLocalVariableDeclarators()
LocalVariableDeclarators := VariableDeclarator { ',' VariableDeclarator } |
Java.Block |
parseMethodBody()
MethodBody := Block |
Java.MethodDeclarator |
parseMethodDeclarationRest(java.lang.String optionalDocComment,
short modifiers,
Java.Type type,
java.lang.String name)
MethodDeclarationRest := FormalParameters { '[' ']' } [ 'throws' ReferenceTypeList ] ( ';' | MethodBody ) |
short |
parseModifiersOpt()
ModifiersOpt := { 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' |
Java.Atom |
parseMultiplicativeExpression()
MultiplicativeExpression := UnaryExpression { ( '*' | '/' | '%' ) UnaryExpression } |
Java.PackageDeclaration |
parsePackageDeclaration()
PackageDeclaration := 'package' QualifiedIdentifier ';' |
Java.PackageMemberTypeDeclaration |
parsePackageMemberTypeDeclaration()
PackageMemberTypeDeclaration := ModifiersOpt 'class' ClassDeclarationRest | ModifiersOpt 'interface' InterfaceDeclarationRest |
Java.Atom |
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 |
java.lang.String[] |
parseQualifiedIdentifier()
QualifiedIdentifier := Identifier { '.' Identifier } |
Java.ReferenceType |
parseReferenceType()
ReferenceType := QualifiedIdentifier |
Java.ReferenceType[] |
parseReferenceTypeList()
ReferenceTypeList := ReferenceType { ',' ReferenceType } |
Java.Atom |
parseRelationalExpression()
RelationalExpression := ShiftExpression { ( ( '<' | '>' | '<=' | '>=' ) ShiftExpression ) | ( 'instanceof' ReferenceType ) } |
Java.Statement |
parseReturnStatement()
ReturnStatement := 'return' [ Expression ] ';' |
Java.Atom |
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.13 |
Java.Atom |
parseShiftExpression()
ShiftExpression := AdditiveExpression { ( '<<' | '>>' | '>>>' ) AdditiveExpression } |
Java.Statement |
parseStatement()
Statement := LabeledStatement | Block | IfStatement | ForStatement | WhileStatement | DoStatement | TryStatement | 'switch' ... |
Java.Statement |
parseSwitchStatement()
SwitchStatement := 'switch' '(' Expression ')' '{' { SwitchLabels BlockStatements } '}' SwitchLabels := SwitchLabels { SwitchLabels } SwitchLabel := 'case' Expression ':' | 'default' ':' |
Java.Statement |
parseSynchronizedStatement()
SynchronizedStatement := 'synchronized' '(' expression ')' Block |
Java.Statement |
parseThrowStatement()
ThrowStatement := 'throw' Expression ';' |
Java.Statement |
parseTryStatement()
TryStatement := 'try' Block Catches [ Finally ] | 'try' Block Finally Catches := CatchClause { CatchClause } CatchClause := 'catch' '(' FormalParameter ')' Block Finally := 'finally' Block |
Java.Type |
parseType()
Type := ( 'byte' | 'short' | 'char' | 'int' | 'long' | 'float' | 'double' | 'boolean' | ReferenceType ) { '[' ']' } |
Java.Atom |
parseUnaryExpression()
UnaryExpression := { PrefixOperator } Primary { Selector } { PostfixOperator } PrefixOperator := '++' | '--' | '+' | '-' | '~' | '!' PostfixOperator := '++' | '--' |
Java.VariableDeclarator |
parseVariableDeclarator()
VariableDeclarator := Identifier VariableDeclaratorRest |
Java.VariableDeclarator |
parseVariableDeclaratorRest(java.lang.String name)
VariableDeclaratorRest := { '[' ']' } [ '=' VariableInitializer ] |
Java.ArrayInitializerOrRvalue |
parseVariableInitializer()
VariableInitializer := ArrayInitializer | Expression |
Java.Statement |
parseWhileStatement()
WhileStatement := 'while' '(' Expression ')' Statement |
boolean |
peekIdentifier()
|
boolean |
peekKeyword()
|
boolean |
peekKeyword(java.lang.String keyword)
|
boolean |
peekKeyword(java.lang.String[] keywords)
|
boolean |
peekOperator(java.lang.String operator)
|
boolean |
peekOperator(java.lang.String[] operators)
|
java.lang.String |
readIdentifier()
|
void |
readKeyword(java.lang.String keyword)
|
java.lang.String |
readOperator()
|
void |
readOperator(java.lang.String operator)
|
void |
setWarningHandler(WarningHandler optionalWarningHandler)
By default, warnings are discarded, but an application my install a WarningHandler . |
protected void |
throwParseException(java.lang.String message)
Convenience method for throwing a ParseException. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Parser(Scanner scanner)
Method Detail |
---|
public Scanner getScanner()
public Java.CompilationUnit parseCompilationUnit() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
CompilationUnit := [ PackageDeclaration ] { ImportDeclaration } { TypeDeclaration }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.PackageDeclaration parsePackageDeclaration() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
PackageDeclaration := 'package' QualifiedIdentifier ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.CompilationUnit.ImportDeclaration parseImportDeclaration() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ImportDeclaration := 'import' ImportDeclarationBody ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.CompilationUnit.ImportDeclaration parseImportDeclarationBody() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ImportDeclarationBody := [ 'static' ] Identifier { '.' Identifier } [ '.' '*' ]
Parser.ParseException
Scanner.ScanException
java.io.IOException
public java.lang.String[] parseQualifiedIdentifier() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.PackageMemberTypeDeclaration parsePackageMemberTypeDeclaration() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
PackageMemberTypeDeclaration := ModifiersOpt 'class' ClassDeclarationRest | ModifiersOpt 'interface' InterfaceDeclarationRest
Parser.ParseException
Scanner.ScanException
java.io.IOException
public short parseModifiersOpt() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ModifiersOpt := { 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.NamedClassDeclaration parseClassDeclarationRest(java.lang.String optionalDocComment, short modifiers, Parser.ClassDeclarationContext context) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ClassDeclarationRest := Identifier [ 'extends' ReferenceType ] [ 'implements' ReferenceTypeList ] ClassBody
Parser.ParseException
Scanner.ScanException
java.io.IOException
public void parseClassBody(Java.ClassDeclaration classDeclaration) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ClassBody := '{' { ClassBodyDeclaration } '}'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public void parseClassBodyDeclaration(Java.ClassDeclaration classDeclaration) throws Parser.ParseException, Scanner.ScanException, java.io.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 ';' ) )
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.InterfaceDeclaration parseInterfaceDeclarationRest(java.lang.String optionalDocComment, short modifiers, Parser.InterfaceDeclarationContext context) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
InterfaceDeclarationRest := Identifier [ 'extends' ReferenceTypeList ] InterfaceBody
Parser.ParseException
Scanner.ScanException
java.io.IOException
public void parseInterfaceBody(Java.InterfaceDeclaration interfaceDeclaration) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
InterfaceBody := '{' { ';' | ModifiersOpt ( 'void' Identifier MethodDeclarationRest | 'class' ClassDeclarationRest | 'interface' InterfaceDeclarationRest | Type Identifier ( MethodDeclarationRest | FieldDeclarationRest ) ) } '}'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.ConstructorDeclarator parseConstructorDeclarator(java.lang.String optionalDocComment, short modifiers) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ConstructorDeclarator := Identifier FormalParameters [ 'throws' ReferenceTypeList ] '{' [ 'this' Arguments ';' | 'super' Arguments ';' | Primary '.' 'super' Arguments ';' ] BlockStatements '}'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.MethodDeclarator parseMethodDeclarationRest(java.lang.String optionalDocComment, short modifiers, Java.Type type, java.lang.String name) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
MethodDeclarationRest := FormalParameters { '[' ']' } [ 'throws' ReferenceTypeList ] ( ';' | MethodBody )
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.ArrayInitializerOrRvalue parseVariableInitializer() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
VariableInitializer := ArrayInitializer | Expression
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.ArrayInitializer parseArrayInitializer() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ArrayInitializer := '{' [ VariableInitializer { ',' VariableInitializer } [ ',' ] '}'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.FunctionDeclarator.FormalParameter[] parseFormalParameters() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
FormalParameters := '(' [ FormalParameter { ',' FormalParameter } ] ')'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.FunctionDeclarator.FormalParameter parseFormalParameter() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
FormalParameter := [ 'final' ] Type Identifier BracketsOpt
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Block parseMethodBody() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
MethodBody := Block
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Block parseBlock() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
'{' BlockStatements '}'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public java.util.List parseBlockStatements() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
BlockStatements := { BlockStatement }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.BlockStatement parseBlockStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
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.
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.VariableDeclarator[] parseLocalVariableDeclarators() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
LocalVariableDeclarators := VariableDeclarator { ',' VariableDeclarator }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.VariableDeclarator[] parseFieldDeclarationRest(java.lang.String name) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
FieldDeclarationRest := VariableDeclaratorRest { ',' VariableDeclarator }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.VariableDeclarator parseVariableDeclarator() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
VariableDeclarator := Identifier VariableDeclaratorRest
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.VariableDeclarator parseVariableDeclaratorRest(java.lang.String name) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
VariableDeclaratorRest := { '[' ']' } [ '=' VariableInitializer ]Used by field declarations and local variable declarations.
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Statement := LabeledStatement | Block | IfStatement | ForStatement | WhileStatement | DoStatement | TryStatement | 'switch' ... | 'synchronized' ... | ReturnStatement | ThrowStatement | BreakStatement | ContinueStatement | EmptyStatement | ExpressionStatement
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseLabeledStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
LabeledStatement := Identifier ':' Statement
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseIfStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
IfStatement := 'if' '(' Expression ')' Statement [ 'else' Statement ]
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseForStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ForStatement := 'for' '(' [ ForInit ] ';' [ Expression ] ';' [ ExpressionList ] ')' Statement
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseWhileStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
WhileStatement := 'while' '(' Expression ')' Statement
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseDoStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
DoStatement := 'do' Statement 'while' '(' Expression ')' ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseTryStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
TryStatement := 'try' Block Catches [ Finally ] | 'try' Block Finally Catches := CatchClause { CatchClause } CatchClause := 'catch' '(' FormalParameter ')' Block Finally := 'finally' Block
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseSwitchStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
SwitchStatement := 'switch' '(' Expression ')' '{' { SwitchLabels BlockStatements } '}' SwitchLabels := SwitchLabels { SwitchLabels } SwitchLabel := 'case' Expression ':' | 'default' ':'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseSynchronizedStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
SynchronizedStatement := 'synchronized' '(' expression ')' Block
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseReturnStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ReturnStatement := 'return' [ Expression ] ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseThrowStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ThrowStatement := 'throw' Expression ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseBreakStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
BreakStatement := 'break' [ Identifier ] ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseContinueStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ContinueStatement := 'continue' [ Identifier ] ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseEmptyStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
EmptyStatement := ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Rvalue[] parseExpressionList() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ExpressionList := Expression { ',' Expression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Type parseType() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Type := ( 'byte' | 'short' | 'char' | 'int' | 'long' | 'float' | 'double' | 'boolean' | ReferenceType ) { '[' ']' }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.ReferenceType parseReferenceType() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ReferenceType := QualifiedIdentifier
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.ReferenceType[] parseReferenceTypeList() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ReferenceTypeList := ReferenceType { ',' ReferenceType }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Expression := AssignmentExpression
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseAssignmentExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
AssignmentExpression := ConditionalExpression [ AssignmentOperator AssignmentExpression ] AssignmentOperator := '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|='
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseConditionalExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ConditionalExpression := ConditionalOrExpression [ '?' Expression ':' ConditionalExpression ]
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseConditionalOrExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ConditionalOrExpression := ConditionalAndExpression { '||' ConditionalAndExpression ]
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseConditionalAndExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ConditionalAndExpression := InclusiveOrExpression { '&&' InclusiveOrExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseInclusiveOrExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
InclusiveOrExpression := ExclusiveOrExpression { '|' ExclusiveOrExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseExclusiveOrExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ExclusiveOrExpression := AndExpression { '^' AndExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseAndExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
AndExpression := EqualityExpression { '&' EqualityExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseEqualityExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
EqualityExpression := RelationalExpression { ( '==' | '!=' ) RelationalExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseRelationalExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
RelationalExpression := ShiftExpression { ( ( '<' | '>' | '<=' | '>=' ) ShiftExpression ) | ( 'instanceof' ReferenceType ) }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseShiftExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ShiftExpression := AdditiveExpression { ( '<<' | '>>' | '>>>' ) AdditiveExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseAdditiveExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
AdditiveExpression := MultiplicativeExpression { ( '+' | '-' ) MultiplicativeExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseMultiplicativeExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
MultiplicativeExpression := UnaryExpression { ( '*' | '/' | '%' ) UnaryExpression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseUnaryExpression() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
UnaryExpression := { PrefixOperator } Primary { Selector } { PostfixOperator } PrefixOperator := '++' | '--' | '+' | '-' | '~' | '!' PostfixOperator := '++' | '--'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parsePrimary() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
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
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseSelector(Java.Atom atom) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
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
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Rvalue[] parseDimExprs() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
DimExprs := DimExpr { DimExpr }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Rvalue parseDimExpr() throws Scanner.ScanException, Parser.ParseException, java.io.IOException
DimExpr := '[' Expression ']'
Scanner.ScanException
Parser.ParseException
java.io.IOException
public Java.Rvalue[] parseArguments() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Arguments := '(' [ ArgumentList ] ')'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Rvalue[] parseArgumentList() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ArgumentList := Expression { ',' Expression }
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Atom parseLiteral() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Location location()
public void eatToken() throws Scanner.ScanException, java.io.IOException
Scanner.ScanException
java.io.IOException
public boolean peekKeyword()
public boolean peekKeyword(java.lang.String keyword)
public boolean peekKeyword(java.lang.String[] keywords)
public void readKeyword(java.lang.String keyword) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public boolean peekOperator(java.lang.String operator)
public boolean peekOperator(java.lang.String[] operators)
public java.lang.String readOperator() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public void readOperator(java.lang.String operator) throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public boolean peekIdentifier()
public java.lang.String readIdentifier() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
Parser.ParseException
Scanner.ScanException
java.io.IOException
public Java.Statement parseExpressionStatement() throws Parser.ParseException, Scanner.ScanException, java.io.IOException
ExpressionStatement := Expression ';'
Parser.ParseException
Scanner.ScanException
java.io.IOException
public void setWarningHandler(WarningHandler optionalWarningHandler)
WarningHandler
.
Notice that there is no Parser.setErrorHandler()
method, but parse errors
always throw a Parser.ParseException
. 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.
optionalWarningHandler
- null
to indicate that no warnings be issuedprotected final void throwParseException(java.lang.String message) throws Parser.ParseException
Parser.ParseException
|
janino.net | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |