public IDatatype error(Computer eval, Binding b, Environment env, Producer p, IDatatype... param) { return (IDatatype) env.getVisitor().error(env.getEval(), this, param); }
public Mappings query(Query q, Mapping m) { if (hasEvent) { send(Event.BEGIN, q); } initMemory(q); share(m); producer.start(q); getVisitor().init(q); share(getVisitor()); getVisitor().before(q); Mappings map = eval(null, q, m); getVisitor().orderby(map); getVisitor().after(map); producer.finish(q); if (hasEvent) { send(Event.END, q, map); } map.setBinding(memory.getBind()); clean(); return map; }
int comparator(Node n1, Node n2) { if (getEval() != null) { return getEval().getVisitor().compare(getEval(), n1.compare(n2), n1.getDatatypeValue(), n2.getDatatypeValue()); } return n1.compare(n2); }
return (IDatatype) env.getVisitor().datatype(param[0], param[1]);
/** * bind(exp as var) */ private int bind(Producer p, Node gNode, Exp exp, Stack stack, int n) { if (exp.isFunctional()) { return extBind(p, gNode, exp, stack, n); } int backtrack = n - 1; Memory env = memory; env.setGraphNode(gNode); Node node = evaluator.eval(exp.getFilter(), env, p); env.setGraphNode(null); getVisitor().bind(this, getGraphNode(gNode), exp, node==null?null:node.getDatatypeValue()); if (node == null) { backtrack = eval(p, gNode, stack, n + 1); } else if (memory.push(exp.getNode(), node, n)) { backtrack = eval(p, gNode, stack, n + 1); memory.pop(exp.getNode()); } return backtrack; }
getVisitor().candidate(this, getGraphNode(gNode), qEdge, edge);
@Override public IDatatype eval(Expr exp, Environment env, Producer p) { if (env.getEval() == null) { logger.error("Environment getEval() = null in: "); logger.info(exp.toString()); } IDatatype dt = ((Expression) exp).eval(this, (Binding) env.getBind(), env, p); if (dt == null) { DatatypeValue res = env.getVisitor().error(env.getEval(), exp, EMPTY); if (res != null) { return (IDatatype) res; } } return dt; }
@Override public IDatatype eval(Expr exp, Environment env, Producer p) { if (env.getEval() == null) { logger.error("Environment getEval() = null in: "); logger.info(exp.toString()); } IDatatype dt = ((Expression) exp).eval(this, (Binding) env.getBind(), env, p); if (dt == null) { DatatypeValue res = env.getVisitor().error(env.getEval(), exp, EMPTY); if (res != null) { return (IDatatype) res; } } return dt; }