예제 #1
0
        private TextualTable parseCreateTable()
        {
            // table
            string table = expectToken(TokenType.Identifier).Value;
            TextualCreateTableOperation createTable = new TextualCreateTableOperation(database, table);

            // WITH column1, column2, ...
            expectToken(TokenType.Identifier, "WITH");
            TextualCreateColumnOperation createColumn = new TextualCreateColumnOperation(createTable.Result);

            foreach (var column in parseIdentifierList())
            {
                createColumn.Execute(column);
            }

            return(createTable.Result);
        }
예제 #2
0
        private TextualTable parseCreateColumn()
        {
            // column
            string column = expectToken(TokenType.Identifier).Value;

            expectToken(TokenType.Identifier, "IN");
            // IN table
            string table = expectToken(TokenType.Identifier).Value;
            TextualCreateColumnOperation createColumn = new TextualCreateColumnOperation(database.GetTable(table));

            // AT index
            if (acceptToken(TokenType.Identifier, "AT"))
            {
                int pos = Convert.ToInt32(expectToken(TokenType.Number).Value);
                createColumn.Execute(column, pos);
            }
            else
            {
                createColumn.Execute(column);
            }

            return(createColumn.Result);
        }