Khi bạn nhìn vào mô tả EBNF của một ngôn ngữ, bạn thường thấy một định nghĩa cho các số nguyên và số thực:Việc nhận dạng các số có thuộc về máy quét hoặc trong trình phân tích cú pháp không?
integer ::= digit digit* // Accepts numbers with a 0 prefix
real ::= integer "." integer (('e'|'E') integer)?
(Các định nghĩa đã được thực hiện một cách nhanh chóng, tôi đã có thể làm cho một sai lầm trong họ).
Mặc dù chúng xuất hiện trong ngữ pháp không có ngữ cảnh, nhưng các số thường được ghi nhận trong giai đoạn phân tích từ vựng. Chúng được bao gồm trong định nghĩa ngôn ngữ để làm cho nó hoàn chỉnh hơn và nó là tùy thuộc vào người thực hiện để nhận ra rằng họ thực sự nên có trong máy quét?