# file
--
    import "github.com/grafana/sobek/file"

Package file encapsulates the file abstractions used by the ast & parser.

## Usage

#### type File

```go
type File struct {
}
```


#### func  NewFile

```go
func NewFile(filename, src string, base int) *File
```

#### func (*File) Base

```go
func (fl *File) Base() int
```

#### func (*File) Name

```go
func (fl *File) Name() string
```

#### func (*File) Source

```go
func (fl *File) Source() string
```

#### type FileSet

```go
type FileSet struct {
}
```

A FileSet represents a set of source files.

#### func (*FileSet) AddFile

```go
func (self *FileSet) AddFile(filename, src string) int
```
AddFile adds a new file with the given filename and src.

This an internal method, but exported for cross-package use.

#### func (*FileSet) File

```go
func (self *FileSet) File(idx Idx) *File
```

#### func (*FileSet) Position

```go
func (self *FileSet) Position(idx Idx) *Position
```
Position converts an Idx in the FileSet into a Position.

#### type Idx

```go
type Idx int
```

Idx is a compact encoding of a source position within a file set. It can be
converted into a Position for a more convenient, but much larger,
representation.

#### type Position

```go
type Position struct {
	Filename string // The filename where the error occurred, if any
	Offset   int    // The src offset
	Line     int    // The line number, starting at 1
	Column   int    // The column number, starting at 1 (The character count)

}
```

Position describes an arbitrary source position including the filename, line,
and column location.

#### func (*Position) String

```go
func (self *Position) String() string
```
String returns a string in one of several forms:

    file:line:column    A valid position with filename
    line:column         A valid position without filename
    file                An invalid position with filename
    -                   An invalid position without filename

--
**godocdown** http://github.com/robertkrimen/godocdown
