package ini // skipper is used to skip certain blocks of an ini file. // Currently skipper is used to skip nested blocks of ini // files. See example below // // [ foo ] // nested = ; this section will be skipped // a=b // c=d // bar=baz ; this will be included type skipper struct { shouldSkip bool TokenSet bool prevTok Token } func newSkipper() skipper { return skipper{ prevTok: emptyToken, } } func (s *skipper) ShouldSkip(tok Token) bool { if s.shouldSkip && s.prevTok.Type() == TokenNL && tok.Type() != TokenWS { s.Continue() return false } s.prevTok = tok return s.shouldSkip } func (s *skipper) Skip() { s.shouldSkip = true s.prevTok = emptyToken } func (s *skipper) Continue() { s.shouldSkip = false s.prevTok = emptyToken }