Kiama is a Scala library for language processing including attribute grammars, term rewriting, abstract state machines and pretty printing.
This is a maintenance release with only minor changes in functionality but splits the library into two pieces for publishing.
Kiama is now published as two separate libraries kiama
and kiama-extras
with the former containing just the core Kiama functionality and the latter containing extra support that is useful in many Kiama-based applications. At the moment, the kiama-extras
library contains the Compiler
, Config
, Console
and REPL
components that are useful for building command-line configurable compilers and read-eval-print loops, plus the Kiama examples. In the new scheme clients can depend on one or both of these libraries, depending on their needs. Previously you got the extras (and their dependencies) whether you wanted them or not.
Output
: To match standard code formatting styles, the seq
pretty-printer now doesn’t include a space after the prefix. E.g., what was previously printed as Seq (1, 2, 3)
will now be printed as Seq(1, 2, 3)
. This change is also visible via the pretty-printers any
and list
which are defined in terms of seq
.
Rewriting
: The log
and logfail
strategies no longer have a default emitter argument since default arguments are not allowed on macro applications.
Util
: The compiler, REPL and test drivers now give a sensible message when the command-line is illegal, rather than crashing with an exception.
Util
: Separate Kiama suiteSourcePath
setting from that used by clients of test code. The Kiama test suites now use the KiamaTests
trait that sets suiteSourcePath
appropriately for Kiama. The Tests
suite now sets it to be suitable for clients who are using the default Scala project setup.