Some flags, like
--string-token and --text-token for the Haskell backend
--jlex and --antlr4 for the Java backend
should not be used together. Currently, bnfc always silently takes the first (leftmost) one. Not sure what the best practice is, but this behavior should at least be noticed in docs.