Versions in this module Expand all Collapse all v0 v0.0.3 Jul 7, 2026 v0.0.2 Jul 7, 2026 Changes in this version type Data + func (d *Data) SliceLines(startLine, numLines int) (_ []byte, err error) type File + func (f *File) DataIndex(p Pos) (pos int) + func (f *File) Pos(line, column int) Pos + func (f *File) SliceLines(slicedSet *FileSet, name string, startLine, numLines int) (_ *SliceFile, err error) type Reader + func (s *Reader) LooksLikeRegex() bool + func (s *Reader) ScanRegex() string v0.0.1 Dec 15, 2025 Changes in this version + const BOM + var ErrIllegalFileOffset = errors.New("illegal file offset") + var ErrIllegalLineNumber = errors.New("illegal line number") + var ErrIllegalMinimalLineNumber = errors.New("illegal line number (line numbering starts at 1)") + var ErrIllegalPosition = errors.New("illegal position") + func MustFileLine(f *File, pos Pos) int + func MustFileOffset(f *File, pos Pos) int + type Data struct + func NewData(data []byte) *Data + func (d *Data) Bytes() []byte + func (d *Data) LineData(line int) (r []byte, _ error) + func (d *Data) LineOffset(line int) (offset int, _ error) + func (d *Data) LineSliceDataUpDown(line, upCount, downCount int) (up, down []*LineData, s []byte) + func (d *Data) LinesData(lineStart, count int) (s []*LineData) + func (d *Data) NumLines() int + func (d *Data) Pack(line, column int) (offset int, err error) + func (d *Data) Slice(startLine, numLines int) (_ []byte, err error) + func (d *Data) SplitLines() (r [][]byte) + func (d *Data) ToString() string + func (d *Data) TraceLines(s io.Writer, line, column, up, down int) + func (d *Data) Unpack(offset int) (line, column int) + type File struct + Base int + Data *Data + Index int + Lines []int + Name string + Size int + func (f *File) AddLine(offset int) + func (f *File) DataPosition(p Pos) (pos FilePos, err error) + func (f *File) FileSetPos(offset int) (Pos, error) + func (f *File) LineCount() int + func (f *File) Offset(p Pos) (int, error) + func (f *File) Position(p Pos) (pos FilePos, err error) + func (f *File) SafePosition(p Pos) (pos FilePos) + func (f *File) Set() *FileSet + func (f *File) Slice(slicedSet *FileSet, name string, startLine, numLines int) (_ *SliceFile, err error) + func (f *File) Unpack(offset int) (filename string, line, column int) + type FilePos struct + Column int + File *File + Line int + Offset int + func MustFilePosition(f *File, pos Pos) FilePos + func MustFilePositionFromOffset(f *File, offset int) FilePos + func (p FilePos) Dump(w io.Writer, up, down int) + func (p FilePos) FileName() string + func (p FilePos) IsValid() bool + func (p FilePos) Pos() Pos + func (p FilePos) PositionString() (s string) + func (p FilePos) SourceLineDataRange(up, down int) (line *LineData, upLines, downLines []*LineData) + func (p FilePos) String() string + func (p FilePos) TraceLines(w io.Writer, up, down int) + type FilePosStackTrace []FilePos + func (st FilePosStackTrace) Format(s fmt.State, verb rune) + type FileReaderOption func(r *Reader) + func FileReaderWithData(data any) FileReaderOption + func FileReaderWithSkipWhitespaceFunc(f func(fr *Reader)) FileReaderOption + type FileSet struct + Base int + Files []*File + LastFile *File + func NewFileSet() *FileSet + func (s *FileSet) AddFile(filename string, base, size int) *File + func (s *FileSet) AddFileData(filename string, base int, data []byte) *File + func (s *FileSet) AppendFileData(filename string, data []byte) *File + func (s *FileSet) File(p Pos) (f *File) + func (s *FileSet) Position(p Pos) (pos FilePos) + type LineData struct + Data []byte + Line int + func (d *LineData) CreateSpace(prefix []rune, column int) []byte + type NextHandlers struct + EOFHandlers []func(r *Reader) + LineEndHandlers []func() + PostLineEndHandlers []func() + func (h *NextHandlers) CallLineEndHandlers() + func (h *NextHandlers) CallPostLineEndHandlers() + func (h *NextHandlers) EOFHandler(f func(r *Reader)) + func (h *NextHandlers) LineEndHandler(f func()) + func (h *NextHandlers) PostLineEndHandler(f func()) + type NumberType uint8 + const Decimal + const Float + const Int + const Uint + type Pos int + const NoPos + func MustFileLineStartPos(f *File, line int) Pos + func MustFileSetPos(f *File, offset int) Pos + func (p Pos) IsValid() bool + type PosStackTrace []Pos + func (t PosStackTrace) Format(fs *FileSet, s fmt.State, verb rune) + type Reader struct + Ch rune + Data any + File *File + NewLineEscape func() bool + NewLineEscaped bool + Offset int + ReadOffset int + SkipWhitespaceFunc func(r *Reader) + Src []byte + func NewFileReader(file *File, option ...FileReaderOption) (fr *Reader) + func (s *Reader) CallEOFHandlers() + func (s *Reader) Error(offset int, msg string) + func (s *Reader) ErrorCount() int + func (s *Reader) ErrorHandler(h ...ScannerErrorHandler) + func (s *Reader) Expect(ch rune, msg string) bool + func (s *Reader) ExpectError(msg string) + func (s *Reader) FindLineEnd() bool + func (s *Reader) HasError() bool + func (s *Reader) IndexOfInlineNoSpace() int + func (s *Reader) IsSpace() bool + func (s *Reader) Next() + func (s *Reader) NextC(count int) + func (s *Reader) NextNoSpace() + func (s *Reader) NextPosOf(b byte) (end int) + func (s *Reader) NextTo(v string) + func (s *Reader) Peek() byte + func (s *Reader) PeekAtEndLine() (start, end int) + func (s *Reader) PeekEq(str string) bool + func (s *Reader) PeekIdentEq(to string, skip int) bool + func (s *Reader) PeekInlineNoSpace() byte + func (s *Reader) PeekN(n int) []byte + func (s *Reader) PeekNoSingleSpaceEq(to string, skip int) (length int) + func (s *Reader) PeekNoSpace() byte + func (s *Reader) PeekNoSpaceEq(to string, skip int) bool + func (s *Reader) PeekNoSpaceN(n int) []byte + func (s *Reader) Read(b []byte) (n int, err error) + func (s *Reader) ReadAt(b rune) []byte + func (s *Reader) ReadAtMany(quote []byte) []byte + func (s *Reader) ReadCount(q int) []byte + func (s *Reader) ReadWhen(b rune) []byte + func (s *Reader) ScanMantissa(base int) + func (s *Reader) ScanNumber(seenDecimalPoint bool) (tok NumberType, lit string) + func (s *Reader) ScanRawString() (string, bool) + func (s *Reader) ScanRune() string + func (s *Reader) ScanString() string + func (s *Reader) ScanStringDelimiter(delimiter rune) string + func (s *Reader) Skip(str string) + func (s *Reader) SkipWhitespace() + func (s *Reader) Source() []byte + func (s *Reader) SourceFile() *File + func (s *Reader) Start() + func (s Reader) ReadEscape(quote rune) bool + type ScannerErrorHandler func(pos FilePos, msg string) + type SliceFile struct + func (f *SliceFile) CastPos(srcPos FilePos) (pos FilePos, err error) + type StartEndDelimiter struct + End []rune + Start []rune + func (m *StartEndDelimiter) Ends(b []byte) bool + func (m *StartEndDelimiter) EndsR(r rune, b []byte) bool + func (m *StartEndDelimiter) IsZero() bool + func (m *StartEndDelimiter) Starts(r rune, b []byte) bool + func (m *StartEndDelimiter) String() string + func (m *StartEndDelimiter) Strings() (start, end string) + func (m *StartEndDelimiter) WrapString(s string) string