45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h>
|
47
|
2 #include <stdlib.h>
|
|
3 #include <string.h>
|
|
4
|
|
5
|
|
6 const char *usr_help_str = "./dfa2bin -regex [regex]";
|
|
7
|
|
8 typedef struct dfa{
|
|
9 short int state : 1;
|
|
10 }dfa,*dfaPtr;
|
|
11
|
|
12 void checkAppearChar(unsigned char* regex, int regexLength){
|
|
13 int charTable[256];
|
|
14
|
|
15 for (int i = 0; i < regexLength; i++) {
|
|
16 charTable[i] += 1;
|
|
17 }
|
|
18
|
|
19 for (int i = 0; i < 256; i++) {
|
|
20 printf("charTable[%d] : %d\n",i,charTable[i]);
|
|
21 }
|
|
22 }
|
|
23
|
|
24 void dfa2bin(unsigned char *regex){
|
|
25 int regexLength = strlen((char*)regex);
|
|
26 char *regexCharTable = (char*)malloc(sizeof(char)*regexLength);
|
|
27 dfaPtr dfa = (dfaPtr)malloc(sizeof(dfa)*(regexLength+1));
|
|
28
|
|
29 for (int i = 0; i < regexLength+1 ; i++) {
|
|
30 dfa[i].state = 0;
|
|
31 }
|
|
32
|
|
33 dfa[0].state = 1;
|
|
34
|
|
35 checkAppearChar(regex,regexLength);
|
|
36 }
|
|
37
|
45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 int main(int argc, char *argv[]){
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40
|
47
|
41 unsigned char *regex = 0;
|
45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 for (int i = 1; argv[i]; ++i) {
|
47
|
44 if (strcmp(argv[i], "-regex") == 0){
|
|
45 regex = (unsigned char*)argv[i+1];
|
45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 }
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 }
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48
|
46
|
49 if (regex == 0){
|
45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 puts(usr_help_str);
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 exit(1);
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 }
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53
|
47
|
54 dfa2bin(regex);
|
|
55
|
|
56 printf("regex : %s\n",regex);
|
45
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 return 0;
|
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 }
|