|
|
@ -1,6 +1,6 @@ |
|
|
|
# minproto.leg -- minimal prototype langauge for semantic experiments |
|
|
|
# |
|
|
|
# last edited: 2024-05-09 10:09:56 by piumarta on zora-1034.local |
|
|
|
# last edited: 2024-05-09 10:17:11 by piumarta on zora-1034.local |
|
|
|
|
|
|
|
%{ |
|
|
|
; |
|
|
@ -2291,19 +2291,6 @@ oop prim_env(oop func, oop self, oop args, oop env) |
|
|
|
return env; |
|
|
|
} |
|
|
|
|
|
|
|
oop prim_makeForm(oop func, oop self, oop args, oop env) |
|
|
|
{ |
|
|
|
int argc = _get(args, Object,isize); |
|
|
|
oop *indexed = _get(args, Object,indexed); |
|
|
|
oop result = nil; |
|
|
|
for (int i = 0; i < argc; ++i) { |
|
|
|
result = indexed[i]; |
|
|
|
if (!isClosure(result)) fatal("makeForm: argument must be closure"); |
|
|
|
Object_put(result, sym_fixed, sym_t); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
oop prim_eval(oop func, oop self, oop args, oop env) |
|
|
|
{ |
|
|
|
int argc = _get(args, Object,isize); |
|
|
@ -2531,7 +2518,6 @@ int main(int argc, char **argv) |
|
|
|
macros = Object_put(pSymbol, intern("macros"), new(pObject)); |
|
|
|
|
|
|
|
_set(intern("__env__" ), Symbol,value, newPrimitive(prim_env)); |
|
|
|
_set(intern("makeForm" ), Symbol,value, newPrimitive(prim_makeForm)); |
|
|
|
_set(intern("eval" ), Symbol,value, newPrimitive(prim_eval)); |
|
|
|
_set(intern("print" ), Symbol,value, newPrimitive(prim_print)); |
|
|
|
_set(intern("codeString" ), Symbol,value, newPrimitive(prim_codeString)); |
|
|
|