Ruslan,

thanks for your reply. So sorry for not being clear enough.

I am not looking to handle the situation you describe which I believe 
pertains to that one recognizes two or more conflicting lexical symbols and 
then continues the parse with all these symbols as possible continuations.

My situation is as follows: I encounter a rejection in the parse and am 
recovering. I have two or more ruby slippers prepared, which in this case 
are all applicable. If I step into one of the ruby slippers, it will whisk 
me away back into the parser and the parser will continue until the ruby 
slippers have done their thing. However, at this point we have advanced in 
the parse and might have consumed G1 locations and are not in the same 
position anymore that we were when we stepped into the ruby slippers.

But I had other ruby slippers I could have used, and had I stepped into one 
of these, I would have ended up with a different parse, potentially. So I 
am trying to find a way of stepping into each of the ruby slippers, one at 
a time, and getting a partial parse. After I found all the partial parses 
from the applicable ruby slippers, I would like for each of these partial 
parses to be reflected in the parse forest.

I would have to do something for this to happen. Recognizing alternative 
lexemes is not the way to get there, I believe. I have partial parses that 
I need to hand back to the G routines, so they can embed them into their 
constructed data structures.

Maybe I am outside of what is feasible here, but it would be good to know 
at least....


On Sunday, February 15, 2015 at 4:12:52 AM UTC-6, rns wrote:
>
> Marpa allows ambiguous lexemes; in external lexing you can read those 
> several alternative lexemes via several calls to lexeme_alternative() [1] 
> and then a single call to lexeme_complete() [2] and, provided the grammar 
> has the appropriate rules, this will lead to a parse forest (use example of 
> a parse forest with internal lexing can be found in [3]).
>
> Marpa will use both pairs to continue both parses if you give it a 
> grammar which defines rules for such both pairs, example is also in [3]. 
> And, if you have enough rules, Marpa will parse the input according to them 
> and will allow you to handle the multiple parse results.
>
>
>
> On Sun, Feb 15, 2015 at 8:53 AM, Thomas Weigert <[email protected] 
> <javascript:>> wrote:
>
>> I am wondering whether it is possible to generate ambiguous parses with 
>> the help of an external lexer.
>>
>> I have the following situation: Upon a rejection event, I am cleaning up 
>> in the lexer to be able to continue the parse. However, there are two pairs 
>> of ruby slippers I can use. What I would like to do is not to arbitrarily 
>> choose one pair and continue the parse, but to use both pairs to continue 
>> both parses, potentially resulting in a parse forest.
>>
>> From studying the manual and the available examples, I cannot see how to 
>> do this.
>>
>> I would greatly appreciate if anybody could advise whether this is 
>> possible, and if so, point me into the right direction.
>>
>> Thanks, Th.
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "marpa parser" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to