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