comparison example/regex_mas/ppe/Exec.cc @ 1759:11d3bd9d2244 draft

minor fix
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Fri, 22 Nov 2013 19:51:08 +0900
parents 68e5872085ff
children b98e23499add
comparison
equal deleted inserted replaced
1751:224802aba3bd 1759:11d3bd9d2244
8 /* これは必須 */ 8 /* これは必須 */
9 SchedDefineTask(Exec); 9 SchedDefineTask(Exec);
10 10
11 //ボイヤームーア法による文字列検索アルゴリズム 11 //ボイヤームーア法による文字列検索アルゴリズム
12 int BM_method(unsigned char *text,int text_length, 12 int BM_method(unsigned char *text,int text_length,
13 unsigned char *pattern,unsigned long long *match_string) 13 unsigned char *pattern,int sw_len,unsigned long long *match_string)
14 { 14 {
15 int skip[256]; 15 int skip[256];
16 int text_len = (long int)text_length; 16 int text_len = (long int)text_length;
17 int pattern_len = strlen((char *)pattern); 17 int pattern_len = sw_len;
18 int i = 0; 18 int i = 0;
19 int match_counter = 0; 19 int match_counter = 0;
20 20
21 for (i = 0; i < 256; ++i){ 21 for (i = 0; i < 256; ++i){
22 skip[i] = pattern_len; 22 skip[i] = pattern_len;
50 unsigned char *i_data = (unsigned char *)s->get_input(rbuf,0); 50 unsigned char *i_data = (unsigned char *)s->get_input(rbuf,0);
51 unsigned char *search_word = (unsigned char*)s->get_input(rbuf,1); 51 unsigned char *search_word = (unsigned char*)s->get_input(rbuf,1);
52 52
53 unsigned long long *o_data = (unsigned long long*)wbuf; 53 unsigned long long *o_data = (unsigned long long*)wbuf;
54 int length = (int)s->get_inputSize(0); 54 int length = (int)s->get_inputSize(0);
55 int sw_len = (int)s->get_inputSize(1);
55 //unsigned char search_word[] = "doing"; 56 //unsigned char search_word[] = "doing";
56 57
57 o_data[0] = BM_method(i_data,length,search_word,o_data); 58 o_data[0] = BM_method(i_data,length,search_word,sw_len,o_data);
58 59
59 //s->printf("in Exec.cc\n"); 60 //s->printf("in Exec.cc\n");
60 61
61 return 0; 62 return 0;
62 } 63 }