aboutsummaryrefslogtreecommitdiff
path: root/lpprint.c
diff options
context:
space:
mode:
Diffstat (limited to 'lpprint.c')
-rw-r--r--lpprint.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/lpprint.c b/lpprint.c
index 1142376..bdb85b8 100644
--- a/lpprint.c
+++ b/lpprint.c
@@ -60,7 +60,7 @@ static void printTcharset (TTree *tree) {
60static const char *capkind (int kind) { 60static 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
150static void printcap (Capture *cap) { 150static 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
156void printcaplist (Capture *cap, Capture *limit) { 157static 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
170void 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