1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 02:27:10 +03:00
mal/rexx/step1_read_print.rexx
2018-11-30 14:57:46 -06:00

36 lines
756 B
Rexx

call main
exit
#include "readline.rexx"
#include "reader.rexx"
#include "printer.rexx"
read: procedure expose values. err /* read(str) */
return read_str(arg(1))
eval: procedure expose values. /* eval(exp, env) */
return arg(1)
print: procedure expose values. /* print(exp) */
return pr_str(arg(1), 1)
rep: procedure expose values. env. err /* rep(str) */
ast = read(arg(1))
if ast == "ERR" then return "ERR"
exp = eval(ast)
return print(exp)
main:
values. = ""
values.0 = 0
do while lines() > 0 /* 1 == 1 */
input_line = readline('user> ')
if length(input_line) > 0 then do
res = rep(input_line)
if res == "ERR" then
call lineout , "Error: " || err
else
call lineout , res
end
end