static LibraryDependencyTypeKeyword()
        {
            var emptyFlags = Enumerable.Empty <LibraryDependencyTypeFlag>();

            Default = Declare(
                "default",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.MainReference,
                LibraryDependencyTypeFlag.MainSource,
                LibraryDependencyTypeFlag.MainExport,
                LibraryDependencyTypeFlag.RuntimeComponent,
                LibraryDependencyTypeFlag.BecomesNupkgDependency,
            },
                flagsToRemove: emptyFlags);

            Platform = Declare(
                "platform",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.MainReference,
                LibraryDependencyTypeFlag.MainSource,
                LibraryDependencyTypeFlag.MainExport,
                LibraryDependencyTypeFlag.RuntimeComponent,
                LibraryDependencyTypeFlag.BecomesNupkgDependency,
                LibraryDependencyTypeFlag.SharedFramework
            },
                flagsToRemove: emptyFlags);

            Private = Declare(
                "private",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.MainReference,
                LibraryDependencyTypeFlag.MainSource,
                LibraryDependencyTypeFlag.RuntimeComponent,
                LibraryDependencyTypeFlag.BecomesNupkgDependency,
            },
                flagsToRemove: emptyFlags);

            Dev = Declare(
                "dev",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.DevComponent,
            },
                flagsToRemove: emptyFlags);

            Build = Declare(
                "build",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.MainSource,
                LibraryDependencyTypeFlag.PreprocessComponent,
            },
                flagsToRemove: emptyFlags);

            Preprocess = Declare(
                "preprocess",
                flagsToAdd: new[]
            {
                LibraryDependencyTypeFlag.PreprocessReference,
            },
                flagsToRemove: emptyFlags);

            DeclareOnOff("MainReference", LibraryDependencyTypeFlag.MainReference, emptyFlags);
            DeclareOnOff("MainSource", LibraryDependencyTypeFlag.MainSource, emptyFlags);
            DeclareOnOff("MainExport", LibraryDependencyTypeFlag.MainExport, emptyFlags);
            DeclareOnOff("PreprocessReference", LibraryDependencyTypeFlag.PreprocessReference, emptyFlags);

            DeclareOnOff("RuntimeComponent", LibraryDependencyTypeFlag.RuntimeComponent, emptyFlags);
            DeclareOnOff("DevComponent", LibraryDependencyTypeFlag.DevComponent, emptyFlags);
            DeclareOnOff("PreprocessComponent", LibraryDependencyTypeFlag.PreprocessComponent, emptyFlags);
            DeclareOnOff("BecomesNupkgDependency", LibraryDependencyTypeFlag.BecomesNupkgDependency, emptyFlags);
        }
        static LibraryDependencyTypeKeyword()
        {
            var emptyFlags = Enumerable.Empty<LibraryDependencyTypeFlag>();

            Default = Declare(
                "default",
                flagsToAdd: new[]
                    {
                        LibraryDependencyTypeFlag.MainReference,
                        LibraryDependencyTypeFlag.MainSource,
                        LibraryDependencyTypeFlag.MainExport,
                        LibraryDependencyTypeFlag.RuntimeComponent,
                        LibraryDependencyTypeFlag.BecomesNupkgDependency,
                    },
                flagsToRemove: emptyFlags);

            Private = Declare(
                "private",
                flagsToAdd: new[]
                    {
                        LibraryDependencyTypeFlag.MainReference,
                        LibraryDependencyTypeFlag.MainSource,
                        LibraryDependencyTypeFlag.RuntimeComponent,
                        LibraryDependencyTypeFlag.BecomesNupkgDependency,
                    },
                flagsToRemove: emptyFlags);

            Dev = Declare(
                "dev",
                flagsToAdd: new[]
                    {
                        LibraryDependencyTypeFlag.DevComponent,
                    },
                flagsToRemove: emptyFlags);

            Build = Declare(
                "build",
                flagsToAdd: new[]
                    {
                        LibraryDependencyTypeFlag.MainSource,
                        LibraryDependencyTypeFlag.PreprocessComponent,
                    },
                flagsToRemove: emptyFlags);

            Preprocess = Declare(
                "preprocess",
                flagsToAdd: new[]
                    {
                        LibraryDependencyTypeFlag.PreprocessReference,
                    },
                flagsToRemove: emptyFlags);

            DeclareOnOff("MainReference", LibraryDependencyTypeFlag.MainReference, emptyFlags);
            DeclareOnOff("MainSource", LibraryDependencyTypeFlag.MainSource, emptyFlags);
            DeclareOnOff("MainExport", LibraryDependencyTypeFlag.MainExport, emptyFlags);
            DeclareOnOff("PreprocessReference", LibraryDependencyTypeFlag.PreprocessReference, emptyFlags);

            DeclareOnOff("RuntimeComponent", LibraryDependencyTypeFlag.RuntimeComponent, emptyFlags);
            DeclareOnOff("DevComponent", LibraryDependencyTypeFlag.DevComponent, emptyFlags);
            DeclareOnOff("PreprocessComponent", LibraryDependencyTypeFlag.PreprocessComponent, emptyFlags);
            DeclareOnOff("BecomesNupkgDependency", LibraryDependencyTypeFlag.BecomesNupkgDependency, emptyFlags);
        }