Is there any reason to prefer left-recursion over right recursion in this case? Wouldn't this be simpler:
object ::= {adjective} noun |
{adjective} noun AND object
If you really want to make your solution work, you need to make object2
right-recursive:
object ::= {adjective} noun object2
object2 ::= AND {adjective noun} object2 |
!Empty