MCPcopy
hub / github.com/thesysdev/openui / walkAST

Function walkAST

packages/lang-core/src/parser/ast.ts:109–150  ·  view source on GitHub ↗
(node: ASTNode, visit: (node: ASTNode) => void)

Source from the content-addressed store, hash-verified

107}
108
109export function walkAST(node: ASTNode, visit: (node: ASTNode) => void): void {
110 const walk = (current: ASTNode) => {
111 visit(current);
112
113 switch (current.k) {
114 case "Comp":
115 current.args.forEach(walk);
116 Object.values(current.mappedProps ?? {}).forEach(walk);
117 break;
118 case "Arr":
119 current.els.forEach(walk);
120 break;
121 case "Obj":
122 current.entries.forEach(([, value]) => walk(value));
123 break;
124 case "BinOp":
125 walk(current.left);
126 walk(current.right);
127 break;
128 case "UnaryOp":
129 walk(current.operand);
130 break;
131 case "Ternary":
132 walk(current.cond);
133 walk(current.then);
134 walk(current.else);
135 break;
136 case "Member":
137 walk(current.obj);
138 break;
139 case "Index":
140 walk(current.obj);
141 walk(current.index);
142 break;
143 case "Assign":
144 walk(current.value);
145 break;
146 }
147 };
148
149 walk(node);
150}
151
152// ─── Typed Statement model ─────────────────────────────────────────────────
153// Classification determined at parse time from token type + expression shape.

Callers 2

collectRefsFunction · 0.90
collectQueryDepsFunction · 0.90

Calls 1

walkFunction · 0.85

Tested by

no test coverage detected