char *verb
[] = { " ", " ", "continue", "call ", "do ", "if ", "if ",
"goto ", "return", "read ", "write ", "format ", "stop ",
"data ", "equivalence ", "common ", "external ",
"rewind", "backspace", "endfile",
"subroutine ", "function ", "program", "blockdata", "end", CNULL
};
if(comments
) putcomment();
fprintf(diagfile
, " Pass 2\n");
fprintf(diagfile
, " Pass 2 done\n");
fatal1("no name for n=%d", n
);
fatal1("datas: invalid intermediate tag %d", c
);
struct fileblock
**fileadd
;
else if(!prevc
) p2stmt(0);
fatal1("no name for n=%d", n
);
p2int( stnos
[ indifs
[ifn
] ] );
indent
= n
* INDENTSPACES
;
sprintf(msg
, "Bad pass2 value %o,%o", c
,n
);
if(c
!=ICBEGIN
&& c
!=ICINDENT
)
putic(ICNAME
, p
->vextbase
);
for(i
=0 ; i
<NFTNTYPES
; ++i
)
putic(ICNAME
, p
->vbase
[i
]);
if(strlen(p
->sthead
->namep
) <= XL
)
fatal1("no fortran slot for name %s", p
->sthead
->namep
);
else /* change character constant to a variable */
sprintf(buff
, "(%s,%s)", p
->leftp
, p
->rightp
);
for(p
= comments
; p
; p
= p
->nextp
)
putsii(ICCOMMENT
, p
->datap
);
while( (i
= getic(&n
))!=k
&& i
!=ICEOF
)
if(i
==ICCOMMENT
|| i
==ICCONST
)
p2int(n
) /* put an integer constant in the output */
p2key(n
) /* print a keyword */
p2str(s
) /* write a character string on the output */
if(nftnch
==LINESPACES
-1 && (n
==1 || (n
==2 && s
[1]==' ')) )
if( n
<=LINESPACES
&& nftnch
+n
>LINESPACES
-1 )
p2line( min(LINESPACES
-n
, indent
+INDENTSPACES
) );
p2stmt(n
) /* start a statement with label n */
fprintf(codefile
,"\n%4d ", n
);
else fprintf(codefile
,"\n ");
p2com(n
) /* copy a comment */
if(q
[0] == '%') /* a literal escape line */
else /* actually a comment line */
putc( tailor
.ftnsys
==CRAY
? 'C' : 'c' , codefile
);
if(nftnch
>= LINESPACES
) /* end of line */
if(tailor
.ftnsys
== CRAY
)
putc( islower(c
) ? toupper(c
) : c
, codefile
);
execerr("too many continuation lines", CNULL
);
if(tailor
.ftncontnu
== 1)
fprintf(codefile
, "\n&");
else { /* standard column-6 continuation */
contchar
= "0123456789ABCDEFGHIJ" [nftncont
];
fprintf(codefile
, "\n %c", contchar
);