Terrace/packages/js/test/index.js
2023-02-14 22:33:16 -05:00

34 lines
1.2 KiB
JavaScript

import { createLineData, parseLine, useDocument } from '@terrace-lang/js'
import { createStdinReader } from '@terrace-lang/js/readers/node-readline'
const testName = process.argv[2]
async function linedata_basic(indent) {
const lineData = createLineData('', indent)
const next = createStdinReader()
while ((lineData.line = await next()) != null) {
parseLine(lineData)
const { level, indent, offsetHead, offsetTail, line } = lineData
console.log(`| level ${level} | indent ${indent} | offsetHead ${offsetHead} | offsetTail ${offsetTail} | line ${line} |`)
}
}
async function linedata_head_tail () {
const lineData = createLineData('')
const next = createStdinReader()
while ((lineData.line = await next()) != null) {
parseLine(lineData)
const { level, indent, offsetHead, offsetTail, line } = lineData
const head = line.slice(offsetHead, offsetTail)
const tail = line.slice(offsetTail + 1)
console.log(`| head ${head} | tail ${tail} |`)
}
}
if (testName === 'linedata:basic') await linedata_basic()
if (testName === 'linedata:tabs') await linedata_basic('\t')
if (testName === 'linedata:head-tail') await linedata_head_tail()