Golang go/token.FileSet.AddFile function examples

package go/token

AddFile adds a new file with a given filename(1st parameter), base(2nd parameter) offset, and file size(3rd parameter) to the file set s and returns the file. Multiple files may have the same name. The base offset must not be smaller than the FileSet's Base(), and size must not be negative. As a special case, if a negative base is provided, the current value of the FileSet's Base() is used instead.

Adding the file will set the file set's Base() value to base + size + 1 as the minimum base value for the next file. The following relationship exists between a Pos value p for a given file offset offs:

int(p) = base + offs

with offs in the range [0, size] and thus p in the range [base, base+size]. For convenience, File.Pos may be used to create file-specific position values from a file offset.

Golang go/token.FileSet.AddFile function usage examples

Example 1:

 if util.IsText(src) {
 // only add the file to the file set (for the full text index)
 file = x.fset.AddFile(filename, x.fset.Base(), len(src))
 file.SetLinesForContent(src)
 return
 }

Example 2:

 var src []byte
 var s scanner.Scanner
 fset := token.NewFileSet()
 file := fset.AddFile("", fset.Base(), len(src))

Reference :

http://golang.org/pkg/go/token/#FileSet.AddFile

Advertisement