1 -- ---------------------------------------------------------
7 -- ---------------------------------------------------------
12 CREATE FUNCTION mal.
READ(line
varchar) RETURNS varchar AS $$
15 END; $$
LANGUAGE plpgsql
;
18 CREATE FUNCTION mal.
EVAL(ast
varchar, env
varchar) RETURNS varchar AS $$
21 END; $$
LANGUAGE plpgsql
;
24 CREATE FUNCTION mal.
PRINT(exp varchar) RETURNS varchar AS $$
27 END; $$
LANGUAGE plpgsql
;
32 CREATE FUNCTION mal.
REP(line
varchar) RETURNS varchar AS $$
34 RETURN mal.
PRINT(mal.
EVAL(mal.
READ(line
), ''));
35 END; $$
LANGUAGE plpgsql
;
37 CREATE FUNCTION mal.
MAIN(pwd
varchar) RETURNS integer AS $$
45 line
:= io.
readline('user> ', 0);
50 IF line
NOT IN ('', E
'\n') THEN
51 output := mal.
REP(line
);
52 PERFORM io.
writeline(output);
55 EXCEPTION WHEN OTHERS THEN
56 PERFORM io.
writeline('Error: ' || SQLERRM
);
59 END; $$
LANGUAGE plpgsql
;