TODO list:

Critical:

- initializers
- add hash tables for symbols (useful for long programs)
- 0 is pointer - fix type compare
- add message if external function or variable not found.
- add float/double support (should be as small as possible while being
  usable for RISC code generator too).

Not critical:

- fix preprocessor symbol redefinition 
- better constant opt (&&, ||, ?:)
- function pointers to forward reference (patch code generator) 
- add PowerPC code generator.
- add portable byte code generator and interpreter.