using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;

using CommonHelpers;

namespace SqlCatPP {

enum SetVarCommentInclusion
{
   None, ScriptAnalisys, Anywhere
} // SetVarCommentInclusion

class CaseInsensitiveComparerStr: IComparer<string>
{
   public static CaseInsensitiveComparerStr Instance =>
      new CaseInsensitiveComparerStr();
   int IComparer<string>.Compare(string str_1,string str_2) =>
      _Comparer_.Compare( str_1, str_2 );
   readonly CaseInsensitiveComparer _Comparer_ = new ( CultureInfo.InvariantCulture );
} // CaseInsensitiveComparerStr

class GenFileData
{
   public string Path { get; set; }
   public bool Generated { get; set; }
   public GenFileData(string path) =>
      Path = path;
} // GenFileData

public static class ParamFullNames
{
   public const string
      InsertSetVarComments       = "SqlCatPP."+AdditionalParams.Names.InsertSetVarComments,
      UnfoldEnvironmentVars      = "SqlCatPP."+AdditionalParams.Names.UnfoldEnvironmentVars,
      ProcessDirectives          = "SqlCatPP."+AdditionalParams.Names.ProcessDirectives,
      OrderListErrorAsWarn       = "SqlCatPP."+AdditionalParams.Names.OrderListErrorAsWarn,
      AllowEmptyResult           = "SqlCatPP."+AdditionalParams.Names.AllowEmptyResult,
      DefaultInputEncodingUTF8   = "SqlCatPP."+AdditionalParams.Names.DefaultInputEncodingUTF8,
      CheckInputForANSI          = "SqlCatPP."+AdditionalParams.Names.CheckInputForANSI,
      OutputAsANSI               = "SqlCatPP."+AdditionalParams.Names.OutputAsANSI,
      OutputFolderPath           = "SqlCatPP."+AdditionalParams.Names.OutputFolderPath,
      OutputFileName             = "SqlCatPP."+AdditionalParams.Names.OutputFileName;
} // ParamFullNames

public static class GenParamFullNames
{
   public const string
      GenerationOn            = "SqlCatPP."+AdditionalParams.Names.Generated_GenerationOn,
      FolderPath              = "SqlCatPP."+AdditionalParams.Names.Generated_FolderPath,
      CleanAllSQL             = "SqlCatPP."+AdditionalParams.Names.Generated_CleanAllSQL,
      OrderedWithCleanup      = "SqlCatPP."+AdditionalParams.Names.Generated_OrderedWithCleanup,
      OrderHeadingChar        = "SqlCatPP."+AdditionalParams.Names.Generated_OrderHeadingChar,
      EmbedFileNamesToOrder   = "SqlCatPP."+AdditionalParams.Names.Generated_EmbedFileNamesToOrder,
      RestoreDateIfSameContent= "SqlCatPP."+AdditionalParams.Names.Generated_RestoreDateIfSameContent;
} // ParamFullNames_G

} // SqlCatPP
