C++ 在我的解释器上为脚本代码实现语法检查器的最佳方法是什么

C++ 在我的解释器上为脚本代码实现语法检查器的最佳方法是什么,c++,syntax,compiler-construction,interpreter,C++,Syntax,Compiler Construction,Interpreter,我正在为我的自定义脚本语言编写一个解释器。 这是GitHub上的实际项目:。 如果有人想帮助我,我将不胜感激:) 但是,我需要实现一个语法检查器,以便从我解析的令牌数组中知道代码的语法是否正确。 最好的方法是什么 这里我不想使用lex/yacc或flex和bison。要么实现自己的解析器,要么使用yacc/bison 龙书是一个很好的起点() 也是一个自顶向下解析器的C++实现示例: 既然您已经排除了其他两个最常见的解析器,我想说,试试boost::spirit或列出的其他解析器中的一个,我想从

我正在为我的自定义脚本语言编写一个解释器。 这是GitHub上的实际项目:。 如果有人想帮助我,我将不胜感激:) 但是,我需要实现一个语法检查器,以便从我解析的令牌数组中知道代码的语法是否正确。 最好的方法是什么


这里我不想使用lex/yacc或flex和bison。

要么实现自己的解析器,要么使用yacc/bison

龙书是一个很好的起点()

也是一个自顶向下解析器的C++实现示例:


既然您已经排除了其他两个最常见的解析器,我想说,试试boost::spirit或列出的其他解析器中的一个,我想从我这里实现解析器。不使用其他库,“实现解析器的最佳方法是什么”对于stackoverflow来说是一个过于笼统和主观的问题。也许您可以开始尝试实现一个解析器生成器,然后在遇到问题时问一个更具体的问题。最好的方法(最少的努力和痛苦)是使用解析器生成器,这是您不想做的。作为替代,您可能需要手工编写递归下降解析器。请参阅此答案,了解如何执行此操作的详细信息:抱歉,我刚刚实现了标记器。我需要一个语法检查器的逻辑,而不是带有regext的标记器。标记不足以进行语法检查。也可以实现自己的解析器,或者使用yacc/bison。你听说过龙书吗?下面是一个自顶向下解析器的C++实现示例:是的,谢谢,我已经读了那本书一会儿了。