00001 #ifndef _SOAR_API_UTILS_H_
00002 #define _SOAR_API_UTILS_H_
00003
00004 #include "soarapi.h"
00005 #include "soarapi_datatypes.h"
00006 #include "soar_ecore_utils.h"
00007
00008
00009 void cb_appendToSoarResultResult( agent *the_agent,
00010 soar_callback_data data,
00011 soar_call_data call_data );
00012
00013
00014
00015 extern int getInt( char *string, int *i );
00016 extern bool cfps_removal_test_function (cons *c);
00017
00018
00019
00020
00021
00022
00023
00024 extern void do_print_for_production (production *prod, bool internal,
00025 bool print_filename, bool full_prod);
00026
00027 extern void do_print_for_production_name (char *prod_name, bool internal,
00028 bool print_filename, bool full_prod) ;
00029 extern void do_print_for_wme (wme *w, int depth, bool internal);
00030
00031
00032
00033 extern void execute_go_selection (agent * the_agent,
00034 long go_number,
00035 enum go_type_enum go_type,
00036 Symbol * go_slot_attr,
00037 goal_stack_level go_slot_level);
00038
00039
00040
00041
00042
00043
00044
00045 extern void print_current_learn_settings(void);
00046 extern void print_multi_attribute_symbols(void);
00047
00048
00049
00050
00051
00052
00053 extern int read_pref_detail_from_string (char *the_lexeme,
00054 bool *print_productions,
00055 wme_trace_type *wtt);
00056 extern int read_pattern_component (Symbol **dest_sym);
00057 extern list *read_pattern_and_get_matching_wmes (void);
00058
00059 extern bool soar_agent_already_defined (char * name);
00060
00061
00062 extern Symbol *get_binding (Symbol *f, list *bindings);
00063 extern void reset_old_binding_point(list **bindings, list **current_binding_point);
00064 extern void free_binding_list (list *bindings);
00065 extern void print_binding_list (list *bindings);
00066 extern bool symbols_are_equal_with_bindings (Symbol *s1, Symbol *s2, list **bindings);
00067 extern bool tests_are_equal_with_bindings (test t1, test test2, list **bindings);
00068
00069 extern bool conditions_are_equal_with_bindings (condition *c1, condition *c2, list **bindings);
00070 extern void read_pattern_and_get_matching_productions (list **current_pf_list, bool show_bindings,
00071 bool just_chunks,bool no_chunks);
00072 extern bool funcalls_match(list *fc1, list *fc2);
00073 extern bool actions_are_equal_with_bindings (action *a1, action *a2, list **bindings);
00074 extern void read_rhs_pattern_and_get_matching_productions (list **current_pf_list, bool show_bindings,
00075 bool just_chunks, bool no_chunks);
00076 extern bool wme_filter_component_match(Symbol *filterComponent, Symbol *wmeComponent);
00077 extern bool passes_wme_filtering(wme *w, bool isAdd);
00078 extern int parse_filter_type(char *s, bool *forAdds, bool *forRemoves);
00079
00080 extern void print_current_watch_settings (void);
00081 extern int set_watch_setting ( int dest_sysparam_number, char * param,
00082 char * arg, soarResult *res);
00083 extern int set_watch_level_inc (int level);
00084 extern int set_watch_prod_group_setting (int prodgroup,
00085 char * prodtype, char * arg,
00086 soarResult *res);
00087
00088 extern int parse_run_command (int argc, char * argv[],
00089 long * go_number,
00090 enum go_type_enum * go_type,
00091 Symbol * * go_slot_attr,
00092 goal_stack_level * go_slot_level,
00093 bool * self_only,
00094 soarResult *res);
00095
00096 extern int parse_go_command (int argc, char * argv[],
00097 long * go_number,
00098 enum go_type_enum * go_type,
00099 Symbol * * go_slot_attr,
00100 goal_stack_level * go_slot_level,
00101 soarResult *res);
00102 extern int parse_memory_stats (int argc, char * argv[], soarResult *res);
00103
00104
00105 extern int parse_rete_stats ( int argc, char * argv[], soarResult *res);
00106 extern int parse_system_stats (int argc, char * argv[], soarResult *res);
00107
00108 extern int printTimingInfo();
00109
00110
00111 #endif