Mercurial > lcfOS
view python/c3/builder.py @ 167:0b5b2ee6b435
Added 2 unit tests
author | Windel Bouwman |
---|---|
date | Fri, 22 Mar 2013 17:40:13 +0100 |
parents | da0087b82fbe |
children | 49f1ab80d040 |
line wrap: on
line source
import ppci from . import Parser, Semantics, TypeChecker, Analyzer, CodeGenerator, AstPrinter class Builder: def __init__(self, diag): self.diag = diag self.p = Parser(diag) self.tc = TypeChecker(diag) self.al = Analyzer(diag) self.cg = CodeGenerator() self.ap = AstPrinter() def build(self, src): # Store src for later: self.src = src self.pkg = self.p.parseSource(src) self.al.analyzePackage(self.pkg) self.tc.checkPackage(self.pkg) ok = len(self.diag.diags) == 0 if ok: print('Generating ir-code') i = self.cg.gencode(self.pkg) return i