public bool VisitLabelOp(VCExprNAry node, TextWriter wr) { //Contract.Requires(wr != null); //Contract.Requires(node != null); VCExprLabelOp /*!*/ op = (VCExprLabelOp)node.Op; Contract.Assert(op != null); return(PrintNAry("Label " + op.label, node, wr)); }
public Term VisitLabelOp(VCExprNAry node, LineariserOptions options) { Contract.Requires(options != null); Contract.Requires(node != null); VCExprLabelOp op = (VCExprLabelOp)node.Op; Contract.Assert(op != null); return(ExprLineariser.cm.MakeLabel(op.label, op.pos, ExprLineariser.Linearise(node[0], options))); }
public bool VisitLabelOp(VCExprNAry node, LineariserOptions options) { //Contract.Requires(options != null); //Contract.Requires(node != null); VCExprLabelOp op = (VCExprLabelOp)node.Op; Contract.Assert(op != null); wr.Write(String.Format("({0} |{1}| ", op.pos ? "LBLPOS" : "LBLNEG", op.label)); ExprLineariser.Linearise(node[0], options); wr.Write(")"); return(true); }
protected override bool StandardResult(VCExpr node, bool arg) { //Contract.Requires(node!=null); VCExprNAry nary = node as VCExprNAry; if (nary != null) { VCExprLabelOp lab = nary.Op as VCExprLabelOp; if (lab != null) { Labels.Add(lab.label); } } return(true); }