コンソールアプリで、C#のコードを入力するとそれを実行するアプリを作ろうと思ってるんだけど
System.Reflection.Emitにあるクラスを駆使してできるかなぁって思ってたら
C#のコードを解析する方法がわかんない。
どうすればいいんすか?

// コード

string input = Console.ReadLine();

AppDomain domain = AppDomain.CurrentDomain;
AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(new System.Reflection.AssemblyName("TempAssembly"), AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("TempModule");
TypeBuilder typeBuilder = moduleBuilder.DefineType("TempClass");
MethodBuilder methodBuilder = typeBuilder.DefineMethod("TempMethod", MethodAttributes.Public, typeof(object), new Type[0]);
ILGenerator ilGenerator = methodBuilder.GetILGenerator();

// この辺でinputを解析する必要があると思うんだが、わからない。
// ↓の使い方もあまりよくわかってない。
// ilGenerator.Emit(OpCodes.Ret);

Type type = typeBuilder.CreateType();

object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("TempMethod");

Console.WriteLine(methodInfo.Invoke(obj, null));