Skip to content

Commit 3273d05

Browse files
committed
Refactoring
1 parent 4007991 commit 3273d05

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/wasm_hl/constants.clj

+2
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,5 @@
8989
'i32.ctz
9090
'i32.popcnt
9191
'i32.eqz]))
92+
93+
(def all-ops (into wasm-ops (keys infix-ops)))

src/wasm_hl/core.clj

+15-11
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
[expr]
1515
(let [maybe-op (second expr)]
1616
(cond
17-
(contains? (into wasm-ops (keys infix-ops)) maybe-op) (list maybe-op (first expr) (last expr))
17+
(contains? all-ops maybe-op) (list maybe-op (first expr) (last expr))
1818
(= '= maybe-op) (list 'set_local (first expr) (last expr))
1919
:else expr)))
2020
(is (= (arrange-triple-list '(1 = 1)) '(set_local 1 1)))
@@ -36,8 +36,8 @@
3636
(defn expand-triple-list
3737
"Expand triple lists, and support infix if they aren't set_local"
3838
[expr]
39-
(if (= 'set_local (first expr))
40-
(list (first expr) (second expr) (maybe-expand-number (last expr)))
39+
(condp = (first expr)
40+
'set_local (list (first expr) (second expr) (maybe-expand-number (last expr)))
4141
(map maybe-expand-number expr)))
4242
(is (= (list) (expand-triple-list (list))))
4343
(is (= '(set_local $foo (f64.const 0.0)) (expand-triple-list '(set_local $foo 0.0)))))
@@ -69,10 +69,11 @@
6969
[expr]
7070
(let [param-counter (atom -1)]
7171
(or
72-
(apply merge
73-
(filter some?
74-
(map (partial type-to-map param-counter)
75-
(tree-seq seq? identity expr)))) {})))
72+
(->>
73+
(tree-seq seq? identity expr)
74+
(map (partial type-to-map param-counter))
75+
(filter some?)
76+
(apply merge)) {})))
7677
(is (= {} (determine-type-map '())))
7778
(is (= '{$foo f32} (determine-type-map '(local $foo f32))))
7879
(is (= '{0 f32 $foo f32} (determine-type-map '((param f32) (local $foo f32)))))
@@ -100,13 +101,16 @@
100101
(defn transform-tree-node
101102
"The first level of abstraction for the tree-walker. Arranges lists, expands shortcuts"
102103
[expr]
103-
((if (list? expr)
104+
((if (seq? expr)
104105
arrange-list
105106
local-shortcut) expr))
106107

107-
(defn get-type
108-
[expr]
109-
(get (meta expr) :type))
108+
(with-test
109+
(defn get-type
110+
[expr]
111+
(get (meta expr) :type))
112+
(is (= 'f64 (get-type (with-meta '(f64.const 0) {:type 'f64}))))
113+
(is (= nil (get-type '(f64.const 0)))))
110114

111115
(with-test
112116
(defn resolve-infix-expression

0 commit comments

Comments
 (0)