public Model Compile(TypeSystem typeSystem, ModelDescriptor model) { var ns = typeSystem.GetOrCreateNamespace(model.RootNamespace.Name); var compiledModel = new Model(ns); //first pass - create type stubs TypeSystemWalker.Walk(model.RootNamespace, new TypeSystemCompileHandlerFirstPass(compiledModel.Namespace)); //second pass - fill composite types with fields TypeSystemWalker.Walk(model.RootNamespace, new TypeSystemCompileHandlerSecondPass(compiledModel.Namespace)); return(compiledModel); }
public ModelDescriptor MergeToLhs(ModelDescriptor lhs, ModelDescriptor rhs) { TypeSystemWalker.Walk(rhs.RootNamespace, new ModelMergeTypeSystemEventHandler(lhs.RootNamespace, _logger)); return(lhs); }