GitHub - mattn/anko: Scriptable interpreter written in golang
source link: https://github.com/mattn/anko
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
anko
Anko is a scriptable interpreter written in Go.
(Picture licensed under CC BY-SA 3.0 by wikipedia)
Installation
Requires Go.
$ go get -u github.com/mattn/anko
Examples
# declare function func plus(n){ return n + 1 } # declare variables x = 1 y = x + 1 # print values println(x * (y + 2 * x + plus(x) / 2)) # if/else condition if plus(y) > 1 { println("こんにちわ世界") } else { println("Hello, World") } # array type a = [1,2,3] println(a[2]) println(len(a)) # map type m = {"foo": "bar", "far": "boo"} m.foo = "baz" for k in keys(m) { println(m[k]) }
See _examples/scripts
for more examples.
Usage
Embedding the interpreter into your own program:
var env = vm.NewEnv() env.Define("foo", 1) env.Define("bar", func() int { return 2 }) val, err := env.Execute(`foo + bar()`) if err != nil { panic(err) } fmt.Println(val) // output: // 3
To import all core language builtins, allowing the example scripts to work:
import "github.com/mattn/anko/core" var env = vm.NewEnv() core.Import(env) _, err := env.Execute(`println("test")`) if err != nil { panic(err) } // output: // "test"
Running scripts using anko command-line tool:
$ anko script.ank
Author
Yasuhiro Matsumoto (a.k.a mattn)
Note
Please note that the master branch is not stable, the language and API may change at any time.
To mitigate breaking changes, please use tagged branches. New tagged branches will be created for breaking changes.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK