trait TransformingDriver extends FrontEndDriver with CompilerWithConfig[ModuleDecl, Oberon0Config]
A driver for an artefact that parses, pretty prints, performs semantic analysis and transforms.
- Self Type
- TransformingDriver with RegexParsers with SourcePrettyPrinter with SymbolTable with Analyser with Transformer
- Source
- Driver.scala
- Alphabetic
- By Inheritance
- TransformingDriver
- FrontEndDriver
- CompilerWithConfig
- RegexParsers
- Parsers
- CompilerBase
- Profiler
- Profiler
- Values
- Driver
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
case class
Child extends Step with Product with Serializable
- Definition Classes
- Profiler
-
case class
Dep extends Product with Serializable
- Definition Classes
- Profiler
-
type
Elem = Char
- Definition Classes
- RegexParsers → Parsers
-
case class
Error extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
case class
Failure extends NoSuccess with Product with Serializable
- Definition Classes
- Parsers
-
type
Input = Reader[(TransformingDriver.this)#Elem]
- Definition Classes
- Parsers
-
sealed abstract
class
NoSuccess extends ParseResult[Nothing]
- Definition Classes
- Parsers
-
trait
OnceParser[+T] extends Parser[T]
- Definition Classes
- Parsers
-
sealed abstract
class
ParseResult[+T] extends AnyRef
- Definition Classes
- Parsers
-
abstract
class
Parser[+T] extends (Input) ⇒ ParseResult[T]
- Definition Classes
- Parsers
-
case class
Record extends Product with Serializable
- Definition Classes
- Values
-
abstract
class
Step extends AnyRef
- Definition Classes
- Profiler
-
case class
Success[+T] extends ParseResult[T] with Product with Serializable
- Definition Classes
- Parsers
-
case class
~[+a, +b] extends Product with Serializable
- Definition Classes
- Parsers
Abstract Value Members
-
abstract
def
artefact: String
The name of this artefact.
The name of this artefact.
- Definition Classes
- Driver
-
abstract
def
parser: (TransformingDriver.this)#Parser[ModuleDecl]
- Definition Classes
- CompilerWithConfig
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
OnceParser[T](f: ((TransformingDriver.this)#Input) ⇒ (TransformingDriver.this)#ParseResult[T]): (TransformingDriver.this)#Parser[T] with (TransformingDriver.this)#OnceParser[T]
- Definition Classes
- Parsers
-
def
Parser[T](f: ((TransformingDriver.this)#Input) ⇒ (TransformingDriver.this)#ParseResult[T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
accept[U](expected: String, f: PartialFunction[(TransformingDriver.this)#Elem, U]): (TransformingDriver.this)#Parser[U]
- Definition Classes
- Parsers
-
def
accept[ES](es: ES)(implicit arg0: (ES) ⇒ List[(TransformingDriver.this)#Elem]): (TransformingDriver.this)#Parser[List[(TransformingDriver.this)#Elem]]
- Definition Classes
- Parsers
-
implicit
def
accept(e: (TransformingDriver.this)#Elem): (TransformingDriver.this)#Parser[(TransformingDriver.this)#Elem]
- Definition Classes
- Parsers
-
def
acceptIf(p: ((TransformingDriver.this)#Elem) ⇒ Boolean)(err: ((TransformingDriver.this)#Elem) ⇒ String): (TransformingDriver.this)#Parser[(TransformingDriver.this)#Elem]
- Definition Classes
- Parsers
-
def
acceptMatch[U](expected: String, f: PartialFunction[(TransformingDriver.this)#Elem, U]): (TransformingDriver.this)#Parser[U]
- Definition Classes
- Parsers
-
def
acceptSeq[ES](es: ES)(implicit arg0: (ES) ⇒ Iterable[(TransformingDriver.this)#Elem]): (TransformingDriver.this)#Parser[List[(TransformingDriver.this)#Elem]]
- Definition Classes
- Parsers
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
chainl1[T, U](first: ⇒ (TransformingDriver.this)#Parser[T], p: ⇒ (TransformingDriver.this)#Parser[U], q: ⇒ (TransformingDriver.this)#Parser[(T, U) ⇒ T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
chainl1[T](p: ⇒ (TransformingDriver.this)#Parser[T], q: ⇒ (TransformingDriver.this)#Parser[(T, T) ⇒ T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
chainr1[T, U](p: ⇒ (TransformingDriver.this)#Parser[T], q: ⇒ (TransformingDriver.this)#Parser[(T, U) ⇒ U], combine: (T, U) ⇒ U, first: U): (TransformingDriver.this)#Parser[U]
- Definition Classes
- Parsers
-
def
checkFor(record: (TransformingDriver.this)#Record, dim: Dimension, eventtype: String, needed: Dimension)(f: (Value) ⇒ Value): Value
- Definition Classes
- Values
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
commit[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
consumeast(ast: ModuleDecl, config: Oberon0Config): Unit
Consume the AST.
Consume the AST. For example, translate it to something else. By default, do nothing.
- Definition Classes
- FrontEndDriver
-
def
createConfig(args: Seq[String], output: Emitter = new OutputEmitter, error: Emitter = new ErrorEmitter): Oberon0Config
- Definition Classes
- FrontEndDriver → CompilerBase
-
def
dimValue(record: (TransformingDriver.this)#Record, dim: Dimension): Value
- Definition Classes
- Profiler → Profiler → Values
-
def
driver(args: Seq[String]): Unit
- Definition Classes
- CompilerBase
-
def
elem(e: (TransformingDriver.this)#Elem): (TransformingDriver.this)#Parser[(TransformingDriver.this)#Elem]
- Definition Classes
- Parsers
-
def
elem(kind: String, p: ((TransformingDriver.this)#Elem) ⇒ Boolean): (TransformingDriver.this)#Parser[(TransformingDriver.this)#Elem]
- Definition Classes
- Parsers
-
def
encoding: String
- Definition Classes
- CompilerBase
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
err(msg: String): (TransformingDriver.this)#Parser[Nothing]
- Definition Classes
- Parsers
-
def
failure(msg: String): (TransformingDriver.this)#Parser[Nothing]
- Definition Classes
- Parsers
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
finishReport(): Unit
- Definition Classes
- Values
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
guard[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
handleWhiteSpace(source: CharSequence, offset: Int): Int
- Attributes
- protected
- Definition Classes
- RegexParsers
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
includeTimings: Boolean
- Definition Classes
- Profiler
-
def
initialiseSemanticAnalysis: Unit
Perform initialisation of semantic analysis that is necessary before processing an AST.
Perform initialisation of semantic analysis that is necessary before processing an AST.
- Definition Classes
- Driver
-
def
isEventType(record: (TransformingDriver.this)#Record, eventtype: String): Boolean
- Definition Classes
- Values
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
implicit
def
literal(s: String): (TransformingDriver.this)#Parser[String]
- Definition Classes
- RegexParsers
-
def
log[T](p: ⇒ (TransformingDriver.this)#Parser[T])(name: String): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
main(args: Array[String]): Unit
- Definition Classes
- CompilerBase
-
def
makeast(reader: Reader, filename: String, config: Oberon0Config): Either[ModuleDecl, String]
- Definition Classes
- CompilerWithConfig → CompilerBase
-
def
mkList[T]: ((TransformingDriver.this)#~[T, List[T]]) ⇒ List[T]
- Definition Classes
- Parsers
-
def
nanoToMs(nano: Long): Long
- Definition Classes
- Profiler
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
not[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[Unit]
- Definition Classes
- Parsers
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
opt[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[Option[T]]
- Definition Classes
- Parsers
-
def
output(str: String): Unit
- Definition Classes
- Values
-
def
outputln(str: String): Unit
- Definition Classes
- Values
-
def
parse[T](p: (TransformingDriver.this)#Parser[T], in: Reader): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: (TransformingDriver.this)#Parser[T], in: CharSequence): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parse[T](p: (TransformingDriver.this)#Parser[T], in: Reader[Char]): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: (TransformingDriver.this)#Parser[T], in: CharSequence): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: (TransformingDriver.this)#Parser[T], in: Reader): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseAll[T](p: (TransformingDriver.this)#Parser[T], in: Reader[Char]): (TransformingDriver.this)#ParseResult[T]
- Definition Classes
- RegexParsers
-
def
parseProfileOption(value: String): Seq[Dimension]
- Definition Classes
- Profiler
-
def
percent(v: Long, total: Long): String
- Definition Classes
- Profiler
-
def
phrase[T](p: (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- RegexParsers → Parsers
-
def
positioned[T <: Positional](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[T]
- Definition Classes
- RegexParsers → Parsers
-
def
prettyprint(ast: ModuleDecl): String
- Definition Classes
- CompilerBase
-
def
printDependencyGraph(record: (TransformingDriver.this)#Record, dim: Dimension): Unit
- Definition Classes
- Profiler
-
def
printReports(totalTime: Long, dimensionNames: Seq[Dimension], records: List[(TransformingDriver.this)#Record]): Unit
- Definition Classes
- Profiler
-
val
printTables: Boolean
- Definition Classes
- Values
-
def
process(filename: String, ast: ModuleDecl, config: Oberon0Config): Unit
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
- FrontEndDriver → CompilerWithConfig → CompilerBase
-
def
processast(ast: ModuleDecl, config: Oberon0Config): ModuleDecl
Process the AST by transforming it.
Process the AST by transforming it. Then apply higher-level transformations.
- Definition Classes
- TransformingDriver → FrontEndDriver
-
def
processfile(filename: String, config: Oberon0Config): 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
- FrontEndDriver → CompilerBase
-
def
processfiles(filenames: Seq[String], config: Oberon0Config): Unit
- Definition Classes
- CompilerBase
-
def
profile[T](computation: ⇒ T, dimensionNames: Seq[Dimension], logging: Boolean): T
- Definition Classes
- Profiler
-
def
profileStart(logging: Boolean): Unit
- Definition Classes
- Profiler
-
def
profileStop(): (Seq[Dimension]) ⇒ Unit
- Definition Classes
- Profiler
-
def
profileStop(dimensionNames: Seq[Dimension]): Unit
- Definition Classes
- Profiler
-
def
profileStopInteractive(): Unit
- Definition Classes
- Profiler
-
implicit
def
regex(r: Regex): (TransformingDriver.this)#Parser[String]
- Definition Classes
- RegexParsers
-
def
rep[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
-
def
rep1[T](first: ⇒ (TransformingDriver.this)#Parser[T], p0: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
- Annotations
- @migration
- Migration
(Changed in version 2.9.0) The
p0call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.
-
def
rep1[T](p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
-
def
rep1sep[T](p: ⇒ (TransformingDriver.this)#Parser[T], q: ⇒ (TransformingDriver.this)#Parser[Any]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
-
def
repN[T](num: Int, p: ⇒ (TransformingDriver.this)#Parser[T]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
-
def
repsep[T](p: ⇒ (TransformingDriver.this)#Parser[T], q: ⇒ (TransformingDriver.this)#Parser[Any]): (TransformingDriver.this)#Parser[List[T]]
- Definition Classes
- Parsers
-
def
section(emitter: Emitter, name: String): Unit
Output a section heading so that the output can be split later.
Output a section heading so that the output can be split later.
- Definition Classes
- Driver
-
def
skipWhitespace: Boolean
- Definition Classes
- RegexParsers
-
def
startReport(dimensionNames: Seq[Dimension]): Unit
- Definition Classes
- Profiler → Values
-
val
startTime: Long
- Definition Classes
- Profiler
-
def
subjectsToStep(src: Any, dst: Any): (TransformingDriver.this)#Step
- Definition Classes
- Profiler
-
def
success[T](v: T): (TransformingDriver.this)#Parser[T]
- Definition Classes
- Parsers
-
def
summariseAlongDims(dimensionNames: Seq[Dimension], records: List[(TransformingDriver.this)#Record], nrecords: Int, profiledTime: Long): Unit
- Definition Classes
- Profiler
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
time[T](computation: ⇒ T, warmup: Int, n: Int, discard: Int): Unit
- Definition Classes
- Profiler
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
trace(predicate: (Event) ⇒ Boolean): Unit
- Definition Classes
- Profiler
-
def
valueToString(a: Value): String
- Definition Classes
- Values
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
val
whiteSpace: Regex
- Attributes
- protected
- Definition Classes
- RegexParsers