解析器和抽象语法树

最近,我决定尝试实施一种非常小的语言,以了解我能做些什么。 在过去的几个小时里,我设法为我的语言编写了一个很好的词法分析器。 所以在阅读理论和东西之后,我明白下一步就是编写一个解析器。 解析器的工作对我来说还有点不清楚(我正在编写一个小型的解释型语言,所以事情将直接在代码中完成)是否通过令牌,理解含义,然后执行代码所说的事情/生成代码(用于编译器)? 或者我读过关于抽象语法树的东西,这是我应该用解析器构造的东西吗? 我不太确定AST甚至是真的......所以我想我的问题是,在词法分析器之后我的下一步是什么? 解析器的工作是什么? 最后但并非最不重要的是抽象语法树的工作是什么?

谢谢你的帮助!


我不知道你是如何编写你的词法分析器的,但解决这个问题的标准方法是用flex编写词法分析器(以前称为lex ),并用yacc编写解析器。 两者的结合使得实现各种语言变得非常简单。

链接地址: http://www.djcxy.com/p/68205.html

上一篇: Parser and abstract syntax tree

下一篇: abstract syntax tree