20 lines
324 B
Fennel
20 lines
324 B
Fennel
|
|
|
|
(fn recogniser [keymap]
|
|
(var m keymap)
|
|
{
|
|
:accept
|
|
(fn [_ c]
|
|
(let [v (. m c)]
|
|
(match (type v)
|
|
"table" (do
|
|
(set m v)
|
|
(values nil (.. c " ")))
|
|
"function" (do
|
|
(set m keymap)
|
|
v))))
|
|
})
|
|
|
|
|
|
{ : recogniser }
|