diff options
Diffstat (limited to 'ucd/prop_list.go')
-rw-r--r-- | ucd/prop_list.go | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/ucd/prop_list.go b/ucd/prop_list.go index cd4a7fe..1ceaaea 100644 --- a/ucd/prop_list.go +++ b/ucd/prop_list.go @@ -3,32 +3,43 @@ package ucd import "io" type PropList struct { - WhiteSpace []*CodePointRange + OtherLowercase []*CodePointRange + OtherUppercase []*CodePointRange + WhiteSpace []*CodePointRange } // ParsePropList parses the PropList.txt. func ParsePropList(r io.Reader) (*PropList, error) { + var ol []*CodePointRange + var ou []*CodePointRange 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) + + switch p.fields[1].symbol() { + case "Other_Lowercase": + ol = append(ol, cp) + case "Other_Uppercase": + ou = append(ou, cp) + case "White_Space": + ws = append(ws, cp) + } } if p.err != nil { return nil, p.err } return &PropList{ - WhiteSpace: ws, + OtherLowercase: ol, + OtherUppercase: ou, + WhiteSpace: ws, }, nil } |