From e738d100c697d3f182d612f3c99889dff24a1563 Mon Sep 17 00:00:00 2001 From: Paul deGrandis Date: Mon, 19 Mar 2012 16:12:19 -0400 Subject: [PATCH] WIP: adding in the simplify stuff back into the new logic stuff --- src/jonase/kibit/core.clj | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/jonase/kibit/core.clj b/src/jonase/kibit/core.clj index f6097f3..5bae011 100644 --- a/src/jonase/kibit/core.clj +++ b/src/jonase/kibit/core.clj @@ -17,17 +17,25 @@ (guard expr)) (check-guards expr rest))) -(defn simplify - [expr rules] - (first (run* [q] - (fresh [pat guards alt] - (membero [pat guards alt] rules) - (== pat expr) - (check-guards expr guards) - (== q {:expr expr - :alt alt - :line (-> expr meta :line)}))))) +(defn simplify-one + ([expr] + (simplify-one expr all-rules)) + ([expr rules] + (first (run* [q] + (fresh [pat guards alt] + (membero [pat guards alt] rules) + (== pat expr) + (check-guards expr guards) + (== 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 ;; --------------------