| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of csslib.parser; | 5 part of csslib.parser; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * CSS polyfill emits CSS to be understood by older parsers that which do not | 8 * CSS polyfill emits CSS to be understood by older parsers that which do not |
| 9 * understand (var, calc, etc.). | 9 * understand (var, calc, etc.). |
| 10 */ | 10 */ |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 processVars(styleSheet); | 33 processVars(styleSheet); |
| 34 | 34 |
| 35 // Remove all var definitions for this style sheet. | 35 // Remove all var definitions for this style sheet. |
| 36 new _RemoveVarDefinitions().visitTree(styleSheet); | 36 new _RemoveVarDefinitions().visitTree(styleSheet); |
| 37 } | 37 } |
| 38 | 38 |
| 39 /** Process all includes looking for var definitions. */ | 39 /** Process all includes looking for var definitions. */ |
| 40 void processVarDefinitions(List<StyleSheet> includes) { | 40 void processVarDefinitions(List<StyleSheet> includes) { |
| 41 for (var include in includes) { | 41 for (var include in includes) { |
| 42 _allVarDefinitions = (new _VarDefinitionsIncludes(_allVarDefinitions) | 42 _allVarDefinitions = (new _VarDefinitionsIncludes(_allVarDefinitions) |
| 43 ..visitTree(include)).varDefs; | 43 ..visitTree(include)) |
| 44 .varDefs; |
| 44 } | 45 } |
| 45 } | 46 } |
| 46 | 47 |
| 47 void processVars(StyleSheet styleSheet) { | 48 void processVars(StyleSheet styleSheet) { |
| 48 // Build list of all var definitions. | 49 // Build list of all var definitions. |
| 49 var mainStyleSheetVarDefs = (new _VarDefAndUsage( | 50 var mainStyleSheetVarDefs = |
| 50 this._messages, _allVarDefinitions)..visitTree(styleSheet)).varDefs; | 51 (new _VarDefAndUsage(this._messages, _allVarDefinitions) |
| 52 ..visitTree(styleSheet)) |
| 53 .varDefs; |
| 51 | 54 |
| 52 // Resolve all definitions to a non-VarUsage (terminal expression). | 55 // Resolve all definitions to a non-VarUsage (terminal expression). |
| 53 mainStyleSheetVarDefs.forEach((key, value) { | 56 mainStyleSheetVarDefs.forEach((key, value) { |
| 54 for (var _ in (value.expression as Expressions).expressions) { | 57 for (var _ in (value.expression as Expressions).expressions) { |
| 55 mainStyleSheetVarDefs[key] = | 58 mainStyleSheetVarDefs[key] = |
| 56 _findTerminalVarDefinition(_allVarDefinitions, value); | 59 _findTerminalVarDefinition(_allVarDefinitions, value); |
| 57 } | 60 } |
| 58 }); | 61 }); |
| 59 } | 62 } |
| 60 } | 63 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 _messages.warning("Variable is not defined.", node.span); | 166 _messages.warning("Variable is not defined.", node.span); |
| 164 } | 167 } |
| 165 | 168 |
| 166 var oldExpressions = currentExpressions; | 169 var oldExpressions = currentExpressions; |
| 167 currentExpressions = node.defaultValues; | 170 currentExpressions = node.defaultValues; |
| 168 super.visitVarUsage(node); | 171 super.visitVarUsage(node); |
| 169 currentExpressions = oldExpressions; | 172 currentExpressions = oldExpressions; |
| 170 } | 173 } |
| 171 | 174 |
| 172 List<Expression> resolveUsageTerminal(VarUsage usage) { | 175 List<Expression> resolveUsageTerminal(VarUsage usage) { |
| 173 var result = []; | 176 var result = <Expression>[]; |
| 174 | 177 |
| 175 var varDef = _knownVarDefs[usage.name]; | 178 var varDef = _knownVarDefs[usage.name]; |
| 176 var expressions; | 179 var expressions; |
| 177 if (varDef == null) { | 180 if (varDef == null) { |
| 178 // VarDefinition not found try the defaultValues. | 181 // VarDefinition not found try the defaultValues. |
| 179 expressions = usage.defaultValues; | 182 expressions = usage.defaultValues; |
| 180 } else { | 183 } else { |
| 181 // Use the VarDefinition found. | 184 // Use the VarDefinition found. |
| 182 expressions = (varDef.expression as Expressions).expressions; | 185 expressions = (varDef.expression as Expressions).expressions; |
| 183 } | 186 } |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 } | 249 } |
| 247 } else { | 250 } else { |
| 248 // Return real CSS property. | 251 // Return real CSS property. |
| 249 return varDef; | 252 return varDef; |
| 250 } | 253 } |
| 251 } | 254 } |
| 252 | 255 |
| 253 // Didn't point to a var definition that existed. | 256 // Didn't point to a var definition that existed. |
| 254 return varDef; | 257 return varDef; |
| 255 } | 258 } |
| OLD | NEW |