我正在寻找关于什么是“分词器”、“解析器”和“词法分析器”以及它们如何相互关联的明确定义(例如,解析器是否使用分词器,反之亦然)?我需要创建一个程序,将通过 c/h 源文件来提取数据声明和定义。
我一直在寻找示例并且可以找到一些信息,但我真的很难掌握语法规则、解析树和抽象语法树等基本概念以及它们如何相互关联。最终这些概念需要存储在一个实际的程序中,但是 1)它们看起来像什么,2)有没有共同的实现。
我一直在查看有关 Lex 和 Yacc 等主题和程序的 Wikipedia,但从未学习过编译器类(EE 专业),我发现很难完全理解发生了什么。