public IStatement Execute() { IParser parser = null; if (_tokenizer.TokenEquals(Constants.Table)) { parser = new CreateTableStatementParser(_tokenizer); } if (_tokenizer.TokenEquals(Constants.View)) { parser = new CreateViewStatementParser(_tokenizer); } //if ( _tokenizer.TokenEquals( Constants.Procedure ) ) // parser = new CreateProcedureStatementParser( _tokenizer ); //if ( _tokenizer.TokenEquals( Constants.Trigger ) ) // parser = new CreateTriggerStatementParser( _tokenizer ); if (_tokenizer.IsNextToken( Constants.Unique, Constants.Clustered, Constants.NonClustered, Constants.Index ) ) { parser = new CreateIndexParser(_tokenizer); } return(parser != null?parser.Execute() : null); }
private string ProcessParameter(ITokenizer tokenizer, string parameterName) { // the following code produces a parameter that supports Guids. For unknown reasons, NH // is supplying the parameter value as an unquoted set of alpha numerics, so, here they are processed // until the next token is NOT a dash int tokenCount = 0; string token = ""; //string regexDateFormat = GetDateFormatRegex(); tokenizer.SkipWhiteSpace = false; do { if (tokenizer.Current.Type != TokenType.BlockedText) { token += // TODO: the code below will not work until the parser can retain embedded comments //String.Format("/* {0} */ ", parameterName) + tokenizer.Current.Value; if (tokenizer.Current.Type != TokenType.WhiteSpace) { tokenCount++; } } tokenizer.ReadNextToken(); }while (tokenizer.HasMoreTokens && !tokenizer.IsNextToken(Constants.Comma)); tokenizer.SkipWhiteSpace = true; return(tokenCount > 1 && !token.StartsWith("'") ? String.Format("'{0}'", token.Trim().ToUpper()) : token); }
private string ProcessParameter(ITokenizer tokenizer, string parameterName) { // the following code produces a parameter that supports Guids. For unknown reasons, NH // is supplying the parameter value as an unquoted set of alpha numerics, so, here they are processed // until the next token is NOT a dash int tokenCount = 0; string token = ""; //string regexDateFormat = GetDateFormatRegex(); tokenizer.SkipWhiteSpace = false; do { if (tokenizer.Current.Type != TokenType.BlockedText) { token += // TODO: the code below will not work until the parser can retain embedded comments //String.Format("/* {0} */ ", parameterName) + tokenizer.Current.Value; if (tokenizer.Current.Type != TokenType.WhiteSpace) tokenCount++; } tokenizer.ReadNextToken(); } while (tokenizer.HasMoreTokens && !tokenizer.IsNextToken(Constants.Comma)); tokenizer.SkipWhiteSpace = true; return tokenCount > 1 && !token.StartsWith("'") ? String.Format("'{0}'", token.Trim().ToUpper()) : token; }