Почему в C не работает c = a +++++ b?

Возможный дубликат:
Пожалуйста, помогите мне понять ошибку a +++++ b в C

В сегодняшнем обсуждении возникла тема приращения pre/post.

Мы попробовали несколько комбинаций сложения и приращения:

c = a+++b //works
c = a++ + ++b //works
c = a+++ ++b //works
c = a+++++b // doesn't work, compiler error "error: invalid lvalue in increment

Где разница? Что именно добавляет этот дополнительный пробел для синтаксического анализатора, поэтому программа компилируется?