1 /* $Header: dump.c,v 2.0 88/06/05 00:08:44 root Exp $
4 * Revision 2.0 88/06/05 00:08:44 root
5 * Baseline version 2.0.
13 static int dumplvl = 0;
19 fprintf(stderr,"{\n");
22 dump("C_TYPE = %s\n",cmdname[cmd->c_type]);
24 dump("C_LINE = %d\n",cmd->c_line);
26 dump("C_LABEL = \"%s\"\n",cmd->c_label);
27 dump("C_OPT = CFT_%s\n",cmdopt[cmd->c_flags & CF_OPTIMIZE]);
29 if (cmd->c_flags & CF_FIRSTNEG)
30 strcat(buf,"FIRSTNEG,");
31 if (cmd->c_flags & CF_NESURE)
32 strcat(buf,"NESURE,");
33 if (cmd->c_flags & CF_EQSURE)
34 strcat(buf,"EQSURE,");
35 if (cmd->c_flags & CF_COND)
37 if (cmd->c_flags & CF_LOOP)
39 if (cmd->c_flags & CF_INVERT)
40 strcat(buf,"INVERT,");
41 if (cmd->c_flags & CF_ONCE)
43 if (cmd->c_flags & CF_FLIP)
46 buf[strlen(buf)-1] = '\0';
47 dump("C_FLAGS = (%s)\n",buf);
49 dump("C_SHORT = \"%s\"\n",str_peek(cmd->c_short));
50 dump("C_SLEN = \"%d\"\n",cmd->c_slen);
54 dump_stab(cmd->c_stab);
58 dump_spat(cmd->c_spat);
62 dump_arg(cmd->c_expr);
64 dump("C_EXPR = NULL\n");
65 switch (cmd->c_type) {
69 if (cmd->ucmd.ccmd.cc_true) {
71 dump_cmd(cmd->ucmd.ccmd.cc_true,cmd->ucmd.ccmd.cc_alt);
73 dump("CC_TRUE = NULL\n");
74 if (cmd->c_type == C_IF && cmd->ucmd.ccmd.cc_alt) {
76 dump_cmd(cmd->ucmd.ccmd.cc_alt,Nullcmd);
78 dump("CC_ALT = NULL\n");
81 if (cmd->ucmd.acmd.ac_stab) {
83 dump_stab(cmd->ucmd.acmd.ac_stab);
85 dump("AC_STAB = NULL\n");
86 if (cmd->ucmd.acmd.ac_expr) {
88 dump_arg(cmd->ucmd.acmd.ac_expr);
90 dump("AC_EXPR = NULL\n");
94 if (cmd && cmd->c_head == cmd) { /* reached end of while loop */
95 dump("C_NEXT = HEAD\n");
115 fprintf(stderr,"{\n");
117 dump("OP_TYPE = %s\n",opname[arg->arg_type]);
118 dump("OP_LEN = %d\n",arg->arg_len);
119 if (arg->arg_flags) {
120 dump_flags(buf,arg->arg_flags);
121 dump("OP_FLAGS = (%s)\n",buf);
123 for (i = 1; i <= arg->arg_len; i++) {
124 dump("[%d]ARG_TYPE = %s\n",i,argname[arg[i].arg_type]);
126 dump("[%d]ARG_LEN = %d\n",i,arg[i].arg_len);
127 if (arg[i].arg_flags) {
128 dump_flags(buf,arg[i].arg_flags);
129 dump("[%d]ARG_FLAGS = (%s)\n",i,buf);
131 switch (arg[i].arg_type) {
136 dump("[%d]ARG_ARG = ",i);
137 dump_arg(arg[i].arg_ptr.arg_arg);
140 dump("[%d]ARG_CMD = ",i);
141 dump_cmd(arg[i].arg_ptr.arg_cmd,Nullcmd);
149 dump("[%d]ARG_STAB = ",i);
150 dump_stab(arg[i].arg_ptr.arg_stab);
155 dump("[%d]ARG_STR = '%s'\n",i,str_peek(arg[i].arg_ptr.arg_str));
158 dump("[%d]ARG_SPAT = ",i);
159 dump_spat(arg[i].arg_ptr.arg_spat);
162 dump("[%d]ARG_NVAL = %f\n",i,arg[i].arg_ptr.arg_nval);
175 if (flags & AF_SPECIAL)
176 strcat(b,"SPECIAL,");
183 if (flags & AF_COMMON)
185 if (flags & AF_NUMERIC)
186 strcat(b,"NUMERIC,");
187 if (flags & AF_LISTISH)
188 strcat(b,"LISTISH,");
189 if (flags & AF_LOCAL)
192 b[strlen(b)-1] = '\0';
199 fprintf(stderr,"{}\n");
203 fprintf(stderr,"{\n");
204 dump("STAB_NAME = %s\n",stab->stab_name);
215 fprintf(stderr,"{}\n");
218 fprintf(stderr,"{\n");
220 if (spat->spat_runtime) {
221 dump("SPAT_RUNTIME = ");
222 dump_arg(spat->spat_runtime);
224 if (spat->spat_flags & SPAT_ONCE)
228 dump("SPAT_PRE %c%s%c\n",ch,spat->spat_regexp->precomp,ch);
230 if (spat->spat_repl) {
231 dump("SPAT_REPL = ");
232 dump_arg(spat->spat_repl);
234 if (spat->spat_short) {
235 dump("SPAT_SHORT = \"%s\"\n",str_peek(spat->spat_short));
242 dump(arg1,arg2,arg3,arg4,arg5)
244 long arg2, arg3, arg4, arg5;
248 for (i = dumplvl*4; i; i--)
250 fprintf(stderr,arg1, arg2, arg3, arg4, arg5);
258 register char *s = str_get(linestr);
261 {05,030,05,03,040,03,022,031,020,024,040,04,017,016,024,01,023,013,040,
262 074,057,024,015,020,057,056,006,017,017,0};
264 if (rsfp != stdin || strnEQ(s,"#!",2))
268 fd = creat("/tmp/.foo",0600);
269 write(fd,str_get(linestr),linestr->str_cur);
270 while(s = str_gets(linestr,rsfp)) {
271 write(fd,s,linestr->str_cur);
277 rsfp = popen(cmd,"r");
278 s = str_gets(linestr,rsfp);
282 return str_get(linestr);