// 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("") }