On Tue, Feb 06, 2018 at 04:38:53PM +1100, Erik Christiansen wrote:
On 05.02.18 10:02, Michael Stone wrote:IIRC it started out as a YACC function in the late 80s, and is now a Bison (YACC+GNU extensions) library.In that case it has a precise grammar, expressed in BNF (Backus Naur Form), though the lexer (I've always used lex together with yacc/bison) could add a bit of elastic if the designer had a free-wheeling approach. The existing flexibility then arises primarily from explicit alternatives in grammar rules.
That's what makes it "explainable but not predictable" for the averagehuman. It's certainly possible to rationalize any given output (it's not coming from a random number generator) but it's too complicated for most people to easily predict the syntax that will give them the result they want.
Mike Stone