Subject: Yacc, Lex, libs
To: Dirk Steinberg <steinber@vercingetorix.ert.rwth-aachen.de>
From: J.T. Conklin <conklin@ngai.kaleida.com>
List: current-users
Date: 02/04/1994 11:31:54
Dirk> why is /usr/lib/liby.a (the Yacc lib) buit along with the other libs
Dirk> in /usr/src/lib, but /usr/lib/libl.a (the Lex lib) not?

I beleive it was done so that the flex library source was kept with
the rest of the flex source.  Since flex is independantly maintained,
I think that it is important that the source for flex and the flex
library be "in the same place" so that one is not inadvertantly
updated without the other.

Since one of the easiest ways to upgrade source is to use CVS's import
feature, I've created a ~/lib/libl whose Makefile pulls (through the
.PATH mechanism) the library source out of ~/usr.bin/lex.  This will
allow us to import future flex versions easily, but still have the lex
library built in the "correct" place.

Dirk> BTW: Why is Flex used and not Blex (Berkeley lex)? This is BSD, right?
Dirk> I remember several times when I had trouble porting programs because
Dirk> flex wasn't really comatible with (SunOS) lex. GnuChess/XBoard was one
Dirk> of them, I think, but that was some time ago.

I don't know anything about blex.  An archie search showed it on a lot
of linux archive sites, but I haven't ftp'd a copy yet.

We use flex because it:
	1. is freely redistributable.
	2. is actively maintained
	3. is POSIX.2 compliant
	4. is eight bit clean
	5. generates fast scanners

Besides, I think that 4.4BSD uses flex.  

	--jtc

------------------------------------------------------------------------------