abstract class JavaParser extends ParserCommon
- Alphabetic
- By Inheritance
- JavaParser
- ParserCommon
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new JavaParser()
Abstract Value Members
- abstract def deprecationWarning(off: JavaParsers.Offset, msg: String, since: String, actions: List[CodeAction] = Nil): Unit
- Definition Classes
- ParserCommon
- abstract def freshName(prefix: String): Global.Name
- implicit abstract def i2p(offset: Int): Global.Position
- Attributes
- protected
- abstract val in: JavaParsers.JavaScanner
- Definition Classes
- JavaParser → ParserCommon
- abstract def syntaxError(pos: Int, msg: String): Unit
- abstract def unit: Global.CompilationUnit
- abstract def warning(pos: Int, msg: String): Unit
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from JavaParser toany2stringadd[JavaParser] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (JavaParser, B)
- Implicit
- This member is added by an implicit conversion from JavaParser toArrowAssoc[JavaParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def accept(token: Int): Int
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.
- Definition Classes
- JavaParser → ParserCommon
- def acceptClosingAngle(): Unit
- def adaptRecordIdentifier(): Unit
If the next token is the identifier "record", convert it into a proper token.
If the next token is the identifier "record", convert it into a proper token. Technically, "record" is just a restricted identifier. However, once we've figured out that it is in a position where it identifies a "record" class, it is much more convenient to promote it to a token.
- def addCompanionObject(statics: List[Global.Tree], cdef: Global.ClassDef): List[Global.Tree]
- def annotation(): Global.Tree
Annotation ::= NormalAnnotation | MarkerAnnotation | SingleElementAnnotation
Annotation ::= NormalAnnotation | MarkerAnnotation | SingleElementAnnotation
NormalAnnotation ::=
@
TypeName(
[ElementValuePairList])
ElementValuePairList ::= ElementValuePair {,
ElementValuePair} ElementValuePair ::= Identifier = ElementValue ElementValue ::= ConditionalExpressionSubset | ElementValueArrayInitializer | Annotation// We only support a subset of the Java syntax that can form constant expressions. // https://docs.oracle.com/javase/specs/jls/se14/html/jls-15.html#jls-15.29 // // Luckily, we can just parse matching
(
and)
to find our way to the end of the the argument list. // and drop the arguments until we implement full support for Java constant expressions // ConditionalExpressionSubset := Literal | Identifier | QualifiedName | ClassLiteralElementValueArrayInitializer ::=
{
[ElementValueList] [,
]}
ElementValueList ::= ElementValue {,
ElementValue} - def annotationDecl(mods: Global.Modifiers): List[Global.Tree]
- def annotationParents: collection.immutable.List[Global.Select]
- def annotations(): List[Global.Tree]
- def arrayOf(tpt: Global.Tree): Global.AppliedTypeTree
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def basicType(): Global.Tree
- def blankExpr: EmptyTree
- def bound(): Global.Tree
- def classDecl(mods: Global.Modifiers): List[Global.Tree]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def commaSeparated[T](part: => T): List[T]
, with the separator fixed to commas.
tokenSeparated
, with the separator fixed to commas.
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- def compilationUnit(): Global.Tree
CompilationUnit ::= [package QualId semi] TopStatSeq
- def convertToTypeId(tree: Global.Tree): Global.Tree
Convert (qual)ident to type identifier
- def definesInterface(token: Int): Boolean
- final def dropAnyBraces[T](body: => T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- def ensuring(cond: (JavaParser) => Boolean, msg: => Any): JavaParser
- Implicit
- This member is added by an implicit conversion from JavaParser toEnsuring[JavaParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (JavaParser) => Boolean): JavaParser
- Implicit
- This member is added by an implicit conversion from JavaParser toEnsuring[JavaParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): JavaParser
- Implicit
- This member is added by an implicit conversion from JavaParser toEnsuring[JavaParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): JavaParser
- Implicit
- This member is added by an implicit conversion from JavaParser toEnsuring[JavaParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def enumConst(enumType: Global.Tree): (Global.ValDef, Boolean)
- def enumDecl(mods: Global.Modifiers): List[Global.Tree]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def errorTypeTree: Global.TypeTree
- def fieldDecls(pos: Global.Position, mods: Global.Modifiers, tpt: Global.Tree, name: Global.Name): List[Global.Tree]
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. - def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def formalParam(): Global.ValDef
- def formalParams(): List[Global.ValDef]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def ident(): Global.Name
- def identForType(): Global.TypeName
- def importDecl(): List[Global.Tree]
- final def inBraces[T](body: => T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inBracesOrError[T](body: => T, alt: T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inBracesOrNil[T](body: => List[T]): List[T]
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inBracesOrUnit[T](body: => Global.Tree): Global.Tree
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inBrackets[T](body: => T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inGroupers[T](left: JavaParsers.Token)(body: => T): T
Methods inParensOrError and similar take a second argument which, should the next token not be the expected opener (e.g.
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.
Skip trailing comma is pushed down to scanner because this abstract parser doesn't have token info.
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inParens[T](body: => T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inParensOrError[T](body: => T, alt: T): T
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inParensOrNil[T](body: => List[T]): List[T]
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- final def inParensOrUnit[T](body: => Global.Tree): Global.Tree
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- def interfaceDecl(mods: Global.Modifiers): List[Global.Tree]
- def interfacesOpt(): List[Global.Tree]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def javaDot(name: Global.Name): Global.Tree
- def javaLangDot(name: Global.Name): Global.Tree
- def javaLangObject(): Global.Tree
- def javaLangRecord(): Global.Tree
- def joinComment(trees: => List[Global.Tree]): List[Global.Tree]
A hook for joining the comment associated with a definition.
A hook for joining the comment associated with a definition. Overridden by scaladoc.
- def makeCompanionObject(cdef: Global.ClassDef, statics: List[Global.Tree]): Global.Tree
- def makeConstructor(formals: List[Global.Tree]): Global.DefDef
- def makePackaging(pkg: Global.RefTree, stats: List[Global.Tree]): Global.PackageDef
- def makeParam(name: Global.TermName, tpt: Global.Tree): Global.ValDef
- def makeParam(name: String, tpt: Global.Tree): Global.ValDef
- final def makeParens(body: => List[Global.Tree]): Global.Parens
Creates an actual Parens node (only used during parsing.)
Creates an actual Parens node (only used during parsing.)
- Definition Classes
- ParserCommon
- Annotations
- @inline()
- def makeSyntheticParam(count: Int, tpt: Global.Tree): Global.ValDef
- def makeTemplate(parents: List[Global.Tree], stats: List[Global.Tree]): Global.Template
- def memberDecl(mods: Global.Modifiers, parentToken: Int): List[Global.Tree]
- def methodBody(): Global.Tree
- def modifiers(inInterface: Boolean): Global.Modifiers
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def optArrayBrackets(tpt: Global.Tree): Global.Tree
- Annotations
- @tailrec()
- def optThrows(): Unit
- def parse(): Global.Tree
this is the general parse method
- def permitsOpt(): List[Global.Tree]
- def qualId(orClassLiteral: Boolean = false): Global.Tree
- def recordDecl(mods: Global.Modifiers): List[Global.Tree]
- def repsep[T <: Global.Tree](p: () => T, sep: Int): List[T]
- def separatedToken[T](separator: JavaParsers.Token, part: => T): List[T]
.
{ `sep` part }
.
- Definition Classes
- ParserCommon
- def skip(): Unit
- Attributes
- protected
- def skipAhead(): Unit
skip parent or brace enclosed sequence of things
- def skipTo(tokens: Int*): Unit
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def syntaxError(pos: Int, msg: String, skipIt: Boolean): Unit
- def syntaxError(msg: String, skipIt: Boolean): Unit
- def termDecl(mods: Global.Modifiers, parentToken: Int): List[Global.Tree]
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tokenSeparated[T](separator: JavaParsers.Token, part: => T): List[T]
.
{ `sep` part }
.
- Definition Classes
- ParserCommon
- def tryLiteral(negate: Boolean = false): Option[Global.Constant]
- def typ(): Global.Tree
- def typeArgs(t: Global.Tree): Global.Tree
- def typeBody(leadingToken: Int): (List[Global.Tree], List[Global.Tree])
- def typeBodyDecls(parentToken: Int): (List[Global.Tree], List[Global.Tree])
- def typeDecl(mods: Global.Modifiers): List[Global.Tree]
- def typeParam(): Global.TypeDef
- def typeParams(): List[Global.TypeDef]
- def varDecl(pos: Global.Position, mods: Global.Modifiers, tpt: Global.Tree, name: Global.TermName): Global.ValDef
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from JavaParser toStringFormat[JavaParser] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (JavaParser, B)
- Implicit
- This member is added by an implicit conversion from JavaParser toArrowAssoc[JavaParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
The Scala compiler and reflection APIs.