(parser)
| 7932 | this.args = { on: onExpr, time, evt, from, classRef, classRef2, classRefs, betweenValues }; |
| 7933 | } |
| 7934 | static parse(parser) { |
| 7935 | if (!parser.matchToken("toggle")) return; |
| 7936 | parser.matchAnyToken("the", "my"); |
| 7937 | var visibility = false; |
| 7938 | var hideShowStrategy = null; |
| 7939 | var onExpr = null; |
| 7940 | var classRef = null; |
| 7941 | var classRef2 = null; |
| 7942 | var classRefs = null; |
| 7943 | var attributeRef = null; |
| 7944 | var attributeRef2 = null; |
| 7945 | var betweenClass = false; |
| 7946 | var betweenAttr = false; |
| 7947 | var toggleExpr = null; |
| 7948 | var styleProp = null; |
| 7949 | if (parser.currentToken().type === "STYLE_REF") { |
| 7950 | let styleRef = parser.consumeToken(); |
| 7951 | styleProp = styleRef.value.slice(1); |
| 7952 | visibility = true; |
| 7953 | hideShowStrategy = VisibilityCommand.resolveHideShowStrategy(parser, styleProp); |
| 7954 | if (parser.matchToken("of")) { |
| 7955 | var follows = parser.pushFollows("with", "between"); |
| 7956 | try { |
| 7957 | onExpr = parser.requireElement("expression"); |
| 7958 | } finally { |
| 7959 | parser.popFollows(follows); |
| 7960 | } |
| 7961 | } else { |
| 7962 | onExpr = parser.requireElement("implicitMeTarget"); |
| 7963 | } |
| 7964 | } else if (parser.matchToken("between")) { |
| 7965 | classRef = parser.parseElement("classRef"); |
| 7966 | if (classRef != null) { |
| 7967 | betweenClass = true; |
| 7968 | parser.requireToken("and"); |
| 7969 | classRef2 = parser.requireElement("classRef"); |
| 7970 | } else { |
| 7971 | betweenAttr = true; |
| 7972 | attributeRef = parser.parseElement("attributeRef"); |
| 7973 | if (attributeRef == null) { |
| 7974 | parser.raiseError("Expected either a class reference or attribute expression"); |
| 7975 | } |
| 7976 | parser.requireToken("and"); |
| 7977 | attributeRef2 = parser.requireElement("attributeRef"); |
| 7978 | } |
| 7979 | } else if (classRef = parser.parseElement("classRef")) { |
| 7980 | classRefs = [classRef]; |
| 7981 | while (classRef = parser.parseElement("classRef")) { |
| 7982 | classRefs.push(classRef); |
| 7983 | } |
| 7984 | } else if (attributeRef = parser.parseElement("attributeRef")) { |
| 7985 | } else { |
| 7986 | parser.pushFollow("between"); |
| 7987 | toggleExpr = parser.parseElement("assignableExpression"); |
| 7988 | parser.popFollow(); |
| 7989 | if (toggleExpr == null) { |
| 7990 | parser.raiseError("Expected a class reference, attribute, style property, or settable expression"); |
| 7991 | } |
nothing calls this directly
no test coverage detected