code: func parseScalarTypeDefinition(parser *Parser) (ast.Node, error) {
  	start := parser.Token.Start
  	description, err := parseDescription(parser)
  	if err != nil {
  		return nil, err
  	}
  	_, err = expectKeyWord(parser, lexer.SCALAR)
  	if err != nil {
  		return nil, err
  	}
  	name, err := parseName(parser)
  	if err != nil {
  		return nil, err
  	}
  	directives, err := parseDirectives(parser)
  	if err != nil {
  		return nil, err
  	}
  	def := ast.NewScalarDefinition(&ast.ScalarDefinition{
  		Name:        name,
  		Description: description,
  		Directives:  directives,
  		Loc:         loc(parser, start),
  	})
  	return def, nil
  }
docs: /**
   * ScalarTypeDefinition : Description? scalar Name Directives?
   */