I have been looking at the grammar and it seems like it has been copied and adjusted directly from clingo leading to some unusual and hard to handle syntax trees.
As an example, I had a look at the const term definition. It could better be written like this (also avoiding the problematic _widentifier hack):
Naming conventions for non-terminals should probably follow the ones in clingo. Of course this refactoring would break our downstream projects and we might want to address it in a separate branch/project. It seems very necessary, though. :smile:
I have been looking at the grammar and it seems like it has been copied and adjusted directly from clingo leading to some unusual and hard to handle syntax trees.
As an example, I had a look at the const term definition. It could better be written like this (also avoiding the problematic
_widentifier
hack):When parsing
We get the much cleaner tree
Naming conventions for non-terminals should probably follow the ones in clingo. Of course this refactoring would break our downstream projects and we might want to address it in a separate branch/project. It seems very necessary, though. :smile: