
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| Precedence | Operator         | Type    | Associativity | Description                                                       |
+============+==================+=========+===============+===================================================================+
| 512        | ``...``          | prefix  | n/a           | Spread operator                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|  => 300    | ``|``            | infix   | Left          | Twig filter call                                                  |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``(``            |         |               | Twig function call                                                |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``.``, ``?.``    |         |               | Get an attribute on a variable                                    |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``[``            |         |               | Array access                                                      |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 500        | ``-``            | prefix  | n/a           |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``+``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 300 => 5   | ``??``           | infix   | Right         | Null coalescing operator (a ?? b)                                 |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 250        | ``=>``           | infix   | Left          | Arrow function (x => expr)                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 200        | ``**``           | infix   | Right         | Exponentiation operator                                           |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 100        | ``is``           | infix   | Left          | Twig tests                                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``is not``       |         |               | Twig tests                                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 60         | ``*``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``/``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``//``           |         |               | Floor division                                                    |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``%``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 50 => 70   | ``not``          | prefix  | n/a           |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 40 => 27   | ``~``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 30         | ``+``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``-``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 25         | ``..``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 20         | ``==``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``!=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<=>``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``>``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``>=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``not in``       |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``in``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``matches``      |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``starts with``  |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``ends with``    |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``has some``     |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``has every``    |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``===``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``!==``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 18         | ``b-and``        | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 17         | ``b-xor``        | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 16         | ``b-or``         | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 15         | ``and``          | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 12         | ``xor``          | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 10         | ``or``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 5          | ``?:``, ``? :``  | infix   | Right         | Elvis operator (a ?: b)                                           |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 0          | ``(``            | prefix  | n/a           | Explicit group expression (a)                                     |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``literal``      |         |               | A literal value (boolean, string, number, sequence, mapping, ...) |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``?``            | infix   | Left          | Conditional operator (a ? b : c)                                  |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``=``            |         | Right         | Assignment operator                                               |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+

When a precedence will change in 4.0, the new precedence is indicated by the arrow ``=>``.

Here is the same table for Twig 4.0 with adjusted precedences:

+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| Precedence | Operator         | Type    | Associativity | Description                                                       |
+============+==================+=========+===============+===================================================================+
| 512        | ``...``          | prefix  | n/a           | Spread operator                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``(``            | infix   | Left          | Twig function call                                                |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``.``, ``?.``    |         |               | Get an attribute on a variable                                    |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``[``            |         |               | Array access                                                      |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 500        | ``-``            | prefix  | n/a           |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``+``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 300        | ``|``            | infix   | Left          | Twig filter call                                                  |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 250        | ``=>``           | infix   | Left          | Arrow function (x => expr)                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 200        | ``**``           | infix   | Right         | Exponentiation operator                                           |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 100        | ``is``           | infix   | Left          | Twig tests                                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``is not``       |         |               | Twig tests                                                        |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 70         | ``not``          | prefix  | n/a           |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 60         | ``*``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``/``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``//``           |         |               | Floor division                                                    |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``%``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 30         | ``+``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``-``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 27         | ``~``            | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 25         | ``..``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 20         | ``==``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``!=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<=>``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``>``            |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``>=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``<=``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``not in``       |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``in``           |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``matches``      |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``starts with``  |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``ends with``    |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``has some``     |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``has every``    |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``===``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``!==``          |         |               |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 18         | ``b-and``        | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 17         | ``b-xor``        | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 16         | ``b-or``         | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 15         | ``and``          | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 12         | ``xor``          | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 10         | ``or``           | infix   | Left          |                                                                   |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 5          | ``??``           | infix   | Right         | Null coalescing operator (a ?? b)                                 |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``?:``, ``? :``  |         |               | Elvis operator (a ?: b)                                           |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
| 0          | ``(``            | prefix  | n/a           | Explicit group expression (a)                                     |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``literal``      |         |               | A literal value (boolean, string, number, sequence, mapping, ...) |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``?``            | infix   | Left          | Conditional operator (a ? b : c)                                  |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
|            | ``=``            |         | Right         | Assignment operator                                               |
+------------+------------------+---------+---------------+-------------------------------------------------------------------+
