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