aboutsummaryrefslogtreecommitdiff
path: root/compiler/parser.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-11-25 23:11:50 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-11-25 23:12:02 +0900
commit10d0c5dfeb9749f4226f86d5ac915718c5bec5c9 (patch)
tree2fd37aa5233f8195ff8d008d125b51b20f269333 /compiler/parser.go
parentSupport Lowercase and Uppercase property (Meet RL1.2 of UTS #18 partially) (diff)
downloadtre-10d0c5dfeb9749f4226f86d5ac915718c5bec5c9.tar.gz
tre-10d0c5dfeb9749f4226f86d5ac915718c5bec5c9.tar.xz
Make character properties available in an inverse expression (Make [^\p{...}] available)
Diffstat (limited to 'compiler/parser.go')
-rw-r--r--compiler/parser.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/parser.go b/compiler/parser.go
index d64b79c..5d1a38d 100644
--- a/compiler/parser.go
+++ b/compiler/parser.go
@@ -652,6 +652,10 @@ func genNormalCharAST(c rune) astNode {
}
func exclude(symbol, base astNode) astNode {
+ if alt, ok := symbol.(*altNode); ok {
+ return exclude(alt.right, exclude(alt.left, base))
+ }
+
switch base.(type) {
case *altNode:
left, right := base.children()