コード例 #1
0
        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;
        }
コード例 #2
0
 internal void FinalConstruct(CodeGenerationUnit codeGenerationUnit) {
     CodeGenerationUnit = codeGenerationUnit;
 }