如何将类型标记的标记转换为解析树? 所以我正在用C++编写编程语言。我已经写了几乎所有的东西,除了一点我需要把我的标记转换成解析树的地方

如何将类型标记的标记转换为解析树? 所以我正在用C++编写编程语言。我已经写了几乎所有的东西,除了一点我需要把我的标记转换成解析树的地方,c++,compiler-construction,parsing,C++,Compiler Construction,Parsing,这些标记已经过类型标记,可以使用了,但是我不想做我自己的解析树生成器。我一直在寻找能够做到这一点的应用程序,但总是遇到非常复杂或过于热情的应用程序,我只想将令牌类型列表转换为解析树,仅此而已。提前谢谢 最简单的解析器生成器是yacc(或bison) 野牛只是一种野牛(它有更多的选择) 其中之一是生成C++分析器对象(而不是C函数)。 只需将以下内容添加到yacc文件: %skeleton "lalr1.cc" 最简单的解析器生成器是yacc(或bison) 野牛只是一种野牛(它有更多的选择)

这些标记已经过类型标记,可以使用了,但是我不想做我自己的解析树生成器。我一直在寻找能够做到这一点的应用程序,但总是遇到非常复杂或过于热情的应用程序,我只想将令牌类型列表转换为解析树,仅此而已。提前谢谢

最简单的解析器生成器是yacc(或bison)

野牛只是一种野牛(它有更多的选择)

其中之一是生成C++分析器对象(而不是C函数)。 只需将以下内容添加到yacc文件:

%skeleton "lalr1.cc"

最简单的解析器生成器是yacc(或bison)

野牛只是一种野牛(它有更多的选择)

其中之一是生成C++分析器对象(而不是C函数)。 只需将以下内容添加到yacc文件:

%skeleton "lalr1.cc"

规范解析器生成器被称为。它有一个gnu版本叫做。这些都是基于C的工具,所以它们应该与C++代码很好地集成。有一个叫做java的工具,我听说过它很好(也就是说,它易于使用,功能强大)。请记住,对于yacc或bison,您必须用他们的语言编写语法。这当然是可行的,但并不总是容易的。有LR(k)语法分析的理论背景是很重要的,这样你就可以理解当它告诉你修复你的歧义语法时它的意思

调用规范解析器生成器。它有一个gnu版本叫做。这些都是基于C的工具,所以它们应该与C++代码很好地集成。有一个叫做java的工具,我听说过它很好(也就是说,它易于使用,功能强大)。请记住,对于yacc或bison,您必须用他们的语言编写语法。这当然是可行的,但并不总是容易的。有LR(k)语法分析的理论背景是很重要的,这样你就可以理解当它告诉你修复你的歧义语法时它的意思

根据您的具体需求,可能是另一种选择。它是模块化的,因此您也应该能够只使用它的组件。

根据您的具体需求,可能是一种替代方案。它是模块化的,因此您也应该能够只使用它的组件。

编译器/解释器资源的规范列表:重复:而且您离实现编程语言还很远,并且您犯了一个典型的错误,即假设如果您有一个解析树,您就可以完成大部分工作。不是这样。请参阅编译器/解释器资源的规范列表:Duplicate:您离实现编程语言还很远,而且您犯了一个典型的错误,即假设如果您有一个解析树,那么您基本上已经完成了。不是这样。看见