Refactor subdict bnf for better parser error messages
Begin restructuring parser for more better errors