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

  5. def annotationDecl(mods: Global.Modifiers): List[Global.Tree]
  6. def annotationParents: collection.immutable.List[Global.Select]
  7. def annotations(): List[Global.Tree]
  8. def arrayOf(tpt: Global.Tree): Global.AppliedTypeTree
  9. def basicType(): Global.Tree
  10. def blankExpr: EmptyTree
  11. def bound(): Global.Tree
  12. def classDecl(mods: Global.Modifiers): List[Global.Tree]
  13. 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()
  14. def compilationUnit(): Global.Tree

    CompilationUnit ::= [package QualId semi] TopStatSeq

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

    Convert (qual)ident to type identifier

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

  22. def formalParam(): Global.ValDef
  23. def formalParams(): List[Global.ValDef]
  24. def ident(): Global.Name
  25. def identForType(): Global.TypeName
  26. def importCompanionObject(cdef: Global.ClassDef): Global.Tree
  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 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.

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

    this is the general parse method

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

    .

    { `sep` part }

    . { sep part } }}}

    Definition Classes
    ParserCommon
  61. def skipAhead(): Unit

    skip parent or brace enclosed sequence of things

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

    .

    { `sep` part }

    . { sep part } }}}

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