aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-07-11 00:10:17 +0000
committerdos-reis <gdr@axiomatics.org>2008-07-11 00:10:17 +0000
commit419a88b7d6a8c0248c17c47a9a46b0aab0b5936f (patch)
tree64531f1f78bf1e38f86af1322d94ee101b022057 /src/interp
parentaa7e3e2f0d8bbcafe488f536faa86ff9581efef0 (diff)
downloadopen-axiom-419a88b7d6a8c0248c17c47a9a46b0aab0b5936f.tar.gz
* interp/compiler.boot (compQuote): Restrict quoting to literal
symbols. * algebra/any.spad.pamphlet: Use nil for empty list. * algebra/boolean.spad.pamphlet: Fix quoting.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/compiler.boot6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 10657288..1d9686bc 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -828,7 +828,11 @@ compConstruct(form is ["construct",:l],m,e) ==
(T:= compVector(l,["Vector",CADR y],e)) and (T':= convert(T,m)) =>
return T'
-compQuote(expr,m,e) == [expr,m,e]
+++ Compile a literal (quoted) symbol.
+compQuote: (%Form,%Mode,%Env) -> %Maybe %Triple
+compQuote(expr,m,e) ==
+ expr is ["QUOTE",x] and SYMBOLP x => convert([expr,$Symbol,e],m)
+ stackAndThrow('"%1b is not a literal symbol.",[x])
compList: (%Form,%Mode,%Env) -> %Maybe %Triple
compList(l,m is ["List",mUnder],e) ==