Sun May 18 23:27:34 CEST 2008

i need this to be done

I'm a bit fed up with mucking about in the low level architecture.
Apparently, a sane combination between high level constructs
(i.e. code graphs) and low level features such as fallthrough make
things complicated, and lead to some tough choices. Anyways, it does
look like I'm at some kind of end point with this. It's still quite
elegant and powerful.

One point needs some more exercise: construction of anonymous
macros. This probably needs a move to a lazy architecture for macro

Maybe instead of concentrating on for .. next and dynamic macro
creation, i should really concentrate on static anonymous macro defs

The words [ and ] are not used yet. Let's turn them into static
anonymous macro creators.

EDIT: see, it's getting big before it's documented. this facility is
already there, but using the s-expression syntax:

box> (macro:: 1 2 (3 4 5) run 6)
(qw 1)
(qw 2)
(qw 3)
(qw 4)
(qw 5)
(qw 6)

ok, that was straightforward: (forth/forth-tx.ss)

(define (open-paren-tx code exp)
  (let-values (((code+ rep)
                ((rpn-represent) (stx-cdr code))))
    ((rpn-next) code+
     ((rpn-immediate) rep exp))))

(define (close-paren-tx code exp)
  (values (stx-cdr code) exp))

NOTE: this opens the road for a lot of functions expressed as hof,
i.e. ifte.