我正在使用Flexc++和Bisonc++来实现一种小语言。
Flexc ++提供了一个简单的构造函数
Scanner(std::string const &infile, std::string const &outfile)
设置输入和输出文件。
但是,当与Bisconc ++集成时,我无法找到一种简单的方法来将此构造函数用于生成的解析器中的scanner对象。
自动生成的Parser.h包含扫描程序对象:
...
Scanner d_scanner;
....
默认情况下,解析器类没有带输入/输出参数的构造函数,而parse-function没有参数。默认行为是从标准输入解析并输出到标准输出。
我所寻求的与this问题基本相同(见2.),但答案并未真正涵盖此标准。
目前我使用
从标准输入解析int main(....) {
Parser parser;
parser.parse()
}
相反,我想指定一个文件路径并将其提供给解析函数甚至构造函数。
int main(....) {
std::string filePath;
Parser parser; // or (filePath) here
parser.parse(filePath)
}
当然我可以在解析器生成之后添加功能,但这并不是最好的选择,因为所有内容都应该自动生成。
我无法看到如何使用提供的.ih头文件执行此操作。
是的,我想使用Flexc ++和Bisonc ++。