public void ProcessSelectSetVariable(SelectSetVariable SelectElement)
        {
            string           VarName    = SelectElement.Variable.Name;
            ScalarExpression Expression = SelectElement.Expression;

            ProcessSelectSetFragment(Expression, VarName);
        }
Beispiel #2
0
        public QsiDerivedColumnNode VisitSelectSetVariable(SelectSetVariable selectSetVariable)
        {
            return(TreeHelper.Create <QsiDerivedColumnNode>(n =>
            {
                var kind = selectSetVariable.AssignmentKind switch
                {
                    AssignmentKind.Equals => QsiAssignmentKind.Equals,
                    AssignmentKind.AddEquals => QsiAssignmentKind.AddEquals,
                    AssignmentKind.DivideEquals => QsiAssignmentKind.DivideEquals,
                    AssignmentKind.ModEquals => QsiAssignmentKind.ModEquals,
                    AssignmentKind.MultiplyEquals => QsiAssignmentKind.MultiplyEquals,
                    AssignmentKind.SubtractEquals => QsiAssignmentKind.SubtractEquals,
                    AssignmentKind.BitwiseAndEquals => QsiAssignmentKind.BitwiseAndEquals,
                    AssignmentKind.BitwiseOrEquals => QsiAssignmentKind.BitwiseOrEquals,
                    AssignmentKind.BitwiseXorEquals => QsiAssignmentKind.BitwiseXorEquals,
                    _ => throw new InvalidOperationException()
                };

                n.Expression.SetValue(TreeHelper.Create <QsiSetVariableExpressionNode>(en =>
                {
                    en.Target = IdentifierVisitor.VisitVariableReference(selectSetVariable.Variable);
                    en.AssignmentKind = kind;
                    en.Value.SetValue(ExpressionVisitor.VisitScalarExpression(selectSetVariable.Expression));
                }));

                SqlServerTree.PutFragmentSpan(n, selectSetVariable);
            }));
        }
Beispiel #3
0
 public void Declare(SelectSetVariable node)
 {
     DeclaredVariables[node.Variable.Name] = new Variable(null) { Node = node };
 }
 public void ProcessSelectSetVariable(SelectSetVariable SelectElement)
 {
     string VarName = SelectElement.Variable.Name;
     ScalarExpression Expression = SelectElement.Expression;
     ProcessSelectSetFragment(Expression, VarName);
 }
Beispiel #5
0
 public override void Visit(SelectSetVariable node) { this.action(node); }
 public override void ExplicitVisit(SelectSetVariable fragment)
 {
     _fragments.Add(fragment);
 }
 public override void ExplicitVisit(SelectSetVariable node)
 {
     SelectSetVariables.Add(node);
 }
Beispiel #8
0
 public override void ExplicitVisit(SelectSetVariable node)
 {
     // no! do not call the base implementation : stop the visiting of the child fragments!
     hasSetVariable = true; // => no outputs
     outputSet.Clear();
 }