當你看一個語言的EBNF描述,你經常看到的整數和實數的定義:數字的識別屬於掃描儀還是解析器?
integer ::= digit digit* // Accepts numbers with a 0 prefix
real ::= integer "." integer (('e'|'E') integer)?
(定義是在飛行中做,我可能已經在他們犯了一個錯誤)。
雖然它們出現在上下文無關的語法中,但數字通常在詞法分析階段被識別出來。它們是否包含在語言定義中以使其更加完整,並且要由實施者認識到他們實際上應該在掃描儀中?