Mercurial > lcfOS
view python/codegen.py @ 220:3f6c30a5d234
Major change in expression parsing to enable pointers and structs
author | Windel Bouwman |
---|---|
date | Sat, 06 Jul 2013 21:32:20 +0200 |
parents | 67b0feafe5ae |
children | 8786811a5a59 |
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: print(bb) for ins in bb.Instructions: # Instruction selection: print(ins) #mi = self.tryMap(ins) return obj