Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!WATCSG.BITNET!GIGUERE From: GIGUERE@WATCSG.BITNET (Eric Giguere) Newsgroups: comp.sys.amiga Subject: Manx 3.6a Bugs Message-ID: <8903052320.AA03483@jade.berkeley.edu> Date: 5 Mar 89 23:20:59 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 39 X-Unparsable-Date: Sun, 5 Mar 1989 17:51 LCL So here I am, running a simple grammar through Bison and then compiling the output file.... but there's a little problem with #define: #ifndef __STDC__ #define const #endif The code is perfectly valid C... but Manx doesn't let you define keywords as macros (const is a keyword in 3.6a even though it's not implemented). After getting the error message I looked in the manual and yep, that's what it says. Arrgh! Who was the idiot who put this into the compiler? Deleting the above lines doesn't solve anything because 'const' leads to problems later on. I hope this is fixed in 4.0 --- a warning message I can see, but an error message no way! Well, enough of a tirade. It's easy enough to use a text editor to delete all references to 'const', but I'm going to modify the Bison source to fix this permanently. Maybe what we need is #ifdef __STDC__ #define CONST const #else #define CONST #endif which is ugly but would preserve 'const' for those compilers that support it. Speaking of bugs, 3.6a seems to have problems with #line directives when compiling with the '-n' (debugger) flag -- the assembler croaks. I await 4.0 anxiously.... Eric Giguere Computer Systems Group, University of Waterloo BITNET: GIGUERE@WATCSG Other: giguere@watcsg.UWaterloo.CA UUNET : watcsg!giguere@uunet.UU.NET