mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-12 06:38:45 +01:00
Add operator precedence table to documentation
This commit is contained in:
@ -264,15 +264,187 @@ When you mix these all together, you need to worry about
|
||||
follows C, except that it fixes the bitwise operator mistake. The full
|
||||
precedence table, from lowest to highest, is:
|
||||
|
||||
:::dart
|
||||
= // Assignment.
|
||||
&& || ?: // Logic.
|
||||
is // Type test.
|
||||
== != // Equality.
|
||||
< > <= >= // Comparison.
|
||||
.. ... // Range.
|
||||
| & // Bitwise.
|
||||
+ - // Terms.
|
||||
* / % // Factors.
|
||||
- ~ ! // Unary.
|
||||
. [] // Call.
|
||||
<table class="precedence">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Precedence</th>
|
||||
<th>Operator</th>
|
||||
<th>Description</th>
|
||||
<th>Associativity</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>()</td>
|
||||
<td>Call</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>[]</td>
|
||||
<td>Subscript</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>.</td>
|
||||
<td>Selection</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>-</td>
|
||||
<td>Unary minus</td>
|
||||
<td>Right-to-left</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>!</td>
|
||||
<td>Logical not</td>
|
||||
<td>Right-to-left</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>~</td>
|
||||
<td>Bitwise not</td>
|
||||
<td>Right-to-left</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>*</td>
|
||||
<td>Multiplication</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>/</td>
|
||||
<td>Division</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>%</td>
|
||||
<td>Modulo</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>+</td>
|
||||
<td>Addition</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>-</td>
|
||||
<td>Subtraction</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>..</td>
|
||||
<td>Range (inclusive)</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>...</td>
|
||||
<td>Range (half-inclusive)</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td><<</td>
|
||||
<td>Bitwise left shift</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>>></td>
|
||||
<td>Bitwise right shift</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td><</td>
|
||||
<td>Less than</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td><=</td>
|
||||
<td>Less than or equal to</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>></td>
|
||||
<td>Greater than</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>>=</td>
|
||||
<td>Greater than or equal to</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>==</td>
|
||||
<td>Equal to</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td>!=</td>
|
||||
<td>Not equal to</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>9</td>
|
||||
<td>&</td>
|
||||
<td>Bitwise AND</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>10</td>
|
||||
<td>^</td>
|
||||
<td>Bitwise XOR</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>11</td>
|
||||
<td>|</td>
|
||||
<td>Bitwise OR</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>12</td>
|
||||
<td>is</td>
|
||||
<td>Type test</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>13</td>
|
||||
<td>&&</td>
|
||||
<td>Logical AND</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>14</td>
|
||||
<td>||</td>
|
||||
<td>Logical OR</td>
|
||||
<td>Left-to-right</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>15</td>
|
||||
<td>?:</td>
|
||||
<td>Ternary Conditional</td>
|
||||
<td>Right-to-left</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>16</td>
|
||||
<td>=</td>
|
||||
<td>Assignment</td>
|
||||
<td>Right-to-left</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -323,6 +323,23 @@ table.chart {
|
||||
}
|
||||
}
|
||||
|
||||
// Precedence table on expressions page.
|
||||
table.precedence {
|
||||
width: 100%;
|
||||
padding-left: 25px;
|
||||
|
||||
tr {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 839px) {
|
||||
// 36 pixel columns.
|
||||
.page { width: 720px; }
|
||||
|
||||
Reference in New Issue
Block a user