lang

package
v0.0.0-...-d8ac9bd Latest Latest
Warning

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

Go to latest
Published: May 18, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var VisitorStop = errors.New("visitor stop")

VisitorStop is an error which causes the current step in a Visitor to stop processing. It's used to enable a Visitor to handle all processing of a node within itself rather than the Visitor proceeding to any child nodes of that node.

Functions

func IsVisitorStop

func IsVisitorStop(err error) bool

func NewParser

func NewParser() util.Parser[Script]

Types

type At

type At struct {
	Pos        lexer.Position
	Definition string `parser:"'at' @String"`
}

type Builder

type Builder[T any] interface {
	At(func(Visitor[T], *At) error) Builder[T]
	Cron(func(Visitor[T], *Cron) error) Builder[T]
	Every(f func(Visitor[T], *Every) error) Builder[T]
	Rule(f func(Visitor[T], *Rule) error) Builder[T]
	Schedule(f func(Visitor[T], *Schedule) error) Builder[T]
	Script(func(Visitor[T], *Script) error) Builder[T]
	TaskRule(f func(Visitor[T], *TaskRule) error) Builder[T]
	Build() Visitor[T]
}

func NewBuilder

func NewBuilder[T any]() Builder[T]

type Cron

type Cron struct {
	Pos        lexer.Position
	Definition string `parser:"'cron' @String"`
}

type Every

type Every struct {
	Pos        lexer.Position
	Definition string `parser:"'every' @String"`
	Cron       string // Parsed version of Definition
}

type Rule

type Rule struct {
	Pos  lexer.Position
	Task *TaskRule `parser:"@@"`
}

type Schedule

type Schedule struct {
	Pos   lexer.Position
	At    *At    `parser:"( @@"`
	Every *Every `parser:"| @@"`
	Cron  *Cron  `parser:"| @@)"`
}

type Script

type Script struct {
	Pos      lexer.Position
	Location *location.Location
	Rules    []*Rule `parser:"@@*"`
	// contains filtered or unexported fields
}

type State

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

func NewState

func NewState() *State

func (*State) Cleanup

func (s *State) Cleanup() *State

type Task

type Task struct {
	Pos lexer.Position
	Run string `parser:"'run' @String"`
}

type TaskRule

type TaskRule struct {
	Pos       lexer.Position
	Schedules []*Schedule `parser:"'task' (@@+)"`
	Task      *Task       `parser:"@@"`
}

type Visitor

type Visitor[T any] interface {
	At(*At) error
	Cron(*Cron) error
	Every(*Every) error
	Rule(*Rule) error
	Schedule(*Schedule) error
	Script(*Script) error
	TaskRule(*TaskRule) error
	GetData() T
	SetData(T) Visitor[T]
}

Jump to

Keyboard shortcuts

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