treelite
count_descendant.cc
1 #include "./builder.h"
2 
3 namespace treelite {
4 namespace compiler {
5 
6 DMLC_REGISTRY_FILE_TAG(count_descendant);
7 
8 static int count(ASTNode* node) {
9  int accum = 0;
10  for (ASTNode* child : node->children) {
11  accum += count(child) + 1;
12  }
13  node->num_descendant = accum;
14  return accum;
15 }
16 
17 void ASTBuilder::CountDescendant() {
18  count(this->main_node);
19 }
20 
21 } // namespace compiler
22 } // namespace treelite