Consume one token of the specified type, or signal an error if it is not there.
Consume one token of the specified type, or signal an error if it is not there.
Annotation ::= TypeName [(
AnnotationArgument {,
AnnotationArgument} )
]
Annotation ::= TypeName [(
AnnotationArgument {,
AnnotationArgument} )
]
CompilationUnit ::= [package QualId semi] TopStatSeq
CompilationUnit ::= [package QualId semi] TopStatSeq
Convert (qual)ident to type identifier
Convert (qual)ident to type identifier
Parse a sequence of field declarations, separated by commas.
Parse a sequence of field declarations, separated by commas.
This one is tricky because a comma might also appear in an
initializer. Since we don't parse initializers we don't know
what the comma signifies.
We solve this with a second list buffer maybe
which contains
potential variable definitions.
Once we have reached the end of the statement, we know whether
these potential definitions are real or not.
Methods inParensOrError and similar take a second argument which, should the next token not be the expected opener (e.
Methods inParensOrError and similar take a second argument which, should the next token not be the expected opener (e.g. LPAREN) will be returned instead of the contents of the groupers. However in all cases accept(LPAREN) will be called, so a parse error will still result. If the grouping is optional, in.token should be tested before calling these methods.
Creates an actual Parens node (only used during parsing.
Creates an actual Parens node (only used during parsing.)
this is the general parse method
this is the general parse method
skip parent or brace enclosed sequence of things
skip parent or brace enclosed sequence of things