Sat Apr 25 02:13:51 CEST 2009

basic parser

Is working.. Now to see if it can do the fancy stuff like locals.

The problem is: how to parameterize this?

It can't be done with just macros.  I.e. we need to get at the local
syntax value of the real identifiers after mapping to determine
whether it's a transformer that has to be called.  Is it enough to
have the mapping namespace parameterized?

Also, the representation of the dictionary which is passed between
macros should be abstract.  However, it might be enough to keep this
fixed at a list of 2 stacks.

Actually, the only real problem is to parse the flat code into
something which can easily be parsed with syntax-rules macros.

Now... Maybe the sos is enough.  This is what i get out of the new CPS
style rpn-parse

(define-syntax-rule (rpn: code ...)
  (rpn-parse (quote
              p-cons) code ...))

box> (rpn: 123 : abc 1 2 + : 100 -)
 (((name 100) (p-apply rpn/-))
  ((name abc) (p-cons 1) (p-cons 2) (p-apply rpn/+))
  ((p-cons 123))))

This is actually colorForth ;)