mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-10 13:29:32 -06:00
28 lines
737 B
Haskell
28 lines
737 B
Haskell
module Main where
|
|
|
|
main = do
|
|
s <- readFile "HelpFile"
|
|
let s' = mkHsFile (lines s)
|
|
writeFile "HelpFile.hs" s'
|
|
|
|
mkHsFile ss =
|
|
"module HelpFile where\n\n" ++
|
|
"import Operations\n\n" ++
|
|
"txtHelpFileSummary =\n" ++
|
|
" unlines $ map (concat . take 1 . lines) $ paragraphs txtHelpFile\n\n" ++
|
|
"txtHelpCommand c =\n" ++
|
|
" case lookup c [(takeWhile (/=',') p,p) | p <- paragraphs txtHelpFile] of\n" ++
|
|
" Just s -> s\n" ++
|
|
" _ -> \"Command not found.\"\n\n" ++
|
|
"txtHelpFile =\n" ++
|
|
unlines (map mkOne ss) ++
|
|
" []"
|
|
|
|
mkOne s = " \"" ++ pref s ++ (escs s) ++ "\" ++"
|
|
where
|
|
pref (' ':_) = "\\n"
|
|
pref _ = "\\n" ---
|
|
escs [] = []
|
|
escs (c:cs) | elem c "\"\\" = '\\':c:escs cs
|
|
escs (c:cs) = c:escs cs
|