用java实现的词法分析和语法分析的小程序:flags:
个人博客网站:https://daqwt.top 💝
- 词法分析
- 语法分析
- 判断是否是LL(1)文法
- 词法分析: 根据输入的字符序列,将字符序列转换为单词
Token
序列,识别每个字符,并给出相应的类型。 - 语法分析: 根据给定的文法,判断是否是
LL(1)文法
,自顶向下分析。采用预测分析法:从文法开始符S 出发,从左到右扫描源程序,每次通过向前查看 1 个字符,选择合适的产生式,生成句子的最左推导。 - 步骤:
- 从文件读入文法自动区分 终结符号
VT
和 非终结符号VN
- 消除直接左递归
- 生成
FIRST
和FOLLOW
集合 - 判断是否是
LL(1)
文法 - 构建预测分析表
- 输入要分析的单词串自动输出分析过程
- 将
grammer
文件夹放入F盘下,我在代码包中也附带了一个名为文法测试.txt
的文件,里面有对应的四种文法以及需要输入的字符串示例。 - 运行Main主函数,即可...