See the attachment.
[query.txt](https://github.com/ClickHouse/ClickHouse/files/5928271/query.txt)

type_name_suffix = "SIGNED";
        else if (ParserKeyword("UNSIGNED").ignore(pos))
            type_name_suffix = "UNSIGNED";
    }
    if (!type_name_suffix.empty())
        type_name = type_name_upper + " " + type_name_suffix;
    auto function_node = std::make_shared<ASTFunction>();
    function_node->name = type_name;
    function_node->no_empty_args = true;
    if (pos->type != TokenType::OpeningRoundBracket)
    {
        node = function_node;
        return true;
    }
    ++pos;
    
    ParserList args_parser(std::make_unique<ParserDataTypeArgument>(), std::make_unique<ParserToken>(TokenType::Comma));
    ASTPtr expr_list_args;
    if (!args_parser.parse(pos, expr_list_args, expected))
        return false;
    if (pos->type != TokenType::ClosingRoundBracket)
        return false;
    ++pos;
    function_node->arguments = expr_list_args;
    function_node->children.push_back(function_node->arguments);
    node = function_node;
    return true;
}
}