package parser import ( "git.makaay.nl/mauricem/go-parsekit/parse" ) // Values must be of the following types: String, Integer, Float, Boolean, // Datetime, Array, or Inline Table. Unspecified values are invalid. func (t *parser) startValue(p *parse.API) { switch { case p.Peek(c.Any(a.SingleQuote, a.DoubleQuote)): p.Handle(t.startString) case p.Peek(a.Runes('t', 'f')): p.Handle(t.startBoolean) case p.Peek(a.Plus.Or(a.Minus)): p.Handle(t.startNumber) case p.Peek(a.Runes('i', 'n')): p.Handle(t.startNumber) case p.Peek(a.Digit): if p.Peek(a.Digits.Then(a.Minus.Or(a.Colon))) { p.Handle(t.startDateTime) } else { p.Handle(t.startNumber) } default: p.Expected("a value") } }