aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-intern.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-12-08 20:52:48 +0000
committerdos-reis <gdr@axiomatics.org>2007-12-08 20:52:48 +0000
commit8bd29deee2d75510dc62408582ac8449df93a166 (patch)
treecfa9c528b1a66a1a4ae8295c967427ebef4feca0 /src/interp/i-intern.boot
parent8b3133a5015424ab3b0b90ecc0fb606be000aa2a (diff)
downloadopen-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.boot1
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"])