mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-09 16:40:38 +00:00
Add a little to hook_expr
This commit is contained in:
parent
a5d2fdc17b
commit
e9bde21346
@ -285,7 +285,7 @@ def parse_cmdline#0
|
||||
fin
|
||||
end
|
||||
|
||||
def hookfn
|
||||
def hookfn(expr)
|
||||
if conio:keypressed() == $83 // CTRL-C
|
||||
conio:getkey() // Clear KB
|
||||
puts("\n^C\n")
|
||||
@ -295,7 +295,7 @@ def hookfn
|
||||
fin
|
||||
throw(@break_repl, FALSE)
|
||||
fin
|
||||
return 0
|
||||
return expr
|
||||
end
|
||||
|
||||
//
|
||||
|
@ -27,7 +27,7 @@
|
||||
'WHILE
|
||||
(WHILELOOP 1 100)
|
||||
'UNTIL
|
||||
(UNTILLOOP 1 100)
|
||||
(UNTILLOOP 1 99)
|
||||
'PROG
|
||||
(PROGLOOP 1 100)
|
||||
'FOR
|
||||
|
@ -735,17 +735,6 @@ end
|
||||
def apply_args(curl, expr, argvals)#2 // curl, expr
|
||||
var argsyms, arglist, pairlist, argbase
|
||||
|
||||
// if expr and expr->type <> CONS_TYPE
|
||||
// if expr->type & TYPE_MASK == SYM_TYPE
|
||||
// if expr=>natv
|
||||
// return curl, expr=>natv(expr, argvals) // Native function
|
||||
// elsif expr=>lambda // DEFINEd lambda S-expression
|
||||
// expr = expr=>lambda
|
||||
// else
|
||||
// expr = assoc(expr)
|
||||
// fin
|
||||
// fin
|
||||
// fin
|
||||
if !expr or expr=>car <> sym_lambda
|
||||
puts("Invalid LAMBDA expression: "); print_expr(expr); putln
|
||||
return NULL, NULL
|
||||
@ -864,13 +853,10 @@ end
|
||||
export def eval_expr(expr)#1
|
||||
var alist_enter, curl, expr_car
|
||||
|
||||
if hook_eval; hook_eval(); fin
|
||||
if hook_eval; expr = hook_eval(expr); fin
|
||||
if gc_pull > GC_TRIGGER; gc; fin
|
||||
alist_enter = assoc_list
|
||||
curl = NULL // Current lambda
|
||||
if trace
|
||||
puts("EVAL: "); print_expr(expr); putln
|
||||
fin
|
||||
while expr
|
||||
if expr->type == CONS_TYPE
|
||||
//
|
||||
@ -949,9 +935,6 @@ export def eval_expr(expr)#1
|
||||
fin
|
||||
loop
|
||||
assoc_list = alist_enter // Unwind assoc_list
|
||||
if trace
|
||||
puts("RESULT: "); print_expr(expr); putln
|
||||
fin
|
||||
return expr
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user