diff --git a/maca_common/CMakeLists.txt b/maca_common/CMakeLists.txt index 75b9fad8808f8e5a646425313efde9c554b62ae0..503e9214c5a8190648c7c237e0e7e5f96b12cd54 100644 --- a/maca_common/CMakeLists.txt +++ b/maca_common/CMakeLists.txt @@ -9,6 +9,11 @@ set(SOURCES src/util.c src/sentence.c src/word_buffer.c src/trie.c + src/feat_desc.c + src/feat_lib.c + src/feat_model.c + + ) #compiling library diff --git a/maca_trans_parser/src/feat_desc.h b/maca_common/include/feat_desc.h similarity index 55% rename from maca_trans_parser/src/feat_desc.h rename to maca_common/include/feat_desc.h index e32390d1691f76dc3bb412bf01c1d3d5d1a26971..62dd7c9725e112c81edf8872074b61915d3bb212 100644 --- a/maca_trans_parser/src/feat_desc.h +++ b/maca_common/include/feat_desc.h @@ -1,7 +1,7 @@ #ifndef __FEAT_DESC__ #define __FEAT_DESC__ -#include "feat_fct.h" +typedef int (*feat_fct) (void *c); typedef struct { char *name; @@ -19,11 +19,11 @@ typedef struct { #include "util.h" -feat_desc *feat_desc_new(void); -void feat_desc_free(feat_desc *fd); -feat_desc *feat_desc_add(feat_desc *fd, simple_feat_desc *sfd); +feat_desc *feat_desc_new(void); +void feat_desc_free(feat_desc *fd); +feat_desc *feat_desc_add(feat_desc *fd, simple_feat_desc *sfd); simple_feat_desc *simple_feat_desc_new(char *name, int type, feat_fct fct); -void simple_feat_desc_free(simple_feat_desc *sfd); +void simple_feat_desc_free(simple_feat_desc *sfd); #endif diff --git a/maca_common/include/feat_lib.h b/maca_common/include/feat_lib.h new file mode 100644 index 0000000000000000000000000000000000000000..ef4f7aa6aa4cc1d28f6e28c45ea3a5b0d4b3a332 --- /dev/null +++ b/maca_common/include/feat_lib.h @@ -0,0 +1,18 @@ +#ifndef __FEAT_LIB__ +#define __FEAT_LIB__ + +#include "feat_desc.h" +#include "dico.h" + +typedef struct { + int nbelem; + dico *d_features; + simple_feat_desc **array; +} feat_lib; + +feat_lib *feat_lib_new(void); +void feat_lib_add(feat_lib *fl, int feature_type, char *feature_name, feat_fct feature_fct); +simple_feat_desc *feat_lib_get_simple_feat_desc(feat_lib *fl, char *feat_name); +feat_lib *feat_lib_build(void); +void feat_lib_free(feat_lib *fl); +#endif diff --git a/maca_common/include/feat_model.h b/maca_common/include/feat_model.h new file mode 100644 index 0000000000000000000000000000000000000000..f7c234cd0ea14ca4015cfa93f1826ecc2e7acc00 --- /dev/null +++ b/maca_common/include/feat_model.h @@ -0,0 +1,28 @@ +#ifndef __FEAT_MODEL__ +#define __FEAT_MODEL__ + +#include "feat_desc.h" +#include "feat_lib.h" + +typedef struct { + char string[2048]; + char *name; + int nbelem; + feat_desc **array; + int dim; + feat_lib *fl; // stores all simple features +} feat_model; + +/* #include "config.h" */ +#include "dico.h" +#include "mcd.h" + +void feat_model_free(feat_model *fm); +feat_model *feat_model_new(char *name); +void feat_model_print(FILE *f, feat_model *fm); +feat_desc *feat_model_add(feat_model *fm, feat_desc *fd); +feat_model *feat_model_read(char *filename, feat_lib *fl, int verbose); +void feat_model_compute_ranges(feat_model *fm, mcd *m, int mvt_nb); +int feat_model_get_type_feat_n(feat_model *fm, int n); + +#endif diff --git a/maca_trans_parser/src/feat_desc.c b/maca_common/src/feat_desc.c similarity index 100% rename from maca_trans_parser/src/feat_desc.c rename to maca_common/src/feat_desc.c diff --git a/maca_common/src/feat_lib.c b/maca_common/src/feat_lib.c new file mode 100644 index 0000000000000000000000000000000000000000..a47c9b6176d87ffd323b13aa5c64bb1e84c9539a --- /dev/null +++ b/maca_common/src/feat_lib.c @@ -0,0 +1,42 @@ +#include "feat_lib.h" +/* #include "feat_types.h" */ +/* #include "feat_fct.h" */ + +void feat_lib_add(feat_lib *fl, int feature_type, char *feature_name, feat_fct feature_fct) +{ + int feature_nb = dico_add(fl->d_features, feature_name); + fl->array = (simple_feat_desc **)realloc(fl->array, (feature_nb + 1) * sizeof(simple_feat_desc *)); + fl->array[feature_nb] = simple_feat_desc_new(feature_name, feature_type, feature_fct); + fl->nbelem = feature_nb+1; +} + +simple_feat_desc *feat_lib_get_simple_feat_desc(feat_lib *fl, char *feat_name) +{ + int index = dico_string2int(fl->d_features, feat_name); + if(index == -1){ + fprintf(stderr, "features function %s unknown\n", feat_name); + return NULL; + } + return fl->array[index]; +} + +feat_lib *feat_lib_new(void) +{ + feat_lib *fl = (feat_lib *)memalloc(sizeof(feat_lib)); + fl->nbelem = 0; + fl->d_features = dico_new(NULL, 100); + fl->array = NULL; + return fl; +} + +void feat_lib_free(feat_lib *fl) { + + for(int i=0; i < fl->nbelem; ++i) { + simple_feat_desc_free(fl->array[i]); + } + dico_free(fl->d_features); + free(fl->array); + free(fl); // ne devrait pas etre en commentaire + +} + diff --git a/maca_trans_parser/src/feat_model.c b/maca_common/src/feat_model.c similarity index 74% rename from maca_trans_parser/src/feat_model.c rename to maca_common/src/feat_model.c index 9ee83b2a409cdce93e224528d7a7644680fe5fd9..f28baecac3462b2587eac26d4ef4c45a3db027e8 100644 --- a/maca_trans_parser/src/feat_model.c +++ b/maca_common/src/feat_model.c @@ -5,8 +5,8 @@ #include "feat_model.h" #include "feat_lib.h" #include "feat_desc.h" -#include "feat_types.h" -#include "config2feat_vec.h" +/* #include "feat_types.h" */ +/* #include "config2feat_vec.h" */ /* returns type of the nth feature in fm */ /* if it is a complex feature, or if n is too large, returns -1 */ @@ -50,7 +50,7 @@ void feat_model_free(feat_model *fm) free(fm); } -feat_model *feat_model_read(char *filename, int verbose) +feat_model *feat_model_read(char *filename, feat_lib *fl, int verbose) { FILE *f = myfopen(filename, "r"); feat_model *fm = feat_model_new(filename); @@ -58,10 +58,13 @@ feat_model *feat_model_read(char *filename, int verbose) char buffer[1000]; /* ugly */ char *feat_name; //feat_lib *fl - fm->fl = feat_lib_build(); // must be preserved in feature_model to delete correctly features at the end + /*fm->fl = feat_lib_build();*/ // must be preserved in feature_model to delete correctly features at the end simple_feat_desc *sfd; feat_desc *fd; + + fm->fl = fl; + while(fgets(buffer, 1000, f)){ if(feof(f)) break; if((buffer[0] == '\n') || (buffer[0] == '#')) continue; @@ -82,7 +85,8 @@ feat_model *feat_model_read(char *filename, int verbose) return fm; } - +void feat_model_compute_ranges(feat_model *fm, mcd *m, int mvt_nb){} +#if(0) void feat_model_compute_ranges(feat_model *fm, mcd *m, int mvt_nb) { int i; @@ -118,7 +122,7 @@ void feat_model_compute_ranges(feat_model *fm, mcd *m, int mvt_nb) } fm->dim = total; } - +#endif void catenate_int(char *string, int val) { char s[10]; @@ -126,34 +130,6 @@ void catenate_int(char *string, int val) strcat(string, s); } -int feat_model_get_feat_value_fann(feat_model *fm, config *c, int feat_nb) -{ - feat_desc *fd = fm->array[feat_nb]; - /* fm must be exclusively composed of simple features */ - return fd->array[0]->fct(c); -} - -int feat_model_get_feat_value_cff(feat_model *fm, config *c, dico *dico_features, int feat_nb, int mode) -{ - feat_desc *fd = fm->array[feat_nb]; - int i; - int feat_val; - - /* the name of the feature is built in fm->string and its value in the dictionnary (dico_features) is returned */ - fm->string[0] = '\0'; - for(i=0; i < fd->nbelem; i++){ - strcat(fm->string, fd->array[i]->name); - feat_val = fd->array[i]->fct(c); - catenate_int(fm->string, feat_val); - } - - if(mode == LOOKUP_MODE){ - if(fm->string) - /* printf("fmstring = %s\n", fm->string); */ - return dico_string2int(dico_features, fm->string); - } - return dico_add(dico_features, fm->string); -} feat_model *feat_model_new(char *name) diff --git a/maca_trans_parser/CMakeLists.txt b/maca_trans_parser/CMakeLists.txt index 18eea288854f1103bcf85ffa2d439941a172ca50..8864690f5dc0def405570b0921d97b8229d5f609 100644 --- a/maca_trans_parser/CMakeLists.txt +++ b/maca_trans_parser/CMakeLists.txt @@ -1,5 +1,4 @@ set(SOURCES src/context.c - src/feat_desc.c src/movements.c src/movement_parser_arc_eager.c src/movement_tagparser_arc_eager.c @@ -15,18 +14,17 @@ set(SOURCES src/context.c src/simple_decoder_tagparser_arc_eager.c # src/simple_decoder_forrest.c src/simple_decoder_tagger.c - src/simple_decoder_tagger_bt.c - src/feat_lib.c +# src/simple_decoder_tagger_bt.c src/stack.c src/config2feat_vec.c src/depset.c - src/feat_model.c src/config.c # src/queue.c # src/beam.c src/feat_types.c src/mvt.c src/mvt_stack.c + ) #compiling library @@ -42,11 +40,11 @@ target_link_libraries(maca_trans_tagger_mcf2cff transparse) target_link_libraries(maca_trans_tagger_mcf2cff maca_common) install (TARGETS maca_trans_tagger_mcf2cff DESTINATION bin) -add_executable(maca_trans_tagger_mcf2cff_bt ./src/maca_trans_tagger_mcf2cff_bt.c) -target_link_libraries(maca_trans_tagger_mcf2cff_bt perceptron) -target_link_libraries(maca_trans_tagger_mcf2cff_bt transparse) -target_link_libraries(maca_trans_tagger_mcf2cff_bt maca_common) -install (TARGETS maca_trans_tagger_mcf2cff_bt DESTINATION bin) +#add_executable(maca_trans_tagger_mcf2cff_bt ./src/maca_trans_tagger_mcf2cff_bt.c) +#target_link_libraries(maca_trans_tagger_mcf2cff_bt perceptron) +#target_link_libraries(maca_trans_tagger_mcf2cff_bt transparse) +#target_link_libraries(maca_trans_tagger_mcf2cff_bt maca_common) +#install (TARGETS maca_trans_tagger_mcf2cff_bt DESTINATION bin) #add_executable(maca_trans_parser_mcf2fann ./src/maca_trans_parser_mcf2fann.c) #target_link_libraries(maca_trans_parser_mcf2fann perceptron) @@ -102,11 +100,11 @@ target_link_libraries(maca_trans_tagger transparse) target_link_libraries(maca_trans_tagger maca_common) install (TARGETS maca_trans_tagger DESTINATION bin) -add_executable(maca_trans_tagger_bt ./src/maca_trans_tagger_bt.c) -target_link_libraries(maca_trans_tagger_bt perceptron) -target_link_libraries(maca_trans_tagger_bt transparse) -target_link_libraries(maca_trans_tagger_bt maca_common) -install (TARGETS maca_trans_tagger_bt DESTINATION bin) +#add_executable(maca_trans_tagger_bt ./src/maca_trans_tagger_bt.c) +#target_link_libraries(maca_trans_tagger_bt perceptron) +#target_link_libraries(maca_trans_tagger_bt transparse) +#target_link_libraries(maca_trans_tagger_bt maca_common) +#install (TARGETS maca_trans_tagger_bt DESTINATION bin) #add_executable(maca_trans_parser_train ./src/train_perceptron.c) #target_compile_options(maca_trans_parser_train INTERFACE -Wall) diff --git a/maca_trans_parser/src/cff2fann.c b/maca_trans_parser/src/cff2fann.c index 2167fa8d0108633ea55e3b3802bb271d3b94157d..93c49b32e47af548612b5b4b67263dd9ffa1cb5d 100644 --- a/maca_trans_parser/src/cff2fann.c +++ b/maca_trans_parser/src/cff2fann.c @@ -100,7 +100,7 @@ int main(int argc, char *argv[]) ctx->vocabs = dico_vec_read(ctx->vocabs_filename, ctx->hash_ratio); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); look_for_number_of_features_and_classes(ctx->input_filename, &nb_feat, &nb_class); ctx->mvt_nb = nb_class; diff --git a/maca_trans_parser/src/config2feat_vec.c b/maca_trans_parser/src/config2feat_vec.c index 47916fa1bd85436d2d216e8181ecf1a51820eb52..0b63b1633ca98ed0d4b7c6d6eea27e37a3e7001d 100644 --- a/maca_trans_parser/src/config2feat_vec.c +++ b/maca_trans_parser/src/config2feat_vec.c @@ -5,12 +5,44 @@ #include"feat_model.h" #include"config2feat_vec.h" + +int get_feat_value_fann(feat_model *fm, config *c, int feat_nb) +{ + feat_desc *fd = fm->array[feat_nb]; + /* fm must be exclusively composed of simple features */ + return fd->array[0]->fct(c); +} + +int get_feat_value_cff(feat_model *fm, config *c, dico *dico_features, int feat_nb, int mode) +{ + feat_desc *fd = fm->array[feat_nb]; + int i; + int feat_val; + + /* the name of the feature is built in fm->string and its value in the dictionnary (dico_features) is returned */ + fm->string[0] = '\0'; + for(i=0; i < fd->nbelem; i++){ + strcat(fm->string, fd->array[i]->name); + feat_val = fd->array[i]->fct(c); + catenate_int(fm->string, feat_val); + } + + if(mode == LOOKUP_MODE){ + if(fm->string) + /* printf("fmstring = %s\n", fm->string); */ + return dico_string2int(dico_features, fm->string); + } + return dico_add(dico_features, fm->string); +} + + + feat_vec *config2feat_vec_fann(feat_model *fm, config *c, feat_vec *fv, int mode) { int i; feat_vec_empty(fv); for(i=0; i < fm->nbelem; i++) - feat_vec_add(fv, feat_model_get_feat_value_fann(fm, c, i)); + feat_vec_add(fv, get_feat_value_fann(fm, c, i)); return fv; } @@ -19,7 +51,7 @@ feat_vec *config2feat_vec_cff(feat_model *fm, config *c, dico *dico_features, fe int i; feat_vec_empty(fv); for(i=0; i < fm->nbelem; i++) - feat_vec_add(fv, feat_model_get_feat_value_cff(fm, c, dico_features, i, mode)); + feat_vec_add(fv, get_feat_value_cff(fm, c, dico_features, i, mode)); return fv; } diff --git a/maca_trans_parser/src/config2feat_vec.h b/maca_trans_parser/src/config2feat_vec.h index de5fd974007bea2c725c0365e6773f4c6b45f178..2e661a13cbcbe472a967ea6f9ca93df9ec2038cf 100644 --- a/maca_trans_parser/src/config2feat_vec.h +++ b/maca_trans_parser/src/config2feat_vec.h @@ -15,6 +15,11 @@ feat_vec *config2feat_vec_fann(feat_model *fm, config *c, feat_vec *fv, int mode); feat_vec *config2feat_vec_cff(feat_model *fm, config *c, dico *dico_features, feat_vec *fv, int mode); + +/* int feat_model_get_feat_value_fann(feat_model *fm, config *c, int feat_nb); */ +/* int feat_model_get_feat_value_cff(feat_model *fm, config *c, dico *dico_features, int feat_nb, int mode); */ + + /* feat_vec *config2feat_vec(config *c, dico *dico_features, feat_vec *fv, int mode); feat_vec *config2feat_vec_add_features(config *c, dico *dico_features, feat_vec *fv); diff --git a/maca_trans_parser/src/feat_fct.c b/maca_trans_parser/src/feat_fct.c index 608c53baa35fe23793a780235c8a78bfdf7b8117..ec84300011c7bbd72c51601c9cf1774455f8cfb4 100644 --- a/maca_trans_parser/src/feat_fct.c +++ b/maca_trans_parser/src/feat_fct.c @@ -5,160 +5,162 @@ #include"stack.h" #include"feat_fct.h" #include"feat_types.h" +#include"config.h" + /* word features */ /* words in the stack */ -int s0g(config *c) {return (word_get_gov(stack_s0(config_get_stack(c))) == WORD_INVALID_GOV) ? 0 : 1;} -int s0sf(config *c) {return word_get_label(stack_s0(config_get_stack(c)));} - -int s0f(config *c) {return word_get_form(stack_s0(config_get_stack(c)));} -int s0l(config *c) {return word_get_lemma(stack_s0(config_get_stack(c)));} -int s0c(config *c) {return word_get_cpos(stack_s0(config_get_stack(c)));} -int s0p(config *c) {return word_get_pos(stack_s0(config_get_stack(c)));} -int s0m(config *c) {return word_get_feats(stack_s0(config_get_stack(c)));} -int s0s(config *c) {return word_get_stag(stack_s0(config_get_stack(c)));} -int s0A(config *c) {return word_get_A(stack_s0(config_get_stack(c)));} -int s0B(config *c) {return word_get_B(stack_s0(config_get_stack(c)));} -int s0C(config *c) {return word_get_C(stack_s0(config_get_stack(c)));} -int s0D(config *c) {return word_get_D(stack_s0(config_get_stack(c)));} -int s0E(config *c) {return word_get_E(stack_s0(config_get_stack(c)));} -int s0F(config *c) {return word_get_F(stack_s0(config_get_stack(c)));} -int s0G(config *c) {return word_get_G(stack_s0(config_get_stack(c)));} -int s0H(config *c) {return word_get_H(stack_s0(config_get_stack(c)));} -int s0I(config *c) {return word_get_I(stack_s0(config_get_stack(c)));} -int s0J(config *c) {return word_get_J(stack_s0(config_get_stack(c)));} -int s0K(config *c) {return word_get_K(stack_s0(config_get_stack(c)));} -int s0L(config *c) {return word_get_L(stack_s0(config_get_stack(c)));} -int s0M(config *c) {return word_get_M(stack_s0(config_get_stack(c)));} -int s0N(config *c) {return word_get_N(stack_s0(config_get_stack(c)));} -int s0O(config *c) {return word_get_O(stack_s0(config_get_stack(c)));} -int s0P(config *c) {return word_get_P(stack_s0(config_get_stack(c)));} -int s0Q(config *c) {return word_get_Q(stack_s0(config_get_stack(c)));} -int s0R(config *c) {return word_get_R(stack_s0(config_get_stack(c)));} -int s0S(config *c) {return word_get_S(stack_s0(config_get_stack(c)));} -int s0T(config *c) {return word_get_T(stack_s0(config_get_stack(c)));} -int s0U(config *c) {return word_get_U(stack_s0(config_get_stack(c)));} -int s0V(config *c) {return word_get_V(stack_s0(config_get_stack(c)));} -int s0W(config *c) {return word_get_W(stack_s0(config_get_stack(c)));} -int s0X(config *c) {return word_get_X(stack_s0(config_get_stack(c)));} -int s0Y(config *c) {return word_get_Y(stack_s0(config_get_stack(c)));} -int s0Z(config *c) {return word_get_Z(stack_s0(config_get_stack(c)));} - -int s0U1(config *c) {return word_get_U1(stack_s0(config_get_stack(c)));} -int s0sgn(config *c) {return word_get_signature(stack_s0(config_get_stack(c)));} - -int s1g(config *c) {return (word_get_gov(stack_s1(config_get_stack(c))) == WORD_INVALID_GOV) ? 0 : 1;} -int s1sf(config *c) {return word_get_label(stack_s1(config_get_stack(c)));} - -int s1f(config *c) {return word_get_form(stack_s1(config_get_stack(c)));} -int s1l(config *c) {return word_get_lemma(stack_s1(config_get_stack(c)));} -int s1c(config *c) {return word_get_cpos(stack_s1(config_get_stack(c)));} -int s1p(config *c) {return word_get_pos(stack_s1(config_get_stack(c)));} -int s1m(config *c) {return word_get_feats(stack_s1(config_get_stack(c)));} -int s1s(config *c) {return word_get_stag(stack_s1(config_get_stack(c)));} -int s1A(config *c) {return word_get_A(stack_s1(config_get_stack(c)));} -int s1B(config *c) {return word_get_B(stack_s1(config_get_stack(c)));} -int s1C(config *c) {return word_get_C(stack_s1(config_get_stack(c)));} -int s1D(config *c) {return word_get_D(stack_s1(config_get_stack(c)));} -int s1E(config *c) {return word_get_E(stack_s1(config_get_stack(c)));} -int s1F(config *c) {return word_get_F(stack_s1(config_get_stack(c)));} -int s1G(config *c) {return word_get_G(stack_s1(config_get_stack(c)));} -int s1H(config *c) {return word_get_H(stack_s1(config_get_stack(c)));} -int s1I(config *c) {return word_get_I(stack_s1(config_get_stack(c)));} -int s1J(config *c) {return word_get_J(stack_s1(config_get_stack(c)));} -int s1K(config *c) {return word_get_K(stack_s1(config_get_stack(c)));} -int s1L(config *c) {return word_get_L(stack_s1(config_get_stack(c)));} -int s1M(config *c) {return word_get_M(stack_s1(config_get_stack(c)));} -int s1N(config *c) {return word_get_N(stack_s1(config_get_stack(c)));} -int s1O(config *c) {return word_get_O(stack_s1(config_get_stack(c)));} -int s1P(config *c) {return word_get_P(stack_s1(config_get_stack(c)));} -int s1Q(config *c) {return word_get_Q(stack_s1(config_get_stack(c)));} -int s1R(config *c) {return word_get_R(stack_s1(config_get_stack(c)));} -int s1S(config *c) {return word_get_S(stack_s1(config_get_stack(c)));} -int s1T(config *c) {return word_get_T(stack_s1(config_get_stack(c)));} -int s1U(config *c) {return word_get_U(stack_s1(config_get_stack(c)));} -int s1V(config *c) {return word_get_V(stack_s1(config_get_stack(c)));} -int s1W(config *c) {return word_get_W(stack_s1(config_get_stack(c)));} -int s1X(config *c) {return word_get_X(stack_s1(config_get_stack(c)));} -int s1Y(config *c) {return word_get_Y(stack_s1(config_get_stack(c)));} -int s1Z(config *c) {return word_get_Z(stack_s1(config_get_stack(c)));} - -int s2f(config *c) {return word_get_form(stack_s2(config_get_stack(c)));} -int s2l(config *c) {return word_get_lemma(stack_s2(config_get_stack(c)));} -int s2c(config *c) {return word_get_cpos(stack_s2(config_get_stack(c)));} -int s2p(config *c) {return word_get_pos(stack_s2(config_get_stack(c)));} -int s2m(config *c) {return word_get_feats(stack_s2(config_get_stack(c)));} -int s2s(config *c) {return word_get_stag(stack_s2(config_get_stack(c)));} -int s2A(config *c) {return word_get_A(stack_s2(config_get_stack(c)));} -int s2B(config *c) {return word_get_B(stack_s2(config_get_stack(c)));} -int s2C(config *c) {return word_get_C(stack_s2(config_get_stack(c)));} -int s2D(config *c) {return word_get_D(stack_s2(config_get_stack(c)));} -int s2E(config *c) {return word_get_E(stack_s2(config_get_stack(c)));} -int s2F(config *c) {return word_get_F(stack_s2(config_get_stack(c)));} -int s2G(config *c) {return word_get_G(stack_s2(config_get_stack(c)));} -int s2H(config *c) {return word_get_H(stack_s2(config_get_stack(c)));} -int s2I(config *c) {return word_get_I(stack_s2(config_get_stack(c)));} -int s2J(config *c) {return word_get_J(stack_s2(config_get_stack(c)));} -int s2K(config *c) {return word_get_K(stack_s2(config_get_stack(c)));} -int s2L(config *c) {return word_get_L(stack_s2(config_get_stack(c)));} -int s2M(config *c) {return word_get_M(stack_s2(config_get_stack(c)));} -int s2N(config *c) {return word_get_N(stack_s2(config_get_stack(c)));} -int s2O(config *c) {return word_get_O(stack_s2(config_get_stack(c)));} -int s2P(config *c) {return word_get_P(stack_s2(config_get_stack(c)));} -int s2Q(config *c) {return word_get_Q(stack_s2(config_get_stack(c)));} -int s2R(config *c) {return word_get_R(stack_s2(config_get_stack(c)));} -int s2S(config *c) {return word_get_S(stack_s2(config_get_stack(c)));} -int s2T(config *c) {return word_get_T(stack_s2(config_get_stack(c)));} -int s2U(config *c) {return word_get_U(stack_s2(config_get_stack(c)));} -int s2V(config *c) {return word_get_V(stack_s2(config_get_stack(c)));} -int s2W(config *c) {return word_get_W(stack_s2(config_get_stack(c)));} -int s2X(config *c) {return word_get_X(stack_s2(config_get_stack(c)));} -int s2Y(config *c) {return word_get_Y(stack_s2(config_get_stack(c)));} -int s2Z(config *c) {return word_get_Z(stack_s2(config_get_stack(c)));} - -int s3f(config *c) {return word_get_form(stack_s3(config_get_stack(c)));} -int s3l(config *c) {return word_get_lemma(stack_s3(config_get_stack(c)));} -int s3c(config *c) {return word_get_cpos(stack_s3(config_get_stack(c)));} -int s3p(config *c) {return word_get_pos(stack_s3(config_get_stack(c)));} -int s3m(config *c) {return word_get_feats(stack_s3(config_get_stack(c)));} -int s3s(config *c) {return word_get_stag(stack_s3(config_get_stack(c)));} -int s3A(config *c) {return word_get_A(stack_s3(config_get_stack(c)));} -int s3B(config *c) {return word_get_B(stack_s3(config_get_stack(c)));} -int s3C(config *c) {return word_get_C(stack_s3(config_get_stack(c)));} -int s3D(config *c) {return word_get_D(stack_s3(config_get_stack(c)));} -int s3E(config *c) {return word_get_E(stack_s3(config_get_stack(c)));} -int s3F(config *c) {return word_get_F(stack_s3(config_get_stack(c)));} -int s3G(config *c) {return word_get_G(stack_s3(config_get_stack(c)));} -int s3H(config *c) {return word_get_H(stack_s3(config_get_stack(c)));} -int s3I(config *c) {return word_get_I(stack_s3(config_get_stack(c)));} -int s3J(config *c) {return word_get_J(stack_s3(config_get_stack(c)));} -int s3K(config *c) {return word_get_K(stack_s3(config_get_stack(c)));} -int s3L(config *c) {return word_get_L(stack_s3(config_get_stack(c)));} -int s3M(config *c) {return word_get_M(stack_s3(config_get_stack(c)));} -int s3N(config *c) {return word_get_N(stack_s3(config_get_stack(c)));} -int s3O(config *c) {return word_get_O(stack_s3(config_get_stack(c)));} -int s3P(config *c) {return word_get_P(stack_s3(config_get_stack(c)));} -int s3Q(config *c) {return word_get_Q(stack_s3(config_get_stack(c)));} -int s3R(config *c) {return word_get_R(stack_s3(config_get_stack(c)));} -int s3S(config *c) {return word_get_S(stack_s3(config_get_stack(c)));} -int s3T(config *c) {return word_get_T(stack_s3(config_get_stack(c)));} -int s3U(config *c) {return word_get_U(stack_s3(config_get_stack(c)));} -int s3V(config *c) {return word_get_V(stack_s3(config_get_stack(c)));} -int s3W(config *c) {return word_get_W(stack_s3(config_get_stack(c)));} -int s3X(config *c) {return word_get_X(stack_s3(config_get_stack(c)));} -int s3Y(config *c) {return word_get_Y(stack_s3(config_get_stack(c)));} -int s3Z(config *c) {return word_get_Z(stack_s3(config_get_stack(c)));} +int s0g(void *c) {return (word_get_gov(stack_s0(config_get_stack((config *) c))) == WORD_INVALID_GOV) ? 0 : 1;} +int s0sf(void *c) {return word_get_label(stack_s0(config_get_stack((config *) c)));} + +int s0f(void *c) {return word_get_form(stack_s0(config_get_stack((config *) c)));} +int s0l(void *c) {return word_get_lemma(stack_s0(config_get_stack((config *) c)));} +int s0c(void *c) {return word_get_cpos(stack_s0(config_get_stack((config *) c)));} +int s0p(void *c) {return word_get_pos(stack_s0(config_get_stack((config *) c)));} +int s0m(void *c) {return word_get_feats(stack_s0(config_get_stack((config *) c)));} +int s0s(void *c) {return word_get_stag(stack_s0(config_get_stack((config *) c)));} +int s0A(void *c) {return word_get_A(stack_s0(config_get_stack((config *) c)));} +int s0B(void *c) {return word_get_B(stack_s0(config_get_stack((config *) c)));} +int s0C(void *c) {return word_get_C(stack_s0(config_get_stack((config *) c)));} +int s0D(void *c) {return word_get_D(stack_s0(config_get_stack((config *) c)));} +int s0E(void *c) {return word_get_E(stack_s0(config_get_stack((config *) c)));} +int s0F(void *c) {return word_get_F(stack_s0(config_get_stack((config *) c)));} +int s0G(void *c) {return word_get_G(stack_s0(config_get_stack((config *) c)));} +int s0H(void *c) {return word_get_H(stack_s0(config_get_stack((config *) c)));} +int s0I(void *c) {return word_get_I(stack_s0(config_get_stack((config *) c)));} +int s0J(void *c) {return word_get_J(stack_s0(config_get_stack((config *) c)));} +int s0K(void *c) {return word_get_K(stack_s0(config_get_stack((config *) c)));} +int s0L(void *c) {return word_get_L(stack_s0(config_get_stack((config *) c)));} +int s0M(void *c) {return word_get_M(stack_s0(config_get_stack((config *) c)));} +int s0N(void *c) {return word_get_N(stack_s0(config_get_stack((config *) c)));} +int s0O(void *c) {return word_get_O(stack_s0(config_get_stack((config *) c)));} +int s0P(void *c) {return word_get_P(stack_s0(config_get_stack((config *) c)));} +int s0Q(void *c) {return word_get_Q(stack_s0(config_get_stack((config *) c)));} +int s0R(void *c) {return word_get_R(stack_s0(config_get_stack((config *) c)));} +int s0S(void *c) {return word_get_S(stack_s0(config_get_stack((config *) c)));} +int s0T(void *c) {return word_get_T(stack_s0(config_get_stack((config *) c)));} +int s0U(void *c) {return word_get_U(stack_s0(config_get_stack((config *) c)));} +int s0V(void *c) {return word_get_V(stack_s0(config_get_stack((config *) c)));} +int s0W(void *c) {return word_get_W(stack_s0(config_get_stack((config *) c)));} +int s0X(void *c) {return word_get_X(stack_s0(config_get_stack((config *) c)));} +int s0Y(void *c) {return word_get_Y(stack_s0(config_get_stack((config *) c)));} +int s0Z(void *c) {return word_get_Z(stack_s0(config_get_stack((config *) c)));} + +int s0U1(void *c) {return word_get_U1(stack_s0(config_get_stack((config *) c)));} +int s0sgn(void *c) {return word_get_signature(stack_s0(config_get_stack((config *) c)));} + +int s1g(void *c) {return (word_get_gov(stack_s1(config_get_stack((config *) c))) == WORD_INVALID_GOV) ? 0 : 1;} +int s1sf(void *c) {return word_get_label(stack_s1(config_get_stack((config *) c)));} + +int s1f(void *c) {return word_get_form(stack_s1(config_get_stack((config *) c)));} +int s1l(void *c) {return word_get_lemma(stack_s1(config_get_stack((config *) c)));} +int s1c(void *c) {return word_get_cpos(stack_s1(config_get_stack((config *) c)));} +int s1p(void *c) {return word_get_pos(stack_s1(config_get_stack((config *) c)));} +int s1m(void *c) {return word_get_feats(stack_s1(config_get_stack((config *) c)));} +int s1s(void *c) {return word_get_stag(stack_s1(config_get_stack((config *) c)));} +int s1A(void *c) {return word_get_A(stack_s1(config_get_stack((config *) c)));} +int s1B(void *c) {return word_get_B(stack_s1(config_get_stack((config *) c)));} +int s1C(void *c) {return word_get_C(stack_s1(config_get_stack((config *) c)));} +int s1D(void *c) {return word_get_D(stack_s1(config_get_stack((config *) c)));} +int s1E(void *c) {return word_get_E(stack_s1(config_get_stack((config *) c)));} +int s1F(void *c) {return word_get_F(stack_s1(config_get_stack((config *) c)));} +int s1G(void *c) {return word_get_G(stack_s1(config_get_stack((config *) c)));} +int s1H(void *c) {return word_get_H(stack_s1(config_get_stack((config *) c)));} +int s1I(void *c) {return word_get_I(stack_s1(config_get_stack((config *) c)));} +int s1J(void *c) {return word_get_J(stack_s1(config_get_stack((config *) c)));} +int s1K(void *c) {return word_get_K(stack_s1(config_get_stack((config *) c)));} +int s1L(void *c) {return word_get_L(stack_s1(config_get_stack((config *) c)));} +int s1M(void *c) {return word_get_M(stack_s1(config_get_stack((config *) c)));} +int s1N(void *c) {return word_get_N(stack_s1(config_get_stack((config *) c)));} +int s1O(void *c) {return word_get_O(stack_s1(config_get_stack((config *) c)));} +int s1P(void *c) {return word_get_P(stack_s1(config_get_stack((config *) c)));} +int s1Q(void *c) {return word_get_Q(stack_s1(config_get_stack((config *) c)));} +int s1R(void *c) {return word_get_R(stack_s1(config_get_stack((config *) c)));} +int s1S(void *c) {return word_get_S(stack_s1(config_get_stack((config *) c)));} +int s1T(void *c) {return word_get_T(stack_s1(config_get_stack((config *) c)));} +int s1U(void *c) {return word_get_U(stack_s1(config_get_stack((config *) c)));} +int s1V(void *c) {return word_get_V(stack_s1(config_get_stack((config *) c)));} +int s1W(void *c) {return word_get_W(stack_s1(config_get_stack((config *) c)));} +int s1X(void *c) {return word_get_X(stack_s1(config_get_stack((config *) c)));} +int s1Y(void *c) {return word_get_Y(stack_s1(config_get_stack((config *) c)));} +int s1Z(void *c) {return word_get_Z(stack_s1(config_get_stack((config *) c)));} + +int s2f(void *c) {return word_get_form(stack_s2(config_get_stack((config *) c)));} +int s2l(void *c) {return word_get_lemma(stack_s2(config_get_stack((config *) c)));} +int s2c(void *c) {return word_get_cpos(stack_s2(config_get_stack((config *) c)));} +int s2p(void *c) {return word_get_pos(stack_s2(config_get_stack((config *) c)));} +int s2m(void *c) {return word_get_feats(stack_s2(config_get_stack((config *) c)));} +int s2s(void *c) {return word_get_stag(stack_s2(config_get_stack((config *) c)));} +int s2A(void *c) {return word_get_A(stack_s2(config_get_stack((config *) c)));} +int s2B(void *c) {return word_get_B(stack_s2(config_get_stack((config *) c)));} +int s2C(void *c) {return word_get_C(stack_s2(config_get_stack((config *) c)));} +int s2D(void *c) {return word_get_D(stack_s2(config_get_stack((config *) c)));} +int s2E(void *c) {return word_get_E(stack_s2(config_get_stack((config *) c)));} +int s2F(void *c) {return word_get_F(stack_s2(config_get_stack((config *) c)));} +int s2G(void *c) {return word_get_G(stack_s2(config_get_stack((config *) c)));} +int s2H(void *c) {return word_get_H(stack_s2(config_get_stack((config *) c)));} +int s2I(void *c) {return word_get_I(stack_s2(config_get_stack((config *) c)));} +int s2J(void *c) {return word_get_J(stack_s2(config_get_stack((config *) c)));} +int s2K(void *c) {return word_get_K(stack_s2(config_get_stack((config *) c)));} +int s2L(void *c) {return word_get_L(stack_s2(config_get_stack((config *) c)));} +int s2M(void *c) {return word_get_M(stack_s2(config_get_stack((config *) c)));} +int s2N(void *c) {return word_get_N(stack_s2(config_get_stack((config *) c)));} +int s2O(void *c) {return word_get_O(stack_s2(config_get_stack((config *) c)));} +int s2P(void *c) {return word_get_P(stack_s2(config_get_stack((config *) c)));} +int s2Q(void *c) {return word_get_Q(stack_s2(config_get_stack((config *) c)));} +int s2R(void *c) {return word_get_R(stack_s2(config_get_stack((config *) c)));} +int s2S(void *c) {return word_get_S(stack_s2(config_get_stack((config *) c)));} +int s2T(void *c) {return word_get_T(stack_s2(config_get_stack((config *) c)));} +int s2U(void *c) {return word_get_U(stack_s2(config_get_stack((config *) c)));} +int s2V(void *c) {return word_get_V(stack_s2(config_get_stack((config *) c)));} +int s2W(void *c) {return word_get_W(stack_s2(config_get_stack((config *) c)));} +int s2X(void *c) {return word_get_X(stack_s2(config_get_stack((config *) c)));} +int s2Y(void *c) {return word_get_Y(stack_s2(config_get_stack((config *) c)));} +int s2Z(void *c) {return word_get_Z(stack_s2(config_get_stack((config *) c)));} + +int s3f(void *c) {return word_get_form(stack_s3(config_get_stack((config *) c)));} +int s3l(void *c) {return word_get_lemma(stack_s3(config_get_stack((config *) c)));} +int s3c(void *c) {return word_get_cpos(stack_s3(config_get_stack((config *) c)));} +int s3p(void *c) {return word_get_pos(stack_s3(config_get_stack((config *) c)));} +int s3m(void *c) {return word_get_feats(stack_s3(config_get_stack((config *) c)));} +int s3s(void *c) {return word_get_stag(stack_s3(config_get_stack((config *) c)));} +int s3A(void *c) {return word_get_A(stack_s3(config_get_stack((config *) c)));} +int s3B(void *c) {return word_get_B(stack_s3(config_get_stack((config *) c)));} +int s3C(void *c) {return word_get_C(stack_s3(config_get_stack((config *) c)));} +int s3D(void *c) {return word_get_D(stack_s3(config_get_stack((config *) c)));} +int s3E(void *c) {return word_get_E(stack_s3(config_get_stack((config *) c)));} +int s3F(void *c) {return word_get_F(stack_s3(config_get_stack((config *) c)));} +int s3G(void *c) {return word_get_G(stack_s3(config_get_stack((config *) c)));} +int s3H(void *c) {return word_get_H(stack_s3(config_get_stack((config *) c)));} +int s3I(void *c) {return word_get_I(stack_s3(config_get_stack((config *) c)));} +int s3J(void *c) {return word_get_J(stack_s3(config_get_stack((config *) c)));} +int s3K(void *c) {return word_get_K(stack_s3(config_get_stack((config *) c)));} +int s3L(void *c) {return word_get_L(stack_s3(config_get_stack((config *) c)));} +int s3M(void *c) {return word_get_M(stack_s3(config_get_stack((config *) c)));} +int s3N(void *c) {return word_get_N(stack_s3(config_get_stack((config *) c)));} +int s3O(void *c) {return word_get_O(stack_s3(config_get_stack((config *) c)));} +int s3P(void *c) {return word_get_P(stack_s3(config_get_stack((config *) c)));} +int s3Q(void *c) {return word_get_Q(stack_s3(config_get_stack((config *) c)));} +int s3R(void *c) {return word_get_R(stack_s3(config_get_stack((config *) c)));} +int s3S(void *c) {return word_get_S(stack_s3(config_get_stack((config *) c)));} +int s3T(void *c) {return word_get_T(stack_s3(config_get_stack((config *) c)));} +int s3U(void *c) {return word_get_U(stack_s3(config_get_stack((config *) c)));} +int s3V(void *c) {return word_get_V(stack_s3(config_get_stack((config *) c)));} +int s3W(void *c) {return word_get_W(stack_s3(config_get_stack((config *) c)));} +int s3X(void *c) {return word_get_X(stack_s3(config_get_stack((config *) c)));} +int s3Y(void *c) {return word_get_Y(stack_s3(config_get_stack((config *) c)));} +int s3Z(void *c) {return word_get_Z(stack_s3(config_get_stack((config *) c)));} /* words in the buffer */ -int b0g(config *c) {return (word_get_gov(word_buffer_b0(config_get_buffer(c))) == WORD_INVALID_GOV) ? 0 : 1;} -int b0sf(config *c) {return word_get_label(word_buffer_b0(config_get_buffer(c)));} +int b0g(void *c) {return (word_get_gov(word_buffer_b0(config_get_buffer((config *) c))) == WORD_INVALID_GOV) ? 0 : 1;} +int b0sf(void *c) {return word_get_label(word_buffer_b0(config_get_buffer((config *) c)));} -int b0len(config *c) { +int b0len(void *c) { int len = 0; - word *w = word_buffer_b0(config_get_buffer(c)); + word *w = word_buffer_b0(config_get_buffer((config *) c)); if(w->input) len = strlen(w->input); return (len > 7)? 7 : len; @@ -166,262 +168,263 @@ int b0len(config *c) { -int b0f(config *c) {return word_get_form(word_buffer_b0(config_get_buffer(c)));} -int b0l(config *c) {return word_get_lemma(word_buffer_b0(config_get_buffer(c)));} -int b0c(config *c) {return word_get_cpos(word_buffer_b0(config_get_buffer(c)));} -int b0p(config *c) {return word_get_pos(word_buffer_b0(config_get_buffer(c)));} -int b0m(config *c) {return word_get_feats(word_buffer_b0(config_get_buffer(c)));} -int b0s(config *c) {return word_get_stag(word_buffer_b0(config_get_buffer(c)));} -int b0A(config *c) {return word_get_A(word_buffer_b0(config_get_buffer(c)));} -int b0B(config *c) {return word_get_B(word_buffer_b0(config_get_buffer(c)));} -int b0C(config *c) {return word_get_C(word_buffer_b0(config_get_buffer(c)));} -int b0D(config *c) {return word_get_D(word_buffer_b0(config_get_buffer(c)));} -int b0E(config *c) {return word_get_E(word_buffer_b0(config_get_buffer(c)));} -int b0F(config *c) {return word_get_F(word_buffer_b0(config_get_buffer(c)));} -int b0G(config *c) {return word_get_G(word_buffer_b0(config_get_buffer(c)));} -int b0H(config *c) {return word_get_H(word_buffer_b0(config_get_buffer(c)));} -int b0I(config *c) {return word_get_I(word_buffer_b0(config_get_buffer(c)));} -int b0J(config *c) {return word_get_J(word_buffer_b0(config_get_buffer(c)));} -int b0K(config *c) {return word_get_K(word_buffer_b0(config_get_buffer(c)));} -int b0L(config *c) {return word_get_L(word_buffer_b0(config_get_buffer(c)));} -int b0M(config *c) {return word_get_M(word_buffer_b0(config_get_buffer(c)));} -int b0N(config *c) {return word_get_N(word_buffer_b0(config_get_buffer(c)));} -int b0O(config *c) {return word_get_O(word_buffer_b0(config_get_buffer(c)));} -int b0P(config *c) {return word_get_P(word_buffer_b0(config_get_buffer(c)));} -int b0Q(config *c) {return word_get_Q(word_buffer_b0(config_get_buffer(c)));} -int b0R(config *c) {return word_get_R(word_buffer_b0(config_get_buffer(c)));} -int b0S(config *c) {return word_get_S(word_buffer_b0(config_get_buffer(c)));} -int b0T(config *c) {return word_get_T(word_buffer_b0(config_get_buffer(c)));} -int b0U(config *c) {return word_get_U(word_buffer_b0(config_get_buffer(c)));} -int b0V(config *c) {return word_get_V(word_buffer_b0(config_get_buffer(c)));} -int b0W(config *c) {return word_get_W(word_buffer_b0(config_get_buffer(c)));} -int b0X(config *c) {return word_get_X(word_buffer_b0(config_get_buffer(c)));} -int b0Y(config *c) {return word_get_Y(word_buffer_b0(config_get_buffer(c)));} -int b0Z(config *c) {return word_get_Z(word_buffer_b0(config_get_buffer(c)));} - -int b0U1(config *c) {return word_get_U1(word_buffer_b0(config_get_buffer(c)));} -int b0sgn(config *c) {return word_get_signature(word_buffer_b0(config_get_buffer(c)));} - -int b1f(config *c) {return word_get_form(word_buffer_b1(config_get_buffer(c)));} -int b1l(config *c) {return word_get_lemma(word_buffer_b1(config_get_buffer(c)));} -int b1c(config *c) {return word_get_cpos(word_buffer_b1(config_get_buffer(c)));} -int b1p(config *c) {return word_get_pos(word_buffer_b1(config_get_buffer(c)));} -int b1m(config *c) {return word_get_feats(word_buffer_b1(config_get_buffer(c)));} -int b1s(config *c) {return word_get_stag(word_buffer_b1(config_get_buffer(c)));} -int b1A(config *c) {return word_get_A(word_buffer_b1(config_get_buffer(c)));} -int b1B(config *c) {return word_get_B(word_buffer_b1(config_get_buffer(c)));} -int b1C(config *c) {return word_get_C(word_buffer_b1(config_get_buffer(c)));} -int b1D(config *c) {return word_get_D(word_buffer_b1(config_get_buffer(c)));} -int b1E(config *c) {return word_get_E(word_buffer_b1(config_get_buffer(c)));} -int b1F(config *c) {return word_get_F(word_buffer_b1(config_get_buffer(c)));} -int b1G(config *c) {return word_get_G(word_buffer_b1(config_get_buffer(c)));} -int b1H(config *c) {return word_get_H(word_buffer_b1(config_get_buffer(c)));} -int b1I(config *c) {return word_get_I(word_buffer_b1(config_get_buffer(c)));} -int b1J(config *c) {return word_get_J(word_buffer_b1(config_get_buffer(c)));} -int b1K(config *c) {return word_get_K(word_buffer_b1(config_get_buffer(c)));} -int b1L(config *c) {return word_get_L(word_buffer_b1(config_get_buffer(c)));} -int b1M(config *c) {return word_get_M(word_buffer_b1(config_get_buffer(c)));} -int b1N(config *c) {return word_get_N(word_buffer_b1(config_get_buffer(c)));} -int b1O(config *c) {return word_get_O(word_buffer_b1(config_get_buffer(c)));} -int b1P(config *c) {return word_get_P(word_buffer_b1(config_get_buffer(c)));} -int b1Q(config *c) {return word_get_Q(word_buffer_b1(config_get_buffer(c)));} -int b1R(config *c) {return word_get_R(word_buffer_b1(config_get_buffer(c)));} -int b1S(config *c) {return word_get_S(word_buffer_b1(config_get_buffer(c)));} -int b1T(config *c) {return word_get_T(word_buffer_b1(config_get_buffer(c)));} -int b1U(config *c) {return word_get_U(word_buffer_b1(config_get_buffer(c)));} -int b1V(config *c) {return word_get_V(word_buffer_b1(config_get_buffer(c)));} -int b1W(config *c) {return word_get_W(word_buffer_b1(config_get_buffer(c)));} -int b1X(config *c) {return word_get_X(word_buffer_b1(config_get_buffer(c)));} -int b1Y(config *c) {return word_get_Y(word_buffer_b1(config_get_buffer(c)));} -int b1Z(config *c) {return word_get_Z(word_buffer_b1(config_get_buffer(c)));} - -int b1U1(config *c) {return word_get_U1(word_buffer_b1(config_get_buffer(c)));} -int b1sgn(config *c) {return word_get_signature(word_buffer_b1(config_get_buffer(c)));} - -int b2f(config *c) {return word_get_form(word_buffer_b2(config_get_buffer(c)));} -int b2l(config *c) {return word_get_lemma(word_buffer_b2(config_get_buffer(c)));} -int b2c(config *c) {return word_get_cpos(word_buffer_b2(config_get_buffer(c)));} -int b2p(config *c) {return word_get_pos(word_buffer_b2(config_get_buffer(c)));} -int b2m(config *c) {return word_get_feats(word_buffer_b2(config_get_buffer(c)));} -int b2s(config *c) {return word_get_stag(word_buffer_b2(config_get_buffer(c)));} -int b2A(config *c) {return word_get_A(word_buffer_b2(config_get_buffer(c)));} -int b2B(config *c) {return word_get_B(word_buffer_b2(config_get_buffer(c)));} -int b2C(config *c) {return word_get_C(word_buffer_b2(config_get_buffer(c)));} -int b2D(config *c) {return word_get_D(word_buffer_b2(config_get_buffer(c)));} -int b2E(config *c) {return word_get_E(word_buffer_b2(config_get_buffer(c)));} -int b2F(config *c) {return word_get_F(word_buffer_b2(config_get_buffer(c)));} -int b2G(config *c) {return word_get_G(word_buffer_b2(config_get_buffer(c)));} -int b2H(config *c) {return word_get_H(word_buffer_b2(config_get_buffer(c)));} -int b2I(config *c) {return word_get_I(word_buffer_b2(config_get_buffer(c)));} -int b2J(config *c) {return word_get_J(word_buffer_b2(config_get_buffer(c)));} -int b2K(config *c) {return word_get_K(word_buffer_b2(config_get_buffer(c)));} -int b2L(config *c) {return word_get_L(word_buffer_b2(config_get_buffer(c)));} -int b2M(config *c) {return word_get_M(word_buffer_b2(config_get_buffer(c)));} -int b2N(config *c) {return word_get_N(word_buffer_b2(config_get_buffer(c)));} -int b2O(config *c) {return word_get_O(word_buffer_b2(config_get_buffer(c)));} -int b2P(config *c) {return word_get_P(word_buffer_b2(config_get_buffer(c)));} -int b2Q(config *c) {return word_get_Q(word_buffer_b2(config_get_buffer(c)));} -int b2R(config *c) {return word_get_R(word_buffer_b2(config_get_buffer(c)));} -int b2S(config *c) {return word_get_S(word_buffer_b2(config_get_buffer(c)));} -int b2T(config *c) {return word_get_T(word_buffer_b2(config_get_buffer(c)));} -int b2U(config *c) {return word_get_U(word_buffer_b2(config_get_buffer(c)));} -int b2V(config *c) {return word_get_V(word_buffer_b2(config_get_buffer(c)));} -int b2W(config *c) {return word_get_W(word_buffer_b2(config_get_buffer(c)));} -int b2X(config *c) {return word_get_X(word_buffer_b2(config_get_buffer(c)));} -int b2Y(config *c) {return word_get_Y(word_buffer_b2(config_get_buffer(c)));} -int b2Z(config *c) {return word_get_Z(word_buffer_b2(config_get_buffer(c)));} - -int b2U1(config *c) {return word_get_U1(word_buffer_b2(config_get_buffer(c)));} -int b2sgn(config *c) {return word_get_signature(word_buffer_b2(config_get_buffer(c)));} - - - -int b3f(config *c) {return word_get_form(word_buffer_b3(config_get_buffer(c)));} -int b3l(config *c) {return word_get_lemma(word_buffer_b3(config_get_buffer(c)));} -int b3c(config *c) {return word_get_cpos(word_buffer_b3(config_get_buffer(c)));} -int b3p(config *c) {return word_get_pos(word_buffer_b3(config_get_buffer(c)));} -int b3m(config *c) {return word_get_feats(word_buffer_b3(config_get_buffer(c)));} -int b3s(config *c) {return word_get_stag(word_buffer_b3(config_get_buffer(c)));} -int b3A(config *c) {return word_get_A(word_buffer_b3(config_get_buffer(c)));} -int b3B(config *c) {return word_get_B(word_buffer_b3(config_get_buffer(c)));} -int b3C(config *c) {return word_get_C(word_buffer_b3(config_get_buffer(c)));} -int b3D(config *c) {return word_get_D(word_buffer_b3(config_get_buffer(c)));} -int b3E(config *c) {return word_get_E(word_buffer_b3(config_get_buffer(c)));} -int b3F(config *c) {return word_get_F(word_buffer_b3(config_get_buffer(c)));} -int b3G(config *c) {return word_get_G(word_buffer_b3(config_get_buffer(c)));} -int b3H(config *c) {return word_get_H(word_buffer_b3(config_get_buffer(c)));} -int b3I(config *c) {return word_get_I(word_buffer_b3(config_get_buffer(c)));} -int b3J(config *c) {return word_get_J(word_buffer_b3(config_get_buffer(c)));} -int b3K(config *c) {return word_get_K(word_buffer_b3(config_get_buffer(c)));} -int b3L(config *c) {return word_get_L(word_buffer_b3(config_get_buffer(c)));} -int b3M(config *c) {return word_get_M(word_buffer_b3(config_get_buffer(c)));} -int b3N(config *c) {return word_get_N(word_buffer_b3(config_get_buffer(c)));} -int b3O(config *c) {return word_get_O(word_buffer_b3(config_get_buffer(c)));} -int b3P(config *c) {return word_get_P(word_buffer_b3(config_get_buffer(c)));} -int b3Q(config *c) {return word_get_Q(word_buffer_b3(config_get_buffer(c)));} -int b3R(config *c) {return word_get_R(word_buffer_b3(config_get_buffer(c)));} -int b3S(config *c) {return word_get_S(word_buffer_b3(config_get_buffer(c)));} -int b3T(config *c) {return word_get_T(word_buffer_b3(config_get_buffer(c)));} -int b3U(config *c) {return word_get_U(word_buffer_b3(config_get_buffer(c)));} -int b3V(config *c) {return word_get_V(word_buffer_b3(config_get_buffer(c)));} -int b3W(config *c) {return word_get_W(word_buffer_b3(config_get_buffer(c)));} -int b3X(config *c) {return word_get_X(word_buffer_b3(config_get_buffer(c)));} -int b3Y(config *c) {return word_get_Y(word_buffer_b3(config_get_buffer(c)));} -int b3Z(config *c) {return word_get_Z(word_buffer_b3(config_get_buffer(c)));} - -int bm1f(config *c) {return word_get_form(word_buffer_bm1(config_get_buffer(c)));} -int bm1l(config *c) {return word_get_lemma(word_buffer_bm1(config_get_buffer(c)));} -int bm1c(config *c) {return word_get_cpos(word_buffer_bm1(config_get_buffer(c)));} -int bm1p(config *c) {return word_get_pos(word_buffer_bm1(config_get_buffer(c)));} -int bm1m(config *c) {return word_get_feats(word_buffer_bm1(config_get_buffer(c)));} -int bm1s(config *c) {return word_get_stag(word_buffer_bm1(config_get_buffer(c)));} -int bm1A(config *c) {return word_get_A(word_buffer_bm1(config_get_buffer(c)));} -int bm1B(config *c) {return word_get_B(word_buffer_bm1(config_get_buffer(c)));} -int bm1C(config *c) {return word_get_C(word_buffer_bm1(config_get_buffer(c)));} -int bm1D(config *c) {return word_get_D(word_buffer_bm1(config_get_buffer(c)));} -int bm1E(config *c) {return word_get_E(word_buffer_bm1(config_get_buffer(c)));} -int bm1F(config *c) {return word_get_F(word_buffer_bm1(config_get_buffer(c)));} -int bm1G(config *c) {return word_get_G(word_buffer_bm1(config_get_buffer(c)));} -int bm1H(config *c) {return word_get_H(word_buffer_bm1(config_get_buffer(c)));} -int bm1I(config *c) {return word_get_I(word_buffer_bm1(config_get_buffer(c)));} -int bm1J(config *c) {return word_get_J(word_buffer_bm1(config_get_buffer(c)));} -int bm1K(config *c) {return word_get_K(word_buffer_bm1(config_get_buffer(c)));} -int bm1L(config *c) {return word_get_L(word_buffer_bm1(config_get_buffer(c)));} -int bm1M(config *c) {return word_get_M(word_buffer_bm1(config_get_buffer(c)));} -int bm1N(config *c) {return word_get_N(word_buffer_bm1(config_get_buffer(c)));} -int bm1O(config *c) {return word_get_O(word_buffer_bm1(config_get_buffer(c)));} -int bm1P(config *c) {return word_get_P(word_buffer_bm1(config_get_buffer(c)));} -int bm1Q(config *c) {return word_get_Q(word_buffer_bm1(config_get_buffer(c)));} -int bm1R(config *c) {return word_get_R(word_buffer_bm1(config_get_buffer(c)));} -int bm1S(config *c) {return word_get_S(word_buffer_bm1(config_get_buffer(c)));} -int bm1T(config *c) {return word_get_T(word_buffer_bm1(config_get_buffer(c)));} -int bm1U(config *c) {return word_get_U(word_buffer_bm1(config_get_buffer(c)));} -int bm1V(config *c) {return word_get_V(word_buffer_bm1(config_get_buffer(c)));} -int bm1W(config *c) {return word_get_W(word_buffer_bm1(config_get_buffer(c)));} -int bm1X(config *c) {return word_get_X(word_buffer_bm1(config_get_buffer(c)));} -int bm1Y(config *c) {return word_get_Y(word_buffer_bm1(config_get_buffer(c)));} -int bm1Z(config *c) {return word_get_Z(word_buffer_bm1(config_get_buffer(c)));} - -int bm1U1(config *c) {return word_get_U1(word_buffer_bm1(config_get_buffer(c)));} -int bm1sgn(config *c) {return word_get_signature(word_buffer_bm1(config_get_buffer(c)));} - -int bm2f(config *c) {return word_get_form(word_buffer_bm2(config_get_buffer(c)));} -int bm2l(config *c) {return word_get_lemma(word_buffer_bm2(config_get_buffer(c)));} -int bm2c(config *c) {return word_get_cpos(word_buffer_bm2(config_get_buffer(c)));} -int bm2p(config *c) {return word_get_pos(word_buffer_bm2(config_get_buffer(c)));} -int bm2m(config *c) {return word_get_feats(word_buffer_bm2(config_get_buffer(c)));} -int bm2s(config *c) {return word_get_stag(word_buffer_bm2(config_get_buffer(c)));} -int bm2A(config *c) {return word_get_A(word_buffer_bm2(config_get_buffer(c)));} -int bm2B(config *c) {return word_get_B(word_buffer_bm2(config_get_buffer(c)));} -int bm2C(config *c) {return word_get_C(word_buffer_bm2(config_get_buffer(c)));} -int bm2D(config *c) {return word_get_D(word_buffer_bm2(config_get_buffer(c)));} -int bm2E(config *c) {return word_get_E(word_buffer_bm2(config_get_buffer(c)));} -int bm2F(config *c) {return word_get_F(word_buffer_bm2(config_get_buffer(c)));} -int bm2G(config *c) {return word_get_G(word_buffer_bm2(config_get_buffer(c)));} -int bm2H(config *c) {return word_get_H(word_buffer_bm2(config_get_buffer(c)));} -int bm2I(config *c) {return word_get_I(word_buffer_bm2(config_get_buffer(c)));} -int bm2J(config *c) {return word_get_J(word_buffer_bm2(config_get_buffer(c)));} -int bm2K(config *c) {return word_get_K(word_buffer_bm2(config_get_buffer(c)));} -int bm2L(config *c) {return word_get_L(word_buffer_bm2(config_get_buffer(c)));} -int bm2M(config *c) {return word_get_M(word_buffer_bm2(config_get_buffer(c)));} -int bm2N(config *c) {return word_get_N(word_buffer_bm2(config_get_buffer(c)));} -int bm2O(config *c) {return word_get_O(word_buffer_bm2(config_get_buffer(c)));} -int bm2P(config *c) {return word_get_P(word_buffer_bm2(config_get_buffer(c)));} -int bm2Q(config *c) {return word_get_Q(word_buffer_bm2(config_get_buffer(c)));} -int bm2R(config *c) {return word_get_R(word_buffer_bm2(config_get_buffer(c)));} -int bm2S(config *c) {return word_get_S(word_buffer_bm2(config_get_buffer(c)));} -int bm2T(config *c) {return word_get_T(word_buffer_bm2(config_get_buffer(c)));} -int bm2U(config *c) {return word_get_U(word_buffer_bm2(config_get_buffer(c)));} -int bm2V(config *c) {return word_get_V(word_buffer_bm2(config_get_buffer(c)));} -int bm2W(config *c) {return word_get_W(word_buffer_bm2(config_get_buffer(c)));} -int bm2X(config *c) {return word_get_X(word_buffer_bm2(config_get_buffer(c)));} -int bm2Y(config *c) {return word_get_Y(word_buffer_bm2(config_get_buffer(c)));} -int bm2Z(config *c) {return word_get_Z(word_buffer_bm2(config_get_buffer(c)));} - -int bm3f(config *c) {return word_get_form(word_buffer_bm3(config_get_buffer(c)));} -int bm3l(config *c) {return word_get_lemma(word_buffer_bm3(config_get_buffer(c)));} -int bm3c(config *c) {return word_get_cpos(word_buffer_bm3(config_get_buffer(c)));} -int bm3p(config *c) {return word_get_pos(word_buffer_bm3(config_get_buffer(c)));} -int bm3m(config *c) {return word_get_feats(word_buffer_bm3(config_get_buffer(c)));} -int bm3s(config *c) {return word_get_stag(word_buffer_bm3(config_get_buffer(c)));} -int bm3A(config *c) {return word_get_A(word_buffer_bm3(config_get_buffer(c)));} -int bm3B(config *c) {return word_get_B(word_buffer_bm3(config_get_buffer(c)));} -int bm3C(config *c) {return word_get_C(word_buffer_bm3(config_get_buffer(c)));} -int bm3D(config *c) {return word_get_D(word_buffer_bm3(config_get_buffer(c)));} -int bm3E(config *c) {return word_get_E(word_buffer_bm3(config_get_buffer(c)));} -int bm3F(config *c) {return word_get_F(word_buffer_bm3(config_get_buffer(c)));} -int bm3G(config *c) {return word_get_G(word_buffer_bm3(config_get_buffer(c)));} -int bm3H(config *c) {return word_get_H(word_buffer_bm3(config_get_buffer(c)));} -int bm3I(config *c) {return word_get_I(word_buffer_bm3(config_get_buffer(c)));} -int bm3J(config *c) {return word_get_J(word_buffer_bm3(config_get_buffer(c)));} -int bm3K(config *c) {return word_get_K(word_buffer_bm3(config_get_buffer(c)));} -int bm3L(config *c) {return word_get_L(word_buffer_bm3(config_get_buffer(c)));} -int bm3M(config *c) {return word_get_M(word_buffer_bm3(config_get_buffer(c)));} -int bm3N(config *c) {return word_get_N(word_buffer_bm3(config_get_buffer(c)));} -int bm3O(config *c) {return word_get_O(word_buffer_bm3(config_get_buffer(c)));} -int bm3P(config *c) {return word_get_P(word_buffer_bm3(config_get_buffer(c)));} -int bm3Q(config *c) {return word_get_Q(word_buffer_bm3(config_get_buffer(c)));} -int bm3R(config *c) {return word_get_R(word_buffer_bm3(config_get_buffer(c)));} -int bm3S(config *c) {return word_get_S(word_buffer_bm3(config_get_buffer(c)));} -int bm3T(config *c) {return word_get_T(word_buffer_bm3(config_get_buffer(c)));} -int bm3U(config *c) {return word_get_U(word_buffer_bm3(config_get_buffer(c)));} -int bm3V(config *c) {return word_get_V(word_buffer_bm3(config_get_buffer(c)));} -int bm3W(config *c) {return word_get_W(word_buffer_bm3(config_get_buffer(c)));} -int bm3X(config *c) {return word_get_X(word_buffer_bm3(config_get_buffer(c)));} -int bm3Y(config *c) {return word_get_Y(word_buffer_bm3(config_get_buffer(c)));} -int bm3Z(config *c) {return word_get_Z(word_buffer_bm3(config_get_buffer(c)));} +int b0f(void *c) {return word_get_form(word_buffer_b0(config_get_buffer((config *) c)));} +int b0l(void *c) {return word_get_lemma(word_buffer_b0(config_get_buffer((config *) c)));} +int b0c(void *c) {return word_get_cpos(word_buffer_b0(config_get_buffer((config *) c)));} +int b0p(void *c) {return word_get_pos(word_buffer_b0(config_get_buffer((config *) c)));} +int b0m(void *c) {return word_get_feats(word_buffer_b0(config_get_buffer((config *) c)));} +int b0s(void *c) {return word_get_stag(word_buffer_b0(config_get_buffer((config *) c)));} +int b0A(void *c) {return word_get_A(word_buffer_b0(config_get_buffer((config *) c)));} +int b0B(void *c) {return word_get_B(word_buffer_b0(config_get_buffer((config *) c)));} +int b0C(void *c) {return word_get_C(word_buffer_b0(config_get_buffer((config *) c)));} +int b0D(void *c) {return word_get_D(word_buffer_b0(config_get_buffer((config *) c)));} +int b0E(void *c) {return word_get_E(word_buffer_b0(config_get_buffer((config *) c)));} +int b0F(void *c) {return word_get_F(word_buffer_b0(config_get_buffer((config *) c)));} +int b0G(void *c) {return word_get_G(word_buffer_b0(config_get_buffer((config *) c)));} +int b0H(void *c) {return word_get_H(word_buffer_b0(config_get_buffer((config *) c)));} +int b0I(void *c) {return word_get_I(word_buffer_b0(config_get_buffer((config *) c)));} +int b0J(void *c) {return word_get_J(word_buffer_b0(config_get_buffer((config *) c)));} +int b0K(void *c) {return word_get_K(word_buffer_b0(config_get_buffer((config *) c)));} +int b0L(void *c) {return word_get_L(word_buffer_b0(config_get_buffer((config *) c)));} +int b0M(void *c) {return word_get_M(word_buffer_b0(config_get_buffer((config *) c)));} +int b0N(void *c) {return word_get_N(word_buffer_b0(config_get_buffer((config *) c)));} +int b0O(void *c) {return word_get_O(word_buffer_b0(config_get_buffer((config *) c)));} +int b0P(void *c) {return word_get_P(word_buffer_b0(config_get_buffer((config *) c)));} +int b0Q(void *c) {return word_get_Q(word_buffer_b0(config_get_buffer((config *) c)));} +int b0R(void *c) {return word_get_R(word_buffer_b0(config_get_buffer((config *) c)));} +int b0S(void *c) {return word_get_S(word_buffer_b0(config_get_buffer((config *) c)));} +int b0T(void *c) {return word_get_T(word_buffer_b0(config_get_buffer((config *) c)));} +int b0U(void *c) {return word_get_U(word_buffer_b0(config_get_buffer((config *) c)));} +int b0V(void *c) {return word_get_V(word_buffer_b0(config_get_buffer((config *) c)));} +int b0W(void *c) {return word_get_W(word_buffer_b0(config_get_buffer((config *) c)));} +int b0X(void *c) {return word_get_X(word_buffer_b0(config_get_buffer((config *) c)));} +int b0Y(void *c) {return word_get_Y(word_buffer_b0(config_get_buffer((config *) c)));} +int b0Z(void *c) {return word_get_Z(word_buffer_b0(config_get_buffer((config *) c)));} + +int b0U1(void *c) {return word_get_U1(word_buffer_b0(config_get_buffer((config *) c)));} +int b0sgn(void *c) {return word_get_signature(word_buffer_b0(config_get_buffer((config *) c)));} + +int b1f(void *c) {return word_get_form(word_buffer_b1(config_get_buffer((config *) c)));} +int b1l(void *c) {return word_get_lemma(word_buffer_b1(config_get_buffer((config *) c)));} +int b1c(void *c) {return word_get_cpos(word_buffer_b1(config_get_buffer((config *) c)));} +int b1p(void *c) {return word_get_pos(word_buffer_b1(config_get_buffer((config *) c)));} +int b1m(void *c) {return word_get_feats(word_buffer_b1(config_get_buffer((config *) c)));} +int b1s(void *c) {return word_get_stag(word_buffer_b1(config_get_buffer((config *) c)));} +int b1A(void *c) {return word_get_A(word_buffer_b1(config_get_buffer((config *) c)));} +int b1B(void *c) {return word_get_B(word_buffer_b1(config_get_buffer((config *) c)));} +int b1C(void *c) {return word_get_C(word_buffer_b1(config_get_buffer((config *) c)));} +int b1D(void *c) {return word_get_D(word_buffer_b1(config_get_buffer((config *) c)));} +int b1E(void *c) {return word_get_E(word_buffer_b1(config_get_buffer((config *) c)));} +int b1F(void *c) {return word_get_F(word_buffer_b1(config_get_buffer((config *) c)));} +int b1G(void *c) {return word_get_G(word_buffer_b1(config_get_buffer((config *) c)));} +int b1H(void *c) {return word_get_H(word_buffer_b1(config_get_buffer((config *) c)));} +int b1I(void *c) {return word_get_I(word_buffer_b1(config_get_buffer((config *) c)));} +int b1J(void *c) {return word_get_J(word_buffer_b1(config_get_buffer((config *) c)));} +int b1K(void *c) {return word_get_K(word_buffer_b1(config_get_buffer((config *) c)));} +int b1L(void *c) {return word_get_L(word_buffer_b1(config_get_buffer((config *) c)));} +int b1M(void *c) {return word_get_M(word_buffer_b1(config_get_buffer((config *) c)));} +int b1N(void *c) {return word_get_N(word_buffer_b1(config_get_buffer((config *) c)));} +int b1O(void *c) {return word_get_O(word_buffer_b1(config_get_buffer((config *) c)));} +int b1P(void *c) {return word_get_P(word_buffer_b1(config_get_buffer((config *) c)));} +int b1Q(void *c) {return word_get_Q(word_buffer_b1(config_get_buffer((config *) c)));} +int b1R(void *c) {return word_get_R(word_buffer_b1(config_get_buffer((config *) c)));} +int b1S(void *c) {return word_get_S(word_buffer_b1(config_get_buffer((config *) c)));} +int b1T(void *c) {return word_get_T(word_buffer_b1(config_get_buffer((config *) c)));} +int b1U(void *c) {return word_get_U(word_buffer_b1(config_get_buffer((config *) c)));} +int b1V(void *c) {return word_get_V(word_buffer_b1(config_get_buffer((config *) c)));} +int b1W(void *c) {return word_get_W(word_buffer_b1(config_get_buffer((config *) c)));} +int b1X(void *c) {return word_get_X(word_buffer_b1(config_get_buffer((config *) c)));} +int b1Y(void *c) {return word_get_Y(word_buffer_b1(config_get_buffer((config *) c)));} +int b1Z(void *c) {return word_get_Z(word_buffer_b1(config_get_buffer((config *) c)));} + +int b1U1(void *c) {return word_get_U1(word_buffer_b1(config_get_buffer((config *) c)));} +int b1sgn(void *c) {return word_get_signature(word_buffer_b1(config_get_buffer((config *) c)));} + +int b2f(void *c) {return word_get_form(word_buffer_b2(config_get_buffer((config *) c)));} +int b2l(void *c) {return word_get_lemma(word_buffer_b2(config_get_buffer((config *) c)));} +int b2c(void *c) {return word_get_cpos(word_buffer_b2(config_get_buffer((config *) c)));} +int b2p(void *c) {return word_get_pos(word_buffer_b2(config_get_buffer((config *) c)));} +int b2m(void *c) {return word_get_feats(word_buffer_b2(config_get_buffer((config *) c)));} +int b2s(void *c) {return word_get_stag(word_buffer_b2(config_get_buffer((config *) c)));} +int b2A(void *c) {return word_get_A(word_buffer_b2(config_get_buffer((config *) c)));} +int b2B(void *c) {return word_get_B(word_buffer_b2(config_get_buffer((config *) c)));} +int b2C(void *c) {return word_get_C(word_buffer_b2(config_get_buffer((config *) c)));} +int b2D(void *c) {return word_get_D(word_buffer_b2(config_get_buffer((config *) c)));} +int b2E(void *c) {return word_get_E(word_buffer_b2(config_get_buffer((config *) c)));} +int b2F(void *c) {return word_get_F(word_buffer_b2(config_get_buffer((config *) c)));} +int b2G(void *c) {return word_get_G(word_buffer_b2(config_get_buffer((config *) c)));} +int b2H(void *c) {return word_get_H(word_buffer_b2(config_get_buffer((config *) c)));} +int b2I(void *c) {return word_get_I(word_buffer_b2(config_get_buffer((config *) c)));} +int b2J(void *c) {return word_get_J(word_buffer_b2(config_get_buffer((config *) c)));} +int b2K(void *c) {return word_get_K(word_buffer_b2(config_get_buffer((config *) c)));} +int b2L(void *c) {return word_get_L(word_buffer_b2(config_get_buffer((config *) c)));} +int b2M(void *c) {return word_get_M(word_buffer_b2(config_get_buffer((config *) c)));} +int b2N(void *c) {return word_get_N(word_buffer_b2(config_get_buffer((config *) c)));} +int b2O(void *c) {return word_get_O(word_buffer_b2(config_get_buffer((config *) c)));} +int b2P(void *c) {return word_get_P(word_buffer_b2(config_get_buffer((config *) c)));} +int b2Q(void *c) {return word_get_Q(word_buffer_b2(config_get_buffer((config *) c)));} +int b2R(void *c) {return word_get_R(word_buffer_b2(config_get_buffer((config *) c)));} +int b2S(void *c) {return word_get_S(word_buffer_b2(config_get_buffer((config *) c)));} +int b2T(void *c) {return word_get_T(word_buffer_b2(config_get_buffer((config *) c)));} +int b2U(void *c) {return word_get_U(word_buffer_b2(config_get_buffer((config *) c)));} +int b2V(void *c) {return word_get_V(word_buffer_b2(config_get_buffer((config *) c)));} +int b2W(void *c) {return word_get_W(word_buffer_b2(config_get_buffer((config *) c)));} +int b2X(void *c) {return word_get_X(word_buffer_b2(config_get_buffer((config *) c)));} +int b2Y(void *c) {return word_get_Y(word_buffer_b2(config_get_buffer((config *) c)));} +int b2Z(void *c) {return word_get_Z(word_buffer_b2(config_get_buffer((config *) c)));} + +int b2U1(void *c) {return word_get_U1(word_buffer_b2(config_get_buffer((config *) c)));} +int b2sgn(void *c) {return word_get_signature(word_buffer_b2(config_get_buffer((config *) c)));} + + + +int b3f(void *c) {return word_get_form(word_buffer_b3(config_get_buffer((config *) c)));} +int b3l(void *c) {return word_get_lemma(word_buffer_b3(config_get_buffer((config *) c)));} +int b3c(void *c) {return word_get_cpos(word_buffer_b3(config_get_buffer((config *) c)));} +int b3p(void *c) {return word_get_pos(word_buffer_b3(config_get_buffer((config *) c)));} +int b3m(void *c) {return word_get_feats(word_buffer_b3(config_get_buffer((config *) c)));} +int b3s(void *c) {return word_get_stag(word_buffer_b3(config_get_buffer((config *) c)));} +int b3A(void *c) {return word_get_A(word_buffer_b3(config_get_buffer((config *) c)));} +int b3B(void *c) {return word_get_B(word_buffer_b3(config_get_buffer((config *) c)));} +int b3C(void *c) {return word_get_C(word_buffer_b3(config_get_buffer((config *) c)));} +int b3D(void *c) {return word_get_D(word_buffer_b3(config_get_buffer((config *) c)));} +int b3E(void *c) {return word_get_E(word_buffer_b3(config_get_buffer((config *) c)));} +int b3F(void *c) {return word_get_F(word_buffer_b3(config_get_buffer((config *) c)));} +int b3G(void *c) {return word_get_G(word_buffer_b3(config_get_buffer((config *) c)));} +int b3H(void *c) {return word_get_H(word_buffer_b3(config_get_buffer((config *) c)));} +int b3I(void *c) {return word_get_I(word_buffer_b3(config_get_buffer((config *) c)));} +int b3J(void *c) {return word_get_J(word_buffer_b3(config_get_buffer((config *) c)));} +int b3K(void *c) {return word_get_K(word_buffer_b3(config_get_buffer((config *) c)));} +int b3L(void *c) {return word_get_L(word_buffer_b3(config_get_buffer((config *) c)));} +int b3M(void *c) {return word_get_M(word_buffer_b3(config_get_buffer((config *) c)));} +int b3N(void *c) {return word_get_N(word_buffer_b3(config_get_buffer((config *) c)));} +int b3O(void *c) {return word_get_O(word_buffer_b3(config_get_buffer((config *) c)));} +int b3P(void *c) {return word_get_P(word_buffer_b3(config_get_buffer((config *) c)));} +int b3Q(void *c) {return word_get_Q(word_buffer_b3(config_get_buffer((config *) c)));} +int b3R(void *c) {return word_get_R(word_buffer_b3(config_get_buffer((config *) c)));} +int b3S(void *c) {return word_get_S(word_buffer_b3(config_get_buffer((config *) c)));} +int b3T(void *c) {return word_get_T(word_buffer_b3(config_get_buffer((config *) c)));} +int b3U(void *c) {return word_get_U(word_buffer_b3(config_get_buffer((config *) c)));} +int b3V(void *c) {return word_get_V(word_buffer_b3(config_get_buffer((config *) c)));} +int b3W(void *c) {return word_get_W(word_buffer_b3(config_get_buffer((config *) c)));} +int b3X(void *c) {return word_get_X(word_buffer_b3(config_get_buffer((config *) c)));} +int b3Y(void *c) {return word_get_Y(word_buffer_b3(config_get_buffer((config *) c)));} +int b3Z(void *c) {return word_get_Z(word_buffer_b3(config_get_buffer((config *) c)));} + +int bm1f(void *c) {return word_get_form(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1l(void *c) {return word_get_lemma(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1c(void *c) {return word_get_cpos(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1p(void *c) {return word_get_pos(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1m(void *c) {return word_get_feats(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1s(void *c) {return word_get_stag(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1A(void *c) {return word_get_A(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1B(void *c) {return word_get_B(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1C(void *c) {return word_get_C(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1D(void *c) {return word_get_D(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1E(void *c) {return word_get_E(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1F(void *c) {return word_get_F(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1G(void *c) {return word_get_G(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1H(void *c) {return word_get_H(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1I(void *c) {return word_get_I(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1J(void *c) {return word_get_J(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1K(void *c) {return word_get_K(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1L(void *c) {return word_get_L(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1M(void *c) {return word_get_M(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1N(void *c) {return word_get_N(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1O(void *c) {return word_get_O(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1P(void *c) {return word_get_P(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1Q(void *c) {return word_get_Q(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1R(void *c) {return word_get_R(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1S(void *c) {return word_get_S(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1T(void *c) {return word_get_T(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1U(void *c) {return word_get_U(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1V(void *c) {return word_get_V(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1W(void *c) {return word_get_W(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1X(void *c) {return word_get_X(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1Y(void *c) {return word_get_Y(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1Z(void *c) {return word_get_Z(word_buffer_bm1(config_get_buffer((config *) c)));} + +int bm1U1(void *c) {return word_get_U1(word_buffer_bm1(config_get_buffer((config *) c)));} +int bm1sgn(void *c) {return word_get_signature(word_buffer_bm1(config_get_buffer((config *) c)));} + +int bm2f(void *c) {return word_get_form(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2l(void *c) {return word_get_lemma(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2c(void *c) {return word_get_cpos(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2p(void *c) {return word_get_pos(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2m(void *c) {return word_get_feats(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2s(void *c) {return word_get_stag(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2A(void *c) {return word_get_A(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2B(void *c) {return word_get_B(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2C(void *c) {return word_get_C(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2D(void *c) {return word_get_D(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2E(void *c) {return word_get_E(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2F(void *c) {return word_get_F(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2G(void *c) {return word_get_G(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2H(void *c) {return word_get_H(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2I(void *c) {return word_get_I(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2J(void *c) {return word_get_J(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2K(void *c) {return word_get_K(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2L(void *c) {return word_get_L(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2M(void *c) {return word_get_M(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2N(void *c) {return word_get_N(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2O(void *c) {return word_get_O(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2P(void *c) {return word_get_P(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2Q(void *c) {return word_get_Q(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2R(void *c) {return word_get_R(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2S(void *c) {return word_get_S(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2T(void *c) {return word_get_T(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2U(void *c) {return word_get_U(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2V(void *c) {return word_get_V(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2W(void *c) {return word_get_W(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2X(void *c) {return word_get_X(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2Y(void *c) {return word_get_Y(word_buffer_bm2(config_get_buffer((config *) c)));} +int bm2Z(void *c) {return word_get_Z(word_buffer_bm2(config_get_buffer((config *) c)));} + +int bm3f(void *c) {return word_get_form(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3l(void *c) {return word_get_lemma(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3c(void *c) {return word_get_cpos(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3p(void *c) {return word_get_pos(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3m(void *c) {return word_get_feats(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3s(void *c) {return word_get_stag(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3A(void *c) {return word_get_A(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3B(void *c) {return word_get_B(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3C(void *c) {return word_get_C(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3D(void *c) {return word_get_D(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3E(void *c) {return word_get_E(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3F(void *c) {return word_get_F(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3G(void *c) {return word_get_G(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3H(void *c) {return word_get_H(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3I(void *c) {return word_get_I(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3J(void *c) {return word_get_J(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3K(void *c) {return word_get_K(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3L(void *c) {return word_get_L(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3M(void *c) {return word_get_M(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3N(void *c) {return word_get_N(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3O(void *c) {return word_get_O(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3P(void *c) {return word_get_P(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3Q(void *c) {return word_get_Q(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3R(void *c) {return word_get_R(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3S(void *c) {return word_get_S(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3T(void *c) {return word_get_T(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3U(void *c) {return word_get_U(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3V(void *c) {return word_get_V(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3W(void *c) {return word_get_W(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3X(void *c) {return word_get_X(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3Y(void *c) {return word_get_Y(word_buffer_bm3(config_get_buffer((config *) c)));} +int bm3Z(void *c) {return word_get_Z(word_buffer_bm3(config_get_buffer((config *) c)));} /* structural features */ -int ldep_s0r(config *c){ - word *gov = stack_s0(config_get_stack(c)); +int ldep_s0r(void *input){ + config *c = input; + word *gov = stack_s0(config_get_stack((config *) c)); int i; word *dep; int dist; if(gov){ for(i=word_get_index(gov) - 1; i > 0 ; i--){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); if(word_get_sent_seg(dep) == 1) return -1; dist = word_get_index(gov) - i; if(word_get_gov(dep) == dist){ @@ -432,15 +435,16 @@ int ldep_s0r(config *c){ return -1; } -int ldep_s1r(config *c){ - word *gov = stack_s1(config_get_stack(c)); +int ldep_s1r(void *input){ + config *c = input; + word *gov = stack_s1(config_get_stack((config *) c)); int i; word *dep; int dist; if(gov){ for(i=word_get_index(gov) - 1; i > 0 ; i--){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); if(word_get_sent_seg(dep) == 1) return -1; dist = word_get_index(gov) - i; if(word_get_gov(dep) == dist){ @@ -451,15 +455,16 @@ int ldep_s1r(config *c){ return -1; } -int ldep_b0r(config *c){ - word *gov = word_buffer_b0(config_get_buffer(c)); +int ldep_b0r(void *input){ + config *c = input; + word *gov = word_buffer_b0(config_get_buffer((config *) c)); int i; word *dep; int dist; if(gov){ for(i=word_get_index(gov) - 1; i > 0 ; i--){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); if(word_get_sent_seg(dep) == 1) return -1; dist = word_get_index(gov) - i; if(word_get_gov(dep) == dist){ @@ -470,16 +475,17 @@ int ldep_b0r(config *c){ return -1; } -int rdep_s0r(config *c){ - word *gov = stack_s0(config_get_stack(c)); +int rdep_s0r(void *input){ + config *c = input; + word *gov = stack_s0(config_get_stack((config *) c)); int i; word *dep; int dist; if(gov){ - for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer(c)) ; i++){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); - if(i >= word_get_index(word_buffer_b0(config_get_buffer(c)))) return -1; + for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer((config *) c)) ; i++){ + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); + if(i >= word_get_index(word_buffer_b0(config_get_buffer((config *) c)))) return -1; dist = i - word_get_index(gov); if(word_get_gov(dep) == - dist){ return word_get_label(dep); @@ -489,16 +495,17 @@ int rdep_s0r(config *c){ return -1; } -int rdep_s1r(config *c){ - word *gov = stack_s1(config_get_stack(c)); +int rdep_s1r(void *input){ + config *c = input; + word *gov = stack_s1(config_get_stack((config *) c)); int i; word *dep; int dist; if(gov){ - for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer(c)) ; i++){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); - if(i >= word_get_index(word_buffer_b0(config_get_buffer(c)))) return -1; + for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer((config *) c)) ; i++){ + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); + if(i >= word_get_index(word_buffer_b0(config_get_buffer((config *) c)))) return -1; dist = i - word_get_index(gov); if(word_get_gov(dep) == - dist){ return word_get_label(dep); @@ -508,16 +515,17 @@ int rdep_s1r(config *c){ return -1; } -int rdep_b0r(config *c){ - word *gov = word_buffer_b0(config_get_buffer(c)); +int rdep_b0r(void *input){ + config *c = input; + word *gov = word_buffer_b0(config_get_buffer((config *) c)); int i; word *dep; int dist; if(gov){ - for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer(c)) ; i++){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); - if(i >= word_get_index(word_buffer_b0(config_get_buffer(c)))) return -1; + for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer((config *) c)) ; i++){ + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); + if(i >= word_get_index(word_buffer_b0(config_get_buffer((config *) c)))) return -1; dist = i - word_get_index(gov); if(word_get_gov(dep) == - dist){ return word_get_label(dep); @@ -528,8 +536,9 @@ int rdep_b0r(config *c){ } -int ndep_b0(config *c){ - word *gov = word_buffer_b0(config_get_buffer(c)); +int ndep_b0(void *input){ + config *c = input; + word *gov = word_buffer_b0(config_get_buffer((config *) c)); int i; int n = 0; word *dep; @@ -537,15 +546,15 @@ int ndep_b0(config *c){ if(gov){ for(i=word_get_index(gov) - 1; i > 0 ; i--){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); if(word_get_sent_seg(dep) == 1) break; dist = word_get_index(gov) - i; if(word_get_gov(dep) == dist) n++; } - for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer(c)) ; i++){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); - if(i >= word_get_index(word_buffer_b0(config_get_buffer(c)))) break; + for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer((config *) c)) ; i++){ + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); + if(i >= word_get_index(word_buffer_b0(config_get_buffer((config *) c)))) break; dist = i - word_get_index(gov); if(word_get_gov(dep) == - dist) n++; @@ -554,8 +563,9 @@ int ndep_b0(config *c){ return (n > 6)? 6 : n; } -int ndep_s0(config *c){ - word *gov = stack_s0(config_get_stack(c)); +int ndep_s0(void *input){ + config *c = input; + word *gov = stack_s0(config_get_stack((config *) c)); int i; int n = 0; word *dep; @@ -563,15 +573,15 @@ int ndep_s0(config *c){ if(gov){ for(i=word_get_index(gov) - 1; i > 0 ; i--){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); if(word_get_sent_seg(dep) == 1) break; dist = word_get_index(gov) - i; if(word_get_gov(dep) == dist) n++; } - for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer(c)) ; i++){ - dep = word_buffer_get_word_n(config_get_buffer(c), i); - if(i >= word_get_index(word_buffer_b0(config_get_buffer(c)))) break; + for(i=word_get_index(gov) + 1; i < word_buffer_get_nbelem(config_get_buffer((config *) c)) ; i++){ + dep = word_buffer_get_word_n(config_get_buffer((config *) c), i); + if(i >= word_get_index(word_buffer_b0(config_get_buffer((config *) c)))) break; dist = i - word_get_index(gov); if(word_get_gov(dep) == - dist) n++; @@ -583,105 +593,564 @@ int ndep_s0(config *c){ /* distance features */ -int dist_s0_b0(config *c){ +int dist_s0_b0(void *input){ + config *c = input; int dist; - if(stack_is_empty(config_get_stack(c)) || word_buffer_is_empty(config_get_buffer(c))) + if(stack_is_empty(config_get_stack((config *) c)) || word_buffer_is_empty(config_get_buffer((config *) c))) return 0; - dist = word_get_index(word_buffer_b0(config_get_buffer(c))) - word_get_index(stack_top(config_get_stack(c))); + dist = word_get_index(word_buffer_b0(config_get_buffer((config *) c))) - word_get_index(stack_top(config_get_stack((config *) c))); return (abs(dist) > 6)? 6 : dist; } /* configurational features */ - -int sh(config *c) /* stack height */ + /* stack height */ +int sh(void *input) { - return (config_get_stack(c)->top > 7)? 7 : config_get_stack(c)->top; - /* return (stack_nbelem(config_get_stack(c)) > 0)? 1 : 0; */ -} +config *c = input; -int bh(config *c) /* buffer size */ + return (config_get_stack((config *) c)->top > 7)? 7 : config_get_stack((config *) c)->top; + /* return (stack_nbelem(config_get_stack((config *) c)) > 0)? 1 : 0; */ +} + /* buffer size */ +int bh(void *input) { - return (config_get_buffer(c)->size > 7)? 7 : config_get_buffer(c)->size; +config *c = input; + + return (config_get_buffer((config *) c)->size > 7)? 7 : config_get_buffer((config *) c)->size; } #if 0 -int dh(config *c) /* depset size */ +/* depset size */ +int dh(void *c) { return (c->ds->length > 7)? 7 : c->ds->length; /* return c->ds->length; */ } #endif - -int t1(config *c) /* previous transition */ +/* previous transition */ +int t1(void *c) { - mvt *m = mvt_stack_0(config_get_history(c)); + mvt *m = mvt_stack_0(config_get_history((config *) c)); return (m == NULL)? -1 : mvt_get_type(m); } - -int t2(config *c) /* previous transition */ +/* previous transition */ +int t2(void *c) { - mvt *m = mvt_stack_1(config_get_history(c)); + mvt *m = mvt_stack_1(config_get_history((config *) c)); return (m == NULL)? -1 : mvt_get_type(m); } - -int t3(config *c) /* previous transition */ +/* previous transition */ +int t3(void *c) { - mvt *m = mvt_stack_2(config_get_history(c)); + mvt *m = mvt_stack_2(config_get_history((config *) c)); return (m == NULL)? -1 : mvt_get_type(m); } - -int t4(config *c) /* previous transition */ +/* previous transition */ +int t4(void *c) { - mvt *m = mvt_stack_3(config_get_history(c)); + mvt *m = mvt_stack_3(config_get_history((config *) c)); return (m == NULL)? -1 : mvt_get_type(m); } -int mvt0(config *c) +int mvt0(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; return c->vcode_array[0].class_code; } -int mvt1(config *c) +int mvt1(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; return c->vcode_array[1].class_code; } -int delta1(config *c) +int delta1(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; int delta = (int) (c->vcode_array[0].score - c->vcode_array[1].score); return (delta >= 10)? 10: delta; } -int mvt2(config *c) +int mvt2(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; return c->vcode_array[2].class_code; } -int delta2(config *c) +int delta2(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; int delta = (int) (c->vcode_array[0].score - c->vcode_array[2].score); return (delta >= 10)? 10: delta; } -int mvt3(config *c) +int mvt3(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; return c->vcode_array[3].class_code; } -int delta3(config *c) +int delta3(void *input) { + config *c = input; if(c->vcode_array == NULL) return -1; int delta = (int) (c->vcode_array[0].score - c->vcode_array[3].score); return (delta >= 10)? 10: delta; } + +feat_lib *feat_lib_build(void) +{ + feat_lib *fl = feat_lib_new(); + + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s0sf", s0sf); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0g", s0g); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s0f", s0f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s0l", s0l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s0c", s0c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s0p", s0p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s0m", s0m); + feat_lib_add(fl, FEAT_TYPE_STAG , (char *)"s0s", s0s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s0r", s0r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"s0A", s0A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"s0B", s0B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"s0C", s0C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"s0D", s0D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"s0E", s0E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"s0F", s0F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"s0G", s0G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"s0H", s0H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"s0I", s0I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"s0J", s0J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"s0K", s0K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"s0L", s0L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"s0M", s0M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"s0N", s0N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"s0O", s0O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"s0P", s0P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s0Q", s0Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"s0R", s0R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"s0S", s0S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"s0T", s0T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"s0U", s0U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"s0V", s0V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"s0W", s0W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"s0X", s0X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s0Y", s0Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s0Z", s0Z); + feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"s0U1", s0U1); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0sgn", s0sgn); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1g", s1g); + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1sf", s1sf); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1f", s1f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s1l", s1l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s1c", s1c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s1p", s1p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s1m", s1m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s1s", s1s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s1r", s1r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"s1A", s1A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"s1B", s1B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"s1C", s1C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"s1D", s1D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"s1E", s1E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"s1F", s1F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"s1G", s1G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"s1H", s1H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"s1I", s1I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"s1J", s1J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"s1K", s1K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"s1L", s1L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"s1M", s1M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"s1N", s1N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"s1O", s1O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"s1P", s1P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s1Q", s1Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"s1R", s1R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"s1S", s1S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"s1T", s1T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"s1U", s1U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"s1V", s1V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"s1W", s1W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"s1X", s1X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s1Y", s1Y); + feat_lib_add(fl, FEAT_TYPE_Z, (char *)"s1Z", s1Z); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s2f", s2f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s2l", s2l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s2c", s2c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s2p", s2p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s2m", s2m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s2s", s2s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s2r", s2r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"s2A", s2A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"s2B", s2B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"s2C", s2C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"s2D", s2D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"s2E", s2E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"s2F", s2F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"s2G", s2G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"s2H", s2H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"s2I", s2I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"s2J", s2J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"s2K", s2K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"s2L", s2L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"s2M", s2M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"s2N", s2N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"s2O", s2O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"s2P", s2P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s2Q", s2Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"s2R", s2R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"s2S", s2S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"s2T", s2T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"s2U", s2U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"s2V", s2V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"s2W", s2W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"s2X", s2X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s2Y", s2Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s2Z", s2Z); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s3f", s3f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s3l", s3l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s3c", s3c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s3p", s3p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s3m", s3m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s3s", s3s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s3r", s3r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"s3A", s3A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"s3B", s3B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"s3C", s3C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"s3D", s3D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"s3E", s3E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"s3F", s3F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"s3G", s3G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"s3H", s3H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"s3I", s3I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"s3J", s3J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"s3K", s3K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"s3L", s3L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"s3M", s3M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"s3N", s3N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"s3O", s3O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"s3P", s3P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s3Q", s3Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"s3R", s3R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"s3S", s3S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"s3T", s3T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"s3U", s3U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"s3V", s3V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"s3W", s3W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"s3X", s3X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s3Y", s3Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s3Z", s3Z); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0g", b0g); + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0sf", b0sf); + + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b0len", b0len); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0f", b0f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b0l", b0l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b0c", b0c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b0p", b0p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b0m", b0m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b0s", b0s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b0r", b0r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"b0A", b0A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"b0B", b0B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"b0C", b0C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"b0D", b0D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"b0E", b0E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"b0F", b0F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"b0G", b0G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"b0H", b0H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"b0I", b0I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"b0J", b0J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"b0K", b0K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"b0L", b0L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"b0M", b0M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"b0N", b0N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"b0O", b0O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"b0P", b0P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b0Q", b0Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"b0R", b0R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"b0S", b0S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"b0T", b0T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"b0U", b0U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"b0V", b0V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"b0W", b0W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"b0X", b0X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b0Y", b0Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b0Z", b0Z); + feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"b0U1", b0U1); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b0sgn", b0sgn); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm1f", bm1f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm1l", bm1l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm1c", bm1c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm1p", bm1p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm1m", bm1m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm1s", bm1s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm1r", bm1r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm1A", bm1A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm1B", bm1B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm1C", bm1C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm1D", bm1D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm1E", bm1E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm1F", bm1F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm1G", bm1G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm1H", bm1H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm1I", bm1I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm1J", bm1J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm1K", bm1K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm1L", bm1L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm1M", bm1M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm1N", bm1N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm1O", bm1O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm1P", bm1P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm1Q", bm1Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm1R", bm1R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm1S", bm1S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm1T", bm1T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm1U", bm1U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm1V", bm1V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm1W", bm1W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm1X", bm1X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm1Y", bm1Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm1Z", bm1Z); + feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm1U1", bm1U1); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm1sgn", bm1sgn); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm2f", bm2f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm2l", bm2l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm2c", bm2c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm2p", bm2p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm2m", bm2m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm2s", bm2s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm2r", bm2r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm2A", bm2A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm2B", bm2B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm2C", bm2C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm2D", bm2D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm2E", bm2E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm2F", bm2F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm2G", bm2G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm2H", bm2H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm2I", bm2I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm2J", bm2J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm2K", bm2K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm2L", bm2L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm2M", bm2M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm2N", bm2N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm2O", bm2O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm2P", bm2P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm2Q", bm2Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm2R", bm2R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm2S", bm2S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm2T", bm2T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm2U", bm2U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm2V", bm2V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm2W", bm2W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm2X", bm2X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm2Y", bm2Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm2Z", bm2Z); + /* feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm2U1", bm2U1); */ + /* feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm2sgn", bm2sgn); */ + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm3f", bm3f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm3l", bm3l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm3c", bm3c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm3p", bm3p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm3m", bm3m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm3s", bm3s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm3r", bm3r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm3A", bm3A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm3B", bm3B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm3C", bm3C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm3D", bm3D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm3E", bm3E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm3F", bm3F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm3G", bm3G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm3H", bm3H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm3I", bm3I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm3J", bm3J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm3K", bm3K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm3L", bm3L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm3M", bm3M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm3N", bm3N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm3O", bm3O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm3P", bm3P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm3Q", bm3Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm3R", bm3R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm3S", bm3S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm3T", bm3T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm3U", bm3U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm3V", bm3V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm3W", bm3W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm3X", bm3X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm3Y", bm3Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm3Z", bm3Z); + /* feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm3U1", bm3U1); */ + /* feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm3sgn", bm3sgn); */ + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b1f", b1f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b1l", b1l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b1c", b1c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b1p", b1p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b1m", b1m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b1s", b1s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b1r", b1r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"b1A", b1A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"b1B", b1B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"b1C", b1C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"b1D", b1D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"b1E", b1E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"b1F", b1F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"b1G", b1G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"b1H", b1H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"b1I", b1I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"b1J", b1J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"b1K", b1K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"b1L", b1L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"b1M", b1M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"b1N", b1N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"b1O", b1O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"b1P", b1P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b1Q", b1Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"b1R", b1R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"b1S", b1S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"b1T", b1T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"b1U", b1U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"b1V", b1V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"b1W", b1W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"b1X", b1X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b1Y", b1Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b1Z", b1Z); + feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"b1U1", b1U1); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b1sgn", b1sgn); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b2f", b2f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b2l", b2l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b2c", b2c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b2p", b2p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b2m", b2m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b2s", b2s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b2r", b2r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"b2A", b2A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"b2B", b2B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"b2C", b2C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"b2D", b2D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"b2E", b2E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"b2F", b2F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"b2G", b2G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"b2H", b2H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"b2I", b2I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"b2J", b2J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"b2K", b2K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"b2L", b2L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"b2M", b2M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"b2N", b2N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"b2O", b2O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"b2P", b2P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b2Q", b2Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"b2R", b2R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"b2S", b2S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"b2T", b2T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"b2U", b2U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"b2V", b2V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"b2W", b2W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"b2X", b2X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2Y", b2Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2Z", b2Z); + + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2U1", b2U1); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2sgn", b2sgn); + + feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b3f", b3f); + feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b3l", b3l); + feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b3c", b3c); + feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b3p", b3p); + feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b3m", b3m); + feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b3s", b3s); + /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b3r", b3r); */ + feat_lib_add(fl, FEAT_TYPE_A, (char *)"b3A", b3A); + feat_lib_add(fl, FEAT_TYPE_B, (char *)"b3B", b3B); + feat_lib_add(fl, FEAT_TYPE_C, (char *)"b3C", b3C); + feat_lib_add(fl, FEAT_TYPE_D, (char *)"b3D", b3D); + feat_lib_add(fl, FEAT_TYPE_E, (char *)"b3E", b3E); + feat_lib_add(fl, FEAT_TYPE_F, (char *)"b3F", b3F); + feat_lib_add(fl, FEAT_TYPE_G, (char *)"b3G", b3G); + feat_lib_add(fl, FEAT_TYPE_H, (char *)"b3H", b3H); + feat_lib_add(fl, FEAT_TYPE_I, (char *)"b3I", b3I); + feat_lib_add(fl, FEAT_TYPE_J, (char *)"b3J", b3J); + feat_lib_add(fl, FEAT_TYPE_K, (char *)"b3K", b3K); + feat_lib_add(fl, FEAT_TYPE_L, (char *)"b3L", b3L); + feat_lib_add(fl, FEAT_TYPE_M, (char *)"b3M", b3M); + feat_lib_add(fl, FEAT_TYPE_N, (char *)"b3N", b3N); + feat_lib_add(fl, FEAT_TYPE_O, (char *)"b3O", b3O); + feat_lib_add(fl, FEAT_TYPE_P, (char *)"b3P", b3P); + feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b3Q", b3Q); + feat_lib_add(fl, FEAT_TYPE_R, (char *)"b3R", b3R); + feat_lib_add(fl, FEAT_TYPE_S, (char *)"b3S", b3S); + feat_lib_add(fl, FEAT_TYPE_T, (char *)"b3T", b3T); + feat_lib_add(fl, FEAT_TYPE_U, (char *)"b3U", b3U); + feat_lib_add(fl, FEAT_TYPE_V, (char *)"b3V", b3V); + feat_lib_add(fl, FEAT_TYPE_W, (char *)"b3W", b3W); + feat_lib_add(fl, FEAT_TYPE_X, (char *)"b3X", b3X); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b3Y", b3Y); + feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b3Z", b3Z); + + /* feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"gs0l", gs0l); */ + /* feat_lib_add(fl, FEAT_TYPE_POS, (char *)"gs0p", gs0p); */ + + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_s0r", ldep_s0r); + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_s0r", rdep_s0r); + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_s1r", ldep_s1r); + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_s1r", rdep_s1r); + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_b0r", ldep_b0r); + feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_b0r", rdep_b0r); + + feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"ndep_b0", ndep_b0); + feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"ndep_s0", ndep_s0); + + /* distance features */ + feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"dist_s0_b0", dist_s0_b0); + +/* configurational features */ + + feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"sh", sh); + feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"bh", bh); + /* feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"dh", dh); */ + + feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t1", t1); + feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t2", t2); + feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t3", t3); + feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t4", t4); + + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt0", mvt0); + + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt1", mvt1); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta1", delta1); + + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt2", mvt2); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta2", delta2); + + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt3", mvt3); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta3", delta3); + + return fl; +} + diff --git a/maca_trans_parser/src/feat_fct.h b/maca_trans_parser/src/feat_fct.h index 6d8cca86fbe9df9d6fe7e1e55ec214c1758f5c60..8650e6bf303f20529c7ebd0efb1d91720dc3cdea 100644 --- a/maca_trans_parser/src/feat_fct.h +++ b/maca_trans_parser/src/feat_fct.h @@ -1,457 +1,456 @@ #ifndef __FEATURES__ #define __FEATURES__ -#include"config.h" +#include "feat_lib.h" +/* typedef int (*feat_fct) (config *c); */ +/* typedef int (*feat_fct) (void *c); */ -typedef int (*feat_fct) (config *c); +feat_lib *feat_lib_build(void); /* word features */ -int s0g(config *c); -int s0sf(config *c); - -int s0f(config *c); -int s0l(config *c); -int s0c(config *c); -int s0p(config *c); -int s0m(config *c); -int s0s(config *c); -int s0A(config *c); -int s0B(config *c); -int s0C(config *c); -int s0D(config *c); -int s0E(config *c); -int s0F(config *c); -int s0G(config *c); -int s0H(config *c); -int s0I(config *c); -int s0J(config *c); -int s0K(config *c); -int s0L(config *c); -int s0M(config *c); -int s0N(config *c); -int s0O(config *c); -int s0P(config *c); -int s0Q(config *c); -int s0R(config *c); -int s0S(config *c); -int s0T(config *c); -int s0U(config *c); -int s0V(config *c); -int s0W(config *c); -int s0X(config *c); -int s0Y(config *c); -int s0Z(config *c); - -int s0U1(config *c); -int s0sgn(config *c); - -int s0r(config *c); - -int s1g(config *c); -int s1sf(config *c); - - -int s1f(config *c); -int s1l(config *c); -int s1c(config *c); -int s1p(config *c); -int s1m(config *c); -int s1s(config *c); -int s1A(config *c); -int s1B(config *c); -int s1C(config *c); -int s1D(config *c); -int s1E(config *c); -int s1F(config *c); -int s1G(config *c); -int s1H(config *c); -int s1I(config *c); -int s1J(config *c); -int s1K(config *c); -int s1L(config *c); -int s1M(config *c); -int s1N(config *c); -int s1O(config *c); -int s1P(config *c); -int s1Q(config *c); -int s1R(config *c); -int s1S(config *c); -int s1T(config *c); -int s1U(config *c); -int s1V(config *c); -int s1W(config *c); -int s1X(config *c); -int s1Y(config *c); -int s1Z(config *c); - -int s1r(config *c); - -int s2f(config *c); -int s2l(config *c); -int s2c(config *c); -int s2p(config *c); -int s2m(config *c); -int s2s(config *c); -int s2A(config *c); -int s2B(config *c); -int s2C(config *c); -int s2D(config *c); -int s2E(config *c); -int s2F(config *c); -int s2G(config *c); -int s2H(config *c); -int s2I(config *c); -int s2J(config *c); -int s2K(config *c); -int s2L(config *c); -int s2M(config *c); -int s2N(config *c); -int s2O(config *c); -int s2P(config *c); -int s2Q(config *c); -int s2R(config *c); -int s2S(config *c); -int s2T(config *c); -int s2U(config *c); -int s2V(config *c); -int s2W(config *c); -int s2X(config *c); -int s2Y(config *c); -int s2Z(config *c); - -int s2r(config *c); - -int s3f(config *c); -int s3l(config *c); -int s3c(config *c); -int s3p(config *c); -int s3m(config *c); -int s3s(config *c); -int s3A(config *c); -int s3B(config *c); -int s3C(config *c); -int s3D(config *c); -int s3E(config *c); -int s3F(config *c); -int s3G(config *c); -int s3H(config *c); -int s3I(config *c); -int s3J(config *c); -int s3K(config *c); -int s3L(config *c); -int s3M(config *c); -int s3N(config *c); -int s3O(config *c); -int s3P(config *c); -int s3Q(config *c); -int s3R(config *c); -int s3S(config *c); -int s3T(config *c); -int s3U(config *c); -int s3V(config *c); -int s3W(config *c); -int s3X(config *c); -int s3Y(config *c); -int s3Z(config *c); -int s3r(config *c); - -int b0g(config *c); -int b0sf(config *c); -int b0len(config *c); - - -int b0f(config *c); -int b0l(config *c); -int b0c(config *c); -int b0p(config *c); -int b0m(config *c); -int b0s(config *c); -int b0A(config *c); -int b0B(config *c); -int b0C(config *c); -int b0D(config *c); -int b0E(config *c); -int b0F(config *c); -int b0G(config *c); -int b0H(config *c); -int b0I(config *c); -int b0J(config *c); -int b0K(config *c); -int b0L(config *c); -int b0M(config *c); -int b0N(config *c); -int b0O(config *c); -int b0P(config *c); -int b0Q(config *c); -int b0R(config *c); -int b0S(config *c); -int b0T(config *c); -int b0U(config *c); -int b0V(config *c); -int b0W(config *c); -int b0X(config *c); -int b0Y(config *c); -int b0Z(config *c); -int b0r(config *c); - -int b0U1(config *c); -int b0sgn(config *c); - -int b1f(config *c); -int b1l(config *c); -int b1c(config *c); -int b1p(config *c); -int b1m(config *c); -int b1s(config *c); -int b1A(config *c); -int b1B(config *c); -int b1C(config *c); -int b1D(config *c); -int b1E(config *c); -int b1F(config *c); -int b1G(config *c); -int b1H(config *c); -int b1I(config *c); -int b1J(config *c); -int b1K(config *c); -int b1L(config *c); -int b1M(config *c); -int b1N(config *c); -int b1O(config *c); -int b1P(config *c); -int b1Q(config *c); -int b1R(config *c); -int b1S(config *c); -int b1T(config *c); -int b1U(config *c); -int b1V(config *c); -int b1W(config *c); -int b1X(config *c); -int b1Y(config *c); -int b1Z(config *c); - -int b1U1(config *c); -int b1sgn(config *c); - -int b1r(config *c); - - - -int b2f(config *c); -int b2l(config *c); -int b2c(config *c); -int b2p(config *c); -int b2m(config *c); -int b2s(config *c); -int b2A(config *c); -int b2B(config *c); -int b2C(config *c); -int b2D(config *c); -int b2E(config *c); -int b2F(config *c); -int b2G(config *c); -int b2H(config *c); -int b2I(config *c); -int b2J(config *c); -int b2K(config *c); -int b2L(config *c); -int b2M(config *c); -int b2N(config *c); -int b2O(config *c); -int b2P(config *c); -int b2Q(config *c); -int b2R(config *c); -int b2S(config *c); -int b2T(config *c); -int b2U(config *c); -int b2V(config *c); -int b2W(config *c); -int b2X(config *c); -int b2Y(config *c); -int b2Z(config *c); - -int b2r(config *c); - -int b2U1(config *c); -int b2sgn(config *c); - - -int b3f(config *c); -int b3l(config *c); -int b3c(config *c); -int b3p(config *c); -int b3m(config *c); -int b3s(config *c); -int b3A(config *c); -int b3B(config *c); -int b3C(config *c); -int b3D(config *c); -int b3E(config *c); -int b3F(config *c); -int b3G(config *c); -int b3H(config *c); -int b3I(config *c); -int b3J(config *c); -int b3K(config *c); -int b3L(config *c); -int b3M(config *c); -int b3N(config *c); -int b3O(config *c); -int b3P(config *c); -int b3Q(config *c); -int b3R(config *c); -int b3S(config *c); -int b3T(config *c); -int b3U(config *c); -int b3V(config *c); -int b3W(config *c); -int b3X(config *c); -int b3Y(config *c); -int b3Z(config *c); - -int b3r(config *c); - - -int bm1f(config *c); -int bm1l(config *c); -int bm1c(config *c); -int bm1p(config *c); -int bm1m(config *c); -int bm1s(config *c); -int bm1A(config *c); -int bm1B(config *c); -int bm1C(config *c); -int bm1D(config *c); -int bm1E(config *c); -int bm1F(config *c); -int bm1G(config *c); -int bm1H(config *c); -int bm1I(config *c); -int bm1J(config *c); -int bm1K(config *c); -int bm1L(config *c); -int bm1M(config *c); -int bm1N(config *c); -int bm1O(config *c); -int bm1P(config *c); -int bm1Q(config *c); -int bm1R(config *c); -int bm1S(config *c); -int bm1T(config *c); -int bm1U(config *c); -int bm1V(config *c); -int bm1W(config *c); -int bm1X(config *c); -int bm1Y(config *c); -int bm1Z(config *c); - -int bm1U1(config *c); -int bm1sgn(config *c); - -int bm2f(config *c); -int bm2l(config *c); -int bm2c(config *c); -int bm2p(config *c); -int bm2m(config *c); -int bm2s(config *c); -int bm2A(config *c); -int bm2B(config *c); -int bm2C(config *c); -int bm2D(config *c); -int bm2E(config *c); -int bm2F(config *c); -int bm2G(config *c); -int bm2H(config *c); -int bm2I(config *c); -int bm2J(config *c); -int bm2K(config *c); -int bm2L(config *c); -int bm2M(config *c); -int bm2N(config *c); -int bm2O(config *c); -int bm2P(config *c); -int bm2Q(config *c); -int bm2R(config *c); -int bm2S(config *c); -int bm2T(config *c); -int bm2U(config *c); -int bm2V(config *c); -int bm2W(config *c); -int bm2X(config *c); -int bm2Y(config *c); -int bm2Z(config *c); - -int bm3f(config *c); -int bm3l(config *c); -int bm3c(config *c); -int bm3p(config *c); -int bm3m(config *c); -int bm3s(config *c); -int bm3A(config *c); -int bm3B(config *c); -int bm3C(config *c); -int bm3D(config *c); -int bm3E(config *c); -int bm3F(config *c); -int bm3G(config *c); -int bm3H(config *c); -int bm3I(config *c); -int bm3J(config *c); -int bm3K(config *c); -int bm3L(config *c); -int bm3M(config *c); -int bm3N(config *c); -int bm3O(config *c); -int bm3P(config *c); -int bm3Q(config *c); -int bm3R(config *c); -int bm3S(config *c); -int bm3T(config *c); -int bm3U(config *c); -int bm3V(config *c); -int bm3W(config *c); -int bm3X(config *c); -int bm3Y(config *c); -int bm3Z(config *c); +int s0g(void *input); +int s0sf(void *input); + +int s0f(void *input); +int s0l(void *input); +int s0c(void *input); +int s0p(void *input); +int s0m(void *input); +int s0s(void *input); +int s0A(void *input); +int s0B(void *input); +int s0C(void *input); +int s0D(void *input); +int s0E(void *input); +int s0F(void *input); +int s0G(void *input); +int s0H(void *input); +int s0I(void *input); +int s0J(void *input); +int s0K(void *input); +int s0L(void *input); +int s0M(void *input); +int s0N(void *input); +int s0O(void *input); +int s0P(void *input); +int s0Q(void *input); +int s0R(void *input); +int s0S(void *input); +int s0T(void *input); +int s0U(void *input); +int s0V(void *input); +int s0W(void *input); +int s0X(void *input); +int s0Y(void *input); +int s0Z(void *input); + +int s0U1(void *input); +int s0sgn(void *input); + +int s0r(void *input); + +int s1g(void *input); +int s1sf(void *input); + + +int s1f(void *input); +int s1l(void *input); +int s1c(void *input); +int s1p(void *input); +int s1m(void *input); +int s1s(void *input); +int s1A(void *input); +int s1B(void *input); +int s1C(void *input); +int s1D(void *input); +int s1E(void *input); +int s1F(void *input); +int s1G(void *input); +int s1H(void *input); +int s1I(void *input); +int s1J(void *input); +int s1K(void *input); +int s1L(void *input); +int s1M(void *input); +int s1N(void *input); +int s1O(void *input); +int s1P(void *input); +int s1Q(void *input); +int s1R(void *input); +int s1S(void *input); +int s1T(void *input); +int s1U(void *input); +int s1V(void *input); +int s1W(void *input); +int s1X(void *input); +int s1Y(void *input); +int s1Z(void *input); + +int s1r(void *input); + +int s2f(void *input); +int s2l(void *input); +int s2c(void *input); +int s2p(void *input); +int s2m(void *input); +int s2s(void *input); +int s2A(void *input); +int s2B(void *input); +int s2C(void *input); +int s2D(void *input); +int s2E(void *input); +int s2F(void *input); +int s2G(void *input); +int s2H(void *input); +int s2I(void *input); +int s2J(void *input); +int s2K(void *input); +int s2L(void *input); +int s2M(void *input); +int s2N(void *input); +int s2O(void *input); +int s2P(void *input); +int s2Q(void *input); +int s2R(void *input); +int s2S(void *input); +int s2T(void *input); +int s2U(void *input); +int s2V(void *input); +int s2W(void *input); +int s2X(void *input); +int s2Y(void *input); +int s2Z(void *input); + +int s2r(void *input); + +int s3f(void *input); +int s3l(void *input); +int s3c(void *input); +int s3p(void *input); +int s3m(void *input); +int s3s(void *input); +int s3A(void *input); +int s3B(void *input); +int s3C(void *input); +int s3D(void *input); +int s3E(void *input); +int s3F(void *input); +int s3G(void *input); +int s3H(void *input); +int s3I(void *input); +int s3J(void *input); +int s3K(void *input); +int s3L(void *input); +int s3M(void *input); +int s3N(void *input); +int s3O(void *input); +int s3P(void *input); +int s3Q(void *input); +int s3R(void *input); +int s3S(void *input); +int s3T(void *input); +int s3U(void *input); +int s3V(void *input); +int s3W(void *input); +int s3X(void *input); +int s3Y(void *input); +int s3Z(void *input); +int s3r(void *input); + +int b0g(void *input); +int b0sf(void *input); +int b0len(void *input); + + +int b0f(void *input); +int b0l(void *input); +int b0c(void *input); +int b0p(void *input); +int b0m(void *input); +int b0s(void *input); +int b0A(void *input); +int b0B(void *input); +int b0C(void *input); +int b0D(void *input); +int b0E(void *input); +int b0F(void *input); +int b0G(void *input); +int b0H(void *input); +int b0I(void *input); +int b0J(void *input); +int b0K(void *input); +int b0L(void *input); +int b0M(void *input); +int b0N(void *input); +int b0O(void *input); +int b0P(void *input); +int b0Q(void *input); +int b0R(void *input); +int b0S(void *input); +int b0T(void *input); +int b0U(void *input); +int b0V(void *input); +int b0W(void *input); +int b0X(void *input); +int b0Y(void *input); +int b0Z(void *input); +int b0r(void *input); + +int b0U1(void *input); +int b0sgn(void *input); + +int b1f(void *input); +int b1l(void *input); +int b1c(void *input); +int b1p(void *input); +int b1m(void *input); +int b1s(void *input); +int b1A(void *input); +int b1B(void *input); +int b1C(void *input); +int b1D(void *input); +int b1E(void *input); +int b1F(void *input); +int b1G(void *input); +int b1H(void *input); +int b1I(void *input); +int b1J(void *input); +int b1K(void *input); +int b1L(void *input); +int b1M(void *input); +int b1N(void *input); +int b1O(void *input); +int b1P(void *input); +int b1Q(void *input); +int b1R(void *input); +int b1S(void *input); +int b1T(void *input); +int b1U(void *input); +int b1V(void *input); +int b1W(void *input); +int b1X(void *input); +int b1Y(void *input); +int b1Z(void *input); + +int b1U1(void *input); +int b1sgn(void *input); + +int b1r(void *input); + + + +int b2f(void *input); +int b2l(void *input); +int b2c(void *input); +int b2p(void *input); +int b2m(void *input); +int b2s(void *input); +int b2A(void *input); +int b2B(void *input); +int b2C(void *input); +int b2D(void *input); +int b2E(void *input); +int b2F(void *input); +int b2G(void *input); +int b2H(void *input); +int b2I(void *input); +int b2J(void *input); +int b2K(void *input); +int b2L(void *input); +int b2M(void *input); +int b2N(void *input); +int b2O(void *input); +int b2P(void *input); +int b2Q(void *input); +int b2R(void *input); +int b2S(void *input); +int b2T(void *input); +int b2U(void *input); +int b2V(void *input); +int b2W(void *input); +int b2X(void *input); +int b2Y(void *input); +int b2Z(void *input); + +int b2r(void *input); + +int b2U1(void *input); +int b2sgn(void *input); + + +int b3f(void *input); +int b3l(void *input); +int b3c(void *input); +int b3p(void *input); +int b3m(void *input); +int b3s(void *input); +int b3A(void *input); +int b3B(void *input); +int b3C(void *input); +int b3D(void *input); +int b3E(void *input); +int b3F(void *input); +int b3G(void *input); +int b3H(void *input); +int b3I(void *input); +int b3J(void *input); +int b3K(void *input); +int b3L(void *input); +int b3M(void *input); +int b3N(void *input); +int b3O(void *input); +int b3P(void *input); +int b3Q(void *input); +int b3R(void *input); +int b3S(void *input); +int b3T(void *input); +int b3U(void *input); +int b3V(void *input); +int b3W(void *input); +int b3X(void *input); +int b3Y(void *input); +int b3Z(void *input); + +int b3r(void *input); + + +int bm1f(void *input); +int bm1l(void *input); +int bm1c(void *input); +int bm1p(void *input); +int bm1m(void *input); +int bm1s(void *input); +int bm1A(void *input); +int bm1B(void *input); +int bm1C(void *input); +int bm1D(void *input); +int bm1E(void *input); +int bm1F(void *input); +int bm1G(void *input); +int bm1H(void *input); +int bm1I(void *input); +int bm1J(void *input); +int bm1K(void *input); +int bm1L(void *input); +int bm1M(void *input); +int bm1N(void *input); +int bm1O(void *input); +int bm1P(void *input); +int bm1Q(void *input); +int bm1R(void *input); +int bm1S(void *input); +int bm1T(void *input); +int bm1U(void *input); +int bm1V(void *input); +int bm1W(void *input); +int bm1X(void *input); +int bm1Y(void *input); +int bm1Z(void *input); + +int bm1U1(void *input); +int bm1sgn(void *input); + +int bm2f(void *input); +int bm2l(void *input); +int bm2c(void *input); +int bm2p(void *input); +int bm2m(void *input); +int bm2s(void *input); +int bm2A(void *input); +int bm2B(void *input); +int bm2C(void *input); +int bm2D(void *input); +int bm2E(void *input); +int bm2F(void *input); +int bm2G(void *input); +int bm2H(void *input); +int bm2I(void *input); +int bm2J(void *input); +int bm2K(void *input); +int bm2L(void *input); +int bm2M(void *input); +int bm2N(void *input); +int bm2O(void *input); +int bm2P(void *input); +int bm2Q(void *input); +int bm2R(void *input); +int bm2S(void *input); +int bm2T(void *input); +int bm2U(void *input); +int bm2V(void *input); +int bm2W(void *input); +int bm2X(void *input); +int bm2Y(void *input); +int bm2Z(void *input); + +int bm3f(void *input); +int bm3l(void *input); +int bm3c(void *input); +int bm3p(void *input); +int bm3m(void *input); +int bm3s(void *input); +int bm3A(void *input); +int bm3B(void *input); +int bm3C(void *input); +int bm3D(void *input); +int bm3E(void *input); +int bm3F(void *input); +int bm3G(void *input); +int bm3H(void *input); +int bm3I(void *input); +int bm3J(void *input); +int bm3K(void *input); +int bm3L(void *input); +int bm3M(void *input); +int bm3N(void *input); +int bm3O(void *input); +int bm3P(void *input); +int bm3Q(void *input); +int bm3R(void *input); +int bm3S(void *input); +int bm3T(void *input); +int bm3U(void *input); +int bm3V(void *input); +int bm3W(void *input); +int bm3X(void *input); +int bm3Y(void *input); +int bm3Z(void *input); /* structural features */ -int gs0l(config *c); -int gs0p(config *c); +int gs0l(void *input); +int gs0p(void *input); -int ldep_s0r(config *c); -int rdep_s0r(config *c); -int ldep_s1r(config *c); -int rdep_s1r(config *c); -int ndep_b0(config *c); -int ndep_s0(config *c); -int ldep_b0r(config *c); -int rdep_b0r(config *c); +int ldep_s0r(void *input); +int rdep_s0r(void *input); +int ldep_s1r(void *input); +int rdep_s1r(void *input); +int ndep_b0(void *input); +int ndep_s0(void *input); +int ldep_b0r(void *input); +int rdep_b0r(void *input); /* distance features */ -int dist_s0_b0(config *c); +int dist_s0_b0(void *input); /* configurational features */ -int sh(config *c); -int bh(config *c); -/* int dh(config *c); */ - -int t1(config *c); -int t2(config *c); -int t3(config *c); -int t4(config *c); - - - - -int mvt0(config *c); -int mvt1(config *c); -int delta1(config *c); -int mvt2(config *c); -int delta2(config *c); -int mvt3(config *c); -int delta3(config *c); +int sh(void *input); +int bh(void *input); +/* int dh(void *input); */ + +int t1(void *input); +int t2(void *input); +int t3(void *input); +int t4(void *input); + +int mvt0(void *input); +int mvt1(void *input); +int delta1(void *input); +int mvt2(void *input); +int delta2(void *input); +int mvt3(void *input); +int delta3(void *input); #endif diff --git a/maca_trans_parser/src/feat_lib.c b/maca_trans_parser/src/feat_lib.c deleted file mode 100644 index 50da18f19028c829fe044b7ba51df7560bf1b582..0000000000000000000000000000000000000000 --- a/maca_trans_parser/src/feat_lib.c +++ /dev/null @@ -1,487 +0,0 @@ -#include "feat_lib.h" -#include "feat_types.h" -#include "feat_fct.h" - -void feat_lib_add(feat_lib *fl, int feature_type, char *feature_name, feat_fct feature_fct) -{ - int feature_nb = dico_add(fl->d_features, feature_name); - fl->array = (simple_feat_desc **)realloc(fl->array, (feature_nb + 1) * sizeof(simple_feat_desc *)); - fl->array[feature_nb] = simple_feat_desc_new(feature_name, feature_type, feature_fct); - fl->nbelem = feature_nb+1; -} - -simple_feat_desc *feat_lib_get_simple_feat_desc(feat_lib *fl, char *feat_name) -{ - int index = dico_string2int(fl->d_features, feat_name); - if(index == -1){ - fprintf(stderr, "features function %s unknown\n", feat_name); - return NULL; - } - return fl->array[index]; -} - -feat_lib *feat_lib_new(void) -{ - feat_lib *fl = (feat_lib *)memalloc(sizeof(feat_lib)); - fl->nbelem = 0; - fl->d_features = dico_new(NULL, 100); - fl->array = NULL; - return fl; -} - -void feat_lib_free(feat_lib *fl) { - - for(int i=0; i < fl->nbelem; ++i) { - simple_feat_desc_free(fl->array[i]); - } - dico_free(fl->d_features); - free(fl->array); - free(fl); // ne devrait pas etre en commentaire - -} - -feat_lib *feat_lib_build(void) -{ - feat_lib *fl = feat_lib_new(); - - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s0sf", s0sf); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0g", s0g); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s0f", s0f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s0l", s0l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s0c", s0c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s0p", s0p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s0m", s0m); - feat_lib_add(fl, FEAT_TYPE_STAG , (char *)"s0s", s0s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s0r", s0r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"s0A", s0A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"s0B", s0B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"s0C", s0C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"s0D", s0D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"s0E", s0E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"s0F", s0F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"s0G", s0G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"s0H", s0H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"s0I", s0I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"s0J", s0J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"s0K", s0K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"s0L", s0L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"s0M", s0M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"s0N", s0N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"s0O", s0O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"s0P", s0P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s0Q", s0Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"s0R", s0R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"s0S", s0S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"s0T", s0T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"s0U", s0U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"s0V", s0V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"s0W", s0W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"s0X", s0X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s0Y", s0Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s0Z", s0Z); - feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"s0U1", s0U1); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0sgn", s0sgn); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1g", s1g); - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1sf", s1sf); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s1f", s1f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s1l", s1l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s1c", s1c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s1p", s1p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s1m", s1m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s1s", s1s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s1r", s1r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"s1A", s1A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"s1B", s1B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"s1C", s1C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"s1D", s1D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"s1E", s1E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"s1F", s1F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"s1G", s1G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"s1H", s1H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"s1I", s1I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"s1J", s1J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"s1K", s1K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"s1L", s1L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"s1M", s1M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"s1N", s1N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"s1O", s1O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"s1P", s1P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s1Q", s1Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"s1R", s1R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"s1S", s1S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"s1T", s1T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"s1U", s1U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"s1V", s1V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"s1W", s1W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"s1X", s1X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s1Y", s1Y); - feat_lib_add(fl, FEAT_TYPE_Z, (char *)"s1Z", s1Z); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s2f", s2f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s2l", s2l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s2c", s2c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s2p", s2p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s2m", s2m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s2s", s2s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s2r", s2r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"s2A", s2A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"s2B", s2B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"s2C", s2C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"s2D", s2D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"s2E", s2E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"s2F", s2F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"s2G", s2G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"s2H", s2H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"s2I", s2I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"s2J", s2J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"s2K", s2K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"s2L", s2L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"s2M", s2M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"s2N", s2N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"s2O", s2O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"s2P", s2P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s2Q", s2Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"s2R", s2R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"s2S", s2S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"s2T", s2T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"s2U", s2U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"s2V", s2V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"s2W", s2W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"s2X", s2X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s2Y", s2Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s2Z", s2Z); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s3f", s3f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s3l", s3l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s3c", s3c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"s3p", s3p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"s3m", s3m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"s3s", s3s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s3r", s3r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"s3A", s3A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"s3B", s3B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"s3C", s3C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"s3D", s3D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"s3E", s3E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"s3F", s3F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"s3G", s3G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"s3H", s3H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"s3I", s3I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"s3J", s3J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"s3K", s3K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"s3L", s3L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"s3M", s3M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"s3N", s3N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"s3O", s3O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"s3P", s3P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"s3Q", s3Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"s3R", s3R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"s3S", s3S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"s3T", s3T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"s3U", s3U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"s3V", s3V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"s3W", s3W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"s3X", s3X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s3Y", s3Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"s3Z", s3Z); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0g", b0g); - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0sf", b0sf); - - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b0len", b0len); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b0f", b0f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b0l", b0l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b0c", b0c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b0p", b0p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b0m", b0m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b0s", b0s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b0r", b0r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"b0A", b0A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"b0B", b0B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"b0C", b0C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"b0D", b0D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"b0E", b0E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"b0F", b0F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"b0G", b0G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"b0H", b0H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"b0I", b0I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"b0J", b0J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"b0K", b0K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"b0L", b0L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"b0M", b0M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"b0N", b0N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"b0O", b0O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"b0P", b0P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b0Q", b0Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"b0R", b0R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"b0S", b0S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"b0T", b0T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"b0U", b0U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"b0V", b0V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"b0W", b0W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"b0X", b0X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b0Y", b0Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b0Z", b0Z); - feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"b0U1", b0U1); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b0sgn", b0sgn); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm1f", bm1f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm1l", bm1l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm1c", bm1c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm1p", bm1p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm1m", bm1m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm1s", bm1s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm1r", bm1r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm1A", bm1A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm1B", bm1B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm1C", bm1C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm1D", bm1D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm1E", bm1E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm1F", bm1F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm1G", bm1G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm1H", bm1H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm1I", bm1I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm1J", bm1J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm1K", bm1K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm1L", bm1L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm1M", bm1M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm1N", bm1N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm1O", bm1O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm1P", bm1P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm1Q", bm1Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm1R", bm1R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm1S", bm1S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm1T", bm1T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm1U", bm1U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm1V", bm1V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm1W", bm1W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm1X", bm1X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm1Y", bm1Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm1Z", bm1Z); - feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm1U1", bm1U1); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm1sgn", bm1sgn); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm2f", bm2f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm2l", bm2l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm2c", bm2c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm2p", bm2p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm2m", bm2m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm2s", bm2s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm2r", bm2r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm2A", bm2A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm2B", bm2B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm2C", bm2C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm2D", bm2D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm2E", bm2E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm2F", bm2F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm2G", bm2G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm2H", bm2H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm2I", bm2I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm2J", bm2J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm2K", bm2K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm2L", bm2L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm2M", bm2M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm2N", bm2N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm2O", bm2O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm2P", bm2P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm2Q", bm2Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm2R", bm2R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm2S", bm2S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm2T", bm2T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm2U", bm2U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm2V", bm2V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm2W", bm2W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm2X", bm2X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm2Y", bm2Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm2Z", bm2Z); - /* feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm2U1", bm2U1); */ - /* feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm2sgn", bm2sgn); */ - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"bm3f", bm3f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"bm3l", bm3l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"bm3c", bm3c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"bm3p", bm3p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"bm3m", bm3m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"bm3s", bm3s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"bm3r", bm3r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"bm3A", bm3A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"bm3B", bm3B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"bm3C", bm3C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"bm3D", bm3D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"bm3E", bm3E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"bm3F", bm3F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"bm3G", bm3G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"bm3H", bm3H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"bm3I", bm3I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"bm3J", bm3J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"bm3K", bm3K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"bm3L", bm3L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"bm3M", bm3M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"bm3N", bm3N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"bm3O", bm3O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"bm3P", bm3P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"bm3Q", bm3Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"bm3R", bm3R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"bm3S", bm3S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"bm3T", bm3T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"bm3U", bm3U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"bm3V", bm3V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"bm3W", bm3W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"bm3X", bm3X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm3Y", bm3Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"bm3Z", bm3Z); - /* feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"bm3U1", bm3U1); */ - /* feat_lib_add(fl, FEAT_TYPE_INT, (char *)"bm3sgn", bm3sgn); */ - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b1f", b1f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b1l", b1l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b1c", b1c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b1p", b1p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b1m", b1m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b1s", b1s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b1r", b1r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"b1A", b1A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"b1B", b1B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"b1C", b1C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"b1D", b1D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"b1E", b1E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"b1F", b1F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"b1G", b1G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"b1H", b1H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"b1I", b1I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"b1J", b1J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"b1K", b1K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"b1L", b1L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"b1M", b1M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"b1N", b1N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"b1O", b1O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"b1P", b1P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b1Q", b1Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"b1R", b1R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"b1S", b1S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"b1T", b1T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"b1U", b1U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"b1V", b1V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"b1W", b1W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"b1X", b1X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b1Y", b1Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b1Z", b1Z); - feat_lib_add(fl, FEAT_TYPE_INT_3, (char *)"b1U1", b1U1); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"b1sgn", b1sgn); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b2f", b2f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b2l", b2l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b2c", b2c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b2p", b2p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b2m", b2m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b2s", b2s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b2r", b2r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"b2A", b2A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"b2B", b2B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"b2C", b2C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"b2D", b2D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"b2E", b2E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"b2F", b2F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"b2G", b2G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"b2H", b2H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"b2I", b2I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"b2J", b2J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"b2K", b2K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"b2L", b2L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"b2M", b2M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"b2N", b2N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"b2O", b2O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"b2P", b2P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b2Q", b2Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"b2R", b2R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"b2S", b2S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"b2T", b2T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"b2U", b2U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"b2V", b2V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"b2W", b2W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"b2X", b2X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2Y", b2Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2Z", b2Z); - - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2U1", b2U1); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b2sgn", b2sgn); - - feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"b3f", b3f); - feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"b3l", b3l); - feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"b3c", b3c); - feat_lib_add(fl, FEAT_TYPE_POS, (char *)"b3p", b3p); - feat_lib_add(fl, FEAT_TYPE_FEATS, (char *)"b3m", b3m); - feat_lib_add(fl, FEAT_TYPE_STAG, (char *)"b3s", b3s); - /* feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"b3r", b3r); */ - feat_lib_add(fl, FEAT_TYPE_A, (char *)"b3A", b3A); - feat_lib_add(fl, FEAT_TYPE_B, (char *)"b3B", b3B); - feat_lib_add(fl, FEAT_TYPE_C, (char *)"b3C", b3C); - feat_lib_add(fl, FEAT_TYPE_D, (char *)"b3D", b3D); - feat_lib_add(fl, FEAT_TYPE_E, (char *)"b3E", b3E); - feat_lib_add(fl, FEAT_TYPE_F, (char *)"b3F", b3F); - feat_lib_add(fl, FEAT_TYPE_G, (char *)"b3G", b3G); - feat_lib_add(fl, FEAT_TYPE_H, (char *)"b3H", b3H); - feat_lib_add(fl, FEAT_TYPE_I, (char *)"b3I", b3I); - feat_lib_add(fl, FEAT_TYPE_J, (char *)"b3J", b3J); - feat_lib_add(fl, FEAT_TYPE_K, (char *)"b3K", b3K); - feat_lib_add(fl, FEAT_TYPE_L, (char *)"b3L", b3L); - feat_lib_add(fl, FEAT_TYPE_M, (char *)"b3M", b3M); - feat_lib_add(fl, FEAT_TYPE_N, (char *)"b3N", b3N); - feat_lib_add(fl, FEAT_TYPE_O, (char *)"b3O", b3O); - feat_lib_add(fl, FEAT_TYPE_P, (char *)"b3P", b3P); - feat_lib_add(fl, FEAT_TYPE_Q, (char *)"b3Q", b3Q); - feat_lib_add(fl, FEAT_TYPE_R, (char *)"b3R", b3R); - feat_lib_add(fl, FEAT_TYPE_S, (char *)"b3S", b3S); - feat_lib_add(fl, FEAT_TYPE_T, (char *)"b3T", b3T); - feat_lib_add(fl, FEAT_TYPE_U, (char *)"b3U", b3U); - feat_lib_add(fl, FEAT_TYPE_V, (char *)"b3V", b3V); - feat_lib_add(fl, FEAT_TYPE_W, (char *)"b3W", b3W); - feat_lib_add(fl, FEAT_TYPE_X, (char *)"b3X", b3X); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b3Y", b3Y); - feat_lib_add(fl, FEAT_TYPE_Y, (char *)"b3Z", b3Z); - - /* feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"gs0l", gs0l); */ - /* feat_lib_add(fl, FEAT_TYPE_POS, (char *)"gs0p", gs0p); */ - - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_s0r", ldep_s0r); - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_s0r", rdep_s0r); - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_s1r", ldep_s1r); - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_s1r", rdep_s1r); - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"ldep_b0r", ldep_b0r); - feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"rdep_b0r", rdep_b0r); - - feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"ndep_b0", ndep_b0); - feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"ndep_s0", ndep_s0); - - /* distance features */ - feat_lib_add(fl, FEAT_TYPE_INT_7, (char *)"dist_s0_b0", dist_s0_b0); - -/* configurational features */ - - feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"sh", sh); - feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"bh", bh); - /* feat_lib_add(fl, FEAT_TYPE_INT_8, (char *)"dh", dh); */ - - feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t1", t1); - feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t2", t2); - feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t3", t3); - feat_lib_add(fl, FEAT_TYPE_TRANS, (char *)"t4", t4); - - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt0", mvt0); - - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt1", mvt1); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta1", delta1); - - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt2", mvt2); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta2", delta2); - - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"mvt3", mvt3); - feat_lib_add(fl, FEAT_TYPE_INT, (char *)"delta3", delta3); - - return fl; -} - diff --git a/maca_trans_parser/src/feat_lib.h b/maca_trans_parser/src/feat_lib.h deleted file mode 100644 index b0af82298b2c1bf84be57da60a6d8bc9c5cf4f32..0000000000000000000000000000000000000000 --- a/maca_trans_parser/src/feat_lib.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __FEAT_LIB__ -#define __FEAT_LIB__ - -#include "config.h" -#include "features.h" -#include "feat_desc.h" -#include "dico.h" - -typedef struct { - int nbelem; - dico *d_features; - simple_feat_desc **array; -} feat_lib; - -feat_lib *feat_lib_new(void); -void feat_lib_add(feat_lib *fl, int feature_type, char *feature_name, feat_fct feature_fct); -simple_feat_desc *feat_lib_get_simple_feat_desc(feat_lib *fl, char *feat_name); -feat_lib *feat_lib_build(void); -void feat_lib_free(feat_lib *fl); -#endif diff --git a/maca_trans_parser/src/feat_model.h b/maca_trans_parser/src/feat_model.h deleted file mode 100644 index 6737331e2aa518f7787a11d20110f776f82f7ad1..0000000000000000000000000000000000000000 --- a/maca_trans_parser/src/feat_model.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __FEAT_MODEL__ -#define __FEAT_MODEL__ - -#include "feat_desc.h" -#include "feat_lib.h" - -typedef struct { - char string[2048]; - char *name; - int nbelem; - feat_desc **array; - int dim; - feat_lib *fl; // stores all simple features -} feat_model; - -#include "config.h" -#include "dico.h" -#include "mcd.h" - - - -void feat_model_free(feat_model *fm); -feat_model *feat_model_new(char *name); -void feat_model_print(FILE *f, feat_model *fm); -feat_desc *feat_model_add(feat_model *fm, feat_desc *fd); -int feat_model_get_feat_value_fann(feat_model *fm, config *c, int feat_nb); -int feat_model_get_feat_value_cff(feat_model *fm, config *c, dico *dico_features, int feat_nb, int mode); -feat_model *feat_model_read(char *filename, int verbose); -void feat_model_compute_ranges(feat_model *fm, mcd *m, int mvt_nb); -int feat_model_get_type_feat_n(feat_model *fm, int n); - -#endif diff --git a/maca_trans_parser/src/maca_trans_lemmatizer.c b/maca_trans_parser/src/maca_trans_lemmatizer.c index 1044ddad92280eae381b9a806357fc1508f78a02..351305c873ab062f8990aeb0c6a25f04d785655e 100644 --- a/maca_trans_parser/src/maca_trans_lemmatizer.c +++ b/maca_trans_parser/src/maca_trans_lemmatizer.c @@ -7,6 +7,7 @@ #include"context.h" #include"dico.h" +#include"config.h" void maca_lemmatizer_help_message(context *ctx) { diff --git a/maca_trans_parser/src/maca_trans_parser.c b/maca_trans_parser/src/maca_trans_parser.c index fa44e9b51c6be52cb019d0ca4abde650c649cd67..390ac1c49391e76e25511d9ec81e76173fbc2ff3 100644 --- a/maca_trans_parser/src/maca_trans_parser.c +++ b/maca_trans_parser/src/maca_trans_parser.c @@ -87,7 +87,7 @@ int main(int argc, char *argv[]) maca_trans_parser_check_options(ctx); set_linguistic_resources_filenames_parser(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); ctx->vocabs = dico_vec_read(ctx->vocabs_filename, ctx->hash_ratio); mcd_link_to_dico(ctx->mcd_struct, ctx->vocabs, ctx->verbose); diff --git a/maca_trans_parser/src/maca_trans_parser_arc_eager_mcf2cff.c b/maca_trans_parser/src/maca_trans_parser_arc_eager_mcf2cff.c index dfca5e53f46d2a8674047e7c1685c81062c87d1f..eeb228824e1275480e4e749b8699ed3800c74a79 100644 --- a/maca_trans_parser/src/maca_trans_parser_arc_eager_mcf2cff.c +++ b/maca_trans_parser/src/maca_trans_parser_arc_eager_mcf2cff.c @@ -127,7 +127,7 @@ int main(int argc, char *argv[]) ctx = context_read_options(argc, argv); maca_trans_parser_mcf2cff_check_options(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); if(ctx->mode == TRAIN_MODE){ mcd_extract_dico_from_corpus(ctx->mcd_struct, ctx->input_filename); diff --git a/maca_trans_parser/src/maca_trans_tagger.c b/maca_trans_parser/src/maca_trans_tagger.c index 0bec1311ee5d70b0749ae260a9f80d83d46bf8fb..e9ad38d5e1fcdf194da8bcbad92872a16b44530b 100644 --- a/maca_trans_parser/src/maca_trans_tagger.c +++ b/maca_trans_parser/src/maca_trans_tagger.c @@ -91,7 +91,7 @@ int main(int argc, char *argv[]) decode_tagger_check_options(ctx); decode_tagger_set_linguistic_resources_filenames(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); ctx->vocabs = dico_vec_read(ctx->vocabs_filename, ctx->hash_ratio); mcd_link_to_dico(ctx->mcd_struct, ctx->vocabs, ctx->verbose); diff --git a/maca_trans_parser/src/maca_trans_tagger_bt.c b/maca_trans_parser/src/maca_trans_tagger_bt.c index 778c634e64bdd04fa5d2ecd8442ea768a8423e0b..1f3318e9d2306bff31edbee3d003bc44bca8fd4a 100644 --- a/maca_trans_parser/src/maca_trans_tagger_bt.c +++ b/maca_trans_parser/src/maca_trans_tagger_bt.c @@ -91,7 +91,7 @@ int main(int argc, char *argv[]) decode_tagger_check_options(ctx); decode_tagger_set_linguistic_resources_filenames(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); ctx->vocabs = dico_vec_read(ctx->vocabs_filename, ctx->hash_ratio); mcd_link_to_dico(ctx->mcd_struct, ctx->vocabs, ctx->verbose); diff --git a/maca_trans_parser/src/maca_trans_tagger_mcf2cff.c b/maca_trans_parser/src/maca_trans_tagger_mcf2cff.c index 916863ba90807f16dc82b52cc9e6a183393b8e1a..f6c966c6abd824d68fd82397ff7af136e9f70993 100644 --- a/maca_trans_parser/src/maca_trans_tagger_mcf2cff.c +++ b/maca_trans_parser/src/maca_trans_tagger_mcf2cff.c @@ -116,7 +116,7 @@ int main(int argc, char *argv[]) ctx = context_read_options(argc, argv); maca_trans_parser_mcf2cff_check_options(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); if(ctx->mode == TRAIN_MODE){ diff --git a/maca_trans_parser/src/maca_trans_tagparser.c b/maca_trans_parser/src/maca_trans_tagparser.c index 608eea94e320da33d596966ead44950d07fb43d8..dc325dd3d9994212a2dfb0d5f18e875a1090fbf4 100644 --- a/maca_trans_parser/src/maca_trans_tagparser.c +++ b/maca_trans_parser/src/maca_trans_tagparser.c @@ -91,7 +91,7 @@ int main(int argc, char *argv[]) decode_check_options(ctx); set_linguistic_resources_filenames_tagparser(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); ctx->vocabs = dico_vec_read(ctx->vocabs_filename, ctx->hash_ratio); /* dico_vec_print(NULL, ctx->vocabs); */ diff --git a/maca_trans_parser/src/maca_trans_tagparser_arc_eager_mcf2cff.c b/maca_trans_parser/src/maca_trans_tagparser_arc_eager_mcf2cff.c index cf95405eefd6c91fc3b3392164eb7f76c16feabf..ef78339a7f5b55edf273e2332e11d0a0d1205eed 100644 --- a/maca_trans_parser/src/maca_trans_tagparser_arc_eager_mcf2cff.c +++ b/maca_trans_parser/src/maca_trans_tagparser_arc_eager_mcf2cff.c @@ -152,7 +152,7 @@ int main(int argc, char *argv[]) ctx = context_read_options(argc, argv); maca_trans_parser_mcf2cff_check_options(ctx); - ctx->features_model = feat_model_read(ctx->features_model_filename, ctx->verbose); + ctx->features_model = feat_model_read(ctx->features_model_filename, feat_lib_build(), ctx->verbose); if(ctx->mode == TRAIN_MODE){ mcd_extract_dico_from_corpus(ctx->mcd_struct, ctx->input_filename);