module Distribution.Simple.UUAGC.AbsSyn where

import Options
import System.FilePath(normalise)

data AGFileOption = AGFileOption {AGFileOption -> String
filename :: String,
                                  AGFileOption -> [String]
fileClasses :: [String],
                                  AGFileOption -> Options
opts :: Options}

data AGOptionsClass = AGOptionsClass {AGOptionsClass -> String
className :: String, AGOptionsClass -> Options
opts' :: Options}

type AGFileOptions = [AGFileOption]

lookupFileOptions :: FilePath -> AGFileOptions -> Options
lookupFileOptions :: String -> AGFileOptions -> Options
lookupFileOptions s :: String
s = (Options -> AGFileOption -> Options)
-> Options -> AGFileOptions -> Options
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldl Options -> AGFileOption -> Options
f Options
noOptions
    where f :: Options -> AGFileOption -> Options
f e :: Options
e (AGFileOption s' :: String
s' classes :: [String]
classes opt :: Options
opt)
              | String
s String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== (String -> String
normalise String
s')  = Options
opt
              | Bool
otherwise            = Options
e