class ANNModuleBuilder
{
-public:
- ANNModuleBuilder(enco::Code *code) : _code{code}
- {
- // DO NOTHING
- }
-
private:
std::set<coco::Bag *> inputs(coco::Block *blk) const;
std::set<coco::Bag *> outputs(coco::Block *blk) const;
public:
- void build(void) const;
-
-private:
- enco::Code *_code;
+ void build(ANNContext *ann_ctx) const;
};
std::set<coco::Bag *> ANNModuleBuilder::inputs(coco::Block *blk) const
return res;
}
-void ANNModuleBuilder::build(void) const
+void ANNModuleBuilder::build(ANNContext *ann_ctx) const
{
- for (uint32_t n = 0; n < _code->ann()->count(); ++n)
+ for (uint32_t n = 0; n < ann_ctx->count(); ++n)
{
- auto binder = _code->ann()->nth(n);
+ auto binder = ann_ctx->nth(n);
auto block = binder->block();
// Let's identify input/output bags
ANNGroupBuilder group_builder{code};
group_builder.build();
- ANNModuleBuilder module_builder{code};
- module_builder.build();
+ ANNModuleBuilder module_builder;
+ module_builder.build(code->ann());
}
} // namespace enco