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.visitor; | 5 part of csslib.visitor; |
6 | 6 |
7 /** | 7 /** |
8 * Visitor that produces a formatted string representation of the CSS tree. | 8 * Visitor that produces a formatted string representation of the CSS tree. |
9 */ | 9 */ |
10 class CssPrinter extends Visitor { | 10 class CssPrinter extends Visitor { |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 void visitPageDirective(PageDirective node) { | 97 void visitPageDirective(PageDirective node) { |
98 emit('$_newLine@page'); | 98 emit('$_newLine@page'); |
99 if (node.hasIdent || node.hasPseudoPage) { | 99 if (node.hasIdent || node.hasPseudoPage) { |
100 if (node.hasIdent) emit(' '); | 100 if (node.hasIdent) emit(' '); |
101 emit(node._ident); | 101 emit(node._ident); |
102 emit(node.hasPseudoPage ? ':${node._pseudoPage}' : ''); | 102 emit(node.hasPseudoPage ? ':${node._pseudoPage}' : ''); |
103 } | 103 } |
104 emit(' '); | 104 emit(' '); |
105 | 105 |
106 var declsMargin = node._declsMargin; | 106 var declsMargin = node._declsMargin; |
107 int declsMarginLength = declsMargin.length; | 107 var declsMarginLength = declsMargin.length; |
108 for (var i = 0; i < declsMarginLength; i++) { | 108 for (var i = 0; i < declsMarginLength; i++) { |
109 if (i > 0) emit(_newLine); | 109 if (i > 0) emit(_newLine); |
110 emit('{$_newLine'); | 110 emit('{$_newLine'); |
111 declsMargin[i].visit(this); | 111 declsMargin[i].visit(this); |
112 emit('}'); | 112 emit('}'); |
113 } | 113 } |
114 } | 114 } |
115 | 115 |
116 /** @charset "charset encoding" */ | 116 /** @charset "charset encoding" */ |
117 void visitCharsetDirective(CharsetDirective node) { | 117 void visitCharsetDirective(CharsetDirective node) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 | 154 |
155 void visitKeyFrameBlock(KeyFrameBlock node) { | 155 void visitKeyFrameBlock(KeyFrameBlock node) { |
156 emit('$_sp$_sp'); | 156 emit('$_sp$_sp'); |
157 node._blockSelectors.visit(this); | 157 node._blockSelectors.visit(this); |
158 emit('$_sp{$_newLine'); | 158 emit('$_sp{$_newLine'); |
159 node._declarations.visit(this); | 159 node._declarations.visit(this); |
160 emit('$_sp$_sp}$_newLine'); | 160 emit('$_sp$_sp}$_newLine'); |
161 } | 161 } |
162 | 162 |
163 void visitStyletDirective(StyletDirective node) { | 163 void visitStyletDirective(StyletDirective node) { |
164 emit('/* @stylet export as ${node._dartClassName} */\n'); | 164 emit('/* @stylet export as ${node.dartClassName} */\n'); |
165 } | 165 } |
166 | 166 |
167 void visitNamespaceDirective(NamespaceDirective node) { | 167 void visitNamespaceDirective(NamespaceDirective node) { |
168 bool isStartingQuote(String ch) => ('\'"'.indexOf(ch) >= 0); | 168 bool isStartingQuote(String ch) => ('\'"'.indexOf(ch) >= 0); |
169 | 169 |
170 if (isStartingQuote(node._uri)) { | 170 if (isStartingQuote(node._uri)) { |
171 emit(' @namespace ${node.prefix}"${node._uri}"'); | 171 emit(' @namespace ${node.prefix}"${node._uri}"'); |
172 } else { | 172 } else { |
173 if (_isTesting) { | 173 if (_isTesting) { |
174 // Emit exactly was we parsed. | 174 // Emit exactly was we parsed. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 | 217 |
218 void visitRuleSet(RuleSet node) { | 218 void visitRuleSet(RuleSet node) { |
219 emit("$_newLine"); | 219 emit("$_newLine"); |
220 node._selectorGroup.visit(this); | 220 node._selectorGroup.visit(this); |
221 emit(" {$_newLine"); | 221 emit(" {$_newLine"); |
222 node._declarationGroup.visit(this); | 222 node._declarationGroup.visit(this); |
223 emit("}"); | 223 emit("}"); |
224 } | 224 } |
225 | 225 |
226 void visitDeclarationGroup(DeclarationGroup node) { | 226 void visitDeclarationGroup(DeclarationGroup node) { |
227 var declarations = node._declarations; | 227 var declarations = node.declarations; |
228 var declarationsLength = declarations.length; | 228 var declarationsLength = declarations.length; |
229 for (var i = 0; i < declarationsLength; i++) { | 229 for (var i = 0; i < declarationsLength; i++) { |
230 if (i > 0) emit(_newLine); | 230 if (i > 0) emit(_newLine); |
231 emit("$_sp$_sp"); | 231 emit("$_sp$_sp"); |
232 declarations[i].visit(this); | 232 declarations[i].visit(this); |
233 emit(";"); | 233 emit(";"); |
234 } | 234 } |
235 if (declarationsLength > 0) emit(_newLine); | 235 if (declarationsLength > 0) emit(_newLine); |
236 } | 236 } |
237 | 237 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 emit(')'); | 331 emit(')'); |
332 } | 332 } |
333 | 333 |
334 void visitNegationSelector(NegationSelector node) { | 334 void visitNegationSelector(NegationSelector node) { |
335 emit(':not('); | 335 emit(':not('); |
336 node.negationArg.visit(this); | 336 node.negationArg.visit(this); |
337 emit(')'); | 337 emit(')'); |
338 } | 338 } |
339 | 339 |
340 void visitSelectorExpression(SelectorExpression node) { | 340 void visitSelectorExpression(SelectorExpression node) { |
341 var expressions = node._expressions; | 341 var expressions = node.expressions; |
342 var expressionsLength = expressions.length; | 342 var expressionsLength = expressions.length; |
343 for (var i = 0; i < expressionsLength; i++) { | 343 for (var i = 0; i < expressionsLength; i++) { |
344 // Add space seperator between terms without an operator. | 344 // Add space seperator between terms without an operator. |
345 var expression = expressions[i]; | 345 var expression = expressions[i]; |
346 expression.visit(this); | 346 expression.visit(this); |
347 } | 347 } |
348 } | 348 } |
349 | 349 |
350 void visitUnicodeRangeTerm(UnicodeRangeTerm node) { | 350 void visitUnicodeRangeTerm(UnicodeRangeTerm node) { |
351 if (node.hasSecond) { | 351 if (node.hasSecond) { |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 | 508 |
509 void visitWildcard(Wildcard node) { | 509 void visitWildcard(Wildcard node) { |
510 emit('*'); | 510 emit('*'); |
511 } | 511 } |
512 | 512 |
513 void visitDartStyleExpression(DartStyleExpression node) { | 513 void visitDartStyleExpression(DartStyleExpression node) { |
514 // TODO(terry): TBD | 514 // TODO(terry): TBD |
515 throw UnimplementedError; | 515 throw UnimplementedError; |
516 } | 516 } |
517 } | 517 } |
OLD | NEW |