1 local supported
= {lisp
= true, scheme
= true, clojure
= true, fennel
= true}
4 local walker
= require(cwd
..".walker")
5 local parser
= require(cwd
..".parser")
6 local input
= require(cwd
..".input")
7 local edit
= require(cwd
..".edit")
8 local node
= require(cwd
..".node")
10 local function init(dialect
, read, write, delete
, eol_at
, bol_at
)
11 local f
= require(cwd
..".fmt."..dialect
)
12 local n
= node
.new(read)
13 local p
, d1
, D2
= parser
.new(dialect
, n
, read)
14 local w
= walker
.new(p
, eol_at
, bol_at
)
15 local e
= edit
.new(p
, w
, f
, write, delete
, eol_at
)
16 local i
= input
.new(p
, d1
, D2
, w
, e
, write, eol_at
, bol_at
)
17 return {parser
= p
, walker
= w
, input
= i
, edit
= e
, fmt
= f
}
20 return {init
, supported
}