tree-traversing LISP interpreter geared toward embeddability and system scripting
Find a file
2021-09-19 16:05:30 -07:00
src Update readme, alter echo command 2021-09-19 16:05:30 -07:00
tests new fixes for lexing process, tests to go with them 2021-09-18 16:48:24 -07:00
.gitignore - syntax tree datatypes 2021-01-24 12:34:58 -08:00
.gitlab-ci.yml add ci 2021-09-18 17:05:52 -07:00
Cargo.lock - syntax tree datatypes 2021-01-24 12:34:58 -08:00
Cargo.toml add missing deps in Cargo 2021-09-19 15:02:24 -07:00
LICENSE.md - syntax tree datatypes 2021-01-24 12:34:58 -08:00
Readme.md Update readme, alter echo command 2021-09-19 16:05:30 -07:00

Relish

Rusty Expressive LIsp SHell

Goals

Relish is a language meant to iterate on the ideas and designs that were tested with SHS. Relish acts as both as a high level scripting language and as a system shell. This language is meant to be practical for administrators and power users. Similar technologies include Python, Bash, and Racket.

Current Status

  • Core functionality (lexing, parsing, evaluation, function and variable tables) is complete and tested
  • A primitive REPL is complete

Pre-alpha release tasks

  • Rudimentary control flow (if, loop, let)
  • Variable declaration and environment integration
  • Function declaration
  • Shell module including foreground process, background process, and environment variable
  • Stdlib including string operations, arithmetic operations, and file operations
  • TESTS TESTS TESTS

Compilation

$ cargo build

Testing

$ cargo test

Running

$ cargo run src/bin/main.rs