Refactored CodeGenerator
Refactored Parser and create a new class IntermCodeGenerator to divide
responsibilities