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

Method parse

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

Source from the content-addressed store, hash-verified

4608 }
4609 }
4610 static parse(parser) {
4611 var expr = parser.parseElement("mathOperator");
4612 var comparisonToken = parser.matchAnyOpToken("<", ">", "<=", ">=", "==", "===", "!=", "!==");
4613 var operator = comparisonToken ? comparisonToken.value : null;
4614 var hasRightValue = true;
4615 var typeCheck = false;
4616 if (operator == null) {
4617 if (parser.matchToken("is") || parser.matchToken("am")) {
4618 if (parser.matchToken("not")) {
4619 if (parser.matchToken("in")) {
4620 operator = "not in";
4621 } else if (parser.matchToken("a") || parser.matchToken("an")) {
4622 operator = "not a";
4623 typeCheck = true;
4624 } else if (parser.matchToken("empty")) {
4625 operator = "not empty";
4626 hasRightValue = false;
4627 } else if (parser.matchToken("between")) {
4628 operator = "not between";
4629 } else if (parser.matchToken("really")) {
4630 operator = "!==";
4631 if (parser.matchToken("equal")) parser.matchToken("to");
4632 } else if (parser.matchToken("equal")) {
4633 parser.matchToken("to");
4634 operator = "!=";
4635 } else {
4636 operator = "is not";
4637 }
4638 } else if (parser.matchToken("in")) {
4639 operator = "in";
4640 } else if (parser.matchToken("a") || parser.matchToken("an")) {
4641 operator = "a";
4642 typeCheck = true;
4643 } else if (parser.matchToken("empty")) {
4644 operator = "empty";
4645 hasRightValue = false;
4646 } else if (parser.matchToken("between")) {
4647 operator = "between";
4648 } else if (parser.matchToken("less")) {
4649 parser.requireToken("than");
4650 if (parser.matchToken("or")) {
4651 parser.requireToken("equal");
4652 parser.requireToken("to");
4653 operator = "<=";
4654 } else {
4655 operator = "<";
4656 }
4657 } else if (parser.matchToken("greater")) {
4658 parser.requireToken("than");
4659 if (parser.matchToken("or")) {
4660 parser.requireToken("equal");
4661 parser.requireToken("to");
4662 operator = ">=";
4663 } else {
4664 operator = ">";
4665 }
4666 } else if (parser.matchToken("really")) {
4667 operator = "===";

Callers

nothing calls this directly

Calls 8

parseElementMethod · 0.45
matchAnyOpTokenMethod · 0.45
matchTokenMethod · 0.45
requireTokenMethod · 0.45
raiseExpectedMethod · 0.45
requireTokenTypeMethod · 0.45
matchOpTokenMethod · 0.45
requireElementMethod · 0.45

Tested by

no test coverage detected