Add better handling for parser options

I think this would result in bugs.

```
opt = opt | (1 << 1)
```