diff --git a/internal/ucd/ucd.go b/internal/ucd/ucd.go
index 2b0d1a1..60b27d5 100644
--- a/internal/ucd/ucd.go
+++ b/internal/ucd/ucd.go
@@ -78,6 +78,14 @@
 	}
 }
 
+// The CommentHandler option passes comments that are on a line by itself to
+// a given handler.
+func CommentHandler(f func(s string)) Option {
+	return func(p *Parser) {
+		p.commentHandler = f
+	}
+}
+
 // A Parser parses Unicode Character Database (UCD) files.
 type Parser struct {
 	scanner *bufio.Scanner
@@ -92,7 +100,8 @@
 	parsedRange          bool
 	rangeStart, rangeEnd rune
 
-	partHandler func(p *Parser)
+	partHandler    func(p *Parser)
+	commentHandler func(s string)
 }
 
 func (p *Parser) setError(err error) {
@@ -138,7 +147,13 @@
 
 	for p.scanner.Scan() {
 		b := p.scanner.Bytes()
-		if len(b) == 0 || b[0] == '#' {
+		if len(b) == 0 {
+			continue
+		}
+		if b[0] == '#' {
+			if p.commentHandler != nil {
+				p.commentHandler(strings.TrimSpace(string(b[1:])))
+			}
 			continue
 		}
 
