Skip to content
Snippets Groups Projects
Commit 7fa9087c authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Allow a list of generables when creating class members

parent ae7af941
No related branches found
No related tags found
No related merge requests found
......@@ -36,13 +36,21 @@ class ClassMember(Generable):
self.member = member
self.access = access
assert isinstance(member, Generable)
# We only consider a Generable or a list thereof as member
from collections import Iterable
assert isinstance(member, Generable) or (isinstance(member, Iterable) and all(isinstance(m, Generable) for m in member))
def generate(self):
yield "\n\n"
yield "{}:\n".format(access_modifier_string(self.access))
for line in self.member.generate():
yield line + '\n'
if isinstance(self.member, Generable):
for line in self.member.generate():
yield line + '\n'
else:
for generable in self.member:
for line in generable.generate():
yield line + '\n'
class Constructor(Generable):
......
......@@ -118,8 +118,8 @@ def generate_kernel(integrand=None, measure=None):
class AssemblyMethod(ClassMember):
def __init__(self, signature, kernel):
from loopy import generate_code
from cgen import LiteralLines
content = LiteralLines('\n' + '\n'.join(signature) + '\n' + generate_code(kernel)[0])
from cgen import LiteralLines, Block
content = [LiteralLines('\n' + '\n'.join(signature)), Block([LiteralLines('\n' + generate_code(kernel)[0])])]
ClassMember.__init__(self, content)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment