Packages

abstract class JavaParser extends ParserCommon

Source
JavaParsers.scala
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JavaParser
  2. ParserCommon
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new JavaParser()

Abstract Value Members

  1. abstract def deprecationWarning(off: JavaParsers.Offset, msg: String, since: String): Unit
    Definition Classes
    ParserCommon
  2. abstract def freshName(prefix: String): Global.Name
  3. abstract val in: JavaParsers.JavaScanner
    Definition Classes
    JavaParserParserCommon
  4. abstract def syntaxError(pos: Int, msg: String): Unit
  5. abstract def warning(pos: Int, msg: String): Unit

Concrete Value Members

  1. 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
    JavaParserParserCommon
  2. def acceptClosingAngle(): Unit
  3. 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.

  4. def addCompanionObject(statics: List[Global.Tree], cdef: Global.ClassDef): List[Global.Tree]
  5. 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 | ClassLiteral

    ElementValueArrayInitializer ::= { [ElementValueList] [,] } ElementValueList ::= ElementValue {, ElementValue}

  6. def annotationDecl(mods: Global.Modifiers): List[Global.Tree]
  7. def annotationParents: collection.immutable.List[Global.Select]
  8. def annotations(): List[Global.Tree]
  9. def arrayOf(tpt: Global.Tree): Global.AppliedTypeTree
  10. def basicType(): Global.Tree
  11. def blankExpr: EmptyTree
  12. def bound(): Global.Tree
  13. def classDecl(mods: Global.Modifiers): List[Global.Tree]
  14. final def commaSeparated[T](part: => T): List[T]

    , with the separator fixed to commas.

    tokenSeparated

    , with the separator fixed to commas. tokenSeparated }}}

    Definition Classes
    ParserCommon
    Annotations
    @inline()
  15. def compilationUnit(): Global.Tree

    CompilationUnit ::= [package QualId semi] TopStatSeq

  16. def convertToTypeId(tree: Global.Tree): Global.Tree

    Convert (qual)ident to type identifier

  17. def definesInterface(token: Int): Boolean
  18. final def dropAnyBraces[T](body: => T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  19. def enumConst(enumType: Global.Tree): (Global.ValDef, Boolean)
  20. def enumDecl(mods: Global.Modifiers): List[Global.Tree]
  21. def errorTypeTree: Global.TypeTree
  22. 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.

  23. def formalParam(): Global.ValDef
  24. def formalParams(): List[Global.ValDef]
  25. def ident(): Global.Name
  26. def identForType(): Global.TypeName
  27. def importDecl(): List[Global.Tree]
  28. final def inBraces[T](body: => T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  29. final def inBracesOrError[T](body: => T, alt: T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  30. final def inBracesOrNil[T](body: => List[T]): List[T]
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  31. final def inBracesOrUnit[T](body: => Global.Tree): Global.Tree
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  32. final def inBrackets[T](body: => T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  33. 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()
  34. final def inParens[T](body: => T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  35. final def inParensOrError[T](body: => T, alt: T): T
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  36. final def inParensOrNil[T](body: => List[T]): List[T]
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  37. final def inParensOrUnit[T](body: => Global.Tree): Global.Tree
    Definition Classes
    ParserCommon
    Annotations
    @inline()
  38. def interfaceDecl(mods: Global.Modifiers): List[Global.Tree]
  39. def interfacesOpt(): List[Global.Tree]
  40. def javaDot(name: Global.Name): Global.Tree
  41. def javaLangDot(name: Global.Name): Global.Tree
  42. def javaLangObject(): Global.Tree
  43. def javaLangRecord(): Global.Tree
  44. 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.

  45. def makeCompanionObject(cdef: Global.ClassDef, statics: List[Global.Tree]): Global.Tree
  46. def makeConstructor(formals: List[Global.Tree]): Global.DefDef
  47. def makePackaging(pkg: Global.RefTree, stats: List[Global.Tree]): Global.PackageDef
  48. def makeParam(name: Global.TermName, tpt: Global.Tree): Global.ValDef
  49. def makeParam(name: String, tpt: Global.Tree): Global.ValDef
  50. 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()
  51. def makeSyntheticParam(count: Int, tpt: Global.Tree): Global.ValDef
  52. def makeTemplate(parents: List[Global.Tree], stats: List[Global.Tree]): Global.Template
  53. def memberDecl(mods: Global.Modifiers, parentToken: Int): List[Global.Tree]
  54. def methodBody(): Global.Tree
  55. def modifiers(inInterface: Boolean): Global.Modifiers
  56. final def optArrayBrackets(tpt: Global.Tree): Global.Tree
    Annotations
    @tailrec()
  57. def optThrows(): Unit
  58. def parse(): Global.Tree

    this is the general parse method

  59. def qualId(orClassLiteral: Boolean = false): Global.Tree
  60. def recordDecl(mods: Global.Modifiers): List[Global.Tree]
  61. def repsep[T <: Global.Tree](p: () => T, sep: Int): List[T]
  62. def separatedToken[T](separator: JavaParsers.Token, part: => T): List[T]

    .

    { `sep` part }

    . { sep part } }}}

    Definition Classes
    ParserCommon
  63. def skipAhead(): Unit

    skip parent or brace enclosed sequence of things

  64. def skipTo(tokens: Int*): Unit
  65. def syntaxError(pos: Int, msg: String, skipIt: Boolean): Unit
  66. def syntaxError(msg: String, skipIt: Boolean): Unit
  67. def termDecl(mods: Global.Modifiers, parentToken: Int): List[Global.Tree]
  68. def tokenSeparated[T](separator: JavaParsers.Token, part: => T): List[T]

    .

    { `sep` part }

    . { sep part } }}}

    Definition Classes
    ParserCommon
  69. def tryLiteral(negate: Boolean = false): Option[Global.Constant]
  70. def typ(): Global.Tree
  71. def typeArgs(t: Global.Tree): Global.Tree
  72. def typeBody(leadingToken: Int): (List[Global.Tree], List[Global.Tree])
  73. def typeBodyDecls(parentToken: Int): (List[Global.Tree], List[Global.Tree])
  74. def typeDecl(mods: Global.Modifiers): List[Global.Tree]
  75. def typeParam(): Global.TypeDef
  76. def typeParams(): List[Global.TypeDef]
  77. def varDecl(pos: Global.Position, mods: Global.Modifiers, tpt: Global.Tree, name: Global.TermName): Global.ValDef