Trait

org.bitbucket.inkytonik.kiama.util

CompilerWithConfig

Related Doc: package util

Permalink

trait CompilerWithConfig[T, C <: Config] extends CompilerBase[T, C]

A compiler that uses Parsers to produce positioned ASTs. C is the type of the compiler configuration.

Source
Compiler.scala
Linear Supertypes
CompilerBase[T, C], Profiler, dsprofile.Profiler, Values, Messaging, PositionStore, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CompilerWithConfig
  2. CompilerBase
  3. Profiler
  4. Profiler
  5. Values
  6. Messaging
  7. PositionStore
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

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

    Permalink

    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

    Permalink

    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

    Permalink
    Definition Classes
    Values
  4. abstract class Step extends AnyRef

    Permalink

    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]): C

    Permalink

    Create the configuration for a particular run of the compiler.

    Create the configuration for a particular run of the compiler. Override this if you have a custom configuration for your compiler.

    Definition Classes
    CompilerBase
  2. abstract def format(ast: T): Document

    Permalink

    Format an abstract syntax tree for printing.

    Format an abstract syntax tree for printing. Default: return an empty document.

    Definition Classes
    CompilerBase
  3. abstract val parser: Parser[T]

    Permalink

    The particular parser used to parse this compiler's input.

  4. abstract val parsers: ParsersBase

    Permalink

    The suite of parsers that is used by this compiler.

  5. abstract def process(source: Source, ast: T, config: C): Unit

    Permalink

    Function to process the input that was parsed.

    Function to process the input that was parsed. source is the input text processed by the compiler. ast is the abstract syntax tree produced by the parser from that text. config provides access to all aspects of the configuration.

    Definition Classes
    CompilerBase

Concrete Value Members

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

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. object Next extends Step with Product with Serializable

    Permalink

    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

    Permalink

    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

    Permalink

    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

    Permalink

    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

    Permalink

    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

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

    Permalink
    Definition Classes
    Values
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def column(message: Message): Option[Int]

    Permalink

    Return the optional column number of a message.

    Return the optional column number of a message.

    Definition Classes
    Messaging
  13. def createAndInitConfig(args: Seq[String]): C

    Permalink

    Create and initialise the configuration for a particular run of the compiler.

    Create and initialise the configuration for a particular run of the compiler. Default: call createConfig and then initialise the resulting configuration.

    Definition Classes
    CompilerBase
  14. def dimValue(record: Record, dim: Dimension): Value

    Permalink

    Support Kiama-specific profiling dimensions.

    Support Kiama-specific profiling dimensions.

    Definition Classes
    Profiler → Profiler → Values
  15. def driver(args: Seq[String]): Unit

    Permalink

    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.

    Definition Classes
    CompilerBase
  16. def encoding: String

    Permalink

    The character encoding of input files read by this compiler.

    The character encoding of input files read by this compiler. Defaults to UTF-8.

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

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

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

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

    Permalink
    Definition Classes
    Values
  21. def formatMessage(message: Message): String

    Permalink

    Format the message for reporting as a line containing the position and label, the input text line and line(s) containing the context of the position.

    Format the message for reporting as a line containing the position and label, the input text line and line(s) containing the context of the position. If no position is associated with this message just format as a line containing the label.

    Definition Classes
    Messaging
  22. def formatMessages(messages: Messages): String

    Permalink

    Return a string containing all the given messages sorted and formatted.

    Return a string containing all the given messages sorted and formatted.

    Definition Classes
    Messaging
  23. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  25. def includeTimings: Boolean

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

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

    Permalink
    Definition Classes
    Any
  28. def line(message: Message): Option[Int]

    Permalink

    Return the optional line number of a message.

    Return the optional line number of a message.

    Definition Classes
    Messaging
  29. def main(args: Array[String]): Unit

    Permalink

    The entry point for this compiler.

    The entry point for this compiler.

    Definition Classes
    CompilerBase
  30. def makeast(source: Source, config: C): Either[T, Messages]

    Permalink

    Make an AST by running the parser on the given source, returning messages instead if the parse fails.

    Make an AST by running the parser on the given source, returning messages instead if the parse fails.

    Definition Classes
    CompilerWithConfigCompilerBase
  31. implicit object messageOrdering extends Ordering[Message]

    Permalink

    An ordering on messages that prioritises line over column.

    An ordering on messages that prioritises line over column.

    Definition Classes
    Messaging
  32. def nanoToMs(nano: Long): Long

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

    Permalink
    Definition Classes
    AnyRef
  34. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  35. final def notifyAll(): Unit

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

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

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

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

    Permalink
    Definition Classes
    Profiler
  40. def positionOf(message: Message): Option[Position]

    Permalink

    A message's starting position as determined from the starting position of the message's value.

    A message's starting position as determined from the starting position of the message's value. Will be None if the value has no position.

    Definition Classes
    Messaging
  41. val positions: Positions

    Permalink
    Definition Classes
    PositionStore
  42. def printDependencyGraph(record: Record, dim: Dimension): Unit

    Permalink

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

    Permalink
    Definition Classes
    Profiler
  44. var printTables: Boolean

    Permalink
    Definition Classes
    Values
  45. def processfile(filename: String, config: C): Unit

    Permalink

    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.

    Definition Classes
    CompilerBase
  46. def processfiles(config: C): Unit

    Permalink

    Process the files one by one.

    Process the files one by one.

    Definition Classes
    CompilerBase
  47. def profile[T](computation: ⇒ T, dimensionNames: Seq[Dimension], logging: Boolean): T

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

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

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

    Permalink
    Definition Classes
    Profiler
  51. def profileStopInteractive(): Unit

    Permalink
    Definition Classes
    Profiler
  52. def report(messages: Messages, emitter: Emitter = new OutputEmitter): Unit

    Permalink

    Output the messages in order of position using the given emitter, which defaults to terminal output.

    Output the messages in order of position using the given emitter, which defaults to terminal output.

    Definition Classes
    Messaging
  53. def startReport(dimensionNames: Seq[Dimension]): Unit

    Permalink

    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
  54. var startTime: Long

    Permalink
    Definition Classes
    Profiler
  55. def summariseAlongDims(dimensionNames: Seq[Dimension], records: List[Record], nrecords: Int, profiledTime: Long): Unit

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

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

    Permalink
    Definition Classes
    Profiler
  58. def toString(): String

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

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

    Permalink
    Definition Classes
    Values
  61. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from CompilerBase[T, C]

Inherited from Profiler

Inherited from dsprofile.Profiler

Inherited from Values

Inherited from Messaging

Inherited from PositionStore

Inherited from AnyRef

Inherited from Any

Ungrouped