op_tokens.go 565 B

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