Anyone Have a Version of Disambiguation Control that Compiles in Inform 10.1.2?

I am completing one more pass through @aaronius book Creating Interactive Fiction with Inform 7. This time, I’m slowing down and taking more time with the exercises while documenting the experience in a GitHub repository.

I’ve been able to make small adjustments to some of the extensions he mentions in the book so they will function in the latest version of Inform. Still, editing Disambiguation Control by Jon Ingold is a bit beyond my current skillset. I have no familiarity with Inform 6.

The version in the 9.3 branch doesn’t compile, but it looks like the issues are due to updated syntax that might be relatively easy to address.

My initial experiments were unsuccessful, so when I have time, I’ll start reviewing some of the resources here on learning Inform 6, so I can work on the upgrade later.

Until then, I’m wondering if anyone has a version they have upgraded for use in Inform 10.1.2.

I was hoping it would just be a matter of changing “instead of” to “replacing”, but I was woefully naïve. Maybe someone can verify my thoughts – the latest I6 inclusion syntax can only select functions and not sections? And therefore modifying the parser is a pretty hefty job – you’d have to copy all kinds of code you’re not modifying in order to just modify “Parser Letter A” for instance.


One can replace the declaration for anything with a named identifier in the global namespace, not just functions (e.g., arrays, constants, variables). Otherwise, everything you say is true: it’s a big nuisance to modify Parser__parse.

[ Edited to specify “in the global namespace” ]

Does this count as a named identifier?

@h Parser Letter A.

Nope! Any named identifier in Inform 6, not in Inweb markup.