flex
John Campbell
jdc at naucse.UUCP
Wed May 11 06:21:17 AEST 1988
Well I just finished making flex (Fast lex from Vern Paxson) work on
VMS. The reason for this posting is to raise a 'C' question and to
let people know flex will run on VMS.
The 'C' question:
Flex has the following global line:
FILE *yyin=stdin, *yyout=stdout;
which does not work at compile time on VMS. In other words, it appears
the compiler does not treat stdin as a constant--it's value is known only
at run-time. (VMS stdio.h says "extern noshare FILE *stdin;.) To work
around this I had to concote a fake main():
FILE *yyin, *yyout;
main()
{
yyin = stdin; yyout = stdout;
Question: Is my compiler deficient? Is the initialization done in flex
suppose to work in ANSI C?
Flex on VMS:
For those interested, the following changes were done to make flex work on
VMS: 1) 2 macro names > 31 characters where changed, 2) some file names were
corrected to fit the VMS file system, 3) the yyin problem mentioned above
was worked around, 4) bzero was defined as OTS$MOVEC5, and 5) unlink() was
replaced with delete().
If there is enough interest I can post a SEARCH for VMS (300 lines)
indicating how the original was changed. I'm afraid my port is only a
start toward folding VMS support back into the original. Anyone wanting
to improve on my effort is more than welcome, but I fear the unix community
may be less than sympathetic to those of us stuck on VMS :-).
MUCH THANKS TO VERN PAXSON, KEVIN GONG, VAN JACOBSON, ET.AL.!!!!!!
--
John Campbell ...!arizona!naucse!jdc
unix? Sure send me a dozen, all different colors.
More information about the Comp.lang.c
mailing list