可以增强精神扫描语法树并产生结果



我想写一门小语言,我决定使用Boost Spirit。对我来说看起来不错。我知道我可以用精神来写一个词法分析器,用一个解析器来创建一个语法树。是否可以在 Spirit 中扫描语法树并产生结果。(或者只是为了解析?是否有可用的函数来生成结果,或者我是否必须使用其他工具?很抱歉这个简单的问题,但是在简要查看Spirit文档时,我真的找不到信息。

除此之外,我是否可以将自己的词法分析器与使用 Spirit 编写的解析器一起使用。提前谢谢。

事实上,这确实是"不是一个真正的问题"的候选者。如果您没有链接到文档页面,我会仅使用该链接将其驳回。

碰巧的是,也许您错过了示例:

  • http://www.boost.org/doc/libs/1_51_0/libs/spirit/example/qi/compiler_tutorial/

  • 简单表达式计算器的许多版本(也许按顺序查看它们)

  • 召唤编译器该编译器能够编译和运行简单的语言。示例在这里:

    /* 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的示例以获取更多信息。

最新更新