aboutsummaryrefslogtreecommitdiff
path: root/src/lang/util.clj
diff options
context:
space:
mode:
authorEduardo Julian2015-01-03 01:48:08 -0400
committerEduardo Julian2015-01-03 01:48:08 -0400
commit648110a554a13e1caaf846a60c85cccadcda6e0d (patch)
treeb81414d285dd3d2fdf93f4f2059235ed4a184baf /src/lang/util.clj
parent7ae54659d09aef5ced3544c650c80d7580a0dbb7 (diff)
The language now supports macros.
Diffstat (limited to '')
-rw-r--r--src/lang/util.clj25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lang/util.clj b/src/lang/util.clj
index e2edfb550..7eb431033 100644
--- a/src/lang/util.clj
+++ b/src/lang/util.clj
@@ -132,3 +132,28 @@
[::ok [(assoc state slot ?state) ?value]]
_
=return))))
+
+(defn ^:private normalize-char [char]
+ (case char
+ \* "_ASTER_"
+ \+ "_PLUS_"
+ \- "_DASH_"
+ \/ "_SLASH_"
+ \_ "_UNDERS_"
+ \% "_PERCENT_"
+ \$ "_DOLLAR_"
+ \! "_BANG_"
+ \' "_QUOTE_"
+ \` "_BQUOTE_"
+ \@ "_AT_"
+ \^ "_CARET_"
+ \& "_AMPERS_"
+ \= "_EQ_"
+ ;; default
+ char))
+
+(defn normalize-ident [ident]
+ (reduce str "" (map normalize-char ident)))
+
+(defonce loader (doto (-> (java.io.File. "./") .toURL vector into-array java.net.URLClassLoader.)
+ (->> (prn 'loader))))