packages feed

lhs2TeX-hl 0.1.3 → 0.1.3.1

raw patch · 4 files changed

+39/−3 lines, 4 files

Files

README.asciidoc view
@@ -143,6 +143,8 @@  CHANGES -------+1.3.1::+  * Added the file Language.Markup 1.3.0::   * Added automatic rewrite rules, see section `Automatic markup'. 1.2.2::
lhs2TeX-hl.cabal view
@@ -1,5 +1,5 @@ Name:               lhs2TeX-hl-Version:            0.1.3+Version:            0.1.3.1 Cabal-Version:      >= 1.6 License:            MIT Author:             Alessandro Vermeulen <me@alessandrovermeulen.me>@@ -29,5 +29,5 @@                   , cmdargs >= 0.1                   , MissingH   hs-source-dirs:   src-  Other-Modules:    Language.LaTeX, Literate.Agda, Literate.Haskell,+  Other-Modules:    Language.LaTeX, Language.Markup, Literate.Agda, Literate.Haskell,                     Literate.SimpleInfo, Base.CLI, Base.Common
src/Base/Common.hs view
@@ -1,4 +1,4 @@ module Base.Common where   -programVersion = "0.1.3"+programVersion = "0.1.3.1" programName    = "lhs2TeX-hl"
+ src/Language/Markup.hs view
@@ -0,0 +1,34 @@+module Language.Markup (markup) where++import Data.Char (isDigit)++markup :: String -> String+markup = m' . b . break (\ a -> a == '_' || isDigit a) . rtrim "_"+  where m' (str, [])   = str+        m' (str, sub)  = str ++ "_{" ++ sub ++ "}"+        b (a , b) = (a , ltrim "_" b)+               +++rtrim :: String -> String -> String+rtrim chars inp = rtrim' inp+  where+    rtrim' ""  = []+    rtrim' [x] = case elem x chars of+                   True  -> []+                   False -> [x]+    rtrim' (x:xs) = let tail = rtrim' xs+                    in+                      case tail of+                        []   -> case elem x chars of+                                  True  -> []+                                  False -> [x]+                        xs   -> x :  tail+                        +ltrim :: String -> String -> String+ltrim chars = ltrim'+  where ltrim' s = case s of+                     [] -> []+                     (x:xs) -> if elem x chars+                               then ltrim' xs+                               else s