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

Method parse

www/js/_hyperscript-max.js:8360–8403  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

8358 this.args = { target: targetExpr };
8359 }
8360 static parse(parser) {
8361 if (!parser.matchToken("measure")) return;
8362 var targetExpr;
8363 var propsToMeasure = [];
8364 var MEASURE_PROPS = [
8365 "x",
8366 "y",
8367 "left",
8368 "top",
8369 "right",
8370 "bottom",
8371 "width",
8372 "height",
8373 "bounds",
8374 "scrollLeft",
8375 "scrollTop",
8376 "scrollLeftMax",
8377 "scrollTopMax",
8378 "scrollWidth",
8379 "scrollHeight",
8380 "scroll"
8381 ];
8382 if (parser.commandBoundary(parser.currentToken())) {
8383 targetExpr = parser.parseElement("implicitMeTarget");
8384 } else {
8385 var expr = parser.requireElement("expression");
8386 if (expr.type === "symbol" && MEASURE_PROPS.includes(expr.name)) {
8387 targetExpr = parser.parseElement("implicitMeTarget");
8388 propsToMeasure.push(expr.name);
8389 } else if (expr.type === "possessive" && expr.prop) {
8390 targetExpr = expr.root;
8391 propsToMeasure.push(expr.prop.value);
8392 } else if (expr.type === "ofExpression" && expr.prop) {
8393 targetExpr = expr.root;
8394 propsToMeasure.push(expr.prop.value);
8395 } else {
8396 targetExpr = expr;
8397 }
8398 }
8399 while (parser.matchOpToken(",")) {
8400 propsToMeasure.push(parser.requireTokenType("IDENTIFIER").value);
8401 }
8402 return new _MeasureCommand(targetExpr, propsToMeasure);
8403 }
8404 resolve(ctx, { target }) {
8405 ctx.meta.runtime.nullCheck(target, this.targetExpr);
8406 if (0 in target) target = target[0];

Callers

nothing calls this directly

Calls 7

matchTokenMethod · 0.45
commandBoundaryMethod · 0.45
currentTokenMethod · 0.45
parseElementMethod · 0.45
requireElementMethod · 0.45
matchOpTokenMethod · 0.45
requireTokenTypeMethod · 0.45

Tested by

no test coverage detected