From 59825260f6017b82c702e0274fb362db305a1b9c Mon Sep 17 00:00:00 2001 From: Erez Shinan Date: Mon, 20 Nov 2017 13:11:35 +0200 Subject: [PATCH] Allow using | on terminals with flags, as long as their flags match --- lark/load_grammar.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lark/load_grammar.py b/lark/load_grammar.py index 19543f0..0414230 100644 --- a/lark/load_grammar.py +++ b/lark/load_grammar.py @@ -368,8 +368,9 @@ class TokenTreeToPattern(Transformer): def expansions(self, exps): if len(exps) == 1: return exps[0] - assert all(not i.flags for i in exps) - return PatternRE('(?:%s)' % ('|'.join(i.to_regexp() for i in exps))) + if len({i.flags for i in exps}) > 1: + raise GrammarError("Lark doesn't support joining tokens with conflicting flags!") + return PatternRE('(?:%s)' % ('|'.join(i.to_regexp() for i in exps)), exps[0].flags) def expr(self, args): inner, op = args