diff options
Diffstat (limited to 'ucd/prop_list.go')
-rw-r--r-- | ucd/prop_list.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ucd/prop_list.go b/ucd/prop_list.go new file mode 100644 index 0000000..cd4a7fe --- /dev/null +++ b/ucd/prop_list.go @@ -0,0 +1,34 @@ +package ucd + +import "io" + +type PropList struct { + WhiteSpace []*CodePointRange +} + +// ParsePropList parses the PropList.txt. +func ParsePropList(r io.Reader) (*PropList, error) { + var ws []*CodePointRange + p := newParser(r) + for p.parse() { + if len(p.fields) == 0 { + continue + } + if p.fields[1].symbol() != "White_Space" { + continue + } + + cp, err := p.fields[0].codePointRange() + if err != nil { + return nil, err + } + ws = append(ws, cp) + } + if p.err != nil { + return nil, p.err + } + + return &PropList{ + WhiteSpace: ws, + }, nil +} |