I should add to rns' compliment that I do not use code which promotes ambiguity. In all the cases I've dealt with so far, I've been able to avoid it without that interfering with the quality of the software.
I either pre-empt ambiguity by crafting the grammar in such a way as to stop it, or I accept that some inputs will force Marpa to return more that one event simultaneously, when I check the list of events triggered at each pause.
In the first case I run the code and modify the grammar as appropriate. In the second case I choose which event to accept, and output (to my code, not back to Marpa) 1 particular token [*]. If it's a combination of events I have not allowed for, the code dies.
[*] I should clarify: I accept the token (lexeme) Marpa identified as triggering multiple events, but I choose how to identify that token. For example, a char or string could be a member of 2 sets, whose ranges overlap, so I have to choose which set to regard the token as belonging to.
So, this is different from your situation I know, but perhaps it will help.