Skip to content

Sample语言编译器-编译原理课程设计 -Sample_Language_Compiler

Notifications You must be signed in to change notification settings

ArnoldGaius/Sample_Compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sample语言编译器-编译原理课程设计 Sample_Language_Compiler

运行环境:

  • Windows 10
  • Java 1.7
  • Python 2.7

主要功能:

  • 支持UI
  • 词法分析
  • token表
  • 语法分析
  • 语法检测
  • 语义分析
  • 正则式->NFA->DFA->MFA
  • LL(1)预测分析
  • 状态转换图生成到Java_pyGra下

功能讲解:

  • 分析功能(词法分析、语法分析)都放在src/Analysis中;
  • 界面UI放在src/UI中;
  • 语义分析与四元式生成放在src/Semantic Analysis中;
  • LL(1)预测分析放在src/LL1V2中;
  • 状态转换图生成放在src/Java_pyGra中。由于 pygraphviz 不支持混合编程,只能单独将生成reg2FA生成出状态转换表,然后再通过Java_pyGra.py转换成图片。

使用说明:

运行环境支持的话,通过src/UIMainUI.java运行主程序,LL1.javareg2FA.java都可以单独运行。
LineNumberHeaderView.java用于在MainUI中显示行数,但存在一定问题,如果使用LineNumberHeaderView,不可同时使用WindowBuilder
测试文件都在 Test_File 中。

存在的问题:

  • 语义分析嵌套语句:可以嵌套,但多层嵌套会出问题;
  • LL(1)预测暂时没考虑非LL(1)语法的文法;
  • 由于pygraphviz 不支持混合编程没能一步到位完成画状态图,需要手工在reg2FA界面选择生成状态表到本地,在Java_pyGra.py中读取状态表画图;
  • 图标用了Steam     ;p

About

Sample语言编译器-编译原理课程设计 -Sample_Language_Compiler

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published