00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 enum keys {
00011 KEY_ESPRESSO, KEY_PLA_verify, KEY_check, KEY_contain, KEY_d1merge,
00012 KEY_disjoint, KEY_dsharp, KEY_echo, KEY_essen, KEY_exact, KEY_expand,
00013 KEY_gasp, KEY_intersect, KEY_irred, KEY_lexsort, KEY_make_sparse,
00014 KEY_map, KEY_mapdc, KEY_minterms, KEY_opo, KEY_opoall,
00015 KEY_pair, KEY_pairall, KEY_primes, KEY_qm, KEY_reduce, KEY_sharp,
00016 KEY_simplify, KEY_so, KEY_so_both, KEY_stats, KEY_super_gasp, KEY_taut,
00017 KEY_test, KEY_equiv, KEY_union, KEY_verify, KEY_MANY_ESPRESSO,
00018 KEY_separate, KEY_xor, KEY_d1merge_in, KEY_fsm,
00019 KEY_unknown
00020 };
00021
00022
00023 struct {
00024 char *name;
00025 enum keys key;
00026 int num_plas;
00027 bool needs_offset;
00028 bool needs_dcset;
00029 } option_table [] = {
00030
00031 "ESPRESSO", KEY_ESPRESSO, 1, TRUE, TRUE,
00032 "many", KEY_MANY_ESPRESSO, 1, TRUE, TRUE,
00033 "exact", KEY_exact, 1, TRUE, TRUE,
00034 "qm", KEY_qm, 1, TRUE, TRUE,
00035 "single_output", KEY_so, 1, TRUE, TRUE,
00036 "so", KEY_so, 1, TRUE, TRUE,
00037 "so_both", KEY_so_both, 1, TRUE, TRUE,
00038 "simplify", KEY_simplify, 1, FALSE, FALSE,
00039 "echo", KEY_echo, 1, FALSE, FALSE,
00040
00041
00042 "opo", KEY_opo, 1, TRUE, TRUE,
00043 "opoall", KEY_opoall, 1, TRUE, TRUE,
00044 "pair", KEY_pair, 1, TRUE, TRUE,
00045 "pairall", KEY_pairall, 1, TRUE, TRUE,
00046
00047
00048 "check", KEY_check, 1, TRUE, TRUE,
00049 "stats", KEY_stats, 1, FALSE, FALSE,
00050 "verify", KEY_verify, 2, FALSE, TRUE,
00051 "PLAverify", KEY_PLA_verify, 2, FALSE, TRUE,
00052
00053
00054 "equiv", KEY_equiv, 1, TRUE, TRUE,
00055 "map", KEY_map, 1, FALSE, FALSE,
00056 "mapdc", KEY_mapdc, 1, FALSE, FALSE,
00057 "fsm", KEY_fsm, 1, FALSE, TRUE,
00058
00059
00060 "contain", KEY_contain, 1, FALSE, FALSE,
00061 "d1merge", KEY_d1merge, 1, FALSE, FALSE,
00062 "d1merge_in", KEY_d1merge_in, 1, FALSE, FALSE,
00063 "disjoint", KEY_disjoint, 1, TRUE, FALSE,
00064 "dsharp", KEY_dsharp, 2, FALSE, FALSE,
00065 "intersect", KEY_intersect, 2, FALSE, FALSE,
00066 "minterms", KEY_minterms, 1, FALSE, FALSE,
00067 "primes", KEY_primes, 1, FALSE, TRUE,
00068 "separate", KEY_separate, 1, TRUE, TRUE,
00069 "sharp", KEY_sharp, 2, FALSE, FALSE,
00070 "union", KEY_union, 2, FALSE, FALSE,
00071 "xor", KEY_xor, 2, TRUE, TRUE,
00072
00073
00074 "essen", KEY_essen, 1, FALSE, TRUE,
00075 "expand", KEY_expand, 1, TRUE, FALSE,
00076 "gasp", KEY_gasp, 1, TRUE, TRUE,
00077 "irred", KEY_irred, 1, FALSE, TRUE,
00078 "make_sparse", KEY_make_sparse, 1, TRUE, TRUE,
00079 "reduce", KEY_reduce, 1, FALSE, TRUE,
00080 "taut", KEY_taut, 1, FALSE, FALSE,
00081 "super_gasp", KEY_super_gasp, 1, TRUE, TRUE,
00082 "lexsort", KEY_lexsort, 1, FALSE, FALSE,
00083 "test", KEY_test, 1, TRUE, TRUE,
00084 0, KEY_unknown, 0, FALSE, FALSE
00085 };
00086
00087
00088 struct {
00089 char *name;
00090 int value;
00091 } debug_table[] = {
00092 "", EXPAND + ESSEN + IRRED + REDUCE + SPARSE + GASP + SHARP + MINCOV,
00093 "compl", COMPL, "essen", ESSEN,
00094 "expand", EXPAND, "expand1", EXPAND1|EXPAND,
00095 "irred", IRRED, "irred1", IRRED1|IRRED,
00096 "reduce", REDUCE, "reduce1", REDUCE1|REDUCE,
00097 "mincov", MINCOV, "mincov1", MINCOV1|MINCOV,
00098 "sparse", SPARSE, "sharp", SHARP,
00099 "taut", TAUT, "gasp", GASP,
00100 "exact", EXACT,
00101 0,
00102 };
00103
00104
00105 struct {
00106 char *name;
00107 int *variable;
00108 int value;
00109 } esp_opt_table[] = {
00110 "eat", &echo_comments, FALSE,
00111 "eatdots", &echo_unknown_commands, FALSE,
00112 "fast", &single_expand, TRUE,
00113 "kiss", &kiss, TRUE,
00114 "ness", &remove_essential, FALSE,
00115 "nirr", &force_irredundant, FALSE,
00116 "nunwrap", &unwrap_onset, FALSE,
00117 "onset", &recompute_onset, TRUE,
00118 "pos", &pos, TRUE,
00119 "random", &use_random_order, TRUE,
00120 "strong", &use_super_gasp, TRUE,
00121 0,
00122 };