diff options
Diffstat (limited to 'lpprint.c')
-rw-r--r-- | lpprint.c | 27 |
1 files changed, 20 insertions, 7 deletions
@@ -60,7 +60,7 @@ static void printTcharset (TTree *tree) { | |||
60 | static const char *capkind (int kind) { | 60 | static const char *capkind (int kind) { |
61 | const char *const modes[] = { | 61 | const char *const modes[] = { |
62 | "close", "position", "constant", "backref", | 62 | "close", "position", "constant", "backref", |
63 | "argument", "simple", "table", "function", "replace", | 63 | "argument", "simple", "table", "function", "accumulator", |
64 | "query", "string", "num", "substitution", "fold", | 64 | "query", "string", "num", "substitution", "fold", |
65 | "runtime", "group"}; | 65 | "runtime", "group"}; |
66 | return modes[kind]; | 66 | return modes[kind]; |
@@ -147,16 +147,29 @@ void printpatt (Instruction *p) { | |||
147 | } | 147 | } |
148 | 148 | ||
149 | 149 | ||
150 | static void printcap (Capture *cap) { | 150 | static void printcap (Capture *cap, int ident) { |
151 | printf("%s (idx: %d - size: %d) -> %p\n", | 151 | while (ident--) printf(" "); |
152 | capkind(cap->kind), cap->idx, cap->siz, cap->s); | 152 | printf("%s (idx: %d - size: %d) -> %ld\n", |
153 | capkind(cap->kind), cap->idx, cap->siz, (long)cap->index); | ||
153 | } | 154 | } |
154 | 155 | ||
155 | 156 | ||
156 | void printcaplist (Capture *cap, Capture *limit) { | 157 | static Capture *printcap2close (Capture *cap, int ident) { |
158 | while (cap->kind != Cclose) { | ||
159 | printcap(cap, ident); | ||
160 | if (cap->siz == 0) { | ||
161 | cap = printcap2close(cap + 1, ident + 2); | ||
162 | printcap(cap, ident); /* print 'close' capture */ | ||
163 | } | ||
164 | cap++; | ||
165 | } | ||
166 | return cap; | ||
167 | } | ||
168 | |||
169 | |||
170 | void printcaplist (Capture *cap) { | ||
157 | printf(">======\n"); | 171 | printf(">======\n"); |
158 | for (; cap->s && (limit == NULL || cap < limit); cap++) | 172 | printcap2close(cap, 0); |
159 | printcap(cap); | ||
160 | printf("=======\n"); | 173 | printf("=======\n"); |
161 | } | 174 | } |
162 | 175 | ||