4 CREATE OR REPLACE PACKAGE mal
IS
6 FUNCTION MAIN(args
varchar DEFAULT '()') RETURN integer;
11 CREATE OR REPLACE PACKAGE BODY mal
IS
13 FUNCTION MAIN(args
varchar DEFAULT '()') RETURN integer IS
17 FUNCTION READ(line
varchar) RETURN varchar IS
23 FUNCTION EVAL(ast
varchar, env
varchar) RETURN varchar IS
29 FUNCTION PRINT(exp varchar) RETURN varchar IS
35 FUNCTION REP(line
varchar) RETURN varchar IS
37 RETURN PRINT(EVAL(READ(line
), ''));
43 line
:= stream_readline('user> ', 0);
44 IF line
IS NULL THEN CONTINUE; END IF;
45 IF line
IS NOT NULL THEN
46 stream_writeline(REP(line
));
49 EXCEPTION WHEN OTHERS THEN
50 IF SQLCODE = -20001 THEN -- io streams closed
53 stream_writeline('Error: ' || SQLERRM
);
54 stream_writeline(dbms_utility.format_error_backtrace
);