[cpl] [Tema 1] Conflict shift/reduce

Marius Ungureanu therzok at gmail.com
Sun Nov 8 16:42:41 EET 2015


On Nov 8, 2015 4:43 AM, "Marius Ungureanu" <therzok at gmail.com> wrote:
>
> Salut,
>
> Avem cazul in care avem un dispatch, iar primul argument este de tip
substring:
>
>  * Caz real: [hello [3, 5].length]
>  * Caz teoretic: [expresie argument]
>
> Gramatica define ambigua in acest context pentru ca am avea 2 cazuri
> de conflict:
>
> [expresie <inceput de dispatch>]
> sau
> [expresie_substring]
>

Vreau sa clarific. Poate sa faca shift si sa intre in continuare de
substring sau face reduce pentru ca incepe un dispatch si va parsa
urmatorul termen.

[hello[

Poate fi:

[expresie <inceput argument dispatch>]
[expresie <inceput substring>]

Nu vad nicio solutie prin care se poate rezolva ambiguitatea in Bison,
ambele cazuri fiind pertinente si nefiind vorba de prioritate a
operatorilor de stanga (avand aceeasi prioritate definita in manual).

Acelasi conflict exista si pentru implementarea vectorilor.

O solutie care ar fi simpla din punct de vedere sintactic, dar ar schimba
toata tema ar fi ca primul argument al unui dispatch sa fie delimitat de
metoda apelata printr-un separator. I.e. ':' cum face si objc.

Multumesc,
Marius
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/cpl/attachments/20151108/1c1b6fef/attachment.html>


More information about the cpl mailing list