File tree Expand file tree Collapse file tree 5 files changed +155
-139
lines changed Expand file tree Collapse file tree 5 files changed +155
-139
lines changed Original file line number Diff line number Diff line change 8
8
:modules {:sci {:exports {evalString lang-clojure-eval.main/eval-string
9
9
context lang-clojure-eval.main/context
10
10
isISOControl lang-clojure-eval.character/isISOControl
11
- isLetter lang-clojure-eval.character/isLetter}}}}}}
11
+ isLetter lang-clojure-eval.character/isLetter
12
+ ; ; parseInt causes ReferenceError if exported,
13
+ ; ; but somehow works if it's not... why?
14
+ ; parseInt lang-clojure-eval.integer/parse-int
15
+ }}}}}}
Original file line number Diff line number Diff line change 3
3
4
4
(defn isLetter [char]
5
5
(and (= 1 (count (str char)))
6
- (not= (str/upper-case char) (str/lower-case char))))
6
+ (not= (str/upper-case char)
7
+ (str/lower-case char))))
7
8
8
9
(defn isISOControl [char]
9
10
(boolean (re-seq #"[\u 0000-\u 001F\u 007F-\u 009F]" char)))
Original file line number Diff line number Diff line change
1
+ (ns lang-clojure-eval.integer
2
+ (:require [clojure.edn :as edn]))
3
+
4
+ (defn parse-int [s]
5
+ (edn/read-string s))
Original file line number Diff line number Diff line change 2
2
(:require [sci.core :as sci]
3
3
[lang-clojure-eval.error :refer [error-handler]]
4
4
[lang-clojure-eval.character :as char]
5
+ [lang-clojure-eval.integer :as int]
5
6
[goog.string]
6
7
[goog.string.format]
7
8
[clojure.pprint :as pprint]
11
12
(sci/init {:classes {'js goog/global
12
13
:allow :all }
13
14
:namespaces {'clojure.core {'format goog.string/format}
14
- 'lang-clojure-eval.character
15
+ 'lang-clojure-eval.character
15
16
{'isISOControl char/isISOControl
16
- 'isLetter char/isLetter}}}))
17
+ 'isLetter char/isLetter}
18
+ 'lang-clojure-eval.integer
19
+ {'parseInt int/parse-int}}}))
17
20
18
21
(defn eval-string [source]
19
- (let [reqs " (require '[lang-clojure-eval.character :as Character])" ]
22
+ (let [reqs " (require '[lang-clojure-eval.character :as Character]
23
+ '[lang-clojure-eval.integer :as Integer])" ]
20
24
(try (binding [*print-length* 100 ]
21
25
(with-out-str (pprint/pprint (sci/eval-string* context (str reqs source)))))
22
26
(catch :default e
You can’t perform that action at this time.
0 commit comments