34

我最近一直在查看 Boost.Spirit(Boost 1.39 中包含的版本),但是我对文档本身感到很困惑。我正在寻找的是一个用 Boost.Spirit 实现的玩具语言的示例——类似于小型 Javascript 或 Lua 左右的东西,您基本上可以在其中创建一个 AST 和进程。如果它只支持函数/变量定义和基本运算符,我会很高兴,我只想看看如何使用 Boost.Spirit 创建一个普通的 AST,以及如何实现标识符、声明等基本规则。

到目前为止,我已经尝试了计算器示例,但我不清楚如何使用 Spirit 实现更大的语法。另一方面,捆绑的 mini_c 示例看起来已经相当复杂,而且文档也不是很好。是否有一些易于理解的 Boost.Spirit 指南,或者一本书?

4

5 回答 5

8

Spirit 文档包括示例和教程。包括为类似 XML 的迷你语言生成 AST的示例。Joel de Guzman 和 Hartmut Kaiser的一个非常有用的概述演示文稿也可用。

于 2011-11-30T13:31:47.027 回答
5

请记住,有一个更新的增强精神版本,它采用全新的方法来生成 AST。

于 2009-10-26T20:02:41.937 回答
3

The Boost C++ Libraries一书中有一章是关于 Spirit 的,我个人觉得它非常有用。它可以在线获得,这是一个直接链接:

第 11 章 Boost.Spirit

于 2015-02-12T10:09:42.017 回答
2

使用精神 2.3:气和业力

我认为这个 pdf 对初学者来说非常好。

于 2016-05-20T06:58:35.763 回答