diff --git a/README.md b/README.md index f41db73ffabf8360bc5c36206724fc70ef8a0e84..ed947b9e9d819441023da1ef5b94b3b16754ed90 100644 --- a/README.md +++ b/README.md @@ -14,20 +14,22 @@ ## 设计哲学 -- 披着 Go 和 Rust 语法外衣的 C++ 语言; -- 凹语言™源码文件后缀为 `.wa`; -- 凹语言™编译器兼容 WaGo 语法。WaGo 是 μGo 真超集,同时 WaGo 是 Go 真子集,使用 WaGo 语法的源码文件后缀为 `.wa.go`。凹语法与 WaGo 语法在 AST 层面一致; -- 凹语言™支持中文/英文双语关键字,即任一关键字均有中文及英文版,二者在语法层面等价。 +- 披着 Go 和 Rust 语法外衣的 C++ 语言 +- 凹语言™源码文件后缀为 `.wa` +- 支持 `*.wa` 和 `*.wa.go` 两种类型的源码,分别采用凹语言™语法和 uGo 语法,二者在 AST 层面统一 +- 凹语言支持英文和中文关键字,二者在 AST 层面统一,格式化时可指定输出的类型 +- 凹语言的 AST 支持 C/LLVM/WASM 等后端 -## 例子 +## 例子: 打印素数 + +[./_examples/hello/hello.wa.go](./_examples/hello/hello.wa.go) 打印 30 以内的素数: -打印素数: ``` // 版权 @2021 凹语言™ 作者。保留所有权利。 -fn main() string { +fn main() { for n := 2; n <= 30; n = n + 1 { - var isPrime int = 1 + let isPrime int = 1 for i := 2; i*i <= n; i = i + 1 { if x := n % i; x == 0 { isPrime = 0