DAQ121 / Lexer-Parser

:loudspeaker:编译原理,java实现的词法分析器&语法分析器,有运行窗口:computer:,附带使用说明:green_book:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🎁Lexer-Parser

用java实现的词法分析和语法分析的小程序:flags:

概述

  • 词法分析: 根据输入的字符序列,将字符序列转换为单词Token序列,识别每个字符,并给出相应的类型
  • 语法分析: 根据给定的文法,判断是否是LL(1)文法,自顶向下分析。采用预测分析法:从文法开始符S 出发,从左到右扫描源程序,每次通过向前查看 1 个字符,选择合适的产生式,生成句子的最左推导。
  • 步骤:
  1. 从文件读入文法自动区分 终结符号VT 和 非终结符号VN
  2. 消除直接左递归
  3. 生成FIRSTFOLLOW集合
  4. 判断是否是LL(1)文法
  5. 构建预测分析表
  6. 输入要分析的单词串自动输出分析过程

📺结果图

  • 词法分析

在这里插入图片描述

  • 语法分析

在这里插入图片描述

在这里插入图片描述

  • 判断是否是LL(1)文法

在这里插入图片描述

代码结构

在这里插入图片描述

使用说明

  • grammer文件夹放入F盘下,我在代码包中也附带了一个名为文法测试.txt的文件,里面有对应的四种文法以及需要输入的字符串示例。
  • 运行Main主函数,即可...

在这里插入图片描述

About

:loudspeaker:编译原理,java实现的词法分析器&语法分析器,有运行窗口:computer:,附带使用说明:green_book:


Languages

Language:Java 100.0%