package ini

// isComment will return whether or not the next byte(s) is a
// comment.
func isComment(b []rune) bool {
	if len(b) == 0 {
		return false
	}

	switch b[0] {
	case ';':
		return true
	case '#':
		return true
	case '/':
		if len(b) > 1 {
			return b[1] == '/'
		}
	}

	return false
}

// newCommentToken will create a comment token and
// return how many bytes were read.
func newCommentToken(b []rune) (Token, int, error) {
	i := 0
	for ; i < len(b); i++ {
		if b[i] == '\n' {
			break
		}

		if len(b)-i > 2 && b[i] == '\r' && b[i+1] == '\n' {
			break
		}
	}

	return newToken(TokenComment, b[:i], NoneType), i, nil
}
