// Package lexer provides basic helpers to implement parsers package lexer // StateFn is a State Function of the parser type StateFn func() (StateFn, error) // Run runs a state machine until the state function either // returns nil or an error func Run(fn StateFn) error { for fn != nil { var err error fn, err = fn() if err != nil { // failed return err } } // ended return nil }