aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-05-29 19:25:31 +0000
committerdos-reis <gdr@axiomatics.org>2010-05-29 19:25:31 +0000
commita31ebb2c1b71c66ac34ffb0c27e6d7188ffb0906 (patch)
tree493366bf01adb5685ddf3a2c599ff0aaf2eac239 /src/interp/g-util.boot
parentd983797f2d41c45fcf0679c7f4d1f90c1702ed2f (diff)
downloadopen-axiom-a31ebb2c1b71c66ac34ffb0c27e6d7188ffb0906.tar.gz
* interp/compiler.boot (getExternalSymbolMode): Allow Lisp as
foreign language. (checkExternalEntity): Likewise. (compSignatureImport): Likewise. Give foreign variables dummy values. * interp/c-util.boot (middleEndExpand): Handle %true and %false. * interp/g-util.boot (expandToVMForm): Likewise.
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r--src/interp/g-util.boot6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 2ab9d696..0a78b182 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -253,6 +253,9 @@ expandIadd ["%iadd",:args] ==
expandIsub ["%isub",:args] ==
["-",:expandToVMForm args]
+expandEq ["%eq",:args] ==
+ ["EQ",:expandToVMForm args]
+
expandIeq ["%ieq",:args] ==
["EQL",:expandToVMForm args]
@@ -315,6 +318,7 @@ for x in [
["%imax",:function expandImax],
["%igcd",:function expandIgcd],
+ ["%eq",:function expandEq],
["%ieq",:function expandIeq],
["%head",:function expandHead],
@@ -332,6 +336,8 @@ getOpcodeExpander op ==
++ Expand all opcodes contained in the form `x' into a form
++ suitable for evaluation by the VM.
expandToVMForm x ==
+ x = '%false => 'NIL
+ x = '%true => 'T
isAtomicForm x => x
[op,:args] := x
IDENTP op and (fun:= getOpcodeExpander op) => apply(fun,x,nil)