```
milovidov-desktop :) SELECT -1::INT

Syntax error: failed at position 10 ('::')
```
{
    
    if (pos->type == TokenType::Minus)
    {
        ParserLiteral lit_p;
        Pos begin = pos;
        if (lit_p.parse(pos, node, expected))
            return true;
        pos = begin;
    }
    return operator_parser.parse(pos, node, expected);
}
bool ParserCastExpression::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
{
    ASTPtr expr_ast;
    if (!elem_parser.parse(pos, expr_ast, expected))
        return false;
    ASTPtr type_ast;
    if (ParserToken(TokenType::DoubleColon).ignore(pos, expected)
        && ParserDataType().parse(pos, type_ast, expected))
    {
        node = createFunctionCast(expr_ast, type_ast);
    }
    else
    {
        node = expr_ast;
    }
    return true;
}
bool ParserArrayElementExpression::parseImpl(Pos & pos, ASTPtr & node, Expected &expected)