diff options
author | dos-reis <gdr@axiomatics.org> | 2007-12-08 20:52:48 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-12-08 20:52:48 +0000 |
commit | 8bd29deee2d75510dc62408582ac8449df93a166 (patch) | |
tree | cfa9c528b1a66a1a4ae8295c967427ebef4feca0 /src/interp/i-intern.boot | |
parent | 8b3133a5015424ab3b0b90ecc0fb606be000aa2a (diff) | |
download | open-axiom-8bd29deee2d75510dc62408582ac8449df93a166.tar.gz |
Add support for quasiquotation.
* compiler.boot (compileQuasiquote): New function.
* fnewmeta.lisp (|PARSE-Enclosure|): Parse quasiquotes too.
* i-intern.boot (mkAtree3): Don't evaluate arguments to
quasiquote.
* i-spec1.boot ($specialOps): Register [||].
(up[||]): Handle quasiquotes.
* newaux.lisp: Register `[|' and `|]' as new glyphs.
* pf2sex.boot ($insideApplication): Now count the nesting level of
application forms.
($insideQuasiquote): New. Count nesting level of quasiquotes.
(pfFinishApplication): Ensure application form nesting level is
properly decreased.
(pfApplication2Sex): Use it.
(pfQuasiquotation2Sex): Transform quasiquote forms.
(pf2Sex1): Use it.
* sys-constants.boot ($Syntax): New.
Diffstat (limited to 'src/interp/i-intern.boot')
-rw-r--r-- | src/interp/i-intern.boot | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/interp/i-intern.boot b/src/interp/i-intern.boot index 37d8d72d..e58821c1 100644 --- a/src/interp/i-intern.boot +++ b/src/interp/i-intern.boot @@ -249,6 +249,7 @@ mkAtree3(x,op,argl) == r := [[first types,:at],:r'] [mkAtreeNode 'DEF,[[op,:v.0],:r],if v.2 then v.2 else true,false] [mkAtreeNode 'DEF,[a,:r],true,false] + op="[||]" => [mkAtreeNode op, :argl] --x is ['when,y,pred] => -- y isnt ['DEF,a,:r] => -- keyedSystemError("S2II0003",['"when",y,'"improper argument form"]) |