@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
text/typescript
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 };