Mercurial > lcfOS
view python/codegen.py @ 244:58155c7c4a8e
Add hexutil
author | Windel Bouwman |
---|---|
date | Wed, 24 Jul 2013 19:47:13 +0200 |
parents | 8786811a5a59 |
children | ea93e0a7a31e |
line wrap: on
line source
import ir, target from ppci import CompilerError class CodeGenerator: """ Target independent code generator """ def __init__(self, tg): assert isinstance(tg, target.Target) self.tg = tg def tryMap(self, ii): for mi in self.tg.instructions: if mi.irpattern is ii: return mi.FromIr(ii) raise CompilerError('Cannot map {0}'.format(ii)) def generate(self, ircode): assert isinstance(ircode, ir.Module) obj = object() for gvar in ircode.Variables: print(gvar) print('TODO') for f in ircode.Functions: for bb in f.BasicBlocks: for ins in bb.Instructions: # Instruction selection: #mi = self.tryMap(ins) pass return obj