Ho scritto un parser usando la libreria Python Ply.
Durante i test con un file di input ho notato uno strano comportamento: a volte l'input viene analizzato correttamente senza errori e, a volte, vi sono errori di analisi (e il parser non segue le stesse regole e di conseguenza trova errori di sintassi).
Come può accadere perché il parser dovrebbe essere deterministico? La mia grammatica è pulita (nessun conflitto di alcun tipo), e ovviamente il mio input è valido.
Non sto chiedendo un debug (soprattutto perché la grammatica è piuttosto complessa), mi piacerebbe capire come ciò sia possibile e quale potrebbe essere la causa in generale.