1 function step2_eval
(varargin), main
(varargin), end
4 function ret
= READ
(str
)
5 ret
= reader.read_str
(str
);
9 function ret
= eval_ast
(ast
, env
)
16 ret
{end+1} = EVAL(ast
{i
}, env
);
23 function ret
= EVAL(ast
, env
)
25 ret
= eval_ast
(ast
, env
);
30 el
= eval_ast
(ast
, env
);
37 function ret
= PRINT(ast
)
38 ret
= printer.pr_str
(ast
, true
);
42 function ret
= rep
(str
, env
)
43 ret
= PRINT(EVAL(READ
(str
), env
));
47 repl_env
= containers.Map
();
48 repl_env
('+') = @
(a
,b
) a
+b
;
49 repl_env
('-') = @
(a
,b
) a
-b
;
50 repl_env
('*') = @
(a
,b
) a
*b
;
51 repl_env
('/') = @
(a
,b
) floor(a
/b
);
53 %cleanObj = onCleanup(@() disp('*** here1 ***'));
55 line = input('user> ', 's');
56 if strcmp(strtrim
(line),''), continue
, end
58 fprintf('%s\n', rep
(line, repl_env
));
60 fprintf('Error: %s\n', err.message
);
61 fprintf('%s\n', getReport
(err
, 'extended'));