aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2009-04-20 15:07:26 +0000
committerdos-reis <gdr@axiomatics.org>2009-04-20 15:07:26 +0000
commit4601ffa3bc49e44b09f7d58f355d76f4d06de220 (patch)
treef85d37165cf252ff2bda3fb3aa1f08bec1fd0f43 /src/interp/compiler.boot
parent107ad31254bf3de30516ce0f2563892bacf9cb60 (diff)
downloadopen-axiom-4601ffa3bc49e44b09f7d58f355d76f4d06de220.tar.gz
* interp/sys-constants.boot ($Identifier): New.
* interp/compiler.boot (compQuote): Use the target mode if appropriate. * interp/i-spec2.boot (upQUOTE): Likewise. * algebra/syntax.spad.pamphlet: Use Identifier in lieu of Symbol.
Diffstat (limited to 'src/interp/compiler.boot')
-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 c7a73820..fd4519fc 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -954,7 +954,11 @@ compConstruct(form is ["construct",:l],m,e) ==
++ Compile a literal (quoted) symbol.
compQuote: (%Form,%Mode,%Env) -> %Maybe %Triple
compQuote(expr,m,e) ==
- expr is ["QUOTE",x] and IDENTP x => convert([expr,$Symbol,e],m)
+ expr is ["QUOTE",x] and IDENTP x =>
+ -- Ideally, Identifier should be the default type. However, for
+ -- historical reasons we cannot afford that luxury yet.
+ m = $Identifier => [expr,$Identifier,e]
+ convert([expr,$Symbol,e],m)
stackAndThrow('"%1b is not a literal symbol.",[x])
compList: (%Form,%Mode,%Env) -> %Maybe %Triple