UNPKG

@visactor/vgrammar-core

Version:

VGrammar is a visual grammar library

15 lines (14 loc) 605 B
import { GrammarMarkType } from "./enums"; export const traverseMarkTree = (rootMark, childrenKey, apply, filter, leafFirst) => { const traverse = mark => { if (leafFirst || !mark || filter && !filter(mark) || apply.call(null, mark), mark.markType === GrammarMarkType.group) { const children = mark[childrenKey]; children && children.forEach((child => { traverse(child); })); } leafFirst && (!mark || filter && !filter(mark) || apply.call(null, mark)); }; traverse(rootMark); }; //# sourceMappingURL=mark-tree.js.map