annotate c/regexParser/subsetConstraction.cc @ 137:c292c67b3100 pairPro

add generateTransitionList function
author masa
date Fri, 04 Dec 2015 20:32:09 +0900
parents 166136236891
children 6c258910cacb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>
101
2cc097419169 fix print
masasann
parents: 100
diff changeset
3 #include <ctype.h>
117
166136236891 add header files
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 116
diff changeset
4 #include "subsetConstraction.h"
96
b807383bcc43 add createBitVectorList.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
137
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
6 typedef struct transitionGenerator {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
7 TransitionListPtr tl;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
8 StatePtr state;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
9 long stateMax;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
10 } TransitionGenerator, *TransitionGeneratorPtr;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
11
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
12 typedef struct tgValue {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
13 TransitionListPtr tl;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
14 bool asterisk;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
15 } TGValue, *TGValuePtr;
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
16
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
17 TGValue generateTransitionList(NodePtr n,TransitionGeneretorPtr tg) {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
18
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
19 if (n->left != NULL) {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
20 TGValue tl = generateTransitionList(n->left, tg);
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
21 }
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
22 if (n->tokenType == 'a') {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
23 printf("%*c",d*4, ' ');
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
24 for (int i = 0; i < n->cc->cond->w->length; i++) {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
25 putchar(n->cc->cond->w->word[i]);
105
766fc2476f01 fix indent size
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 104
diff changeset
26 }
137
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
27 printf("(%lu)\n",n->nodeNumber);
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
28 } else if (n->tokenType == 'c') {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
29 TGValue tl = generateTransitionList(n->cc,tg);
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
30 } else {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
31 printf("%*c%c(%lu)\n",d*4, ' ',n->tokenType,n->nodeNumber);
104
3eb3cb5d581f implemented 'or' node translator
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 103
diff changeset
32 }
105
766fc2476f01 fix indent size
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 104
diff changeset
33
137
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
34 if (n->right != NULL) {
c292c67b3100 add generateTransitionList function
masa
parents: 117
diff changeset
35 TGValue tl = generateTransitionList(n->right, tg);
104
3eb3cb5d581f implemented 'or' node translator
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 103
diff changeset
36 }
3eb3cb5d581f implemented 'or' node translator
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents: 103
diff changeset
37 }