[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: push parser

From: Paul Eggert
Subject: Re: push parser
Date: Fri, 15 Dec 2006 10:16:57 -0800
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

>> In theory, it should be 
>> possible to have any of the following combinations:
>>   impure LALR(1) pull C
>>   pure   LALR(1) pull C
>>   impure GLR     pull C
>>   pure   GLR     pull C
>>   impure LALR(1) push C
>>   pure   LALR(1) push C
>>   impure GLR     push C
>>   pure   GLR     push C
>>   (Now repeat the list for C++.)

In practice, I think nobody cares about impure parsers (i.e., parsers
with a single global static state) except for the traditional case
(LALR(1) pull C).  As far as I'm concerned, we can drop support for
impure parsers, except for that special case.  Will that help simplify

I haven't been following the technical details, but as I understand it
qthere are the following bits of specialized code.  (Let's assume
LALR(1) C.)

   code for push parsers only
   code for pure pull parsers only
   code for impure pull parsers only
   code that's identical in push and pure pull parsers only
   code that's identical in all three parsers

My assumption is that the other cases (e.g., code that's identical
in push and impure parsers only) don't occur.

If my assumption is right, approximately what percentage of code falls
into each category?  That will help us design a good way to ifdef our
way through this mess.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]