aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/reader.clj
diff options
context:
space:
mode:
authorEduardo Julian2017-01-25 20:23:46 -0400
committerEduardo Julian2017-01-25 20:23:46 -0400
commit3e5f6009e38aa85e9e5f85a8273d032c51a5dce3 (patch)
tree7c3e3907ac6ab9cebce0b2a0deba335a21d29f2e /luxc/src/lux/reader.clj
parent79eef70a52ae4aa8f09979e9be15d091b4fdefa4 (diff)
- Improved Lux error messages by ensuring the cursor is always present.
Diffstat (limited to 'luxc/src/lux/reader.clj')
-rw-r--r--luxc/src/lux/reader.clj8
1 files changed, 4 insertions, 4 deletions
diff --git a/luxc/src/lux/reader.clj b/luxc/src/lux/reader.clj
index 5a7734061..43875ed95 100644
--- a/luxc/src/lux/reader.clj
+++ b/luxc/src/lux/reader.clj
@@ -7,7 +7,7 @@
(:require [clojure.string :as string]
clojure.core.match
clojure.core.match.array
- [lux.base :as & :refer [defvariant |do return* return fail* |let |case]]))
+ [lux.base :as & :refer [defvariant |do return* return |let |case]]))
;; [Tags]
(defvariant
@@ -20,8 +20,8 @@
(fn [state]
(|case (&/get$ &/$source state)
(&/$Nil)
- (fail* "[Reader Error] EOF")
-
+ ((&/fail-with-loc "[Reader Error] EOF") state)
+
(&/$Cons [[file-name line-num column-num] line]
more)
(|case (body file-name line-num column-num line)
@@ -135,7 +135,7 @@
(|let [old-source (&/get$ &/$source state)]
(|case (body (&/set$ &/$source (from name content) state))
(&/$Left error)
- (&/$Left error)
+ ((&/fail-with-loc error) state)
(&/$Right state* output)
(&/$Right (&/T [(&/set$ &/$source old-source state*) output]))))))