diff options
Diffstat (limited to 'latexfmt.hs')
-rw-r--r-- | latexfmt.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/latexfmt.hs b/latexfmt.hs index 2d0dd74..3a31970 100644 --- a/latexfmt.hs +++ b/latexfmt.hs @@ -16,7 +16,7 @@ import Prelude hiding takeWhile, ) -data Tokens = Wrd {unwrd :: T.Text} | Cmd T.Text | BSq [Tokens] | BCr [Tokens] | NL | Cmt T.Text | Nobs | IMath T.Text | Math T.Text | Verbatim Bool T.Text +data Tokens = Wrd {unwrd :: T.Text} | Lbrk | Cmd T.Text | BSq [Tokens] | BCr [Tokens] | NL | Cmt T.Text | Nobs | IMath T.Text | Math T.Text | Verbatim Bool T.Text deriving (Show) isCtrl x = not $ isAlpha x || isDigit x @@ -71,13 +71,16 @@ toStr (IMath m) = do print "\\(" print' m print' "\\)" +toStr Lbrk = do + print' "\\\\" + printnl' -- Tokeniser ws = inClass " \t\n" pad = takeWhile ws -token = nl <|> pad *> (nobs <|> verbatim <|> verbatimStar <|> math <|> cmd <|> bsq <|> bcr <|> cmt <|> wrd) +token = nl <|> pad *> (nobs <|> lbrk <|> verbatim <|> verbatimStar <|> math <|> cmd <|> bsq <|> bcr <|> cmt <|> wrd) nobs = string "~" *> pure Nobs @@ -94,6 +97,8 @@ wrd = Wrd <$> takeWhile1 (notInClass " \t\n[]{}\\~") cmt = Cmt <$> (takeWhile1 (== '%') *> takeWhile (/= '\n')) +lbrk = Lbrk <$ string "\\\\" + math = oldmath <|> newmath <|> oldimath <|> newimath oldmath = Math <$> (string "$$" *> takeWhile (/= '$')) <* string "$$" |