blob: a65cdb7044690cbbf93b65a1c531f8a8f844b7e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
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
```
Exit the REPL by CTRL+C, CTRL+D or entering "exit".
|