(parser)
| 5416 | this.args = { thing: thingElt, from, inElt, withinElt }; |
| 5417 | } |
| 5418 | static parse(parser) { |
| 5419 | var op = parser.matchAnyToken("next", "previous"); |
| 5420 | if (!op) return; |
| 5421 | var forwardSearch = op.value === "next"; |
| 5422 | var thingElt = parser.parseElement("leaf"); |
| 5423 | if (parser.matchToken("from")) { |
| 5424 | parser.pushFollow("in"); |
| 5425 | try { |
| 5426 | var from = parser.requireElement("unaryExpression"); |
| 5427 | } finally { |
| 5428 | parser.popFollow(); |
| 5429 | } |
| 5430 | } else { |
| 5431 | var from = parser.requireElement("implicitMeTarget"); |
| 5432 | } |
| 5433 | var inSearch = false; |
| 5434 | var withinElt; |
| 5435 | if (parser.matchToken("in")) { |
| 5436 | inSearch = true; |
| 5437 | var inElt = parser.requireElement("unaryExpression"); |
| 5438 | } else if (parser.matchToken("within")) { |
| 5439 | withinElt = parser.requireElement("unaryExpression"); |
| 5440 | } else { |
| 5441 | withinElt = null; |
| 5442 | } |
| 5443 | var wrapping = false; |
| 5444 | if (parser.matchToken("with")) { |
| 5445 | parser.requireToken("wrapping"); |
| 5446 | wrapping = true; |
| 5447 | } |
| 5448 | return new _RelativePositionalExpression( |
| 5449 | thingElt, |
| 5450 | from, |
| 5451 | forwardSearch, |
| 5452 | inSearch, |
| 5453 | wrapping, |
| 5454 | inElt, |
| 5455 | withinElt, |
| 5456 | op.value |
| 5457 | ); |
| 5458 | } |
| 5459 | scanForwardQuery(start, root, match, wrap) { |
| 5460 | var results = root.querySelectorAll(match); |
| 5461 | for (var i = 0; i < results.length; i++) { |
nothing calls this directly
no test coverage detected