示例#1
0
文件: ptree.cpp 项目: aldukeman/popf2
void requires(pddl_req_flag flags)
{
    if (!(flags & current_analysis->req))
        current_analysis->error_list.add(
            E_WARNING,
            "Undeclared requirement " +
            pddl_req_flags_string(flags));
}
示例#2
0
文件: ptree.cpp 项目: aldukeman/popf2
void domain::display(int ind) const
{
    TITLE(domain);
    LEAF(name);
    LEAF(req);
    indent(ind);
    cout << pddl_req_flags_string(req);
//    FIELD(types);
//    FIELD(constants);
//    FIELD(pred_vars);
    FIELD(predicates);
    FIELD(ops);
    FIELD(drvs);
}
示例#3
0
文件: ptree.cpp 项目: aldukeman/popf2
void problem::display(int ind) const
{
    TITLE(problem);
    LEAF(req);
    indent(ind+1);
    cout << pddl_req_flags_string(req);
    FIELD(types);
    FIELD(objects);
    FIELD(initial_state);
    FIELD(the_goal);
    FIELD(constraints);
    FIELD(metric);
    FIELD(length);
};
示例#4
0
void PrettyPrinter::write_domain(ostream & o,const domain * p)
{
	string s = pddl_req_flags_string(p->req ^ E_DURATIVE_ACTIONS);
	o << "(define (domain " << p->name << ")\n(:requirements " << s << ":continuous-effects)\n";
	if(p->types)
	{
		o << "(:types " << *(p->types) << ")\n";
	};
	o << "(:predicates\n\t";
	if(p->predicates)
	{
		for_each(p->predicates->begin(),p->predicates->end(),Writer(o));
	};
//	PredWriter pw(o);
//	p->ops->visit(&pw);
	o << ")\n";


	if(p->functions) 
	{
		o << "(:functions\n\t";
		for_each(p->functions->begin(),p->functions->end(),Writer(o));
		o << ")\n";
	};

	if(p->constants)
	{
		o << "(:constants\n\t";
		for_each(p->constants->begin(),p->constants->end(),Writer(o));
		o << ")\n";
	};
	o << "\n";
	
	p->ops->write(o);

	o << ")\n";
	
};
void RelaxTranslator::write_domain(ostream & o,const domain * p)
{
	string s = pddl_req_flags_string(p->req ^ E_TIME);
	o << "(define (domain " << p->name << ")\n(:requirements " << s << ")\n";
	if(p->types)
	{
		o << "(:types " << *(p->types) << ")\n";
	};
	o << "(:predicates\n\t";
	if(p->predicates)
	{
		for_each(p->predicates->begin(),p->predicates->end(),Writer(o));
	};
	o << ")\n";


	if(p->functions) 
	{
		o << "(:functions\n\t";
		for_each(p->functions->begin(),p->functions->end(),Writer(o));
		o << ")\n";
	};

	if(p->constants)
	{
		o << "(:constants\n\t";
		for_each(p->constants->begin(),p->constants->end(),Writer(o));
		o << ")\n";
	};
	o << "\n";
	
	p->ops->write(o);

	o << ")\n";
	
};