diff options
| author | Pietro Gagliardi <[email protected]> | 2014-07-11 10:29:52 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-07-11 10:29:52 -0400 |
| commit | 1f883c5b40bb99e2671b2fb26b2a5fdb8a42c1fa (patch) | |
| tree | 05e4344a1805c2e2f819f030755255cfa4cb247d /redo/zwinconstgen.go | |
| parent | 114c4050eb64527d3d02c538416d42f60ea33da3 (diff) | |
Added basic struct parsing to zwinconstgen.go.
Diffstat (limited to 'redo/zwinconstgen.go')
| -rw-r--r-- | redo/zwinconstgen.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/redo/zwinconstgen.go b/redo/zwinconstgen.go index b54b4f2..4020df5 100644 --- a/redo/zwinconstgen.go +++ b/redo/zwinconstgen.go @@ -112,7 +112,11 @@ func writeConstPrint(f *os.File, c string) { func writeStructPrint(f *os.File, s string) { cs := s[2:] // strip leading s_ fmt.Fprintf(f, "\tt = reflect.TypeOf(C.%s{})\n", cs) - // TODO + fmt.Fprintf(f, "\tfmt.Fprintf(buf, \"type %%s struct {\\n\", %q)\n", s) + fmt.Fprintf(f, "\tfor i := 0; i < t.NumField(); i++ {\n") + fmt.Fprintf(f, "\t\tfmt.Fprintf(buf, \"\\t%%s %%s\\n\", t.Field(i).Name, t.Field(i).Type.Kind())\n") + fmt.Fprintf(f, "\t}\n") + fmt.Fprintf(f, "\tfmt.Fprintf(buf, \"}\\n\")\n") } func main() { @@ -182,7 +186,6 @@ func main() { writeConstPrint(f, c) } writeLine(f, "\tvar t reflect.Type") - writeLine(f, "\tvar s string") for _, s := range structs { writeStructPrint(f, s) } |
