Listing 1

#include "StdAfx.h"
#include "CodeBuilder.h"

using namespace System;
using namespace System::Text;

String* DynamicCompilation::CodeBuilder::TheCode(String* F_x)  // Line 7
{
  StringBuilder* sbCode = new StringBuilder("using System; \r\n");
  sbCode->Append(S"namespace MyFunctoid \r\n");
  sbCode->Append(S"{ \r\n");
  sbCode->Append(S"  public class MyFunc\r\n");
  sbCode->Append(S"  { \r\n");
  sbCode->Append(S"    static public double f(double x) \r\n");
  sbCode->Append(S"    { \r\n");
  sbCode->Append(S"      double y = ");
  // Add the user's code input                            // Line 18
  sbCode->Append(F_x);                                        
  sbCode->Append("; \r\n");
  sbCode->Append(S"      return y; \r\n");
  sbCode->Append(S"    } \r\n");
  sbCode->Append(S"    static private double Abs(double x) 
                                 { return System.Math.Abs(x); } \r\n");
  sbCode->Append(S"    static private double Acos(double x) 
                                 { return System.Math.Acos(x); } \r\n");
  sbCode->Append(S"    static private double Asin(double x) 
                                 { return System.Math.Asin(x); } \r\n");
  sbCode->Append(S"    static private double Atan(double x) 
                                 { return System.Math.Atan(x); } \r\n");
  sbCode->Append(S"    static private double Atan2(double x, double y) 
                                 { return System.Math.Atan2(x, y); } \r\n");
  sbCode->Append(S"    static private double Ceiling(double x) 
                                 { return System.Math.Ceiling(x); } \r\n");
  sbCode->Append(S"    static private double Cos(double x) 
                                 { return System.Math.Cos(x); } \r\n");
  sbCode->Append(S"    static private double Cosh(double x) 
                                 { return System.Math.Cosh(x); } \r\n");
  sbCode->Append(S"    static private double Exp(double x) 
                                 { return System.Math.Exp(x); } \r\n");
  sbCode->Append(S"    static private double Floor(double x) 
                                 { return System.Math.Floor(x); } \r\n");
  sbCode->Append(S"    static private double Log(double x) 
                                 { return System.Math.Log(x); } \r\n");
  sbCode->Append(S"    static private double Log10(double x) 
                                 { return System.Math.Log10(x); } \r\n");
  sbCode->Append(S"    static private double Pow(double x, double y) 
                                 { return System.Math.Pow(x, y); } \r\n");
  sbCode->Append(S"    static private double Sin(double x) 
                                 { return System.Math.Sin(x); } \r\n");
  sbCode->Append(S"    static private double Sinh(double x) 
                                 { return System.Math.Sinh(x); } \r\n");
  sbCode->Append(S"    static private double Sqrt(double x) 
                                 { return System.Math.Sqrt(x); } \r\n");
  sbCode->Append(S"    static private double Tan(double x) 
                                 { return System.Math.Tan(x); } \r\n");
  sbCode->Append(S"    static private double Tanh(double x) 
                                 { return System.Math.Tanh(x); } \r\n");
  sbCode->Append(S"  } \r\n");
  sbCode->Append(S"} \r\n");
  return sbCode->ToString();
}