/// <inheritdoc/> public override SyntaxNode VisitPropertyTriggerCondition(UvssPropertyTriggerConditionSyntax node) { var unchanged = true; var newPropertyName = (UvssPropertyNameSyntax)Visit(node.PropertyName); if (newPropertyName != node.PropertyName) { unchanged = false; } var newComparisonOperatorToken = (SyntaxToken)Visit(node.ComparisonOperatorToken); if (newComparisonOperatorToken != node.ComparisonOperatorToken) { unchanged = false; } var newValue = (UvssPropertyValueWithBracesSyntax)Visit(node.PropertyValue); if (newValue != node.PropertyValue) { unchanged = false; } return(unchanged ? node : new UvssPropertyTriggerConditionSyntax( newPropertyName, newComparisonOperatorToken, newValue)); }
/// <summary> /// Compiles a <see cref="UvssPropertyTriggerCondition"/> from the specified syntax node. /// </summary> private static UvssPropertyTriggerCondition CompilePropertyTriggerCondition(UvssPropertyTriggerConditionSyntax node, CultureInfo culture) { var op = default(TriggerComparisonOp); var propertyName = new DependencyName(GetPropertyName(node.PropertyName)); var propertyValue = new DependencyValue(node.PropertyValue.Value, culture); switch (node.ComparisonOperatorToken.Kind) { case SyntaxKind.EqualsToken: op = TriggerComparisonOp.Equals; break; case SyntaxKind.NotEqualsToken: op = TriggerComparisonOp.NotEquals; break; case SyntaxKind.GreaterThanToken: op = TriggerComparisonOp.GreaterThan; break; case SyntaxKind.LessThanToken: op = TriggerComparisonOp.LessThan; break; case SyntaxKind.GreaterThanEqualsToken: op = TriggerComparisonOp.GreaterThanOrEqualTo; break; case SyntaxKind.LessThanEqualsToken: op = TriggerComparisonOp.LessThanOrEqualTo; break; default: throw new UvssException(PresentationStrings.StyleSheetParserError); } return(new UvssPropertyTriggerCondition(op, propertyName, propertyValue)); }
/// <summary> /// Visits the specified property trigger condition 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 VisitPropertyTriggerCondition(UvssPropertyTriggerConditionSyntax node) { return(VisitSyntaxNode(node)); }