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