[<<][staapl][>>][..]
Sat Apr 25 17:53:24 CEST 2009

scat in terms of new rpn syntax

rpn-scat.ss is quite simple now
let's start taking out the entire old parser and work up from here.


I don't remember what rpn-wrap is about.  Taking out shift/reset.

(ns (scat) (define-syntax reset (rpn-wrap (expr) #`(reset-at scat-prompt #,expr))))
(ns (scat) (define-syntax shift (rpn-wrap (expr) #`(shift-at scat-prompt k #,((rpn-immediate) #'k expr)))))

For the rest it seems to work fine.

next is coma.

From macro-syntax.ss i don't know what this is about:

(define-sr (define-procedure name)
  (ns (macro) (define name
                (postponed-word 'name))))


now, looks like tscat: isn't so trivial.. let's see.

indeed.. What it does is to figure out whether a variable is locally
bound (i.e. not a module import or toplevel) and depending on this
will perform some action.

this is the worst kind of reflection there is.. how can this be
re-incorporated?

Hmm.. it's not so bad.  It's about the input of tscat: itself, not
some inside behaviour mod.  Can probably just be copied:

;; Operate on rpn code body, processing lexical and other variables.
(define (rpn-lex-mapper fn-lex [fn-no-lex (lambda (x) x)])
  (lambda (stx-lst)
    (map
     (lambda (stx)
       (if
        (and (identifier? stx)
             (lexical-binding? stx))
        (fn-lex stx)
        (fn-no-lex stx)))
     stx-lst)))




[Reply][About]
[<<][staapl][>>][..]