curry-frontend 0.2.8 → 0.2.9
raw patch · 4 files changed
+29/−22 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- curry-frontend.cabal +1/−1
- src/CurryCompilerOpts.hs +9/−3
- src/CurryHtml.hs +1/−1
- src/Modules.lhs +18/−17
curry-frontend.cabal view
@@ -1,5 +1,5 @@ Name: curry-frontend-Version: 0.2.8+Version: 0.2.9 Cabal-Version: >= 1.6 Synopsis: Compile the functional logic language Curry to several intermediate formats Description: The Curry Frontend consists of the executable program "cymake".
src/CurryCompilerOpts.hs view
@@ -33,7 +33,8 @@ untypedAbstract :: Bool, -- generate untyped AbstractCurry code parseOnly :: Bool, -- generate source representation withExtensions :: Bool, -- enable extended functionalities- dump :: [Dump] -- dumps+ dump :: [Dump], -- dumps+ writeToSubdir :: Bool -- should output be written to subdir? } deriving Show @@ -53,7 +54,8 @@ untypedAbstract = False, parseOnly = False, withExtensions = False,- dump = []+ dump = [],+ writeToSubdir = True } @@ -66,6 +68,7 @@ | Abstract | UntypedAbstract | ParseOnly | WithExtensions | Dump [Dump]+ | WriteToSubdir deriving Eq @@ -117,7 +120,9 @@ Option "" ["dump-case"] (NoArg (Dump [DumpCase])) "dump intermediate language after case simplification", Option "?h" ["help"] (NoArg Help)- "display this help and exit"+ "display this help and exit",+ Option "" ["no-hidden-subdir"] (NoArg WriteToSubdir)+ "write all output to hidden .curry subdirectory" ] @@ -140,6 +145,7 @@ selectOption ParseOnly opts = opts{ parseOnly = True } selectOption WithExtensions opts = opts{ withExtensions = True } selectOption (Dump ds) opts = opts{ dump = ds ++ dump opts }+selectOption WriteToSubdir opts = opts{ writeToSubdir = False } -------------------------------------------------------------------------------
src/CurryHtml.hs view
@@ -25,7 +25,7 @@ modulname = fileName sourceprogname fullfname <- getCurryPath imports sourcefilename program <- filename2program imports (maybe sourcefilename id fullfname)- (if null outputfilename then writeModule output + (if null outputfilename then writeModule True output else writeFile output) (program2html modulname program)
src/Modules.lhs view
@@ -118,7 +118,7 @@ > id > (output opts) > outputMod = showModule m'-> writeModule outputFile outputMod+> writeModule (writeToSubdir opts) outputFile outputMod > return Nothing > else > do -- checkModule checks types, and then transModule introduces new@@ -246,8 +246,8 @@ > | uniqueId x == 0 = bindQual (x,y) > | otherwise = bindTopEnv "Modules.qualifyEnv" x y -> writeXML :: Maybe FilePath -> FilePath -> CurryEnv -> IL.Module -> IO ()-> writeXML tfn sfn cEnv il = writeModule ofn (showln code)+> writeXML :: Bool -> Maybe FilePath -> FilePath -> CurryEnv -> IL.Module -> IO ()+> writeXML sub tfn sfn cEnv il = writeModule sub ofn (showln code) > where ofn = fromMaybe (xmlName sfn) tfn > code = (xmlModule cEnv il) @@ -258,23 +258,23 @@ > (fromMaybe (flatName sfn) tfn) > writeFlatFile :: Options -> (Prog, [WarnMsg]) -> String -> IO Prog-> writeFlatFile opts@Options{extendedFlat=ext} (res,msgs) fname = do+> writeFlatFile opts@Options{extendedFlat=ext,writeToSubdir=sub} (res,msgs) fname = do > unless (noWarn opts) (printMessages msgs)-> if ext then writeExtendedFlat fname res-> else writeFlatCurry fname res+> if ext then writeExtendedFlat sub fname res+> else writeFlatCurry sub fname res > return res -> writeTypedAbs :: Maybe FilePath -> FilePath -> ValueEnv -> TCEnv -> Module+> writeTypedAbs :: Bool -> Maybe FilePath -> FilePath -> ValueEnv -> TCEnv -> Module > -> IO ()-> writeTypedAbs tfn sfn tyEnv tcEnv mod-> = AC.writeCurry fname (genTypedAbstract tyEnv tcEnv mod)+> writeTypedAbs sub tfn sfn tyEnv tcEnv mod+> = AC.writeCurry sub fname (genTypedAbstract tyEnv tcEnv mod) > where fname = fromMaybe (acyName sfn) tfn -> writeUntypedAbs :: Maybe FilePath -> FilePath -> ValueEnv -> TCEnv +> writeUntypedAbs :: Bool -> Maybe FilePath -> FilePath -> ValueEnv -> TCEnv > -> Module -> IO ()-> writeUntypedAbs tfn sfn tyEnv tcEnv mod-> = AC.writeCurry fname (genUntypedAbstract tyEnv tcEnv mod)+> writeUntypedAbs sub tfn sfn tyEnv tcEnv mod+> = AC.writeCurry sub fname (genUntypedAbstract tyEnv tcEnv mod) > where fname = fromMaybe (uacyName sfn) tfn > showln :: Show a => a -> String@@ -518,7 +518,8 @@ > return Nothing > else return Nothing > | flatXml opts-> = writeXML (output opts) fname cEnv il >> return Nothing+> = writeXML (writeToSubdir opts) (output opts) fname cEnv il >> +> return Nothing > | otherwise > = internalError "@Modules.genFlat: illegal option" > where@@ -527,17 +528,17 @@ > emptyIntf = Prog "" [] [] [] [] > writeInterface intf msgs = do > unless (noWarn opts) (printMessages msgs)-> writeFlatCurry fintName intf+> writeFlatCurry (writeToSubdir opts) fintName intf > genAbstract :: Options -> FilePath -> ValueEnv -> TCEnv -> Module > -> IO (Maybe FilePath)-> genAbstract opts fname tyEnv tcEnv mod+> genAbstract opts@Options{writeToSubdir=sub} fname tyEnv tcEnv mod > | abstract opts-> = do writeTypedAbs Nothing fname tyEnv tcEnv mod +> = do writeTypedAbs sub Nothing fname tyEnv tcEnv mod > return Nothing > | untypedAbstract opts-> = do writeUntypedAbs Nothing fname tyEnv tcEnv mod+> = do writeUntypedAbs sub Nothing fname tyEnv tcEnv mod > return Nothing > | otherwise > = internalError "@Modules.genAbstract: illegal option"