**Use case**

```
CREATE TABLE t
(
    x UInt8,
    y UInt8,
)
```
{
    ParserIdentifier name_p;
    ParserProjectionSelectQuery query_p;
    ParserToken s_lparen(TokenType::OpeningRoundBracket);
    ParserToken s_rparen(TokenType::ClosingRoundBracket);
    ASTPtr name;
    ASTPtr query;
    if (!name_p.parse(pos, name, expected))
        return false;
    if (!s_lparen.ignore(pos, expected))
        return false;
    if (!query_p.parse(pos, query, expected))
        return false;
    if (!s_rparen.ignore(pos, expected))
        return false;
    auto projection = std::make_shared<ASTProjectionDeclaration>();
    projection->name = name->as<ASTIdentifier &>().name();
    projection->set(projection->query, query);
    node = projection;
    return true;
}
bool ParserTablePropertyDeclaration::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)