func (pos *Pos) String() string {
	return fmt.Sprintf("%s:%d:%d", pos.FileName, pos.LineNumber, pos.CharacterNumber)
}
String returns a human-readable position.
package lexer
import "fmt"
type Pos struct {
	FileName                    string
	LineNumber, CharacterNumber int
}
func (pos Pos) add(characters int) Pos {
	pos.CharacterNumber += characters
	return pos
}
func (pos *Pos) nextLine() {
	pos.LineNumber++
	pos.CharacterNumber = 0
}