00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00037 #ifndef __NUSMV_CORE_CINIT_CINIT_H__
00038 #define __NUSMV_CORE_CINIT_CINIT_H__
00039
00040
00041
00042
00043 #include "cudd/util.h"
00044 #include "nusmv/core/utils/utils.h"
00045 #include "nusmv/core/opt/OptsHandler.h"
00046 #include "nusmv/core/cinit/NuSMVEnv.h"
00047
00048
00049
00050
00051
00052 #ifndef NUSMV_LIBRARY_NAME
00053
00059 #define NUSMV_LIBRARY_NAME "NuSMV"
00060 #endif
00061
00062 #ifndef NUSMV_LIBRARY_VERSION
00063
00069 #define NUSMV_LIBRARY_VERSION "2.5.0"
00070 #endif
00071
00072 #ifndef NUSMV_LIBRARY_BUILD_DATE
00073
00079 #define NUSMV_LIBRARY_BUILD_DATE "<compile date not supplied>"
00080 #endif
00081
00082 #ifndef NUSMV_LIBRARY_EMAIL
00083
00089 #define NUSMV_LIBRARY_EMAIL "nusmv-users@list.fbk.eu"
00090 #endif
00091
00092 #ifndef NUSMV_LIBRARY_WEBSITE
00093
00099 #define NUSMV_LIBRARY_WEBSITE "http://nusmv.fbk.eu"
00100 #endif
00101
00102 #ifndef NUSMV_LIBRARY_BUGREPORT
00103
00109 #define NUSMV_LIBRARY_BUGREPORT "Please report bugs to <nusmv-users@fbk.eu>"
00110 #endif
00111
00112
00113
00114
00115
00116 extern FILE *nusmv_historyFile;
00117
00118
00119
00120
00121
00127 typedef void (*FP_V_E)(NuSMVEnv_ptr);
00128
00131
00132
00133
00134
00143 char * CInit_NuSMVReadVersion(void);
00144
00156 char * CInit_NuSMVObtainLibrary(void);
00157
00163 void CInit_BannerPrint(FILE * file);
00164
00173 void CInit_BannerPrintLibrary(FILE * file);
00174
00181 void CInit_BannerPrint_nusmv_library(FILE * file);
00182
00188 void CInit_BannerPrint_cudd(FILE * file);
00189
00195 void CInit_BannerPrint_minisat(FILE * file);
00196
00202 void CInit_BannerPrint_zchaff(FILE * file);
00203
00211 char* get_preprocessor_call(const NuSMVEnv_ptr env, const char* name);
00212
00220 char* get_preprocessor_filename(const NuSMVEnv_ptr env, const char* name);
00221
00228 char* get_preprocessor_names(const NuSMVEnv_ptr env);
00229
00235 int get_preprocessors_num(const NuSMVEnv_ptr env);
00236
00244 char* NuSMVCore_get_tool_name(void);
00245
00253 char* NuSMVCore_get_tool_rc_file_name(void);
00254
00262 void NuSMVCore_set_tool_name(char* tool_name);
00263
00271 char* NuSMVCore_get_tool_version(void);
00272
00280 void NuSMVCore_set_tool_version(char* tool_version);
00281
00289 char* NuSMVCore_get_build_date(void);
00290
00298 void NuSMVCore_set_build_date(char* build_date);
00299
00307 char* NuSMVCore_get_prompt_string(void);
00308
00316 void NuSMVCore_set_prompt_string(char* prompt_string);
00317
00325 char* NuSMVCore_get_email(void);
00326
00334 void NuSMVCore_set_email(char* email);
00335
00343 char* NuSMVCore_get_website(void);
00344
00352 void NuSMVCore_set_website(char* website);
00353
00361 char* NuSMVCore_get_bug_report_message(void);
00362
00370 void NuSMVCore_set_bug_report_message(char* bug_report_message);
00371
00379 char* NuSMVCore_get_linked_addons(void);
00380
00388 void NuSMVCore_set_linked_addons(char* linked_addons);
00389
00397 char* NuSMVCore_get_library_name(void);
00398
00406 void NuSMVCore_set_library_name(const char *);
00407
00415 char* NuSMVCore_get_library_version(void);
00416
00424 char* NuSMVCore_get_library_build_date(void);
00425
00433 void NuSMVCore_set_library_build_date(const char *);
00434
00442 char* NuSMVCore_get_library_email(void);
00443
00451 void NuSMVCore_set_library_email(const char *);
00452
00460 char* NuSMVCore_get_library_website(void);
00461
00469 void NuSMVCore_set_library_website(const char *);
00470
00478 char* NuSMVCore_get_library_bug_report_message(void);
00479
00487 void NuSMVCore_set_banner_print_fun(void (*banner_print_fun)(FILE*));
00488
00496 void NuSMVCore_set_batch_fun(void (*batch_fun)(NuSMVEnv_ptr));
00497
00498
00499
00505 #define CINIT_NO_PARAMETER NULL
00506
00512 #define CINIT_IS_DEPRECATED true
00513
00519 #define CINIT_IS_PUBLIC true
00520
00526 #define CINIT_NO_DEPENDENCY NULL
00527
00533 #define CINIT_NO_CONFLICT NULL
00534
00572 void NuSMVCore_add_env_command_line_option(char* name,
00573 char* usage,
00574 char* parameter,
00575 char* env_var,
00576 boolean is_deprecated,
00577 boolean is_public,
00578 char* dependency,
00579 char* conflict);
00580
00618 void
00619 NuSMVCore_add_command_line_option(char* name,
00620 char* usage,
00621 char* parameter,
00622 boolean (*check_and_apply)(OptsHandler_ptr, char*, NuSMVEnv_ptr),
00623 boolean is_deprecated,
00624 boolean is_public,
00625 char* dependency,
00626 char* conflict);
00627
00641 void NuSMVCore_init_data(void);
00642
00661 void NuSMVCore_init(NuSMVEnv_ptr env, FP_V_E fns[][2], int);
00662
00670 boolean NuSMVCore_main(NuSMVEnv_ptr env, int argc,
00671 char ** argv, int* status);
00672
00684 void NuSMVCore_init_cmd_options(NuSMVEnv_ptr env);
00685
00698 void NuSMVCore_reset(NuSMVEnv_ptr env);
00699
00714 void NuSMVCore_quit(NuSMVEnv_ptr env);
00715
00735 void NuSMVCore_quit_extended(NuSMVEnv_ptr env,
00736 const boolean keep_core_data);
00737
00743 void init_preprocessors(const NuSMVEnv_ptr env);
00744
00750 void quit_preprocessors(const NuSMVEnv_ptr env);
00751
00754 #endif