def parse_input_value_def(lexer: Lexer) -> InputValueDefinitionNode:
    """InputValueDefinition"""
    start = lexer.token
    description = parse_description(lexer)
    name = parse_name(lexer)
    expect_token(lexer, TokenKind.COLON)
    type_ = parse_type_reference(lexer)
    default_value = (
        parse_const_value(lexer)
        if expect_optional_token(lexer, TokenKind.EQUALS)
        else None
    )
    directives = parse_directives(lexer, True)
    return InputValueDefinitionNode(
        description=description,
        name=name,
        type=type_,
        default_value=default_value,
        directives=directives,
        loc=loc(lexer, start),
    )
InputValueDefinition