2022-01-23 16:33:43 -06:00
|
|
|
# bobbylisp
|
2022-01-21 17:43:50 -06:00
|
|
|
another lisp dialect
|
|
|
|
|
|
|
|
```lisp
|
2022-01-23 16:33:43 -06:00
|
|
|
; example/s.blsp
|
2022-01-23 15:49:27 -06:00
|
|
|
(fun factorial (x)
|
2022-01-21 17:43:50 -06:00
|
|
|
(if (<= x 1)
|
|
|
|
1
|
|
|
|
(* x (factorial (- x 1)))))
|
|
|
|
(do
|
2022-01-23 15:49:27 -06:00
|
|
|
(print (factorial 7)))
|
2022-01-21 17:43:50 -06:00
|
|
|
```
|
|
|
|
|
2022-01-23 15:42:08 -06:00
|
|
|
Compliation flow:
|
|
|
|
```
|
2022-01-25 16:06:57 -06:00
|
|
|
Input(file) -> Parser -> Compile(Bytecode) -> Interpret
|
|
|
|
String SExprs Bytecode IO
|
|
|
|
|-> Compile
|
|
|
|
Assembly(?)
|
2022-01-23 15:42:08 -06:00
|
|
|
```
|
|
|
|
|
2022-01-24 14:08:41 -06:00
|
|
|
## Installation
|
|
|
|
```bash
|
|
|
|
$ make
|
|
|
|
```
|
|
|
|
or
|
|
|
|
```bsah
|
|
|
|
$ make debug
|
|
|
|
```
|
|
|
|
The binary will be installed in `~/bin/blspc` run it with:
|
|
|
|
```
|
|
|
|
$ blspc -h
|
|
|
|
```
|
|
|
|
|
|
|
|
## Progress:
|
2022-01-21 17:43:50 -06:00
|
|
|
- [X] Lexer & Parser
|
2022-01-22 15:36:13 -06:00
|
|
|
- [ ] Syntax checker & Type checker
|
2022-01-23 15:49:27 -06:00
|
|
|
- [ ] Interpreter
|
2022-01-24 14:08:41 -06:00
|
|
|
- [ ] Compiler
|