{*ast.File [regexp]}


{*ast.GenDecl -> *ast.ImportSpec -> *ast.BasicLit [STRING "fmt"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "strconv"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "sync"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "unsafe"]}
{*ast.GenDecl -> *ast.ValueSpec [keyBuilderPool]}
{*ast.CompositeLit -> *ast.SelectorExpr [sync Pool]}
{*ast.KeyValueExpr [New]}
{*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.InterfaceType []}
{*ast.FieldList -> *ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [new keyBuilder]}


{*ast.GenDecl -> *ast.TypeSpec [keyBuilder]}
{*ast.StructType -> *ast.FieldList -> *ast.Field [buf]}
{*ast.ArrayType [byte]}


function name is Reset 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder Reset]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [keyBuilder]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.SliceExpr -> *ast.SelectorExpr [kb buf]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt [kb]}


function name is Key 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder Key]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CallExpr [string]}
	 {*ast.SelectorExpr [kb buf]}


function name is UnsafeKey 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder UnsafeKey]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field [string]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.StarExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [string]}
	 {*ast.CallExpr -> *ast.SelectorExpr [unsafe Pointer]}
	 {*ast.UnaryExpr [&]}
	 {*ast.SelectorExpr [kb buf]}


function name is Write 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder Write]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [p]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field [int]}
	 {*ast.Field [error]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.CallExpr [append]}
	 {*ast.SelectorExpr [kb buf p]}
	 {*ast.ReturnStmt -> *ast.CallExpr [len p nil]}


function name is AppendString 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder AppendString]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [s string]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [keyBuilder]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.CallExpr [append]}
	 {*ast.SelectorExpr [kb buf s]}
	 {*ast.ReturnStmt [kb]}


function name is AppendBytes 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder AppendBytes]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [b]}
	 {*ast.ArrayType [byte]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [keyBuilder]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.CallExpr [append]}
	 {*ast.SelectorExpr [kb buf b]}
	 {*ast.ReturnStmt [kb]}


function name is Appendf 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder Appendf]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [format string]}
	 {*ast.Field [a]}
	 {*ast.Ellipsis -> *ast.InterfaceType []}
	 {*ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.StarExpr [keyBuilder]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [fmt Fprintf kb format a]}
	 {*ast.ReturnStmt [kb]}


function name is AppendInt 
	 {*ast.FieldList -> *ast.Field [kb]}
	 {*ast.StarExpr [keyBuilder AppendInt]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [n int]}
	 {*ast.FieldList -> *ast.Field -> *ast.StarExpr [keyBuilder]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strconv AppendInt]}
	 {*ast.SelectorExpr [kb buf]}
	 {*ast.CallExpr [int64 n]}
	 {*ast.BasicLit [INT 10]}
	 {*ast.ReturnStmt [kb]}


