+
+ def initFunc(self,ports,params):
+ params = [Leaf(token.LPAR, '('),Leaf(token.NAME,"self")] + [Leaf(token.RPAR, ')')]
+ # TODO handle sv params
+ fn = [Leaf(token.NAME, 'def'),
+ Leaf(token.NAME, '__init__', prefix=' '),
+ Node(syms.parameters, params),
+ Leaf(token.COLON, ':'),
+ self.nl()
+ ]
+ fndef = Node(syms.funcdef, fn)
+ stmts = Node(syms.stmt, [fndef])
+ for port in ports:
+ stmts.children.append(self.indent(2))
+ stmts.children.append(port)
+ stmts.children.append(self.nl())
+ return stmts
+
+ def elaborateFunc(self):
+ params = [Leaf(token.LPAR, '('),Leaf(token.NAME,"self, platform=None"),Leaf(token.RPAR, ')')]
+ fn = [Leaf(token.NAME, 'def'),
+ Leaf(token.NAME, 'elaborate', prefix=' '),
+ Node(syms.parameters, params),
+ Leaf(token.COLON, ':'),
+ self.nl()
+ ]
+ fndef = Node(syms.funcdef, fn)
+ stmts = Node(syms.stmt, [fndef])
+ stmts.children.append(self.indent(2))
+ stmts.children.append(Leaf(token.STRING,"m = Module()"))
+ stmts.children.append(self.nl())
+ ##
+ stmts.children.append(self.indent(2))
+ stmts.children.append(Leaf(token.STRING,"return m"))
+ stmts.children.append(self.nl())
+ return stmts