|
|
1.1 ! root 1: (setsyntax '";" 'splicing 'zapline) ! 2: (setq **backquote** 1) ! 3: ! 4: (setsyntax '"`" 'macro '(lambda nil ! 5: (back=quotify ((lambda (**backquote**) (read)) ! 6: (add1 **backquote**))))) ! 7: ! 8: (setsyntax '"," 'macro '(lambda nil ! 9: ((lambda (**backquote**) ! 10: (cond ((zerop **backquote**) ! 11: (break '"comma not inside a backquote.")) ! 12: ((equal (tyipeek) 64) ! 13: (tyi) ! 14: (cons '",@" (read))) ! 15: (t (cons '"," (read))))) ! 16: (sub1 **backquote**] ! 17: ! 18: (def back=quotify ! 19: (lambda (x) ! 20: ((lambda (a d aa ad dqp) ! 21: (cond ((atom x) (list 'quote x)) ! 22: ((eq (car x) '",") (cdr x)) ! 23: ((or (atom (car x)) ! 24: (not (memq (caar x) '( ",@" ",.")))) ! 25: (setq a (back=quotify (car x)) d (back=quotify (cdr x)) ! 26: ad (atom d) aa (atom a) ! 27: dqp (and (not ad) (eq (car d) 'quote))) ! 28: (cond ((and dqp (not (atom a)) (eq (car a) 'quote)) ! 29: (list 'quote (cons (cadr a) (cadr d)))) ! 30: ((and dqp (null (cadr d))) ! 31: (list 'list a)) ! 32: ((and (not ad) (eq (car d) 'list)) ! 33: (cons 'list (cons a (cdr d)))) ! 34: (t (list 'cons a d)))) ! 35: ((eq (caar x) '",@") ! 36: (list 'append (cdar x) (back=quotify (cdr x)))) ! 37: ((eq (caar x) '",.") ! 38: (list 'nconc (cdar x)(back=quotify (cdr x)))) ! 39: )) ! 40: nil nil nil nil nil)))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.