DL
Size: a a a
DL
IG
DL
(if-some
[[_ lang attr] (re-matches #"\A(\w\w)\$(.+)" field)]
{:kind :translation, :lang (keyword lang), :attr (keyword attr)}
(if-some
[[_ tag attr] (re-matches #"\A(es|vs)#(.+)" field)]
{:kind :nested, :tag (keyword tag), :attr (keyword attr)}
(if (re-matches #"[^\$#]+" field)
{:kind :root, :attr (keyword field)}
(throw (ex-info "Unexpected field format" {:field field})))))
DL
DS
DS
DS
DL
MK
DS
ST
(defn- parse-field [field]
(or (when-some [[_ lang attr] (re-matches #"\A(\w\w)\$(.+)" field)]
{:kind :translation
:lang (keyword lang)
:attr (keyword attr)})
(when-some [[_ lang attr] (re-matches #"\A(\w\w)\$(.+)" field)]
{:kind :translation
:lang (keyword lang)
:attr (keyword attr)})
(when (re-matches #"[^\$#]+" field)
{:kind :root
:attr (keyword field)})
(throw (ex-info "Unexpected field format" {:field field}))))
AK
DL
MK
(defn- parse-field [field]
(or (when-some [[_ lang attr] (re-matches #"\A(\w\w)\$(.+)" field)]
{:kind :translation
:lang (keyword lang)
:attr (keyword attr)})
(when-some [[_ lang attr] (re-matches #"\A(\w\w)\$(.+)" field)]
{:kind :translation
:lang (keyword lang)
:attr (keyword attr)})
(when (re-matches #"[^\$#]+" field)
{:kind :root
:attr (keyword field)})
(throw (ex-info "Unexpected field format" {:field field}))))
MK
DL
DL
MK
DL
AK