org.kiama.util

CompilerBase

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
Linear Supertypes
Profiler, bitbucket.inkytonik.dsprofile.Profiler, Values, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CompilerBase
  2. Profiler
  3. Profiler
  4. Values
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. case class Child(i: Int) extends Step with Product with Serializable

    A step to child i of the current node, counting from zero.

    A step to child i of the current node, counting from zero.

    Definition Classes
    Profiler
  2. case class Dep(step: Step, tipe: Value, attribute: Value) extends Product with Serializable

    Dependence record saying that the source attribute depends on attribute of a node with type type that is the given step away.

    Dependence record saying that the source attribute depends on attribute of a node with type type that is the given step away.

    Definition Classes
    Profiler
  3. case class Record extends Product with Serializable

    Definition Classes
    Values
  4. 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

  1. 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 emitter instead of a standard output emitter.

  2. 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. Returns Right with an error message if an AST cannot be made. config provides access to all aspects of the configuration.

Concrete Value Members

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

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Definition Classes
    AnyRef → Any
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  10. def checkFor(record: Record, dim: Dimension, eventtype: String, needed: Dimension)(f: (Value) ⇒ Value): Value

    Definition Classes
    Values
  11. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def dimValue(record: Record, dim: Dimension): Value

    Support Kiama-specific profiling dimensions.

    Support Kiama-specific profiling dimensions.

    Definition Classes
    Profiler → Profiler → Values
  13. 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.

  14. 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.

  15. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  17. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. def finishReport(): Unit

    Definition Classes
    Values
  19. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  20. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  21. def includeTimings: Boolean

    Definition Classes
    Profiler
  22. def isEventType(record: Record, eventtype: String): Boolean

    Definition Classes
    Values
  23. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  24. def main(args: Array[String]): Unit

    The entry point for this compiler.

  25. def nanoToMs(nano: Long): Long

    Definition Classes
    Profiler
  26. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  27. final def notify(): Unit

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

    Definition Classes
    AnyRef
  29. def output(str: String): Unit

    Definition Classes
    Values
  30. def outputln(str: String): Unit

    Definition Classes
    Values
  31. def parseProfileOption(value: String): Seq[Dimension]

    Definition Classes
    Profiler
  32. def percent(v: Long, total: Long): String

    Definition Classes
    Profiler
  33. def prettyprint(ast: T): String

    Pretty-print an abstract syntax trees.

    Pretty-print an abstract syntax trees. Default: return an empty string.

  34. 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
  35. def printReports(totalTime: Long, dimensionNames: Seq[Dimension], records: List[Record]): Unit

    Definition Classes
    Profiler
  36. var printTables: Boolean

    Definition Classes
    Values
  37. 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. filename is the name of the file from which the input came. ast is the abstract syntax tree produced by the parser from that file. config provides access to all aspects of the configuration. The default implmentation does nothing.

  38. def processfile(filename: String, config: C): Unit

    Process a file argument by using makeast to 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 makeast to 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 the encoding method.

  39. def processfiles(filenames: Seq[String], config: C): Unit

    Process the files one by one.

  40. def profile[T](computation: ⇒ T, dimensionNames: Seq[Dimension], logging: Boolean): T

    Definition Classes
    Profiler
  41. def profileStart(logging: Boolean): Unit

    Definition Classes
    Profiler
  42. def profileStop(): (Seq[Dimension]) ⇒ Unit

    Definition Classes
    Profiler
  43. def profileStop(dimensionNames: Seq[Dimension]): Unit

    Definition Classes
    Profiler
  44. def profileStopInteractive(): Unit

    Definition Classes
    Profiler
  45. 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
  46. var startTime: Long

    Definition Classes
    Profiler
  47. 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
  48. def summariseAlongDims(dimensionNames: Seq[Dimension], records: List[Record], nrecords: Int, profiledTime: Long): Unit

    Definition Classes
    Profiler
  49. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  50. def time[T](computation: ⇒ T, warmup: Int, n: Int, discard: Int): Unit

    Definition Classes
    Profiler
  51. def toString(): String

    Definition Classes
    AnyRef → Any
  52. def trace(predicate: (Event) ⇒ Boolean): Unit

    Definition Classes
    Profiler
  53. def valueToString(a: Value): String

    Definition Classes
    Values
  54. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Profiler

Inherited from bitbucket.inkytonik.dsprofile.Profiler

Inherited from Values

Inherited from AnyRef

Inherited from Any

Ungrouped