man flx_cop (Commandes) - C operator precedences.

NAME

C operator precedences.

precedence names

atom primary postfix unary cast pm mult add shift rel eq band bxor bor and xor or cond assign comma expr

postfix

++,postfix --,postfix

prefix

~,primary +,unary -,unary !,unary &,unary *,unary ++,unary --,unary sizeof,unary

infix

+,add -,add *,mult /,mult %,mult <<,shift >>,shift

&,band |,bor ^,bxor

&&,and ||,or

+=,assign -=,assign *=,assign /=,assign %=,assign <<=,assign >>=,assign &=,assign |=,assign ^=,assign

<,rel >,rel >=,rel <=,rel ==,eq !=,eq

->,postfix ->*,pm ,,comma

default precedences



"~$1",("~$1:primary","primary");



"$1++",("$1:postfix ++ ","postfix");

"$1--",("$1:postfix -- ","postfix");



"$1($2)",("$1:postfix($2:assign)","postfix");

"$1[$2]",("$1:postfix[$2:expr]","postfix");

"$1->$2",("$1:postfix->$2:atom","postfix");

"~$1",("~$1:unary","unary");

"+$1",("+ $1:unary","unary");

"-$1",("- $1:unary","unary");

"!$1",("!$1:unary","unary");

"&$1",("& $1:unary","unary");

"*$1",("*$1:unary","unary");

"++$1",("++ $1:unary","unary");

"--$1",("-- $1:unary","unary");

"$1+$2",("$1:add + $2:mult","add");

"$1-$2",("$1:add - $2:mult","add");

"$1*$2",("$1:mult * $2:pm","mult");

"$1/$2",("$1:mult / $2:pm","mult");

"$1%$2",("$1:mult % $2:pm","mult");

"$1<<$2",("$1:shift << $2:band","shift");

"$1>>$2",("$1:shift >> $2:band","shift");

"$1&$2",("$1:band & $2:bor","band");

"$1|$2",("$1:bor | $2:bxor","bor");

"$1^$2",("$1:bxor ^ $2:and","bxor");

"$1&&$2",("$1:and && $2:or","and");

"$1||$2",("$1:or || $2:cond","or");

"$1+=$2",("$1:cond += $2:assign","assign");

"$1-=$2",("$1:cond -= $2:assign","assign");

"$1*=$2",("$1:cond *= $2:assign","assign");

"$1/=$2",("$1:cond /= $2:assign","assign");

"$1%=$2",("$1:cond %= $2:assign","assign");

"$1<<=$2",("$1:cond <<= $2:assign","assign");

"$1>>=$2",("$1:cond >>= $2:assign","assign");

"$1&=$2",("$1:cond &= $2:assign","assign");

"$1|=$2",("$1:cond |= $2:assign","assign");

"$1^=$2",("$1:cond ^= $2:assign","assign");

"$1<$2",("$1:rel < $2:shift","rel");

"$1>$2",("$1:rel > $2:shift","rel");

"$1>=$2",("$1:rel >= $2:shift","rel");

"$1<=$2",("$1:rel <= $2:shift","rel");

"$1==$2",("$1:eq == $2:rel","eq");

"$1!=$2",("$1:eq != $2:rel","eq");

"$1.*$2",("$1:pm.*$2:cast","pm");

"$1->*$2",("$1:pm->*$2:cast","pm");

"$1:comma,$2:comma",("$1,$2","comma");