static bool Write_FS_TS_U(Transpiler t, ClauseExpr d) { t.WriteLine("foreach({0} {1} in bwxTask.Context.QueryType({2}))", d.Subject.Type, t.Translate(d.Subject), t.Translate(d.Subject.AtomTypeExpr)); t.StartBlock(null); Write_U(t, d); return(false); }
static bool Write_FO(Transpiler t, ClauseExpr d) { if (d.IsMeta) { t.WriteLine("{0} {1} = ({0})_bwxClause[{2}];", d.Type, t.Translate(d.Object), t.Translate(d.Predicate)); return(false); } t.WriteLine("foreach({0} {1} in bwxTask.Context.QuerySubjPred<{0}>({2}, {3}))", d.Type, t.Translate(d.Object), t.Translate(d.Subject), t.Translate(d.Predicate)); return(true); }
// static bool Write_Default(Transpiler t, ClauseExpr d) { if (d.IsProperty) { t.WriteLine("if (_bwxClause != null && _bwxClause.Exists<{0}>({1}, {2}))", d.Predicate.ToPredicate().Spec, t.Translate(d.Predicate), t.Translate(d.Object)); } /*else if (d.HasMetaDefs) * { * t.WriteLine("_bwxClause = bwxTask.Context.Find(new ClausePattern({0}, {1}, {2}));", * t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); * t.WriteLine("if (_bwxClause != null)"); * }*/ else { if (d.Object.IsSnippet) { t.WriteLine("if(bwxTask.Context.Exists<{0}>({1}, {2}, {3}))", d.Type, t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); } else { t.WriteLine("if(bwxTask.Context.Exists({0}, {1}, {2}))", t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); } } return(false); }
static bool Write_B(Transpiler t, ClauseExpr d) { t.WriteLine("if({0} {1} {2})", t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); return(false); }
static bool Write_U(Transpiler t, ClauseExpr d) { t.WriteLine("if(!bwxTask.Context.Exists({0}, {1}, {2}))", t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); return(false); }
// static bool Write_FS(Transpiler t, ClauseExpr d) { t.WriteLine("foreach({0} {1} in bwxTask.Context.QueryPredObj({2}, {3}))", "Atom", t.Translate(d.Subject), t.Translate(d.Predicate), t.Translate(d.Object)); return(true); }
// static bool Write_TS(Transpiler t, ClauseExpr d) { t.WriteLine("if({0}.TypeCheck({1}) && bwxTask.Context.Exists({0}, {2}, {3}))", t.Translate(d.Subject), t.Translate(d.Subject.AtomTypeExpr), t.Translate(d.Predicate), t.Translate(d.Object)); return(false); }