On Sat, 29 Jan 2005, Mark Probert wrote:

> Hi ..
>
> On Friday 28 January 2005 02:37, Hugh Sasse Staff Elec Eng wrote:
>> On Fri, 28 Jan 2005, Clifford Heath wrote:
>>> Hugh Sasse Staff Elec Eng wrote:
>>>> According to "Crafting a Compiler" ISBN 0-8053-3201-4 it seems that
>>>> recursive descent implies LL(1)...
>>>
>>> No. LL(1) just means that the recursive descent parser may only consider
>>> the current unprocessed token. If the lexer allows perusal of two
>>> unprocessed tokens, your recursive descent parser is LL(2).
>>
>> Isn't that just re-framing the problem so that all token pairs are
>> regarded as single entities?
>>
> I am not sure if I fully understand but here goes.  In parsing, there is the
         [...]
>
> For example, the following rule is not LL(1):
>
>  State = ident "=" Expr
>        | ident [ "(" ExprList ")" ] .
>
Oh, I was forgetting that ident may be a nonterminal, therefore
composed of n terminals.  Hence my above question is rubbish!

> Because we can't determine from a single lookahead which of the ident rules to
> trigger.  With LL(2) we could as it would be determined by the "=" or the
> "(".
>
> I hope that this helps.

Thank you.
>
> Regards,
>
> --
> -mark.  (probertm at acm dot org)
>
         Hugh
>