Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 (Tek) 9/26/83; site hammer.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!alberta!ubc-vision!uw-beaver!tektronix!orca!hammer!dce
From: dce@hammer.UUCP (David Elliott)
Newsgroups: net.unix-wizards
Subject: Calling all make(1) gurus
Message-ID: <473@hammer.UUCP>
Date: Sat, 28-Jan-84 23:49:44 EST
Article-I.D.: hammer.473
Posted: Sat Jan 28 23:49:44 1984
Date-Received: Tue, 7-Feb-84 08:02:14 EST
Organization: Tektronix, Wilsonville OR
Lines: 20

While looking around in the code for make (Vax 4.2BSD),
I noticed some strange things about the lexical analyzer.

The characters :, ;, space, tab, and newline are all considered
characters that delimit file names in the dependency line. I understand
this, but in addition, the characters >, &, and | are also considered
word terminators.

Does anyone have any idea why these three characters are considered as
terminators? If I put them in a dependency line, I get syntax errors.
The lexical analyzer is the only piece of code that looks at terminal
characters, and it seems to ignore & and |. It does process >, but
the parser doesn't know what it means and gives a syntax error.

Is this historical? Was there a time when those three characters were
not allowed in file names. Were there features of make which used
these three characters as special control characters? Any ideas?

			David Elliott
			tektronix!tekecs!dce