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); } }
public virtual void VisitUnOpNode(UnOpNode unop) { }
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 += ")"; }