nonassoc in yacc
%left, %right and %nonassoc, defines how yacc will solve repetition of operators
In case you have:
$ 1 + 2 + 3
both operators have the same precedence level ( they are the same :) ),
in this case yacc can solve:
// using %left
$ (1 + 2) + 3
or:
// using %right
$ 1 + (2 + 3)
and finally:
//using %nonassoc
$ 1 + 2 + 3
is considered illegal and a syntax error!