MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / #consumeTemplateIdentifier

Method #consumeTemplateIdentifier

src/core/tokenizer.js:539–566  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

537 }
538
539 #consumeTemplateIdentifier() {
540 var token = this.#makeToken("IDENTIFIER");
541 var value = this.#consumeChar();
542 var escaped = value === "\\";
543 if (escaped) value = "";
544 while (this.#isAlpha(this.#currentChar()) ||
545 this.#isNumeric(this.#currentChar()) ||
546 this.#isIdentifierChar(this.#currentChar()) ||
547 this.#currentChar() === "\\" ||
548 this.#currentChar() === "{" ||
549 this.#currentChar() === "}") {
550 if (this.#currentChar() === "$" && !escaped) {
551 break;
552 } else if (this.#currentChar() === "\\") {
553 escaped = true;
554 this.#consumeChar();
555 } else {
556 escaped = false;
557 value += this.#consumeChar();
558 }
559 }
560 if (this.#currentChar() === "!" && value === "beep") {
561 value += this.#consumeChar();
562 }
563 token.value = value;
564 token.end = this.#position;
565 return token;
566 }
567
568 #consumeIdentifier() {
569 var token = this.#makeToken("IDENTIFIER");

Callers 1

#tokenizeMethod · 0.95

Calls 6

#makeTokenMethod · 0.95
#consumeCharMethod · 0.95
#isAlphaMethod · 0.95
#currentCharMethod · 0.95
#isNumericMethod · 0.95
#isIdentifierCharMethod · 0.95

Tested by

no test coverage detected