Patrick~

On 10/10/05, Patrick R. Michaud <[EMAIL PROTECTED]> wrote:
> On Mon, Oct 10, 2005 at 10:45:54AM -0400, Matt Fowles wrote:
> > Perhaps a better approach would be to perform a bit
> > of static analysis on the grammar and look for left recursions at
> > creation time (I believe that is a known problem).  Then we can just
> > warn once up front and go on our merry way recursing at matchtime.
>
> I think this approach falls back into my category of
> "unless someone wants to take on the task of implementation it's not
> likely to be resolved anytime soon..."  :-) :-)
>
> In a dynamic environment like the one we have (parrot/perl) I find it's
> really hard to say what constitutes "creation time", especially since
> we can refer to subrules dynamically ( <$foo>, <::$foo>, etc. ) and
> our grammars have inheritance in which a rule defined by a parent
> grammar can invoke a rule defined later in a child grammar.  As with
> closures, we could probably punt on performing any analysis of
> rules with dynamic references or that refer to rules outside of
> the current grammar.  But given that we can't really know until
> matchtime what subrule will be invoked by an expression like <binary>,
> it's hard for me to imagine a whole lot we can do in the way of
> static analysis beforehand.  However, that could easily just be a
> limit of my imagination.

I completely forgot about inheritance.  That basically throws static
analysis out the window.

Matt
--
"Computer Science is merely the post-Turing Decline of Formal Systems Theory."
-Stan Kelly-Bootle, The Devil's DP Dictionary

Reply via email to