Я бы еще добавил, что статья сразу пытается ответить на вопрос «Как?», а не рассматривает вопрос «Зачем?»
Очень не хватает анализа. Вряд ли человеку, не знакомому с компиляторами, будет понятно, зачем нужен лексер. А человек, понимающий принципы разбора формальных грамматик, без труда его напишет.
Кстати, я могу ошибаться, но грамматика Pascal, кажется LL(1). Если так, почему бы не использовать таблично-управляемый автомат?
Рекомендую к прочтению «Книга Дракона-2» (Dragon Book-2) — «Компиляторы: принципы, технологии и инструменты», 2-е издание, Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д. Ульман, 1184 стр., ISBN 978-5-8459-1349-4, «ВИЛЬЯМС», 2011
Это основная книга по теме разработки компиляторов
Основы конструирования компиляторов. Лексический анализ на C#