编程语言的解析器应该做什么?

1 c++ parsing programming-languages

我已经编写了一个返回令牌的词法分析器,现在我正在处理解析器.我有一个问题.

想象一下这个代码示例:

print("Hello, world!")
Run Code Online (Sandbox Code Playgroud)

词法分析器返回四个令牌(print,(,"Hello, world!")).最终的程序应该打印字符串"Hello,world!".

但是解析器应该做什么?如果解析器已经执行了代码,它应该返回由另一个对象处理的东西(和什么)吗?

Jan*_*net 5

解析器应该生成一个抽象语法树,它是程序的内存表示.解析后可以遍历此树以执行代码生成.我建议你阅读一些关于这个主题的好书,也许还有一本涉及龙的书.