add copyright notice
[lisp-parkour.git] / init.lua
blob562d4065b42cd3a886b7db1ef814df469a448bf2
1 -- SPDX-License-Identifier: GPL-3.0-or-later
2 -- © 2020 Georgi Kirilov
4 local supported = {lisp = true, scheme = true, clojure = true, fennel = true}
5 local cwd = ...
7 local walker = require(cwd..".walker")
8 local parser = require(cwd..".parser")
9 local input = require(cwd..".input")
10 local edit = require(cwd..".edit")
11 local node = require(cwd..".node")
13 local function init(dialect, read, write, delete, eol_at, bol_at)
14 local f = require(cwd..".fmt."..dialect)
15 local n = node.new(read)
16 local p, d1, D2 = parser.new(dialect, n, read)
17 local w = walker.new(p, eol_at, bol_at)
18 local e = edit.new(p, w, f, write, delete, eol_at)
19 local i = input.new(p, d1, D2, w, e, write, eol_at, bol_at)
20 return {parser = p, walker = w, input = i, edit = e, fmt = f}
21 end
23 return {init, supported}