kjelsrud.dev/node_modules/parse-latin/lib/parser.js
2023-07-19 21:31:30 +02:00

18 lines
505 B
JavaScript

import {tokenizerFactory} from './tokenizer.js'
// Construct a parser based on `options`.
export function parserFactory(options) {
const type = options.type
const tokenizerProperty = options.tokenizer
const delimiter = options.delimiter
const tokenize =
delimiter && tokenizerFactory(options.delimiterType, delimiter)
return parser
function parser(value) {
const children = this[tokenizerProperty](value)
return {type, children: tokenize ? tokenize(children) : children}
}
}