public override PDLPred ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub) { var m1 = pos1.ToPDL(macros, sub); var m2 = pos2.ToPDL(macros, sub); switch (op) { case MonaPosComparisonOperator.Eq: { return(new PDLPosEq(m1, m2)); } case MonaPosComparisonOperator.Ge: return(new PDLPosGe(m1, m2)); case MonaPosComparisonOperator.Geq: return(new PDLPosGeq(m1, m2)); case MonaPosComparisonOperator.Le: { return(new PDLPosLe(m1, m2)); } case MonaPosComparisonOperator.Leq: return(new PDLPosLe(m1, m2)); default: throw new MonaException("Undefined operator"); } }
public override PDLPos ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub) { switch (op) { case MonaPosUnaryConstructor.Succ: { return(new PDLSuccessor(pos.ToPDL(macros, sub))); } default: throw new MonaException("undefined operator"); } }
public override PDLPred ToPDL(List <MonaMacro> macros, Dictionary <string, string> sub) { return(new PDLBelongs(pos.ToPDL(macros, sub), set.ToPDL(macros, sub))); }