static void PrintGraph(FunctionPtr function, int spaces, bool useName = false) { if (function->Inputs().size() == 0) { cout << string(spaces, '.') + "(" + ToString(useName ? function->Name() : function->Uid()) + ")" + ToString(function->AsString()) << std::endl; return; } for (auto input : function->Inputs()) { cout << string(spaces, '.') + "(" + ToString(useName ? function->Name() : function->Uid()) + ")" + "->" + "(" + ToString(useName ? input.Name() : input.Uid()) + ")" + ToString(input.AsString()) << std::endl; } for (auto input : function->Inputs()) { if (input.Owner() != NULL) { FunctionPtr f = input.Owner(); PrintGraph(f, spaces + 4, useName); } } }