<commit_before>module GlobalOptions
  ( GlobalOptions
  , globalOpts
  , dpoConfig
  , verbose
  , inputFile
  , useConstraints
  ) where

import           Abstract.AdhesiveHLR (DPOConfig (..), MatchRestriction (..),
                                       NacSatisfaction (..))
import           Options.Applicative

data GlobalOptions = GOpts
  { arbitraryMatches         :: MatchRestriction
  , injectiveNacSatisfaction :: NacSatisfaction
  , verbose                  :: Bool
  , inputFile                :: String
  , useConstraints           :: Bool
  }


dpoConfig :: GlobalOptions -> DPOConfig
dpoConfig opts = DPOConfig (arbitraryMatches opts) (injectiveNacSatisfaction opts)


globalOpts :: Parser GlobalOptions
globalOpts = GOpts
  <$> flag MonoMatches AnyMatches
    ( long "all-matches"
    <> help "Set the matches for arbitrary morphisms")
  <*> flag MonomorphicNAC PartiallyMonomorphicNAC
    ( long "partial-injective-nacs"
    <> help ("Restrict the analysis of NAC satisfaction to partially injective " ++
            "morphisms between the NAC graph and the instance graph"))
  <*> flag False True
    ( long "verbose" <> short 'v')
  <*> strArgument
    ( metavar "INPUT_FILE"
    <> action "file"
    <> help "GGX file defining the graph grammar")
  <*> flag False True
    ( long "use-constraints"
    <> help "Activate use of Atomic Constraints [EXPERIMENTAL: Concurrent Rules Only]")

<commit_msg>Updating CLI help<commit_after>module GlobalOptions
  ( GlobalOptions
  , globalOpts
  , dpoConfig
  , verbose
  , inputFile
  , useConstraints
  ) where

import           Abstract.AdhesiveHLR (DPOConfig (..), MatchRestriction (..),
                                       NacSatisfaction (..))
import           Options.Applicative

data GlobalOptions = GOpts
  { arbitraryMatches         :: MatchRestriction
  , injectiveNacSatisfaction :: NacSatisfaction
  , verbose                  :: Bool
  , inputFile                :: String
  , useConstraints           :: Bool
  }


dpoConfig :: GlobalOptions -> DPOConfig
dpoConfig opts = DPOConfig (arbitraryMatches opts) (injectiveNacSatisfaction opts)


globalOpts :: Parser GlobalOptions
globalOpts = GOpts
  <$> flag MonoMatches AnyMatches
    ( long "all-matches"
    <> help "Set the matches for arbitrary morphisms")
  <*> flag MonomorphicNAC PartiallyMonomorphicNAC
    ( long "partial-injective-nacs"
    <> help ("Restrict the analysis of NAC satisfaction to partially injective " ++
            "morphisms between the NAC graph and the instance graph"))
  <*> flag False True
    ( long "verbose" <> short 'v')
  <*> strArgument
    ( metavar "INPUT_FILE"
    <> action "file"
    <> help "GGX file defining the graph grammar")
  <*> flag False True
    ( long "use-constraints"
    <> help "Activate use of Constraints [EXPERIMENTAL: Concurrent Rules Only]")


{'fraction_non_alphanumeric': 0.091005291005291, 'fraction_numerical': 0.0, 'mean_word_length': 2.7612732095490715, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6115341', 'n_tokens_mistral': 845, 'n_tokens_neox': 785, 'n_words': 229}