UNPKG

@flowscripter/mpeg-sdl-parser

Version:

ISO/IEC 14496-34 Syntactic Description Language (MPEG SDL) parser implemented in TypeScript

107 lines (100 loc) 2.19 kB
import type { AbstractCompositeNode } from "../../src/ast/node/AbstractCompositeNode"; import type { AbstractLeafNode } from "../../src/ast/node/AbstractLeafNode"; import { NodeKind } from "../../src/ast/node/enum/node_kind"; import type { NodeHandler } from "../../src/ast/visitor/NodeHandler"; export default class HistoryRecordingNodeHandler implements NodeHandler { nodeHistory: string[] = []; beforeVisit(node: AbstractCompositeNode): void { this.nodeHistory.push(NodeKind[node.nodeKind]); } visit(node: AbstractLeafNode): void { this.nodeHistory.push(NodeKind[node.nodeKind]); } afterVisit(_node: AbstractCompositeNode): void { } } const expectedHistory = [ "SPECIFICATION", "STATEMENT", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "NUMBER_LITERAL", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "STATEMENT", "ELEMENTARY_TYPE", "IDENTIFIER", "NUMBER_LITERAL", "STATEMENT", "EXPRESSION", "EXPRESSION", "IDENTIFIER", "NUMBER_LITERAL", "EXPRESSION", "IDENTIFIER", "NUMBER_LITERAL", "STATEMENT", "STATEMENT", "IDENTIFIER", "IDENTIFIER", "STATEMENT", "EXPRESSION", "IDENTIFIER", "EXPRESSION", "EXPRESSION", "IDENTIFIER", "NUMBER_LITERAL", "EXPRESSION", "IDENTIFIER", "CLASS_MEMBER_ACCESS", "IDENTIFIER", "STATEMENT", "EXPRESSION", "EXPRESSION", "IDENTIFIER", "NUMBER_LITERAL", "EXPRESSION", "IDENTIFIER", "NUMBER_LITERAL", "STATEMENT", "STATEMENT", "ELEMENTARY_TYPE", "LENGTH_ATTRIBUTE", "NUMBER_LITERAL", "IDENTIFIER", "ARRAY_DIMENSION", "IDENTIFIER", ]; export { expectedHistory };