trait CompilerBase[T, C <: Config] extends Profiler
Trait to provide basic functionality for a compiler-like program
constructed from phases, including profiling and timing support.
T is the type of the syntax tree communicated from the parser
to the main processing of the compiler. C is the type of the
configuration.
- Source
- Compiler.scala
- Alphabetic
- By Inheritance
- CompilerBase
- Profiler
- Profiler
- Values
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
case class
Record extends Product with Serializable
- Definition Classes
- Values
-
case class
Child
(i: Int) extends Step with Product with Serializable
A step to child
iof the current node, counting from zero.A step to child
iof the current node, counting from zero.- Definition Classes
- Profiler
-
case class
Dep
(step: Step, tipe: Value, attribute: Value) extends Product with Serializable
Dependence record saying that the source attribute depends on
attributeof a node with typetypethat is the given step away.Dependence record saying that the source attribute depends on
attributeof a node with typetypethat is the given step away.- Definition Classes
- Profiler
-
abstract
class
Step
extends AnyRef
A single step in the evaluation of an attribute.
A single step in the evaluation of an attribute.
- Definition Classes
- Profiler
Abstract Value Members
-
abstract
def
createConfig(args: Seq[String], output: Emitter = new OutputEmitter, error: Emitter = new ErrorEmitter): C
Create the configuration for a particular run of the compiler.
Create the configuration for a particular run of the compiler. If supplied, use
emitterinstead of a standard output emitter. -
abstract
def
makeast(reader: Reader, filename: String, config: C): Either[T, String]
Make an AST from the file with the given name, returning it wrapped in
Left.Make an AST from the file with the given name, returning it wrapped in
Left. ReturnsRightwith an error message if an AST cannot be made.configprovides access to all aspects of the configuration.
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
checkFor(record: 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
dimValue(record: Record, dim: Dimension): Value
Support Kiama-specific profiling dimensions.
Support Kiama-specific profiling dimensions.
- Definition Classes
- Profiler → Profiler → Values
-
def
driver(args: Seq[String]): Unit
Driver for this compiler.
Driver for this compiler. First, use the argument list to create a configuration for this execution. Then, use the configuration to run the file processing in the appropriate way.
-
def
encoding: String
The character encoding of input files read by this compiler.
The character encoding of input files read by this compiler. Defaults to UTF-8.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
includeTimings: Boolean
- Definition Classes
- Profiler
-
def
isEventType(record: Record, eventtype: String): Boolean
- Definition Classes
- Values
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
main(args: Array[String]): Unit
The entry point for this compiler.
-
def
nanoToMs(nano: Long): Long
- Definition Classes
- Profiler
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
output(str: String): Unit
- Definition Classes
- Values
-
def
outputln(str: String): Unit
- Definition Classes
- Values
-
def
parseProfileOption(value: String): Seq[Dimension]
- Definition Classes
- Profiler
-
def
percent(v: Long, total: Long): String
- Definition Classes
- Profiler
-
def
prettyprint(ast: T): String
Pretty-print an abstract syntax trees.
Pretty-print an abstract syntax trees. Default: return an empty string.
-
def
printDependencyGraph(record: Record, dim: Dimension): Unit
Print the dependency graph for the attribute evaluation represented by
record.Print the dependency graph for the attribute evaluation represented by
record. The output is in dot form.- Definition Classes
- Profiler
-
def
printReports(totalTime: Long, dimensionNames: Seq[Dimension], records: List[Record]): Unit
- Definition Classes
- Profiler
-
val
printTables: Boolean
- Definition Classes
- Values
-
def
process(filename: String, ast: T, config: C): Unit
Function to process the input that was parsed.
Function to process the input that was parsed.
filenameis the name of the file from which the input came.astis the abstract syntax tree produced by the parser from that file.configprovides access to all aspects of the configuration. The default implmentation does nothing. -
def
processfile(filename: String, config: C): Unit
Process a file argument by using
makeastto turn their contents into abstract syntax trees (ASTs) and then by process which conducts arbitrary processing on the ASTs.Process a file argument by using
makeastto turn their contents into abstract syntax trees (ASTs) and then by process which conducts arbitrary processing on the ASTs. The character encoding of the files is given by theencodingmethod. -
def
processfiles(filenames: Seq[String], config: C): Unit
Process the files one by one.
-
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
-
def
startReport(dimensionNames: Seq[Dimension]): Unit
Take any actions that need to be done at the start of reporting.
Take any actions that need to be done at the start of reporting.
- Definition Classes
- Profiler → Values
-
val
startTime: Long
- Definition Classes
- Profiler
-
def
subjectsToStep(src: Any, dst: Any): Step
Summarise the single step between two nodes at which attributes have been evaluated.
Summarise the single step between two nodes at which attributes have been evaluated.
- Definition Classes
- Profiler
-
def
summariseAlongDims(dimensionNames: Seq[Dimension], records: List[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( ... )
-
object
Next
extends Step with Product with Serializable
A step to the previous node in a sequence.
A step to the previous node in a sequence.
- Definition Classes
- Profiler
-
object
Other
extends Step with Product with Serializable
A step to a node that doesn't fit into any of the other categories.
A step to a node that doesn't fit into any of the other categories. This category will be used for nodes that were obtained as the result of reference attributes or as values that sit outside the main tree.
- Definition Classes
- Profiler
-
object
Parent
extends Step with Product with Serializable
A step to the parent of the current node.
A step to the parent of the current node.
- Definition Classes
- Profiler
-
object
Prev
extends Step with Product with Serializable
A step to the previous node in a sequence.
A step to the previous node in a sequence.
- Definition Classes
- Profiler
-
object
Self
extends Step with Product with Serializable
A step nowhere.
A step nowhere. I.e., the dependent attribute is evaluated at the current node.
- Definition Classes
- Profiler