Open moritz-geier opened 5 months ago
This is a dirty fix, in my opinion we should use std::distance
within dfa_match
to initiate rt.len
, thus eliminating the need for the if
s afer calling the function. This would mean we need to enforce the iterators of each buffer to provide a operator-
implementation.
First of all I am reluctant to commit any new work until I merge my term groups feature into master. The only thing left to do (as always) is msvc compilation, which I just don't have time to do at the moment.
I would gladly accept help regarding this topic.
The feature is very nice itself, it allows much smaller parsers and compile times when grouping similar terminal symbols. C language for instance has 11 assignment operators which from parser point of view are the same.
Second thing, after I'm done with the grouped terms feature, we can think of a better solution (you already mentioned a nice one) not this dirty one.
Would you be willing to work on making the term-groups branch work on msvc?
Yes I can try and get it working.
Hello,
I got an error on Windows 11 and MSVC 19.39 where the parser fails. This happens if the
dfa_match
returnsuninitialized16
and we try to add it to the iterator. Thus here my proposed fix.To test the behavior create the following parser
and try to parse