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-spec1.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-spec1.boot')
-rw-r--r-- | src/interp/i-spec1.boot | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot index 6316a23f..0047f7f0 100644 --- a/src/interp/i-spec1.boot +++ b/src/interp/i-spec1.boot @@ -43,7 +43,8 @@ $anonymousMapCounter := 0 $specialOps := '( ADEF AlgExtension _and _case COERCE COLLECT construct Declare DEF Dollar equation error free has IF _is _isnt iterate _break LET _local MDEF _or - pretend QUOTE REDUCE REPEAT _return SEQ TARGET Tuple typeOf _where ) + pretend QUOTE REDUCE REPEAT _return SEQ TARGET Tuple typeOf _where + _[_|_|_] ) --% Void stuff |