Update readme, alter echo command

This commit is contained in:
Aidan Hahn 2021-09-19 16:05:30 -07:00
parent f985ecef3d
commit 2c5d64bc9c
No known key found for this signature in database
GPG key ID: 327711E983899316
2 changed files with 14 additions and 11 deletions

View file

@ -5,19 +5,22 @@ Rusty Expressive LIsp SHell
Relish is a language meant to iterate on the ideas and designs that were tested with [SHS](https://gitlab.com/whom/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. Relish is a language meant to iterate on the ideas and designs that were tested with [SHS](https://gitlab.com/whom/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 ## Current Status
Current master contains the datatypes and type system used by the language interpreter, as well as Lexing and Parsing routines. "Segments" (cons cells) are used for the abstract syntax tree. Tables are used for variable and function declarations. An evaluation routine is nearly complete. Tests are included for the Lexing and Parsing process and the function call routine. With the completion (and subsequent testing) of the evalution routine two more objectives will need to be completed: - Core functionality (lexing, parsing, evaluation, function and variable tables) is complete and tested
- Shell interfzce that manages configurations and orchestrates a shell prompt - A primitive REPL is complete
- Stdlib that implements the following functionality
- POSIX compliant shell with job control ### Pre-alpha release tasks
- String manipulation - Rudimentary control flow (if, loop, let)
- File read/write functionality - Variable declaration and environment integration
- arithmetic operations - Function declaration
- control flow - Shell module including foreground process, background process, and environment variable
- boolean comparisons and operations - Stdlib including string operations, arithmetic operations, and file operations
- environment variable access - TESTS TESTS TESTS
## Compilation ## Compilation
`$ cargo build` `$ cargo build`
## Testing ## Testing
`$ cargo test` `$ cargo test`
## Running
`$ cargo run src/bin/main.rs`

View file

@ -41,7 +41,7 @@ pub fn get_echo() -> Function {
Ctr::Seg(c) => string.push_str(ast_as_string(c.clone(), true).as_str()), Ctr::Seg(c) => string.push_str(ast_as_string(c.clone(), true).as_str()),
Ctr::None => () Ctr::None => ()
} }
string.push_str(" "); string.push_str("\n");
return true; return true;
}) { }) {
// TODO: use custom logger // TODO: use custom logger