111 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# file
							 | 
						||
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								    import "github.com/dop251/goja/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
							 |