DomainBase: 继承自 AssemblyLoadContext 类,完成了部分域功能及部分抽象标准。
Remove : 删除引用时触发的方法,需要重载。
SyntaxBase: 作为语法转换的基础类,提供了代码及语法树缓存,规定了一些抽象方法,实现了自动添加缓存的方法。
CompilerBase<TCompilation, TCompilationOptions> where TCompilation : Compilation where TCompilationOptions : CompilationOptions: 编译器抽象, TCompilation 被约束为 Compilation 类型,该类为编译的基础类,在构建编译信息时,每种语言都会对该类进行继承改造,因此它是编译基础。TCompilationOptions 被约束为 CompilationOptions 类型, 改类为构建编译信息的选项类,在构建编译信息时,
CompileTrees : 需要被编译的语法树。
GetCompilation :根据拿到的 CompilationOptions 返回不同语言的编译信息集,必须重写。
CompileEmitToStream: 将 compilation 编译到内存流,必须重写。
StreamCompileSucceedHandler :当流形式编译成功之后引发的事件。
对以上类进行重写,即可完成一门语言的动态编译,详情请看 Engine 实现篇。