diff options
Diffstat (limited to 'compiler/parser.go')
-rw-r--r-- | compiler/parser.go | 4 |
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() |