Принадлежит ли распознавание чисел сканеру или парсеру?

Когда вы смотрите на описание языка EBNF, вы часто видите определение для целых и действительных чисел:

integer  ::= digit digit*   // Accepts numbers with a 0 prefix
real     ::= integer "." integer (('e'|'E') integer)?

(Определения были сделаны на лету, я, вероятно, ошибся в них).

. Хотя они появляются в контекстно-свободной грамматике, числа часто распознаются на этапе лексического анализа. Включены ли они в определение языка, чтобы сделать его более полным, и должен ли разработчик понять, что они действительно должны быть в сканере?

5
задан Jørgen R 19 December 2014 в 22:26
поделиться