org.kiama.example.dataflow

Driver

class Driver extends Parser with Compiler[Stm]

Parse a simple imperative language program, calculate its dataflow relations and use them to remove dead assignments.

Linear Supertypes
Compiler[Stm], RegexCompiler[Stm], CompilerBase[Stm], Parser, PositionedParserUtilities, ParserUtilities, PackratParsers, RegexParsers, Parsers, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Driver
  2. Compiler
  3. RegexCompiler
  4. CompilerBase
  5. Parser
  6. PositionedParserUtilities
  7. ParserUtilities
  8. PackratParsers
  9. RegexParsers
  10. Parsers
  11. AnyRef
  12. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Driver()

Type Members

  1. type Elem = Char

    Definition Classes
    RegexParsers → Parsers
  2. type Input = Reader[Elem]

    Definition Classes
    Parsers
  3. abstract type _$4

    Definition Classes
    PackratParsers
  4. abstract type _$4

    Definition Classes
    PackratParsers
  5. abstract type _$4

    Definition Classes
    PackratParsers
  6. abstract type _$5

    Definition Classes
    PackratParsers
  7. abstract type _$5

    Definition Classes
    PackratParsers
  8. abstract type _$5

    Definition Classes
    PackratParsers
  9. abstract type _$6

    Definition Classes
    PackratParsers
  10. abstract type _$6

    Definition Classes
    PackratParsers
  11. abstract type _$6

    Definition Classes
    PackratParsers
  12. abstract type _$7

    Definition Classes
    PackratParsers
  13. abstract type _$7

    Definition Classes
    PackratParsers
  14. abstract type _$7

    Definition Classes
    PackratParsers
  15. abstract type _$8

    Definition Classes
    PackratParsers
  16. abstract type _$8

    Definition Classes
    PackratParsers
  17. abstract type _$8

    Definition Classes
    PackratParsers
  18. abstract type _$9

    Definition Classes
    PackratParsers
  19. abstract type _$9

    Definition Classes
    PackratParsers
  20. abstract type _$9

    Definition Classes
    PackratParsers

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
    PositionedParserUtilities → Parsers
  7. def Parser[T](f: (Input) ⇒ ParseResult[T]): Parser[T]

    Definition Classes
    PositionedParserUtilities → 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 any: PackratParser[Char]

    Definition Classes
    ParserUtilities
  15. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  16. lazy val asgnStm: Parser[Assign]

    Definition Classes
    Parser
  17. lazy val blockStm: Parser[Block]

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

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

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

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

    Definition Classes
    CompilerBase
  22. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  23. def commit[T](p: ⇒ Parser[T]): Parser[T]

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

    Definition Classes
    CompilerBase
  25. implicit def constToTupleFunction2[A, B, R](r: (A, B) ⇒ R): (~[A, B]) ⇒ R

    Definition Classes
    ParserUtilities
  26. implicit def constToTupleFunction3[A, B, C, R](r: (A, B, C) ⇒ R): (~[~[A, B], C]) ⇒ R

    Definition Classes
    ParserUtilities
  27. implicit def constToTupleFunction4[A, B, C, D, R](r: (A, B, C, D) ⇒ R): (~[~[~[A, B], C], D]) ⇒ R

    Definition Classes
    ParserUtilities
  28. implicit def constToTupleFunction5[A, B, C, D, E, R](r: (A, B, C, D, E) ⇒ R): (~[~[~[~[A, B], C], D], E]) ⇒ R

    Definition Classes
    ParserUtilities
  29. implicit def constToTupleFunction6[A, B, C, D, E, F, R](r: (A, B, C, D, E, F) ⇒ R): (~[~[~[~[~[A, B], C], D], E], F]) ⇒ R

    Definition Classes
    ParserUtilities
  30. lazy val constrainedInt: PackratParser[Int]

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

    Definition Classes
    CompilerBase
  32. def elem(e: Elem): Parser[Elem]

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

    Definition Classes
    Parsers
  34. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  35. def equals(arg0: Any): Boolean

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

    Definition Classes
    ParserUtilities → Parsers
  37. lazy val exp: Parser[String]

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

    Definition Classes
    ParserUtilities → Parsers
  39. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  40. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  41. def guard[T](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    Parsers
  42. def handleWhiteSpace(in: Input): Int

    Definition Classes
    ParserUtilities
  43. def handleWhiteSpace(source: CharSequence, offset: Int): Int

    Attributes
    protected
    Definition Classes
    RegexParsers
  44. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  45. lazy val idn: Parser[String]

    Definition Classes
    Parser
  46. lazy val ifStm: Parser[If]

    Definition Classes
    Parser
  47. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  48. lazy val keyword: Parser[String]

    Definition Classes
    Parser
  49. var lastNoSuccess: NoSuccess

    Definition Classes
    Parsers
  50. implicit def literal(s: String): Parser[String]

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

    Definition Classes
    Parsers
  52. def main(args: Array[String]): Unit

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

    Definition Classes
    RegexCompiler → CompilerBase
  54. def memo[T](p: Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers
  55. def mkList[T]: (~[T, List[T]]) ⇒ List[T]

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

    Definition Classes
    AnyRef
  57. def not[T](p: ⇒ Parser[T]): Parser[Unit]

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

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

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

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

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

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

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

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

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

    Definition Classes
    RegexParsers
  67. def parseAndPosition[T](f: (Input) ⇒ ParseResult[T], in: Input): ParseResult[T]

    Definition Classes
    PositionedParserUtilities
  68. implicit def parseResultToTuple2[A, B](p: Parser[~[A, B]]): PackratParser[(A, B)]

    Definition Classes
    ParserUtilities
  69. implicit def parseResultToTuple3[A, B, C](p: Parser[~[~[A, B], C]]): PackratParser[(A, B, C)]

    Definition Classes
    ParserUtilities
  70. implicit def parseResultToTuple4[A, B, C, D](p: Parser[~[~[~[A, B], C], D]]): PackratParser[(A, B, C, D)]

    Definition Classes
    ParserUtilities
  71. implicit def parseResultToTuple5[A, B, C, D, E](p: Parser[~[~[~[~[A, B], C], D], E]]): PackratParser[(A, B, C, D, E)]

    Definition Classes
    ParserUtilities
  72. implicit def parseResultToTuple6[A, B, C, D, E, F](p: Parser[~[~[~[~[~[A, B], C], D], E], F]]): PackratParser[(A, B, C, D, E, F)]

    Definition Classes
    ParserUtilities
  73. def parseString[T](parser: Parser[T], str: String): Either[T, String]

    Definition Classes
    ParserUtilities
  74. lazy val parser: PackratParser[Stm]

    Definition Classes
    Parser
  75. implicit def parser2packrat[T](p: ⇒ Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers
  76. def phrase[T](p: Parser[T]): PackratParser[T]

    Definition Classes
    PackratParsers → Parsers
  77. def positioned[T <: Positional](p: ⇒ Parser[T]): Parser[T]

    Definition Classes
    RegexParsers → Parsers
  78. def process(ast: Stm, console: Console, emitter: Emitter): Boolean

    Process the AST by optimising it, then print optimised AST.

    Process the AST by optimising it, then print optimised AST.

    Definition Classes
    Driver → Compiler → CompilerBase
  79. implicit def regex(r: Regex): Parser[String]

    Definition Classes
    RegexParsers
  80. def regexnows(r: Regex): Parser[String]

    Definition Classes
    ParserUtilities
  81. def rep[T](p: ⇒ Parser[T]): Parser[List[T]]

    Definition Classes
    Parsers
  82. 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.

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

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

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

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

    Definition Classes
    Parsers
  87. def result[T](v: ⇒ T): Parser[T]

    Definition Classes
    ParserUtilities
  88. lazy val returnStm: Parser[Return]

    Definition Classes
    Parser
  89. def skipWhitespace: Boolean

    Definition Classes
    RegexParsers
  90. lazy val stm: PackratParser[Stm]

    Definition Classes
    Parser
  91. def stringToInt(s: String): Either[Int, String]

    Definition Classes
    ParserUtilities
  92. def success[T](v: T): Parser[T]

    Definition Classes
    Parsers
  93. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  94. def toString(): String

    Definition Classes
    AnyRef → Any
  95. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()
  98. lazy val whileStm: Parser[While]

    Definition Classes
    Parser
  99. val whiteSpace: Regex

    Attributes
    protected
    Definition Classes
    RegexParsers
  100. def wrap[T, U](p: ⇒ Parser[T], f: (T) ⇒ Either[U, String]): Parser[U]

    Definition Classes
    ParserUtilities

Inherited from Compiler[Stm]

Inherited from RegexCompiler[Stm]

Inherited from CompilerBase[Stm]

Inherited from Parser

Inherited from PositionedParserUtilities

Inherited from ParserUtilities

Inherited from PackratParsers

Inherited from RegexParsers

Inherited from Parsers

Inherited from AnyRef

Inherited from Any