LEFT | RIGHT |
(no file at all) | |
1 // Copyright 2011 The Go Authors. All rights reserved. | 1 // Copyright 2011 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 package strings | 5 package strings |
6 | 6 |
7 func (r *Replacer) Replacer() interface{} { | 7 func (r *Replacer) Replacer() interface{} { |
8 return r.r | 8 return r.r |
9 } | 9 } |
| 10 |
| 11 func (r *Replacer) PrintTrie() string { |
| 12 gen := r.r.(*genericReplacer) |
| 13 return gen.printNode(&gen.root, 0) |
| 14 } |
| 15 |
| 16 func (r *genericReplacer) printNode(t *trieNode, depth int) (s string) { |
| 17 if t.priority > 0 { |
| 18 s += "+" |
| 19 } else { |
| 20 s += "-" |
| 21 } |
| 22 s += "\n" |
| 23 |
| 24 if t.prefix != "" { |
| 25 s += Repeat(".", depth) + t.prefix |
| 26 s += r.printNode(t.next, depth+len(t.prefix)) |
| 27 } else if t.table != nil { |
| 28 for b, m := range r.mapping { |
| 29 if int(m) != r.tableSize && t.table[m] != nil { |
| 30 s += Repeat(".", depth) + string([]byte{byte(b)}
) |
| 31 s += r.printNode(t.table[m], depth+1) |
| 32 } |
| 33 } |
| 34 } |
| 35 return |
| 36 } |
LEFT | RIGHT |