<p dir="ltr">Am inteles.</p>
<p dir="ltr">Multumesc mult,<br>
Marius</p>
<div class="gmail_quote">On Nov 8, 2015 11:42 PM, "Bogdan Nitulescu" <<a href="mailto:bogdannitulescu@yahoo.com">bogdannitulescu@yahoo.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Da; daca vrei ca parserul sa iti mearga perfect pe absolut toate
    cazurile, trebuie sa ai o gramatica un pic mai complexa decat cateva
    reguli gen <i>expression : '[' expresssion expression, expression
      ']' </i><i><br>
    </i><br>
    Bogdan<br>
    <br>
    <div>On 11/8/2015 9:30 PM, Marius Ungureanu
      wrote:<br>
    </div>
    <blockquote type="cite">
      <p dir="ltr">Salut,</p>
      <p dir="ltr">Ideea e sa mut reduce-urile sa fie pe cazuri
        particulare ale combinatiilor (de exemplu cazuri particulare de
        precedenta) in loc sa raman pe gramatica generala, nu?</p>
      <p dir="ltr">Mersi,<br>
        Marius</p>
      <div class="gmail_quote">On Nov 8, 2015 9:07 PM, "Bogdan Nitulescu
        via cpl" <<a href="mailto:cpl@cursuri.cs.pub.ro" target="_blank">cpl@cursuri.cs.pub.ro</a>>
        wrote:<br type="attribution">
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div 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>On 11/8/2015 4:42 PM, Marius Ungureanu via cpl wrote:<br>
            </div>
            <blockquote type="cite">
              <p dir="ltr">On Nov 8, 2015 4:43 AM, "Marius Ungureanu"
                <<a href="mailto:therzok@gmail.com" target="_blank">therzok@gmail.com</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></fieldset>
              <br>
              <pre>_______________________________________________
cpl mailing list
<a href="mailto:cpl@cursuri.cs.pub.ro" target="_blank">cpl@cursuri.cs.pub.ro</a>
<a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a>
</pre>
            </blockquote>
            <br>
          </div>
          <br>
          _______________________________________________<br>
          cpl mailing list<br>
          <a href="mailto:cpl@cursuri.cs.pub.ro" target="_blank">cpl@cursuri.cs.pub.ro</a><br>
          <a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl" rel="noreferrer" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a><br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div>