Terrace/docs/src/parser/nodes/Include.js
2023-02-22 21:58:54 -05:00

29 lines
755 B
JavaScript

const { useDocument } = require('@terrace-lang/js/document')
const { createFileReader } = require('@terrace-lang/js/readers/node-readline')
const fs = require('fs/promises')
const path = require('path')
const knownNodes = require('./index.js')
module.exports = async function (originalDoc, rootLevel, ...args) {
const includedDoc = useDocument(createFileReader(originalDoc.tail()))
const { next, head, tail, level } = includedDoc
const node = {
type: originalDoc.head(),
class: '',
children: []
}
while (await next()) {
if (!head()) continue
const block = head()
if (!knownNodes[block]) continue
node.children.push(await knownNodes[block](includedDoc, level(), ...args))
}
console.dir(node)
return node
}