org.kiama.example.oberon0.base

Driver

trait Driver extends Compiler[ModuleDecl] with PrettyPrinter

A driver for an artefact that parses, pretty prints and performs semantic analysis.

Self Type
Driver with RegexParsers with SourcePrettyPrinter with SymbolTable with Analyser
Linear Supertypes
PrettyPrinter, PrettyPrinterBase, Compiler[ModuleDecl], RegexCompiler[ModuleDecl], RegexParsers, Parsers, CompilerBase[ModuleDecl], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Driver
  2. PrettyPrinter
  3. PrettyPrinterBase
  4. Compiler
  5. RegexCompiler
  6. RegexParsers
  7. Parsers
  8. CompilerBase
  9. AnyRef
  10. Any
Visibility
  1. Public
  2. All

Type Members

  1. type Elem = Char

    Definition Classes
    RegexParsers → Parsers
  2. type Indent = Int

    Definition Classes
    PrettyPrinterBase
  3. type Input = Reader[Elem]

    Definition Classes
    Parsers
  4. type Layout = String

    Definition Classes
    PrettyPrinterBase
  5. type Width = Int

    Definition Classes
    PrettyPrinterBase

Abstract Value Members

  1. abstract def artefact: String

    The name of this artefact.

  2. abstract def parser: Parser[ModuleDecl]

    Definition Classes
    RegexCompiler

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def OnceParser[T](f: (Input) ⇒ ParseResult[T]): Parser[T] with OnceParser[T]

    Definition Classes
    Parsers
  7. def Parser[T](f: (Input) ⇒ ParseResult[T]): Parser[T]

    Definition Classes
    Parsers
  8. def accept[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]

    Definition Classes
    Parsers
  9. def accept[ES](es: ES)(implicit arg0: (ES) ⇒ List[Elem]): Parser[List[Elem]]

    Definition Classes
    Parsers
  10. implicit def accept(e: Elem): Parser[Elem]

    Definition Classes
    Parsers
  11. def acceptIf(p: (Elem) ⇒ Boolean)(err: (Elem) ⇒ String): Parser[Elem]

    Definition Classes
    Parsers
  12. def acceptMatch[U](expected: String, f: PartialFunction[Elem, U]): Parser[U]

    Definition Classes
    Parsers
  13. def acceptSeq[ES](es: ES)(implicit arg0: (ES) ⇒ Iterable[Elem]): Parser[List[Elem]]

    Definition Classes
    Parsers
  14. def ampersand: Doc

    Definition Classes
    PrettyPrinterBase
  15. def angles(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  16. def any(a: Any): Doc

    Definition Classes
    PrettyPrinterBase
  17. implicit def anyToPrettyPrintable(a: Any): PrettyPrintable

    Definition Classes
    PrettyPrinterBase
  18. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  19. def asterisk: Doc

    Definition Classes
    PrettyPrinterBase
  20. def atsign: Doc

    Definition Classes
    PrettyPrinterBase
  21. def backquote: Doc

    Definition Classes
    PrettyPrinterBase
  22. def backslash: Doc

    Definition Classes
    PrettyPrinterBase
  23. def braces(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  24. def brackets(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  25. def caret: Doc

    Definition Classes
    PrettyPrinterBase
  26. def cat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  27. def chainl1[T, U](first: ⇒ Parser[T], p: ⇒ Parser[U], q: ⇒ Parser[(T, U) ⇒ T]): Parser[T]

    Definition Classes
    Parsers
  28. def chainl1[T](p: ⇒ Parser[T], q: ⇒ Parser[(T, T) ⇒ T]): Parser[T]

    Definition Classes
    Parsers
  29. def chainr1[T, U](p: ⇒ Parser[T], q: ⇒ Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): Parser[U]

    Definition Classes
    Parsers
  30. var challengeFlag: Boolean

  31. val challengeFlagDefault: Boolean

  32. implicit def char(c: Char): Doc

    Definition Classes
    PrettyPrinterBase
  33. def checkargs(args: Array[String], emitter: Emitter): Array[String]

    Process the command-line arguments and return an array of the input file names if processing should continue, None otherwise.

    Process the command-line arguments and return an array of the input file names if processing should continue, None otherwise.

    Definition Classes
    Driver → CompilerBase
  34. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  35. def colon: Doc

    Definition Classes
    PrettyPrinterBase
  36. def comma: Doc

    Definition Classes
    PrettyPrinterBase
  37. def commit[T](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    Parsers
  38. def compile(args: Array[String], console: Console): String

    Definition Classes
    CompilerBase
  39. def consumeast(ast: ModuleDecl, console: Console, emitter: Emitter): Unit

    Consume the AST.

    Consume the AST. For example, translate it to something else. By default, do nothing.

  40. val defaultIndent: Int

    Definition Classes
    PrettyPrinterBase
  41. val defaultWidth: Int

    Definition Classes
    PrettyPrinterBase
  42. def dollar: Doc

    Definition Classes
    PrettyPrinterBase
  43. def dot: Doc

    Definition Classes
    PrettyPrinterBase
  44. def dquote: Doc

    Definition Classes
    PrettyPrinterBase
  45. def dquotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  46. def driver(args: Array[String], console: Console, emitter: Emitter): Unit

    Custom driver for section tagging and challenge mode for errors.

    Custom driver for section tagging and challenge mode for errors. If a parse error occurs: in challenge mode, just send "parse failed" to standard output, otherwise send the message to the errors file.

    Definition Classes
    Driver → CompilerBase
  47. def elem(e: Elem): Parser[Elem]

    Definition Classes
    Parsers
  48. def elem(kind: String, p: (Elem) ⇒ Boolean): Parser[Elem]

    Definition Classes
    Parsers
  49. def empty: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  50. def enclose(l: Doc, d: Doc, r: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  51. def encoding: String

    Definition Classes
    CompilerBase
  52. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  53. def equal: Doc

    Definition Classes
    PrettyPrinterBase
  54. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  55. def err(msg: String): Parser[Nothing]

    Definition Classes
    Parsers
  56. def exclamation: Doc

    Definition Classes
    PrettyPrinterBase
  57. def failure(msg: String): Parser[Nothing]

    Definition Classes
    Parsers
  58. def fillcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  59. def fillsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  60. def fillsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  61. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  62. def forwslash: Doc

    Definition Classes
    PrettyPrinterBase
  63. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  64. def group(d: Doc): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  65. def guard[T](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    Parsers
  66. def handleWhiteSpace(source: CharSequence, offset: Int): Int

    Attributes
    protected
    Definition Classes
    RegexParsers
  67. def hash: Doc

    Definition Classes
    PrettyPrinterBase
  68. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  69. def hcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  70. var helpFlag: Boolean

  71. val helpFlagDefault: Boolean

  72. def hsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  73. def hsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  74. def initialiseSemanticAnalysis: Unit

    Perform initialisation of semantic analysis that is necessary before processing an AST.

  75. var input: Option[String]

  76. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  77. def langle: Doc

    Definition Classes
    PrettyPrinterBase
  78. var lastNoSuccess: NoSuccess

    Definition Classes
    Parsers
  79. def lbrace: Doc

    Definition Classes
    PrettyPrinterBase
  80. def lbracket: Doc

    Definition Classes
    PrettyPrinterBase
  81. def line: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  82. def linebreak: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  83. def list[T](l: List[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  84. implicit def literal(s: String): Parser[String]

    Definition Classes
    RegexParsers
  85. def log[T](p: ⇒ Parser[T])(name: String): Parser[T]

    Definition Classes
    Parsers
  86. def lparen: Doc

    Definition Classes
    PrettyPrinterBase
  87. def lsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  88. def lsep2(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  89. def lterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  90. def main(args: Array[String]): Unit

    Definition Classes
    CompilerBase
  91. def makeast(reader: Reader, filename: String, emitter: Emitter): Either[ModuleDecl, String]

    Definition Classes
    RegexCompiler → CompilerBase
  92. def minus: Doc

    Definition Classes
    PrettyPrinterBase
  93. def mkList[T]: (~[T, List[T]]) ⇒ List[T]

    Definition Classes
    Parsers
  94. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  95. def nest(d: Doc, j: Indent): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  96. def not[T](p: ⇒ Parser[T]): Parser[Unit]

    Definition Classes
    Parsers
  97. final def notify(): Unit

    Definition Classes
    AnyRef
  98. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  99. def opt[T](p: ⇒ Parser[T]): Parser[Option[T]]

    Definition Classes
    Parsers
  100. def parens(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  101. def parse[T](p: Parser[T], in: Reader): ParseResult[T]

    Definition Classes
    RegexParsers
  102. def parse[T](p: Parser[T], in: CharSequence): ParseResult[T]

    Definition Classes
    RegexParsers
  103. def parse[T](p: Parser[T], in: Reader[Char]): ParseResult[T]

    Definition Classes
    RegexParsers
  104. def parseAll[T](p: Parser[T], in: CharSequence): ParseResult[T]

    Definition Classes
    RegexParsers
  105. def parseAll[T](p: Parser[T], in: Reader): ParseResult[T]

    Definition Classes
    RegexParsers
  106. def parseAll[T](p: Parser[T], in: Reader[Char]): ParseResult[T]

    Definition Classes
    RegexParsers
  107. def percent: Doc

    Definition Classes
    PrettyPrinterBase
  108. def phrase[T](p: Parser[T]): Parser[T]

    Definition Classes
    RegexParsers → Parsers
  109. def plist(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  110. def plus: Doc

    Definition Classes
    PrettyPrinterBase
  111. def positioned[T <: Positional](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    RegexParsers → Parsers
  112. var pprintastFlag: Boolean

  113. val pprintastFlagDefault: Boolean

  114. def pretty(d: Doc, w: Width): Layout

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  115. def pretty(p: PrettyPrintable): Layout

    Definition Classes
    PrettyPrinterBase
  116. def pretty_any(a: Any): Layout

    Definition Classes
    PrettyPrinterBase
  117. var printastFlag: Boolean

  118. val printastFlagDefault: Boolean

  119. def process(ast: ModuleDecl, console: Console, emitter: Emitter): Boolean

    Process the given abstract syntax tree.

    Process the given abstract syntax tree. Send output to emitter, marking sections so that we can split things later.

    Definition Classes
    Driver → Compiler → CompilerBase
  120. def processargs(args: List[String]): Boolean

  121. def processast(ast: ModuleDecl, console: Console, emitter: Emitter): ModuleDecl

    Process the AST, returning the new one.

    Process the AST, returning the new one. By default, return the AST unchanged.

  122. def question: Doc

    Definition Classes
    PrettyPrinterBase
  123. def rangle: Doc

    Definition Classes
    PrettyPrinterBase
  124. def rbrace: Doc

    Definition Classes
    PrettyPrinterBase
  125. def rbracket: Doc

    Definition Classes
    PrettyPrinterBase
  126. implicit def regex(r: Regex): Parser[String]

    Definition Classes
    RegexParsers
  127. def rep[T](p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  128. def rep1[T](first: ⇒ Parser[T], p0: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) The p0 call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.

  129. def rep1[T](p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  130. def rep1sep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]

    Definition Classes
    Parsers
  131. def repN[T](num: Int, p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  132. def repsep[T](p: ⇒ Parser[T], q: ⇒ Parser[Any]): Parser[List[T]]

    Definition Classes
    Parsers
  133. def resetflags(): Unit

  134. def rparen: Doc

    Definition Classes
    PrettyPrinterBase
  135. def section(emitter: Emitter, name: String): Unit

    Output a section heading so that the output can be split later.

  136. def semi: Doc

    Definition Classes
    PrettyPrinterBase
  137. def sep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  138. def skipWhitespace: Boolean

    Definition Classes
    RegexParsers
  139. def softbreak: Doc

    Definition Classes
    PrettyPrinterBase
  140. def softline: Doc

    Definition Classes
    PrettyPrinterBase
  141. def space: Doc

    Definition Classes
    PrettyPrinterBase
  142. def spaces(n: Int): Doc

    Definition Classes
    PrettyPrinterBase
  143. def squote: Doc

    Definition Classes
    PrettyPrinterBase
  144. def squotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  145. def ssep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  146. def sterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  147. def string(s: String): Doc

    Definition Classes
    PrettyPrinterBase
  148. def success[T](v: T): Parser[T]

    Definition Classes
    Parsers
  149. def surround(d: Doc, b: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  150. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  151. implicit def text(t: String): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  152. def tilde: Doc

    Definition Classes
    PrettyPrinterBase
  153. def toString(): String

    Definition Classes
    AnyRef → Any
  154. def underscore: Doc

    Definition Classes
    PrettyPrinterBase
  155. def usageMessage: String

  156. def value(v: Any): Doc

    Definition Classes
    PrettyPrinterBase
  157. def vcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  158. def verticalbar: Doc

    Definition Classes
    PrettyPrinterBase
  159. def vsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  160. def vsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  161. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  162. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  163. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  164. val whiteSpace: Regex

    Attributes
    protected
    Definition Classes
    RegexParsers

Deprecated Value Members

  1. def product(p: Any): Doc

    Definition Classes
    PrettyPrinterBase
    Annotations
    @deprecated
    Deprecated

    (Since version 1.2.1) Use PrettyPrinter.any instead.

Inherited from PrettyPrinter

Inherited from PrettyPrinterBase

Inherited from Compiler[ModuleDecl]

Inherited from RegexCompiler[ModuleDecl]

Inherited from RegexParsers

Inherited from Parsers

Inherited from CompilerBase[ModuleDecl]

Inherited from AnyRef

Inherited from Any