Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1594)

Unified Diff: mojo/public/dart/third_party/csslib/lib/visitor.dart

Issue 1346773002: Stop running pub get at gclient sync time and fix build bugs (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/dart/third_party/csslib/lib/visitor.dart
diff --git a/mojo/public/dart/third_party/csslib/lib/visitor.dart b/mojo/public/dart/third_party/csslib/lib/visitor.dart
new file mode 100644
index 0000000000000000000000000000000000000000..fa0f8d2bba3f39f1910dfa8704fac6df2f1cf251
--- /dev/null
+++ b/mojo/public/dart/third_party/csslib/lib/visitor.dart
@@ -0,0 +1,455 @@
+// Copyright (c) 2012, 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.
+
+library csslib.visitor;
+
+import 'package:source_span/source_span.dart';
+import 'parser.dart';
+
+part 'src/css_printer.dart';
+part 'src/tree.dart';
+part 'src/tree_base.dart';
+part 'src/tree_printer.dart';
+
+abstract class VisitorBase {
+ void visitCssComment(CssComment node);
+ void visitCommentDefinition(CommentDefinition node);
+ void visitStyleSheet(StyleSheet node);
+ void visitNoOp(NoOp node);
+ void visitTopLevelProduction(TopLevelProduction node);
+ void visitDirective(Directive node);
+ void visitMediaExpression(MediaExpression node);
+ void visitMediaQuery(MediaQuery node);
+ void visitMediaDirective(MediaDirective node);
+ void visitHostDirective(HostDirective node);
+ void visitPageDirective(PageDirective node);
+ void visitCharsetDirective(CharsetDirective node);
+ void visitImportDirective(ImportDirective node);
+ void visitKeyFrameDirective(KeyFrameDirective node);
+ void visitKeyFrameBlock(KeyFrameBlock node);
+ void visitFontFaceDirective(FontFaceDirective node);
+ void visitStyletDirective(StyletDirective node);
+ void visitNamespaceDirective(NamespaceDirective node);
+ void visitVarDefinitionDirective(VarDefinitionDirective node);
+ void visitMixinDefinition(MixinDefinition node);
+ void visitMixinRulesetDirective(MixinRulesetDirective node);
+ void visitMixinDeclarationDirective(MixinDeclarationDirective node);
+ void visitIncludeDirective(IncludeDirective node);
+ void visitContentDirective(ContentDirective node);
+
+ void visitRuleSet(RuleSet node);
+ void visitDeclarationGroup(DeclarationGroup node);
+ void visitMarginGroup(MarginGroup node);
+ void visitDeclaration(Declaration node);
+ void visitVarDefinition(VarDefinition node);
+ void visitIncludeMixinAtDeclaration(IncludeMixinAtDeclaration node);
+ void visitExtendDeclaration(ExtendDeclaration node);
+ void visitSelectorGroup(SelectorGroup node);
+ void visitSelector(Selector node);
+ void visitSimpleSelectorSequence(SimpleSelectorSequence node);
+ void visitSimpleSelector(SimpleSelector node);
+ void visitElementSelector(ElementSelector node);
+ void visitNamespaceSelector(NamespaceSelector node);
+ void visitAttributeSelector(AttributeSelector node);
+ void visitIdSelector(IdSelector node);
+ void visitClassSelector(ClassSelector node);
+ void visitPseudoClassSelector(PseudoClassSelector node);
+ void visitPseudoElementSelector(PseudoElementSelector node);
+ void visitPseudoClassFunctionSelector(PseudoClassFunctionSelector node);
+ void visitPseudoElementFunctionSelector(PseudoElementFunctionSelector node);
+ void visitNegationSelector(NegationSelector node);
+ void visitSelectorExpression(SelectorExpression node);
+
+ void visitUnicodeRangeTerm(UnicodeRangeTerm node);
+ void visitLiteralTerm(LiteralTerm node);
+ void visitHexColorTerm(HexColorTerm node);
+ void visitNumberTerm(NumberTerm node);
+ void visitUnitTerm(UnitTerm node);
+ void visitLengthTerm(LengthTerm node);
+ void visitPercentageTerm(PercentageTerm node);
+ void visitEmTerm(EmTerm node);
+ void visitExTerm(ExTerm node);
+ void visitAngleTerm(AngleTerm node);
+ void visitTimeTerm(TimeTerm node);
+ void visitFreqTerm(FreqTerm node);
+ void visitFractionTerm(FractionTerm node);
+ void visitUriTerm(UriTerm node);
+ void visitResolutionTerm(ResolutionTerm node);
+ void visitChTerm(ChTerm node);
+ void visitRemTerm(RemTerm node);
+ void visitViewportTerm(ViewportTerm node);
+ void visitFunctionTerm(FunctionTerm node);
+ void visitGroupTerm(GroupTerm node);
+ void visitItemTerm(ItemTerm node);
+ void visitIE8Term(IE8Term node);
+ void visitOperatorSlash(OperatorSlash node);
+ void visitOperatorComma(OperatorComma node);
+ void visitOperatorPlus(OperatorPlus node);
+ void visitOperatorMinus(OperatorMinus node);
+ void visitVarUsage(VarUsage node);
+
+ void visitExpressions(Expressions node);
+ void visitBinaryExpression(BinaryExpression node);
+ void visitUnaryExpression(UnaryExpression node);
+
+ void visitIdentifier(Identifier node);
+ void visitWildcard(Wildcard node);
+ void visitThisOperator(ThisOperator node);
+ void visitNegation(Negation node);
+
+ void visitDartStyleExpression(DartStyleExpression node);
+ void visitFontExpression(FontExpression node);
+ void visitBoxExpression(BoxExpression node);
+ void visitMarginExpression(MarginExpression node);
+ void visitBorderExpression(BorderExpression node);
+ void visitHeightExpression(HeightExpression node);
+ void visitPaddingExpression(PaddingExpression node);
+ void visitWidthExpression(WidthExpression node);
+}
+
+/** Base vistor class for the style sheet AST. */
+class Visitor implements VisitorBase {
+ /** Helper function to walk a list of nodes. */
+ void _visitNodeList(List<TreeNode> list) {
+ // Don't use iterable otherwise the list can't grow while using Visitor.
+ // It certainly can't have items deleted before the index being iterated
+ // but items could be added after the index.
+ for (var index = 0; index < list.length; index++) {
+ list[index].visit(this);
+ }
+ }
+
+ void visitTree(StyleSheet tree) => visitStyleSheet(tree);
+
+ void visitStyleSheet(StyleSheet ss) {
+ _visitNodeList(ss.topLevels);
+ }
+
+ void visitNoOp(NoOp node) {}
+
+ void visitTopLevelProduction(TopLevelProduction node) {}
+
+ void visitDirective(Directive node) {}
+
+ void visitCssComment(CssComment node) {}
+
+ void visitCommentDefinition(CommentDefinition node) {}
+
+ void visitMediaExpression(MediaExpression node) {
+ visitExpressions(node.exprs);
+ }
+
+ void visitMediaQuery(MediaQuery node) {
+ for (var mediaExpr in node.expressions) {
+ visitMediaExpression(mediaExpr);
+ }
+ }
+
+ void visitMediaDirective(MediaDirective node) {
+ for (var mediaQuery in node.mediaQueries) {
+ visitMediaQuery(mediaQuery);
+ }
+ for (var ruleset in node.rulesets) {
+ visitRuleSet(ruleset);
+ }
+ }
+
+ void visitHostDirective(HostDirective node) {
+ for (var ruleset in node.rulesets) {
+ visitRuleSet(ruleset);
+ }
+ }
+
+ void visitPageDirective(PageDirective node) {
+ for (var declGroup in node._declsMargin) {
+ if (declGroup is MarginGroup) {
+ visitMarginGroup(declGroup);
+ } else {
+ visitDeclarationGroup(declGroup);
+ }
+ }
+ }
+
+ void visitCharsetDirective(CharsetDirective node) {}
+
+ void visitImportDirective(ImportDirective node) {
+ for (var mediaQuery in node.mediaQueries) {
+ visitMediaQuery(mediaQuery);
+ }
+ }
+
+ void visitKeyFrameDirective(KeyFrameDirective node) {
+ visitIdentifier(node.name);
+ _visitNodeList(node._blocks);
+ }
+
+ void visitKeyFrameBlock(KeyFrameBlock node) {
+ visitExpressions(node._blockSelectors);
+ visitDeclarationGroup(node._declarations);
+ }
+
+ void visitFontFaceDirective(FontFaceDirective node) {
+ visitDeclarationGroup(node._declarations);
+ }
+
+ void visitStyletDirective(StyletDirective node) {
+ _visitNodeList(node.rulesets);
+ }
+
+ void visitNamespaceDirective(NamespaceDirective node) {}
+
+ void visitVarDefinitionDirective(VarDefinitionDirective node) {
+ visitVarDefinition(node.def);
+ }
+
+ void visitMixinRulesetDirective(MixinRulesetDirective node) {
+ _visitNodeList(node.rulesets);
+ }
+
+ void visitMixinDefinition(MixinDefinition node) {}
+
+ void visitMixinDeclarationDirective(MixinDeclarationDirective node) {
+ visitDeclarationGroup(node.declarations);
+ }
+
+ void visitIncludeDirective(IncludeDirective node) {
+ for (var index = 0; index < node.args.length; index++) {
+ var param = node.args[index];
+ _visitNodeList(param);
+ }
+ }
+
+ void visitContentDirective(ContentDirective node) {
+ // TODO(terry): TBD
+ }
+
+ void visitRuleSet(RuleSet node) {
+ visitSelectorGroup(node._selectorGroup);
+ visitDeclarationGroup(node._declarationGroup);
+ }
+
+ void visitDeclarationGroup(DeclarationGroup node) {
+ _visitNodeList(node.declarations);
+ }
+
+ void visitMarginGroup(MarginGroup node) => visitDeclarationGroup(node);
+
+ void visitDeclaration(Declaration node) {
+ visitIdentifier(node._property);
+ if (node._expression != null) node._expression.visit(this);
+ }
+
+ void visitVarDefinition(VarDefinition node) {
+ visitIdentifier(node._property);
+ if (node._expression != null) node._expression.visit(this);
+ }
+
+ void visitIncludeMixinAtDeclaration(IncludeMixinAtDeclaration node) {
+ visitIncludeDirective(node.include);
+ }
+
+ void visitExtendDeclaration(ExtendDeclaration node) {
+ _visitNodeList(node.selectors);
+ }
+
+ void visitSelectorGroup(SelectorGroup node) {
+ _visitNodeList(node.selectors);
+ }
+
+ void visitSelector(Selector node) {
+ _visitNodeList(node.simpleSelectorSequences);
+ }
+
+ void visitSimpleSelectorSequence(SimpleSelectorSequence node) {
+ node.simpleSelector.visit(this);
+ }
+
+ void visitSimpleSelector(SimpleSelector node) => node._name.visit(this);
+
+ void visitNamespaceSelector(NamespaceSelector node) {
+ if (node._namespace != null) node._namespace.visit(this);
+ if (node.nameAsSimpleSelector != null) {
+ node.nameAsSimpleSelector.visit(this);
+ }
+ }
+
+ void visitElementSelector(ElementSelector node) => visitSimpleSelector(node);
+
+ void visitAttributeSelector(AttributeSelector node) {
+ visitSimpleSelector(node);
+ }
+
+ void visitIdSelector(IdSelector node) => visitSimpleSelector(node);
+
+ void visitClassSelector(ClassSelector node) => visitSimpleSelector(node);
+
+ void visitPseudoClassSelector(PseudoClassSelector node) =>
+ visitSimpleSelector(node);
+
+ void visitPseudoElementSelector(PseudoElementSelector node) =>
+ visitSimpleSelector(node);
+
+ void visitPseudoClassFunctionSelector(PseudoClassFunctionSelector node) =>
+ visitSimpleSelector(node);
+
+ void visitPseudoElementFunctionSelector(PseudoElementFunctionSelector node) =>
+ visitSimpleSelector(node);
+
+ void visitNegationSelector(NegationSelector node) =>
+ visitSimpleSelector(node);
+
+ void visitSelectorExpression(SelectorExpression node) {
+ _visitNodeList(node.expressions);
+ }
+
+ void visitUnicodeRangeTerm(UnicodeRangeTerm node) {}
+
+ void visitLiteralTerm(LiteralTerm node) {}
+
+ void visitHexColorTerm(HexColorTerm node) {}
+
+ void visitNumberTerm(NumberTerm node) {}
+
+ void visitUnitTerm(UnitTerm node) {}
+
+ void visitLengthTerm(LengthTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitPercentageTerm(PercentageTerm node) {
+ visitLiteralTerm(node);
+ }
+
+ void visitEmTerm(EmTerm node) {
+ visitLiteralTerm(node);
+ }
+
+ void visitExTerm(ExTerm node) {
+ visitLiteralTerm(node);
+ }
+
+ void visitAngleTerm(AngleTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitTimeTerm(TimeTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitFreqTerm(FreqTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitFractionTerm(FractionTerm node) {
+ visitLiteralTerm(node);
+ }
+
+ void visitUriTerm(UriTerm node) {
+ visitLiteralTerm(node);
+ }
+
+ void visitResolutionTerm(ResolutionTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitChTerm(ChTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitRemTerm(RemTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitViewportTerm(ViewportTerm node) {
+ visitUnitTerm(node);
+ }
+
+ void visitFunctionTerm(FunctionTerm node) {
+ visitLiteralTerm(node);
+ visitExpressions(node._params);
+ }
+
+ void visitGroupTerm(GroupTerm node) {
+ for (var term in node._terms) {
+ term.visit(this);
+ }
+ }
+
+ void visitItemTerm(ItemTerm node) {
+ visitNumberTerm(node);
+ }
+
+ void visitIE8Term(IE8Term node) {}
+
+ void visitOperatorSlash(OperatorSlash node) {}
+
+ void visitOperatorComma(OperatorComma node) {}
+
+ void visitOperatorPlus(OperatorPlus node) {}
+
+ void visitOperatorMinus(OperatorMinus node) {}
+
+ void visitVarUsage(VarUsage node) {
+ _visitNodeList(node.defaultValues);
+ }
+
+ void visitExpressions(Expressions node) {
+ _visitNodeList(node.expressions);
+ }
+
+ void visitBinaryExpression(BinaryExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitUnaryExpression(UnaryExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitIdentifier(Identifier node) {}
+
+ void visitWildcard(Wildcard node) {}
+
+ void visitThisOperator(ThisOperator node) {}
+
+ void visitNegation(Negation node) {}
+
+ void visitDartStyleExpression(DartStyleExpression node) {}
+
+ void visitFontExpression(FontExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitBoxExpression(BoxExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitMarginExpression(MarginExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitBorderExpression(BorderExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitHeightExpression(HeightExpression node) {
+ // TODO(terry): TB
+ throw UnimplementedError;
+ }
+
+ void visitPaddingExpression(PaddingExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+
+ void visitWidthExpression(WidthExpression node) {
+ // TODO(terry): TBD
+ throw UnimplementedError;
+ }
+}
« no previous file with comments | « mojo/public/dart/third_party/csslib/lib/src/validate.dart ('k') | mojo/public/dart/third_party/csslib/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698