(parser)
| 7512 | this.args = { on: onExpr, time, evt, from, classRef, classRef2, classRefs, betweenValues }; |
| 7513 | } |
| 7514 | static parse(parser) { |
| 7515 | if (!parser.matchToken("toggle")) return; |
| 7516 | parser.matchAnyToken("the", "my"); |
| 7517 | var visibility = false; |
| 7518 | var hideShowStrategy = null; |
| 7519 | var onExpr = null; |
| 7520 | var classRef = null; |
| 7521 | var classRef2 = null; |
| 7522 | var classRefs = null; |
| 7523 | var attributeRef = null; |
| 7524 | var attributeRef2 = null; |
| 7525 | var betweenClass = false; |
| 7526 | var betweenAttr = false; |
| 7527 | var toggleExpr = null; |
| 7528 | var styleProp = null; |
| 7529 | if (parser.currentToken().type === "STYLE_REF") { |
| 7530 | let styleRef = parser.consumeToken(); |
| 7531 | styleProp = styleRef.value.slice(1); |
| 7532 | visibility = true; |
| 7533 | hideShowStrategy = VisibilityCommand.resolveHideShowStrategy(parser, styleProp); |
| 7534 | if (parser.matchToken("of")) { |
| 7535 | var follows = parser.pushFollows("with", "between"); |
| 7536 | try { |
| 7537 | onExpr = parser.requireElement("expression"); |
| 7538 | } finally { |
| 7539 | parser.popFollows(follows); |
| 7540 | } |
| 7541 | } else { |
| 7542 | onExpr = parser.requireElement("implicitMeTarget"); |
| 7543 | } |
| 7544 | } else if (parser.matchToken("between")) { |
| 7545 | classRef = parser.parseElement("classRef"); |
| 7546 | if (classRef != null) { |
| 7547 | betweenClass = true; |
| 7548 | parser.requireToken("and"); |
| 7549 | classRef2 = parser.requireElement("classRef"); |
| 7550 | } else { |
| 7551 | betweenAttr = true; |
| 7552 | attributeRef = parser.parseElement("attributeRef"); |
| 7553 | if (attributeRef == null) { |
| 7554 | parser.raiseError("Expected either a class reference or attribute expression"); |
| 7555 | } |
| 7556 | parser.requireToken("and"); |
| 7557 | attributeRef2 = parser.requireElement("attributeRef"); |
| 7558 | } |
| 7559 | } else if (classRef = parser.parseElement("classRef")) { |
| 7560 | classRefs = [classRef]; |
| 7561 | while (classRef = parser.parseElement("classRef")) { |
| 7562 | classRefs.push(classRef); |
| 7563 | } |
| 7564 | } else if (attributeRef = parser.parseElement("attributeRef")) { |
| 7565 | } else { |
| 7566 | parser.pushFollow("between"); |
| 7567 | toggleExpr = parser.parseElement("assignableExpression"); |
| 7568 | parser.popFollow(); |
| 7569 | if (toggleExpr == null) { |
| 7570 | parser.raiseError("Expected a class reference, attribute, style property, or settable expression"); |
| 7571 | } |
nothing calls this directly
no test coverage detected