go/ast: return Examples in name order

R=bradfitz
CC=golang-dev
https://golang.org/cl/5673061
diff --git a/src/pkg/go/ast/example.go b/src/pkg/go/ast/example.go
index 33a8368..dec496b 100644
--- a/src/pkg/go/ast/example.go
+++ b/src/pkg/go/ast/example.go
@@ -9,6 +9,7 @@
 import (
 	"go/token"
 	"regexp"
+	"sort"
 	"strings"
 	"unicode"
 	"unicode/utf8"
@@ -66,6 +67,7 @@
 		}
 		list = append(list, flist...)
 	}
+	sort.Sort(exampleByName(list))
 	return list
 }
 
@@ -106,3 +108,9 @@
 	rune, _ := utf8.DecodeRuneInString(name[len(prefix):])
 	return !unicode.IsLower(rune)
 }
+
+type exampleByName []*Example
+
+func (s exampleByName) Len() int           { return len(s) }
+func (s exampleByName) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
+func (s exampleByName) Less(i, j int) bool { return s[i].Name < s[j].Name }