<div dir="ltr"><div dir="ltr"><div dir="ltr">Thanks Jachym and Brujo,<div><br></div><div>I did try </div><div><br></div><div><< (case foo of foo -> 1; bar -> 2 end) bor (case foo of foo -> 8; bar -> 16 end) >>.<br></div><div><br></div><div>which didn't work, but</div><div><br></div><div><< (case foo of foo -> 1; bar -> 2 end bor case foo of foo -> 8; bar -> 16 end) >>.<br></div><div><br></div><div>indeed does work.</div><div><br></div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 18, 2019 at 3:19 PM Jáchym Holeček <<a href="mailto:freza@circlewave.net">freza@circlewave.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u>





<div><div>Hi Joeren,<br></div>
<div><br></div>
<div>My guess: allowing entirely arbitrary expression within binary constructor<br></div>
<div>syntax could lead to ambiguities with respect to `/` and `-` and `:` tokens<br></div>
<div>which have special meaning in this context? Therefore only select expression<br></div>
<div>forms are permitted, which are free of ambiguities, one of them being `( E )`<br></div>
<div>which in turn opens access to arbitrary expressions if one is a bit more explicit.<br></div>
<div><br></div>
<div>So this will work:<br></div>
<div><br></div>
<div>    4> << (case foo of foo -> 1; bar -> 2 end bor case foo of foo -> 8; bar -> 16 end) >>.<br></div>
<div>    <<"\t">><br></div>
<div><br></div>
<div>The file `stdlib-3.4.4/src/erl_parse.yrl` has the mechanics of it (search for `binary`,<br></div>
<div>`bin_elements`, `bin_element`) though not the underlying reasoning.<br></div>
<div><br></div>
<div>HTH,<br></div>
<div>    -- Jachym</div>
<div><br></div>
<div>On Fri, Jan 18, 2019, at 15:04, Jeroen Koops wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi List!<br></div>
<div><br></div>
<div>If this expressions is legal:<br></div>
<div><br></div>
<div><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures">case A of foo -> 1; bar -> 2 end bor case A of foo -> 8; bar -> 16 end.</span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span style="font-variant-ligatures:no-common-ligatures"><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif"">... and this expression is legal:</span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"><< case A of foo -> 1; bar -> 2 end >>. </span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span style="font-variant-ligatures:no-common-ligatures"><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif"">... then why is this expression illegal:</span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"><< case A of foo -> 1; bar -> 2 end bor case A of foo -> 8; bar -> 16 end >>.</span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span class="gmail-m_-8098032284801275923font" style="font-family:Menlo"><span class="gmail-m_-8098032284801275923size" style="font-size:11px"><span style="font-variant-ligatures:no-common-ligatures"></span></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span style="font-variant-ligatures:no-common-ligatures"><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif"">(shell responds with "</span><span class="gmail-m_-8098032284801275923font" style="font-family:monospace," monospace"">* 1: syntax error before: 'bor'</span><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif"">")</span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span style="font-variant-ligatures:no-common-ligatures"><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif""></span></span><br></p><p style="margin:0px;font-stretch:normal;line-height:normal"><span style="font-variant-ligatures:no-common-ligatures"><span class="gmail-m_-8098032284801275923font" style="font-family:arial," helvetica"," sans-serif"">Thanks,</span></span><br></p><div><br></div>
<div>-- <br></div>
<div dir="ltr"><div>Jeroen Koops<br></div>
<div><br></div>
<div>M: <a href="mailto:koops.j@gmail.com" target="_blank">koops.j@gmail.com</a><br></div>
<div>T: +31-6-55590300<br></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><u>_______________________________________________</u><br></div>
<div>erlang-questions mailing list<br></div>
<div><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br></div>
<div><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div>
</blockquote><div><br></div>
</div>

_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div>Jeroen Koops</div><div><br></div><div>M: <a href="mailto:koops.j@gmail.com" target="_blank">koops.j@gmail.com</a></div><div>T: +31-6-55590300</div></div>