Awesome
Toy-Scheme
这是一个Scheme语言解释器,使用C语言实现了大部分R5RS的语法特性,参考计算机程序的构造和解释中元解释器的原理。
Feature
支持的表达式:
quote
define
if
lambda
begin
cond
let
...
支持的内部过程:
+
整数求和-
整数求差*
整数求积/
整数求商quotient
整数求商remainder
求余数=
判断整数是否相等<
判断整数大小>
判断整数大小cons
连接两个列表或原子car
求列表的表头cdr
求列表的表尾set-car!
设置列表的表头set-cdr!
设置列表的表尾list
构造列表eq?
判断两个列表或原子是否相等null?
判断是否为空表boolean?
判断是否为布尔型symbol?
判断是否是符号integer?
判断是否为整数string?
判断是否为字符串pair?
判断是否为序对procedure?
判断是否为内部过程或复合过程number->string
将整数转换为字符串string->number
将字符串转换为整数symbol->string
将符号转换为字符串string->symbol
将字符串转换为符号environment
查看全局环境中绑定的变量
Build & Install
clone
项目并且在项目内执行:
sudo chmod +x ./INSTALL
sudo ./INSTALL
Usage
直接进入REPL环境
./Toy-Scheme
解释指定的源文件,使用命令./Toy-Scheme -f [file]
./Toy-Scheme -f hello.scm
Requirement
为了编译项目,需要有以下的组件:
- GCC
- Cmake
Author
Wu Lei (<a href="mailto:wuleiatso@gmail.com">wuleiatso@gmail.com</a>)