1 Star 0 Fork 21

C-Band / wa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

凹语言™

Build Status Go Report Card Coverage Status GitHub release

凹语言™(凹读音“Wa”)是柴树杉丁尔男史斌设计的实验性编程语言。

+---+    +---+
| o |    | o |
|   +----+   |
|            |
|     Wa     |
|            |
+------------+

安装和测试:

  1. 安装 Clang, 确保本地 clang 命令有效
  2. go install github.com/wa-lang/wa@latest
  3. wa init -name=_examples/hi
  4. wa run _examples/hi

设计目标

  • 披着 Go 和 Rust 语法外衣的 C++ 语言;
  • 凹语言™源码文件后缀为 .wa
  • 凹语言™编译器兼容 WaGo 语法。WaGo 是 Go 真子集。使用 WaGo 语法的源码文件后缀为 .wa.go。凹语法与 WaGo 语法在 AST 层面一致;
  • 凹语言™支持中文/英文双语关键字,即任一关键字均有中文及英文版,二者在语法层面等价。

更详细请参考 凹语言™项目目标

处理过程

graph LR
    wa_ext(.wa);
    wago_ext(.wa.go);

    wa_ast(Wa AST);

    c_cpp(C/C++);
    llir(LLVM IR);
    wasm(WASM);

    wa_ext   --> wa_ast;
    wago_ext --> wa_ast;

    wa_ast --> c_cpp;
    wa_ast --> llir;
    wa_ast --> wasm;

例子: 打印素数

打印 30 以内的素数:

// 版权 @2021 凹语言™ 作者。保留所有权利。

fn main() {
	for n := 2; n <= 30; n = n + 1 {
		let isPrime int = 1
		for i := 2; i*i <= n; i = i + 1 {
			if x := n % i; x == 0 {
				isPrime = 0
			}
		}
		if isPrime != 0 {
			println(n)
		}
	}
}

运行并输出结果:

$ go run main.go run _examples/prime
2
3
5
7
11
13
17
19
23
29

更多例子

_examples

微信群

微信群二维码

版权

版权 @2019 凹语言™ 作者。保留所有权利。

空文件

简介

🇨🇳 凹语言™ The Wa Programming Language 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/C-BAND/wa.git
git@gitee.com:C-BAND/wa.git
C-BAND
wa
wa
master

搜索帮助