release 0.4
Wednesday, 1. November 2006, 20:40:23
This release includes a fresh new parser that can accept both vanilla and canonical input (and a lot more).
The first noticable additions is that the output of the interpreter can be put in several modes (thanks to Stevan Apter). The default mode is without tracing and with simple syntax.
The following example shows that the parser can accept the inter-mixing of vanilla, keyword and canonical syntax:
> [()()] [();()] [cat;*;div;divide]
2 3 [+;*;/;/]
Slightly the same example but now with tracing and medium verbosity:
> \otm [()()] [();()] [cat;*;div;divide] !
0: 2 3 [cat;mul;div;div] lft
1: 2 3 cat mul div div
2: 5 mul div div
You can persistently set tracing (or any other mode) if you don't posfix the mode with an expression.
> \ot (o)utput (t)racing
> \ovt (o)utput (v)erbose (t)racing
> \om (o)utput (m)edium-verbosity
> \ost (o)utput (s)tandard (t)racing
If you want to see what are the possible symbols, keywords etc, you just create syntactical nonsense, giving you all possibilities:
> (
org.enchilada.v0_4.impl.io.ParseException: Encountered "(" at line 1, column 1.
Was expecting one of:
<EOF>
"[" ...
<NUM> ...
"\n" ...
"\\o" ...
"_" ...
etc, etc, etc
The new release also (slightly) redefines multiplication and division so that is it more in line with the Cartesian product. I've updated the documentation accordingly, together with the discussion of negative signed lists.
If you want to run the latest version please download the jar.
Then run the following command-line:
java -cp enchilada_v0_4.jar org.enchilada.v0_4.impl.Test2







