From bedf0c1c72a2e13e08fbaa221b8a4c3ccf3a57a7 Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Tue, 23 Nov 2021 22:15:54 +0900 Subject: Support White_Space property (Meet RL1.2 of UTS #18 partially) --- ucd/prop_list.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 ucd/prop_list.go (limited to 'ucd') 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 +} -- cgit v1.2.3