Re: 10206 lexical ambiguity

Peter <[email protected]> Thu, 19 Jan 2017 23:00:48 +0000
Newsgroups gmane.comp.compilers.gpc
Message-ID <[email protected]>
On 19/01/17 20:54, Paul Isaacs wrote:
> 
> 
> On 19/01/17 01:57 PM, Bastiaan Veelo wrote:
>>> On 19 Jan 2017, at 19:48, Paul Isaacs <[email protected]>
>>> wrote:
>>>
>>> Hello,
>>>
>>> Am I correct that, without semantic type tie-ins, that the production
>>>
>>> new-ordinal-type          = enumerated-type
>>>                                       | subrange-type
>>>                                       ;
>>>
>>> is ambiguous because (a) could be both an enumerated type and the
>>> expression for the lower bound of a subrange?
>> Where do you see the ambiguity? enumerated-type is lexically different
>> from subrange-type.
>>
>> Bastiaan.
> 
> Hello Bastiaan,
> 
> x = (a);         enumerated-type
> y = (a)..5     subrange-type where (a) is a subrange-bound, the
> subrange-bound production = expression
>                     and (a) is a lexically valid expression.
> 
>                     This would require a lookahead of 3 tokens to resolve.
>                     I believe the case is unique because "( a," can not
> be an expression so must be an enumerated.
>                    This still requires a lookahead of 2 tokens to resolve.
> 
> The 10206 spec does not contain either lookahead or lalr so maybe
> requiring more than 1 token of lookahead is allowed.
> 
> Regards,
> 
> Paul
> 
> 
> _______________________________________________
> Gpc mailing list
> [email protected]
> https://www.g-n-u.de/mailman/listinfo/gpc

Hi Paul,

As the grammer for new_ordinal_type is

new_ordinal_type:
    enumerated_type
  | subrange_type
  ;

(a) would still be parsed as "new_ordinal_type".

from that point, only one token, either ; or .. is needed to resolve
which "new_ordinal_type" we have. Don't see the problem.

Regards,
Peter




_______________________________________________
Gpc mailing list
[email protected]
https://www.g-n-u.de/mailman/listinfo/gpc