<div dir="ltr"><div><div><div><div><div>Hi Peter,<br><br></div>Thanks for reporting this bug, I just fixed it (some missing rule in the parser code). The relevant commit is this one: <a href="https://github.com/p4lang/p4-hlir/commit/3d6b69511b32daebdc5eb980dec8b56fbefea455">https://github.com/p4lang/p4-hlir/commit/3d6b69511b32daebdc5eb980dec8b56fbefea455</a><br><br></div>Feel free to just pick up this commit, although I recommend pulling the latest code if you are using an old version. We have made a bunch of fixes since last April.<br><br></div>Also, don't hesitate to report bugs like this directly in Github.<br><br></div>Thanks again,<br><br></div>Antonin<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 13, 2015 at 11:20 AM, Peter Newman <span dir="ltr"><<a href="mailto:petenewm@cisco.com" target="_blank">petenewm@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Antonin,<br>
<br>
I'm trying to express a test for a multicast IPv4 address:<br>
<br>
if ((ipv4.dstAddr & 0xf0000000) == 0xe0000000) {<br>
    /* do something with multicast pkt */<br>
}<br>
<br>
I receive the following error from the compiler:<br>
<br>
parse error in file xxx.p4 at line 144 : Syntax error while parsing at token ) (RPAREN)<br>
parse error in file xxx.p4 at line 144 : Invalid boolean expression<br>
2 errors during parsing<br>
<br>
If I remove the parenthesis the compiler accepts the expression but the operator precedence would be incorrect.<br>
<br>
I am using the original public version of the compiler (so my apologies if this has already been fixed).<br>
<br>
According to the BNF in the spec (version 1.0.2) I believe this to be a valid expression (other than the requirement to use \& for bitwise AND which I take to be a typo).<span class="HOEnZb"><font color="#888888"><br>
<br>
--Peter<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Antonin<br></div></div>
</div>