<div dir="ltr">By the way, I don't remember having grammar issues (I use a LALR compiler-compiler).  Looking at my code, it looked like I handled it in the tokenizer stage; I added a COND_DOT token:<div><br></div><div>COND_DOT : \?\.</div><div><br></div><div>COND_DOT then became simply another binary operator in the Expression production.</div><div><br></div><div>However, this is a very simple use case.  Supporting e.g. function calls would require more tokens (which raises the question: why stop at '.'?  Should we have arithmetic versions too?).  Given the proliferation of binary operator tokens in JS, I'm not sure if this is a good thing.</div><div><br></div><div>Joe</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 6, 2015 at 12:45 PM, joe <span dir="ltr"><<a href="mailto:joeedh@gmail.com" target="_blank">joeedh@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I hacked together something similar myself.  IIRC, this particular transformation has issues with nested operators (e.g. a.b?.c.d?.e.f?.h).  Of course that's an implementation detail, but the problem (if I'm remembering it right) is that people couldn't figure out what the implementation constraints are (I think there was consensus that the trinary transformation was unworkable), and without knowing those constraints it wasn't possible to write a spec for it.<div><br></div><div>I could be remembering all this wrong, but that's my recollection of how that conversation went.  I think the consensus was to wait for the ? operator to become more mature in other languages.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, Apr 6, 2015 at 12:19 PM, Kevin Smith <span dir="ltr"><<a href="mailto:zenparsing@gmail.com" target="_blank">zenparsing@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If we can come to an agreement on the existential operator for member<br>
expressions, we would also be setting a precedent for other features<br>
of the same family. For example, existential call expressions: `fn?()`<br>
which would conditionally invoke `fn`.<br></blockquote><div><br></div></span><div>In the meeting notes you linked to, Waldemar (WH) noted that some of these variations may have grammar issues.<br></div><div><br></div><div>Although not strictly ambiguous with conditional expressions, `fn ? ()` would require the use of YACG (yet another cover grammar).</div><div><br></div><div>Also, what about computed property names?  For example:  `obj ? [Symbol.iterator]`.  I'm not sure that even YACG will help here.</div><div><br></div><div>(Thanks for compiling the list of previous threads BTW).</div><div><br></div></div></div></div>
<br></div></div><span class="">_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div></div>