Lines Matching refs:str
30 static void addsemi ( STR *str );
31 static void emit_split ( STR *str, int level );
32 static void fixtab ( STR *str, int lvl );
34 static void tab ( STR *str, int lvl );
39 char *savestr(char *str);
53 register STR *str; in walk() local
91 str = walk(0,level,ops[node+1].ival,&numarg,P_MIN); in walk()
97 str_cat(str,"$[ = 1;\t\t\t# set array base to 1\n"); in walk()
106 str_cat(str,"$FS = '"); in walk()
108 str_cat(str,"\\"); in walk()
110 str_cat(str,tokenbuf); in walk()
111 str_cat(str,"';\t\t# field separator from -F switch\n"); in walk()
114 str_cat(str,"$FS = ' ';\t\t# set field separator\n"); in walk()
117 str_cat(str,"$, = ' ';\t\t# set output field separator\n"); in walk()
120 str_cat(str,"$\\ = \"\\n\";\t\t# set output record separator\n"); in walk()
123 str_cat(str,"$ARGV0 = $0;\t\t# remember what we ran as\n"); in walk()
125 if (str->str_cur > 20) in walk()
126 str_cat(str,"\n"); in walk()
128 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
130 str_cat(str,"\n\n"); in walk()
135 str_cat(str,"line: "); in walk()
136 str_cat(str,"while (<>) {\n"); in walk()
137 tab(str,++level); in walk()
141 str_cat(str,"chomp;\t# strip record separator\n"); in walk()
142 tab(str,level); in walk()
145 emit_split(str,level); in walk()
146 str_scat(str,fstr); in walk()
148 fixtab(str,--level); in walk()
149 str_cat(str,"}\n"); in walk()
151 str_cat(str,"continue {\n $FNRbase = $. if eof;\n}\n"); in walk()
154 str_cat(str,"while (<>) { } # (no line actions)\n"); in walk()
157 str_cat(str,"\n"); in walk()
158 tab(str,level); in walk()
159 str_scat(str,fstr=walk(0,level,ops[node+4].ival,&numarg,P_MIN)); in walk()
161 str_cat(str,"\n"); in walk()
164 str_cat(str,"exit $ExitValue;\n"); in walk()
166 str_cat(str,"\n"); in walk()
167 str_scat(str,subs); in walk()
173 str_cat(str, tokenbuf); in walk()
176 str_cat(str," &Pick('',@_);\n"); in walk()
178 str_cat(str," ($fh) = @_;\n"); in walk()
182 str_cat(str," $FNRbase = $. if eof;\n"); in walk()
185 str_cat(str," local($_);\n"); in walk()
187 str_cat(str, in walk()
190 str_cat(str, in walk()
192 str_cat(str, " {\n"); in walk()
194 tab(str,level); in walk()
198 str_cat(str,"chomp;\t# strip record separator\n"); in walk()
199 tab(str,level); in walk()
203 emit_split(str,level); in walk()
206 str_cat(str,";\n"); in walk()
207 fixtab(str,--level); in walk()
208 str_cat(str,"}\n $_;\n}\n"); in walk()
214 str_cat(str,"\n\ in walk()
224 str = walk(0,level,ops[node+1].ival,&numarg,P_MIN); in walk()
225 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
228 str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN)); in walk()
236 str = walk(1,level,ops[node+1].ival,&numarg,prec+1); in walk()
237 str_cat(str," .. "); in walk()
238 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
244 str = str_new(0); in walk()
245 str_set(str,"/"); in walk()
263 str_cat(str,tokenbuf); in walk()
265 str_cat(str,"/"); in walk()
269 str = str_new(0); in walk()
270 str = walk(0,level,oper1(OPRINT,0),&numarg,P_MIN); in walk()
271 str_cat(str," if "); in walk()
272 str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
274 str_cat(str,";"); in walk()
279 str = str_new(0); in walk()
280 str_set(str,"if ("); in walk()
281 str_scat(str,tmpstr); in walk()
282 str_cat(str,") {\n"); in walk()
283 tab(str,++level); in walk()
284 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
286 fixtab(str,--level); in walk()
287 str_cat(str,"}\n"); in walk()
288 tab(str,level); in walk()
291 str = walk(0,level,ops[node+2].ival,&numarg,P_MIN); in walk()
296 str = str_new(0); in walk()
297 str_set(str,"("); in walk()
298 str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
300 str_cat(str,")"); in walk()
304 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
305 str_cat(str," && "); in walk()
306 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
308 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
313 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
314 str_cat(str," || "); in walk()
315 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
317 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
322 str = str_new(0); in walk()
323 str_set(str,"!"); in walk()
324 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec)); in walk()
329 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
330 str_cat(str," ? "); in walk()
331 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
333 str_cat(str," : "); in walk()
334 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
338 str = str_new(0); in walk()
339 str_set(str,"("); in walk()
340 str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
343 str_cat(str,")"); in walk()
347 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
349 str_cat(str," && "); in walk()
350 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
352 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
357 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
359 str_cat(str," || "); in walk()
360 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
362 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
367 str = str_new(0); in walk()
368 str_set(str,"!"); in walk()
369 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec)); in walk()
375 str = walk(1,level,ops[node+2].ival,&numarg,prec+1); in walk()
401 str_cat(str," "); in walk()
403 str_cat(str,"\377"); in walk()
407 str_cat(str," "); in walk()
408 str_scat(str,tmpstr); in walk()
410 str_cat(str," "); in walk()
411 str_scat(str,tmp2str); in walk()
416 str = str_new(0); in walk()
417 str_set(str,"("); in walk()
418 str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
421 str_cat(str,")"); in walk()
425 str = walk(1,level,ops[node+2].ival,&numarg,prec+1); in walk()
426 str_cat(str," "); in walk()
429 str_cat(str,"=~"); in walk()
431 str_scat(str,tmpstr); in walk()
434 str_cat(str," "); in walk()
435 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
440 str = str_new(0); in walk()
441 str_set(str,"("); in walk()
442 str_scat(str, in walk()
446 str_cat(str,")"); in walk()
451 str = walk(1,level,ops[node+1].ival,&numarg,prec+(type != OCONCAT)); in walk()
452 str_cat(str," . "); in walk()
454 str_scat(str, in walk()
460 str = walk(0,level,ops[node+2].ival,&numarg,prec+1); in walk()
461 str_cat(str," "); in walk()
463 str_scat(str,tmpstr); in walk()
467 str_cat(str," "); in walk()
468 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec)); in walk()
471 if (strEQ(str->str_ptr,"$/ = ''")) in walk()
472 str_set(str, "$/ = \"\\n\\n\""); in walk()
476 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
477 str_cat(str," + "); in walk()
478 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
484 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
485 str_cat(str," - "); in walk()
486 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
492 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
493 str_cat(str," * "); in walk()
494 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
500 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
501 str_cat(str," / "); in walk()
502 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
508 str = walk(1,level,ops[node+1].ival,&numarg,prec+1); in walk()
509 str_cat(str," ** "); in walk()
510 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec)); in walk()
516 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
517 str_cat(str," % "); in walk()
518 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1)); in walk()
524 str = walk(1,level,ops[node+1].ival,&numarg,prec+1); in walk()
525 str_cat(str,"++"); in walk()
530 str = walk(1,level,ops[node+1].ival,&numarg,prec+1); in walk()
531 str_cat(str,"--"); in walk()
536 str = str_new(0); in walk()
537 str_set(str,"++"); in walk()
538 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec+1)); in walk()
544 str = str_new(0); in walk()
545 str_set(str,"--"); in walk()
546 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec+1)); in walk()
552 str = str_new(0); in walk()
553 str_set(str,"-"); in walk()
554 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec)); in walk()
562 str = str_new(0); in walk()
563 str_set(str,"("); in walk()
564 str_scat(str, in walk()
567 str_cat(str,")"); in walk()
571 str = str_new(0); in walk()
573 str_cat(str,"("); in walk()
575 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
577 str_cat(str,"$_"); in walk()
583 str_cat(str,"$_"); in walk()
642 str_cat(str,tokenbuf); in walk()
645 str_cat(str,",$getline_ok)"); in walk()
649 str = str_new(0); in walk()
650 str_set(str,"sprintf("); in walk()
651 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
653 str_cat(str,")"); in walk()
656 str = str_new(0); in walk()
657 str_set(str,"substr("); in walk()
658 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1)); in walk()
660 str_cat(str,", "); in walk()
661 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_COMMA+1)); in walk()
663 str_cat(str,", "); in walk()
665 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_COMMA+1)); in walk()
669 str_cat(str,"999999"); in walk()
670 str_cat(str,")"); in walk()
673 str = str_new(0); in walk()
674 str_set(str,ops[node+1].cval); in walk()
677 str = str_new(0); in walk()
682 str_set(str,"(@"); in walk()
684 str_set(str,"@"); in walk()
685 str_scat(str,tmpstr); in walk()
686 str_cat(str," = split("); in walk()
697 str_cat(str,tokenbuf); in walk()
700 str_scat(str,fstr); in walk()
705 str_cat(str,tokenbuf); in walk()
708 str_cat(str,"$FS"); in walk()
710 str_cat(str,"' '"); in walk()
713 str_cat(str,", "); in walk()
714 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1)); in walk()
716 str_cat(str,limit); in walk()
718 str_cat(str,")"); in walk()
723 str = str_new(0); in walk()
724 str_set(str,"index("); in walk()
725 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1)); in walk()
727 str_cat(str,", "); in walk()
728 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_COMMA+1)); in walk()
730 str_cat(str,")"); in walk()
734 str = str_new(0); in walk()
736 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MATCH+1)); in walk()
738 str_cat(str," =~ "); in walk()
739 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MATCH+1)); in walk()
741 str_cat(str," && ($RLENGTH = length($&), $RSTART = length($`)+1)"); in walk()
745 str = str_new(0); in walk()
771 str_set(str,"\n"); in walk()
772 tab(str,level); in walk()
773 str_cat(str,"sub "); in walk()
774 str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
775 str_cat(str," {\n"); in walk()
776 tab(str,++level); in walk()
778 str_cat(str,"local("); in walk()
779 str_scat(str,fstr); in walk()
780 str_cat(str,") = @_;"); in walk()
783 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_MIN)); in walk()
785 fixtab(str,level); in walk()
786 str_scat(str,fstr=walk(1,level,ops[node+4].ival,&numarg,P_MIN)); in walk()
788 fixtab(str,level); in walk()
789 str_scat(str,tmp2str); in walk()
791 fixtab(str,--level); in walk()
792 str_cat(str,"}\n"); in walk()
793 tab(str,level); in walk()
794 str_scat(subs,str); in walk()
795 str_set(str,""); in walk()
805 str = str_new(0); in walk()
807 str_cat(str,"return "); in walk()
808 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_UNI+1)); in walk()
814 str_cat(str,"return"); in walk()
817 str = str_new(0); in walk()
818 str_set(str,"&"); in walk()
819 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
821 str_cat(str,"("); in walk()
822 tmpstr = hfetch(symtab,str->str_ptr+3); in walk()
825 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
827 str_cat(str,")"); in walk()
832 str = str_new(0); in walk()
879 str_cat(str,"("); in walk()
880 str_scat(str,tmp3str); in walk()
881 str_scat(str,tmpstr); in walk()
882 str_scat(str,fstr); in walk()
883 str_scat(str,tmp2str); in walk()
887 str_cat(str,"("); in walk()
888 str_scat(str,tmp3str); in walk()
889 str_scat(str,tmpstr); in walk()
890 str_cat(str,"/"); in walk()
891 str_scat(str,fstr); in walk()
892 str_cat(str,"/"); in walk()
893 str_scat(str,tmp2str); in walk()
898 str_cat(str,"("); in walk()
899 str_cat(str,"$s = "); in walk()
900 str_scat(str,fstr); in walk()
901 str_cat(str,", "); in walk()
902 str_scat(str,tmp3str); in walk()
903 str_scat(str,tmpstr); in walk()
904 str_cat(str,"/$s/"); in walk()
905 str_scat(str,tmp2str); in walk()
908 str_cat(str,")"); in walk()
916 str = walk(1,level,ops[node+1].ival,&numarg,P_MIN); in walk()
938 str = str_new(0); in walk()
939 str_set(str,s); in walk()
940 str_cat(str,tokenbuf); in walk()
942 str_cat(str,s); in walk()
946 str = str_new(0); in walk()
947 str_set(str,"defined $"); in walk()
950 str = str_new(0); in walk()
951 str_set(str,"delete $"); in walk()
954 str = str_new(0); in walk()
955 str_set(str,"*"); in walk()
958 str = str_new(0); in walk()
959 str_set(str,"$"); in walk()
961 str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
966 if (strEQ(str->str_ptr,"$FNR")) { in walk()
969 str_set(str,"($.-$FNRbase)"); in walk()
971 else if (strEQ(str->str_ptr,"$NR")) { in walk()
973 str_set(str,"$."); in walk()
975 else if (strEQ(str->str_ptr,"$NF")) { in walk()
977 str_set(str,"$#Fld"); in walk()
979 else if (strEQ(str->str_ptr,"$0")) in walk()
980 str_set(str,"$_"); in walk()
981 else if (strEQ(str->str_ptr,"$ARGC")) in walk()
982 str_set(str,"($#ARGV+1)"); in walk()
989 str_cat(str,"\377"); /* can't translate yet */ in walk()
995 str_cat(str,"["); in walk()
997 str_cat(str,"{"); in walk()
998 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1000 if (strEQ(str->str_ptr,"$ARGV[0")) { in walk()
1001 str_set(str,"$ARGV0"); in walk()
1010 str_cat(str,tokenbuf); in walk()
1016 str = str_new(0); in walk()
1018 str_set(str,"$Fld"); in walk()
1019 str_cat(str,"["); in walk()
1020 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1022 str_cat(str,"]"); in walk()
1030 str_set(str,tokenbuf); in walk()
1034 str = str_new(0); in walk()
1035 str_set(str,"$Fld["); in walk()
1040 str_scat(str,tmpstr); in walk()
1042 str_cat(str,"]"); in walk()
1047 str = str_new(2); in walk()
1048 str_set(str,";\n"); in walk()
1049 tab(str,level); in walk()
1052 str = str_new(1); in walk()
1053 str_set(str,"\n"); in walk()
1054 tab(str,level); in walk()
1057 str = str_new(0); in walk()
1058 str_set(str,";"); in walk()
1062 str_scat(str,tmpstr); in walk()
1064 tab(str,level); in walk()
1067 str = str_new(0); in walk()
1071 str_scat(str,tmpstr); in walk()
1073 tab(str,level); in walk()
1077 str = walk(1,level,ops[node+1].ival,&numarg,prec); in walk()
1078 str_cat(str,", "); in walk()
1079 str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1081 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1)); in walk()
1085 str = str_new(1); in walk()
1086 str_set(str,";\n"); in walk()
1087 tab(str,level); in walk()
1090 str = walk(0,level,ops[node+1].ival,&numarg,P_MIN); in walk()
1091 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1095 str = str_new(0); in walk()
1097 str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1102 addsemi(str); in walk()
1103 str_cat(str,tmpstr->str_ptr+1); in walk()
1110 str = str_make("close("); in walk()
1130 str_set(str,"close "); in walk()
1131 str_cat(str,tokenbuf); in walk()
1137 str_set(str,tokenbuf); in walk()
1144 str = str_new(0); in walk()
1194 str_cat(str,tokenbuf); in walk()
1195 tab(str,level+1); in walk()
1205 str_cat(str,lparen); /* may be null */ in walk()
1207 str_cat(str,"printf"); in walk()
1209 str_cat(str,"print"); in walk()
1213 str_cat(str," "); in walk()
1216 str_cat(str,tokenbuf); in walk()
1241 str_cat(str," "); in walk()
1243 str_cat(str,"("); in walk()
1244 str_scat(str,tmpstr); in walk()
1245 str_cat(str,")"); in walk()
1248 str_scat(str,tmpstr); in walk()
1251 str_cat(str," $_"); in walk()
1253 str_cat(str,rparen); /* may be null */ in walk()
1257 str = str_make("rand(1)"); in walk()
1260 str = str_make("srand("); in walk()
1263 str = str_make("atan2("); in walk()
1266 str = str_make("sin("); in walk()
1269 str = str_make("cos("); in walk()
1272 str = str_make("system("); in walk()
1275 str = str_make("length("); in walk()
1278 str = str_make("log("); in walk()
1281 str = str_make("exp("); in walk()
1284 str = str_make("sqrt("); in walk()
1287 str = str_make("int("); in walk()
1323 str = str_make("(length("); in walk()
1327 str_scat(str,tmpstr); in walk()
1329 str_cat(str,")"); in walk()
1332 str = str_new(0); in walk()
1333 str_set(str,"last"); in walk()
1336 str = str_new(0); in walk()
1337 str_set(str,"next line"); in walk()
1340 str = str_new(0); in walk()
1343 str_set(str,"exit"); in walk()
1345 str_cat(str," "); in walk()
1347 str_scat(str, in walk()
1354 str_set(str,"$ExitValue = "); in walk()
1356 str_scat(str, in walk()
1359 str_cat(str,"; "); in walk()
1361 str_cat(str,"last line"); in walk()
1365 str = str_new(0); in walk()
1366 str_set(str,"next"); in walk()
1371 str = str_new(0); in walk()
1372 str_set(str,"if ("); in walk()
1373 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1375 str_cat(str,") "); in walk()
1376 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1392 str_cat(str,"els"); in walk()
1393 str_scat(str,fstr=walk(0,level,i,&numarg,P_MIN)); in walk()
1397 str_cat(str,"else "); in walk()
1398 str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN)); in walk()
1404 str = str_new(0); in walk()
1405 str_set(str,"while ("); in walk()
1406 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1408 str_cat(str,") "); in walk()
1409 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1413 str = str_new(0); in walk()
1414 str_set(str,"do "); in walk()
1415 str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1417 if (str->str_ptr[str->str_cur - 1] == '\n') in walk()
1418 --str->str_cur; in walk()
1419 str_cat(str," while ("); in walk()
1420 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1422 str_cat(str,");"); in walk()
1425 str = str_new(0); in walk()
1426 str_set(str,"for ("); in walk()
1427 str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1437 str_cat(str,"; "); in walk()
1443 str_scat(str,fstr); in walk()
1446 str_cat(str,"; "); in walk()
1447 str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_MIN)); in walk()
1449 str_cat(str,") "); in walk()
1450 str_scat(str,fstr=walk(0,level,ops[node+4].ival,&numarg,P_MIN)); in walk()
1471 str = str_new(0); in walk()
1472 str_set(str,d+1); in walk()
1473 str_cat(str,"[]"); in walk()
1474 tmp2str = hfetch(symtab,str->str_ptr); in walk()
1487 str_set(str,tokenbuf); in walk()
1488 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1493 str = str_new(0); in walk()
1494 str_set(str,"{"); in walk()
1496 str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN)); in walk()
1499 fixtab(str,++level); in walk()
1500 str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN)); in walk()
1502 addsemi(str); in walk()
1503 fixtab(str,--level); in walk()
1504 str_cat(str,"}\n"); in walk()
1505 tab(str,level); in walk()
1507 str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN)); in walk()
1516 str = walk(0,level,ops[node+1].ival,&numarg,P_MIN); in walk()
1518 str_scat(str,fstr=walk(0,level,ops[node+i].ival,&numarg,P_MIN)); in walk()
1523 str = Nullstr; in walk()
1527 if (!str) in walk()
1528 str = str_new(0); in walk()
1531 fstr = str_new(str->str_cur+2); in walk()
1533 str_scat(fstr,str); in walk()
1535 str_free(str); in walk()
1536 str = fstr; in walk()
1542 printf("%3d %5d %15s %d %4d ",level,node,opname[type],len,str->str_cur); in walk()
1543 for (t = str->str_ptr; *t && t - str->str_ptr < 40; t++) in walk()
1553 return str; in walk()
1557 tab(register STR *str, register int lvl) in tab() argument
1560 str_cat(str,"\t"); in tab()
1564 str_cat(str," "); in tab()
1568 fixtab(register STR *str, register int lvl) in fixtab() argument
1574 s = str->str_ptr+str->str_cur - 1; in fixtab()
1575 while (s >= str->str_ptr && (*s == ' ' || *s == '\t' || *s == '\n')) in fixtab()
1578 str->str_cur = s + 1 - str->str_ptr; in fixtab()
1579 if (s >= str->str_ptr && *s != '\n') in fixtab()
1580 str_cat(str,"\n"); in fixtab()
1582 tab(str,lvl); in fixtab()
1586 addsemi(register STR *str) in addsemi() argument
1590 s = str->str_ptr+str->str_cur - 1; in addsemi()
1591 while (s >= str->str_ptr && (*s == ' ' || *s == '\t' || *s == '\n')) in addsemi()
1593 if (s >= str->str_ptr && *s != ';' && *s != '}') in addsemi()
1594 str_cat(str,";"); in addsemi()
1598 emit_split(register STR *str, int level) in emit_split() argument
1603 str_cat(str,"@Fld"); in emit_split()
1605 str_cat(str,"("); in emit_split()
1611 str_cat(str,tokenbuf); in emit_split()
1617 str_cat(str,tokenbuf); in emit_split()
1621 str_cat(str,tokenbuf); in emit_split()
1624 str_cat(str," = split($FS, $_, 9999);\n"); in emit_split()
1626 str_cat(str," = split(' ', $_, 9999);\n"); in emit_split()
1627 tab(str,level); in emit_split()