Hello Roman, I introduced in my "Mouse" two "a until b" expressions: a*+b and a++b, > meaning (!ba)*b and (!ba) (!ba)*b. >
It's interesting that you placed the negative lookahead on front. My first thought was that there should be a "_skip_" before checking for the marker, but now that I think of it skipping first may skip over part of the marker. It's also interesting that you let the grammar writer decide which the skipping expression (a) will be. I opted for always skipping one input position, because it covers most cases, and it has an efficient implementation. Since there is not an "_ANY CHAR_" expression in TatSu, the only way to advance one place is an expensive regex (though I could make the regex `/./` a special case). I haven't published the TatSu version with the "_skip to_" expression, so I can still tweak the meaning. I have to think more about your approach, which makes a lot of sense! Cheers! -- Juancarlo *Añez*
_______________________________________________ PEG mailing list PEG@lists.csail.mit.edu https://lists.csail.mit.edu/mailman/listinfo/peg