Под «Lexing» вы ссылаетесь на Lexical Analysis, и есть некоторые древние инструменты, которые в основном все еще работают, называемые Lex и Yacc. Лекс строит токенизатор, а Yacc означает «еще один компилятор компилятора» и является фактическим парсером.
Концепция lex / Yacc заключается в том, что вы строите грамматику для языка, а затем запускаете грамматику с помощью инструмента paslex для генерации исходного кода (обычно в C), который вы можете использовать для анализа файла и выполнения действий над конкретными ключевые слова и токены. Мартин Вальденбург написал паскальскую версию lex / yacc под названием PasLex, которая длится уже более десяти лет и была преобразована в Delphi (хотя она может не работать с последними версиями без некоторой незначительной работы) , Если я правильно помню, он использует те же входные файлы грамматики .L, что и lex, поэтому любую документацию, которую вы найдете для lex / yacc, можно также применить к paslex, за исключением того, что вы получите код паскаля в качестве вывода.
Я не уверен в наличии текущей документации. До Интернета (задыхаясь) мы пользовались книгами, и большая часть этого была тщательно документирована на бумаге, которая давно пожелтела ... однако, ходят слухи, что вы могли бы ... просто могли бы забрать использованную копию из Amazon. Я порезал себе зубы, используя книгу, также известную как " книга дракона ", которая, как представляется, была переиздана совсем недавно, в 2006 году.
EDIT:
Я ошибся инструментом, это был TPLY . PasLex был реализацией грамматики delphi ... TPLY был инструментом Lex / Yacc, который генерировал исходный текст из файла .L.