3 local walker
= require(cwd
..".walker")
4 local parser
= require(cwd
..".parser")
5 local input
= require(cwd
..".input")
6 local edit
= require(cwd
..".edit")
7 local node
= require(cwd
..".node")
9 return function(dialect
, read, write, delete
, eol_at
, bol_at
)
10 local f
= require(cwd
..".fmt."..dialect
)
11 local n
= node
.new(read)
12 local p
, d1
, D2
= parser
.new(dialect
, n
, read)
13 local w
= walker
.new(p
, eol_at
, bol_at
)
14 local e
= edit
.new(p
, w
, f
, write, delete
, eol_at
)
15 local i
= input
.new(p
, d1
, D2
, w
, e
, write, eol_at
, bol_at
)
16 return {parser
= p
, walker
= w
, input
= i
, edit
= e
}