module ParserOptions where
data Flags
= Flags {
prel::Bool, -- Should all modules implicitly import Prelude?
plogic::Bool, -- Recognize extra keywords for Plogic?
cpp::Maybe String -- Should the C preprocessor be used?
}
deriving (Eq,Show,Read)
flags0 = Flags True True Nothing
cpp1= "/lib/cpp -traditional -P -D__HASKELL98__ -D__PFE__"
parserOptions flags args =
case args of
"noprelude":args -> parserOptions flags{prel=False } args
"prelude" :args -> parserOptions flags{prel=True } args
"noplogic" :args -> parserOptions flags{plogic=False } args
"plogic" :args -> parserOptions flags{plogic=True } args
"cpp" :args -> parserOptions flags{cpp=Just cpp1} args
('c':'p':'p':'=':s):args -> parserOptions flags{cpp=Just s } args
"nocpp" :args -> parserOptions flags{cpp=Nothing } args
_ -> (flags,args)