diff --git a/maca_morpho/src/maca_morpho_feat_fct.c b/maca_morpho/src/maca_morpho_feat_fct.c new file mode 100644 index 0000000000000000000000000000000000000000..056f9570473884a11c72151a2e8091350574ca5f --- /dev/null +++ b/maca_morpho/src/maca_morpho_feat_fct.c @@ -0,0 +1,87 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "feat_lib.h" + +/*patterns feature*/ +int p1(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 1 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 1]; +} +int p2(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 2 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 2]; +} +int p3(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 3 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 3]; +} +int p4(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 4 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 4]; +} +int p5(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 5 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 5]; +} +int p6(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 6 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 6]; +} +int p7(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 7 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 7]; +} +int p8(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 8 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 8]; +} +int p9(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 9 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 9]; +} +int p10(void *input) +{ + if(input == NULL || (int)strlen((char *)input) - 10 < 0) + return -1; + return ((char *)input)[(int)strlen((char *)input) - 10]; +} + +feat_lib *feat_lib_build(void) { + + feat_lib *fl = feat_lib_new(); + + feat_lib_add(fl, 1, (char *)"p1", p1); + feat_lib_add(fl, 1, (char *)"p2", p2); + feat_lib_add(fl, 1, (char *)"p3", p3); + feat_lib_add(fl, 1, (char *)"p4", p4); + feat_lib_add(fl, 1, (char *)"p5", p5); + feat_lib_add(fl, 1, (char *)"p6", p6); + feat_lib_add(fl, 1, (char *)"p7", p7); + feat_lib_add(fl, 1, (char *)"p8", p8); + feat_lib_add(fl, 1, (char *)"p9", p9); + feat_lib_add(fl, 1, (char *)"p10", p10); + + return fl; +} + + +