Example #1
0
        public QsiExpressionNode VisitEventDeclarationCompareFunctionParameter(EventDeclarationCompareFunctionParameter eventDeclarationCompareFunctionParameter)
        {
            return(TreeHelper.Create <QsiInvokeExpressionNode>(n =>
            {
                n.Member.SetValue(TreeHelper.CreateFunction(SqlServerKnownFunction.EventDeclarationCompare));

                if (eventDeclarationCompareFunctionParameter.Name != null)
                {
                    n.Parameters.Add(TreeHelper.Create <QsiTableExpressionNode>(tn =>
                    {
                        tn.Table.SetValue(new QsiTableReferenceNode
                        {
                            Identifier = IdentifierVisitor.CreateQualifiedIdentifier(eventDeclarationCompareFunctionParameter.Name.MultiPartIdentifier)
                        });
                    }));
                }

                if (eventDeclarationCompareFunctionParameter.EventValue != null)
                {
                    n.Parameters.Add(VisitScalarExpression(eventDeclarationCompareFunctionParameter.EventValue));
                }

                if (eventDeclarationCompareFunctionParameter.SourceDeclaration != null)
                {
                    n.Parameters.Add(VisitSourceDeclaration(eventDeclarationCompareFunctionParameter.SourceDeclaration));
                }

                SqlServerTree.PutFragmentSpan(n, eventDeclarationCompareFunctionParameter);
            }));
        }
Example #2
0
 public override void Visit(EventDeclarationCompareFunctionParameter node) { this.action(node); }
 public override void ExplicitVisit(EventDeclarationCompareFunctionParameter fragment)
 {
     _fragments.Add(fragment);
 }