expressi
所属分类:编译器/解释器
开发工具:Rust
文件大小:72KB
下载次数:0
上传日期:2019-03-18 14:40:30
上 传 者:
sh-1993
说明: 用Rust编写的面向表达式的玩具编程语言
(Expression-oriented toy programming language written in Rust)
文件列表:
expressi-develop (0, 2019-03-18)
expressi-develop\.travis.yml (558, 2019-03-18)
expressi-develop\Cargo.lock (35230, 2019-03-18)
expressi-develop\Cargo.toml (406, 2019-03-18)
expressi-develop\LICENSE-APACHE (88606, 2019-03-18)
expressi-develop\LICENSE-MIT (1071, 2019-03-18)
expressi-develop\build.rs (77, 2019-03-18)
expressi-develop\src (0, 2019-03-18)
expressi-develop\src\cli (0, 2019-03-18)
expressi-develop\src\cli\build.rs (2122, 2019-03-18)
expressi-develop\src\cli\error.rs (267, 2019-03-18)
expressi-develop\src\cli\jit.rs (2344, 2019-03-18)
expressi-develop\src\cli\mod.rs (113, 2019-03-18)
expressi-develop\src\cli\opts.rs (3260, 2019-03-18)
expressi-develop\src\cli\shell.rs (2310, 2019-03-18)
expressi-develop\src\codegen (0, 2019-03-18)
expressi-develop\src\codegen\compilation_result.rs (2148, 2019-03-18)
expressi-develop\src\codegen\compile.rs (1431, 2019-03-18)
expressi-develop\src\codegen\error.rs (622, 2019-03-18)
expressi-develop\src\codegen\initialization.rs (429, 2019-03-18)
expressi-develop\src\codegen\mod.rs (133, 2019-03-18)
expressi-develop\src\codegen\target_machine.rs (2793, 2019-03-18)
expressi-develop\src\codegen\tests.rs (2073, 2019-03-18)
expressi-develop\src\error.rs (2037, 2019-03-18)
expressi-develop\src\expression.rs (1869, 2019-03-18)
expressi-develop\src\ir (0, 2019-03-18)
expressi-develop\src\ir\binding_kind.rs (408, 2019-03-18)
expressi-develop\src\ir\display.rs (2337, 2019-03-18)
expressi-develop\src\ir\eir.rs (217, 2019-03-18)
expressi-develop\src\ir\identifier.rs (30, 2019-03-18)
expressi-develop\src\ir\literal.rs (226, 2019-03-18)
expressi-develop\src\ir\mod.rs (313, 2019-03-18)
expressi-develop\src\ir\node.rs (1482, 2019-03-18)
expressi-develop\src\ir\type_.rs (793, 2019-03-18)
expressi-develop\src\ir\value.rs (654, 2019-03-18)
expressi-develop\src\lib.rs (273, 2019-03-18)
expressi-develop\src\main.rs (629, 2019-03-18)
expressi-develop\src\parser.rs (9396, 2019-03-18)
... ...
# expressi
[![Build Status](https://travis-ci.com/coord-e/expressi.svg?branch=develop)](https://travis-ci.com/coord-e/expressi)
[![codecov](https://codecov.io/gh/coord-e/expressi/branch/develop/graph/badge.svg)](https://codecov.io/gh/coord-e/expressi)
Expression-oriented toy programming language written in Rust
```
let add = a -> b -> a + b;
let succ = add(1);
let v = succ(succ(succ(1)));
let f = if v == 4 {
a -> succ(a)
} else {
a -> a
};
let x = f(10)
```
In this example, `x` is evaluated to `11`.
## TODO
- Refine errors
- Property organize error variants
- Get rid of `unwrap` completely
- Point where the cause is
- Add `EvalConstant` transformer which calculates compile-time value
- Implement operators as functions
- User-defined types
- Tuple
- Enum
- Struct
- Multi-line input in REPL
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
近期下载者:
相关文件:
收藏者: