Background: A design goal of wBNF is to provide all possible binary operators. This means not just making all binary operations expressible, but to allow it without repeating either term. For instance, a(ba)* matches a b-separated list of a. However we had to repeat a to express this. The a:b operator exists to close this gap.
The problem: wBNF is incomplete. There is no way to say a(ba){m,n} without repeating a.
One solution is as follows: a:{m,n}b = a(ba){m,n}.
Background: A design goal of wBNF is to provide all possible binary operators. This means not just making all binary operations expressible, but to allow it without repeating either term. For instance,
a(ba)*
matches ab
-separated list ofa
. However we had to repeata
to express this. Thea:b
operator exists to close this gap.The problem: wBNF is incomplete. There is no way to say
a(ba){m,n}
without repeatinga
.One solution is as follows:
a:{m,n}b
=a(ba){m,n}
.