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