Rule 1

Methods/Functions should be defined for all non-terminals

Rule 2

All terminals should be handled by an “eat” method

Rule 3

All “or” conditions within the grammar should be programmed using the if, else if, else program conditional statements.

Rule 4

All “*” or “+” depicting 0 or more and 1 or more occurrence of an EBNF rule should be handled within a while loop.