#define printit(n) printf(printname[n-FIRSTTOKEN]);
extern char *printname
[];
for(x
=a
;x
!=NULL
;x
=x
->nnext
)
if(x
==b
) printf(" *** ");
printf("%s",x
->nobj
->nval
);
if(x
->nobj
->nval
==0) printf("$%d",x
->nobj
- fldtab
);
else if(x
->ntype
==PASTAT2
)
case LE
: case LT
: case EQ
:
case NE
: case GT
: case GE
:
case MATCH
: case NOTMATCH
:
case ADD
: case MINUS
: case MULT
:
case DIVIDE
: case MOD
: case ASGNOP
:
case BOR
: case AND
: case CAT
:
if(x
->nobj
!=MATCH
&& x
->nobj
!=NOTMATCH
)
case UMINUS
: case FNCN
: case INCR
:
case DECR
: case INDIRECT
:
case PRINT
: case PRINTF
: case SPRINTF
:
if(x
->nobj
==SPLIT
|| x
->nobj
==SPRINTF
) break;
printit((int)x
->narg
[1]);
if(x
->narg
[2]==NULL
) break;
case NEXT
: case EXIT
: case BREAK
: case CONTINUE
:
if(x
->ntype
== NSTAT
) putchar('\n');
pa2dump(a
, b
) node
*a
, *b
;