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

Method parse

www/js/_hyperscript.js:9793–9818  ·  view source on GitHub ↗

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

(parser)

Source from the content-addressed store, hash-verified

9791 * @returns {WhenFeature | undefined}
9792 */
9793 static parse(parser) {
9794 if (!parser.matchToken("when")) return;
9795 var exprs = [];
9796 do {
9797 parser.pushFollow("or");
9798 try {
9799 exprs.push(parser.requireElement("expression"));
9800 } finally {
9801 parser.popFollow();
9802 }
9803 } while (parser.matchToken("or"));
9804 for (var i = 0; i < exprs.length; i++) {
9805 var expr = exprs[i];
9806 if (expr.type === "symbol" && expr.scope === "local" && !expr.name.startsWith("$") && !expr.name.startsWith(":")) {
9807 parser.raiseError(
9808 "Cannot watch local variable '" + expr.name + "'. Local variables are not reactive. Use '$" + expr.name + "' (global) or ':" + expr.name + "' (element-scoped) instead."
9809 );
9810 }
9811 }
9812 parser.requireToken("changes");
9813 var start = parser.requireElement("commandList");
9814 parser.ensureTerminated(start);
9815 var feature = new _WhenFeature(exprs, start);
9816 parser.setParent(start, feature);
9817 return feature;
9818 }
9819 constructor(exprs, start) {
9820 super();
9821 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