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

Method parse

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

Source from the content-addressed store, hash-verified

5416 this.args = { thing: thingElt, from, inElt, withinElt };
5417 }
5418 static parse(parser) {
5419 var op = parser.matchAnyToken("next", "previous");
5420 if (!op) return;
5421 var forwardSearch = op.value === "next";
5422 var thingElt = parser.parseElement("leaf");
5423 if (parser.matchToken("from")) {
5424 parser.pushFollow("in");
5425 try {
5426 var from = parser.requireElement("unaryExpression");
5427 } finally {
5428 parser.popFollow();
5429 }
5430 } else {
5431 var from = parser.requireElement("implicitMeTarget");
5432 }
5433 var inSearch = false;
5434 var withinElt;
5435 if (parser.matchToken("in")) {
5436 inSearch = true;
5437 var inElt = parser.requireElement("unaryExpression");
5438 } else if (parser.matchToken("within")) {
5439 withinElt = parser.requireElement("unaryExpression");
5440 } else {
5441 withinElt = null;
5442 }
5443 var wrapping = false;
5444 if (parser.matchToken("with")) {
5445 parser.requireToken("wrapping");
5446 wrapping = true;
5447 }
5448 return new _RelativePositionalExpression(
5449 thingElt,
5450 from,
5451 forwardSearch,
5452 inSearch,
5453 wrapping,
5454 inElt,
5455 withinElt,
5456 op.value
5457 );
5458 }
5459 scanForwardQuery(start, root, match, wrap) {
5460 var results = root.querySelectorAll(match);
5461 for (var i = 0; i < results.length; i++) {

Callers

nothing calls this directly

Calls 7

matchAnyTokenMethod · 0.45
parseElementMethod · 0.45
matchTokenMethod · 0.45
pushFollowMethod · 0.45
requireElementMethod · 0.45
popFollowMethod · 0.45
requireTokenMethod · 0.45

Tested by

no test coverage detected