You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So the issue is that when we're inside a rule and the user writes { 1 _ 2 }, they almost certainly want an actual space there, so the code currently doesn't put empty blanks on the output queue to prevent that. Unfortunately, it currently can't tell the difference between blanks between partial trees and blanks within a full tree that is currently being disassembled.
The fix for this is slightly non-trivial, but I think what we want to do is record on each blank in the processor what index in the queue it corresponds to. Then in outputAll() we first record the index of any blank that isn't part of a tree and have writeBlank() treat the ranges between those points as mini-queues, skipping empty blanks and inserting spaces as needed.
Possibly related to #80 , blanks are changed depending on unmatched rules.
b.rtx:
Note the space added which wasn't in input:
Now uncomment a rule that matches the sequence and force-removes the space:
but the problem is also "fixed" if you drop the whole S rule with the non-matching (or partially matched) det sent sequence
The text was updated successfully, but these errors were encountered: