1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-19 09:38:28 +03:00
mal/impls/vhdl/step0_repl.vhdl
Joel Martin 8a19f60386 Move implementations into impls/ dir
- 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.
2020-02-10 23:50:16 -06:00

46 lines
948 B
VHDL

entity step0_repl is
end entity step0_repl;
library STD;
use STD.textio.all;
library WORK;
use WORK.pkg_readline.all;
architecture test of step0_repl is
function mal_READ(str: in string) return string is
begin
return str;
end function mal_READ;
function EVAL(ast: in string; env: in string) return string is
begin
return ast;
end function EVAL;
function mal_PRINT(exp: in string) return string is
begin
return exp;
end function mal_PRINT;
function REP(str: in string) return string is
begin
return mal_PRINT(EVAL(mal_READ(str), ""));
end function REP;
procedure repl is
variable is_eof: boolean;
variable input_line: line;
begin
loop
mal_readline("user> ", is_eof, input_line);
exit when is_eof;
next when input_line'length = 0;
mal_printline(REP(input_line.all));
end loop;
mal_printline("");
end procedure repl;
begin
repl;
end architecture test;