/// <summary> /// Compiles a <see cref="UvssRule"/> from the specified syntax node. /// </summary> private static UvssRule CompileRule(UvssRuleSyntax node, CultureInfo culture) { var owner = node.PropertyName.AttachedPropertyOwnerNameIdentifier?.Text; var name = node.PropertyName.PropertyNameIdentifier.Text; var value = node.Value.Value; var isImportant = node.QualifierToken?.Kind == SyntaxKind.ImportantKeyword; return(new UvssRule( new UvssRuleArgumentsCollection(null), owner, name, value, isImportant)); }
/// <inheritdoc/> public override SyntaxNode VisitRule(UvssRuleSyntax node) { var unchanged = true; var newPropertyName = (UvssPropertyNameSyntax)Visit(node.PropertyName); if (newPropertyName != node.PropertyName) { unchanged = false; } var newColonToken = (SyntaxToken)Visit(node.ColonToken); if (newColonToken != node.ColonToken) { unchanged = false; } var newValue = (UvssPropertyValueSyntax)Visit(node.Value); if (newValue != node.Value) { unchanged = false; } var newQualifierToken = (SyntaxToken)Visit(node.QualifierToken); if (newQualifierToken != node.QualifierToken) { unchanged = false; } var newSemiColonToken = (SyntaxToken)Visit(node.SemiColonToken); if (newSemiColonToken != node.SemiColonToken) { unchanged = false; } return(unchanged ? node : new UvssRuleSyntax( newPropertyName, newColonToken, newValue, newQualifierToken, newSemiColonToken)); }
/// <summary> /// Visits the specified rule node. /// </summary> /// <param name="node">The node to visit.</param> /// <returns>A node which should replace the visited node, or a reference to the visited node /// itself if no changes were made.</returns> public virtual SyntaxNode VisitRule(UvssRuleSyntax node) { return(VisitSyntaxNode(node)); }
/// <summary> /// Visits a rule node. /// </summary> /// <param name="rule">The rule node to visit.</param> private void VisitRule(UvssRuleSyntax rule) { Style(rule.ColonToken, typeUvssPropertyName); }