| 1507 | } |
| 1508 | |
| 1509 | std::vector<module_ref> module::get_sub_modules(bool shallow) const |
| 1510 | { |
| 1511 | std::vector<module_ref> vec_modules; |
| 1512 | for(auto ins : iterator_for(*this)) |
| 1513 | { |
| 1514 | const auto& mod_args = ins->module_inputs(); |
| 1515 | vec_modules.insert(vec_modules.end(), mod_args.begin(), mod_args.end()); |
| 1516 | if(not shallow) |
| 1517 | { |
| 1518 | for(const auto& smod : mod_args) |
| 1519 | { |
| 1520 | auto sub_mods = smod->get_sub_modules(); |
| 1521 | vec_modules.insert(vec_modules.end(), sub_mods.begin(), sub_mods.end()); |
| 1522 | } |
| 1523 | } |
| 1524 | } |
| 1525 | |
| 1526 | return vec_modules; |
| 1527 | } |
| 1528 | |
| 1529 | module& module::sort() |
| 1530 | { |