Exemple #1
0
 public override void VisitUnOpNode(UnOpNode unop)
 {
     if (unop.Unary is BinOpNode)
     {
         Text  += "(";
         isUnOp = true;
     }
     Text += unop.Op;
     unop.Unary.Visit(this);
 }
 public override void VisitUnOpNode(UnOpNode unop)
 {
     if (unop.Expr is IntNumNode num)
     {
         if (unop.Op == OpType.UNMINUS)
         {
             ReplaceExpr(unop, new IntNumNode(-1 * num.Num));
         }
         else
         {
             throw new ArgumentException("IntNumNode linked with UNMINUS");
         }
     }
     else if (unop.Expr is BoolValNode b)
     {
         if (unop.Op == OpType.NOT)
         {
             ReplaceExpr(unop, new BoolValNode(!b.Val));
         }
         else
         {
             throw new ArgumentException("BoolValNode linked with NOT");
         }
     }
     else if (unop.Expr is IdNode)
     {
         if (unop.Parent is UnOpNode && (unop.Parent as UnOpNode).Op == unop.Op)
         {
             ReplaceExpr(unop.Parent as UnOpNode, unop.Expr);
         }
     }
     else
     {
         base.VisitUnOpNode(unop);
     }
 }
Exemple #3
0
 public virtual void VisitUnOpNode(UnOpNode unop)
 {
 }
Exemple #4
0
 public override void VisitUnOpNode(UnOpNode unop)
 {
     unop.Unary.Visit(this);
 }
 public override void VisitUnOpNode(UnOpNode unop)
 {
     PreVisit(unop);
     unop.Expr.Visit(this);
     PostVisit(unop);
 }
 public override void VisitUnOpNode(UnOpNode unop)
 {
     Text += "(" + GetOp(unop.Op);
     unop.Expr.Visit(this);
     Text += ")";
 }