MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

tools/common/_hyperscript.iife.js:9339–9364  ·  view source on GitHub ↗

* Parse when feature * @param {Parser} parser * @returns {WhenFeature | undefined}

(parser)

Source from the content-addressed store, hash-verified

9337 * @returns {WhenFeature | undefined}
9338 */
9339 static parse(parser) {
9340 if (!parser.matchToken("when")) return;
9341 var exprs = [];
9342 do {
9343 parser.pushFollow("or");
9344 try {
9345 exprs.push(parser.requireElement("expression"));
9346 } finally {
9347 parser.popFollow();
9348 }
9349 } while (parser.matchToken("or"));
9350 for (var i = 0; i < exprs.length; i++) {
9351 var expr = exprs[i];
9352 if (expr.type === "symbol" && expr.scope === "default" && !expr.name.startsWith("$") && !expr.name.startsWith(":")) {
9353 parser.raiseError(
9354 "Cannot watch local variable '" + expr.name + "'. Local variables are not reactive. Use '$" + expr.name + "' (global) or ':" + expr.name + "' (element-scoped) instead."
9355 );
9356 }
9357 }
9358 parser.requireToken("changes");
9359 var start = parser.requireElement("commandList");
9360 parser.ensureTerminated(start);
9361 var feature = new _WhenFeature(exprs, start);
9362 parser.setParent(start, feature);
9363 return feature;
9364 }
9365 constructor(exprs, start) {
9366 super();
9367 this.exprs = exprs;

Callers

nothing calls this directly

Calls 8

matchTokenMethod · 0.45
pushFollowMethod · 0.45
requireElementMethod · 0.45
popFollowMethod · 0.45
raiseErrorMethod · 0.45
requireTokenMethod · 0.45
ensureTerminatedMethod · 0.45
setParentMethod · 0.45

Tested by

no test coverage detected