Skip to content

FooAuto/Lexer-and-Parser-for-RUST

Repository files navigation

类Rust词法和语法分析工具的实现

项目简介

本项目是一个基于Python实现的类Rust语言词法和语法分析工具。该工具能够对类Rust源代码进行词法分析和语法分析,并生成可视化的语法树结构。

项目结构

  • .cache:预加载的语法分析所用的Action表和GOTO表。检测该文件和语法产生式文件的最后修改时间,如果预加载文件更新,就直接读取。反之重新读取产生式分析。
  • configs:存储类Rust语法规则。
  • data:存储Rust源代码,用于程序测试。
  • lexer:实现词法分析。
  • outputs:存储词法分析结果。
  • lexparser:实现语法分析。
  • static: 展示界面。
  • utils:语法分析树可视化。
  • main.py:通过命令行分析的主程序。
  • entrance.py:网页可视化分析的主程序。
  • README.md: 项目说明文档,包含项目简介、项目结构、环境要求、使用说明、结果显示等内容。
  • requirements.txt: 项目所需的依赖库。

环境要求

  • Python 3.8 及以上版本
  • 需要以下库:
    • PyQt5
    • regex

使用说明

  • 安装依赖库:

    pip install -r requirements.txt
  • 输入数据:data文件夹下新建rust源代码作为输入数据,在main.py中修改相应路径名称。

  • 启动程序: 运行 main.py 启动应用程序。

结果显示

  • 词法分析结果: 词法分析结果在outputs文件夹下的result.json文件中生成。

  • 语法分析结果: 程序执行完成后会在新窗口展示语法分析树。

  • 错误提示: 如果rust源代码存在语法错误,控制台会给出相应的错误提示。

About

Repo of the first project of Compiler Principles, 25 Spring, Tongji University

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors