在本次实验中,我用python3.5实现了一个词法分析类,具有以下功能:
- 在适当扩充实验要求文法的基础上,给出输入串中标识符、保留字(’begin’, ‘end’, ‘if’, ‘then’, ‘else’, ‘for’, ‘do’, ‘while’, ‘and’,’or’, ‘not’, ‘program’, ‘int’, ‘char’, ‘double’, ‘float’, ‘long’)、整数、常见单字符(’+’, ‘-‘, ‘*’, ‘;’, ‘(‘,’)’, “‘“, ‘“‘, ‘ ‘)、双字符终结符(’>’, ‘<’, ‘>=’,’<=’, ‘<>’, ‘:=’)、注释符、空格、部分转义符号(’\n’)的类别编码。
- 程序能够发现输入串中的错误,指出错误发生位置与基本类别,包括未知的中介符号、无法匹配注释符、文件无法打开等等。
- 分析结果一方面输出为二元式序列组成的中间文件,另一方面可选择输出在终端作为调试信息。
- 对单字符、双字符终结符的识别进行了抽象处理,分析结果只依赖参数的设置,便于词法分析器的修改和扩充。
- 在构造函数中为参数的设置提供的接口,包括输入文件的路径、是否大小写敏感、输出路径、调试信息等级。