Initial commit for CSEM
CSE Machine in progress:
1. ST -> delta conversion done.
2. Bugfix for LAMBDA node creation.
CSEM in progress. Laying down more plumbing.
CSEM in progress:
1. Changed parser to not store single quote characters of strings
2. A lot more plumbing laid down for program evaluation. The most basic program 'Print (Stem 'abc')' now evaluates successfully.
CSE in progress:
1. Conc and ItoS done.
2. Created new driver P2 for this project and reverted P1.java to last release version.
All integer, string and truth value ops done.
Forgot to implement 'neg' for integers. Done.
Null, Order and Tau done.
Aug done. This completes all tuple functions.
Tuple selection done.
Conditional evaluation done.
Bugfix for conditionals. Delta single-var bindings done.
N-ary delta bindings done.
Adding executable script for p2.
Fixing makefile build order.
Bugfix: interpreter only prints a value if Print was actually called.
Simplified Delta structure, moved to full recursion during evaluation.
Bugfix for n-ary lambda bindings. An n-ary lambda binding MUST be mapped
to a tuple.
Adding indexes to Deltas.
Numerous bugfixes:
1. Delta does not carry around the new environment any longer. It only has
a link to the environment in effect when it was first pushed on to the
value stack. Instead, the new environment is passed around as parameter
arguments in more functional style.
2. The control stack used by the CSE machine is a copy of the one
contained in delta bodies. Thus, delta stacks remain untouched in case the
delta needs to be reused.