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

Method parse

tools/common/_hyperscript.iife.js:7911–7954  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

7909 this.args = { target: targetExpr };
7910 }
7911 static parse(parser) {
7912 if (!parser.matchToken("measure")) return;
7913 var targetExpr;
7914 var propsToMeasure = [];
7915 var MEASURE_PROPS = [
7916 "x",
7917 "y",
7918 "left",
7919 "top",
7920 "right",
7921 "bottom",
7922 "width",
7923 "height",
7924 "bounds",
7925 "scrollLeft",
7926 "scrollTop",
7927 "scrollLeftMax",
7928 "scrollTopMax",
7929 "scrollWidth",
7930 "scrollHeight",
7931 "scroll"
7932 ];
7933 if (parser.commandBoundary(parser.currentToken())) {
7934 targetExpr = parser.parseElement("implicitMeTarget");
7935 } else {
7936 var expr = parser.requireElement("expression");
7937 if (expr.type === "symbol" && MEASURE_PROPS.includes(expr.name)) {
7938 targetExpr = parser.parseElement("implicitMeTarget");
7939 propsToMeasure.push(expr.name);
7940 } else if (expr.type === "possessive" && expr.prop) {
7941 targetExpr = expr.root;
7942 propsToMeasure.push(expr.prop.value);
7943 } else if (expr.type === "ofExpression" && expr.prop) {
7944 targetExpr = expr.root;
7945 propsToMeasure.push(expr.prop.value);
7946 } else {
7947 targetExpr = expr;
7948 }
7949 }
7950 while (parser.matchOpToken(",")) {
7951 propsToMeasure.push(parser.requireTokenType("IDENTIFIER").value);
7952 }
7953 return new _MeasureCommand(targetExpr, propsToMeasure);
7954 }
7955 resolve(ctx, { target }) {
7956 ctx.meta.runtime.nullCheck(target, this.targetExpr);
7957 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