diff --git a/src/bean/grid.cljs b/src/bean/grid.cljs index a4df3a9..9944017 100644 --- a/src/bean/grid.cljs +++ b/src/bean/grid.cljs @@ -1,17 +1,24 @@ (ns bean.grid (:require [bean.area :as area] - [bean.tables :as tables] [bean.code-errors :as code-errors] [bean.deps :as deps] [bean.errors :as errors] + [bean.functions :as functions] [bean.interpreter :as interpreter] [bean.parser.parser :as parser] [bean.parser.trellis-parser :as trellis-parser] + [bean.tables :as tables] [bean.util :as util] [bean.value :as value] [clojure.set :as set] [clojure.string])) +(def default-bindings + {"concat" {:scalar functions/bean-concat + :representation "f"} + "error" {:scalar functions/bean-error + :representation "f"}}) + (defn- offset [[start-r start-c] [offset-rows offset-cols]] [(+ start-r offset-rows) (+ start-c offset-cols)]) @@ -145,7 +152,7 @@ {:grid parsed-grid :code code :tests tests - :bindings {} + :bindings default-bindings :depgraph (deps/make-depgraph parsed-grid)}))) (defn- escalate-bindings-errors [sheet] diff --git a/src/bean/interpreter.cljs b/src/bean/interpreter.cljs index eac5492..fcad689 100644 --- a/src/bean/interpreter.cljs +++ b/src/bean/interpreter.cljs @@ -1,6 +1,5 @@ (ns bean.interpreter - (:require [bean.functions :as functions] - [bean.util :as util] + (:require [bean.util :as util] [bean.errors :as errors] [bean.operators :as operators])) @@ -70,11 +69,6 @@ rmatrix (apply-results #(apply %1 [%3 %2]) [op left] rmatrix) :else (apply-results #(apply %1 [%2 %3]) [op left right])))) -(def global-ctx - {"concat" {:scalar functions/bean-concat - :representation "f"} - "error" {:scalar functions/bean-error - :representation "f"}}) (declare apply-f) @@ -97,7 +91,6 @@ (apply util/matrix-bounds) (apply eval-matrix*))} :Name (or (get bindings arg) - (get global-ctx arg) (errors/undefined-named-ref arg)) :FunctionDefinition (fn-result arg) :FunctionInvocation (apply-f sheet