.. _program_listing_file_src_VALfiles_RelaxTranslator.h: Program Listing for File RelaxTranslator.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/VALfiles/RelaxTranslator.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /************************************************************************ * Copyright 2008, Strathclyde Planning Group, * Department of Computer and Information Sciences, * University of Strathclyde, Glasgow, UK * http://planning.cis.strath.ac.uk/ * * Maria Fox, Richard Howey and Derek Long - VAL * Stephen Cresswell - PDDL Parser * * This file is part of VAL, the PDDL validator. * * VAL is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * VAL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with VAL. If not, see . * ************************************************************************/ /*----------------------------------------------------------------------------- VAL - The Automatic Plan Validator for PDDL2.2 $Date: 2010-06-16 14:45:11 $ $Revision: 1.2 $ Maria Fox and Derek Long - PDDL2.2 and VAL Stephen Cresswell - PDDL2.2 Parser Richard Howey - Continuous Effects, derived predicates, timed initial literals and LaTeX report in VAL maria.fox@cis.strath.ac.uk derek.long@cis.strath.ac.uk stephen.cresswell@cis.strath.ac.uk richard.howey@cis.strath.ac.uk By releasing this code we imply no warranty as to its reliability and its use is entirely at your own risk. Strathclyde Planning Group http://planning.cis.strath.ac.uk ----------------------------------------------------------------------------*/ #ifndef __RELAXTRANSLATOR #define __RELAXTRANSLATOR #include "WriteController.h" #include #include #include #include "VisitController.h" using std::stringstream; using std::vector; namespace VAL { class State; class Environment; class PredWriter : public VisitController { private: ostream & out; public: PredWriter(ostream & o) : out(o) {}; virtual void visit_durative_action(const durative_action * d); }; class RelaxTranslator : public WriteController { private: const analysis * anlss; const domain * dom; bool inInitial; bool showType; bool firstCall; bool showFixedEffect; public: virtual ~RelaxTranslator() {}; RelaxTranslator(const analysis * a) : anlss(a), dom(a->the_domain), inInitial(false), showType(true), firstCall(true), showFixedEffect(false) {}; virtual void write_symbol(ostream & o,const symbol *); virtual void write_const_symbol(ostream & o,const const_symbol *); virtual void write_var_symbol(ostream & o,const var_symbol *); virtual void write_pddl_typed_symbol(ostream & o,const pddl_typed_symbol *); virtual void write_plus_expression(ostream & o,const plus_expression *); virtual void write_minus_expression(ostream & o,const minus_expression *); virtual void write_mul_expression(ostream & o,const mul_expression *); virtual void write_div_expression(ostream & o,const div_expression *); virtual void write_uminus_expression(ostream & o,const uminus_expression *); virtual void write_int_expression(ostream & o,const int_expression *); virtual void write_float_expression(ostream & o,const float_expression *); virtual void write_special_val_expr(ostream & o,const special_val_expr *); virtual void write_func_term(ostream & o,const func_term *); virtual void write_assignment(ostream & o,const assignment *); virtual void write_goal_list(ostream & o,const goal_list *); virtual void write_simple_goal(ostream & o,const simple_goal *); virtual void write_qfied_goal(ostream & o,const qfied_goal *); virtual void write_conj_goal(ostream & o,const conj_goal *); virtual void write_disj_goal(ostream & o,const disj_goal *); virtual void write_timed_goal(ostream & o,const timed_goal *); virtual void write_imply_goal(ostream & o,const imply_goal *); virtual void write_neg_goal(ostream & o,const neg_goal *); virtual void write_comparison(ostream & o,const comparison *); virtual void write_proposition(ostream & o,const proposition *); //virtual void write_pred_decl_list(ostream & o,const pred_decl_list *); //virtual void write_func_decl_list(ostream & o,const func_decl_list *); virtual void write_pred_decl(ostream & o,const pred_decl *); virtual void write_func_decl(ostream & o,const func_decl *); virtual void write_simple_effect(ostream & o,const simple_effect *); virtual void write_forall_effect(ostream & o,const forall_effect *); virtual void write_cond_effect(ostream & o,const cond_effect *); virtual void write_timed_effect(ostream & o,const timed_effect *); virtual void write_effect_lists(ostream & o,const effect_lists *); //virtual void write_operator_list(ostream & o,const operator_list *); virtual void write_operator_(ostream & o,const operator_ *); virtual void write_action(ostream & o,const action *); virtual void write_event(ostream & o,const event *); virtual void write_process(ostream & o,const process *); virtual void write_durative_action(ostream & o,const durative_action *); virtual void write_domain(ostream & o,const domain *); virtual void write_metric_spec(ostream & o,const metric_spec *); virtual void write_length_spec(ostream & o,const length_spec *); virtual void write_problem(ostream & o,const problem *); virtual void write_plan_step(ostream & o,const plan_step *); }; }; #endif