MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/_hyperscript.esm.js:6655–6687  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

6653 this.args = { root: rootExpr, prop: this.prop, value };
6654 }
6655 static parse(parser) {
6656 if (!parser.matchToken("put")) return;
6657 var value = parser.requireElement("expression");
6658 var operationToken = parser.matchAnyToken("into", "before", "after");
6659 if (operationToken == null && parser.matchToken("at")) {
6660 parser.matchToken("the");
6661 operationToken = parser.matchAnyToken("start", "end");
6662 parser.requireToken("of");
6663 }
6664 if (operationToken == null) {
6665 parser.raiseExpected("into", "before", "at start of", "at end of", "after");
6666 }
6667 var target = parser.requireElement("expression");
6668 while (target.type === "parenthesized") target = target.expr;
6669 var operation = operationToken.value;
6670 var rootExpr;
6671 if (target.type === "arrayIndex" && operation === "into") {
6672 rootExpr = target.root;
6673 } else if (target.prop && target.root && operation === "into") {
6674 rootExpr = target.root;
6675 } else if (target.type === "symbol" && operation === "into") {
6676 rootExpr = null;
6677 } else if (target.type === "attributeRef" && operation === "into") {
6678 rootExpr = parser.requireElement("implicitMeTarget");
6679 } else if (target.type === "styleRef" && operation === "into") {
6680 rootExpr = parser.requireElement("implicitMeTarget");
6681 } else if (target.attribute && operation === "into") {
6682 rootExpr = target.root;
6683 } else {
6684 rootExpr = target;
6685 }
6686 return new _PutCommand(target, operation, value, rootExpr);
6687 }
6688 putInto(context, root, prop, valueToPut) {
6689 if (root == null) {
6690 var value = context.meta.runtime.resolveSymbol(prop, context);

Callers

nothing calls this directly

Calls 5

matchTokenMethod · 0.45
requireElementMethod · 0.45
matchAnyTokenMethod · 0.45
requireTokenMethod · 0.45
raiseExpectedMethod · 0.45

Tested by

no test coverage detected