Commit | Line | Data |
---|---|---|
31690700 | 1 | if (typeof module !== 'undefined') { |
31b44161 | 2 | var types = require('./types'); |
31690700 | 3 | var readline = require('./node_readline'); |
31b44161 JM |
4 | var reader = require('./reader'); |
5 | var printer = require('./printer'); | |
31690700 JM |
6 | } |
7 | ||
8 | // read | |
9 | function READ(str) { | |
10 | return reader.read_str(str); | |
11 | } | |
12 | ||
13 | // eval | |
14 | function EVAL(ast, env) { | |
15 | return ast; | |
16 | } | |
17 | ||
18 | ||
19 | function PRINT(exp) { | |
ea81a808 | 20 | return printer._pr_str(exp, true); |
31690700 JM |
21 | } |
22 | ||
23 | // repl | |
24 | var re = function(str) { return EVAL(READ(str), {}); }; | |
25 | var rep = function(str) { return PRINT(EVAL(READ(str), {})); }; | |
26 | ||
86b689f3 | 27 | // repl loop |
e4393504 | 28 | if (typeof require !== 'undefined' && require.main === module) { |
31690700 JM |
29 | // Synchronous node.js commandline mode |
30 | while (true) { | |
31 | var line = readline.readline("user> "); | |
32 | if (line === null) { break; } | |
33 | try { | |
31b44161 | 34 | if (line) { printer.println(rep(line)); } |
31690700 JM |
35 | } catch (exc) { |
36 | if (exc instanceof reader.BlankException) { continue; } | |
31b44161 JM |
37 | if (exc.stack) { printer.println(exc.stack); } |
38 | else { printer.println(exc); } | |
31690700 JM |
39 | } |
40 | } | |
31690700 | 41 | } |