Versions in this module Expand all Collapse all v0 v0.3.2 Nov 20, 2023 v0.3.1 Nov 20, 2023 v0.3.0 Aug 17, 2023 Changes in this version type Cursor + OnError func(err error, cur *Cursor, destNode interface{}) error v0.2.0 May 9, 2023 v0.1.0 Jan 3, 2023 Changes in this version + const EOF + const Invalid + var AsString = func(data []byte) string + var AsZeroAllocString = func(data []byte) string + var EOFToken = NewToken(EOF, "EOF", nil) + var InvalidToken = NewToken(Invalid, "Invalid", nil) + type Cursor struct + Input []byte + InputSize int + Path string + Pos int + func NewCursor(path string, input []byte, offset int) *Cursor + func (c *Cursor) FindMatch(token *Token) *TokenMatch + func (c *Cursor) HasMore() bool + func (c *Cursor) MatchAfterOptional(optional *Token, candidates ...*Token) *TokenMatch + func (c *Cursor) MatchAny(candidates ...*Token) *TokenMatch + func (c *Cursor) MatchOne(token *Token) *TokenMatch + func (c *Cursor) NewError(expectedTokens ...*Token) error + func (c *Cursor) TokenMatch(token *Token, matchSize int) *TokenMatch + type Matcher interface + Match func(cursor *Cursor) (matched int) + type Token struct + Code int + Name string + func NewToken(code int, name string, matcher Matcher) *Token + type TokenMatch struct + Offset int + Size int + func (m *TokenMatch) Bool(cursor *Cursor) (bool, error) + func (m *TokenMatch) Byte(cursor *Cursor) byte + func (m *TokenMatch) Bytes(cursor *Cursor) []byte + func (m *TokenMatch) ContainsRune(cursor *Cursor, r rune) bool + func (m *TokenMatch) Float(cursor *Cursor) (float64, error) + func (m *TokenMatch) Int(cursor *Cursor) (int64, error) + func (m *TokenMatch) SetToken(token *Token, cursor int, size int) + func (m *TokenMatch) Text(cursor *Cursor) string + func (m *TokenMatch) UnquotedText(cursor *Cursor) string