[net.unix-wizards] Calling all make

dce@hammer.UUCP (David Elliott) (01/29/84)

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