Mercurial > lcfOS
diff python/ppci/c3/codegenerator.py @ 315:084cccaa5deb
Added console and screen
author | Windel Bouwman |
---|---|
date | Sat, 21 Dec 2013 10:03:01 +0100 |
parents | 04cf4d26a3bc |
children | 56e6ff84f646 |
line wrap: on
line diff
--- a/python/ppci/c3/codegenerator.py Wed Dec 18 20:22:20 2013 +0100 +++ b/python/ppci/c3/codegenerator.py Sat Dec 21 10:03:01 2013 +0100 @@ -110,7 +110,7 @@ lval = self.genExprCode(code.lval) rval = self.genExprCode(code.rval) if not self.equalTypes(code.lval.typ, code.rval.typ): - msg = 'Cannot assign {} to {}'.format(code.lval.typ, code.rval.typ) + msg = 'Cannot assign {} to {}'.format(code.rval.typ, code.lval.typ) raise SemanticError(msg, code.loc) if not code.lval.lvalue: raise SemanticError('No valid lvalue {}'.format(code.lval), code.lval.loc) @@ -146,6 +146,18 @@ self.genCode(code.statement) self.emit(ir.Jump(bbtest)) self.setBlock(te) + elif type(code) is ast.For: + bbdo = self.newBlock() + bbtest = self.newBlock() + te = self.newBlock() + self.genCode(code.init) + self.emit(ir.Jump(bbtest)) + self.setBlock(bbtest) + self.gen_cond_code(code.condition, bbdo, te) + self.setBlock(bbdo) + self.genCode(code.statement) + self.emit(ir.Jump(bbtest)) + self.setBlock(te) else: raise NotImplementedError('Unknown stmt {}'.format(code))