I've been using BNFC for a while, got pretty far with my Grammar. All of a sudden I had need for some negative numbers in my specifications. To my surprise, Integer is only positive! Why?!
Then I looked at the sample C language spec and even the unsigned types are positive only - weird!
If I make my own token to support negative values
token Integer ('-')? ["123456789"] digit*;
The generated code now has a "char *" for Integer instead of int. What a mess! Isn't there a simpler way to make the built-in "Integer" support negative numbers? That should have been fixed ages ago, no?