diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..55a1c9a --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ + + +myslip README +============= + +Below is a short introduction to this programming language +and instructions on setting it up. +`TUTORIAL.md` may help getting familiar with the language. + + +Language introduction +--------------------- +STILL TODO (or to modify) +how functional is it? +myslip is a lisp-inspired language, but a bit different +(mostly, because I have never really written lisp except + for in emacs, so I have no clue of what lisp usually is + like). +Valid myslip s-expressions may be atoms of different types +or lists of them, though not all syntactically valid +myslip expressions are ones that can be evaluated. + +S-expression := Atom | List +Atom := TODO +List := (S-expression ... S-expression) + +The myslip interpreter performs type checking on +s-expressions and evaluates them according to polish +notation, ie. the first S-expression of a list is taken to +be the operator that is passed the rest of the expressions +as arguments. + + +Running the project +------------------- + +myslip can be built using cargo 1.88.0. Instructions to +install cargo can be found online: +https://doc.rust-lang.org/cargo/getting-started/installation.html + +If you are having trouble due to having a different version +and you used rustup for your cargo installation, you can +follow these instructions on how to change the rust version +https://rust-lang.github.io/rustup/overrides.html + +TODO: system requirements? try it out on debian +```console +TODO +$ sudo apt install curl git +$ curl ??? | sh ??? +$ git clone ??? +$ cd myslip +``` +and then the interpreter can be accessed either via +`cargo run`, or then you can add it to your path: +```console +TODO +$ cargo build +$ ln ??? ??? +$ myslip +``` + + |