a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
33 lines
691 B
C#
33 lines
691 B
C#
public delegate TResult Func<TResult> ();
|
|
|
|
public delegate void GeneratorNext<T> (ref T current);
|
|
|
|
public class GeneratorEnumerable<T>
|
|
{
|
|
public GeneratorEnumerable (Func<GeneratorNext<T>> next) { }
|
|
}
|
|
|
|
public class GeneratorExpression { }
|
|
|
|
public class GeneratorInvoker
|
|
{
|
|
public GeneratorInvoker (GeneratorExpression generator) { }
|
|
public void Invoke<T> (ref T current) { }
|
|
}
|
|
|
|
public static class Interpreter
|
|
{
|
|
public static object InterpretGenerator<T> (GeneratorExpression generator)
|
|
{
|
|
return new GeneratorEnumerable<T> (
|
|
() => new GeneratorInvoker (generator).Invoke
|
|
);
|
|
}
|
|
|
|
public static int Main ()
|
|
{
|
|
InterpretGenerator<int> (new GeneratorExpression ());
|
|
return 0;
|
|
}
|
|
}
|