BNFParser - Parser for strings with BNF defined syntax (internal class - not supported as interface)
A string according to a given BNF syntax is based on a (top) BNF symbol. One may derive specific BNF parsers for each type of BNF to be supported. The BNF is defined in the constructor for the BNF parser. Any number of spaces is allowed between symbols in a BNF but not required. Spaces are usually considered as separators between symbols.
BNF parsers can be referenced as symbols in other BNF symbols. This allows defining common BNF symbols e.g. for name and number (as BNFStandardSymbols). One may create a hierarchy consisting of a BNF tree by passing the parent (the more complex definition) to the referenced BNF or by constructing objects for referenced BNF parsers.