<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <a class="moz-txt-link-freetext" href="http://www.freepascal.org/docs-html/ref/refch12.html#x120-13000012">http://www.freepascal.org/docs-html/ref/refch12.html#x120-13000012</a><br>
    <br>
    lists<br>
    <blockquote type="cite">
      <div class="caption"><span class="id">Table 12.1: </span><span
          class="content">Precedence of operators</span></div>
      <p class="noindent">
      </p>
      <table id="TBL-8" class="tabular" cellpadding="0" cellspacing="0">
        <colgroup id="TBL-8-1g"><col id="TBL-8-1"><col id="TBL-8-2"><col
            id="TBL-8-3"></colgroup><tbody>
          <tr style="vertical-align:baseline;" id="TBL-8-1-">
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-1-1" class="td11">Operator </td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-1-2" class="td11">Precedence </td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-1-3" class="td11">Category </td>
          </tr>
          <tr class="hline">
            <td>
              <hr></td>
            <td>
              <hr></td>
            <td>
              <hr></td>
          </tr>
          <tr style="vertical-align:baseline;" id="TBL-8-2-">
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-2-1" class="td11"><span class="cmtt-10">Not, @ </span></td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-2-2" class="td11">Highest (first)</td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-2-3" class="td11">Unary operators </td>
          </tr>
          <tr style="vertical-align:baseline;" id="TBL-8-3-">
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-3-1" class="td11"><span class="cmtt-10">* / div
                mod and shl shr as << >></span></td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-3-2" class="td11">Second </td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-3-3" class="td11">Multiplying operators</td>
          </tr>
          <tr style="vertical-align:baseline;" id="TBL-8-4-">
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-4-1" class="td11"><span class="cmtt-10">+ - or
                xor </span></td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-4-2" class="td11">Third </td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-4-3" class="td11">Adding operators </td>
          </tr>
          <tr style="vertical-align:baseline;" id="TBL-8-5-">
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-5-1" class="td11"><span class="cmtt-10">=
                <> < > <= >= in is </span></td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-5-2" class="td11">Lowest (Last)</td>
            <td style="white-space:nowrap; text-align:left;"
              id="TBL-8-5-3" class="td11">relational operators </td>
          </tr>
        </tbody>
      </table>
    </blockquote>
    <br>
    <br>
    This does not include:<br>
    ^ deref<br>
    - unary minus<br>
    . accessing a member of a class/record (not unary)<br>
    <br>
    Assuming they are in the "Highest" group, then they have same
    precedence as "@".<br>
    In an expression containing a mix, I would assume a left to right
    order.<br>
    <br>
    However this does not compile (project1.lpr(6,10) Error: Illegal
    qualifier)<br>
      {$T+}  var i: integer<br>
      if @i^ = 0 then ;<br>
    <br>
    If left to right had taken place, then the above would be equal to <br>
      if (@i)^ = 0 then ;<br>
    And that compiles.<br>
    <br>
    So it appears that ^ takes precedence over @ ? Or is this a bug?<br>
    <br>
    It also appears that the "." takes precedence over @<br>
    @Object.Foo<br>
    is equal to<br>
    @(Object.Foo)<br>
    well otherwise it could not compile<br>
    <br>
  </body>
</html>