基于Python3
的SLR(1)
文法分析器。目前的功能:
- 分析文法各非终结符号的
FOLLOW(A)
集合 - 分析文法所有的有效项目集族
- 计算文法的
SLR(1)
分析矩阵 - 简单的输入串分割(词法分析)功能
- 判断输入串是否为文法的合法语句
- 生成四元式
- Pandas
python main.py
进阶的使用方法:修改grammar.txt
文件中的文法规则以自定义文法。但是如此一来四元式将无法正常生成。
表示文法的类,使用init_grammar
函数的返回值进行初始化,在初始化时对文法的FIRST
和FOLLOW
集进行分析。
表示'项目'的类。含有文法的一条产生式,以及表示圆点位置的整形变量。
表示项目集的类。含有Project
实例的集合。
表示SLR(1)
分析表的类。在初始化时计算分析表。
表示SLR(1)
分析器的类。调用analysis
函数进行输入串分析。