[go: nahoru, domu]

Skip to content
/ wa Public
forked from wa-lang/wa

The Wa Programming Language: Simple, maintainable, compiled language for developing WebAssembly software

License

Notifications You must be signed in to change notification settings

huaiyuWangh/wa

 
 

Repository files navigation

The Wa Programming Language

简体中文 | English

Build Status Go Report Card Coverage Status GitHub release Go Reference license

Wa is a general-purpose programming language designed for developing robustness and maintainability WebAssembly software. Instead of requiring complex toolchains to set up, you can simply go install it - or run it in a browser.

Note: Our canonical Git repository is located at https://gitee.com/wa-lang/wa. There is a mirror of the repository at https://github.com/wa-lang/wa. Unless otherwise noted, the Wa source files are distributed under the AGPL-v3 license found in the LICENSE file.

Playground

https://wa-lang.org/playground

Snake Game

Install and Run:

Install from binary: download wa command from https://github.com/wa-lang/wa/releases, and set $PATH env.

Or install from Go (Go >= 1.17):

  1. go install wa-lang.org/wa@latest
  2. cd waroot
  3. wa init -name=examples/hi
  4. wa run examples/hi

The Wa project is still in very early stage. If you want to submit PR, please read the Contribution Guide(Chinese). We do not accept PR only about 3rdparty changes.

Example: Print Wa

Print rune and call function:

import "fmt"

global year: i32 = 2023

func main {
	println("hello, Wa!")
	println(add(40, 2), year)

	fmt.Println(1+1)
}

func add(a: i32, b: i32) => i32 {
	return a+b
}

Execute the program:

$ go run main.go hello.wa 
hello, Wa!
42 2023
2

Example: Print Prime

Print prime numbers up to 30:

func main {
	for n := 2; n <= 30; n = n + 1 {
		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)
		}
	}
}

Execute the program:

$ cd waroot && go run ../main.go run examples/prime
2
3
5
7
11
13
17
19
23
29

Example: Print Prime with Chinese syntax

Print prime numbers up to 30:

引于 "书"

【启】:
  // 输出30以内的素数
  从n=2,到n>30,有n++:
    设素=1
    从i=2,到i*i>n,有i++:
      设x=n%i
      若x==0则:
        素=0
      。
    。
    若素!=0则:
      书·曰:n
    。
  。
。

Output is the same as the previous example.

More examples waroot/examples

Contributors

Contributor Contribution points
柴树杉 35000
丁尔男 42500
史斌 29000
扈梦明 14000
赵普明 17000
宋汝阳 2000
刘云峰 1000
王湘南 1000
王泽龙 1000
吴烜 3000
刘斌 2500
尹贻浩 2000

About

The Wa Programming Language: Simple, maintainable, compiled language for developing WebAssembly software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Go 80.6%
  • JavaScript 16.5%
  • CSS 1.8%
  • Witcher Script 0.3%
  • Makefile 0.2%
  • C++ 0.2%
  • Other 0.4%