diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index 75842ad029795a579a213b2d50bed15bcfb68b30..efddefd1a2081ee30fe26cb77cb16e95eb33c8d1 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -78,6 +78,16 @@ parser(const std::string& filename)
 
     std::cout << ASTPrinter{*root_node} << '\n';
 
+    auto& function_table = root_node->m_symbol_table->functionTable();
+
+    for (size_t i_function = 0; i_function < function_table.size(); ++i_function) {
+      const auto& function_descriptor = function_table[i_function];
+      std::cout << "function " << rang::fgB::magenta << function_descriptor.name() << rang::style::reset << '\n';
+      std::cout << ASTPrinter(function_descriptor.domainMappingNode());
+      std::cout << ASTPrinter(function_descriptor.definitionNode());
+      std::cout << "--------\n";
+    }
+
     ExecutionPolicy exec_all;
     root_node->execute(exec_all);
     std::cout << *(root_node->m_symbol_table) << '\n';