i-go
所属分类:编程语言基础
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2023-10-21 23:31:27
上 传 者:
sh-1993
说明: i-go编程语言解释器,
(i-go Programming Language Interpreter,)
文件列表:
LICENSE.txt (1066, 2023-12-10)
Makefile (93, 2023-12-10)
cmd/ (0, 2023-12-10)
cmd/main.go (121, 2023-12-10)
cmd/repl/ (0, 2023-12-10)
cmd/repl/repl.go (1408, 2023-12-10)
go.mod (43, 2023-12-10)
go.sum (179, 2023-12-10)
src/ (0, 2023-12-10)
src/ast/ (0, 2023-12-10)
src/ast/ast.go (7678, 2023-12-10)
src/ast/ast_test.go (614, 2023-12-10)
src/evaluator/ (0, 2023-12-10)
src/evaluator/built_in_funcs.go (780, 2023-12-10)
src/evaluator/error.go (652, 2023-12-10)
src/evaluator/evaluator.go (10910, 2023-12-10)
src/evaluator/evaluator_test.go (11243, 2023-12-10)
src/lexer/ (0, 2023-12-10)
src/lexer/lexer.go (4449, 2023-12-10)
src/lexer/lexer_test.go (2871, 2023-12-10)
src/object/ (0, 2023-12-10)
src/object/object.go (4247, 2023-12-10)
src/object/object_test.go (1355, 2023-12-10)
src/parser/ (0, 2023-12-10)
src/parser/parser.go (10879, 2023-12-10)
src/parser/parser_test.go (23364, 2023-12-10)
src/token/ (0, 2023-12-10)
src/token/token.go (1132, 2023-12-10)
src/utils/ (0, 2023-12-10)
src/utils/utils.go (248, 2023-12-10)
## Quasark Interpreter
Parser implements [**Pratt parsing algorithm**](https://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/)
### Code snippets
```rs
let fibanacci = fn(n) {
if n < 2 {
return n;
}
return fibanacci(n-2) + fibanacci(n-1)
}
fibanacci(42)
```
```rs
let isAnswerOnTheLifeQuestion = fn(answer) {
let expectedAnswer = 42;
return answer == expectedAnswer;
};
isAnswerOnTheLifeQuestion(69);
```
```rs
let person = {
"age": 10,
"live": fn() { print("living..."); },
};
person["live"]()
```
### How to run locally
- have **go** installed locally
- install dependecies
```bash
go mod download
```
- launch REPL
```bash
make run
```
![image](https://github.com/vdchnsk/quasark/assets/64404596/5c51f070-0884-473f-b38a-299f0fbbfa4e)
近期下载者:
相关文件:
收藏者: