Каков наилучший способ обработки нескольких парсеров Flex / Bison внутри проекта?
Я написал парсер, и теперь мне нужен второй в том же проекте. До сих пор в третьем разделе parser1.y
я вставил метод main(..)
и оттуда вызвал yyparse
.
Я хочу получить два разных синтаксических анализатора (parser1.y
и parser2.y
) и иметь возможность использовать их из внешней функции (предположим, main
в main.cpp
).
Какие меры предосторожности следует использовать для экспорта функций yyparse
за пределы файлов .y
и как обрабатывать два анализатора?
PS. Я использую g ++ для компиляции, но не версии C ++ Flex и Bison, и я хотел бы сохранить это так (избегая инкапсуляции парсера внутри объекта).