aboutsummaryrefslogtreecommitdiff
path: root/include/inja/statistics.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/inja/statistics.hpp')
-rw-r--r--include/inja/statistics.hpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/include/inja/statistics.hpp b/include/inja/statistics.hpp
index 71fc719..da33593 100644
--- a/include/inja/statistics.hpp
+++ b/include/inja/statistics.hpp
@@ -1,11 +1,8 @@
-// Copyright (c) 2019 Pantor. All rights reserved.
-
#ifndef INCLUDE_INJA_STATISTICS_HPP_
#define INCLUDE_INJA_STATISTICS_HPP_
#include "node.hpp"
-
namespace inja {
/*!
@@ -18,24 +15,26 @@ class StatisticsVisitor : public NodeVisitor {
}
}
- void visit(const TextNode&) { }
- void visit(const ExpressionNode&) { }
- void visit(const LiteralNode&) { }
+ void visit(const TextNode&) {}
+ void visit(const ExpressionNode&) {}
+ void visit(const LiteralNode&) {}
- void visit(const JsonNode&) {
+ void visit(const DataNode&) {
variable_counter += 1;
}
- void visit(const FunctionNode&) { }
-
- void visit(const ExpressionListNode& node) {
- for (auto& n : node.rpn_output) {
+ void visit(const FunctionNode& node) {
+ for (auto& n : node.arguments) {
n->accept(*this);
}
}
- void visit(const StatementNode&) { }
- void visit(const ForStatementNode&) { }
+ void visit(const ExpressionListNode& node) {
+ node.root->accept(*this);
+ }
+
+ void visit(const StatementNode&) {}
+ void visit(const ForStatementNode&) {}
void visit(const ForArrayStatementNode& node) {
node.condition.accept(*this);
@@ -53,14 +52,20 @@ class StatisticsVisitor : public NodeVisitor {
node.false_statement.accept(*this);
}
- void visit(const IncludeStatementNode&) { }
+ void visit(const IncludeStatementNode&) {}
+
+ void visit(const ExtendsStatementNode&) {}
+
+ void visit(const BlockStatementNode& node) {
+ node.block.accept(*this);
+ }
- void visit(const SetStatementNode&) { }
+ void visit(const SetStatementNode&) {}
public:
unsigned int variable_counter;
- explicit StatisticsVisitor() : variable_counter(0) { }
+ explicit StatisticsVisitor(): variable_counter(0) {}
};
} // namespace inja