def METHOD_NAME(cls: type[PrintFormatOp], parser: Parser) -> PrintFormatOp:
    format_str = parser.parse_str_literal()
    args: list[SSAValue] = []
    while parser.parse_optional_characters(",") is not None:
        args.append(arg := parser.parse_operand())
        parser.parse_characters(":", " - all arguments must have a type")
        arg_type = parser.parse_type()
        if arg.type != arg_type:
            parser.raise_error(f"Parsed ssa vlue {arg} must be of type {arg_type}")
    attr_dict = parser.parse_optional_attr_dict()
    if "format_str" in attr_dict:
        parser.raise_error(
            "format_str keyword is a reserved attribute for printf.print_format!"
        )
    op = PrintFormatOp(format_str, *args)
    op.attributes.update(attr_dict)
    return op