Here's a tiny grammar for hexadecimal integers.
Numbers . Numbers ::= [HexInt];
separator HexInt " " ;
token HexDigit ["0123456789abcdefABCDEF"] ;
rules HexInt ::= "0x" [HexDigit] ;
separator HexDigit "" ;
It fails to parse "0xff", however, because the lexer treats "ff" as a single token. How do I fix that?