gogen

所属分类:内容生成
开发工具:GO
文件大小:21KB
下载次数:0
上传日期:2017-03-07 00:34:53
上 传 者sh-1993
说明:  用于编程Go代码生成的库
(Library for programmatic Go code generation)

文件列表:
assign.go (276, 2017-03-07)
assign_test.go (1004, 2017-03-07)
binary_op.go (1302, 2017-03-07)
builtins.go (271, 2017-03-07)
cmd (0, 2017-03-07)
cmd\astdump (0, 2017-03-07)
cmd\astdump\main.go (1050, 2017-03-07)
cmd\genfunctree (0, 2017-03-07)
cmd\genfunctree\main.go (3139, 2017-03-07)
declaration.go (87, 2017-03-07)
declare.go (498, 2017-03-07)
declare_and_assign.go (296, 2017-03-07)
declare_and_assign_test.go (1075, 2017-03-07)
declare_test.go (1327, 2017-03-07)
dotted.go (240, 2017-03-07)
dotted_test.go (881, 2017-03-07)
examples (0, 2017-03-07)
examples\declare_function.go (656, 2017-03-07)
examples\for_loop.go (613, 2017-03-07)
examples\hello_world.go (343, 2017-03-07)
examples\run-example.sh (198, 2017-03-07)
expression.go (85, 2017-03-07)
fn (0, 2017-03-07)
fn\fns.go (96, 2017-03-07)
fn\map.go (1434, 2017-03-07)
fn\print.go (620, 2017-03-07)
for.go (631, 2017-03-07)
for_test.go (1026, 2017-03-07)
function.go (2214, 2017-03-07)
function_call.go (631, 2017-03-07)
function_call_test.go (775, 2017-03-07)
gogen_suite_test.go (188, 2017-03-07)
if.go (456, 2017-03-07)
import.go (423, 2017-03-07)
import_test.go (1014, 2017-03-07)
package.go (622, 2017-03-07)
package_test.go (454, 2017-03-07)
range.go (782, 2017-03-07)
... ...

# gogen A simplification of Go's `go/ast` package that allows for some interesting code generation. Currently very rough. # Examples ## Hello World ```go package main import ( "os" . "github.com/garslo/gogen" ) func main() { pkg := Package{Name: "main"} pkg.Declare(Import{"fmt"}) pkg.Declare(Function{ Name: "main", Body: []Statement{ CallFunction{ Func: Dotted{Var{"fmt"}, "Println"}, Params: []Expression{Var{`"Hello World!"`}}, }, }, }) pkg.WriteTo(os.Stdout) } ``` Output: ```go package main import "fmt" func main() { fmt.Println("Hello World!") } ``` ## More See the [examples](https://github.com/garslo/gogen/tree/master/examples) directory for more examples and a build/run script. ```sh $ ./run-example.sh for_loop.go CODE: package main import "os" import "fmt" func main() { var i int for i = 0; i <= 10; i++ { fmt.Println(i) } os.Exit(i) } RUN RESULT: 0 1 2 3 4 5 6 7 8 9 10 exit status 11 ```

近期下载者

相关文件


收藏者