Flex与Bison入门:构建处理结构化输入的程序
1. 词法分析与解析
在20世纪50年代,最早的编译器使用完全临时的技术来分析正在编译的程序源代码的语法。到了60年代,该领域受到了大量学术关注,到70年代初,语法分析已成为一个广为人知的领域。
关键的见解之一是将这项工作分为两部分:词法分析(也称为词法扫描)和语法分析(或解析)。大致来说,扫描将输入划分为有意义的块,称为标记(tokens),而解析则确定这些标记之间的关系。
例如,对于C代码片段 alpha = beta + gamma ; :
- 扫描器将其划分为标记: alpha 、等号、 beta 、加号、 gamma 和分号。
- 解析器确定 beta + gamma 是一个表达式,并将该表达式赋值给 alpha 。
下面用mermaid流程图展示这个过程:
graph LR;
A[输入代码: alpha = beta + gamma ;] --> B[扫描器];
B --> C[标记: alpha, =, beta, +, gamma, ;];
C --> D[解析器];
D --> E[解析结果: beta + gamma表达式赋值给alpha];
2. 获取Flex和Bison
大多数Linux和B
超级会员免费看
订阅专栏 解锁全文
78

被折叠的 条评论
为什么被折叠?



