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))