Fri May 16 16:18:48 CEST 2008
compiler state update
state is growing larger so pattern matching isn't the best way of
updating it. maybe best to use local mutation: copy the state on
entry + perform imperative update.
hmm.. that looks even more ugly due to long names and explicit get/set
this just needs to be factored.
ok, with some factoring (struct dict) it's all a bit more readable:
compilation generates a list of list of (word code) inside a dict
struct, which will be collected into a list of head words that have
the code fallthrough structure recorded.
next: the 'org' operations + fallthrough disconnect on jumps.