Tup.Cobar4Net.Parser.Recognizer.Mysql.Syntax.MySqlDdlParser.CreateTable C# (CSharp) Метод

CreateTable() приватный Метод

TABLE has been consumed
private CreateTable ( bool temp ) : DdlCreateTableStatement
temp bool
Результат Tup.Cobar4Net.Parser.Ast.Stmt.Ddl.DdlCreateTableStatement
        private DdlCreateTableStatement CreateTable(bool temp)
        {
            var ifNotExists = false;
            if (lexer.Token() == MySqlToken.KwIf)
            {
                lexer.NextToken();
                Match(MySqlToken.KwNot);
                Match(MySqlToken.KwExists);
                ifNotExists = true;
            }
            var table = Identifier();
            var stmt = new DdlCreateTableStatement(temp, ifNotExists, table);
            CreateTableDefs(stmt);
            var options = new DdlTableOptions();
            stmt.SetTableOptions(options);
            TableOptions(options);
            var selectOpt = CreateTableSelectOption.None;
            switch (lexer.Token())
            {
                case MySqlToken.KwIgnore:
                {
                    selectOpt = CreateTableSelectOption.Ignored;
                    if (lexer.NextToken() == MySqlToken.KwAs)
                    {
                        lexer.NextToken();
                    }
                    break;
                }

                case MySqlToken.KwReplace:
                {
                    selectOpt = CreateTableSelectOption.Replace;
                    if (lexer.NextToken() == MySqlToken.KwAs)
                    {
                        lexer.NextToken();
                    }
                    break;
                }

                case MySqlToken.KwAs:
                {
                    lexer.NextToken();
                    goto case MySqlToken.KwSelect;
                }

                case MySqlToken.KwSelect:
                {
                    break;
                }

                case MySqlToken.Eof:
                {
                    return stmt;
                }

                default:
                {
                    throw new SqlSyntaxErrorException("Ddl CREATE TABLE statement not end properly");
                }
            }
            var select = new MySqlDmlSelectParser(lexer, exprParser).Select();
            stmt.SetSelect(selectOpt, select);
            Match(MySqlToken.Eof);
            return stmt;
        }