Skip to content

conql/sompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2d55514 · Apr 25, 2024

History

33 Commits
Mar 6, 2024
Apr 25, 2024
Mar 6, 2024
Apr 23, 2024
Mar 13, 2024
Mar 6, 2024
Mar 13, 2024
Apr 25, 2024
Apr 25, 2024
Apr 14, 2024
Apr 15, 2024
Apr 15, 2024
Mar 13, 2024
Mar 6, 2024
Mar 13, 2024
Apr 25, 2024

Repository files navigation

sompiler

使用方法

  1. 进入 sompiler/
  2. 在终端运行 npm install 下载包
  3. 在终端运行 npm run dev 启动服务
  4. 进入网页端即可进行 词法分析、语法分析、语义分析、目标代码 生成
  5. 进入 TM Running Environment ,终端下运行 main.exe ,输入文件名,即可执行目标代码

项目结构

  • lexicon/ 建立Token数据结构,词法符号LexicalType枚举结构;扫描源程序的字符序列,识别每一个单词机器种类,最后表示成Token形式。
  • syntax/ 采用递归下降法进行语法分析。建立语法树节点,以及各种需要用到的枚举等数据结构;扫描Token形式的源程序,最终形成语法树结构,返回语法树根节点。
  • semantics/ 建立类型的内部表示、标识符的内部表示、语义分析表项、枚举类型等数据结构;检查源程序的语法树有无语义错误,将语义信息存入语法树对应节点中。
  • gencode/ 建立TM寄存器枚举结构;将语法树以及对应的语义信息转换为TM汇编代码。
  • TM Running Environment/ TM虚拟机的执行环境。