X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FMain.hs;h=de72089b1c6c561c2098c25237969e29a6d0ac32;hb=f586a36da133d01607f1936f771722e88b3b3574;hp=f0a6611cf73318ea8a6ab3b45a03e3f35bf2b65a;hpb=25628e2771424cae1b3366322e8ce6f8a85440f9;p=ghc-hetmet.git diff --git a/compiler/main/Main.hs b/compiler/main/Main.hs index f0a6611..de72089 100644 --- a/compiler/main/Main.hs +++ b/compiler/main/Main.hs @@ -363,40 +363,40 @@ parseModeFlags args = do throwDyn (UsageError (unlines errs)) return (mode, flags ++ leftover) -type ModeM a = CmdLineP (CmdLineMode, String, [String]) a +type ModeM = CmdLineP (CmdLineMode, String, [String]) -- mode flags sometimes give rise to new DynFlags (eg. -C, see below) -- so we collect the new ones and return them. -mode_flags :: [(String, OptKind (CmdLineP (CmdLineMode, String, [String])))] +mode_flags :: [Flag ModeM] mode_flags = [ ------- help / version ---------------------------------------------- - ( "?" , PassFlag (setMode ShowUsage)) - , ( "-help" , PassFlag (setMode ShowUsage)) - , ( "-print-libdir" , PassFlag (setMode PrintLibdir)) - , ( "V" , PassFlag (setMode ShowVersion)) - , ( "-version" , PassFlag (setMode ShowVersion)) - , ( "-numeric-version" , PassFlag (setMode ShowNumVersion)) - , ( "-info" , PassFlag (setMode ShowInfo)) - , ( "-supported-languages", PassFlag (setMode ShowSupportedLanguages)) + Flag "?" (PassFlag (setMode ShowUsage)) + , Flag "-help" (PassFlag (setMode ShowUsage)) + , Flag "-print-libdir" (PassFlag (setMode PrintLibdir)) + , Flag "V" (PassFlag (setMode ShowVersion)) + , Flag "-version" (PassFlag (setMode ShowVersion)) + , Flag "-numeric-version" (PassFlag (setMode ShowNumVersion)) + , Flag "-info" (PassFlag (setMode ShowInfo)) + , Flag "-supported-languages" (PassFlag (setMode ShowSupportedLanguages)) ------- interfaces ---------------------------------------------------- - , ( "-show-iface" , HasArg (\f -> setMode (ShowInterface f) - "--show-iface")) + , Flag "-show-iface" (HasArg (\f -> setMode (ShowInterface f) + "--show-iface")) ------- primary modes ------------------------------------------------ - , ( "M" , PassFlag (setMode DoMkDependHS)) - , ( "E" , PassFlag (setMode (StopBefore anyHsc))) - , ( "C" , PassFlag (\f -> do setMode (StopBefore HCc) f - addFlag "-fvia-C")) - , ( "S" , PassFlag (setMode (StopBefore As))) - , ( "-make" , PassFlag (setMode DoMake)) - , ( "-interactive" , PassFlag (setMode DoInteractive)) - , ( "e" , HasArg (\s -> updateMode (updateDoEval s) "-e")) + , Flag "M" (PassFlag (setMode DoMkDependHS)) + , Flag "E" (PassFlag (setMode (StopBefore anyHsc))) + , Flag "C" (PassFlag (\f -> do setMode (StopBefore HCc) f + addFlag "-fvia-C")) + , Flag "S" (PassFlag (setMode (StopBefore As))) + , Flag "-make" (PassFlag (setMode DoMake)) + , Flag "-interactive" (PassFlag (setMode DoInteractive)) + , Flag "e" (HasArg (\s -> updateMode (updateDoEval s) "-e")) -- -fno-code says to stop after Hsc but don't generate any code. - , ( "fno-code" , PassFlag (\f -> do setMode (StopBefore HCc) f - addFlag "-fno-code" - addFlag "-no-recomp")) + , Flag "fno-code" (PassFlag (\f -> do setMode (StopBefore HCc) f + addFlag "-fno-code" + addFlag "-no-recomp")) ] setMode :: CmdLineMode -> String -> ModeM ()