public static CodeGenerationUnit FromCodeGenerationUnitSyntax(CodeGenerationUnitSyntax syntax, CancellationToken cancellationToken) { if (syntax == null) { throw new ArgumentNullException(nameof(syntax)); } var builder = new CodeGenerationUnitBuilder(); builder.Process(syntax, cancellationToken); var model=new CodeGenerationUnit( syntax, builder._codeUsings, builder._taskDeclarations, builder._taskDefinitions, builder._includes, builder._symbols, builder._diagnostics.ToUnique()); foreach(var taskDefinition in builder._taskDefinitions) { taskDefinition.FinalConstruct(model); } foreach (var taskDeclaration in builder._taskDeclarations.Where(td=>!td.IsIncluded)) { taskDeclaration.FinalConstruct(model); } return model; }
internal void FinalConstruct(CodeGenerationUnit codeGenerationUnit) { CodeGenerationUnit = codeGenerationUnit; }