我想写一种小语言,我决定使用Boost Spirit。对我来说看起来不错。我知道我可以使用 Spirit 来编写词法分析器,并使用解析器来创建语法树。是否可以在 Spirit 中扫描语法树并产生结果。(或者只是为了解析?)是否有可用的函数来生成结果或者我必须使用不同的工具?很抱歉这个简单的问题,但我在简要查看 Spirit 文档时确实找不到信息。
除此之外,我可以使用我自己的词法分析器和使用 Spirit 编写的解析器吗?提前致谢。
我想写一种小语言,我决定使用Boost Spirit。对我来说看起来不错。我知道我可以使用 Spirit 来编写词法分析器,并使用解析器来创建语法树。是否可以在 Spirit 中扫描语法树并产生结果。(或者只是为了解析?)是否有可用的函数来生成结果或者我必须使用不同的工具?很抱歉这个简单的问题,但我在简要查看 Spirit 文档时确实找不到信息。
除此之外,我可以使用我自己的词法分析器和使用 Spirit 编写的解析器吗?提前致谢。
事实上,这确实是“不是一个真正的问题”的候选者。如果您没有链接到文档页面,我会通过该链接将其关闭。
碰巧的是,您可能错过了示例:
http://www.boost.org/doc/libs/1_51_0/libs/spirit/example/qi/compiler_tutorial/
许多版本的简单表达式计算器(可能按顺序查看)
conjure compiler 这个编译器能够编译和运行一种简单的语言。样品在这里:
/* The factorial (in conjure) */
int factorial(n)
{
if (n <= 0)
return 1;
else
return n * factorial(n-1);
}
int main(n)
{
return factorial(n);
}
mini C
编译器示例问:除此之外,我可以将我自己的词法分析器与使用 Spirit 编写的解析器一起使用吗?
答:是的。只需公开一个令牌迭代器接口,并将其用作解析 API 的输入迭代器。有关更多信息,请参阅 Spirit Lex 的示例。