sep_tokens.go 578 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package ini
  2. import (
  3. "fmt"
  4. )
  5. var (
  6. emptyRunes = []rune{}
  7. )
  8. func isSep(b []rune) bool {
  9. if len(b) == 0 {
  10. return false
  11. }
  12. switch b[0] {
  13. case '[', ']':
  14. return true
  15. default:
  16. return false
  17. }
  18. }
  19. var (
  20. openBrace = []rune("[")
  21. closeBrace = []rune("]")
  22. )
  23. func newSepToken(b []rune) (Token, int, error) {
  24. tok := Token{}
  25. switch b[0] {
  26. case '[':
  27. tok = newToken(TokenSep, openBrace, NoneType)
  28. case ']':
  29. tok = newToken(TokenSep, closeBrace, NoneType)
  30. default:
  31. return tok, 0, NewParseError(fmt.Sprintf("unexpected sep type, %v", b[0]))
  32. }
  33. return tok, 1, nil
  34. }