From: Vern Paxson Date: Sun, 10 Apr 1988 20:55:02 +0000 (+0000) Subject: Initial revision X-Git-Tag: flex-2-5-5b~645 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d7919e2ef2d42a140092c1d95b2de9394a75e90c;p=flex Initial revision --- diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..74288e2 --- /dev/null +++ b/NEWS @@ -0,0 +1,17 @@ +Changes between beta-test release of Feb. '88 and initial release: + + - many files renamed to remove "flex" suffix + - input() routine added to compressed and fast skeletons + - unput() routine added to compressed skeleton + - -d, -ce support for fast scanners + - symbol table extended to avoid ugly casts of ints <-> char *'s; + this may relieve MS-DOS woes + - actions are now separated with YY_BREAK instead of simple "break"'s + - fixed bug causing core-dumps if skeleton file could not be opened + - fixed bugs in logic deciding which options cannot be intermixed + - initial start condition can now be referred to as "INITIAL" + - fixed bug which would incorrectly computer trailing context + count for a pattern like "(foo){3}"; now this is considered + "variable length", even though it isn't. + - block comments allowed between rules + - misc. typos corrected diff --git a/README b/README new file mode 100644 index 0000000..9354207 --- /dev/null +++ b/README @@ -0,0 +1,126 @@ +This is the initial release of flex, a replacement for the lex(1) +tool. As the copyright indicates, this distribution can be freely +redistributed. + +Some notes on the distribution: + + Yes, there are some niggling lex features which are not available which + seem like they'd be easy to add. They're not, or if they are then the + straight-forward implementation of them would slow down the scanner. + Unfortunately I am unable to do any further work on flex other than bug + fixes, so if there's something you've just gotta have, you'd better + be willing to dive into the code. I'll be happy to give (fairly + high-level) advice on how to proceed. + + The compressed tables have been tested pretty thoroughly in the past, + though may be suffering from bit-rot. The fast/full tables have been + recently implemented and are more likely to have bugs. + + For a System V machine, add the #define "SV". Not guaranteed to do + the full job, but a step in the right direction. + + Flex has been successfully ported to Sun Unix and 4.3BSD Vax Unix. + + +The flex distribution consists of the following files: + + README This message + + Makefile + flexdef.h + parse.y + scan.l + ccl.c + dfa.c flex sources + ecs.c + main.c + misc.c + nfa.c + scan.c + sym.c + tblcmp.c + yylex.c + + flex.skel + flex.fastskel + flexskelcom.h skeleton scanner sources + flexskeldef.h + fastskeldef.h + + flex.1 manual entry + + Timings a brief note comparing timings of flex vs. lex + +The files are packaged as three compressed shell archives, ~90Kb in size +total. Create a directory where you want flex to live, cd there, and use + + uncompress flexdist.1.Z + uncompress flexdist.2.Z + uncompress flexdist.3.Z + sh flexdist.1 + sh flexdist.2 + sh flexdist.3 + +to extract them. + +Either move {flexskelcom.h,flexskeldef.h,fastskeldef.h} into /usr/include +or edit {flex.skel,flex.fastskel,flexskeldef.h,fastskeldef.h,scan.c} +and wire in the full pathname of where you are going to keep the include files. + +Decide where you want to keep {flex.skel,flex.fastskel} (suggestion: +/usr/local/lib) and move it there. Edit "Makefile" and change the +definitions of SKELETON_FILE and F_SKELETON_FILE to reflect the full +pathnames of {flex.skel,flex.fastskel}. + +To make flex for the first time, use: + + make first_flex + +which uses a pre-generated copy of the scanner whose source is in flex. +For subsequent makes, just use: + + make + +Assuming it builds successfully, you can test it using + + make test + +The "diff" should not show any differences. + +If you're feeling adventurous, rebuild scan.c using various +combinations of FLEX_FLAGS, each time trying "make test" when +you're done. To rebuild it, do + + rm scan.c + make FLEX_FLAGS="..." + +where "..." is one of: + + -ist -c + -ist -ce + -ist -cm + -istf + -istF + +and testing using: + + make FLEX_FLAGS="..." test + + +Format the manual entry using + + nroff -man flex.1 + + +Please send problems and feedback to: + + vern@lbl-{csam,rtsg}.arpa or ucbvax!lbl-csam.arpa!vern + + Vern Paxson + Real Time Systems Group + Bldg. 46A + Lawrence Berkeley Laboratory + 1 Cyclotron Rd. + Berkeley, CA 94720 + + (415) 486-6411