diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-12-11 18:47:39 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-12-11 19:31:41 +0900 |
commit | 46d49df654e9e152680717830aec70b65e8c507c (patch) | |
tree | cb8c1410e34566a233a93bb52039ef47e0914ab8 /compiler/parser/tree.go | |
parent | Simplify process that generates UTF-8 byte sequences from a code point range (diff) | |
download | tre-46d49df654e9e152680717830aec70b65e8c507c.tar.gz tre-46d49df654e9e152680717830aec70b65e8c507c.tar.xz |
Make character properties unavailable in bracket expressions
Diffstat (limited to 'compiler/parser/tree.go')
-rw-r--r-- | compiler/parser/tree.go | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/compiler/parser/tree.go b/compiler/parser/tree.go index 77d2e46..b5fb723 100644 --- a/compiler/parser/tree.go +++ b/compiler/parser/tree.go @@ -159,7 +159,7 @@ func newRangeSymbolNode(from, to rune) *symbolNode { } func (n *symbolNode) String() string { - return fmt.Sprintf("symbol: %v - %v", n.From, n.To) + return fmt.Sprintf("symbol: %X..%X", n.From, n.To) } func (n *symbolNode) Range() (rune, rune, bool) { @@ -424,13 +424,20 @@ func printCPTree(w io.Writer, t CPTree, ruledLine string, childRuledLinePrefix s return } fmt.Fprintf(w, "%v%v\n", ruledLine, t) - left, right := t.children() children := []CPTree{} - if left != nil { - children = append(children, left) - } - if right != nil { - children = append(children, right) + switch n := t.(type) { + case *rootNode: + children = append(children, n.tree) + case *fragmentNode: + children = append(children, n.tree) + default: + left, right := t.children() + if left != nil { + children = append(children, left) + } + if right != nil { + children = append(children, right) + } } num := len(children) for i, child := range children { |