Під розбором ми розуміємо найчастіше аналіз контекстних мов. Мова без контексту є більш потужною, ніж звичайна, тому аналізатор може (найчастіше) виконувати роботу лексичного аналізатора відразу.
Але, це а) досить неприродно б) часто неефективно.
Для a) якщо я думаю про те, як, наприклад, if
виглядає вираз, я думаю, що IF expr THEN expr ELSE expr, а не 'i' 'f', можливо, деякі пробіли, то будь-який символ, з якого може виходити вираз, тощо. Ви отримуєте ідея.
Для б) є потужні інструменти, які виконують відмінну роботу з розпізнавання лексичних сутностей, таких як ідентифікатори, літерали, дужки всіх видів і т. Д. Вони виконають свою роботу практично в найкоротші терміни і нададуть вам приємний інтерфейс: список жетонів. Більше не хвилюйтеся про пропуск пробілів у аналізаторі, ваш аналізатор буде набагато абстрактнішим, коли він має справу з лексемами, а не символами.
Зрештою, якщо ви думаєте, що аналізатор повинен бути зайнятий матеріалами низького рівня, навіщо взагалі обробляти символи? Можна було б написати це також на рівні бітів! Розумієте, такий аналізатор, який працює на рівні бітів, був би майже незрозумілим. Так само і з символами, і з лексемами.
Всього мої 2 копійки.