Class ReplaceMixins
- java.lang.Object
-
- com.google.common.css.compiler.ast.DefaultTreeVisitor
-
- com.google.common.css.compiler.passes.ReplaceMixins
-
- All Implemented Interfaces:
AtRuleHandler,CssCompilerPass,CssTreeVisitor
public class ReplaceMixins extends DefaultTreeVisitor implements CssCompilerPass
Compiler pass that replaces mixins with the corresponding mixin definitions and replaces the variables in the definitions with the values given by the mixin.In addition, this pass ensures that each mixin has a matching definition and that the argument count of the use and the definition is equal.
CollectMixinDefinitionshas to run before.ReplaceConstantReferenceshas to run afterwards.
-
-
Constructor Summary
Constructors Constructor Description ReplaceMixins(MutatingVisitController visitController, ErrorManager errorManager, java.util.Map<java.lang.String,CssMixinDefinitionNode> definitions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanenterArgumentNode(CssValueNode node)Called before visiting aCssFunctionNode's sub treesbooleanenterValueNode(CssValueNode node)Replaces a variable inside the copy of the mixin definition with the value given by the mixin.voidleaveDeclaration(CssDeclarationNode node)Called after visiting aCssDeclarationNode's sub treesvoidleaveDeclarationBlock(CssDeclarationBlockNode node)Called after visiting aCssDeclarationBlockNode's sub treesvoidleaveMixin(CssMixinNode node)Called after visiting aCssMixinNode's sub treesvoidrunPass()-
Methods inherited from class com.google.common.css.compiler.ast.DefaultTreeVisitor
enterAttributeSelector, enterBlock, enterCharSet, enterClassSelector, enterCombinator, enterComponent, enterCompositeValueNode, enterCompositeValueNodeOperator, enterConditionalBlock, enterConditionalRule, enterDeclaration, enterDeclarationBlock, enterDefinition, enterFontFace, enterForLoop, enterFunctionNode, enterIdSelector, enterImportBlock, enterImportRule, enterKey, enterKeyBlock, enterKeyframeRuleset, enterKeyframesRule, enterMediaRule, enterMediaTypeListDelimiter, enterMixin, enterMixinDefinition, enterPageRule, enterPageSelector, enterPropertyValue, enterProvideNode, enterPseudoClass, enterPseudoElement, enterRequireNode, enterRuleset, enterSelector, enterSelectorBlock, enterTree, enterUnknownAtRule, leaveArgumentNode, leaveAttributeSelector, leaveBlock, leaveCharSet, leaveClassSelector, leaveCombinator, leaveComponent, leaveCompositeValueNode, leaveCompositeValueNodeOperator, leaveConditionalBlock, leaveConditionalRule, leaveDefinition, leaveFontFace, leaveForLoop, leaveFunctionNode, leaveIdSelector, leaveImportBlock, leaveImportRule, leaveKey, leaveKeyBlock, leaveKeyframeRuleset, leaveKeyframesRule, leaveMediaRule, leaveMediaTypeListDelimiter, leaveMixinDefinition, leavePageRule, leavePageSelector, leavePropertyValue, leaveProvideNode, leavePseudoClass, leavePseudoElement, leaveRequireNode, leaveRuleset, leaveSelector, leaveSelectorBlock, leaveTree, leaveUnknownAtRule, leaveValueNode
-
-
-
-
Constructor Detail
-
ReplaceMixins
public ReplaceMixins(MutatingVisitController visitController, ErrorManager errorManager, java.util.Map<java.lang.String,CssMixinDefinitionNode> definitions)
-
-
Method Detail
-
leaveMixin
public void leaveMixin(CssMixinNode node)
Description copied from interface:AtRuleHandlerCalled after visiting aCssMixinNode's sub trees- Specified by:
leaveMixinin interfaceAtRuleHandler- Overrides:
leaveMixinin classDefaultTreeVisitor- Parameters:
node- node
-
leaveDeclaration
public void leaveDeclaration(CssDeclarationNode node)
Description copied from interface:CssTreeVisitorCalled after visiting aCssDeclarationNode's sub trees- Specified by:
leaveDeclarationin interfaceCssTreeVisitor- Overrides:
leaveDeclarationin classDefaultTreeVisitor
-
leaveDeclarationBlock
public void leaveDeclarationBlock(CssDeclarationBlockNode node)
Description copied from interface:CssTreeVisitorCalled after visiting aCssDeclarationBlockNode's sub trees- Specified by:
leaveDeclarationBlockin interfaceCssTreeVisitor- Overrides:
leaveDeclarationBlockin classDefaultTreeVisitor
-
enterValueNode
public boolean enterValueNode(CssValueNode node)
Replaces a variable inside the copy of the mixin definition with the value given by the mixin.- Specified by:
enterValueNodein interfaceCssTreeVisitor- Overrides:
enterValueNodein classDefaultTreeVisitor
-
enterArgumentNode
public boolean enterArgumentNode(CssValueNode node)
Description copied from interface:CssTreeVisitorCalled before visiting aCssFunctionNode's sub trees- Specified by:
enterArgumentNodein interfaceCssTreeVisitor- Overrides:
enterArgumentNodein classDefaultTreeVisitor
-
runPass
public void runPass()
- Specified by:
runPassin interfaceCssCompilerPass
-
-