示例#1
0
        protected virtual BoundExpression RewriteMatchExpression(BoundMatchExpression node)
        {
            var expr            = this.RewriteExpression(node.Expression);
            var patternSections = this.RewritePatternSectionExpressions(node.PatternSections);

            if (expr == node.Expression && patternSections.SequenceEqual(node.PatternSections))
            {
                return(node);
            }

            return(new BoundMatchExpression(node.Syntax, expr, patternSections));
        }
示例#2
0
        private static void WriteMatchExpression(BoundMatchExpression node, IndentedTextWriter writer)
        {
            writer.WriteKeyword(SyntaxKind.MatchKeyword);
            writer.WriteSpace();
            node.Expression.WriteTo(writer);
            writer.WriteLine();
            writer.WriteKeyword(SyntaxKind.OpenBraceToken);
            writer.Indent++;

            foreach (var patternSection in node.PatternSections)
            {
                patternSection.WriteTo(writer);
            }

            writer.Indent--;
            writer.WriteKeyword(SyntaxKind.CloseBraceToken);
        }