Added the Pattern class, which contains regex describing each terminal.
Added the Terminal class, which contains named constants for each terminal.
Node objects now take an Any parameter. This allows the creation of nodes with either a Production or Terminal as the node label.
Added comments.