about summary refs log tree commit diff stats
path: root/prototypes/browse/18
diff options
context:
space:
mode:
Diffstat (limited to 'prototypes/browse/18')
-rw-r--r--prototypes/browse/18/README.md8
-rw-r--r--prototypes/browse/18/file-state.mu45
-rw-r--r--prototypes/browse/18/main.mu33
3 files changed, 0 insertions, 86 deletions
diff --git a/prototypes/browse/18/README.md b/prototypes/browse/18/README.md
deleted file mode 100644
index 51f9878a..00000000
--- a/prototypes/browse/18/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Start fleshing out the previous prototype's plans into something working.
-
-We're back to just plain text without bold formatting. Let's get something
-like prototype 3 working with the new architecture. Since Mu still has no
-checks we need to move slowly.
-
-One issue with this architecture: I have separate checks for `next-char ==
-EOF` and `done-reading? fs`. I'm gonna tolerate that duplication for now.
diff --git a/prototypes/browse/18/file-state.mu b/prototypes/browse/18/file-state.mu
deleted file mode 100644
index d42bf8bf..00000000
--- a/prototypes/browse/18/file-state.mu
+++ /dev/null
@@ -1,45 +0,0 @@
-type file-state {
-  source: (handle buffered-file)
-  eof?: boolean
-}
-
-fn init-file-state _self: (addr file-state), filename: (addr array byte) {
-  var self/eax: (addr file-state) <- copy _self
-  load-file self, filename
-  var eof/eax: (addr boolean) <- get self, eof?
-  copy-to *eof, 0  # false
-}
-
-fn load-file _self: (addr file-state), filename: (addr array byte) {
-  var self/eax: (addr file-state) <- copy _self
-  var out/esi: (addr handle buffered-file) <- get self, source
-  open filename, 0, out  # 0 = read mode
-}
-
-fn next-char _self: (addr file-state) -> result/eax: byte {
-  var self/ecx: (addr file-state) <- copy _self
-  var source/eax: (addr handle buffered-file) <- get self, source
-  var in/eax: (addr buffered-file) <- lookup *source
-  result <- read-byte-buffered in
-  # if result == EOF, set eof?
-  compare result, 0xffffffff  # EOF marker
-  {
-    var eof/ecx: (addr boolean) <- get self, eof?
-    copy-to *eof, 1  # true
-  }
-}
-
-fn done-reading? _self: (addr file-state) -> result/eax: boolean {
-  var self/eax: (addr file-state) <- copy _self
-  var eof/eax: (addr boolean) <- get self, eof?
-  result <- copy *eof
-}
-
-fn dump in: (addr buffered-file) {
-  var c/eax: byte <- read-byte-buffered in
-  compare c, 0xffffffff  # EOF marker
-  break-if-=
-  var g/eax: grapheme <- copy c
-  print-grapheme 0, g
-  loop
-}
diff --git a/prototypes/browse/18/main.mu b/prototypes/browse/18/main.mu
deleted file mode 100644
index f98e9a2b..00000000
--- a/prototypes/browse/18/main.mu
+++ /dev/null
@@ -1,33 +0,0 @@
-fn main args: (addr array addr array byte) -> exit-status/ebx: int {
-  # initialize fs from args[1]
-  var filename/eax: (addr array byte) <- first-arg args
-  var file-state-storage: file-state
-  var fs/esi: (addr file-state) <- address file-state-storage
-  init-file-state fs, filename
-  render fs
-  exit-status <- copy 0
-}
-
-fn render fs: (addr file-state) {
-  render-normal fs
-}
-
-fn render-normal fs: (addr file-state) {
-  {
-    var c/eax: byte <- next-char fs
-    # if (c == EOF) break
-    compare c, 0xffffffff  # EOF marker
-    break-if-=
-    #
-    var g/eax: grapheme <- copy c
-    print-grapheme 0, g
-    #
-    loop
-  }
-}
-
-fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
-  var args/eax: (addr array addr array byte) <- copy args-on-stack
-  var result/eax: (addr addr array byte) <- index args, 1
-  out <- copy *result
-}