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

Method parse

www/js/_hyperscript.js:5266–5288  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

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