Mercurial > hg > Applications > Grep
annotate c/regexParser/createBitVectorList.cc @ 99:1e5b56e8263b impl-bitvector
remove some variable
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 10 Nov 2015 20:57:59 +0900 |
parents | d0d2262d4edf |
children | 804e51f19f17 |
rev | line source |
---|---|
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h> |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <stdlib.h> |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #include "bitVector.h" |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include "regexParser.h" |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 extern BitVectorPtr bitSet(int); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 extern void bitPrint(BitVectorPtr); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 BitVectorListPtr createBitVector(NodePtr); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 BitVectorListPtr descendTreeNode(NodePtr,BitVectorListPtr); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 |
99
1e5b56e8263b
remove some variable
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
98
diff
changeset
|
11 BitVectorListPtr initBvl; |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 BitVectorListPtr createBitVector(NodePtr n,BitVectorListPtr bvl) { |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
14 BitVectorListPtr nextBvl = bvl->next[(int)n->Value.character] = (BitVectorListPtr)malloc(sizeof(BitVectorList)); |
99
1e5b56e8263b
remove some variable
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
98
diff
changeset
|
15 nextBvl->self = bvl->next[(int)n->Value.character]; |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
16 nextBvl->bi = (BitVectorPtr)malloc(sizeof(BitVector)); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
17 nextBvl->bi = bitSet(n->nodeNumber); |
99
1e5b56e8263b
remove some variable
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
98
diff
changeset
|
18 nextBvl->initBvl = initBvl; |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
19 |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 puts("-----"); |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
21 printf(" state : "); bitPrint(bvl->bi); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
22 for (int i = 0; i < 256; i++) { |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
23 if (bvl->next[i] != NULL) { |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
24 printf("input char : %c\n",i); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
25 } |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
26 } |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
27 printf("next state : ");bitPrint(bvl->next[(int)n->Value.character]->bi); |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 puts("-----"); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 return bvl->next[(int)n->Value.character]; |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 } |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 BitVectorListPtr initBitVector() { |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 BitVectorListPtr bvl = (BitVectorListPtr)malloc(sizeof(BitVectorList)); |
99
1e5b56e8263b
remove some variable
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
98
diff
changeset
|
34 bvl->initBvl = bvl->self = initBvl = bvl; |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
35 bvl->bi = (BitVectorPtr)malloc(sizeof(BitVector)); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
36 bvl->bi = bitSet(0); |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 return bvl; |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 } |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 BitVectorListPtr descendTreeNode(NodePtr n,BitVectorListPtr bvl) { |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 if (n->tokenType == '*') { |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
44 bvl = descendTreeNode(n->left,bvl); |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 } else if (n->tokenType == '|') { |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 } else if (n->Value.character == '+') { |
98
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
48 bvl = descendTreeNode(n->left,bvl); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
49 bvl = descendTreeNode(n->right,bvl); |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
50 } else if (n->tokenType == 'a') { |
d0d2262d4edf
implement if (NodeChar == '+')
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
96
diff
changeset
|
51 bvl = createBitVector(n,bvl); |
96
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 } |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 return bvl; |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 } |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 BitVectorListPtr createBitVectorList(NodePtr n) { |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 BitVectorListPtr bvl = initBitVector(); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 descendTreeNode(n,bvl); |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 return bvl; |
b807383bcc43
add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 } |