(parser)
| 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 { |
nothing calls this directly
no test coverage detected