char id_dofio[] = "@(#)dofio.c 1.2";
* fortran format executer
#define DO(x) if(n=x) err(n>0?errflag:endflag,n,dfio)
int cnt
[STKSZ
],ret
[STKSZ
],cp
,rp
;
return(do_fio(&one
,NULL
,0l));
do_fio(number
,ptr
,len
) ftnint
*number
; ftnlen len
; char *ptr
;
switch(type_f((p
= &syl
[pc
])->op
))
case STACK
: /* repeat count */
if(++cp
==STKSZ
) err(errflag
,F_ERFMT
,"too many nested ()")
case RET
: /* open paren */
if(++rp
==STKSZ
) err(errflag
,F_ERFMT
,"too many nested ()")
case GOTO
: /* close paren */
case REVERT
: /* end of format */
case DOLAR
: /*** NOT STANDARD FORTRAN ***/
{ DO((*doend
)((char)p
->p1
))
case SU
: /*** NOT STANDARD FORTRAN ***/
case R
: /*** NOT STANDARD FORTRAN ***/
err(errflag
,F_ERFMT
,"impossible code")
fprintf(stderr
," pc=%d, cnt[%d]=%d, ret[%d]=%d, op=%d\n",
pc
,cp
,cnt
[cp
],rp
,ret
[rp
],n
); /*for debug*/
case X
: /* non-editing specifications */
case T
: case TL
: case TR
:
case F
: /* editing conversions */
case E
: case EE
: case D
: case DE
: