Re: DIBOL
My first introduction to lex/yacc, and flex/bison, was in translating one CAD format file to another as part of a contract job. Apart from the mind-bending effect of using recursive BNF declarations, it proved to be so effective I went on to using it as a first resort in any remotely language-like application later. It didn't hurt that I'd been introduced to finite-state automatons earlier.
Long story short, somewhere out there, some translators for a medical device information protocol called LIS2A2 are, or more likely, were, chugging away while the competition, mired in C or C++ or even (really?) Pascal, were tossing out error after error.
And my thanks for all this? "It's too strict".
The protocol was well documented (although it's one of those non-standard standards, with lots of options for doing it "your way") and as far as I was concerned, it was easier for them to play by the rules than for me to add endless exceptions.
And no, I wouldn't dream of getting involved again, for any price. Software engineering is so much easier than people engineering.
Mine's a Sam Adams Boston Lager