diff options
| author | Andrew Gallant (Ocelot) <[email protected]> | 2012-04-30 02:40:55 -0400 |
|---|---|---|
| committer | Andrew Gallant (Ocelot) <[email protected]> | 2012-04-30 02:40:55 -0400 |
| commit | 91ec0c014823a869775575879de1f5585523fc39 (patch) | |
| tree | fc768a53ff2bbe0bc2aaee737dd14f3e30bd1d6f /xgbgen/morph.go | |
| parent | f8f11e1419e4cf86189ccb9964b8235cef90eb4f (diff) | |
complete and total overhaul like i promised. things are much easier to reason about. still not working yet though.
Diffstat (limited to 'xgbgen/morph.go')
| -rw-r--r-- | xgbgen/morph.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/xgbgen/morph.go b/xgbgen/morph.go new file mode 100644 index 0000000..c39b333 --- /dev/null +++ b/xgbgen/morph.go @@ -0,0 +1,50 @@ + +// Morph cascades down all of the XML and calls each type's corresponding +// Morph function with itself as an argument (the context). +func (x *XML) Morph(c *Context) { + // Start the header... + c.Putln("package xgb") + c.Putln("/*") + c.Putln("\tX protocol API for '%s.xml'.", c.xml.Header) + c.Putln("\tThis file is automatically generated. Edit at your own peril!") + c.Putln("\tGenerated on %s", + time.Now().Format("Jan 2, 2006 at 3:04:05pm MST")) + c.Putln("*/") + c.Putln("") + + x.Imports.Morph(c) + c.Putln("") + + x.Enums.Morph(c) + c.Putln("") + + x.Xids.Morph(c) + c.Putln("") + + x.XidUnions.Morph(c) + c.Putln("") + + x.TypeDefs.Morph(c) + c.Putln("") + + x.Structs.Morph(c) + c.Putln("") + + x.Unions.Morph(c) + c.Putln("") + + x.Requests.Morph(c) + c.Putln("") + + x.Errors.Morph(c) + c.Putln("") + + x.ErrorCopies.Morph(c) + c.Putln("") + + x.Events.Morph(c) + c.Putln("") + + x.EventCopies.Morph(c) + c.Putln("") +} |
