diff options
Diffstat (limited to 'cs/step0_repl.cs')
| -rw-r--r-- | cs/step0_repl.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/cs/step0_repl.cs b/cs/step0_repl.cs new file mode 100644 index 0000000..665aab6 --- /dev/null +++ b/cs/step0_repl.cs @@ -0,0 +1,44 @@ +using System; +using System.IO; +using Mono.Terminal; + +namespace Mal { + class step0_repl { + // read + static string READ(string str) { + return str; + } + + // eval + static string EVAL(string ast, string env) { + return ast; + } + + // print + static string PRINT(string exp) { + return exp; + } + + // REPL + static string RE(string env, string str) { + return EVAL(READ(str), env); + } + + static void Main(string[] args) { + string prompt = "user> "; + LineEditor lineedit = new LineEditor("Mal"); + + while (true) { + string line; + try { + line = lineedit.Edit(prompt, ""); + if (line == null) { break; } + } catch (IOException e) { + Console.WriteLine("IOException: " + e.Message); + break; + } + Console.WriteLine(PRINT(RE(null, line))); + } + } + } +} |
