Home | History | Annotate | Download | only in src

Lines Matching refs:shf

30 static void ptree(struct op *, int, struct shf *);
31 static void pioact(struct shf *, struct ioword *);
32 static const char *wdvarput(struct shf *, const char *, int, int);
33 static void vfptreef(struct shf *, int, const char *, va_list);
46 ptree(struct op *t, int indent, struct shf *shf)
77 fptreef(shf, indent, Tf_S, t->vars[0]);
84 fptreef(shf, indent, Tf_S_, *w++);
86 shf_puts("#no-vars# ", shf);
93 shf_putc('\\', shf);
94 shf_puts(cp, shf);
95 shf_putc(' ', shf);
99 fptreef(shf, indent, Tf_S_, *w++);
101 shf_puts("#no-args# ", shf);
107 fptreef(shf, indent + 2, "( %T) ", t->left);
110 fptreef(shf, indent, "%T| ", t->left);
114 fptreef(shf, indent, "%T%;", t->left);
119 fptreef(shf, indent, "%T%s %T",
123 shf_puts("! ", shf);
129 shf_puts("[[", shf);
131 fptreef(shf, indent, Tf__S, *w++);
132 shf_puts(" ]] ", shf);
136 fptreef(shf, indent, "%s %s ",
139 shf_puts("in ", shf);
142 fptreef(shf, indent, Tf_S_, *w++);
143 fptreef(shf, indent, Tft_end);
145 fptreef(shf, indent + INDENT, "do%N%T", t->left);
146 fptreef(shf, indent, "%;done ");
149 fptreef(shf, indent, "case %S in", t->str);
151 fptreef(shf, indent, "%N(");
154 fptreef(shf, indent, "%S%c", *w,
158 fptreef(shf, indent + INDENT, "%N%T%N;%c", t1->left,
161 fptreef(shf, indent, "%Nesac ");
173 fptreef(shf, indent, Tft_end);
176 fptreef(shf, indent + 5 - i, Telif_pT + i, t1->left);
179 fptreef(shf, indent, Tft_end);
180 fptreef(shf, indent + INDENT, "%s%N%T",
185 fptreef(shf, indent, Tft_end);
186 fptreef(shf, indent + INDENT, "%s%N%T",
189 fptreef(shf, indent, "%;fi ");
194 fptreef(shf, indent + 6, Tf_s_T,
197 fptreef(shf, indent, Tft_end);
198 fptreef(shf, indent + INDENT, "do%N%T", t->right);
199 fptreef(shf, indent, "%;done ");
202 fptreef(shf, indent + INDENT, "{%N%T", t->left);
203 fptreef(shf, indent, "%;} ");
206 fptreef(shf, indent, "%T|& ", t->left);
210 fptreef(shf, indent, "%T& ", t->left);
214 fpFUNCTf(shf, indent, tobool(t->u.ksh_func), t->str, t->left);
217 fptreef(shf, indent, Tf_s_T, Ttime, t->left);
220 shf_puts("<botch>", shf);
228 pioact(shf, *ioact++);
237 shf_putc('\n', shf);
238 shf_puts(iop->heredoc, shf);
239 fptreef(shf, indent, Tf_s,
250 shf_putc('\n', shf);
257 pioact(struct shf *shf, struct ioword *iop)
268 shf_fprintf(shf, Tf_d, (int)iop->unit);
272 shf_putc('<', shf);
275 shf_puts("<<", shf);
277 shf_putc('-', shf);
279 shf_putc('<', shf);
282 shf_puts(">>", shf);
285 shf_putc('>', shf);
287 shf_putc('|', shf);
290 shf_puts("<>", shf);
293 shf_puts(flag & IORDUP ? "<&" : ">&", shf);
299 wdvarput(shf, iop->delim, 0, WDS_TPUTS);
302 print_value_quoted(shf, iop->ioname);
304 wdvarput(shf, iop->ioname, 0, WDS_TPUTS);
306 shf_putc(' ', shf);
312 wdvarput(struct shf *shf, const char *wp, int quotelevel, int opmode)
339 shf_putc(c, shf);
348 shf_putc(c, shf);
349 shf_putc(ORD('\n'), shf);
359 shf_putc(ORD('\\'), shf);
362 shf_putc(c, shf);
366 shf_puts("$(", shf);
369 shf_putc(' ', shf);
372 shf_putc(c, shf);
373 shf_puts(cs, shf);
382 shf_putc('$', shf);
383 shf_putc('{', shf);
384 shf_putc(c, shf);
388 shf_puts("$((", shf);
394 shf_putc('"', shf);
401 shf_putc('"', shf);
405 shf_putc('$', shf);
407 shf_putc('{', shf);
409 shf_putc(c, shf);
410 wp = wdvarput(shf, wp, 0, opmode);
415 shf_putc('}', shf);
419 shf_putchar(*wp++, shf);
420 shf_putc('(', shf);
428 shf_putc(c, shf);
439 fptreef(struct shf *shf, int indent, const char *fmt, ...)
444 vfptreef(shf, indent, fmt, va);
453 struct shf shf;
455 shf_sopen(s, n, SHF_WR | (s ? 0 : SHF_DYNAMIC), &shf);
458 vfptreef(&shf, 0, fmt, va);
462 return (shf_sclose(&shf));
466 vfptreef(struct shf *shf, int indent, const char *fmt, va_list va)
475 shf_putchar(va_arg(va, int), shf);
479 shf_puts(va_arg(va, char *), shf);
483 wdvarput(shf, va_arg(va, char *), 0, WDS_TPUTS);
487 shf_fprintf(shf, Tf_d, va_arg(va, int));
491 shf_fprintf(shf, "%u", va_arg(va, unsigned int));
495 ptree(va_arg(va, struct op *), indent, shf);
501 if (shf->flags & SHF_STRING) {
504 shf_putc(';', shf);
505 shf_putc(' ', shf);
509 shf_putc('\n', shf);
512 shf_putc('\t', shf);
516 shf_putc(' ', shf);
521 pioact(shf, va_arg(va, struct ioword *));
524 shf_putc(c, shf);
528 shf_putc(c, shf);
673 struct shf shf;
675 shf_sopen(NULL, 32, SHF_WR | SHF_DYNAMIC, &shf);
676 wdvarput(&shf, wp, 0, opmode);
678 return (shf_sclose(&shf));
766 fpFUNCTf(struct shf *shf, int i, bool isksh, const char *k, struct op *v)
769 fptreef(shf, i, "%s %s %T", Tfunction, k, v);
771 fptreef(shf, i, "%s %s() %T", Tfunction, k, v);
773 fptreef(shf, i, "%s() %T", k, v);
824 dumpchar(struct shf *shf, int c)
828 shf_putc('^', shf);
831 shf_putc(c, shf);
836 dumpwdvar_i(struct shf *shf, const char *wp, int quotelevel)
843 shf_puts("EOS", shf);
847 shf_puts(/*{*/ "]ADELIM(})", shf);
850 shf_puts("ADELIM=", shf);
854 shf_puts("CHAR=", shf);
855 dumpchar(shf, *wp++);
858 shf_puts("QCHAR<", shf);
862 shf_putc('\\', shf);
863 dumpchar(shf, c);
866 shf_puts("COMASUB<", shf);
869 shf_puts("COMSUB<", shf);
872 dumpchar(shf, c);
874 shf_putc('>', shf);
877 shf_puts("FUNASUB<", shf);
880 shf_puts("FUNSUB<", shf);
883 shf_puts("VALSUB<", shf);
886 shf_puts("EXPRSUB<", shf);
889 shf_fprintf(shf, "OQUOTE{%d" /*}*/, ++quotelevel);
892 shf_fprintf(shf, /*{*/ "%d}CQUOTE", quotelevel);
896 shf_puts("(err)", shf);
899 shf_puts("OSUBST(", shf);
900 dumpchar(shf, *wp++);
901 shf_puts(")[", shf);
903 dumpchar(shf, c);
904 shf_putc('|', shf);
905 wp = dumpwdvar_i(shf, wp, 0);
908 shf_puts("]CSUBST(", shf);
909 dumpchar(shf, *wp++);
910 shf_putc(')', shf);
913 shf_puts("OPAT=", shf);
914 dumpchar(shf, *wp++);
917 shf_puts("SPAT", shf);
920 shf_puts("CPAT", shf);
923 shf_fprintf(shf, "INVAL<%u>", (uint8_t)wp[-1]);
926 shf_putc(' ', shf);
930 dumpwdvar(struct shf *shf, const char *wp)
932 dumpwdvar_i(shf, wp, 0);
936 dumpioact(struct shf *shf, struct op *t)
943 shf_puts("{IOACT", shf);
946 #define DT(x) case x: shf_puts(#x, shf); break;
947 #define DB(x) if (iop->ioflag & x) shf_puts("|" #x, shf);
949 shf_putc(';', shf);
958 shf_fprintf(shf, "unk%d", type);
968 shf_fprintf(shf, ",unit=%d", (int)iop->unit);
970 shf_puts(",delim<", shf);
971 dumpwdvar(shf, iop->delim);
972 shf_putc('>', shf);
976 shf_puts(",name=", shf);
977 print_value_quoted(shf, iop->ioname);
979 shf_puts(",name<", shf);
980 dumpwdvar(shf, iop->ioname);
981 shf_putc('>', shf);
985 shf_puts(",heredoc=", shf);
986 print_value_quoted(shf, iop->heredoc);
991 shf_putc('}', shf);
995 dumptree(struct shf *shf, struct op *t)
1003 shf_putc('\t', shf);
1005 shf_puts("{tree:" /*}*/, shf);
1010 dumpioact(shf, t);
1012 #define OPEN(x) case x: name = #x; shf_puts(" {" #x ":", shf); /*}*/
1019 shf_putc('\n', shf);
1021 shf_putc('\t', shf);
1022 shf_fprintf(shf, " var%d<", i++);
1023 dumpwdvar(shf, *w++);
1024 shf_putc('>', shf);
1027 shf_puts(" #no-vars#", shf);
1032 shf_putc('\n', shf);
1034 shf_putc('\t', shf);
1035 shf_fprintf(shf, " arg%d<", i++);
1036 dumpwdvar(shf, *w++);
1037 shf_putc('>', shf);
1040 shf_puts(" #no-args#", shf);
1046 shf_putc('\n', shf);
1047 dumptree(shf, t);
1053 shf_putc('\n', shf);
1054 dumptree(shf, t->left);
1056 shf_fprintf(shf, "/%s:", name);
1072 shf_putc('\n', shf);
1074 shf_putc('\t', shf);
1075 shf_fprintf(shf, " arg%d<", i++);
1076 dumpwdvar(shf, *w++);
1077 shf_putc('>', shf);
1082 shf_fprintf(shf, " str<%s>", t->str);
1087 shf_putc('\n', shf);
1089 shf_putc('\t', shf);
1090 shf_fprintf(shf, " var%d<", i++);
1091 dumpwdvar(shf, *w++);
1092 shf_putc('>', shf);
1099 shf_fprintf(shf, " str<%s>", t->str);
1102 shf_putc('\n', shf);
1104 shf_putc('\t', shf);
1105 shf_fprintf(shf, " sub%d[(", i);
1108 dumpwdvar(shf, *w);
1110 shf_putc('|', shf);
1113 shf_putc(')', shf);
1114 dumpioact(shf, t);
1115 shf_putc('\n', shf);
1116 dumptree(shf, t1->left);
1117 shf_fprintf(shf, " ;%c/%d]", t1->u.charflag, i++);
1131 shf_fprintf(shf, " str<%s> ksh<%s>", t->str,
1138 shf_putc('\n', shf);
1139 dumptree(shf, t->left);
1141 dumpioact(shf, t);
1143 shf_puts(" /TTHEN:\n", shf);
1144 dumptree(shf, t->left);
1147 shf_puts(" /TELIF:", shf);
1149 dumpioact(shf, t);
1153 shf_puts(" /TELSE:\n", shf);
1154 dumptree(shf, t->right);
1159 shf_puts(Tunexpected, shf);
1167 shf_fprintf(shf, "{T<%d>:" /*}*/, t->type);
1173 shf_fprintf(shf, /*{*/ " /%s}\n", name);