DISABLE FDs (REMOVE ME).
[jackhill/mal.git] / rexx / step1_read_print.rexx
1 call main
2 exit
3
4 #include "readline.rexx"
5 #include "reader.rexx"
6 #include "printer.rexx"
7
8 read: procedure expose values. err /* read(str) */
9 return read_str(arg(1))
10
11 eval: procedure expose values. /* eval(exp, env) */
12 return arg(1)
13
14 print: procedure expose values. /* print(exp) */
15 return pr_str(arg(1), 1)
16
17 rep: procedure expose values. env. err /* rep(str) */
18 ast = read(arg(1))
19 if ast == "ERR" then return "ERR"
20 exp = eval(ast)
21 return print(exp)
22
23 main:
24 values. = ""
25 values.0 = 0
26 do while lines() > 0 /* 1 == 1 */
27 input_line = readline('user> ')
28 if length(input_line) > 0 then do
29 res = rep(input_line)
30 if res == "ERR" then
31 call lineout , "Error: " || err
32 else
33 call lineout , res
34 end
35 end