enum operations
The following enum:
```c
enum
{
    TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024,
    TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10,
    TDEFL_MAX_HUFF_SYMBOLS = 288,
    TDEFL_LZ_HASH_BITS = 15,
    TDEFL_LEVEL1_HASH_SIZE_MASK = 4095,
    TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3,
    TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS
};
```

Gets converted in things like:
```nim
  TDEFL_LZ_HASH_SHIFT* = ((TDEFL_LZ_HASH_BITS+2)/3).Enum_minizh8
```
Nim complains:

    Error: type mismatch: got <Enum_minizh8, int literal(10)>

This can be solved by casting `Enum_minizh8` into `int` beforehand:
```nim
  TDEFL_LZ_HASH_SHIFT* = ((TDEFL_LZ_HASH_BITS.int+2)/3).Enum_minizh8
```

Is this a bug or is there something that I can do about it?

