parser

package
v0.0.0-...-5d7aed0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Condition

type Condition func(p *Parser) bool

func TokenKindCondition

func TokenKindCondition(kind lexer.TokenKind) Condition

type ParseCallback

type ParseCallback func(p *Parser) bool

type Parser

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

func NewParser

func NewParser(reg *Registry, lexer *lexer.Lexer) *Parser

func (*Parser) Advance

func (p *Parser) Advance() lexer.Token

func (*Parser) CurrentCallback

func (p *Parser) CurrentCallback() (ParseCallback, bool)

func (*Parser) CurrentToken

func (p *Parser) CurrentToken() lexer.Token

func (*Parser) Depth

func (p *Parser) Depth() int

func (*Parser) DequeueCurrentCallback

func (p *Parser) DequeueCurrentCallback()

func (*Parser) Expect

func (p *Parser) Expect(kind ...lexer.TokenKind) error

func (*Parser) GetLogger

func (p *Parser) GetLogger() *slog.Logger

func (*Parser) HasMoreTokens

func (p *Parser) HasMoreTokens() bool

func (*Parser) Parse

func (p *Parser) Parse(source string) ([]ast.Element, error)

func (*Parser) PeekNext

func (p *Parser) PeekNext() (lexer.Token, bool)

func (*Parser) Pos

func (p *Parser) Pos() int

func (*Parser) ProcessNextToken

func (p *Parser) ProcessNextToken() (ast.Element, error)

func (*Parser) PushCallback

func (p *Parser) PushCallback(cb ParseCallback)

type ParsingHandler

type ParsingHandler func(p *Parser) (ast.Element, bool, error)

type Registry

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

func NewParsingRegistry

func NewParsingRegistry() *Registry

func (*Registry) RegisterDefaultHandler

func (r *Registry) RegisterDefaultHandler(handler ParsingHandler)

func (*Registry) RegisterFixedCallback

func (r *Registry) RegisterFixedCallback(callback ParseCallback)

func (*Registry) RegisterHandler

func (r *Registry) RegisterHandler(condition Condition, handler ParsingHandler)

Jump to

Keyboard shortcuts

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