我正在使用avr-gcc工具链在AVR微控制器上用C语言编写一个简单的BASIC类语言的小解释器作为练习。但是,我想知道是否有任何开源工具可以帮助我编写词法分析器和解析器。
如果我要在我的Linux机器上运行这段代码,我可以使用flex/bison。现在我将自己限制在一个8位平台上,我必须手工完成所有的工作,还是不?
发布于 2010-02-12 00:59:58
您可以在Linux上使用flex/bison和它的本机gcc来生成代码,然后将这些代码与您的AVR gcc针对嵌入式目标进行交叉编译。
发布于 2010-02-12 01:04:12
GCC可以在多种平台上进行交叉编译,但您需要在运行编译器的平台上运行flex和bison。它们只是吐出C代码,然后编译器构建这些代码。测试它,看看结果的可执行文件到底有多大。请注意,它们有运行时库(libfl.a
等)。你还必须交叉编译到你的目标。
发布于 2015-06-25 01:22:33
试试Boost::Spirit。它是一个仅包含头文件的库,您可以将其放入其中,并完全用C++构建一个非常快速、干净的解析器。使用C++中的重载运算符,而不是特殊的语法文件。
https://stackoverflow.com/questions/2245962
复制相似问题