#include "arc_plan.h"
#include "arc_condition.h"
#ifndef ARC_STRATEGY
#define ARC_STRATEGY
#define ARC_CONDPLAN_INITIAL_CAP 8
struct arc_condplan
{
struct arc_complex_condition *condition;
struct arc_plan *plan;
};
struct arc_strategy
{
char *name;
struct arc_complex_condition *strat_cond;
struct arc_condplan **cond_plans;
size_t num_cond_plans;
size_t max_cond_plans;
struct arc_system *sys;
struct knowledge_base *kb;
};
void init_strategy(struct arc_strategy *strat, char *name, struct arc_system *sys,struct knowledge_base *kb);
void destroy_strategy(struct arc_strategy *strat);
void strat_add_plan(struct arc_strategy *strategy , struct arc_condplan *condplan);
//parsing
struct arc_strategy* strategy_parse(char *txt, struct arc_system *sys,struct knowledge_base *kb);
int strategy_execute(struct arc_strategy *strat);
#endif