mirror of
https://github.com/kanaka/mal.git
synced 2024-10-26 22:28:26 +03:00
8a19f60386
- Reorder README to have implementation list after "learning tool" bullet. - This also moves tests/ and libs/ into impls. It would be preferrable to have these directories at the top level. However, this causes difficulties with the wasm implementations which need pre-open directories and have trouble with paths starting with "../../". So in lieu of that, symlink those directories to the top-level. - Move the run_argv_test.sh script into the tests directory for general hygiene.
40 lines
772 B
Matlab
40 lines
772 B
Matlab
function step1_read_print(varargin), main(varargin), end
|
|
|
|
% read
|
|
function ret = READ(str)
|
|
ret = reader.read_str(str);
|
|
end
|
|
|
|
% eval
|
|
function ret = EVAL(ast, env)
|
|
ret = ast;
|
|
end
|
|
|
|
% print
|
|
function ret = PRINT(ast)
|
|
ret = printer.pr_str(ast, true);
|
|
end
|
|
|
|
% REPL
|
|
function ret = rep(str, env)
|
|
ret = PRINT(EVAL(READ(str), env));
|
|
end
|
|
|
|
function main(args)
|
|
%cleanObj = onCleanup(@() disp('*** here1 ***'));
|
|
while (true)
|
|
try
|
|
line = input('user> ', 's');
|
|
catch err
|
|
return
|
|
end
|
|
if strcmp(strtrim(line),''), continue, end
|
|
try
|
|
fprintf('%s\n', rep(line, ''));
|
|
catch err
|
|
fprintf('Error: %s\n', err.message);
|
|
type_utils.print_stack(err);
|
|
end
|
|
end
|
|
end
|