Icon operator precedence

Excerpted from The Icon Programming Language, 3rd edition

 

( expr )

{ expr1; expr2; … }

[ expr1, expr2, … ]

expr. f

expr1 [ expr2 , expr3 , … ]

expr1 [ expr2 : expr3 ]

expr1 [ expr2 +: expr3 ]

expr1 [ expr2 –: expr3 ]

expr ( expr1, expr2, … )

expr { expr1, expr2, … }

____________________

not expr

| expr

! expr

* expr

+ expr

– expr

. expr

/ expr

\ expr

= expr

? expr

~ expr

@ expr

^ expr

____________________

expr1 \ expr2

expr1 @ expr2

expr1 ! expr2

____________________

expr1 ^ expr2 (rt. assoc)

____________________

expr1 * expr2

expr1 / expr2

expr1 % expr2

expr1 ** expr2

____________________

expr1 + expr2

expr1 – expr2

expr1 ++ expr2

expr1 – – expr2

___________________

expr1 || expr2

expr1 ||| expr2

_______________

expr1 < expr2

expr1 <= expr2

expr1 = expr2

expr1 >= expr2

expr1 > expr2

expr1 ~= expr2

expr1 << expr2

expr1 <<= expr2

expr1 == expr2

expr1 >>= expr2

expr1 >> expr2

expr1 ~== expr2

expr1 === expr2

expr1 ~=== expr2

_______________

expr1 | expr2

_______________

expr1 to expr2 by expr3

_______________

expr1 := expr2 (rt. assoc)

expr1 <– expr2 (rt. assoc)

expr1 :=: expr2 (rt. assoc)

expr1 <–> expr2 (rt. assoc)

expr1 op:= expr2 (rt. assoc)

_______________

expr1 ? expr2

_______________

expr1 & expr2

_______________

break expr

case expr of { expr1 : expr2; expr3 : expr4; … }

create expr

every expr1 do expr2

fail

if expr1 then expr2 else expr3

next

repeat expr

return expr

suspend expr1 do expr2

until expr1 do expr2

while expr1 do expr2