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

Function parseObj

packages/lang-core/src/parser/expressions.ts:311–328  ·  view source on GitHub ↗

Parse `{ key: value, ... }`

()

Source from the content-addressed store, hash-verified

309
310 /** Parse `{ key: value, ... }` */
311 function parseObj(): ASTNode {
312 adv(); // skip {
313 const entries: [string, ASTNode][] = [];
314 while (cur().t !== T.RBrace && cur().t !== T.EOF) {
315 const kt = cur();
316 const key =
317 kt.t === T.Ident || kt.t === T.Str || kt.t === T.Type || kt.t === T.Num
318 ? (adv(), String(kt.v))
319 : kt.t === T.StateVar
320 ? (adv(), (kt.v as string).replace(/^\$/, ""))
321 : (adv(), "?");
322 eat(T.Colon);
323 entries.push([key, parseExpr(0)]);
324 if (cur().t === T.Comma) adv();
325 }
326 eat(T.RBrace);
327 return { k: "Obj", entries };
328 }
329
330 return parseExpr(0);
331}

Callers 1

parsePrefixFunction · 0.85

Calls 5

advFunction · 0.85
curFunction · 0.85
eatFunction · 0.85
parseExprFunction · 0.85
pushMethod · 0.80

Tested by

no test coverage detected