Łączenie drzewa wyrażeń .NET w nowy zespół

Próbuję napisać własną zabawkę My Toy Language -> kompilator MSIL, aby lepiej zrozumieć, jak działają kompilatory. Dostałem pracę parsowania i leksykowania, zbudowałem drzewa wyrażeń i używając API drzewa wyrażeń System.Linq.Expressions, mam działającego interpretera. Teraz chciałbym emitować niektóre prawdziwe zestawy MSIL.

Problem polega na tym, że nie wiem, jak właściwie zbudować te zespoły. TheMethodBuilder klasa akceptuje tylko surowe ciała metody MSIL, więc muszę pobrać surowy MSIL mojego drzewa wyrażeń. PowołanieExpression.Compile () zwraca działającego delegata, ale nie mogę uzyskać jego bazowego MSIL. PowołanieMethodInfo.GetMethodBody () zgłasza wyjątek InvalidOperationException, ponieważ nie jest zaimplementowany w tej konkretnej klasie potomnej.

Jak mogę połączyć tego delegata z nowym zespołem?

questionAnswers(2)

yourAnswerToTheQuestion