diff options
author | Eduardo Julian | 2017-01-25 20:23:46 -0400 |
---|---|---|
committer | Eduardo Julian | 2017-01-25 20:23:46 -0400 |
commit | 3e5f6009e38aa85e9e5f85a8273d032c51a5dce3 (patch) | |
tree | 7c3e3907ac6ab9cebce0b2a0deba335a21d29f2e /luxc/src/lux/reader.clj | |
parent | 79eef70a52ae4aa8f09979e9be15d091b4fdefa4 (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.clj | 8 |
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])))))) |