diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-06 19:23:28 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-06 19:23:28 -0500 |
| commit | afde2df05daa178cf4d4bddccc0f27093416a9c2 (patch) | |
| tree | 3624fc9c2d3a3f74842dfbd670ca78f8786e0932 /cs/step0_repl.cs | |
| parent | f1b72c6a7b4ada599cbd5d3f2dad5c3dee191bd2 (diff) | |
| download | mal-afde2df05daa178cf4d4bddccc0f27093416a9c2.tar.gz mal-afde2df05daa178cf4d4bddccc0f27093416a9c2.zip | |
C#: step0_repl using de Icaza's getline.cs
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))); + } + } + } +} |
