Сочетание Flexc ++ и BisonStack Overflow

я использую Flexc ++ а также Bisonc ++ реализовать небольшой язык.

Flexc ++ предоставляет простой конструктор

Scanner(std::string const &infile, std::string const &outfile)

установить входной и выходной файлы.

Однако при интеграции с Bisconc ++ я не могу найти простой способ использовать этот конструктор для объекта сканера внутри сгенерированного парсера.

Автоматически сгенерированный Parser.h содержит объект сканера:

...
Scanner d_scanner;
....

По умолчанию класс синтаксического анализатора не имеет конструктора с аргументами ввода / вывода, а функция синтаксического анализа не имеет параметров. Поведение по умолчанию — анализ со стандартного ввода и вывода на стандартный вывод.

То, что я ищу, в основном так же, как этот вопрос (см. 2.), но ответы на самом деле не охватывают этот критерий.

На данный момент я анализирую со стандартного ввода с

int main(....) {
Parser parser;
parser.parse()
}

Вместо этого я хотел бы указать путь к файлу и предоставить его функции синтаксического анализа или даже конструктору.

int main(....) {
std::string filePath;
Parser parser; // or (filePath) here
parser.parse(filePath)
}

Конечно, я мог бы просто добавить функциональность после генерации парсера, но это не самый лучший вариант, так как все должно генерироваться автоматически.

Я не вижу, как это сделать с помощью предоставленных заголовочных файлов .ih.

И да, я хочу использовать Flexc ++ и Bisonc ++.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]