1.2预处理
- PASCAL-S大小写不敏感,因此需要将PASCAL-S源程序中的所有大写字母转化为小写字母。
- 同时也需要在PASCAL-S源程序的最前面加入一个换行符,我们先不用考虑原因(后文会有解释),总之这是为了方便lex预读取行,便于提供更加详细的报错信息。
- 需要设计一个函数,可以从输入文件读入PASCAL-S源程序,在最开始加入一个换行符,并将所有的大小字母转化为小写字母。
预处理的结果保存在”preProcessed.pas”中,其后真正的利用lex进行词法分析的输入文件实际上就是这个保存了预处理后的PASCAL-S源程序的文件。
函数接口
void preProcess(string inName);
返回值
无
参数列表 | 参数 | 描述 | | —- | —- | | string inName | 输入文件名 |
- 伪代码
void preProcess(string inName) { 将输入文件关联到输入文件流fin; 将"preProcessed.pas"关联到输出文件流fout; string str; while (从输入文件流获取一行,保存到str中) { 将str中的大写字母转化为小写字母; fout << endl << str; } 关闭输入文件流; 关闭输出文件流; }