Flex与Bison使用指南:从词法分析到语法解析
1. Flex相关功能
Flex是一个词法分析器生成器,它提供了许多实用的功能来处理输入和控制词法分析过程。
1.1 输入控制
- input()和yyrestart():调用
input()会开始读取新的输入。而yyrestart(file),其中file是一个标准I/O文件指针,用于安排从该文件开始读取输入。
yyrestart(file); // 从指定文件开始读取输入1.2 起始状态
起始状态(Start States),也称为起始条件或起始规则,可在定义部分声明。它用于限制某些规则的作用范围或改变词法分析器处理文件部分内容的方式。起始状态有两种类型:
-包含型(Inclusive):使用%s声明。例如,创建包含型起始状态PREPROC:
%s PREPROC在规则部分,以<PREPROC>开头的规则仅在PREPROC状态下适用。
-排他型(Exclus