Jeśli spojrzeć na opis EBNF języka, często można zobaczyć definicję liczb całkowitych i liczb rzeczywistych:Czy rozpoznawanie liczb należy do skanera lub do analizatora składni?
integer ::= digit digit* // Accepts numbers with a 0 prefix
real ::= integer "." integer (('e'|'E') integer)?
(Definicje zostały wykonane w locie, ja prawdopodobnie popełnił błąd w nich).
Mimo że pojawiają się w gramatyce bezkontekstowej, liczby są często rozpoznawane w fazie analizy leksykalnej. Czy są one zawarte w definicji języka, aby była bardziej kompletna i od realizatora zależy, czy rzeczywiście będą one w skanerze?