public override void Visit(VariantNode node)
 {
   BeginNonTextNode();
   var variant = new VariantNode(node.Id);
   variant.Main = VisitBranch(node.Main);
   variant.Alternative = VisitBranch(node.Alternative);
   AppendNode(variant);
   EndNonTextNode();
 }
示例#2
0
        public SqlCompilerOutputScope EnterMainVariantScope(object id)
        {
            var variant = new VariantNode(id)
            {
                Main        = new ContainerNode(),
                Alternative = new ContainerNode()
            };

            Output.Add(variant);
            return(OpenScope(ContextType.Collection, (ContainerNode)variant.Main));
        }
 public override void Visit(VariantNode node)
 {
     if (configuration.AlternativeBranches.Contains(node.Id))
     {
         VisitNodeSequence(node.Alternative);
     }
     else
     {
         VisitNodeSequence(node.Main);
     }
 }
 public virtual void Visit(VariantNode node)
 {
     throw new InvalidOperationException();
 }