-
Notifications
You must be signed in to change notification settings - Fork 0
home
This page is an overview of the purpose of this project and its requirements.
This work was originally prompted by a discussion I started at [[Stack Overflow|http://stackoverflow.com/questions/3848001/extending-the-mono-c-compiler-is-there-any-documentation-or-precedent]]. It seems that extensibility of the Mono C# compiler is not supported natively. Therefore, I decided to add it in myself. This requirement is driven by the needs of another project I'm working on (there will be more information about this shortly) and, thus, I intend to develop the bits in parallel. This project is very much in its infancy.
I need to be able to access the abstract representation of a C# program immediately after the parsing stage has succeeded but before the type checker kicks in. More than just this, I need to be able to modify the types assigned to various program features such as method parameters etc. This change implement a very simple extensibility model that provides me with the minimum functionality to perform these types of actions. I expect that this programming model will grow and change considerably over time as I build by compiler add-in out.
Since the compiler [[dmcs.exe|dmcs]] now exposes a public extensibility
API that is intended to be consumed by third-party add-ins, the target
assembly must now have a strong name in order that other signed assemblies
can reference it. The project has been modified to reference the standard
[[mono.pub|http://github.com/rcook/mono-extensibility/blob/master/mcs/class/mono.pub]]
key file.
- Quick-start guide
- Long, tedious building-from-source guide
- Creating add-ins for the Mono C# compiler
-
[[Mono.CompilerServices.Extensibility|api]]namespace - History of changes