| ... | ... | @@ -1923,49 +1923,28 @@ x{} |
| 1923 | 1923 | as have the operators with higher precedence (those shown above). |
| 1924 | 1924 | </p> |
| 1925 | 1925 | |
| 1926 | | <details style="display:none;" id="ambig-details"> |
| 1927 | | <summary style="cursor:pointer;">Toggle operator precedence ambiguity details</summary> |
| 1928 | | <p> |
| 1929 | | The operators that look <span class="ambig-chain">like this</span> have ambiguous precedence with the other operators |
| 1930 | | on the same line. Those that look <span class="ambig-nonchain">like this</span> also have ambiguous |
| 1931 | | precedence with themselves (they cannot be chained). |
| 1932 | | </p> |
| 1933 | | </details> |
| 1934 | | |
| 1935 | | <script> |
| 1936 | | let ambig_details = document.getElementById("ambig-details"); |
| 1937 | | ambig_details.style.display = 'block'; |
| 1938 | | ambig_details.addEventListener("toggle", (event) => { |
| 1939 | | document.querySelectorAll('.ambig-chain').forEach(e => { e.classList.toggle('tok-number'); }); |
| 1940 | | document.querySelectorAll('.ambig-nonchain').forEach(e => { |
| 1941 | | e.classList.toggle('tok-number'); |
| 1942 | | e.style.borderBottom = ambig_details.open ? '1px dotted' : ''; |
| 1943 | | }); |
| 1944 | | }); |
| 1945 | | </script> |
| 1946 | | |
| 1947 | 1926 | <p> |
| 1948 | 1927 | For arithmetic operators: |
| 1949 | 1928 | </p> |
| 1950 | 1929 | |
| 1951 | | <pre><code>* / *% *| <span class="ambig-nonchain">%</span> |
| 1930 | <pre>{#syntax#}* / *% *| % |
| 1952 | 1931 | + - +% -% +| -| |
| 1953 | | <span class="ambig-nonchain">==</span> <span class="ambig-nonchain">!=</span> <span class="ambig-nonchain">&lt;</span> <span class="ambig-nonchain">></span> <span class="ambig-nonchain">&lt;=</span> <span class="ambig-nonchain">>=</span> |
| 1954 | | <span class="ambig-chain">and or</span></code></pre> |
| 1932 | == != < > <= >= |
| 1933 | and or{#endsyntax#}</pre> |
| 1955 | 1934 | |
| 1956 | 1935 | <p> |
| 1957 | 1936 | For bitwise operators: |
| 1958 | 1937 | </p> |
| 1959 | 1938 | |
| 1960 | | <pre><code><span class="ambig-nonchain">&lt;&lt;</span> <span class="ambig-nonchain">&lt;&lt;|</span> <span class="ambig-nonchain">>></span> <span class="ambig-chain">& ^ |</span> |
| 1961 | | <span class="ambig-nonchain">==</span> <span class="ambig-nonchain">!=</span> <span class="ambig-nonchain">&lt;</span> <span class="ambig-nonchain">></span> <span class="ambig-nonchain">&lt;=</span> <span class="ambig-nonchain">>=</span> |
| 1962 | | <span class="ambig-chain">and or</span></code></pre> |
| 1939 | <pre>{#syntax#}<< <<| >> & ^ | |
| 1940 | == != < > <= >= |
| 1941 | and or{#endsyntax#}</pre> |
| 1963 | 1942 | |
| 1964 | 1943 | <p> |
| 1965 | 1944 | For null and error recovery operators: |
| 1966 | 1945 | </p> |
| 1967 | 1946 | |
| 1968 | | <pre><code><span class="ambig-chain">catch orelse</span></code></pre> |
| 1947 | <pre>{#syntax#}catch orelse{#endsyntax#}</pre> |
| 1969 | 1948 | |
| 1970 | 1949 | <p> |
| 1971 | 1950 | For error set operators: |