internal static string ToDisplayName(this BinaryOperatorKind operatorKind) { switch (operatorKind) { case BinaryOperatorKind.Power: return(SyntaxKind.AsteriskAsteriskToken.GetText()); case BinaryOperatorKind.Multiply: return(SyntaxKind.AsteriskToken.GetText()); case BinaryOperatorKind.Divide: return(SyntaxKind.SlashToken.GetText()); case BinaryOperatorKind.Modulus: return(SyntaxKind.PercentToken.GetText()); case BinaryOperatorKind.Add: return(SyntaxKind.PlusToken.GetText()); case BinaryOperatorKind.Sub: return(SyntaxKind.MinusToken.GetText()); case BinaryOperatorKind.Equal: return(SyntaxKind.EqualsToken.GetText()); case BinaryOperatorKind.NotEqual: return(SyntaxKind.ExclamationEqualsToken.GetText()); case BinaryOperatorKind.Less: return(SyntaxKind.LessToken.GetText()); case BinaryOperatorKind.LessOrEqual: return(SyntaxKind.LessEqualToken.GetText()); case BinaryOperatorKind.Greater: return(SyntaxKind.GreaterToken.GetText()); case BinaryOperatorKind.GreaterOrEqual: return(SyntaxKind.GreaterEqualToken.GetText()); case BinaryOperatorKind.BitXor: return(SyntaxKind.CaretToken.GetText()); case BinaryOperatorKind.BitAnd: return(SyntaxKind.AmpersandToken.GetText()); case BinaryOperatorKind.BitOr: return(SyntaxKind.BarToken.GetText()); case BinaryOperatorKind.LeftShift: return(SyntaxKind.LessLessToken.GetText()); case BinaryOperatorKind.RightShift: return(SyntaxKind.GreaterGreaterToken.GetText()); case BinaryOperatorKind.Like: return(SyntaxKind.LikeKeyword.GetText()); case BinaryOperatorKind.SimilarTo: return(SyntaxKind.SimilarKeyword.GetText() + @" " + SyntaxKind.ToKeyword.GetText()); case BinaryOperatorKind.SoundsLike: return(SyntaxKind.SoundsKeyword.GetText() + @" " + SyntaxKind.LikeKeyword.GetText()); case BinaryOperatorKind.LogicalAnd: return(SyntaxKind.AndKeyword.GetText()); case BinaryOperatorKind.LogicalOr: return(SyntaxKind.OrKeyword.GetText()); default: throw ExceptionBuilder.UnexpectedValue(operatorKind); } }
internal static BinaryOperatorKind ToBinaryOperatorKind(this SyntaxKind expressionKind) { switch (expressionKind) { case SyntaxKind.BitwiseAndExpression: return(BinaryOperatorKind.BitAnd); case SyntaxKind.BitwiseOrExpression: return(BinaryOperatorKind.BitOr); case SyntaxKind.ExclusiveOrExpression: return(BinaryOperatorKind.BitXor); case SyntaxKind.AddExpression: return(BinaryOperatorKind.Add); case SyntaxKind.SubExpression: return(BinaryOperatorKind.Sub); case SyntaxKind.MultiplyExpression: return(BinaryOperatorKind.Multiply); case SyntaxKind.DivideExpression: return(BinaryOperatorKind.Divide); case SyntaxKind.ModuloExpression: return(BinaryOperatorKind.Modulus); case SyntaxKind.PowerExpression: return(BinaryOperatorKind.Power); case SyntaxKind.EqualExpression: return(BinaryOperatorKind.Equal); case SyntaxKind.NotEqualExpression: return(BinaryOperatorKind.NotEqual); case SyntaxKind.LessExpression: return(BinaryOperatorKind.Less); case SyntaxKind.NotGreaterExpression: case SyntaxKind.LessOrEqualExpression: return(BinaryOperatorKind.LessOrEqual); case SyntaxKind.GreaterExpression: return(BinaryOperatorKind.Greater); case SyntaxKind.NotLessExpression: case SyntaxKind.GreaterOrEqualExpression: return(BinaryOperatorKind.GreaterOrEqual); case SyntaxKind.LeftShiftExpression: return(BinaryOperatorKind.LeftShift); case SyntaxKind.RightShiftExpression: return(BinaryOperatorKind.RightShift); case SyntaxKind.LogicalAndExpression: return(BinaryOperatorKind.LogicalAnd); case SyntaxKind.LogicalOrExpression: return(BinaryOperatorKind.LogicalOr); case SyntaxKind.LikeExpression: return(BinaryOperatorKind.Like); case SyntaxKind.SoundsLikeExpression: return(BinaryOperatorKind.SoundsLike); case SyntaxKind.SimilarToExpression: return(BinaryOperatorKind.SimilarTo); default: throw ExceptionBuilder.UnexpectedValue(expressionKind); } }
public static string GetMessage(this DiagnosticId diagnosticId) { switch (diagnosticId) { case DiagnosticId.IllegalInputCharacter: return(Resources.IllegalInputCharacter); case DiagnosticId.UnterminatedComment: return(Resources.UnterminatedComment); case DiagnosticId.UnterminatedString: return(Resources.UnterminatedString); case DiagnosticId.UnterminatedQuotedIdentifier: return(Resources.UnterminatedQuotedIdentifier); case DiagnosticId.UnterminatedParenthesizedIdentifier: return(Resources.UnterminatedParenthesizedIdentifier); case DiagnosticId.UnterminatedDate: return(Resources.UnterminatedDate); case DiagnosticId.InvalidDate: return(Resources.InvalidDate); case DiagnosticId.InvalidInteger: return(Resources.InvalidInteger); case DiagnosticId.InvalidReal: return(Resources.InvalidReal); case DiagnosticId.InvalidBinary: return(Resources.InvalidBinary); case DiagnosticId.InvalidOctal: return(Resources.InvalidOctal); case DiagnosticId.InvalidHex: return(Resources.InvalidHex); case DiagnosticId.NumberTooLarge: return(Resources.NumberTooLarge); case DiagnosticId.TokenExpected: return(Resources.TokenExpected); case DiagnosticId.InvalidOperatorForAllAny: return(Resources.InvalidOperatorForAllAny); case DiagnosticId.UndeclaredTable: return(Resources.UndeclaredTable); case DiagnosticId.UndeclaredTableInstance: return(Resources.UndeclaredTableInstance); case DiagnosticId.UndeclaredVariable: return(Resources.UndeclaredVariable); case DiagnosticId.UndeclaredFunction: return(Resources.UndeclaredFunction); case DiagnosticId.UndeclaredAggregate: return(Resources.UndeclaredAggregate); case DiagnosticId.UndeclaredMethod: return(Resources.UndeclaredMethod); case DiagnosticId.UndeclaredColumn: return(Resources.UndeclaredColumn); case DiagnosticId.UndeclaredProperty: return(Resources.UndeclaredProperty); case DiagnosticId.UndeclaredType: return(Resources.UndeclaredType); case DiagnosticId.ColumnTableOrVariableNotDeclared: return(Resources.ColumnTableOrVariableNotDeclared); case DiagnosticId.AmbiguousReference: return(Resources.AmbiguousReference); case DiagnosticId.AmbiguousColumnRef: return(Resources.AmbiguousColumnRef); case DiagnosticId.AmbiguousTable: return(Resources.AmbiguousTable); case DiagnosticId.AmbiguousVariable: return(Resources.AmbiguousVariable); case DiagnosticId.AmbiguousAggregate: return(Resources.AmbiguousAggregate); case DiagnosticId.AmbiguousProperty: return(Resources.AmbiguousProperty); case DiagnosticId.AmbiguousInvocation: return(Resources.AmbiguousInvocation); case DiagnosticId.InvocationRequiresParenthesis: return(Resources.InvocationRequiresParenthesis); case DiagnosticId.CannotApplyUnaryOperator: return(Resources.CannotApplyUnaryOperator); case DiagnosticId.AmbiguousUnaryOperator: return(Resources.AmbiguousUnaryOperator); case DiagnosticId.CannotApplyBinaryOperator: return(Resources.CannotApplyBinaryOperator); case DiagnosticId.AmbiguousBinaryOperator: return(Resources.AmbiguousBinaryOperator); case DiagnosticId.AmbiguousConversion: return(Resources.AmbiguousConversion); case DiagnosticId.WhenMustEvaluateToBool: return(Resources.WhenMustEvaluateToBool); case DiagnosticId.CannotConvert: return(Resources.CannotConvert); case DiagnosticId.MustSpecifyTableToSelectFrom: return(Resources.MustSpecifyTableToSelectFrom); case DiagnosticId.AggregateCannotContainAggregate: return(Resources.AggregateCannotContainAggregate); case DiagnosticId.AggregateCannotContainSubquery: return(Resources.AggregateCannotContainSubquery); case DiagnosticId.GroupByCannotContainSubquery: return(Resources.GroupByCannotContainSubquery); case DiagnosticId.AggregateDoesNotSupportType: return(Resources.AggregateDoesNotSupportType); case DiagnosticId.AggregateInWhere: return(Resources.AggregateInWhere); case DiagnosticId.AggregateInOn: return(Resources.AggregateInOn); case DiagnosticId.AggregateInGroupBy: return(Resources.AggregateInGroupBy); case DiagnosticId.AggregateContainsColumnsFromDifferentQueries: return(Resources.AggregateContainsColumnsFromDifferentQueries); case DiagnosticId.AggregateInvalidInCurrentContext: return(Resources.AggregateInvalidInCurrentContext); case DiagnosticId.DuplicateTableRefInFrom: return(Resources.DuplicateTableRefInFrom); case DiagnosticId.TopWithTiesRequiresOrderBy: return(Resources.TopWithTiesRequiresOrderBy); case DiagnosticId.OrderByColumnPositionIsOutOfRange: return(Resources.OrderByColumnPositionIsOutOfRange); case DiagnosticId.WhereClauseMustEvaluateToBool: return(Resources.WhereClauseMustEvaluateToBool); case DiagnosticId.OnClauseMustEvaluateToBool: return(Resources.OnClauseMustEvaluateToBool); case DiagnosticId.HavingClauseMustEvaluateToBool: return(Resources.HavingClauseMustEvaluateToBool); case DiagnosticId.SelectExpressionNotAggregatedAndNoGroupBy: return(Resources.SelectExpressionNotAggregatedAndNoGroupBy); case DiagnosticId.SelectExpressionNotAggregatedOrGrouped: return(Resources.SelectExpressionNotAggregatedOrGrouped); case DiagnosticId.HavingExpressionNotAggregatedOrGrouped: return(Resources.HavingExpressionNotAggregatedOrGrouped); case DiagnosticId.OrderByExpressionNotAggregatedAndNoGroupBy: return(Resources.OrderByExpressionNotAggregatedAndNoGroupBy); case DiagnosticId.OrderByExpressionNotAggregatedOrGrouped: return(Resources.OrderByExpressionNotAggregatedOrGrouped); case DiagnosticId.OrderByInvalidInSubqueryUnlessTopIsAlsoSpecified: return(Resources.OrderByInvalidInSubqueryUnlessTopIsAlsoSpecified); case DiagnosticId.InvalidDataTypeInSelectDistinct: return(Resources.InvalidDataTypeInSelectDistinct); case DiagnosticId.InvalidDataTypeInGroupBy: return(Resources.InvalidDataTypeInGroupBy); case DiagnosticId.InvalidDataTypeInOrderBy: return(Resources.InvalidDataTypeInOrderBy); case DiagnosticId.InvalidDataTypeInUnion: return(Resources.InvalidDataTypeInUnion); case DiagnosticId.InvalidDataTypeInExcept: return(Resources.InvalidDataTypeInExcept); case DiagnosticId.InvalidDataTypeInIntersect: return(Resources.InvalidDataTypeInIntersect); case DiagnosticId.DifferentExpressionCountInBinaryQuery: return(Resources.DifferentExpressionCountInBinaryQuery); case DiagnosticId.OrderByItemsMustBeInSelectListIfUnionSpecified: return(Resources.OrderByItemsMustBeInSelectListIfUnionSpecified); case DiagnosticId.OrderByItemsMustBeInSelectListIfDistinctSpecified: return(Resources.OrderByItemsMustBeInSelectListIfDistinctSpecified); case DiagnosticId.GroupByItemDoesNotReferenceAnyColumns: return(Resources.GroupByItemDoesNotReferenceAnyColumns); case DiagnosticId.ConstantExpressionInOrderBy: return(Resources.ConstantExpressionInOrderBy); case DiagnosticId.TooManyExpressionsInSelectListOfSubquery: return(Resources.TooManyExpressionsInSelectListOfSubquery); case DiagnosticId.InvalidRowReference: return(Resources.InvalidRowReference); case DiagnosticId.NoColumnAliasSpecified: return(Resources.NoColumnAliasSpecified); case DiagnosticId.CteHasMoreColumnsThanSpecified: return(Resources.CteHasMoreColumnsThanSpecified); case DiagnosticId.CteHasFewerColumnsThanSpecified: return(Resources.CteHasFewerColumnsThanSpecified); case DiagnosticId.CteHasDuplicateColumnName: return(Resources.CteHasDuplicateColumnName); case DiagnosticId.CteHasDuplicateTableName: return(Resources.CteHasDuplicateTableName); case DiagnosticId.CteDoesNotHaveUnionAll: return(Resources.CteDoesNotHaveUnionAll); case DiagnosticId.CteDoesNotHaveAnchorMember: return(Resources.CteDoesNotHaveAnchorMember); case DiagnosticId.CteContainsRecursiveReferenceInSubquery: return(Resources.CteContainsRecursiveReferenceInSubquery); case DiagnosticId.CteContainsUnexpectedAnchorMember: return(Resources.CteContainsUnexpectedAnchorMember); case DiagnosticId.CteContainsMultipleRecursiveReferences: return(Resources.CteContainsMultipleRecursiveReferences); case DiagnosticId.CteContainsUnion: return(Resources.CteContainsUnion); case DiagnosticId.CteContainsDistinct: return(Resources.CteContainsDistinct); case DiagnosticId.CteContainsTop: return(Resources.CteContainsTop); case DiagnosticId.CteContainsOuterJoin: return(Resources.CteContainsOuterJoin); case DiagnosticId.CteContainsGroupByHavingOrAggregate: return(Resources.CteContainsGroupByHavingOrAggregate); case DiagnosticId.CteHasTypeMismatchBetweenAnchorAndRecursivePart: return(Resources.CteHasTypeMismatchBetweenAnchorAndRecursivePart); default: throw ExceptionBuilder.UnexpectedValue(diagnosticId); } }
protected void Dispatch(SyntaxNode node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } switch (node.Kind) { case SyntaxKind.CompilationUnit: VisitCompilationUnit((CompilationUnitSyntax)node); break; case SyntaxKind.SkippedTokensTrivia: VisitSkippedTokensTrivia((SkippedTokensTriviaSyntax)node); break; case SyntaxKind.ComplementExpression: case SyntaxKind.IdentityExpression: case SyntaxKind.NegationExpression: case SyntaxKind.LogicalNotExpression: VisitUnaryExpression((UnaryExpressionSyntax)node); break; case SyntaxKind.BitwiseAndExpression: case SyntaxKind.BitwiseOrExpression: case SyntaxKind.ExclusiveOrExpression: case SyntaxKind.AddExpression: case SyntaxKind.SubExpression: case SyntaxKind.MultiplyExpression: case SyntaxKind.DivideExpression: case SyntaxKind.ModuloExpression: case SyntaxKind.PowerExpression: case SyntaxKind.EqualExpression: case SyntaxKind.NotEqualExpression: case SyntaxKind.LessExpression: case SyntaxKind.LessOrEqualExpression: case SyntaxKind.GreaterExpression: case SyntaxKind.GreaterOrEqualExpression: case SyntaxKind.NotLessExpression: case SyntaxKind.NotGreaterExpression: case SyntaxKind.LeftShiftExpression: case SyntaxKind.RightShiftExpression: case SyntaxKind.LogicalAndExpression: case SyntaxKind.LogicalOrExpression: VisitBinaryExpression((BinaryExpressionSyntax)node); break; case SyntaxKind.LikeExpression: VisitLikeExpression((LikeExpressionSyntax)node); break; case SyntaxKind.SoundsLikeExpression: VisitSoundsLikeExpression((SoundsLikeExpressionSyntax)node); break; case SyntaxKind.SimilarToExpression: VisitSimilarToExpression((SimilarToExpressionSyntax)node); break; case SyntaxKind.ParenthesizedExpression: VisitParenthesizedExpression((ParenthesizedExpressionSyntax)node); break; case SyntaxKind.BetweenExpression: VisitBetweenExpression((BetweenExpressionSyntax)node); break; case SyntaxKind.IsNullExpression: VisitIsNullExpression((IsNullExpressionSyntax)node); break; case SyntaxKind.CastExpression: VisitCastExpression((CastExpressionSyntax)node); break; case SyntaxKind.CaseExpression: VisitCaseExpression((CaseExpressionSyntax)node); break; case SyntaxKind.CaseLabel: VisitCaseLabel((CaseLabelSyntax)node); break; case SyntaxKind.CoalesceExpression: VisitCoalesceExpression((CoalesceExpressionSyntax)node); break; case SyntaxKind.NullIfExpression: VisitNullIfExpression((NullIfExpressionSyntax)node); break; case SyntaxKind.InExpression: VisitInExpression((InExpressionSyntax)node); break; case SyntaxKind.LiteralExpression: VisitLiteralExpression((LiteralExpressionSyntax)node); break; case SyntaxKind.VariableExpression: VisitParameterExpression((VariableExpressionSyntax)node); break; case SyntaxKind.NameExpression: VisitNameExpression((NameExpressionSyntax)node); break; case SyntaxKind.PropertyAccessExpression: VisitPropertyAccessExpression((PropertyAccessExpressionSyntax)node); break; case SyntaxKind.CountAllExpression: VisitCountAllExpression((CountAllExpressionSyntax)node); break; case SyntaxKind.FunctionInvocationExpression: VisitFunctionInvocationExpression((FunctionInvocationExpressionSyntax)node); break; case SyntaxKind.MethodInvocationExpression: VisitMethodInvocationExpression((MethodInvocationExpressionSyntax)node); break; case SyntaxKind.ArgumentList: VisitArgumentList((ArgumentListSyntax)node); break; case SyntaxKind.SingleRowSubselect: VisitSingleRowSubselect((SingleRowSubselectSyntax)node); break; case SyntaxKind.ExistsSubselect: VisitExistsSubselect((ExistsSubselectSyntax)node); break; case SyntaxKind.AllAnySubselect: VisitAllAnySubselect((AllAnySubselectSyntax)node); break; case SyntaxKind.ParenthesizedTableReference: VisitParenthesizedTableReference((ParenthesizedTableReferenceSyntax)node); break; case SyntaxKind.NamedTableReference: VisitNamedTableReference((NamedTableReferenceSyntax)node); break; case SyntaxKind.CrossJoinedTableReference: VisitCrossJoinedTableReference((CrossJoinedTableReferenceSyntax)node); break; case SyntaxKind.InnerJoinedTableReference: VisitInnerJoinedTableReference((InnerJoinedTableReferenceSyntax)node); break; case SyntaxKind.OuterJoinedTableReference: VisitOuterJoinedTableReference((OuterJoinedTableReferenceSyntax)node); break; case SyntaxKind.DerivedTableReference: VisitDerivedTableReference((DerivedTableReferenceSyntax)node); break; case SyntaxKind.ExceptQuery: VisitExceptQuery((ExceptQuerySyntax)node); break; case SyntaxKind.UnionQuery: VisitUnionQuery((UnionQuerySyntax)node); break; case SyntaxKind.IntersectQuery: VisitIntersectQuery((IntersectQuerySyntax)node); break; case SyntaxKind.OrderedQuery: VisitOrderedQuery((OrderedQuerySyntax)node); break; case SyntaxKind.OrderByColumn: VisitOrderByColumn((OrderByColumnSyntax)node); break; case SyntaxKind.ParenthesizedQuery: VisitParenthesizedQuery((ParenthesizedQuerySyntax)node); break; case SyntaxKind.CommonTableExpressionQuery: VisitCommonTableExpressionQuery((CommonTableExpressionQuerySyntax)node); break; case SyntaxKind.CommonTableExpression: VisitCommonTableExpression((CommonTableExpressionSyntax)node); break; case SyntaxKind.CommonTableExpressionColumnName: VisitCommonTableExpressionColumnName((CommonTableExpressionColumnNameSyntax)node); break; case SyntaxKind.CommonTableExpressionColumnNameList: VisitCommonTableExpressionColumnNameList((CommonTableExpressionColumnNameListSyntax)node); break; case SyntaxKind.SelectQuery: VisitSelectQuery((SelectQuerySyntax)node); break; case SyntaxKind.TopClause: VisitTopClause((TopClauseSyntax)node); break; case SyntaxKind.WildcardSelectColumn: VisitWildcardSelectColumn((WildcardSelectColumnSyntax)node); break; case SyntaxKind.ExpressionSelectColumn: VisitExpressionSelectColumn((ExpressionSelectColumnSyntax)node); break; case SyntaxKind.SelectClause: VisitSelectClause((SelectClauseSyntax)node); break; case SyntaxKind.FromClause: VisitFromClause((FromClauseSyntax)node); break; case SyntaxKind.WhereClause: VisitWhereClause((WhereClauseSyntax)node); break; case SyntaxKind.GroupByClause: VisitGroupByClause((GroupByClauseSyntax)node); break; case SyntaxKind.GroupByColumn: VisitGroupByColumn((GroupByColumnSyntax)node); break; case SyntaxKind.HavingClause: VisitHavingClause((HavingClauseSyntax)node); break; case SyntaxKind.Alias: VisitAlias((AliasSyntax)node); break; default: throw ExceptionBuilder.UnexpectedValue(node.Kind); } }
private static ShowPlanNode Build(BoundNode node) { switch (node.Kind) { case BoundNodeKind.Query: return(BuildQueryRelation((BoundQuery)node)); case BoundNodeKind.ConstantRelation: return(BuildConstant((BoundConstantRelation)node)); case BoundNodeKind.TableRelation: return(BuildTable((BoundTableRelation)node)); case BoundNodeKind.DerivedTableRelation: return(BuildDerivedTable((BoundDerivedTableRelation)node)); case BoundNodeKind.FilterRelation: return(BuildFilter((BoundFilterRelation)node)); case BoundNodeKind.ComputeRelation: return(BuildCompute((BoundComputeRelation)node)); case BoundNodeKind.JoinRelation: return(BuildJoin((BoundJoinRelation)node)); case BoundNodeKind.HashMatchRelation: return(BuildHashMatch((BoundHashMatchRelation)node)); case BoundNodeKind.TopRelation: return(BuildTop((BoundTopRelation)node)); case BoundNodeKind.SortRelation: return(BuildSort((BoundSortRelation)node)); case BoundNodeKind.UnionRelation: return(BuildUnionRelation((BoundUnionRelation)node)); case BoundNodeKind.ConcatenationRelation: return(BuildConcatenationRelation((BoundConcatenationRelation)node)); case BoundNodeKind.IntersectOrExceptRelation: return(BuildIntersectOrExceptRelation((BoundIntersectOrExceptRelation)node)); case BoundNodeKind.GroupByAndAggregationRelation: return(BuildGroupByAndAggregation((BoundGroupByAndAggregationRelation)node)); case BoundNodeKind.StreamAggregatesRelation: return(BuildStreamAggregatesRelation((BoundStreamAggregatesRelation)node)); case BoundNodeKind.ProjectRelation: return(BuildProject((BoundProjectRelation)node)); case BoundNodeKind.AssertRelation: return(BuildAssert((BoundAssertRelation)node)); case BoundNodeKind.TableSpoolPusher: return(BuildTableSpoolPusher((BoundTableSpoolPusher)node)); case BoundNodeKind.TableSpoolPopper: return(BuildTableSpoolPopper((BoundTableSpoolPopper)node)); case BoundNodeKind.UnaryExpression: return(BuildUnaryExpression((BoundUnaryExpression)node)); case BoundNodeKind.BinaryExpression: return(BuildBinaryExpression((BoundBinaryExpression)node)); case BoundNodeKind.LiteralExpression: return(BuildLiteralExpression((BoundLiteralExpression)node)); case BoundNodeKind.ValueSlotExpression: return(BuildValueSlotExpression((BoundValueSlotExpression)node)); case BoundNodeKind.VariableExpression: return(BuildVariableExpression((BoundVariableExpression)node)); case BoundNodeKind.FunctionInvocationExpression: return(BuildFunctionInvocationExpression((BoundFunctionInvocationExpression)node)); case BoundNodeKind.PropertyAccessExpression: return(BuildPropertyAccessExpression((BoundPropertyAccessExpression)node)); case BoundNodeKind.MethodInvocationExpression: return(BuildMethodInvocationExpression((BoundMethodInvocationExpression)node)); case BoundNodeKind.ConversionExpression: return(BuildConversionExpression((BoundConversionExpression)node)); case BoundNodeKind.IsNullExpression: return(BuildIsNullExpression((BoundIsNullExpression)node)); case BoundNodeKind.CaseExpression: return(BuildCaseExpression((BoundCaseExpression)node)); case BoundNodeKind.SingleRowSubselect: return(BuildSingleRowSubselect((BoundSingleRowSubselect)node)); case BoundNodeKind.ExistsSubselect: return(BuildExistsSubselect((BoundExistsSubselect)node)); default: throw ExceptionBuilder.UnexpectedValue(node.Kind); } }