implementation for 24 game

I think a few things could be written in a more elegant way (the while in "fn e" for instance)... 
I tried using a  `for tok in self.lexer` but I got in trouble with ownership, because this borrows self mutably, so it does not allow me to borrow it again to call `self.p()`.
If you have any suggestions on how to refactor this, they would be very welcome
It is actually more difficult than I had thought, and I haven't enough time to finish it right now... But the idea is the following:

You can use the `enumerate` and the `peekable` functions of the `Iterator` trait, like this:

```
struct Lexer<'a> {
    chars: Peekable<(uint, char), Enumerate<Chars<'a>>>
}
```

This way, you just need to use `chars.next()` to get the following character and its position (you get a `&(uint, char)` tuple).

If you have this, the code in the `next` function of the lexer can be simplified, because you don't longer need to manually take care of the current position.