This is LAC -- "Lua Aspectual Components" -- as described
in
"Combining Composition Styles in the Evolvable Language LAC"
(http://swt.cs.tu-berlin.de/~stephan/publications/index.html#ICSE01)
Of course you need the Lua executable (version >= 4.0) in your path.
(available from http://www.lua.org)
Please note, that this is a language experiment, rather than a production
language ;-)
The tests subdirectory contains a few examples that can be invoked as
lua lac.lua tests/
/test.lac
where is one of: CP, PubSub, data, expr.
CP: a direct implementation of a Composition Pattern which applies
the observer pattern to a simple library application.
PubSub: A variant of the observer pattern, which shows the alternatives
of using different connector types.
data: applying two different collaborations (access counting and locking)
to the same base class (a stack).
expr: separate modules for general traversal of composite structures,
binding thereof to a expression type hierarchie, and refinement
for pretty printing and evaluation.
mnm: "miles and more" example: abstract bonus-earning collaboration
with application to flight-booking (two levels: normal and VIP).
Also an abstract collaboration for automatic activation of a
context that may be associated with a specific base object.
See also the READMEs in the tests subdirectories.
A sophisticated script for transparent program start is not included,
so beware of paths to source files.
If you want to observe the weaving process, enable the weavelog function
in util.lua.
Last updated: 09.02.2002 by Stephan Herrmann