implemented naive register allocation and code generation and basic blocks and code generation