<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Salut, <br>
    <br>
    Ce zici tu este ca e dificil sa faci diferenta intre dispatch si
    vector. Dar interpretarea nu este ambigua, se poate determina din
    context. De exemplu, sa luam urmatoarele expresii:<br>
    <br>
    [id] - nu poate fi decat dispatch , [] care nu este precedat de o
    expresie nu e index<br>
    expr[id] - nu poate fi decat index <br>
    [id1 [id2]] - e interpretat unic ca dublu dispatch, id1(id2())
    intr-un limbaj C-like;<br>
    [id1[id2].id3] - nu poate fi decat un dispatch + index
    (id1[id2]).id3() in  C++<br>
    <br>
    Un parser care recunoaste asa ceva e un pic mai complex, si daca e
    nevoie, poti folosi o solutiionare implicita a unui conflict
    shift-reduce, cu reguli de precedenta, la un moment dat; si
    prelucrari pe arborele sintactic rezultat in urma parserului, daca
    nu gasesti alta solutie.<br>
    <br>
    (BTW, Testele pe care le-am pus noi pentru tema sunt un pic mai
    permisive si nu acopera chiar toate cazurile de mai sus)<br>
    <br>
    Bogdan<br>
    <br>
    <div class="moz-cite-prefix">On 11/8/2015 4:42 PM, Marius Ungureanu
      via cpl wrote:<br>
    </div>
    <blockquote
cite="mid:CAMqd76SoUObOut110c+hAMFG384TYZ9EnwCpuQpJvz1kHM0ZxA@mail.gmail.com"
      type="cite">
      <p dir="ltr">On Nov 8, 2015 4:43 AM, "Marius Ungureanu" <<a
          moz-do-not-send="true" href="mailto:therzok@gmail.com"><a class="moz-txt-link-abbreviated" href="mailto:therzok@gmail.com">therzok@gmail.com</a></a>>
        wrote:<br>
        ><br>
        > Salut,<br>
        ><br>
        > Avem cazul in care avem un dispatch, iar primul argument
        este de tip substring:<br>
        ><br>
        >  * Caz real: [hello [3, 5].length]<br>
        >  * Caz teoretic: [expresie argument]<br>
        ><br>
        > Gramatica define ambigua in acest context pentru ca am avea
        2 cazuri<br>
        > de conflict:<br>
        ><br>
        > [expresie <inceput de dispatch>]<br>
        > sau<br>
        > [expresie_substring]<br>
        ><br>
        <br>
        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.</p>
      <p dir="ltr">[hello[</p>
      <p dir="ltr">Poate fi:</p>
      <p dir="ltr">[expresie <inceput argument dispatch>]<br>
        [expresie <inceput substring>]</p>
      <p dir="ltr">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).</p>
      <p dir="ltr">Acelasi conflict exista si pentru implementarea
        vectorilor.</p>
      <p dir="ltr">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.</p>
      <p dir="ltr">Multumesc,<br>
        Marius</p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
cpl mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a>
<a class="moz-txt-link-freetext" href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>