UNPKG

ts-fusion-parser

Version:

Parser for Neos Fusion Files

40 lines (39 loc) 2.31 kB
import { AbstractNode } from "../../common/AbstractNode"; import { Comment } from "../../common/Comment"; import { NodePositionInterface } from "../../common/NodePositionInterface"; import { Parser as EelParser, EelParserOptions } from '../eel/parser'; import { ParserHandoverResult, ParserInterface } from "../parserInterface"; import { Lexer } from "./lexer"; import { InlineEelNode } from "./nodes/InlineEelNode"; import { TagAttributeNode } from "./nodes/TagAttributeNode"; import { TagNode } from "./nodes/TagNode"; import { TagSpreadEelAttributeNode } from "./nodes/TagSpreadEelAttributeNode"; import { TextNode } from "./nodes/TextNode"; export interface AfxParserOptions { allowUnclosedTags: boolean; eelParserOptions?: EelParserOptions; } export declare class Parser implements ParserInterface { protected lexer: Lexer; nodesByType: Map<typeof AbstractNode, AbstractNode[]>; positionOffset: number; protected options: AfxParserOptions; constructor(lexer: Lexer, positionOffset?: number, options?: AfxParserOptions); protected applyOffset(position: NodePositionInterface): NodePositionInterface; parse(): (Comment | InlineEelNode | TextNode | TagNode)[]; parseText(parent?: AbstractNode | undefined): Generator<InlineEelNode | TextNode, void, unknown>; parseJavascript(parent?: AbstractNode | undefined): TextNode; parseTextsOrTags(parent?: AbstractNode | undefined): Generator<Comment | InlineEelNode | TextNode | TagNode, void, unknown>; parseComment(): Generator<Comment, void, unknown>; parseTag(parent?: AbstractNode | undefined): TagNode; parseSpreadEelAttribute(): TagSpreadEelAttributeNode; parseTagAttribute(): TagAttributeNode; parseLazyWhitespace(): void; handover<T extends AbstractNode>(parser: ParserInterface, parent?: AbstractNode | undefined): Array<T>; protected addNodesFromHandoverResult<T extends AbstractNode>(result: ParserHandoverResult<T>, parent?: AbstractNode | undefined): void; receiveHandover<T extends AbstractNode>(text: string): ParserHandoverResult<T>; logRemaining(cap?: number | undefined): void; protected addNodeToNodesByType(node: AbstractNode): void; protected flushNodesByType(): Map<typeof AbstractNode, AbstractNode[]>; protected buildEelParser(): EelParser; }