Пример #1
0
        static void Run(GeneratorOptions options)
        {
            if (!File.Exists(options.ApiDescriptionFilePath))
            {
                throw new InvalidOperationException($"API description file '{options.ApiDescriptionFilePath}' does not exist.");
            }

            List <string>        fixups    = null;
            ApiDescriptionReader apiReader = null;

            try {
                if (options.ApiFixupFiles != null && options.ApiFixupFiles.Count > 0)
                {
                    foreach (string afp in options.ApiFixupFiles.Distinct(fileNameComparer))
                    {
                        if (String.IsNullOrEmpty(afp))
                        {
                            continue;
                        }
                        if (!File.Exists(afp))
                        {
                            throw new InvalidOperationException($"API fixup file '{afp}' does not exist.");
                        }
                        if (fixups == null)
                        {
                            fixups = new List <string> ();
                        }
                        fixups.Add(afp);
                    }
                }

                apiReader = new ApiDescriptionReader(options.ApiDescriptionFilePath, fixups)
                {
                    DumpFixedUp = options.DumpFixedUp
                };

                FormattingCodeGenerator codeGenerator = GetCodeGenerator(options.CodeGenerator, new FormattingContext(GetCodeStyle(options.CodeStyle)));
                var context = new GeneratorContext(codeGenerator, options.FileEncoding)
                {
                    DumpHierarchy         = options.DumpHierarchy,
                    HierarchyDumpFilePath = options.ApiDescriptionFilePath + ".hierarchy"
                };
                var generator = new Generator(context, options.OverwriteFiles);
                generator.Generate(options.OutputPath, apiReader.Parse());
            } finally {
                apiReader?.Dispose();
            }
        }
Пример #2
0
 protected BaseMethodCodeGenerator(FormattingCodeGenerator generator) : base(generator)
 {
 }