package main import ( "fmt" "go/scanner" "go/token" ) func main() { src := ` package main import "fmt" func main() { fmt.Println("Hello, world!") } ` var s scanner.Scanner fset := token.NewFileSet() file := fset.AddFile("", fset.Base(), len(src)) s.Init(file, []byte(src), nil, scanner.ScanComments) for { pos, tok, lit := s.Scan() if tok == token.EOF { break } fmt.Printf("token: %v, pos: %v, lit: %q\n", tok, pos, lit) } }This code uses the scanner package to create a scanner that tokenizes the source code in the `src` variable. The scanner returns each token as a `token.Token` value and the associated literal value as a `string`. In this specific example, the package library is not a single package, but a combination of the `fmt`, `go/scanner`, and `go/token` packages, which are all part of the standard Go library.