code: func Parse(w io.Writer, r io.Reader, filename, pkg string) error {
  	p := &parser{
  		s:           newScanner(r, filename),
  		w:           w,
  		packageName: pkg,
  	}
  	return p.parseTemplate()
  }
docs: // Parse parses the contents of the supplied reader, writing generated code to
  // the supplied writer. Uses filename as the source file for line comments, and
  // pkg as the Go package name.