import { Parser } from "https://deno.land/x/windmill@v1.349.1/node_modules/yaml/browser/dist/parse/parser.js";
A YAML concrete syntax tree (CST) parser
const src: string = ...
for (const token of new Parser().parse(src)) {
// token: Token
}
To use the parser with a user-provided lexer:
function* parse(source: string, lexer: Lexer) {
const parser = new Parser()
for (const lexeme of lexer.lex(source))
yield* parser.next(lexeme)
yield* parser.end()
}
const src: string = ...
const lexer = new Lexer()
for (const token of parse(src, lexer)) {
// token: Token
}
Methods
atIndentedComment(start, indent)
blockMap(map)
blockScalar(scalar)
blockSequence(seq)
document(doc)
documentEnd(docEnd)
flowCollection(fc)
flowScalar(type)
lineEnd(token)
parse(source, incomplete?)
Parse source
as a YAML stream.
If incomplete
, a part of the last line may be left as a buffer for the next call.
Errors are not thrown, but yielded as { type: 'error', message }
tokens.
peek(n)
pop(error)
scalar(scalar)
startBlockValue(parent)
step()
stream()