Index: pkg/csslib/lib/src/tree_printer.dart |
diff --git a/pkg/csslib/lib/src/tree_printer.dart b/pkg/csslib/lib/src/tree_printer.dart |
deleted file mode 100644 |
index 3a8b74821a1660a24c94932868f315566a75871e..0000000000000000000000000000000000000000 |
--- a/pkg/csslib/lib/src/tree_printer.dart |
+++ /dev/null |
@@ -1,558 +0,0 @@ |
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-part of csslib.visitor; |
- |
-// TODO(terry): Enable class for debug only; when conditional imports enabled. |
- |
-/** Helper function to dump the CSS AST. */ |
-String treeToDebugString(StyleSheet styleSheet, [bool useSpan = false]) { |
- var to = new TreeOutput(); |
- new _TreePrinter(to, useSpan)..visitTree(styleSheet); |
- return to.toString(); |
-} |
- |
-/** Tree dump for debug output of the CSS AST. */ |
-class _TreePrinter extends Visitor { |
- final TreeOutput output; |
- final bool useSpan; |
- _TreePrinter(this.output, this.useSpan) { output.printer = this; } |
- |
- void visitTree(StyleSheet tree) => visitStylesheet(tree); |
- |
- void heading(String heading, node) { |
- if (useSpan) { |
- output.heading(heading, node.span); |
- } else { |
- output.heading(heading); |
- } |
- } |
- |
- void visitStylesheet(StyleSheet node) { |
- heading('Stylesheet', node); |
- output.depth++; |
- super.visitStyleSheet(node); |
- output.depth--; |
- } |
- |
- void visitTopLevelProduction(TopLevelProduction node) { |
- heading('TopLevelProduction', node); |
- } |
- |
- void visitDirective(Directive node) { |
- heading('Directive', node); |
- } |
- |
- void visitCssComment(CssComment node) { |
- heading('Comment', node); |
- output.depth++; |
- output.writeValue('comment value', node.comment); |
- output.depth--; |
- } |
- |
- void visitCommentDefinition(CommentDefinition node) { |
- heading('CommentDefinition (CDO/CDC)', node); |
- output.depth++; |
- output.writeValue('comment value', node.comment); |
- output.depth--; |
- } |
- |
- void visitMediaExpression(MediaExpression node) { |
- heading('MediaExpression', node); |
- output.writeValue('feature', node.mediaFeature); |
- if (node.andOperator) output.writeValue('AND operator', ''); |
- visitExpressions(node.exprs); |
- } |
- |
- void visitMediaQueries(MediaQuery query) { |
- output.heading('MediaQueries'); |
- output.writeValue('unary', query.unary); |
- output.writeValue('media type', query.mediaType); |
- output.writeNodeList('media expressions', query.expressions); |
- } |
- |
- void visitMediaDirective(MediaDirective node) { |
- heading('MediaDirective', node); |
- output.depth++; |
- output.writeNodeList('media queries', node.mediaQueries); |
- output.writeNodeList('rule sets', node.rulesets); |
- super.visitMediaDirective(node); |
- output.depth--; |
- } |
- |
- void visitPageDirective(PageDirective node) { |
- heading('PageDirective', node); |
- output.depth++; |
- output.writeValue('pseudo page', node._pseudoPage); |
- super.visitPageDirective(node); |
- output.depth; |
- } |
- |
- void visitCharsetDirective(CharsetDirective node) { |
- heading('Charset Directive', node); |
- output.writeValue('charset encoding', node.charEncoding); |
- } |
- |
- void visitImportDirective(ImportDirective node) { |
- heading('ImportDirective', node); |
- output.depth++; |
- output.writeValue('import', node.import); |
- super.visitImportDirective(node); |
- output.writeNodeList('media', node.mediaQueries); |
- output.depth--; |
- } |
- |
- void visitContentDirective(ContentDirective node) { |
- print("ContentDirective not implemented"); |
- } |
- |
- void visitKeyFrameDirective(KeyFrameDirective node) { |
- heading('KeyFrameDirective', node); |
- output.depth++; |
- output.writeValue('keyframe', node.keyFrameName); |
- output.writeValue('name', node.name); |
- output.writeNodeList('blocks', node._blocks); |
- output.depth--; |
- } |
- |
- void visitKeyFrameBlock(KeyFrameBlock node) { |
- heading('KeyFrameBlock', node); |
- output.depth++; |
- super.visitKeyFrameBlock(node); |
- output.depth--; |
- } |
- |
- void visitFontFaceDirective(FontFaceDirective node) { |
- // TODO(terry): To Be Implemented |
- } |
- |
- void visitStyletDirective(StyletDirective node) { |
- heading('StyletDirective', node); |
- output.writeValue('dartClassName', node.dartClassName); |
- output.depth++; |
- output.writeNodeList('rulesets', node.rulesets); |
- output.depth--; |
- } |
- |
- void visitNamespaceDirective(NamespaceDirective node) { |
- heading('NamespaceDirective', node); |
- output.depth++; |
- output.writeValue('prefix', node._prefix); |
- output.writeValue('uri', node._uri); |
- output.depth--; |
- } |
- |
- void visitVarDefinitionDirective(VarDefinitionDirective node) { |
- heading('Less variable definition', node); |
- output.depth++; |
- visitVarDefinition(node.def); |
- output.depth--; |
- } |
- |
- void visitMixinRulesetDirective(MixinRulesetDirective node) { |
- heading('Mixin top-level ${node.name}', node); |
- output.writeNodeList('parameters', node.definedArgs); |
- output.depth++; |
- _visitNodeList(node.rulesets); |
- output.depth--; |
- } |
- |
- void visitMixinDeclarationDirective(MixinDeclarationDirective node) { |
- heading('Mixin declaration ${node.name}', node); |
- output.writeNodeList('parameters', node.definedArgs); |
- output.depth++; |
- visitDeclarationGroup(node.declarations); |
- output.depth--; |
- } |
- |
- /** |
- * Added optional newLine for handling @include at top-level vs/ inside of |
- * a declaration group. |
- */ |
- void visitIncludeDirective(IncludeDirective node) { |
- heading('IncludeDirective ${node.name}', node); |
- var flattened = node.args.expand((e) => e).toList(); |
- output.writeNodeList('parameters', flattened); |
- } |
- |
- void visitIncludeMixinAtDeclaration(IncludeMixinAtDeclaration node) { |
- heading('IncludeMixinAtDeclaration ${node.include.name}', node); |
- output.depth++; |
- visitIncludeDirective(node.include); |
- output.depth--; |
- } |
- |
- void visitExtendDeclaration(ExtendDeclaration node) { |
- heading('ExtendDeclaration', node); |
- output.depth++; |
- _visitNodeList(node.selectors); |
- output.depth--; |
- } |
- |
- void visitRuleSet(RuleSet node) { |
- heading('Ruleset', node); |
- output.depth++; |
- super.visitRuleSet(node); |
- output.depth--; |
- } |
- |
- void visitDeclarationGroup(DeclarationGroup node) { |
- heading('DeclarationGroup', node); |
- output.depth++; |
- output.writeNodeList('declarations', node.declarations); |
- output.depth--; |
- } |
- |
- void visitMarginGroup(MarginGroup node) { |
- heading('MarginGroup', node); |
- output.depth++; |
- output.writeValue('@directive', node.margin_sym); |
- output.writeNodeList('declarations', node.declarations); |
- output.depth--; |
- } |
- |
- void visitDeclaration(Declaration node) { |
- heading('Declaration', node); |
- output.depth++; |
- if (node.isIE7) output.write('IE7 property'); |
- output.write('property'); |
- super.visitDeclaration(node); |
- output.writeNode('expression', node._expression); |
- if (node.important) { |
- output.writeValue('!important', 'true'); |
- } |
- output.depth--; |
- } |
- |
- void visitVarDefinition(VarDefinition node) { |
- heading('Var', node); |
- output.depth++; |
- output.write('defintion'); |
- super.visitVarDefinition(node); |
- output.writeNode('expression', node._expression); |
- output.depth--; |
- } |
- |
- void visitSelectorGroup(SelectorGroup node) { |
- heading('Selector Group', node); |
- output.depth++; |
- output.writeNodeList('selectors', node.selectors); |
- output.depth--; |
- } |
- |
- void visitSelector(Selector node) { |
- heading('Selector', node); |
- output.depth++; |
- output.writeNodeList('simpleSelectorsSequences', |
- node.simpleSelectorSequences); |
- output.depth--; |
- } |
- |
- void visitSimpleSelectorSequence(SimpleSelectorSequence node) { |
- heading('SimpleSelectorSequence', node); |
- output.depth++; |
- if (node.isCombinatorNone) { |
- output.writeValue('combinator', "NONE"); |
- } else if (node.isCombinatorDescendant) { |
- output.writeValue('combinator', "descendant"); |
- } else if (node.isCombinatorPlus) { |
- output.writeValue('combinator', "+"); |
- } else if (node.isCombinatorGreater) { |
- output.writeValue('combinator', ">"); |
- } else if (node.isCombinatorTilde) { |
- output.writeValue('combinator', "~"); |
- } else { |
- output.writeValue('combinator', "ERROR UNKNOWN"); |
- } |
- |
- super.visitSimpleSelectorSequence(node); |
- |
- output.depth--; |
- } |
- |
- void visitNamespaceSelector(NamespaceSelector node) { |
- heading('Namespace Selector', node); |
- output.depth++; |
- |
- super.visitNamespaceSelector(node); |
- |
- visitSimpleSelector(node.nameAsSimpleSelector); |
- output.depth--; |
- } |
- |
- void visitElementSelector(ElementSelector node) { |
- heading('Element Selector', node); |
- output.depth++; |
- super.visitElementSelector(node); |
- output.depth--; |
- } |
- |
- void visitAttributeSelector(AttributeSelector node) { |
- heading('AttributeSelector', node); |
- output.depth++; |
- super.visitAttributeSelector(node); |
- String tokenStr = node.matchOperatorAsTokenString(); |
- output.writeValue('operator', '${node.matchOperator()} (${tokenStr})'); |
- output.writeValue('value', node.valueToString()); |
- output.depth--; |
- } |
- |
- void visitIdSelector(IdSelector node) { |
- heading('Id Selector', node); |
- output.depth++; |
- super.visitIdSelector(node); |
- output.depth--; |
- } |
- |
- void visitClassSelector(ClassSelector node) { |
- heading('Class Selector', node); |
- output.depth++; |
- super.visitClassSelector(node); |
- output.depth--; |
- } |
- |
- void visitPseudoClassSelector(PseudoClassSelector node) { |
- heading('Pseudo Class Selector', node); |
- output.depth++; |
- super.visitPseudoClassSelector(node); |
- output.depth--; |
- } |
- |
- void visitPseudoElementSelector(PseudoElementSelector node) { |
- heading('Pseudo Element Selector', node); |
- output.depth++; |
- super.visitPseudoElementSelector(node); |
- output.depth--; |
- } |
- |
- void visitPseudoClassFunctionSelector(PseudoClassFunctionSelector node) { |
- heading('Pseudo Class Function Selector', node); |
- output.depth++; |
- visitSelectorExpression(node.expression); |
- super.visitPseudoClassFunctionSelector(node); |
- output.depth--; |
- } |
- |
- void visitPseudoElementFunctionSelector(PseudoElementFunctionSelector node) { |
- heading('Pseudo Element Function Selector', node); |
- output.depth++; |
- visitSelectorExpression(node.expression); |
- super.visitPseudoElementFunctionSelector(node); |
- output.depth--; |
- } |
- |
- void visitSelectorExpression(SelectorExpression node) { |
- heading('Selector Expression', node); |
- output.depth++; |
- output.writeNodeList('expressions', node.expressions); |
- output.depth--; |
- } |
- |
- void visitNegationSelector(NegationSelector node) { |
- super.visitNegationSelector(node); |
- output.depth++; |
- heading('Negation Selector', node); |
- output.writeNode('Negation arg', node.negationArg); |
- output.depth--; |
- } |
- |
- void visitUnicodeRangeTerm(UnicodeRangeTerm node) { |
- heading('UnicodeRangeTerm', node); |
- output.depth++; |
- output.writeValue('1st value', node.first); |
- output.writeValue('2nd value', node.second); |
- output.depth--; |
- } |
- |
- void visitLiteralTerm(LiteralTerm node) { |
- heading('LiteralTerm', node); |
- output.depth++; |
- output.writeValue('value', node.text); |
- output.depth--; |
- } |
- |
- void visitHexColorTerm(HexColorTerm node) { |
- heading('HexColorTerm', node); |
- output.depth++; |
- output.writeValue('hex value', node.text); |
- output.writeValue('decimal value', node.value); |
- output.depth--; |
- } |
- |
- void visitNumberTerm(NumberTerm node) { |
- heading('NumberTerm', node); |
- output.depth++; |
- output.writeValue('value', node.text); |
- output.depth--; |
- } |
- |
- void visitUnitTerm(UnitTerm node) { |
- String unitValue; |
- |
- output.depth++; |
- output.writeValue('value', node.text); |
- output.writeValue('unit', node.unitToString()); |
- output.depth--; |
- } |
- |
- void visitLengthTerm(LengthTerm node) { |
- heading('LengthTerm', node); |
- super.visitLengthTerm(node); |
- } |
- |
- void visitPercentageTerm(PercentageTerm node) { |
- heading('PercentageTerm', node); |
- output.depth++; |
- super.visitPercentageTerm(node); |
- output.depth--; |
- } |
- |
- void visitEmTerm(EmTerm node) { |
- heading('EmTerm', node); |
- output.depth++; |
- super.visitEmTerm(node); |
- output.depth--; |
- } |
- |
- void visitExTerm(ExTerm node) { |
- heading('ExTerm', node); |
- output.depth++; |
- super.visitExTerm(node); |
- output.depth--; |
- } |
- |
- void visitAngleTerm(AngleTerm node) { |
- heading('AngleTerm', node); |
- super.visitAngleTerm(node); |
- } |
- |
- void visitTimeTerm(TimeTerm node) { |
- heading('TimeTerm', node); |
- super.visitTimeTerm(node); |
- } |
- |
- void visitFreqTerm(FreqTerm node) { |
- heading('FreqTerm', node); |
- super.visitFreqTerm(node); |
- } |
- |
- void visitFractionTerm(FractionTerm node) { |
- heading('FractionTerm', node); |
- output.depth++; |
- super.visitFractionTerm(node); |
- output.depth--; |
- } |
- |
- void visitUriTerm(UriTerm node) { |
- heading('UriTerm', node); |
- output.depth++; |
- super.visitUriTerm(node); |
- output.depth--; |
- } |
- |
- void visitFunctionTerm(FunctionTerm node) { |
- heading('FunctionTerm', node); |
- output.depth++; |
- super.visitFunctionTerm(node); |
- output.depth--; |
- } |
- |
- void visitGroupTerm(GroupTerm node) { |
- heading('GroupTerm', node); |
- output.depth++; |
- output.writeNodeList('grouped terms', node._terms); |
- output.depth--; |
- } |
- |
- void visitItemTerm(ItemTerm node) { |
- heading('ItemTerm', node); |
- super.visitItemTerm(node); |
- } |
- |
- void visitIE8Term(IE8Term node) { |
- heading('IE8Term', node); |
- visitLiteralTerm(node); |
- } |
- |
- void visitOperatorSlash(OperatorSlash node) { |
- heading('OperatorSlash', node); |
- } |
- |
- void visitOperatorComma(OperatorComma node) { |
- heading('OperatorComma', node); |
- } |
- |
- void visitOperatorPlus(OperatorPlus node) { |
- heading('OperatorPlus', node); |
- } |
- |
- void visitOperatorMinus(OperatorMinus node) { |
- heading('OperatorMinus', node); |
- } |
- |
- void visitVarUsage(VarUsage node) { |
- heading('Var', node); |
- output.depth++; |
- output.write('usage ${node.name}'); |
- output.writeNodeList('default values', node.defaultValues); |
- output.depth--; |
- } |
- |
- void visitExpressions(Expressions node) { |
- heading('Expressions', node); |
- output.depth++; |
- output.writeNodeList('expressions', node.expressions); |
- output.depth--; |
- } |
- |
- void visitBinaryExpression(BinaryExpression node) { |
- heading('BinaryExpression', node); |
- // TODO(terry): TBD |
- } |
- |
- void visitUnaryExpression(UnaryExpression node) { |
- heading('UnaryExpression', node); |
- // TODO(terry): TBD |
- } |
- |
- void visitIdentifier(Identifier node) { |
- heading('Identifier(${output.toValue(node.name)})', node); |
- } |
- |
- void visitWildcard(Wildcard node) { |
- heading('Wildcard(*)', node); |
- } |
- |
- void visitDartStyleExpression(DartStyleExpression node) { |
- heading('DartStyleExpression', node); |
- } |
- |
- void visitFontExpression(FontExpression node) { |
- heading('Dart Style FontExpression', node); |
- } |
- |
- void visitBoxExpression(BoxExpression node) { |
- heading('Dart Style BoxExpression', node); |
- } |
- |
- void visitMarginExpression(MarginExpression node) { |
- heading('Dart Style MarginExpression', node); |
- } |
- |
- void visitBorderExpression(BorderExpression node) { |
- heading('Dart Style BorderExpression', node); |
- } |
- |
- void visitHeightExpression(HeightExpression node) { |
- heading('Dart Style HeightExpression', node); |
- } |
- |
- void visitPaddingExpression(PaddingExpression node) { |
- heading('Dart Style PaddingExpression', node); |
- } |
- |
- void visitWidthExpression(WidthExpression node) { |
- heading('Dart Style WidthExpression', node); |
- } |
-} |