Ok, so I outsmarted myself on this one. In an attempt to be clever and weed out parsers being merged into a final parser, I used logic to only load the final parser that matches each lexer by grammar name. This had the side effect of not exposing other parsers a user might want to legitimately use (such as a preprocessor directive parser).
I'll be removing the "clever" logic in favor of allowing the user to explicitly dictate the parser they want. This does mean that if you have a grammar that is composed of many sub-parsers, you will be prompted to select your final parser from the list of all parsers every time you first load, but this is a minor inconvenience and more desirable for most users I think.
Ok, so I outsmarted myself on this one. In an attempt to be clever and weed out parsers being merged into a final parser, I used logic to only load the final parser that matches each lexer by grammar name. This had the side effect of not exposing other parsers a user might want to legitimately use (such as a preprocessor directive parser).
I'll be removing the "clever" logic in favor of allowing the user to explicitly dictate the parser they want. This does mean that if you have a grammar that is composed of many sub-parsers, you will be prompted to select your final parser from the list of all parsers every time you first load, but this is a minor inconvenience and more desirable for most users I think.