Whilst I can see the potential utility of this feature, I have a few issues with this feature which leave me inclined to close the issue:
Slight variations in keywords between different languages (e.g. different capitalisation standards) mean that this is likely impractical for most users.
There is not a sufficient user base to either create rule sets or take advantage of them.
The addition of this breaks all existing EBNF specifications.
The purpose for a tool like this is to give someone complete flexibility over how a language is defined, rather than simply creating clones of existing languages, and features like this break that principal.
like add a statement to make predefined rules available. for example:
` use std;
struct = "struct", IDENTIFIER, "{", "}"; `
when IDENTIFIER it predefines.
examples:
Idenifier String Number