CLAW is an embryonic compiler from Core Erlang to Common Lisp. Core
Erlang is an intermediate language between Erlang and e.g. BEAM. It is
simple, quite close to Lisp, and is used internally by the standard
Erlang compiler. You can compile from Erlang to Core Erlang with

  erlc +dcore foo.erl

which generates "foo.core".

CLAW is just for fun.

core-parse.lisp defines the parser. The parsing actions are really
compilation steps, one for each syntactic construct, and are defined
in core-compiler.lisp. The files are split mainly because the parser
is a bit slow to compile.

The idea is to do part of the work with macros, and part in the
parser. Macros will define a few key constructs, like pattern
matching, and then the parser will generate readable and runnable lisp
code directly, using the new macros in the generated code.

-- luke@bluetail.com

