示例#1
0
        protected internal override Node VisitVariableSqlExpression(VariableSqlExpression node)
        {
            node = this.ValidateChildren(node);

            var variableType = this.Scope.GetVariableType(node.Name);

            if (variableType == null)
            {
                this.AddError(node, $"Undeclared variable '{node.Name}'.");
            }

            this.Data.SetType(node, variableType);
            this.Data.SetScope(node, NodeScope.Constant);

            return(node);
        }
示例#2
0
 /// <summary>
 /// Visits a <see cref="VariableSqlExpression"/>.
 /// </summary>
 /// <param name="node">
 /// The node.
 /// </param>
 /// <returns>
 /// The node, or a new version of the node.
 /// </returns>
 protected internal virtual Node VisitVariableSqlExpression([NotNull] VariableSqlExpression node)
 {
     return(node.VisitChildren(this));
 }
示例#3
0
            protected internal override Node VisitVariableSqlExpression([NotNull] VariableSqlExpression node)
            {
                this.Builder.Append(node.Name);

                return(node);
            }
示例#4
0
 /// <summary>
 /// Visits a <see cref="VariableSqlExpression"/>.
 /// </summary>
 /// <param name="node">
 /// The node.
 /// </param>
 /// <returns>
 /// The node, or a new version of the node.
 /// </returns>
 protected internal override Node VisitVariableSqlExpression(VariableSqlExpression node)
 {
     return(this.CheckForGroups(node, n => base.VisitVariableSqlExpression(n)));
 }
示例#5
0
 /// <summary>
 /// Visits a <see cref="VariableSqlExpression"/>.
 /// </summary>
 /// <param name="node">
 /// The node.
 /// </param>
 /// <returns>
 /// The node, or a new version of the node.
 /// </returns>
 protected internal override Node VisitVariableSqlExpression(VariableSqlExpression node)
 {
     return(this.VisitImplementation(node) ?? base.VisitVariableSqlExpression(node));
 }