coord-e/expressi
Expression-oriented toy programming language written in Rust
{ "createdAt": "2018-08-09T08:50:17Z", "defaultBranch": "develop", "description": "Expression-oriented toy programming language written in Rust", "fullName": "coord-e/expressi", "homepage": "", "language": "Rust", "name": "expressi", "pushedAt": "2019-03-18T14:40:30Z", "stargazersCount": 19, "topics": [ "llvm", "programming-language" ], "updatedAt": "2024-02-20T18:14:13Z", "url": "https://github.com/coord-e/expressi"}expressi
Section titled “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.
- Refine errors
- Property organize error variants
- Get rid of
unwrapcompletely - Point where the cause is
- Add
EvalConstanttransformer which calculates compile-time value - Implement operators as functions
- User-defined types
- Tuple
- Enum
- Struct
- Multi-line input in REPL
License
Section titled “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
Section titled “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.