Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.
/ snlc-rust Public archive

一个基于Rust过程宏的SNL语言的编译器

License

Notifications You must be signed in to change notification settings

Yurzi/snlc-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SNLC

一个基于Rust过程宏编写的SNL语言(Small Nest Language)的编译器,可以将其SNL语言最终编译为目标代码。该编译器重新设计了部分SNL的文法,但大致一致,除了部分语句对于分号结束符的要求不同。

语言功能实现

由于开发周期影响,本实现只完成了SNL语言中的部分功能,并未完全实现其所所有的语言特性。实现的语言功能列举如下。

  • 表达式
  • 控制语句
  • 过程
    • 嵌套函数定义
    • 递归
    • 返回值
  • 变量声明
  • 类型
    • 整形
    • 字符类型
    • 数组
    • 类型定义与记录

如何使用

通过引入相应的过程宏snl!, 即可解析编译其中包括的SNL语言代码,但所有的关键字需要加上r#,以防止关键字冲突。可以使用词法分析器较为方便对关键字进行预处理,最后得到相应的文件进行编译。

About

一个基于Rust过程宏的SNL语言的编译器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages