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

Method parse

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

Source from the content-addressed store, hash-verified

5262 this.args = { exprs };
5263 }
5264 static parse(parser) {
5265 if (!parser.matchOpToken("{")) return;
5266 var stringParts = [""];
5267 var exprs = [];
5268 while (parser.hasMore()) {
5269 if (parser.matchOpToken("\\")) {
5270 parser.consumeToken();
5271 } else if (parser.matchOpToken("}")) {
5272 break;
5273 } else if (parser.matchToken("$")) {
5274 var opencurly = parser.matchOpToken("{");
5275 var expr = parser.parseElement("expression");
5276 if (opencurly) parser.requireOpToken("}");
5277 exprs.push(expr);
5278 stringParts.push("");
5279 } else {
5280 var tok = parser.consumeToken();
5281 stringParts[stringParts.length - 1] += parser.source.substring(tok.start, tok.end);
5282 }
5283 stringParts[stringParts.length - 1] += parser.lastWhitespace();
5284 }
5285 return new _StyleLiteral(stringParts, exprs);
5286 }
5287 resolve(ctx, { exprs }) {
5288 var rv = "";
5289 const stringParts = this.stringParts;

Callers

nothing calls this directly

Calls 7

matchOpTokenMethod · 0.45
hasMoreMethod · 0.45
consumeTokenMethod · 0.45
matchTokenMethod · 0.45
parseElementMethod · 0.45
requireOpTokenMethod · 0.45
lastWhitespaceMethod · 0.45

Tested by

no test coverage detected