I feel like these `if`s might be clearer worded as positives:

```rust
bump(rdr);
return if nextch(rdr) == '.' {
    bump(rdr);
    if nextch(rdr) == '.' {
        bump(rdr);
        token::DOTDOTDOT
    } else {
        token::DOTDOT
   }
} else {
    token::DOT
};
```

(at the very least, the inner most `if` is clearer as a postive, and factoring out the common `bump`s seems nicer.)