Re: callback interface not LL(1)

Dominique Hazael-Massieux:
> Another case where I think the recent addition to WebIDL makes the
> grammar no longer LL(1): since "interface" is a valid value of the
> "identifier" production, "callback interface" could be parsed either as
> the starting point of:
>   callback interface foo { };
> or of:
>   callback interface = void ();

As with the similar comment for union types, if you want to name 
something "interface" you'll need to write it as "_interface":

   If the longest possible match could match both an identifier and one
   of the quoted terminal symbols from the grammar, it MUST be tokenized
   as the quoted terminal symbol. Thus, the input text “long” is
   tokenized as the quoted terminal symbol "long" rather than an
   identifier called “long”.

Received on Wednesday, 4 January 2012 03:11:56 UTC