Files
pncdsl/state.def.go
2026-05-25 21:28:17 +02:00

28 lines
912 B
Go

package pncdsl
type State struct {
flags map[string]bool
vars map[string]any
visited map[string]int
talked map[string]int
}
func NewState() *State {
return &State{
flags: make(map[string]bool),
vars: make(map[string]any),
visited: make(map[string]int),
talked: make(map[string]int),
}
}
func (s *State) Flag(name string) bool { return s.flags[name] }
func (s *State) SetFlag(name string) { s.flags[name] = true }
func (s *State) ClearFlag(name string) { delete(s.flags, name) }
func (s *State) Var(name string) any { return s.vars[name] }
func (s *State) SetVar(name string, v any) { s.vars[name] = v }
func (s *State) Visited(name string) int { return s.visited[name] }
func (s *State) NoteVisit(name string) { s.visited[name]++ }
func (s *State) Talked(node string) int { return s.talked[node] }
func (s *State) NoteTalked(node string) { s.talked[node]++ }