3body-lang

License Package version Workflow

三体编程语言 Three Body Language written in Rust

Playground: https://rustq.github.io/3body-lang/

Base on Writing An Interpreter In Go and monkey-lang

Try 3body-lang

With REPL

carbon

With Runtime

carbon-2

With Online Playground

playground

Working with Wasm!! 主很在乎 👏🏻

Playground: https://rustq.github.io/3body-lang/

Syntax overview

Variable bindings

Format

给 <identifier> 以 <expression>;

Example

```rust 给 岁月 以 "文明";

给 时光 以 "生命"; ```

Constant bindings

Format

思想钢印 <identifier> = <expression>;

Example

```rust 思想钢印 水 = "剧毒的";

水 = "能喝?";

// Error(水 是 "剧毒的"!) ```

carbon-const

Operators

前进(+)运算符

```rust 给 自然选择 以 0;

自然选择 前进 4

// > 4 ```

降维(-)运算符

```rust 给 宇宙 以 { "维度": 10 };

宇宙.维度 降维 7

// > 3 ```

Boolean

```rust 这是计划的一部分

// > true ```

```rust 主不在乎

// > false ```

Function

Format

法则 (<parameter one>, <parameter two>, ...) { <block statement> };

Example

```rust 给 黑暗森林 以 法则() { 给 基本公理 以 ["生存是文明的第一需要", "文明不断增长和扩张,但宇宙中的物质总量保持不变"]; 基本公理 }

黑暗森林() ```

Loop

Format

面壁 (<expression>) { <block statement> };

Example

```rust 给 面壁计划 以 法则() { 给 危机纪元 以 3; 给 人数 以 4; 面壁 (危机纪元 < 400) {

    给 危机纪元 以 危机纪元 + 1;

    if (危机纪元 == 8) {
        给 人数 以 人数 - 1;
        延续;
    }
    if (危机纪元 == 23) {
        给 人数 以 人数 - 1;
        延续;
    }
    if (危机纪元 == 205) {
        给 人数 以 人数 - 1;
    }

    广播([危机纪元, 人数]);

    if (危机纪元 == 205) {
        破壁;
    }
}

}

面壁计划() ```

Built-in Functions

Print

Format

广播(<arg1>, <arg2>, ...): void

Example

```rust 给 三体世界坐标 以 "半人马星系";

广播(三体世界坐标);

// > "半人马星系" ```

Sleep

Format

冬眠(<arg1>): void

Example

rust 冬眠(1000);

Clear

Format

二向箔清理(): void

Example

rust 二向箔清理();

Exit

Format

毁灭(): void

Example

rust 毁灭();

Request

Format

寻找(<arg1>): void

Example

rust 寻找("https://raw.githubusercontent.com/rustq/3body-lang/main/example/外星文明")

Summary

|Monkey|3body-lang|Explanation| |---|---|---| |let|给|"give"| |=|以|"as"| |+|前进|"go forward"| |-|降维|"dimension reduction"| |true|这是计划的一部分|"It's part of the plan."| |false|主不在乎|"The Lord doesn't care."| |fn|法则|"rule"| |while|面壁|"face the wall"| |break|破壁|"break the wall"| |continue|延续、延绪|"continue"| |print|广播|"broadcast"| |sleep|冬眠|"hibernation"| |clear|二向箔清理|"two-way foil cleaning"| |exit|毁灭|"destroy"| |request|寻找|"search"| |const|思想钢印|"thoughtcontrou"|

System Libraries

rand

Development

```bash $ git clone https://github.com/rustq/3body-lang.git

$ cd 3body-lang

$ make repl ```

$ ./target/debug/runtime ./example/地球.3body

$ make build_wasm

$ make test

有更多建议和想法 💡

Create issues: issues

License

MIT