about summary refs log tree commit diff stats
path: root/shell/read.mu
diff options
context:
space:
mode:
Diffstat (limited to 'shell/read.mu')
-rw-r--r--shell/read.mu15
1 files changed, 15 insertions, 0 deletions
diff --git a/shell/read.mu b/shell/read.mu
new file mode 100644
index 00000000..d3e1dc86
--- /dev/null
+++ b/shell/read.mu
@@ -0,0 +1,15 @@
+# out is not allocated
+fn read-cell in: (addr gap-buffer), out: (addr handle cell), trace: (addr trace) {
+  var tokens-storage: (stream cell 0x100)
+  var tokens/ecx: (addr stream cell) <- address tokens-storage
+  tokenize in, tokens, trace
+  var error?/eax: boolean <- has-errors? trace
+  compare error?, 0/false
+  {
+    break-if-=
+    return
+  }
+  # TODO: insert parens
+  # TODO: transform infix
+  parse-input tokens, out, trace
+}