Thread-safe counters.
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 E
which must be a
subtype of the general Entity class.
A string emitter that also provides a close
method to send the
result to the named UTF-8 encoded file.
A source that is a named file.
A memoiser that can store arbitrary values of type U
under keys of
type T
.
A memoiser that can store arbitrary values of type U
under keys of
type T
. The behaviour of the memoiser can be adjusted by selecting
an appropriate type.
The types of memoiser that can be created.
A message record consisting of a value with which the message is associated, a label string, and a severity (which defaults to error).
General facility for processing messages relative to positioned values.
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.
Record of a source position at a particular line and column relative to a given source.
Record of a source position at a particular line and column relative to a given source. The line and column numbers are one-indexed.
Record of source positions that correspond to program elements.
A simple source of characters.
An emitter that records the output in a string that can be accessed via the result method.
A source that is a string.
A simple set that compares elements by identity.
Utility module for comparison routines.
Support code for handling filenames.
Utility wrapper for I/O to isolate Kiama code from some Java I/O details.
Identity-based key comparison.
Support for memoisers.
Shared definitions for all messaging.
The severities of a message.
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.
Value-based key comparison.
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).