WIP: adding in the simplify stuff back into the new logic stuff
This commit is contained in:
parent
21a0d9dcf7
commit
e738d100c6
1 changed files with 18 additions and 10 deletions
|
@ -17,17 +17,25 @@
|
||||||
(guard expr))
|
(guard expr))
|
||||||
(check-guards expr rest)))
|
(check-guards expr rest)))
|
||||||
|
|
||||||
(defn simplify
|
(defn simplify-one
|
||||||
[expr rules]
|
([expr]
|
||||||
(first (run* [q]
|
(simplify-one expr all-rules))
|
||||||
(fresh [pat guards alt]
|
([expr rules]
|
||||||
(membero [pat guards alt] rules)
|
(first (run* [q]
|
||||||
(== pat expr)
|
(fresh [pat guards alt]
|
||||||
(check-guards expr guards)
|
(membero [pat guards alt] rules)
|
||||||
(== q {:expr expr
|
(== pat expr)
|
||||||
:alt alt
|
(check-guards expr guards)
|
||||||
:line (-> expr meta :line)})))))
|
(== q {:expr expr
|
||||||
|
:alt alt
|
||||||
|
:line (-> expr meta :line)}))))))
|
||||||
|
|
||||||
|
(declare expr-seq)
|
||||||
|
(defn simplify
|
||||||
|
([expr]
|
||||||
|
(simplify expr all-rules))
|
||||||
|
([expr rules]
|
||||||
|
(walk/postwalk identity (expr-seq expr))))
|
||||||
|
|
||||||
;; Reading source files
|
;; Reading source files
|
||||||
;; --------------------
|
;; --------------------
|
||||||
|
|
Loading…
Reference in a new issue