home *** CD-ROM | disk | FTP | other *** search
- Changes to flex 2.3.6 to improve life on VMS
- 11/17/90 - Stuart McGraw, GTE Labs (sjm0@gte.com)
-
- modified files:
- ---------------
- main.c
- -- If foo doesn't exist, "flex -vpb foo" trys to dereference a
- NULL pointer (causes access violation on VMS) because the error
- calls flexend() which tries to print statistics (-v flag) before
- the pointers it uses have been initialized. Fixed by setting a
- new variable 'initialized' just before flexinit() returns (after
- everything's been initialized) and suppressing the statistics
- report in flexend() if it isn't set.
-
- -- Use VMSCMDLN define to select original unix command line
- parsing or alternate VMS command line parsing (done by including
- vaxcmdln.c which contains the code). This also required moving
- a few snippets of code around to keep the unix-only and vms-only
- sections contiguous.
-
- -- The VMS conditional for the exit status value in flexend()
- was deleted since it better done by redefining exit() (done as
- a CC command line macro though it could also be done in flexdef.h.)
- This applies to all exits (error exits in scan.c and parse.c
- previously exited with VMS success status) and gets rid of the
- annoying NONAME-W-NOMESSAGE message from VMS when an error occurs
- in flex.
-
- -- VAXC generates a truly grotesque string for argv[0]. Added a
- few lines of code if flexinit() to turn it into something reasonable.
-
- -- Made the name of the backtracking info file parameterizable.
- This also lets flex print the actual name of the file out in error
- messages (it would always print "lex.backtrack" before, even when
- the name was lex.bck).
-
- new files:
- ----------
- makefile.vms
- Rewrote the previous makefile (Makefile.VMS). Changes include:
-
- -- Allows building and installing either the unix-style command
- line version of flex, or the VMS-style command line version.
-
- -- Use flex_exe, flex_library, and flex_manual for default names
- rather than tools$$exe, tools$$library, and tools$$manual since
- the latter violate DEC logical name recommendations ($ reserved
- for DEC).
-
- -- Compile everything with /def="exit(s)=_exit((s)?0x1000002A:0)".
- This will result in a VMS error status for all error exits
- (including those in the lexer and parser subroutines) with-
- out requiring any source code changes. It also gets rid of
- those annoying NONAME-W-NOMESSAGE messages that occurred before
- and changes the exit status from warning to error.
-
- -- Testing can be done using the local version of flex, or the
- publicly installed version for flex's built with either command
- line option.
-
- -- Reordered operations to make it easier to convert it to the
- dclmake.com file.
-
- dclmake.com
- -- A dcl procedure to do the compiling/linking/testing/installing
- done by makefile.vms for those without MAKE or MMS.
-
- vaxcmdln.c
- -- Contains code that is conditionally #included in flexinit()
- (main.c) to handle VMS command line parsing. In a separate file
- so as not to clutter up the main code with alot of vms dependent
- junk.
-
- cli.c
- -- A couple of general purpose support routines for VMS command
- line parsing and called from the code in vmscmdln.c. These are
- just C language interfaces to two VMS system calls.
-
- flex.cld_template
- -- Command definition file for the VMS command line interface
- sans the define verb and image lines. Used to generate the local
- and public flex.cld files.
-
- flex.hlp
- -- VMS help file edited from the version 2.3.6 version flex.man
- file for use with the VMS-style command line interface.
-
- changes.vms
- -- This file.
-
- install.vms
- -- Installation instructions for VMS.
-
- README.VMS
- -- A short pointer to the other files.
-