示例#1
0
        static void Main(string[] args)
        {
            var parser = new Microsoft.Data.Schema.ScriptDom.Sql.TSql100Parser(true);
            System.IO.TextReader txtRdr = new System.IO.StringReader("Select * from customers as c inner join products as p on p.custid = c.id where 1 = 1 order by customers.name");

            IList<Microsoft.Data.Schema.ScriptDom.ParseError> parseErrors = new List<Microsoft.Data.Schema.ScriptDom.ParseError>();

            var fragment = parser.Parse(txtRdr, out parseErrors);

            if (fragment != null)
            {
                var tSqlScript = ((Microsoft.Data.Schema.ScriptDom.Sql.TSqlScript)(fragment));
                var tokens = tSqlScript.ScriptTokenStream;

                var stmts = tSqlScript.Batches.FirstOrDefault().Statements;

                foreach (var item in tokens)
                {
                    switch (item.TokenType)
                    {
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Add:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AddEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.All:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Alter:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Ampersand:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.And:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Any:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.As:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Asc:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringLiteral:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringOrQuotedIdentifier:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Authorization:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Backup:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bang:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Begin:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Between:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseAndEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseOrEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseXorEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Break:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Browse:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bulk:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.By:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cascade:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Case:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Check:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Checkpoint:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Circumflex:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Close:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Clustered:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Coalesce:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Collate:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Colon:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Column:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Comma:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Commit:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Compute:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Constraint:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Contains:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ContainsTable:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Continue:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Convert:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Create:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cross:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Current:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentDate:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTime:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTimestamp:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentUser:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cursor:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Database:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dbcc:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deallocate:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Declare:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Default:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Delete:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deny:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Desc:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Disk:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distinct:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distributed:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Divide:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DivideEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DollarPartition:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dot:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Double:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DoubleColon:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Drop:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dump:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Else:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.End:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EndOfFile:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EqualsSign:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Errlvl:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Escape:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Except:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exec:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Execute:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exists:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exit:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.External:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Fetch:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.File:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FillFactor:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.For:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Foreign:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeText:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeTextTable:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.From:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Full:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Function:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Go:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GoTo:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Grant:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GreaterThan:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Group:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Having:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HexLiteral:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HoldLock:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identifier:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identity:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityColumn:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityInsert:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.If:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.In:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Index:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Inner:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Insert:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Integer:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Intersect:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Into:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Is:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Join:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Key:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Kill:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Label:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Left:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftCurly:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftParenthesis:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LessThan:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Like:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LineNo:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Load:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Merge:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Minus:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ModEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Money:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultilineComment:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultiplyEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.National:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NoCheck:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NonClustered:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.None:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Not:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Null:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NullIf:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OdbcInitiator:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Of:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Off:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Offsets:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.On:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Open:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenDataSource:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenQuery:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenRowSet:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenXml:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Option:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Or:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Order:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Outer:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Over:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Percent:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PercentSign:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Pivot:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plan:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plus:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Precision:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Primary:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Print:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Proc:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ProcNameSemicolon:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Procedure:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PseudoColumn:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Public:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.QuotedIdentifier:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Raiserror:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Read:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ReadText:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Real:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Reconfigure:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.References:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Replication:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restore:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restrict:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Return:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revert:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revoke:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Right:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightCurly:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightOuterJoin:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightParenthesis:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rollback:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowCount:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowGuidColumn:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rule:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Save:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Schema:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Select:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Semicolon:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SessionUser:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Set:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SetUser:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Shutdown:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SingleLineComment:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Some:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SqlCommandIdentifier:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Star:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Statistics:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.StopList:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SubtractEquals:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SystemUser:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TSEqual:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Table:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TableSample:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TextSize:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Then:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tilde:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.To:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Top:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tran:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Transaction:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Trigger:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Truncate:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UnicodeStringLiteral:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Union:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unique:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unpivot:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Update:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UpdateText:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Use:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.User:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Values:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Variable:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Varying:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.VerticalLine:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.View:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WaitFor:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.When:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Where:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.While:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WhiteSpace:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.With:
                            break;
                        case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WriteText:
                            break;
                        default:
                            break;
                    }

                    Console.WriteLine(item.Text);
                }

            }

            //parser.Parse();

            Console.ReadKey();
        }
示例#2
0
        static void Main(string[] args)
        {
            var parser = new Microsoft.Data.Schema.ScriptDom.Sql.TSql100Parser(true);

            System.IO.TextReader txtRdr = new System.IO.StringReader("Select * from customers as c inner join products as p on p.custid = c.id where 1 = 1 order by customers.name");

            IList <Microsoft.Data.Schema.ScriptDom.ParseError> parseErrors = new List <Microsoft.Data.Schema.ScriptDom.ParseError>();

            var fragment = parser.Parse(txtRdr, out parseErrors);

            if (fragment != null)
            {
                var tSqlScript = ((Microsoft.Data.Schema.ScriptDom.Sql.TSqlScript)(fragment));
                var tokens     = tSqlScript.ScriptTokenStream;

                var stmts = tSqlScript.Batches.FirstOrDefault().Statements;

                foreach (var item in tokens)
                {
                    switch (item.TokenType)
                    {
                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Add:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AddEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.All:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Alter:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Ampersand:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.And:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Any:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.As:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Asc:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringLiteral:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.AsciiStringOrQuotedIdentifier:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Authorization:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Backup:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bang:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Begin:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Between:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseAndEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseOrEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.BitwiseXorEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Break:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Browse:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Bulk:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.By:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cascade:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Case:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Check:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Checkpoint:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Circumflex:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Close:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Clustered:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Coalesce:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Collate:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Colon:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Column:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Comma:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Commit:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Compute:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Constraint:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Contains:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ContainsTable:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Continue:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Convert:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Create:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cross:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Current:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentDate:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTime:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentTimestamp:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.CurrentUser:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Cursor:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Database:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dbcc:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deallocate:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Declare:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Default:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Delete:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Deny:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Desc:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Disk:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distinct:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Distributed:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Divide:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DivideEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DollarPartition:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dot:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Double:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.DoubleColon:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Drop:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Dump:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Else:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.End:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EndOfFile:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.EqualsSign:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Errlvl:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Escape:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Except:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exec:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Execute:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exists:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Exit:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.External:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Fetch:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.File:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FillFactor:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.For:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Foreign:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeText:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.FreeTextTable:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.From:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Full:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Function:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Go:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GoTo:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Grant:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.GreaterThan:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Group:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Having:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HexLiteral:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.HoldLock:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identifier:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Identity:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityColumn:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.IdentityInsert:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.If:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.In:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Index:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Inner:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Insert:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Integer:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Intersect:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Into:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Is:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Join:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Key:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Kill:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Label:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Left:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftCurly:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LeftParenthesis:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LessThan:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Like:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.LineNo:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Load:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Merge:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Minus:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ModEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Money:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultilineComment:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.MultiplyEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.National:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NoCheck:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NonClustered:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.None:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Not:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Null:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.NullIf:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OdbcInitiator:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Of:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Off:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Offsets:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.On:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Open:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenDataSource:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenQuery:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenRowSet:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.OpenXml:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Option:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Or:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Order:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Outer:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Over:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Percent:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PercentSign:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Pivot:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plan:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Plus:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Precision:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Primary:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Print:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Proc:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ProcNameSemicolon:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Procedure:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.PseudoColumn:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Public:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.QuotedIdentifier:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Raiserror:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Read:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.ReadText:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Real:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Reconfigure:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.References:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Replication:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restore:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Restrict:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Return:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revert:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Revoke:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Right:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightCurly:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightOuterJoin:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RightParenthesis:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rollback:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowCount:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.RowGuidColumn:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Rule:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Save:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Schema:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Select:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Semicolon:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SessionUser:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Set:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SetUser:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Shutdown:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SingleLineComment:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Some:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SqlCommandIdentifier:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Star:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Statistics:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.StopList:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SubtractEquals:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.SystemUser:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TSEqual:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Table:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TableSample:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.TextSize:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Then:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tilde:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.To:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Top:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Tran:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Transaction:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Trigger:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Truncate:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UnicodeStringLiteral:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Union:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unique:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Unpivot:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Update:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.UpdateText:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Use:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.User:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Values:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Variable:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Varying:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.VerticalLine:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.View:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WaitFor:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.When:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.Where:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.While:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WhiteSpace:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.With:
                        break;

                    case Microsoft.Data.Schema.ScriptDom.Sql.TSqlTokenType.WriteText:
                        break;

                    default:
                        break;
                    }

                    Console.WriteLine(item.Text);
                }
            }

            //parser.Parse();

            Console.ReadKey();
        }