Removed optional non-terminals

Replaced them with certain non-terminals being allowed to be empty

To my knowledge, fixes #8