aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/base.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/base.lux')
-rw-r--r--new-luxc/source/luxc/base.lux21
1 files changed, 21 insertions, 0 deletions
diff --git a/new-luxc/source/luxc/base.lux b/new-luxc/source/luxc/base.lux
new file mode 100644
index 000000000..ce872e9da
--- /dev/null
+++ b/new-luxc/source/luxc/base.lux
@@ -0,0 +1,21 @@
+(;module:
+ lux
+ (lux (control monad)
+ (data text/format)
+ [macro #+ Monad<Lux>]))
+
+(type: #export Path Text)
+
+(type: #export Mode
+ #Release
+ #Debug)
+
+(def: #export (fail message)
+ (All [a] (-> Text (Lux a)))
+ (do Monad<Lux>
+ [[file line col] macro;cursor
+ #let [location (format file
+ "," (|> line nat-to-int %i)
+ "," (|> col nat-to-int %i))]]
+ (macro;fail (format "@ " location
+ "\n" message))))