about summary refs log tree commit diff stats
path: root/shell/parse.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-05-19 20:56:37 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-05-19 20:56:37 -0700
commite2ab1b30b1a669425cb86ffa7def9529e7fa4fb1 (patch)
tree5d1a03f7afbdf6bc115a63b68e7bd64dd0286d2d /shell/parse.mu
parent6bbeadecaad7b6437626b10f7e230ba305c8496f (diff)
downloadmu-e2ab1b30b1a669425cb86ffa7def9529e7fa4fb1.tar.gz
disallow null traces
We now use traces everywhere for error-checking. Null traces introduce
the possibility of changing a functions error response, and therefore its
semantics.
Diffstat (limited to 'shell/parse.mu')
-rw-r--r--shell/parse.mu10
1 files changed, 8 insertions, 2 deletions
diff --git a/shell/parse.mu b/shell/parse.mu
index eceebd7d..a977216c 100644
--- a/shell/parse.mu
+++ b/shell/parse.mu
@@ -218,7 +218,10 @@ fn parse-atom _curr-token: (addr cell), _out: (addr handle cell), trace: (addr t
       var stream-storage: (stream byte 0x400)
       var stream/ecx: (addr stream byte) <- address stream-storage
       write stream, "=> number "
-      print-number out-addr, stream, 0/no-trace
+      var nested-trace-storage: trace
+      var nested-trace/edi: (addr trace) <- address nested-trace-storage
+      initialize-trace nested-trace, 1/only-errors, 0x10/capacity, 0/visible
+      print-number out-addr, stream, nested-trace
       trace trace, "parse", stream
     }
     return
@@ -246,7 +249,10 @@ fn parse-atom _curr-token: (addr cell), _out: (addr handle cell), trace: (addr t
     var stream-storage: (stream byte 0x400)
     var stream/ecx: (addr stream byte) <- address stream-storage
     write stream, "=> symbol "
-    print-symbol out-addr, stream, 0/no-trace
+    var nested-trace-storage: trace
+    var nested-trace/edi: (addr trace) <- address nested-trace-storage
+    initialize-trace nested-trace, 1/only-errors, 0x10/capacity, 0/visible
+    print-symbol out-addr, stream, nested-trace
     trace trace, "parse", stream
   }
 }