コード例 #1
0
ファイル: TreeDumper.cs プロジェクト: xeno-by/rapt
 public override void Visit(NegationNode node)
 {
     if (node.Target is TermNode)
     {
         writer.Write("~");
     }
     else
     {
         writer.WriteLine(node.OpCode);
     }
 }
コード例 #2
0
ファイル: CnfTransformer.cs プロジェクト: xeno-by/rapt
        protected override IAstTreeNode Xform(NegationNode node)
        {
            if (node.Target is AndNode || node.Target is OrNode)
            {
                var equiv = node.Target is AndNode ? (IAstTreeNode)new OrNode() : (IAstTreeNode)new AndNode();
                node.Target.Children.ForEach(child => equiv.Children.Add(!(ExpressionNode)child));
                return equiv;
            }

            if (node.Target is NegationNode)
            {
                var equiv = ((NegationNode)node.Target).Target.Clone();
                return (IAstTreeNode)equiv;
            }

            return null;
        }
コード例 #3
0
ファイル: ZeroActionVisitor.cs プロジェクト: xeno-by/rapt
 public virtual void Visit(NegationNode node){}
コード例 #4
0
ファイル: ZeroActionXformer.cs プロジェクト: xeno-by/rapt
 protected virtual IAstTreeNode Xform(NegationNode node) { return null; }
コード例 #5
0
ファイル: ZeroActionXformer.cs プロジェクト: xeno-by/rapt
 public sealed override void Visit(NegationNode node) { VisitAndXform(node, Xform(node)); }