hara.common.emit-assign

+assign-types+

assign-options

added in 4.1

(assign-options value grammar)

gets assignment options either from value metadata or from a reserved macro entry

assign-value

added in 4.1

(assign-value symbol value grammar mopts)

prepares an assignment override payload for a value

emit-def-assign

added in 3.0

(emit-def-assign _ {:keys [raw], :as props} [_ & args] grammar mopts)

emits a declare expression

emit-def-assign-inline

added in 4.0

(emit-def-assign-inline sym [link & input] grammar {:keys [lang book snapshot], :as mopts})

assigns an inline form directly

test-assign-emit

added in 4.0

(test-assign-emit form grammar mopts)

emit assign forms

(assign/test-assign-loop (list ’var ’a := (with-meta () {:assign/fn (fn sym (list sym :as 1 2 3))})) +grammar+ {}) => “(a :as 1 2 3)”

(assign/test-assign-loop (list ’var ’a := (with-meta ’(sym :as 1 2 3) {:assign/template ’sym})) +grammar+ {}) => “(a :as 1 2 3)”

(assign/test-assign-loop (list ’var ’a := (with-meta ’(x.core/identity-fn 1) {:assign/inline ’x.core/identity-fn})) +grammar+ {:lang :x :snapshot +snap+}) => “(do* (var a := 1))”

(assign/test-assign-loop (list ’var ’a := (with-meta ’(x.core/complex-fn 1) {:assign/inline ’x.core/complex-fn})) +grammar+ {:lang :x :snapshot +snap+}) => “(do* (var a := 1) (:= a (+ a 1)))”

test-assign-loop

added in 4.0

(test-assign-loop form grammar mopts)

emit do