Я читал о lex / yacc. Книги и примеры не трудно подражать. На самом деле вся концепция ясна как колокол. За одним исключением. Lex / yacc, кажется, генерирует автономные программы. Что если бы я хотел вызвать их как функцию парсера? Кажется, Yacc генерирует основную функцию, поэтому как бы я вызывал ее самостоятельно, без конфликтов.
Мне также пока неясно, как они работают при вводе файлов. Я в порядке с захватом строки из файла и отправкой ее парсеру, но что если ваш парсер ищет многострочную структуру, например блок, заключенный в фигурные скобки?
Я понимаю, что я глуп по обоим этим, но любая помощь приветствуется. Спасибо.