I6: strange compiler bug

Trying to get WaterElement to work, I ran into this

Expected new constant name but found NULL

right after the System_file statement at the top of the modified parserm file.

What does it mean? I’m using Release 6/11.

Is it trying to define NULL in more than one place?

?

It would seem that WaterElement was written for Inform 6/10, where the NULL constant is defined in parserm, of which the extension provides a custom version.

In 6/11 however, NULL is instead defined in linklpa, which the extensios includes.

So, if you use WaterElement’s version of parserm together with the 6/11 version of linklpa, the constant NULL gets defined in two places.

With NULL fixed, I now get 6 errors in verblibm. The following snippet of code

[ CommandsOnSub;
@output_stream 4;
xcommsdir = 1;
L__M(##CommandsOn, 1);
];

causes a

‘=’ applied to undeclared variable

It seems xcommsdir is undeclared. So how do I declare it without breaking the libraries?

Add

Global xcommsdir;

…in parserm.h.

?

It works, or at least it compiles. Thank you all for your help, not least Jacek Pudlo whose cryptic question marks have been a source of inspiration :wink: