on builder help sign in
text/scripts/CaseMapping.hs
32 lines 1.1 kB history raw
1import System.Environment
2import System.IO
4import Arsec
5import CaseFolding
6import SpecialCasing
8main = do
9 args <- getArgs
10 let oname = case args of
11 [] -> "../Data/Text/Fusion/CaseMapping.hs"
12 [o] -> o
13 psc <- parseSC "SpecialCasing.txt"
14 pcf <- parseCF "CaseFolding.txt"
15 scs <- case psc of
16 Left err -> print err >> return undefined
17 Right ms -> return ms
18 cfs <- case pcf of
19 Left err -> print err >> return undefined
20 Right ms -> return ms
21 h <- openFile oname WriteMode
22 mapM_ (hPutStrLn h) ["{-# LANGUAGE Rank2Types #-}"
23 ,"-- AUTOMATICALLY GENERATED - DO NOT EDIT"
24 ,"-- Generated by scripts/SpecialCasing.hs"
25 ,"module Data.Text.Fusion.CaseMapping where"
26 ,"import Data.Char"
27 ,"import Data.Text.Fusion.Internal"
28 ,""]
29 mapM_ (hPutStrLn h) (mapSC "upper" upper toUpper scs)
30 mapM_ (hPutStrLn h) (mapSC "lower" lower toLower scs)
31 mapM_ (hPutStrLn h) (mapCF cfs)
32 hClose h