MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

tools/common/_hyperscript.iife.js:4287–4429  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

4285 }
4286 }
4287 static parse(parser) {
4288 var expr = parser.parseElement("mathOperator");
4289 var comparisonToken = parser.matchAnyOpToken("<", ">", "<=", ">=", "==", "===", "!=", "!==");
4290 var operator = comparisonToken ? comparisonToken.value : null;
4291 var hasRightValue = true;
4292 var typeCheck = false;
4293 if (operator == null) {
4294 if (parser.matchToken("is") || parser.matchToken("am")) {
4295 if (parser.matchToken("not")) {
4296 if (parser.matchToken("in")) {
4297 operator = "not in";
4298 } else if (parser.matchToken("a") || parser.matchToken("an")) {
4299 operator = "not a";
4300 typeCheck = true;
4301 } else if (parser.matchToken("empty")) {
4302 operator = "not empty";
4303 hasRightValue = false;
4304 } else if (parser.matchToken("between")) {
4305 operator = "not between";
4306 } else {
4307 if (parser.matchToken("really")) {
4308 operator = "!==";
4309 } else {
4310 operator = "!=";
4311 }
4312 if (parser.matchToken("equal")) {
4313 parser.matchToken("to");
4314 }
4315 }
4316 } else if (parser.matchToken("in")) {
4317 operator = "in";
4318 } else if (parser.matchToken("a") || parser.matchToken("an")) {
4319 operator = "a";
4320 typeCheck = true;
4321 } else if (parser.matchToken("empty")) {
4322 operator = "empty";
4323 hasRightValue = false;
4324 } else if (parser.matchToken("between")) {
4325 operator = "between";
4326 } else if (parser.matchToken("less")) {
4327 parser.requireToken("than");
4328 if (parser.matchToken("or")) {
4329 parser.requireToken("equal");
4330 parser.requireToken("to");
4331 operator = "<=";
4332 } else {
4333 operator = "<";
4334 }
4335 } else if (parser.matchToken("greater")) {
4336 parser.requireToken("than");
4337 if (parser.matchToken("or")) {
4338 parser.requireToken("equal");
4339 parser.requireToken("to");
4340 operator = ">=";
4341 } else {
4342 operator = ">";
4343 }
4344 } else {

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