4 ms·
Epsilon injection appears whenever right or left side of ':' has no operand. E.g. (:a) (a:) a:|b a|b: etc I will try to change the precedence and see how
by c0nstantine 2y ago
Epsilon injection appears whenever right or left side of ':' has no operand. E.g.
(:a)
(a:)
a:|b
a|b:
etc
I will try to change the precedence and see how it works.
Btw what do you think about explicit operators '>' '<' where '<' works as usual regex matcher, and '>' as a generator. For example to change 'cat' to 'dog' there could be something like '<cat>dog' where '<cat' part is a parser and '>dog' is a generator. Thanks.
- kccqzy 2y agoI think your epsilon injection rule is trying to achieve this kind of production: TRRE <- TRRE ':' REGEX | ':' TRRE | TRRE ':' | REGEX | ... I think this would work better, but ':a:' is still ambiguous: it has two parse trees.