summaryrefslogtreecommitdiff
path: root/src/tokenizer.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/tokenizer.go')
-rw-r--r--src/tokenizer.go28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/tokenizer.go b/src/tokenizer.go
index 7f4aef48..fade1d10 100644
--- a/src/tokenizer.go
+++ b/src/tokenizer.go
@@ -18,6 +18,32 @@ type Range struct {
end int
}
+func RangesToString(ranges []Range) string {
+ strs := []string{}
+ for _, r := range ranges {
+ s := ""
+ if r.begin == rangeEllipsis && r.end == rangeEllipsis {
+ s = ".."
+ } else if r.begin == r.end {
+ s = strconv.Itoa(r.begin)
+ } else {
+ if r.begin != rangeEllipsis {
+ s += strconv.Itoa(r.begin)
+ }
+
+ if r.begin != -1 {
+ s += ".."
+ if r.end != rangeEllipsis {
+ s += strconv.Itoa(r.end)
+ }
+ }
+ }
+ strs = append(strs, s)
+ }
+
+ return strings.Join(strs, ",")
+}
+
// Token contains the tokenized part of the strings and its prefix length
type Token struct {
text *util.Chars
@@ -41,7 +67,7 @@ func (d Delimiter) String() string {
}
func newRange(begin int, end int) Range {
- if begin == 1 {
+ if begin == 1 && end != 1 {
begin = rangeEllipsis
}
if end == -1 {