Skip to content

合肥工业大学编译原理实验LL(1)文法分析,核心代码是Scala,消除了形式上的左递归,但存在bug,不能直接用,过实验指导书的样例没问题;Java实现GUI。

Notifications You must be signed in to change notification settings

25th-engineer/Compile_Experiment_LL_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compile_Experiment_LL1

合肥工业大学编译原理实验LL(1)文法分析,Scala实现,
消除了形式上左递归,但存在bug,不能直接用,过实验指导书的样例没问题;Java实现GUI。



开发环境:

硬件:

Dell G3 3579;

软件:

OS:Ubuntu 16.04.06;
IDE:InterlliJ IDEA Ultimate Edition(2019.1.3);
编程语言:Scala、Java。

完成情况:

代码行数:

①纯粹自己写的、不含GUI代码、不含注释、不含空行:876;
②含参考而来的GUI代码与各类注释:1664;

数据结构与算法设计:

①核心代码部分,均为自己参照书上的算法,用极为朴素的方法实现(Scala,876);
②值得一提的是,FOLLOW集采用“先定位”,后“记忆搜索”的方法,对于不含左递归的文法,时空不甚可观;
③消除了形式上的左递归,但含bug;
④GUI的编写参考“菊花侠”大佬的手笔,Java封装实现界面。

程序截图:

图 1 开始界面
开始界面
图 2 选择文件
选择文件
图 3 显示当前文法
显示当前文法
图 4 执行文法分析(输入表达式为“i+i*i”)
执行文法分析(输入表达式为“i+i*i”)
图 5 执行文法分析(输入表达式为“i+i*i-i/i”)
执行文法分析(输入表达式为“i+i*i-i/i”)

About

合肥工业大学编译原理实验LL(1)文法分析,核心代码是Scala,消除了形式上的左递归,但存在bug,不能直接用,过实验指导书的样例没问题;Java实现GUI。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published