public override void Visit(FunctionNode node)
        {
            Debug.Print("FunctionNode");
            ProgramCode.Append($"{node.Name} -> {node.ReturnType}(");
            int i = 0;

            foreach (ParameterNode Param in node.Parameters)
            {
                InsertComma(ref i);
                Param.Accept(this);
            }
            ProgramCode.Append($")\n{{\n");
            VisitChildren(node);
            ProgramCode.Append("}\n");
        }