A TokenStream implementation designed around requirements for tokenizing and parsing DDL statements.
Because of the complexity of DDL, it was necessary to extend {@link TokenStream} in order to override the basic tokenizer totokenize the in-line comments prefixed with "--". In addition, because there is not a default ddl command (or statement) terminator, an override method was added to {@link TokenStream} to allow re-tokenizing the initial tokens to re-type thetokens, remove tokens, or any other operation to simplify parsing.
In this case, both reserved words (or key words) and statement start phrases can be registered prior to the {@link TokenStream}'s start() method. Any resulting tokens that match the registered string values will be re-typed to identify them as key words (DdlTokenizer.KEYWORD) or statement start phrases (DdlTokenizer.STATEMENT_KEY).