Biblioteka Mono.Cecil jest prawie tym, czego potrzebujesz. Jest to open-source, wyodrębniony język i jako bonus jest super dopracowany, szybki i stabilny.
Ale nie jest to dokładnie to, czego chcesz, ponieważ Cecil nie analizuje kodu źródłowego C#, VB.NET lub F #, ale analizuje pliki złożeń (dll i exe) i kod IL zawarte w złożeniach. Dla wielu obszarów analizy statycznej byłoby to wystarczające, ale dla stałej propagacji (myślę, że chodzi o dosłowną stałą, taką jak const string STR = "MyString";
lub const int INT = 12345;
), utrata informacji w czasie kompilacji, ponieważ stała wartość jest zakodowana na stałe w miejsce stałego użycia. Cecil nie nadaje się również do analizy Abstract Syntax Tree.
Można również spojrzeć na Microsoft Roslyn. W przeciwieństwie do Cecil, Roslyn analizuje kod źródłowy C# i VB.NET, jest bardzo dobrze przystosowany do analizy Abstract Syntax Tree, ale nie jest open source, nie obsługuje F # i na pewno podlega zmianom, dopóki nie stanie się RTM, powiedzmy w przyszłym roku z Visual Studio 2014, (ale to tylko moje przypuszczenie).
Upierasz się przy otwartym oprogramowaniu? –