lexer

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 6 Imported by: 2

Documentation

Overview

Package lexer provides basic helpers to implement parsers

Index

Constants

View Source
const (
	// ReadBufferSize indicates the initial buffer size
	ReadBufferSize = 1 << 7 // 128B

	// DoublingBufferSizeLimit indicates when we stop doubling
	// and just add instead
	DoublingBufferSizeLimit = 1 << 17 // 128KiB
)

Variables

View Source
var (
	// ErrInvalidUnreadRune indicates UnreadRune() was calls after an
	// action other than a successful ReadRune()
	ErrInvalidUnreadRune = errors.New("invalid UnreadRune() call")
)

Functions

This section is empty.

Types

type Error added in v0.3.3

type Error struct {
	Filename string
	Line     int
	Column   int

	Content string
	Err     error
}

Error represents a generic parsing error

func (Error) Error added in v0.3.3

func (err Error) Error() string

func (Error) Unwrap added in v0.3.3

func (err Error) Unwrap() error

type Reader added in v0.3.1

type Reader struct {
	// contains filtered or unexported fields
}

Reader is a RuneReader aimed at implementing text parsers

func NewReader added in v0.3.1

func NewReader(r io.Reader) *Reader

NewReader creates a new runes Reader using the given io.Reader

func NewReaderBytes added in v0.3.1

func NewReaderBytes(b []byte) *Reader

NewReaderBytes creates a new runes Reader using the given bytes

func NewReaderString added in v0.3.1

func NewReaderString(s string) *Reader

NewReaderString creates a new runes Reader using the given string

func (*Reader) Discard added in v0.3.1

func (b *Reader) Discard()

Discard removes from the buffer everything that has been Read

func (*Reader) Emit added in v0.3.1

func (b *Reader) Emit() string

Emit returns what's already being Read and discards it afterwards

func (*Reader) PeekRune added in v0.3.1

func (b *Reader) PeekRune() (rune, int, error)

PeekRune returns information about the next rune without moving the cursor

func (*Reader) ReadRune added in v0.3.1

func (b *Reader) ReadRune() (rune, int, error)

ReadRune reads the next rune

func (*Reader) String added in v0.3.1

func (b *Reader) String() string

String returns what's already Read but not yet emitted or discarded

func (*Reader) UnreadRune added in v0.3.1

func (b *Reader) UnreadRune() error

UnreadRune moves the cursor where it was before the last call to ReadRune

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL