Specialisation of CompilerWithConfig
that uses the default configuration
type.
Trait to provide basic functionality for a compiler-like program constructed from phases, including profiling and timing support.
A compiler that uses RegexParsers to produce Attributable ASTs.
A compiler that uses RegexParsers to produce Attributable ASTs. The AST
is initialised with initTree
by process
. Override it and call it
before performing specific attribution. C
is the type of the compiler
configuration.
Configurations for Kiama programs.
Configurations for Kiama programs. args
gives the command-line
arguments that are used to determine many of the configuration
settings. The emitters allow the output and errors targets to be
altered for testing. output
defaults to
emitter
allows the output target to be altered for
purposes such as testing; it defaults to standard output.
A console using which input data can be read from standard input.
Thread-safe counters.
Thread-safe counters. This class provides an operation that can be used to generate a sequence of integer values. Instances of this class are useful for generating things like unique names for generated entities. The methods synchronize on the counter value so they can be called safely from more than one thread.
init
is the initial value of the counter (default: -1).
Class of objects that can emit text.
An entity that represents some program object.
General implementation of environments as stacked scopes.
General implementation of environments as stacked scopes. The objects associated with names in environments are of type Entity.
Class of objects that can emit arbitrary error-like text such as program errors, warnings or log messages.
Class of objects that can emit arbitrary error-like text such as program
errors, warnings or log messages. The messages are sent to standard error.
Use an OutputEmitter
if you just want to output normal program output.
An entity that represents an error situation.
An entity that represents an error situation. These entities are usually accepted in most situations to avoid cascade errors.
A console that reads from the given UTF-8 encoded file.
A string emitter that also provides a close
method to send the
result to the named UTF-8 encoded file.
Support for memoisation, encapsulating common behaviour of memoised entities and a general reset mechanism for all such entities.
A message record consisting of a position and a label string.
A message record consisting of a position and a label string. If the
position is not specified, it defaults to NoPosition
.
A entity represented by names for whom we have seen more than one declaration so we are unsure what is being represented.
Class of objects that can emit arbitrary output.
Class of objects that can emit arbitrary output. The output is sent
to standard output. Use an ErrorEmitter
if your output is signalling
errors, warnings, log messages or similar.
Useful utilities for defining regular expression packrat parsers.
A REPL that parses its input lines into a value (such as an abstract syntax tree), then processes them.
A REPL that parses its input lines into a value (such as an abstract syntax tree), then processes them. Output is emitted to standard output.
A REPL that parses its input lines into a value (such as an abstract syntax tree), then processes them.
A REPL that parses its input lines into a value (such as an abstract syntax tree), then processes them. Output is emitted using a configurable emitter.
A REPL that parses its input lines into a value (such as an abstract syntax tree), then processes them.
A REPL that parses its input lines into a value (such as an abstract syntax
tree), then processes them. C
is the type of the configuration.
An extension of ParserUtilities
that has support for automatically
tracking start and finish positions for tree nodes.
Kiama-specific additions to dsprofile
profilers.
General support for applications that implement read-eval-print loops (REPLs).
General support for applications that implement read-eval-print loops (REPLs).
Configurations for Kiama REPLS.
Configurations for Kiama REPLS. Adds some options to the default set that all Kiama programs support.
A console that reads from a given buffered reader.
A console that returns from a specified string.
An emitter that records the output in a string that can be accessed via the result method.
General behaviour for tree nodes.
General behaviour for tree nodes. Case classes that implement actual tree node types should mix-in this trait.
An unknown entity, for example one that is represened by names whose declarations are missing.
A simple set that holds onto its elements weakly and compares them by identity.
Support for defining the form of whitespace using a parser, rather than a regular expression.
Support for defining the form of whitespace using a parser, rather than a regular expression. This version is useful particularly in cases where the form of comments requires more power than a regular expression can provide (e.g., for nested comments).
Combination of positioned parsing utilities and whitespace handling with a parser.
Compatibility interface so variances between Scala 2.10 and 2.11 can be accommodated in the same client code.
Compatibility interface so variances between Scala 2.10 and 2.11 can be accommodated in the same client code. This class is deprecated so that warnings about 2.10 things that are deprecated in 2.11 are hidden. Do not use this class directly, but import from its companion object so that the deprecation warnings will be suppressed.
(Since version 2.11) You should never see this message
Utility module for comparison routines.
Object by which to access the compatibility interface.
Object by which to access the compatibility interface. We don't just put the compatibility definitions in this object because using a class and companion object suppresses deprecation warnings.
Utility wrapper for I/O to isolate Kiama code from some Java I/O details.
Utility wrapper for I/O to isolate Kiama code from some Java I/O details. Ultimately this will be replaced by code using the new scala.io.
A console that provides line editing using JLine.
A console that provides line editing using JLine. This code follows sbt's equivalent code to try to ensure that there are no incompatibilities.
Facility for building messages associated with positioned values.
Patterns that are useful when processing trees.
Record of source positions that correspond to program elements.
Trampolines.
Trampolines. Useful for converting stack-heavy operations into heap-based ones and thereby avoiding stack overflow.
Based on code from "Stackless Scala With Free Monads", Runar Oli Bjarnason.
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.