code: def parse_input_value_def(lexer: Lexer) -> InputValueDefinitionNode:
      
      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),
      )
docs: InputValueDefinition