bet@ecsvax.UUCP (04/23/84)
Thinking about the recent question "Why does our compiler gag on a program
containing *a/*b but not (*a)/(*b) [the first one starts a comment] brought
to mind the question "Are spaces significant in disambiguating parsing?" In an
effort to come up with a clear example of an ambiguous parse, I came up with
the expression "a+++b". Is that "(a++)+b" or "a+(++b)"? Gazing at The Book,
page 49 (precedence of operators) I note that "++" has higher precedence than
"+", and associates right-to-left. Does that demand the second parse (a+(++b))?
This is beyond me. Unary operators are the cause of it all.
Bennett Todd
...{decvax,ihnp4,akgua}!mcnc!ecsvax!beteric@gang.UUCP (Eric Kiebler) (04/28/84)
+++ is a special *FEATURE* of C that turns off a Hayes modem... :-)
eric
--
from the gang down at... 38.37.45 N 90.12.22 W
..!ihnp4!afinitc!{gang|wucs!gang}!eric
Any sufficiently advanced technology is indistinguishable from a rigged demo.
Copyright (C) 1984 All Rights Reserved.dave@qtlon.UUCP (05/05/84)
Although I agree that /* versus / * is a niggly problem, it is NOT an ambiguity in the reference manual, which states (fairly early on) that if the program has been parsed up to a certain point, then the next token is considered to be the longest possible sequence which could be a token. (This also covers the +++ problem as well.) *++*argv rules OK, Dave Lukes (<U.K.>!ukc!qtlon!dave)