{{with .PAst}}{{node $ .}}{{end}}{{/*

---------------------------------------

*/}}{{with .PDoc}}{{if $.IsMain}}COMMAND DOCUMENTATION

{{comment_text .Doc "    " "\t"}}
{{else}}PACKAGE DOCUMENTATION

package {{.Name}}
    import "{{.ImportPath}}"

{{comment_text .Doc "    " "\t"}}
{{example_text $ "" "    "}}{{/*

---------------------------------------

*/}}{{with .Consts}}
CONSTANTS

{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Vars}}
VARIABLES

{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Funcs}}
FUNCTIONS

{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{example_text $ .Name "    "}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Types}}
TYPES

{{range .}}{{$tname := .Name}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{range .Consts}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{range .Vars}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{example_text $ .Name "    "}}
{{range .Funcs}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{example_text $ .Name "    "}}
{{end}}{{range .Methods}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{$name := printf "%s_%s" $tname .Name}}{{example_text $ $name "    "}}{{end}}
{{end}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with $.Notes}}
{{range $marker, $content := .}}
{{$marker}}S

{{range $content}}{{comment_text .Body "   " "\t"}}
{{end}}{{end}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Dirs}}
SUBDIRECTORIES
{{if $.DirFlat}}{{range .List}}{{if .HasPkg}}
	{{.Path}}{{end}}{{end}}
{{else}}{{range .List}}
	{{repeat `. ` .Depth}}{{.Name}}{{end}}
{{end}}{{end}}
