我还不太熟悉C++,所以请多包容。我正在为一个叫做Core的虚构语言编写解释器。目前我已经实现了一个分词器,可以给出表示Core程序的标记队列。现在我正在编写解析器/执行器,该解析器将从分词器输出并使用递归下降解析来填充ParseTree类的对象(需要自行设计)。我理解如何实现这个功能的基本原理,但在实现ParseTree类时遇到了麻烦。Core BNF描述的产生式通常有2-5个终端/非终端符号,但有些可能有多达20个,因此我需要一个n元树,其中每个节点都可以有不同数量的子节点。
我想ParseTree类的实现不一定需要使用树,但那似乎是最合理的选择(是否有更好/更容易的数据结构?)。 我不知道STL中是否有适合我需求的容器。虽然我已经看过Boost属性树,但据我所知,那也不行。 如果可能的话,我希望不要从头开始实现树而重新发明轮子,而是使用最佳的方式来实现ParseTree。是否有任何好的预制树实现我可以使用?
我想ParseTree类的实现不一定需要使用树,但那似乎是最合理的选择(是否有更好/更容易的数据结构?)。 我不知道STL中是否有适合我需求的容器。虽然我已经看过Boost属性树,但据我所知,那也不行。 如果可能的话,我希望不要从头开始实现树而重新发明轮子,而是使用最佳的方式来实现ParseTree。是否有任何好的预制树实现我可以使用?